From 1c8a3d97098b539f2b776b6e6ffd3cdf4bb0328c Mon Sep 17 00:00:00 2001 From: gaoyang3513 Date: Mon, 31 Oct 2022 22:18:58 +0800 Subject: [PATCH] [Mod] First commit --- .clang-format | 567 + .defconfig | 51 + .flake8 | 5 + .gitignore | 15 + .gitlab-ci.yml | 28 + .shellcheckrc | 0 CHANGES | 12143 ++++++++++++++++ COPYING | 355 + Config.in | 954 ++ Config.in.legacy | 4881 +++++++ DEVELOPERS | 3144 ++++ Makefile | 1263 ++ Makefile.legacy | 59 + README | 26 + arch/Config.in | 467 + arch/Config.in.arc | 129 + arch/Config.in.arm | 917 ++ arch/Config.in.m68k | 46 + arch/Config.in.microblaze | 20 + arch/Config.in.mips | 279 + arch/Config.in.nios2 | 14 + arch/Config.in.or1k | 14 + arch/Config.in.powerpc | 227 + arch/Config.in.riscv | 148 + arch/Config.in.s390x | 32 + arch/Config.in.sh | 35 + arch/Config.in.sparc | 41 + arch/Config.in.x86 | 637 + arch/Config.in.xtensa | 66 + arch/arch.mk | 33 + arch/arch.mk.arc | 8 + arch/arch.mk.riscv | 39 + arch/arch.mk.xtensa | 41 + board/aarch64-efi/genimage-efi.cfg | 30 + board/aarch64-efi/grub.cfg | 6 + board/aarch64-efi/post-image.sh | 5 + board/aarch64-efi/readme.txt | 53 + .../acqua-a5/at91-sama5d3_acqua.dts | 301 + board/acmesystems/acqua-a5/genimage.cfg | 29 + board/acmesystems/acqua-a5/readme.txt | 44 + board/acmesystems/aria-g25/genimage.cfg | 36 + board/acmesystems/aria-g25/readme.txt | 44 + board/acmesystems/arietta-g25/genimage.cfg | 36 + board/acmesystems/arietta-g25/readme.txt | 49 + board/altera/socrates_cyclone5/boot-env.txt | 8 + board/altera/socrates_cyclone5/genimage.cfg | 59 + board/altera/socrates_cyclone5/readme.txt | 52 + board/amarula/a64-relic/extlinux.conf | 4 + board/amarula/a64-relic/genimage.cfg | 11 + board/amarula/a64-relic/post-build.sh | 4 + board/amarula/a64-relic/readme.txt | 90 + .../lib/firmware/brcm/brcmfmac4330-sdio.txt | 83 + board/amarula/vyasa/extlinux.conf | 4 + board/amarula/vyasa/genimage.cfg | 22 + board/amarula/vyasa/linux_gmac.fragment | 3 + board/amarula/vyasa/post-build.sh | 9 + board/amarula/vyasa/readme.txt | 31 + board/andes/ae350/ae350.dts | 274 + board/andes/ae350/genimage_sdcard.cfg | 26 + ...isable-PIC-explicitly-for-assembling.patch | 29 + ...2-Enable-cache-for-opensbi-jump-mode.patch | 25 + ...001-Fix-mmc-no-partition-table-error.patch | 27 + ...2-Prevent-fw_dynamic-from-relocation.patch | 27 + ...0003-Fix-u-boot-proper-booting-issue.patch | 26 + ...04-Enable-printing-OpenSBI-boot-logo.patch | 25 + board/andes/ae350/post-build.sh | 3 + board/andes/ae350/readme.txt | 65 + .../boot/extlinux/extlinux.conf | 4 + board/andes/ae350/uboot.config.fragment | 5 + .../arcturus/aarch64-ucls1012a/post-build.sh | 4 + .../arcturus/aarch64-ucls1012a/post-image.sh | 6 + board/arcturus/aarch64-ucls1012a/readme.txt | 74 + board/arcturus/ppc-ucp1020/readme.txt | 74 + board/arm/foundation-v8/readme.txt | 20 + board/arm/juno/linux-juno-defconfig | 169 + board/arm/juno/readme.txt | 134 + board/armadeus/apf27/linux-4.12.config | 216 + board/armadeus/apf51/linux-4.4.config | 278 + board/armadeus/readme.txt | 84 + .../overlay/boot/extlinux/extlinux.conf | 4 + board/arrow/avenger96/readme.txt | 41 + board/aspeed/ast2500-evb/genimage.cfg | 40 + board/aspeed/ast2500-evb/linux.fragment | 7 + board/aspeed/ast2500-evb/readme.txt | 80 + board/aspeed/ast2500-evb/uboot.fragment | 3 + board/aspeed/ast2600-evb/genimage.cfg | 40 + board/aspeed/ast2600-evb/readme.txt | 80 + board/aspeed/common/image.its.template | 56 + board/aspeed/common/post-image.sh | 27 + board/asus/tinker/extlinux.conf | 4 + board/asus/tinker/genimage.cfg | 15 + board/asus/tinker/post-build.sh | 9 + board/asus/tinker/readme.txt | 37 + board/atmel/at91sam9x5ek_mmc/genimage.cfg | 40 + board/atmel/at91sam9x5ek_mmc/uboot-env.txt | 7 + board/atmel/flasher.sh | 145 + board/atmel/nandflash.tcl | 358 + board/atmel/readme.txt | 181 + board/atmel/sama5d27_som1_ek_mmc/genimage.cfg | 32 + .../atmel/sama5d27_wlsom1_ek_mmc/genimage.cfg | 32 + board/atmel/sama5d2_xplained_mmc/genimage.cfg | 32 + board/atmel/sama5d3_xplained_mmc/genimage.cfg | 32 + board/atmel/sama5d4_xplained_mmc/genimage.cfg | 32 + board/avnet/s6lx9_microboard/lx9_mmu.dts | 247 + .../avnet/s6lx9_microboard/lx9_mmu_defconfig | 68 + board/avnet/s6lx9_microboard/readme.txt | 70 + board/bananapi/bananapi-m1/boot.cmd | 7 + board/bananapi/bananapi-m1/genimage.cfg | 34 + board/bananapi/bananapi-m1/readme.txt | 37 + board/bananapi/bananapi-m2-ultra/boot.cmd | 7 + board/bananapi/bananapi-m2-ultra/genimage.cfg | 34 + board/bananapi/bananapi-m2-ultra/readme.txt | 35 + board/bananapi/bananapi-m2-zero/boot.cmd | 7 + board/bananapi/bananapi-m2-zero/genimage.cfg | 34 + board/bananapi/bananapi-m2-zero/readme.txt | 34 + board/bananapi/bananapi-m64/boot.cmd | 6 + board/bananapi/bananapi-m64/genimage.cfg | 40 + board/bananapi/bananapi-m64/readme.txt | 37 + board/beagleboardx15/genimage.cfg | 27 + board/beagleboardx15/readme.txt | 49 + board/beaglebone/genimage.cfg | 35 + board/beaglebone/linux-sgx.fragment | 13 + ...1-keep-jtag-clock-alive-for-debugger.patch | 16 + board/beaglebone/post-build.sh | 4 + board/beaglebone/readme.txt | 62 + .../rootfs_overlay/etc/qt5/eglfs_kms_cfg.json | 15 + board/beaglebone/uEnv.txt | 11 + board/beagleboneai/genimage.cfg | 30 + .../patches/uboot/0001-am57xx_evm-fixes.patch | 839 ++ board/beagleboneai/post-build.sh | 4 + board/beagleboneai/readme.txt | 28 + board/beagleboneai/uEnv.txt | 6 + board/beaglev/extlinux.conf | 4 + board/beaglev/genimage.cfg | 12 + board/beaglev/post-build.sh | 11 + board/beaglev/readme.txt | 124 + board/beelink/gs1/extlinux.conf | 4 + board/beelink/gs1/genimage.cfg | 34 + board/beelink/gs1/post-build.sh | 4 + board/boundarydevices/common/boot.cmd | 170 + board/boundarydevices/common/genimage.cfg | 18 + board/boundarydevices/common/post-build.sh | 29 + board/boundarydevices/common/post-image.sh | 5 + board/boundarydevices/common/readme.txt | 51 + board/boundarydevices/common/upgrade.cmd | 230 + board/broadcom/northstar/linux.config | 70 + board/broadcom/northstar/post-image.sh | 40 + board/broadcom/northstar/readme.txt | 38 + board/canaan/k210-soc/busybox-tiny.config | 231 + board/canaan/k210-soc/genimage.cfg | 30 + board/canaan/k210-soc/linux-sdcard.config | 4 + board/canaan/k210-soc/post-build.sh | 28 + board/canaan/k210-soc/rootfs_overlay/init | 1 + .../canaan/k210-soc/rootfs_overlay/sbin/init | 41 + board/canaan/k210-soc/uboot.config | 1 + board/canaan/kd233/linux-cpio.config | 2 + board/canaan/kd233/readme.txt | 149 + board/chromebook/elm/kernel.args | 1 + board/chromebook/elm/kernel.its | 38 + board/chromebook/elm/linux.config | 477 + board/chromebook/elm/readme.txt | 56 + board/chromebook/elm/sign.sh | 41 + board/chromebook/mksd.sh | 69 + board/chromebook/snow/kernel.args | 1 + board/chromebook/snow/kernel.its | 37 + .../chromebook/snow/linux-4.15-dts-tpm.patch | 27 + board/chromebook/snow/linux-4.15.fragment | 2 + board/chromebook/snow/readme.txt | 137 + board/chromebook/snow/sign.sh | 41 + board/ci20/genimage.cfg | 28 + .../0001-mips-Remove-default-endiannes.patch | 66 + board/ci20/readme.txt | 46 + board/ci20/uboot-env.txt | 10 + board/cubietech/cubieboard2/boot.cmd | 5 + board/cubietech/cubieboard2/genimage.cfg | 38 + board/cubietech/cubieboard2/post-image.sh | 16 + board/embest/riotboard/genimage.cfg | 17 + board/embest/riotboard/readme.txt | 38 + .../boot/extlinux/extlinux.conf | 6 + board/engicam/geam6ul/genimage.cfg | 39 + board/engicam/geam6ul/readme.txt | 66 + board/engicam/icorem6/genimage.cfg | 42 + board/engicam/icorem6/linux_qt5.fragment | 4 + board/engicam/icorem6/readme.txt | 93 + .../root/imx6qdl-icore-ofcap10.json | 11 + .../root/imx6qdl-icore-ofcap12.json | 11 + .../rootfs_overlay/root/imx6qdl-icore.json | 11 + board/engicam/icorem6_rqs/genimage.cfg | 40 + board/engicam/icorem6_rqs/readme.txt | 69 + board/engicam/isiot/genimage.cfg | 39 + board/engicam/isiot/readme.txt | 66 + board/firefly/roc-rk3399-pc/extlinux.conf | 4 + board/firefly/roc-rk3399-pc/genimage.cfg | 22 + board/firefly/roc-rk3399-pc/post-build.sh | 5 + board/firefly/roc-rk3399-pc/readme.txt | 40 + .../common/imx/genimage.cfg.template | 41 + .../common/imx/genimage.cfg.template_imx8 | 41 + .../imx/genimage.cfg.template_no_boot_part | 16 + .../genimage.cfg.template_no_boot_part_spl | 31 + .../common/imx/genimage.cfg.template_spl | 47 + .../common/imx/imx8-bootloader-prepare.sh | 74 + board/freescale/common/imx/post-image.sh | 113 + .../common/mxs/genimage.cfg.template | 40 + board/freescale/common/mxs/post-image.sh | 54 + board/freescale/imx23evk/readme.txt | 48 + board/freescale/imx25pdk/readme.txt | 54 + board/freescale/imx28evk/readme.txt | 57 + board/freescale/imx51evk/readme.txt | 54 + .../freescale/imx6-sabresd/linux_qt5.fragment | 4 + board/freescale/imx6-sabresd/readme.txt | 111 + .../rootfs_overlay/root/sabresd.json | 15 + ...-boot-Linux-to-init-in-mfgtools-mode.patch | 37 + board/freescale/imx6sabre/readme.txt | 171 + board/freescale/imx6slevk/readme.txt | 14 + board/freescale/imx6sxsdb/readme.txt | 14 + board/freescale/imx6ulevk/readme.txt | 74 + board/freescale/imx6ullevk/readme.txt | 71 + board/freescale/imx7dsdb/readme.txt | 54 + .../boot/extlinux/extlinux.conf | 4 + board/freescale/imx8mmevk/readme.txt | 71 + board/freescale/imx8mnevk/readme.txt | 73 + board/freescale/imx8mpevk/readme.txt | 71 + board/freescale/imx8mqevk/readme.txt | 86 + board/freescale/imx8qmmek/readme.txt | 76 + board/freescale/imx8qxpmek/readme.txt | 67 + board/freescale/p1025twr/readme.txt | 25 + board/freescale/t1040_t2080/readme.txt | 51 + board/freescale/warpboard/README | 77 + board/freescale/warpboard/linux.fragment | 1 + .../lib/firmware/brcm/brcmfmac4330-sdio.txt | 40 + board/friendlyarm/nanopc-t4/extlinux.conf | 4 + board/friendlyarm/nanopc-t4/genimage.cfg | 39 + board/friendlyarm/nanopc-t4/post-build.sh | 5 + board/friendlyarm/nanopc-t4/readme.txt | 45 + board/friendlyarm/nanopi-a64/boot.cmd | 6 + board/friendlyarm/nanopi-a64/genimage.cfg | 40 + board/friendlyarm/nanopi-a64/readme.txt | 37 + board/friendlyarm/nanopi-m1-plus/boot.cmd | 8 + board/friendlyarm/nanopi-m1-plus/genimage.cfg | 36 + board/friendlyarm/nanopi-m1-plus/readme.txt | 29 + board/friendlyarm/nanopi-m1/boot.cmd | 8 + board/friendlyarm/nanopi-m1/genimage.cfg | 37 + board/friendlyarm/nanopi-m1/readme.txt | 29 + board/friendlyarm/nanopi-m4/extlinux.conf | 4 + board/friendlyarm/nanopi-m4/genimage.cfg | 39 + board/friendlyarm/nanopi-m4/post-build.sh | 5 + board/friendlyarm/nanopi-m4/readme.txt | 45 + .../nanopi-neo-plus2/extlinux.conf | 4 + .../friendlyarm/nanopi-neo-plus2/genimage.cfg | 40 + .../nanopi-neo-plus2/linux-extras.config | 10 + .../nanopi-neo-plus2/post-build.sh | 4 + board/friendlyarm/nanopi-neo-plus2/readme.txt | 37 + ...3430-sdio.friendlyarm,nanopi-neo-plus2.txt | 53 + board/friendlyarm/nanopi-neo2/boot.cmd | 6 + board/friendlyarm/nanopi-neo2/genimage.cfg | 40 + board/friendlyarm/nanopi-neo2/readme.txt | 37 + board/friendlyarm/nanopi-neo4/extlinux.conf | 4 + board/friendlyarm/nanopi-neo4/genimage.cfg | 22 + board/friendlyarm/nanopi-neo4/post-build.sh | 5 + board/friendlyarm/nanopi-neo4/readme.txt | 53 + board/friendlyarm/nanopi-r1/boot.cmd | 8 + board/friendlyarm/nanopi-r1/genimage.cfg | 37 + .../nanopi-r1/kernel/linux-extras.config | 2 + .../nanopi-r1/kernel/sun8i-h3-nanopi-r1.dts | 170 + board/friendlyarm/nanopi-r1/readme.txt | 29 + .../nanopi-r1/uboot/nanopi_r1_defconfig | 22 + .../nanopi-r1/uboot/sun8i-h3-nanopi-r1.dts | 102 + board/friendlyarm/nanopi-r2s/extlinux.conf | 4 + board/friendlyarm/nanopi-r2s/genimage.cfg | 22 + board/friendlyarm/nanopi-r2s/post-build.sh | 5 + board/friendlyarm/nanopi-r2s/readme.txt | 57 + board/globalscale/espressobin/genimage.cfg | 11 + .../espressobin/linux-extras.config | 14 + board/globalscale/espressobin/readme.txt | 90 + board/grinn/chiliboard/genimage.cfg | 32 + board/grinn/chiliboard/readme.txt | 46 + board/grinn/liteboard/genimage.cfg | 49 + board/grinn/liteboard/readme.txt | 45 + board/hardkernel/odroidc2/boot.cmd | 11 + board/hardkernel/odroidc2/genimage.cfg | 40 + board/hardkernel/odroidc2/post-image.sh | 21 + board/hardkernel/odroidc2/readme.txt | 64 + .../rootfs_overlay/etc/init.d/S09modload | 23 + board/hardkernel/odroidxu4/boot.ini | 38 + board/hardkernel/odroidxu4/genimage.cfg | 55 + board/hardkernel/odroidxu4/post-image.sh | 24 + board/hardkernel/odroidxu4/readme.txt | 37 + board/intel/galileo/genimage.cfg | 29 + board/intel/galileo/grub.cfg | 11 + board/intel/galileo/linux-3.14.config | 308 + ...relocs-Make-per_cpu_load_addr-static.patch | 39 + board/intel/galileo/post-build.sh | 2 + board/intel/galileo/post-image.sh | 13 + board/intel/galileo/readme.txt | 52 + .../rootfs_overlay/etc/init.d/S09modload | 33 + .../etc/modules-load.galileo/galileo.conf | 3 + .../modules-load.galileo/galileo_gen2.conf | 4 + board/kontron/bl-imx8mm/extlinux.conf | 4 + board/kontron/bl-imx8mm/genimage.cfg | 18 + board/kontron/bl-imx8mm/post-build.sh | 7 + board/kontron/bl-imx8mm/readme.txt | 85 + board/kontron/pitx-imx8m/extlinux.conf | 4 + board/kontron/pitx-imx8m/genimage.cfg | 17 + ...le-use-pkg-config-to-get-luuid-and-l.patch | 33 + board/kontron/pitx-imx8m/post-build.sh | 7 + board/kontron/pitx-imx8m/readme.txt | 74 + board/kontron/smarc-sal28/extlinux.conf | 4 + board/kontron/smarc-sal28/genimage.cfg | 24 + board/kontron/smarc-sal28/post-build.sh | 7 + board/kontron/smarc-sal28/readme.txt | 88 + .../udev/rules.d/70-enetc-networking.rules | 8 + .../udev/rules.d/70-felix-networking.rules | 6 + .../udev/rules.d/71-smarc-networking.rules | 19 + board/lego/ev3/busybox.fragment | 3 + board/lego/ev3/genimage.cfg | 73 + board/lego/ev3/linux.fragment | 68 + board/lego/ev3/post-image.sh | 14 + board/lego/ev3/readme.txt | 99 + board/lemaker/bananapro/boot.cmd | 5 + board/lemaker/bananapro/genimage.cfg | 38 + board/lemaker/bananapro/linux-wifi.fragment | 24 + ...s-sun7i-a20-bananapro.dts-disable-00.patch | 44 + board/lemaker/bananapro/post-build.sh | 12 + board/lemaker/bananapro/post-image.sh | 16 + board/lemaker/bananapro/readme.txt | 62 + .../brcmfmac43362-sdio.lemaker,bananapro.txt | 1 + .../lib/firmware/brcm/brcmfmac43362-sdio.txt | 56 + board/librecomputer/lafrite/genimage.cfg | 10 + .../lafrite/overlay/extlinux/extlinux.conf | 4 + board/librecomputer/lafrite/readme.txt | 34 + board/licheepi/boot.cmd | 4 + board/licheepi/genimage.cfg | 36 + board/licheepi/readme.txt | 62 + board/linksprite/pcduino/linux-extras.config | 16 + board/linksprite/pcduino/readme.txt | 42 + board/mender/x86_64/genimage-efi.cfg | 40 + board/mender/x86_64/linux.config | 64 + board/mender/x86_64/mender_grubenv_defines | 25 + board/mender/x86_64/overlay/etc/fstab | 7 + .../x86_64/overlay/etc/mender/mender.conf | 11 + board/mender/x86_64/post-build.sh | 54 + board/mender/x86_64/post-image-efi.sh | 72 + board/mender/x86_64/readme.txt | 69 + board/microchip/sam9x60ek_mmc/genimage.cfg | 32 + board/microchip/sama5d2_icp/genimage.cfg | 32 + board/microchip/sama7g5ek/genimage.cfg | 31 + board/minnowboard/genimage.cfg | 33 + board/minnowboard/grub.cfg | 6 + board/minnowboard/linux.config | 61 + board/minnowboard/post-build.sh | 10 + board/minnowboard/readme.txt | 28 + board/nexbox/a95x/boot.txt | 11 + board/nexbox/a95x/genimage.cfg | 31 + board/nexbox/a95x/post-build.sh | 12 + board/nexbox/a95x/post-image.sh | 14 + board/nexbox/a95x/readme.txt | 48 + board/nezha/genimage.cfg | 37 + .../nezha/overlay/boot/extlinux/extlinux.conf | 4 + ...un20i-d1.dtsi-adjust-plic-compatible.patch | 36 + ...pport-building-u-boot.toc1-for-nezda.patch | 54 + board/nezha/readme.txt | 24 + board/octavo/osd32mp1-brk/genimage.cfg | 23 + .../linux-dts/stm32mp157c-osd32mp1-brk.dts | 1167 ++ .../overlay/boot/extlinux/extlinux.conf | 4 + .../uboot/0001-osd32mp1-BRK-board-added.patch | 2349 +++ board/octavo/osd32mp1-brk/readme.txt | 35 + .../osd32mp1-brk/tfa-dts/osd32mp1_ddr.dtsi | 119 + .../tfa-dts/stm32mp157c-osd32mp1-brk.dts | 581 + board/octavo/osd32mp1-red/genimage.cfg | 23 + .../osd32mp1-red/linux-dts/osd32mp1-red.dts | 1469 ++ .../linux-dts/stm32mp157c-osd32mp1-red.dtsi | 2077 +++ .../overlay/boot/extlinux/extlinux.conf | 4 + ...Add-OSD32MP1-RED-Device-Tree-support.patch | 1730 +++ ...5_trusted_defconfig-disable-environm.patch | 32 + board/octavo/osd32mp1-red/readme.txt | 37 + .../osd32mp1-red/tfa-dts/osd32mp1-red.dts | 615 + ...m32mp15-osd32mp1-ddr3-1x4Gb-1066-binG.dtsi | 119 + board/olimex/a10_olinuxino/boot.cmd | 1 + board/olimex/a10_olinuxino/genimage.cfg | 1 + board/olimex/a10_olinuxino/post-build.sh | 1 + board/olimex/a10_olinuxino/readme.txt | 57 + board/olimex/a13_olinuxino/boot.cmd | 7 + board/olimex/a13_olinuxino/genimage.cfg | 34 + board/olimex/a13_olinuxino/post-build.sh | 7 + board/olimex/a13_olinuxino/readme.txt | 43 + board/olimex/a20_olinuxino/boot.cmd | 5 + board/olimex/a20_olinuxino/genimage.cfg | 17 + .../a20_olinuxino/linux-disable-lima.fragment | 2 + board/olimex/a20_olinuxino/post-build.sh | 3 + board/olimex/a20_olinuxino/readme.txt | 69 + .../boot/extlinux/extlinux.conf | 4 + board/olimex/a33_olinuxino/boot.cmd | 5 + board/olimex/a33_olinuxino/genimage.cfg | 17 + board/olimex/a33_olinuxino/post-build.sh | 2 + board/olimex/a33_olinuxino/readme.txt | 50 + board/olimex/a64-olinuxino/boot.cmd | 6 + board/olimex/a64-olinuxino/genimage.cfg | 34 + board/olimex/a64-olinuxino/readme.txt | 37 + .../imx233_olinuxino/linux-wifi.fragment | 18 + board/olimex/imx233_olinuxino/readme.txt | 29 + board/olimex/stmp1_olinuxino/genimage.cfg | 25 + board/olimex/stmp1_olinuxino/linux.config | 125 + board/olimex/stmp1_olinuxino/readme.txt | 53 + .../boot/extlinux/extlinux.conf | 4 + board/olpc/genimage.cfg | 9 + board/olpc/linux.config | 71 + board/olpc/olpc.fth | 47 + board/olpc/post-build.sh | 4 + board/olpc/readme.txt | 98 + board/olpc/xo-1.75/linux.config | 55 + board/olpc/xo-1/linux.config | 80 + board/openblocks/a6/readme.txt | 78 + board/orangepi/common/extlinux.conf | 4 + board/orangepi/common/genimage.cfg | 20 + board/orangepi/common/post-build.sh | 34 + board/orangepi/orangepi-lite/boot.cmd | 8 + board/orangepi/orangepi-lite/genimage.cfg | 37 + .../orangepi-lite/linux-extras.config | 15 + board/orangepi/orangepi-lite/readme.txt | 29 + board/orangepi/orangepi-lite2/extlinux.conf | 4 + board/orangepi/orangepi-lite2/genimage.cfg | 34 + board/orangepi/orangepi-lite2/post-build.sh | 4 + board/orangepi/orangepi-lite2/readme.txt | 44 + .../lib/firmware/brcm/brcmfmac43455-sdio.txt | 82 + .../orangepi/orangepi-one-plus/extlinux.conf | 4 + board/orangepi/orangepi-one-plus/genimage.cfg | 34 + .../orangepi/orangepi-one-plus/post-build.sh | 4 + board/orangepi/orangepi-one-plus/readme.txt | 37 + board/orangepi/orangepi-one/readme.txt | 29 + .../orangepi-pc-plus/linux-extras.config | 8 + board/orangepi/orangepi-pc-plus/readme.txt | 29 + board/orangepi/orangepi-pc/linux.fragment | 3 + board/orangepi/orangepi-pc/readme.txt | 29 + board/orangepi/orangepi-pc2/boot.cmd | 6 + board/orangepi/orangepi-pc2/genimage.cfg | 40 + board/orangepi/orangepi-pc2/readme.txt | 37 + board/orangepi/orangepi-plus/boot.cmd | 8 + board/orangepi/orangepi-plus/genimage.cfg | 36 + board/orangepi/orangepi-plus/readme.txt | 29 + board/orangepi/orangepi-prime/boot.cmd | 6 + board/orangepi/orangepi-prime/genimage.cfg | 40 + board/orangepi/orangepi-prime/readme.txt | 37 + board/orangepi/orangepi-r1/boot.cmd | 8 + board/orangepi/orangepi-r1/genimage.cfg | 43 + .../orangepi/orangepi-r1/linux-extras.config | 11 + board/orangepi/orangepi-r1/readme.txt | 29 + board/orangepi/orangepi-rk3399/extlinux.conf | 4 + board/orangepi/orangepi-rk3399/genimage.cfg | 38 + board/orangepi/orangepi-rk3399/post-build.sh | 5 + board/orangepi/orangepi-rk3399/readme.txt | 56 + board/orangepi/orangepi-win/boot.cmd | 6 + board/orangepi/orangepi-win/genimage.cfg | 40 + board/orangepi/orangepi-win/readme.txt | 37 + board/orangepi/orangepi-zero-plus/boot.cmd | 6 + .../orangepi/orangepi-zero-plus/genimage.cfg | 40 + board/orangepi/orangepi-zero-plus/readme.txt | 34 + .../orangepi-zero-plus2/linux-extras.config | 10 + board/orangepi/orangepi-zero-plus2/readme.txt | 37 + .../lib/firmware/brcm/brcmfmac43430-sdio.txt | 54 + .../orangepi-zero/linux-extras.fragment | 20 + ...e-pi-zero-interrupt-triggering-xr819.patch | 35 + ...RM-dts-orange-pi-zero-enable-spi-nor.patch | 42 + ...ARM-dts-orange-pi-zero-enable-spidev.patch | 42 + ...4-ARM-dts-orange-pi-zero-enable-uart.patch | 35 + board/orangepi/orangepi-zero/readme.txt | 29 + board/pandaboard/genimage.cfg | 27 + board/pandaboard/readme.txt | 46 + board/pc/genimage-bios.cfg | 23 + board/pc/genimage-efi.cfg | 32 + board/pc/grub-bios.cfg | 6 + board/pc/grub-efi.cfg | 6 + board/pc/linux.config | 85 + board/pc/post-build.sh | 15 + board/pc/post-image-efi.sh | 8 + board/pc/readme.txt | 72 + board/pcengines/apu2/isolinux.cfg | 6 + board/pcengines/apu2/linux.config | 51 + board/pcengines/apu2/readme.txt | 40 + board/pine64/pine64/boot.cmd | 6 + board/pine64/pine64/genimage.cfg | 40 + board/pine64/pine64/readme.txt | 38 + board/pine64/rock64/extlinux.conf | 4 + board/pine64/rock64/genimage.cfg | 23 + ...328-needs-itb-image-to-boot-properly.patch | 32 + board/pine64/rock64/post-build.sh | 9 + board/pine64/rock64/readme.txt | 95 + board/pine64/rockpro64/extlinux.conf | 4 + board/pine64/rockpro64/genimage.cfg | 39 + board/pine64/rockpro64/post-build.sh | 5 + board/pine64/rockpro64/readme.txt | 60 + board/pine64/sopine/boot.cmd | 6 + board/pine64/sopine/genimage.cfg | 40 + board/pine64/sopine/readme.txt | 38 + board/qemu/aarch64-sbsa/assemble-flash-images | 11 + board/qemu/aarch64-sbsa/genimage.cfg | 31 + board/qemu/aarch64-sbsa/grub.cfg | 6 + board/qemu/aarch64-sbsa/linux.config | 68 + board/qemu/aarch64-sbsa/readme.txt | 32 + board/qemu/aarch64-virt/linux.config | 75 + board/qemu/aarch64-virt/readme.txt | 5 + board/qemu/arm-versatile/linux.fragment | 66 + board/qemu/arm-versatile/readme.txt | 6 + board/qemu/arm-vexpress-tz/linux.fragment | 3 + board/qemu/arm-vexpress-tz/post-build.sh | 9 + board/qemu/arm-vexpress-tz/readme.txt | 135 + board/qemu/arm-vexpress-tz/u-boot.config | 8 + board/qemu/arm-vexpress/readme.txt | 9 + board/qemu/m68k-mcf5208/linux.config | 28 + board/qemu/m68k-mcf5208/readme.txt | 5 + board/qemu/m68k-q800/linux.config | 26 + board/qemu/m68k-q800/readme.txt | 5 + ...xilinx-xemaclite-add-2.00.b-revision.patch | 34 + board/qemu/microblazebe-mmu/linux.config | 20 + board/qemu/microblazebe-mmu/readme.txt | 5 + ...xilinx-xemaclite-add-2.00.b-revision.patch | 34 + board/qemu/microblazeel-mmu/linux.config | 19 + board/qemu/microblazeel-mmu/readme.txt | 5 + board/qemu/mips32r2-malta/linux.config | 28 + board/qemu/mips32r2-malta/readme.txt | 7 + board/qemu/mips32r2el-malta/linux.config | 29 + board/qemu/mips32r2el-malta/readme.txt | 7 + board/qemu/mips32r6-malta/linux.config | 28 + board/qemu/mips32r6-malta/readme.txt | 5 + board/qemu/mips32r6el-malta/linux.config | 28 + board/qemu/mips32r6el-malta/readme.txt | 5 + board/qemu/mips64-malta/linux.config | 32 + board/qemu/mips64-malta/readme.txt | 6 + board/qemu/mips64el-malta/linux.config | 33 + board/qemu/mips64el-malta/readme.txt | 6 + board/qemu/mips64r6-malta/linux.config | 32 + board/qemu/mips64r6-malta/readme.txt | 5 + board/qemu/mips64r6el-malta/linux.config | 32 + board/qemu/mips64r6el-malta/readme.txt | 5 + board/qemu/nios2-10m50/linux.fragment | 3 + board/qemu/nios2-10m50/readme.txt | 5 + board/qemu/or1k/linux.config | 30 + board/qemu/or1k/readme.txt | 7 + board/qemu/post-image.sh | 61 + board/qemu/ppc-bamboo/linux.fragment | 6 + board/qemu/ppc-bamboo/readme.txt | 5 + board/qemu/ppc-e500mc/linux.fragment | 10 + board/qemu/ppc-e500mc/readme.txt | 5 + board/qemu/ppc-g3beige/linux.config | 28 + board/qemu/ppc-g3beige/readme.txt | 6 + board/qemu/ppc-mac99/linux.fragment | 3 + board/qemu/ppc-mac99/readme.txt | 3 + board/qemu/ppc-mpc8544ds/linux.config | 38 + ...x-mcpu-options-for-SPE-only-compiler.patch | 53 + board/qemu/ppc-mpc8544ds/readme.txt | 5 + board/qemu/ppc64-e5500/linux.fragment | 10 + board/qemu/ppc64-e5500/readme.txt | 5 + board/qemu/ppc64-pseries/readme.txt | 5 + board/qemu/ppc64le-powernv8/readme.txt | 5 + board/qemu/ppc64le-pseries/readme.txt | 5 + board/qemu/riscv32-virt/readme.txt | 5 + board/qemu/riscv64-virt/readme.txt | 7 + board/qemu/s390x/readme.txt | 8 + board/qemu/sh4-r2d/linux.config | 38 + board/qemu/sh4-r2d/readme.txt | 6 + board/qemu/sh4eb-r2d/linux.config | 38 + board/qemu/sh4eb-r2d/readme.txt | 6 + board/qemu/sparc-ss10/linux.config | 31 + board/qemu/sparc-ss10/readme.txt | 5 + board/qemu/sparc64-sun4u/linux.config | 25 + board/qemu/sparc64-sun4u/readme.txt | 5 + board/qemu/x86/linux.config | 52 + board/qemu/x86/post-build.sh | 11 + board/qemu/x86/readme.txt | 7 + board/qemu/x86_64/linux.config | 53 + board/qemu/x86_64/post-build.sh | 11 + board/qemu/x86_64/readme.txt | 7 + board/qemu/xtensa-lx60/linux-nommu.config | 39 + board/qemu/xtensa-lx60/linux.config | 36 + board/qemu/xtensa-lx60/readme.txt | 7 + ...0001-DTS-for-QMTech-Zynq-starter-kit.patch | 418 + board/qmtech/zynq/readme.txt | 76 + board/radxa/rockpi-4/extlinux.conf | 4 + board/radxa/rockpi-4/genimage.cfg | 39 + board/radxa/rockpi-4/post-build.sh | 5 + board/radxa/rockpi-4/readme.txt | 61 + board/radxa/rockpi-n10/extlinux.conf | 4 + board/radxa/rockpi-n10/genimage.cfg | 39 + board/radxa/rockpi-n10/post-build.sh | 5 + board/radxa/rockpi-n10/readme.txt | 61 + board/radxa/rockpi-n8/extlinux.conf | 4 + board/radxa/rockpi-n8/genimage.cfg | 39 + board/radxa/rockpi-n8/post-build.sh | 5 + board/radxa/rockpi-n8/readme.txt | 61 + board/raspberrypi/config_0w.txt | 29 + board/raspberrypi/config_3.txt | 29 + board/raspberrypi/config_3_64bit.txt | 32 + board/raspberrypi/config_3_qt5we.txt | 26 + board/raspberrypi/config_4.txt | 29 + board/raspberrypi/config_4_64bit.txt | 36 + board/raspberrypi/config_cm4io.txt | 33 + board/raspberrypi/config_cm4io_64bit.txt | 37 + board/raspberrypi/config_default.txt | 23 + board/raspberrypi/config_zero2w.txt | 29 + board/raspberrypi/genimage-raspberrypi.cfg | 33 + board/raspberrypi/genimage-raspberrypi0.cfg | 31 + board/raspberrypi/genimage-raspberrypi0w.cfg | 32 + board/raspberrypi/genimage-raspberrypi2.cfg | 31 + .../raspberrypi/genimage-raspberrypi3-64.cfg | 34 + board/raspberrypi/genimage-raspberrypi3.cfg | 34 + .../raspberrypi/genimage-raspberrypi4-64.cfg | 31 + board/raspberrypi/genimage-raspberrypi4.cfg | 31 + .../genimage-raspberrypicm4io-64.cfg | 31 + .../raspberrypi/genimage-raspberrypicm4io.cfg | 31 + .../genimage-raspberrypizero2w.cfg | 32 + board/raspberrypi/post-build.sh | 11 + board/raspberrypi/post-image.sh | 27 + board/raspberrypi/readme.txt | 158 + board/raspberrypi0 | 1 + board/raspberrypi0w | 1 + board/raspberrypi2 | 1 + board/raspberrypi3 | 1 + board/raspberrypi3-64 | 1 + board/raspberrypi4 | 1 + board/raspberrypi4-64 | 1 + board/raspberrypicm4io | 1 + board/raspberrypicm4io-64 | 1 + board/raspberrypizero2w | 1 + board/roseapplepi/genimage.cfg | 45 + board/roseapplepi/linux.config | 70 + ...-include-linux-compiler-.h-with-Linu.patch | 809 + board/roseapplepi/post-build.sh | 4 + board/roseapplepi/uEnv.txt | 3 + board/seeed/stm32mp157c-odyssey/genimage.cfg | 22 + board/seeed/stm32mp157c-odyssey/linux.config | 182 + .../overlay/boot/extlinux/extlinux.conf | 4 + ...-fix-stm32mp157c-odyssey-card-detect.patch | 36 + board/seeed/stm32mp157c-odyssey/readme.txt | 38 + ...e-redundant-YYLOC-global-declaration.patch | 28 + board/sheevaplug/readme.txt | 36 + board/sifive/hifive-unleashed/boot.cmd | 4 + .../hifive-unleashed/genimage_sdcard.cfg | 23 + .../hifive-unleashed/genimage_spi-nor.cfg | 19 + .../hifive-unleashed/linux.config.fragment | 10 + board/sifive/hifive-unleashed/post-build.sh | 2 + board/sifive/hifive-unleashed/readme.txt | 115 + board/sinovoip/m1-plus/boot.cmd | 5 + board/sinovoip/m1-plus/genimage.cfg | 38 + board/sinovoip/m1-plus/linux-wifi.fragment | 10 + ...nanapi-m1-plus-Disable-OOB-IRQ-for-b.patch | 39 + board/sinovoip/m1-plus/post-build.sh | 4 + board/sinovoip/m1-plus/readme.txt | 64 + ...rcmfmac43362-sdio.sinovoip,bpi-m1-plus.txt | 1 + .../lib/firmware/brcm/brcmfmac43362-sdio.txt | 56 + board/sinovoip/m2-plus/boot.cmd | 7 + board/sinovoip/m2-plus/genimage.cfg | 34 + board/sipeed/maix-bit/linux-cpio.config | 2 + board/sipeed/maix-bit/readme.txt | 316 + board/sipeed/maix-dock/linux-cpio.config | 2 + board/sipeed/maix-dock/readme.txt | 321 + board/sipeed/maix-go/linux-cpio.config | 2 + board/sipeed/maix-go/readme.txt | 320 + board/sipeed/maixduino/linux-cpio.config | 2 + board/sipeed/maixduino/readme.txt | 292 + board/solidrun/clearfog/extlinux.conf | 4 + board/solidrun/clearfog/genimage.cfg | 16 + board/solidrun/clearfog/linux.fragment | 1 + board/solidrun/clearfog/post-build.sh | 5 + board/solidrun/clearfog/readme.txt | 61 + board/solidrun/clearfog_gt_8k/extlinux.conf | 4 + board/solidrun/clearfog_gt_8k/genimage.cfg | 1 + .../clearfog_gt_8k/linux-extras.config | 6 + .../clearfog_gt_8k/post-build-mainline.sh | 1 + board/solidrun/clearfog_gt_8k/readme.txt | 61 + .../clearfog_gt_8k/uboot-fragment.config | 1 + board/solidrun/macchiatobin/extlinux.conf | 4 + board/solidrun/macchiatobin/genimage.cfg | 16 + .../solidrun/macchiatobin/linux-extras.config | 3 + .../macchiatobin/post-build-mainline.sh | 5 + board/solidrun/macchiatobin/post-build.sh | 5 + board/solidrun/macchiatobin/readme.txt | 79 + board/solidrun/macchiatobin/uEnv-example.txt | 7 + .../macchiatobin/uboot-fragment.config | 2 + board/solidrun/mx6cubox/readme.txt | 18 + .../boot/extlinux/extlinux.conf | 4 + board/spike/riscv64/readme.txt | 39 + board/spike/riscv64/start.sh | 17 + .../common/stm32f4xx/stm32-post-build.sh | 8 + .../common/stm32mp157/genimage.cfg.template | 23 + .../common/stm32mp157/post-image.sh | 38 + .../stm32f429-disco/flash.sh | 26 + .../stm32f429-disco/linux.config | 120 + .../stm32f429-disco/readme.txt | 37 + .../stm32f469-disco/extlinux.conf | 4 + .../stm32f469-disco/flash_sd.sh | 18 + .../stm32f469-disco/flash_xip.sh | 20 + .../stm32f469-disco/genimage.cfg | 27 + .../stm32f469-disco/linux-sd.fragment | 7 + .../stm32f469-disco/linux-xip.config | 120 + .../stm32f469-disco/post-build.sh | 4 + .../stm32f469-disco/readme.txt | 45 + .../stm32f469-disco/readme_xip.txt | 24 + .../stm32mp157a-dk1/linux.config | 182 + .../overlay/boot/extlinux/extlinux.conf | 4 + .../stm32mp157a-dk1/readme.txt | 38 + .../stm32mp157c-dk2/linux.config | 182 + .../overlay/boot/extlinux/extlinux.conf | 4 + .../stm32mp157c-dk2/readme.txt | 38 + board/synopsys/axs10x/post-build.sh | 11 + board/synopsys/axs10x/uboot-fragment.config | 1 + board/synopsys/hsdk/genimage.cfg | 29 + board/synopsys/hsdk/linux.fragment | 3 + board/synopsys/hsdk/readme.txt | 33 + board/synopsys/hsdk/uboot.env.txt | 9 + board/technexion/imx6ulpico/readme.txt | 70 + .../boot/extlinux/extlinux.conf | 4 + .../lib/firmware/brcm/brcmfmac4339-sdio.txt | 102 + board/technexion/imx7dpico/readme.txt | 124 + .../boot/extlinux/extlinux.conf | 4 + .../lib/firmware/brcm/brcmfmac4339-sdio.txt | 99 + board/technexion/imx8mmpico/readme.txt | 100 + board/technexion/imx8mpico/readme.txt | 99 + board/technologic/ts4900/genimage.cfg | 10 + board/technologic/ts4900/post-image.sh | 17 + board/technologic/ts4900/readme.txt | 52 + .../fs-overlay/boot/syslinux/syslinux.cfg | 9 + board/technologic/ts5500/linux-4.14.config | 111 + board/technologic/ts5500/readme.txt | 52 + board/technologic/ts7680/genimage.cfg | 14 + board/technologic/ts7680/readme.txt | 50 + .../de10nano_cyclone5/barebox-env/boot/mmc | 8 + .../barebox-env/init/automount | 5 + .../barebox-env/nv/boot.default | 1 + .../barebox-env/nv/linux.bootargs.console | 1 + board/terasic/de10nano_cyclone5/genimage.cfg | 43 + board/terasic/de10nano_cyclone5/readme.txt | 41 + board/toradex/apalis-imx6/genimage.cfg | 15 + board/toradex/apalis-imx6/post-image.sh | 20 + board/toradex/apalis-imx6/readme.txt | 53 + board/toradex/apalis-imx6/uEnv.txt | 6 + board/udoo/common/boot.scr.txt | 7 + board/udoo/common/post-build.sh | 3 + .../linux/0000-udoo-disable-usbh1.patch | 26 + board/udoo/mx6qdl/readme.txt | 17 + board/udoo/neo/readme.txt | 16 + board/uevm5432/genimage.cfg | 27 + board/uevm5432/readme.txt | 40 + board/wandboard/readme.txt | 14 + .../boot/extlinux/extlinux.conf | 4 + board/warp7/readme.txt | 118 + .../lib/firmware/brcm/brcmfmac43430-sdio.txt | 42 + board/zynq/extlinux.conf | 4 + board/zynq/genimage.cfg | 32 + board/zynq/microzed/uboot.fragment | 1 + board/zynq/post-build.sh | 8 + board/zynq/post-image.sh | 15 + board/zynq/readme.txt | 86 + board/zynq/zc706/uboot.fragment | 1 + board/zynq/zed/uboot.fragment | 1 + board/zynqmp/genimage.cfg | 31 + board/zynqmp/kria/kv260/kv260.sh | 12 + board/zynqmp/kria/kv260/pm_cfg_obj.c | 556 + board/zynqmp/kria/kv260/uboot.fragment | 16 + ...qmp-sm-k26-revA-Fix-DP-PLL-configura.patch | 39 + board/zynqmp/kria/readme.txt | 94 + board/zynqmp/post-build.sh | 16 + board/zynqmp/post-image.sh | 15 + board/zynqmp/readme.txt | 61 + board/zynqmp/zcu102/pm_cfg_obj.c | 563 + board/zynqmp/zcu102/uboot.fragment | 1 + ...qmp-zcu102-revA-Fix-DP-PLL-configura.patch | 40 + board/zynqmp/zcu106/pm_cfg_obj.c | 562 + board/zynqmp/zcu106/uboot.fragment | 1 + boot/Config.in | 28 + ...fno-builtin-to-fix-build-with-gcc-10.patch | 46 + .../0002-Makefile-drop-nostartfiles.patch | 40 + boot/afboot-stm32/Config.in | 27 + boot/afboot-stm32/afboot-stm32.hash | 2 + boot/afboot-stm32/afboot-stm32.mk | 22 + boot/arm-trusted-firmware/Config.in | 229 + .../arm-trusted-firmware.hash | 3 + .../arm-trusted-firmware.mk | 218 + boot/at91bootstrap/0001-eabi-fix.patch | 334 + .../0002-gcc-4.6.x-ldscript-fix.patch | 29 + .../0003-u-boot-relocation-fix.patch | 284 + boot/at91bootstrap/Config.in | 49 + boot/at91bootstrap/at91bootstrap.hash | 3 + boot/at91bootstrap/at91bootstrap.mk | 49 + boot/at91bootstrap3/Config.in | 117 + boot/at91bootstrap3/at91bootstrap3.hash | 4 + boot/at91bootstrap3/at91bootstrap3.mk | 109 + .../0001-do-not-install.patch | 22 + boot/at91dataflashboot/0002-eabi-fixes.patch | 43 + boot/at91dataflashboot/Config.in | 3 + boot/at91dataflashboot/at91dataflashboot.hash | 2 + boot/at91dataflashboot/at91dataflashboot.mk | 22 + boot/barebox/Config.in | 85 + boot/barebox/barebox-aux/Config.in | 75 + boot/barebox/barebox-aux/barebox-aux.hash | 1 + boot/barebox/barebox-aux/barebox-aux.mk | 8 + boot/barebox/barebox.hash | 8 + boot/barebox/barebox.mk | 178 + boot/barebox/barebox/Config.in | 80 + boot/barebox/barebox/barebox.hash | 1 + boot/barebox/barebox/barebox.mk | 8 + boot/beaglev-ddrinit/Config.in | 9 + boot/beaglev-ddrinit/beaglev-ddrinit.hash | 3 + boot/beaglev-ddrinit/beaglev-ddrinit.mk | 28 + boot/beaglev-secondboot/Config.in | 9 + .../beaglev-secondboot.hash | 3 + boot/beaglev-secondboot/beaglev-secondboot.mk | 28 + boot/binaries-marvell/Config.in | 12 + boot/binaries-marvell/binaries-marvell.hash | 3 + boot/binaries-marvell/binaries-marvell.mk | 20 + boot/boot-wrapper-aarch64/Config.in | 46 + .../boot-wrapper-aarch64.mk | 50 + boot/common.mk | 1 + ...ePkg-UsbBusDxe-fix-NOOPT-build-error.patch | 48 + boot/edk2/Config.in | 124 + boot/edk2/edk2.hash | 3 + boot/edk2/edk2.mk | 159 + ...ub_fstest.pp-depend-on-config-util.h.patch | 45 + boot/grub2/Config.in | 164 + boot/grub2/grub.cfg | 6 + boot/grub2/grub2.hash | 5 + boot/grub2/grub2.mk | 193 + boot/grub2/readme.txt | 192 + ...w-building-with-newer-glibc-versions.patch | 31 + ...king-for-non-host-compatible-targets.patch | 54 + boot/gummiboot/Config.in | 24 + boot/gummiboot/buildroot.conf | 4 + boot/gummiboot/gummiboot.mk | 41 + boot/gummiboot/loader.conf | 2 + boot/lpc32xxcdl/0001-compiler_name.patch | 52 + .../0002-delete_redundant_files.patch | 969 ++ boot/lpc32xxcdl/0003-libnosys_gnu.patch | 188 + boot/lpc32xxcdl/0004-slashes.patch | 521 + boot/lpc32xxcdl/Config.in | 10 + boot/lpc32xxcdl/lpc32xxcdl.hash | 2 + boot/lpc32xxcdl/lpc32xxcdl.mk | 71 + boot/mv-ddr-marvell/Config.in | 10 + boot/mv-ddr-marvell/mv-ddr-marvell.hash | 3 + boot/mv-ddr-marvell/mv-ddr-marvell.mk | 13 + boot/mxs-bootlets/Config.in | 90 + boot/mxs-bootlets/barebox_ivt.bd | 34 + boot/mxs-bootlets/mxs-bootlets.hash | 2 + boot/mxs-bootlets/mxs-bootlets.mk | 106 + ...Makefile-Don-t-specify-mabi-or-march.patch | 37 + ...Makefile-unconditionally-disable-SSP.patch | 53 + boot/opensbi/Config.in | 128 + boot/opensbi/opensbi.hash | 3 + boot/opensbi/opensbi.mk | 90 + ...ild-warning-when-_LFS64_LARGEFILE-is.patch | 56 + boot/optee-os/Config.in | 146 + boot/optee-os/optee-os.hash | 4 + boot/optee-os/optee-os.mk | 151 + boot/s500-bootloader/Config.in | 17 + boot/s500-bootloader/s500-bootloader.hash | 2 + boot/s500-bootloader/s500-bootloader.mk | 34 + boot/shim/Config.in | 25 + boot/shim/shim.hash | 3 + boot/shim/shim.mk | 29 + boot/sun20i-d1-spl/Config.in | 8 + boot/sun20i-d1-spl/sun20i-d1-spl.hash | 2 + boot/sun20i-d1-spl/sun20i-d1-spl.mk | 23 + ...bios-Fix-alignment-change-with-gcc-5.patch | 82 + ...-Disable-PIE-to-avoid-FTBFS-on-amd64.patch | 30 + ...sk-Force-ld-output-format-to-32-bits.patch | 32 + ...tils-Use-the-host-toolchain-to-build.patch | 60 + ...-Use-the-host-toolchain-for-prepcore.patch | 44 + ...ition-is-now-part-of-the-exports-of-.patch | 37 + ...ump-calls-to-fit-the-new-declaration.patch | 37 + ...per-build-it-with-the-host-toolchain.patch | 32 + ...-try-to-guess-the-sections-alignment.patch | 295 + ...10-core-Clean-up-the-i386-bios-build.patch | 622 + ...inux-Use-the-host-toolchain-to-build.patch | 53 + ...-sysmacros-h-for-major-minor-makedev.patch | 34 + ...Fix-build-with-gnu-efi-version-3.0.9.patch | 45 + ...h-binutils-note-gnu-property-section.patch | 47 + .../0015-efi-main.c-include-efisetjmp.h.patch | 60 + ...multiple-definition-of-symbol-errors.patch | 126 + ...strlen-that-appears-to-get-optimized.patch | 42 + boot/syslinux/Config.in | 61 + boot/syslinux/syslinux.hash | 4 + boot/syslinux/syslinux.mk | 115 + boot/uboot/Config.in | 576 + boot/uboot/uboot.hash | 3 + boot/uboot/uboot.mk | 541 + boot/vexpress-firmware/Config.in | 8 + boot/vexpress-firmware/vexpress-firmware.hash | 2 + boot/vexpress-firmware/vexpress-firmware.mk | 20 + configs/aarch64_efi_defconfig | 37 + configs/acmesystems_acqua_a5_256mb_defconfig | 26 + configs/acmesystems_acqua_a5_512mb_defconfig | 26 + configs/acmesystems_aria_g25_128mb_defconfig | 38 + configs/acmesystems_aria_g25_256mb_defconfig | 38 + .../acmesystems_arietta_g25_128mb_defconfig | 38 + .../acmesystems_arietta_g25_256mb_defconfig | 38 + configs/amarula_a64_relic_defconfig | 63 + configs/amarula_vyasa_rk3288_defconfig | 47 + configs/andes_ae350_45_defconfig | 43 + configs/arcturus_ucls1012a_defconfig | 36 + configs/arcturus_ucp1020_defconfig | 30 + configs/arm_foundationv8_defconfig | 18 + configs/arm_juno_defconfig | 23 + configs/armadeus_apf27_defconfig | 34 + configs/armadeus_apf28_defconfig | 28 + configs/armadeus_apf51_defconfig | 27 + configs/aspeed_ast2500evb_defconfig | 44 + configs/aspeed_ast2600evb_defconfig | 44 + configs/asus_tinker_rk3288_defconfig | 47 + configs/at91sam9260eknf_defconfig | 33 + configs/at91sam9g20dfc_defconfig | 39 + configs/at91sam9g45m10ek_defconfig | 34 + configs/at91sam9rlek_defconfig | 34 + configs/at91sam9x5ek_defconfig | 28 + configs/at91sam9x5ek_dev_defconfig | 99 + configs/at91sam9x5ek_mmc_defconfig | 47 + configs/at91sam9x5ek_mmc_dev_defconfig | 108 + .../atmel_sama5d27_som1_ek_mmc_dev_defconfig | 85 + configs/atmel_sama5d2_xplained_mmc_defconfig | 30 + .../atmel_sama5d2_xplained_mmc_dev_defconfig | 105 + configs/atmel_sama5d3_xplained_defconfig | 27 + configs/atmel_sama5d3_xplained_dev_defconfig | 99 + configs/atmel_sama5d3_xplained_mmc_defconfig | 29 + .../atmel_sama5d3_xplained_mmc_dev_defconfig | 104 + configs/atmel_sama5d3xek_defconfig | 38 + configs/atmel_sama5d4_xplained_defconfig | 31 + configs/atmel_sama5d4_xplained_dev_defconfig | 103 + configs/atmel_sama5d4_xplained_mmc_defconfig | 30 + .../atmel_sama5d4_xplained_mmc_dev_defconfig | 105 + configs/avenger96_defconfig | 34 + configs/bananapi_m1_defconfig | 29 + configs/bananapi_m1_plus_defconfig | 45 + configs/bananapi_m2_plus_defconfig | 30 + configs/bananapi_m2_ultra_defconfig | 32 + configs/bananapi_m2_zero_defconfig | 31 + configs/bananapi_m64_defconfig | 50 + configs/bananapro_defconfig | 76 + configs/beagleboardx15_defconfig | 29 + configs/beaglebone_defconfig | 52 + configs/beaglebone_qt5_defconfig | 46 + configs/beagleboneai_defconfig | 30 + configs/beaglev_defconfig | 41 + configs/beelink_gs1_defconfig | 45 + configs/broadcom_northstar_defconfig | 14 + configs/canaan_kd233_defconfig | 36 + configs/chromebook_elm_defconfig | 37 + configs/chromebook_snow_defconfig | 23 + configs/ci20_defconfig | 37 + configs/cubieboard2_defconfig | 42 + configs/engicam_imx6qdl_icore_defconfig | 43 + configs/engicam_imx6qdl_icore_qt5_defconfig | 81 + configs/engicam_imx6qdl_icore_rqs_defconfig | 43 + configs/engicam_imx6ul_geam_defconfig | 43 + configs/engicam_imx6ul_isiot_defconfig | 43 + configs/freescale_imx28evk_defconfig | 34 + configs/freescale_imx6dlsabreauto_defconfig | 44 + configs/freescale_imx6dlsabresd_defconfig | 43 + configs/freescale_imx6qsabreauto_defconfig | 44 + configs/freescale_imx6qsabresd_defconfig | 44 + configs/freescale_imx6sxsabresd_defconfig | 43 + configs/freescale_imx6ullevk_defconfig | 25 + configs/freescale_imx7dsabresd_defconfig | 38 + configs/freescale_imx8mmevk_defconfig | 42 + configs/freescale_imx8mnevk_defconfig | 43 + configs/freescale_imx8mpevk_defconfig | 42 + configs/freescale_imx8mqevk_defconfig | 42 + configs/freescale_imx8qmmek_defconfig | 40 + configs/freescale_imx8qxpmek_defconfig | 42 + configs/freescale_p1025twr_defconfig | 24 + configs/freescale_t1040d4rdb_defconfig | 24 + configs/freescale_t2080_qds_rdb_defconfig | 25 + configs/friendlyarm_nanopc_t4_defconfig | 53 + configs/friendlyarm_nanopi_a64_defconfig | 50 + configs/friendlyarm_nanopi_m1_defconfig | 45 + configs/friendlyarm_nanopi_m1_plus_defconfig | 45 + configs/friendlyarm_nanopi_m4_defconfig | 53 + configs/friendlyarm_nanopi_neo2_defconfig | 50 + configs/friendlyarm_nanopi_neo4_defconfig | 55 + .../friendlyarm_nanopi_neo_plus2_defconfig | 62 + configs/friendlyarm_nanopi_r1_defconfig | 49 + configs/friendlyarm_nanopi_r2s_defconfig | 41 + configs/galileo_defconfig | 25 + configs/globalscale_espressobin_defconfig | 27 + configs/grinn_chiliboard_defconfig | 28 + configs/grinn_liteboard_defconfig | 27 + configs/hifive_unleashed_defconfig | 55 + configs/imx23evk_defconfig | 34 + configs/imx6-sabreauto_defconfig | 41 + configs/imx6-sabresd_defconfig | 40 + configs/imx6-sabresd_qt5_defconfig | 100 + configs/imx6slevk_defconfig | 27 + configs/imx6sx-sdb_defconfig | 27 + configs/imx6ulevk_defconfig | 40 + configs/imx6ullevk_defconfig | 38 + configs/imx6ulpico_defconfig | 55 + configs/imx7d-sdb_defconfig | 38 + configs/imx7dpico_defconfig | 50 + configs/imx8mmpico_defconfig | 39 + configs/imx8mpico_defconfig | 39 + configs/imx8mqevk_defconfig | 41 + configs/kontron_bl_imx8mm_defconfig | 59 + configs/kontron_pitx_imx8m_defconfig | 61 + configs/kontron_smarc_sal28_defconfig | 35 + configs/lafrite_defconfig | 21 + configs/lego_ev3_defconfig | 52 + configs/licheepi_zero_defconfig | 53 + configs/linksprite_pcduino_defconfig | 63 + configs/mender_x86_64_efi_defconfig | 83 + configs/microchip_sam9x60ek_mmc_defconfig | 27 + configs/microchip_sam9x60ek_mmc_dev_defconfig | 83 + ...microchip_sama5d27_wlsom1_ek_mmc_defconfig | 30 + ...ochip_sama5d27_wlsom1_ek_mmc_dev_defconfig | 86 + configs/microchip_sama5d2_icp_mmc_defconfig | 31 + .../microchip_sama5d2_icp_mmc_dev_defconfig | 75 + configs/microchip_sama7g5ek_mmc_defconfig | 29 + configs/microchip_sama7g5ek_mmc_dev_defconfig | 75 + configs/minnowboard_max_defconfig | 38 + configs/mx25pdk_defconfig | 35 + configs/mx51evk_defconfig | 35 + configs/mx53loco_defconfig | 35 + configs/mx6cubox_defconfig | 48 + configs/mx6sx_udoo_neo_defconfig | 34 + configs/mx6udoo_defconfig | 35 + configs/nexbox_a95x_defconfig | 21 + configs/nezha_defconfig | 36 + configs/nitrogen6sx_defconfig | 44 + configs/nitrogen6x_defconfig | 43 + configs/nitrogen7_defconfig | 43 + configs/nitrogen8m_defconfig | 58 + configs/nitrogen8mm_defconfig | 58 + configs/nitrogen8mn_defconfig | 58 + configs/nitrogen8mp_defconfig | 58 + configs/octavo_osd32mp1_brk_defconfig | 60 + configs/octavo_osd32mp1_red_defconfig | 60 + configs/odroidc2_defconfig | 42 + configs/odroidxu4_defconfig | 27 + configs/olimex_a10_olinuxino_lime_defconfig | 50 + configs/olimex_a13_olinuxino_defconfig | 49 + configs/olimex_a20_olinuxino_lime2_defconfig | 59 + configs/olimex_a20_olinuxino_lime_defconfig | 59 + configs/olimex_a20_olinuxino_micro_defconfig | 49 + configs/olimex_a33_olinuxino_defconfig | 52 + configs/olimex_a64_olinuxino_defconfig | 50 + configs/olimex_imx233_olinuxino_defconfig | 52 + .../olimex_stmp157_olinuxino_lime_defconfig | 47 + configs/olpc_xo175_defconfig | 29 + configs/olpc_xo1_defconfig | 27 + configs/openblocks_a6_defconfig | 24 + configs/orangepi_lite2_defconfig | 60 + configs/orangepi_lite_defconfig | 39 + configs/orangepi_one_defconfig | 32 + configs/orangepi_one_plus_defconfig | 46 + configs/orangepi_pc2_defconfig | 50 + configs/orangepi_pc_defconfig | 32 + configs/orangepi_pc_plus_defconfig | 47 + configs/orangepi_plus_defconfig | 44 + configs/orangepi_prime_defconfig | 50 + configs/orangepi_r1_defconfig | 40 + configs/orangepi_rk3399_defconfig | 53 + configs/orangepi_win_defconfig | 48 + configs/orangepi_zero_defconfig | 64 + configs/orangepi_zero_plus2_defconfig | 67 + configs/orangepi_zero_plus_defconfig | 51 + configs/pandaboard_defconfig | 48 + configs/pc_x86_64_bios_defconfig | 66 + configs/pc_x86_64_efi_defconfig | 67 + configs/pcengines_apu2_defconfig | 28 + configs/pine64_defconfig | 50 + configs/pine64_sopine_defconfig | 49 + configs/qemu_aarch64_sbsa_defconfig | 53 + configs/qemu_aarch64_virt_defconfig | 30 + configs/qemu_arm_versatile_defconfig | 31 + configs/qemu_arm_vexpress_defconfig | 35 + configs/qemu_arm_vexpress_tz_defconfig | 65 + configs/qemu_m68k_mcf5208_defconfig | 36 + configs/qemu_m68k_q800_defconfig | 33 + configs/qemu_microblazebe_mmu_defconfig | 31 + configs/qemu_microblazeel_mmu_defconfig | 31 + configs/qemu_mips32r2_malta_defconfig | 33 + configs/qemu_mips32r2el_malta_defconfig | 33 + configs/qemu_mips32r6_malta_defconfig | 33 + configs/qemu_mips32r6el_malta_defconfig | 33 + configs/qemu_mips64_malta_defconfig | 33 + configs/qemu_mips64el_malta_defconfig | 33 + configs/qemu_mips64r6_malta_defconfig | 34 + configs/qemu_mips64r6el_malta_defconfig | 34 + configs/qemu_nios2_10m50_defconfig | 21 + configs/qemu_or1k_defconfig | 24 + configs/qemu_ppc64_e5500_defconfig | 31 + configs/qemu_ppc64_pseries_defconfig | 30 + configs/qemu_ppc64le_powernv8_defconfig | 30 + configs/qemu_ppc64le_pseries_defconfig | 30 + configs/qemu_ppc_bamboo_defconfig | 36 + configs/qemu_ppc_e500mc_defconfig | 30 + configs/qemu_ppc_g3beige_defconfig | 33 + configs/qemu_ppc_mac99_defconfig | 34 + configs/qemu_ppc_mpc8544ds_defconfig | 37 + configs/qemu_riscv32_virt_defconfig | 32 + configs/qemu_riscv64_nommu_virt_defconfig | 31 + configs/qemu_riscv64_virt_defconfig | 32 + configs/qemu_s390x_defconfig | 26 + configs/qemu_sh4_r2d_defconfig | 30 + configs/qemu_sh4eb_r2d_defconfig | 29 + configs/qemu_sparc64_sun4u_defconfig | 28 + configs/qemu_sparc_ss10_defconfig | 28 + configs/qemu_x86_64_defconfig | 31 + configs/qemu_x86_defconfig | 31 + configs/qemu_xtensa_lx60_defconfig | 36 + configs/qemu_xtensa_lx60_nommu_defconfig | 40 + configs/raspberrypi0_defconfig | 39 + configs/raspberrypi0w_defconfig | 34 + configs/raspberrypi2_defconfig | 41 + configs/raspberrypi3_64_defconfig | 39 + configs/raspberrypi3_defconfig | 39 + configs/raspberrypi3_qt5we_defconfig | 53 + configs/raspberrypi4_64_defconfig | 38 + configs/raspberrypi4_defconfig | 38 + configs/raspberrypi_defconfig | 40 + configs/raspberrypicm4io_64_defconfig | 41 + configs/raspberrypicm4io_defconfig | 41 + configs/raspberrypizero2w_defconfig | 36 + configs/riotboard_defconfig | 42 + configs/roc_pc_rk3399_defconfig | 55 + configs/rock64_defconfig | 40 + configs/rock_pi_4_defconfig | 55 + configs/rock_pi_n10_defconfig | 55 + configs/rock_pi_n8_defconfig | 46 + configs/rockpro64_defconfig | 52 + configs/roseapplepi_defconfig | 43 + configs/s6lx9_microboard_defconfig | 13 + configs/sheevaplug_defconfig | 34 + configs/sipeed_maix_bit_defconfig | 36 + configs/sipeed_maix_bit_sdcard_defconfig | 54 + configs/sipeed_maix_dock_defconfig | 36 + configs/sipeed_maix_dock_sdcard_defconfig | 54 + configs/sipeed_maix_go_defconfig | 36 + configs/sipeed_maix_go_sdcard_defconfig | 54 + configs/sipeed_maixduino_defconfig | 36 + configs/sipeed_maixduino_sdcard_defconfig | 54 + configs/snps_arc700_axs101_defconfig | 29 + configs/snps_archs38_axs103_defconfig | 30 + configs/snps_archs38_haps_defconfig | 18 + configs/snps_archs38_hsdk_defconfig | 34 + configs/socrates_cyclone5_defconfig | 32 + configs/solidrun_clearfog_defconfig | 42 + configs/solidrun_clearfog_gt_8k_defconfig | 45 + configs/solidrun_macchiatobin_defconfig | 47 + configs/spike_riscv64_defconfig | 13 + configs/stm32f429_disco_xip_defconfig | 21 + configs/stm32f469_disco_sd_defconfig | 26 + configs/stm32f469_disco_xip_defconfig | 21 + configs/stm32mp157a_dk1_defconfig | 47 + configs/stm32mp157c_dk2_defconfig | 47 + configs/stm32mp157c_odyssey_defconfig | 34 + configs/terasic_de10nano_cyclone5_defconfig | 31 + configs/toradex_apalis_imx6_defconfig | 25 + configs/ts4900_defconfig | 16 + configs/ts5500_defconfig | 26 + configs/ts7680_defconfig | 16 + configs/uevm5432_defconfig | 46 + configs/wandboard_defconfig | 46 + configs/warp7_defconfig | 52 + configs/warpboard_defconfig | 58 + configs/zynq_microzed_defconfig | 32 + configs/zynq_qmtech_defconfig | 33 + configs/zynq_zc706_defconfig | 32 + configs/zynq_zed_defconfig | 32 + configs/zynqmp_kria_kv260_defconfig | 40 + configs/zynqmp_zcu102_defconfig | 38 + configs/zynqmp_zcu106_defconfig | 39 + docs/conf/asciidoc-text.conf | 23 + docs/images | 1 + docs/manual/adding-board-support.txt | 56 + docs/manual/adding-packages-asciidoc.txt | 133 + docs/manual/adding-packages-autotools.txt | 175 + docs/manual/adding-packages-cargo.txt | 100 + docs/manual/adding-packages-cmake.txt | 157 + docs/manual/adding-packages-conclusion.txt | 13 + docs/manual/adding-packages-directory.txt | 645 + docs/manual/adding-packages-generic.txt | 664 + docs/manual/adding-packages-gettext.txt | 62 + docs/manual/adding-packages-golang.txt | 133 + docs/manual/adding-packages-hooks.txt | 89 + docs/manual/adding-packages-kconfig.txt | 96 + docs/manual/adding-packages-kernel-module.txt | 143 + ...dding-packages-linux-kernel-spec-infra.txt | 152 + docs/manual/adding-packages-luarocks.txt | 109 + docs/manual/adding-packages-meson.txt | 133 + docs/manual/adding-packages-perl.txt | 129 + docs/manual/adding-packages-python.txt | 259 + docs/manual/adding-packages-qmake.txt | 85 + docs/manual/adding-packages-rebar.txt | 108 + docs/manual/adding-packages-tips.txt | 242 + docs/manual/adding-packages-virtual.txt | 144 + docs/manual/adding-packages-waf.txt | 91 + docs/manual/adding-packages.txt | 58 + docs/manual/advanced.txt | 16 + docs/manual/appendix.txt | 6 + docs/manual/beyond-buildroot.txt | 66 + docs/manual/ccache-support.txt | 69 + docs/manual/common-usage.txt | 420 + docs/manual/configure-other-components.txt | 60 + docs/manual/configure.txt | 431 + docs/manual/contribute.txt | 716 + docs/manual/customize-configuration.txt | 64 + .../customize-device-permission-tables.txt | 30 + docs/manual/customize-directory-structure.txt | 111 + docs/manual/customize-outside-br.txt | 446 + docs/manual/customize-packages.txt | 56 + docs/manual/customize-patches.txt | 59 + docs/manual/customize-post-image.txt | 38 + docs/manual/customize-quick-guide.txt | 66 + docs/manual/customize-rootfs.txt | 156 + docs/manual/customize-users-tables.txt | 18 + docs/manual/customize.txt | 60 + docs/manual/debugging-buildroot.txt | 43 + docs/manual/developers.txt | 50 + docs/manual/docbook-xsl.css | 329 + docs/manual/download-infra.txt | 8 + docs/manual/download-location.txt | 27 + docs/manual/faq-troubleshooting.txt | 244 + docs/manual/getting.txt | 36 + docs/manual/github_hash_mongrel2.png | Bin 0 -> 19029 bytes docs/manual/how-buildroot-works.txt | 69 + docs/manual/integration-selinux-support.txt | 74 + docs/manual/integration-systemd.txt | 27 + docs/manual/integration.txt | 14 + docs/manual/introduction.txt | 26 + docs/manual/known-issues.txt | 15 + docs/manual/legal-notice.txt | 122 + docs/manual/logo.png | Bin 0 -> 117499 bytes docs/manual/make-tips.txt | 134 + docs/manual/makedev-syntax.txt | 103 + docs/manual/makeusers-syntax.txt | 105 + docs/manual/manual.html | 6082 ++++++++ docs/manual/manual.mk | 10 + docs/manual/manual.pdf | Bin 0 -> 612867 bytes docs/manual/manual.text | 8703 +++++++++++ docs/manual/manual.txt | 75 + docs/manual/migrating.txt | 88 + docs/manual/package-make-target.txt | 96 + docs/manual/patch-policy.txt | 167 + docs/manual/prerequisite.txt | 99 + docs/manual/quickstart.txt | 125 + docs/manual/rebuilding-packages.txt | 136 + docs/manual/release-engineering.txt | 34 + docs/manual/resources.txt | 71 + docs/manual/using-buildroot-debugger.txt | 53 + docs/manual/using-buildroot-development.txt | 121 + docs/manual/using-buildroot-toolchain.txt | 48 + docs/manual/writing-rules.txt | 231 + docs/website/.htaccess | 62 + docs/website/association.html | 122 + docs/website/contribute.html | 44 + docs/website/copyright.txt | 30 + docs/website/css/main.css | 260 + docs/website/css/timeline.css | 184 + docs/website/docs.html | 130 + docs/website/download.html | 217 + docs/website/favicon.ico | Bin 0 -> 2238 bytes docs/website/favicon.png | Bin 0 -> 1801 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23292 bytes docs/website/footer.html | 7 + docs/website/header.html | 54 + .../website/images/amarula-solutions-logo.png | Bin 0 -> 16768 bytes docs/website/images/bootlin-logo.png | Bin 0 -> 6171 bytes docs/website/images/boundary-devices-logo.png | Bin 0 -> 13305 bytes docs/website/images/browser.png | Bin 0 -> 18175 bytes docs/website/images/bug-buddy.png | Bin 0 -> 5946 bytes docs/website/images/buildroot-slides.png | Bin 0 -> 32837 bytes docs/website/images/calao-logo.png | Bin 0 -> 15386 bytes docs/website/images/circuitco-logo.png | Bin 0 -> 10750 bytes docs/website/images/clippy.svg | 3 + docs/website/images/email.png | Bin 0 -> 4101 bytes docs/website/images/fluendo-logo.png | Bin 0 -> 9098 bytes docs/website/images/free-electrons-logo.png | Bin 0 -> 9174 bytes docs/website/images/gift.png | Bin 0 -> 15906 bytes docs/website/images/github_hash_mongrel2.png | Bin 0 -> 19029 bytes docs/website/images/google-logo.png | Bin 0 -> 12005 bytes docs/website/images/hammer.png | Bin 0 -> 18353 bytes docs/website/images/imgtec-logo.png | Bin 0 -> 5276 bytes docs/website/images/irc.png | Bin 0 -> 7696 bytes docs/website/images/logilin-logo.png | Bin 0 -> 34112 bytes docs/website/images/logo.png | Bin 0 -> 117499 bytes docs/website/images/logo.xcf | Bin 0 -> 356067 bytes docs/website/images/logo_small.png | Bin 0 -> 3624 bytes docs/website/images/menuconfig.png | Bin 0 -> 181491 bytes docs/website/images/mind-logo.png | Bin 0 -> 10214 bytes docs/website/images/nconfig.png | Bin 0 -> 88055 bytes docs/website/images/package.png | Bin 0 -> 7746 bytes docs/website/images/pdf-icon.png | Bin 0 -> 10324 bytes docs/website/images/rockwell-collins-logo.png | Bin 0 -> 6124 bytes docs/website/images/scaleway-logo.png | Bin 0 -> 12331 bytes docs/website/images/smile-logo.png | Bin 0 -> 28422 bytes docs/website/images/synopsys-logo.png | Bin 0 -> 52426 bytes docs/website/images/tap2open-logo.png | Bin 0 -> 9064 bytes docs/website/images/text.png | Bin 0 -> 6437 bytes docs/website/images/tkos-logo.png | Bin 0 -> 10101 bytes docs/website/images/tux-flat.png | Bin 0 -> 20106 bytes docs/website/images/xconfig.png | Bin 0 -> 224081 bytes docs/website/images/zillabit-logo.png | Bin 0 -> 5394 bytes docs/website/images/zip.png | Bin 0 -> 8208 bytes docs/website/index.html | 151 + docs/website/js/buildroot.js | 93 + docs/website/news.html | 7253 +++++++++ docs/website/robots.txt | 2 + docs/website/sponsors.html | 350 + docs/website/support.html | 124 + fs/Config.in | 22 + fs/axfs/Config.in | 17 + fs/axfs/axfs.mk | 13 + fs/btrfs/Config.in | 50 + fs/btrfs/btrfs.mk | 36 + fs/cloop/Config.in | 10 + fs/cloop/cloop.mk | 14 + fs/common.mk | 229 + fs/cpio/Config.in | 70 + fs/cpio/cpio.mk | 56 + fs/cpio/init | 15 + fs/cramfs/Config.in | 26 + fs/cramfs/cramfs.mk | 27 + fs/erofs/Config.in | 24 + fs/erofs/erofs.mk | 21 + fs/ext2/Config.in | 141 + fs/ext2/ext2.mk | 46 + fs/f2fs/Config.in | 59 + fs/f2fs/f2fs.mk | 45 + fs/initramfs/Config.in | 22 + fs/initramfs/initramfs.mk | 36 + fs/iso9660/Config.in | 102 + fs/iso9660/grub.cfg | 7 + fs/iso9660/iso9660.mk | 197 + fs/iso9660/isolinux.cfg | 5 + fs/jffs2/Config.in | 113 + fs/jffs2/jffs2.mk | 52 + fs/oci/Config.in | 106 + fs/oci/oci.mk | 86 + fs/romfs/Config.in | 4 + fs/romfs/romfs.mk | 13 + fs/squashfs/Config.in | 118 + fs/squashfs/squashfs.mk | 37 + fs/tar/Config.in | 62 + fs/tar/tar.mk | 19 + fs/ubi/Config.in | 57 + fs/ubi/ubi.mk | 32 + fs/ubi/ubinize.cfg | 8 + fs/ubifs/Config.in | 98 + fs/ubifs/ubifs.mk | 30 + fs/yaffs2/Config.in | 4 + fs/yaffs2/yaffs2.mk | 13 + ...l-Eliminate-Perl-warning.patch.conditional | 45 + linux/Config.ext.in | 154 + linux/Config.in | 497 + linux/linux-ext-aufs.mk | 21 + linux/linux-ext-ev3dev-linux-drivers.mk | 12 + linux/linux-ext-fbtft.mk | 22 + linux/linux-ext-rtai.mk | 30 + linux/linux-ext-xenomai.mk | 35 + linux/linux.hash | 17 + linux/linux.mk | 633 + .../0001-plt.h-fix-build-with-gcc-10.patch | 38 + package/18xx-ti-utils/18xx-ti-utils.hash | 3 + package/18xx-ti-utils/18xx-ti-utils.mk | 35 + package/18xx-ti-utils/Config.in | 14 + .../4th/0001-avoid-regen-during-install.patch | 17 + package/4th/4th.hash | 3 + package/4th/4th.mk | 70 + package/4th/Config.in | 8 + package/Config.in | 2676 ++++ package/Config.in.host | 108 + package/Makefile.in | 446 + package/a10disp/Config.in | 13 + package/a10disp/a10disp.hash | 3 + package/a10disp/a10disp.mk | 23 + package/abootimg/Config.in | 10 + package/abootimg/Config.in.host | 8 + package/abootimg/abootimg.hash | 3 + package/abootimg/abootimg.mk | 34 + ...Asynch_BIO.cpp-fix-build-with-libres.patch | 52 + package/ace/Config.in | 16 + package/ace/ace.hash | 6 + package/ace/ace.mk | 75 + package/ace/platform_macros.GNU | 14 + .../0001-Build-with-old-GCC-versions.patch | 32 + package/acl/Config.in | 10 + package/acl/acl.hash | 6 + package/acl/acl.mk | 22 + .../acpica/0001-build-do-not-use-Werror.patch | 82 + package/acpica/Config.in | 13 + package/acpica/acpica.hash | 3 + package/acpica/acpica.mk | 39 + package/acpid/0001-dont-use-isfdtype.patch | 20 + package/acpid/0002-add-missing-defines.patch | 40 + package/acpid/Config.in | 11 + package/acpid/S02acpid | 53 + package/acpid/acpid.hash | 7 + package/acpid/acpid.mk | 40 + package/acpid/acpid.service | 9 + package/acpitool/Config.in | 14 + package/acpitool/acpitool.hash | 3 + package/acpitool/acpitool.mk | 13 + package/acsccid/Config.in | 21 + package/acsccid/acsccid.hash | 6 + package/acsccid/acsccid.mk | 20 + package/adwaita-icon-theme/Config.in | 10 + .../adwaita-icon-theme.hash | 6 + .../adwaita-icon-theme/adwaita-icon-theme.mk | 16 + package/aer-inject/Config.in | 12 + package/aer-inject/aer-inject.hash | 3 + package/aer-inject/aer-inject.mk | 23 + package/aespipe/Config.in | 11 + package/aespipe/Config.in.host | 10 + package/aespipe/aespipe.hash | 5 + package/aespipe/aespipe.mk | 13 + package/agentpp/Config.in | 23 + package/agentpp/agentpp.hash | 3 + package/agentpp/agentpp.mk | 19 + package/aircrack-ng/Config.in | 20 + package/aircrack-ng/aircrack-ng.hash | 6 + package/aircrack-ng/aircrack-ng.mk | 77 + ...lchains-remove-hash-style-management.patch | 36 + package/alchemy/alchemy.hash | 4 + package/alchemy/alchemy.mk | 71 + package/alchemy/atom.mk.in | 8 + package/alfred/Config.in | 20 + package/alfred/alfred.hash | 5 + package/alfred/alfred.mk | 25 + ...01-Don-t-use-fork-on-noMMU-platforms.patch | 62 + package/alsa-lib/Config.in | 83 + package/alsa-lib/alsa-lib.hash | 4 + package/alsa-lib/alsa-lib.mk | 77 + package/alsa-plugins/Config.in | 8 + package/alsa-plugins/alsa-plugins.hash | 4 + package/alsa-plugins/alsa-plugins.mk | 32 + ...ix-conditionals-on-__ALSA_PCM_H-and-.patch | 108 + ...ay-aplay.c-make-UCM-support-optional.patch | 89 + ...nfigure.ac-fix-build-without-dlfcn.h.patch | 48 + package/alsa-utils/Config.in | 99 + package/alsa-utils/alsa-utils.hash | 3 + package/alsa-utils/alsa-utils.mk | 104 + package/alsamixergui/0001-misc-fixes.patch | 40 + ...configure-fix-detection-of-fltk-libs.patch | 53 + package/alsamixergui/Config.in | 18 + package/alsamixergui/alsamixergui.hash | 4 + package/alsamixergui/alsamixergui.mk | 16 + package/altera-stapl/Config.in | 8 + package/altera-stapl/altera-stapl.hash | 2 + package/altera-stapl/altera-stapl.mk | 21 + package/alure/Config.in | 61 + package/alure/alure.hash | 3 + package/alure/alure.mk | 65 + .../0001-install-does-not-build.patch | 23 + package/am335x-pru-package/Config.in | 7 + .../am335x-pru-package.hash | 3 + .../am335x-pru-package/am335x-pru-package.mk | 74 + package/am33x-cm3/0001-fix-makefile.patch | 30 + ...Makefile-unconditionally-disable-SSP.patch | 35 + ...Makefile-unconditionally-disable-PIE.patch | 33 + .../0004-Makefile-add-fno-builtin.patch | 41 + package/am33x-cm3/Config.in | 8 + package/am33x-cm3/S93-am335x-pm-firmware-load | 6 + package/am33x-cm3/am33x-cm3.hash | 3 + package/am33x-cm3/am33x-cm3.mk | 31 + ...-Fix-makefiles-for-out-of-tree-build.patch | 162 + ...0002-Fix-adbd-for-non-Ubuntu-systems.patch | 264 + .../0003-Fix-build-issue-with-uclibc.patch | 36 + .../0004-Fix-build-issue-with-musl.patch | 54 + .../0005-Use-pkgconf-to-get-libs-deps.patch | 35 + .../0006-fix-big-endian-build.patch | 61 + .../0007-include-cdefs-h-when-needed.patch | 41 + ...smacros.h-to-compile-with-glibc-2.28.patch | 42 + ...les-for-out-of-tree-ext4_utils-build.patch | 48 + ...atch-for-openssl-1.1.0-compatibility.patch | 47 + package/android-tools/Config.in | 82 + package/android-tools/Config.in.host | 41 + package/android-tools/android-tools.hash | 4 + package/android-tools/android-tools.mk | 96 + package/angular-websocket/Config.in | 7 + .../angular-websocket/angular-websocket.hash | 3 + .../angular-websocket/angular-websocket.mk | 18 + package/angularjs/Config.in | 6 + package/angularjs/angularjs.hash | 3 + package/angularjs/angularjs.mk | 29 + ...ipt-interpreter-from-bin-bash-to-bin.patch | 26 + package/aoetools/Config.in | 12 + package/aoetools/aoetools.hash | 5 + package/aoetools/aoetools.mk | 21 + package/apache/0001-cross-compile.patch | 63 + package/apache/0002-nios2_is_not_os2.patch | 18 + ...in-handle-separate-APR_INCLUDE_DIR-A.patch | 48 + package/apache/Config.in | 48 + package/apache/S50apache | 15 + package/apache/apache.hash | 5 + package/apache/apache.mk | 125 + package/apache/apache.service | 13 + package/apcupsd/Config.in | 74 + package/apcupsd/apcupsd.hash | 6 + package/apcupsd/apcupsd.mk | 83 + package/apg/Config.in | 6 + package/apg/apg.hash | 3 + package/apg/apg.mk | 20 + ...cktrace-backtrace-h-include-config.h.patch | 40 + ...and-__libc_dlopen_mode-on-GLIBC-2-34.patch | 34 + package/apitrace/Config.in | 22 + package/apitrace/apitrace.hash | 3 + package/apitrace/apitrace.mk | 50 + package/apparmor/Config.in | 77 + package/apparmor/apparmor.hash | 6 + package/apparmor/apparmor.mk | 87 + package/apr-util/0001-remove-checkapr.patch | 21 + package/apr-util/Config.in | 15 + package/apr-util/apr-util.hash | 4 + package/apr-util/apr-util.mk | 86 + package/apr/0001-cross-compile.patch | 58 + package/apr/0002-sys-param-h.patch | 39 + .../apr/0003-Merge-r1887279-from-trunk.patch | 69 + .../apr/0004-apr-1.7.0-CVE-2021-35940.patch | 57 + package/apr/Config.in | 16 + package/apr/apr.hash | 4 + package/apr/apr.mk | 91 + package/argp-standalone/Config.in | 8 + package/argp-standalone/argp-standalone.hash | 5 + package/argp-standalone/argp-standalone.mk | 31 + package/argparse/Config.in | 10 + package/argparse/argparse.hash | 3 + package/argparse/argparse.mk | 11 + package/argus/Config.in | 14 + package/argus/argus.hash | 6 + package/argus/argus.mk | 22 + .../arm-gnu-toolchain/arm-gnu-toolchain.hash | 2 + .../arm-gnu-toolchain/arm-gnu-toolchain.mk | 26 + package/armadillo/Config.in | 38 + package/armadillo/armadillo.hash | 4 + package/armadillo/armadillo.mk | 33 + package/armbian-firmware/Config.in | 36 + .../armbian-firmware/armbian-firmware.hash | 2 + package/armbian-firmware/armbian-firmware.mk | 84 + package/arp-scan/Config.in | 10 + package/arp-scan/arp-scan.hash | 3 + package/arp-scan/arp-scan.mk | 20 + .../arptables/0001-Fix-musl-build-issue.patch | 71 + ...tc-libarptc_incl.c-fix-build-with-O0.patch | 49 + package/arptables/Config.in | 12 + package/arptables/arptables.hash | 5 + package/arptables/arptables.mk | 22 + package/ascii-invaders/Config.in | 7 + package/ascii-invaders/ascii-invaders.hash | 5 + package/ascii-invaders/ascii-invaders.mk | 27 + package/asn1c/Config.in.host | 11 + package/asn1c/asn1c.hash | 5 + package/asn1c/asn1c.mk | 13 + package/assimp/0001-code-disable-Werror.patch | 39 + package/assimp/Config.in | 21 + package/assimp/assimp.hash | 3 + package/assimp/assimp.mk | 44 + ...unds-do-not-download-and-check-sha1s.patch | 52 + ...-configure-fix-detection-of-libcrypt.patch | 43 + ...-target-directory-for-modules-exists.patch | 32 + ...-install-samples-need-the-data-files.patch | 35 + ...tection-of-re-entrant-resolver-funct.patch | 38 + package/asterisk/Config.in | 32 + package/asterisk/asterisk.hash | 15 + package/asterisk/asterisk.mk | 343 + .../0001-meson-add-tests-option.patch | 43 + package/at-spi2-atk/Config.in | 22 + package/at-spi2-atk/at-spi2-atk.hash | 5 + package/at-spi2-atk/at-spi2-atk.mk | 19 + package/at-spi2-core/Config.in | 25 + package/at-spi2-core/at-spi2-core.hash | 5 + package/at-spi2-core/at-spi2-core.mk | 20 + ...make-install-for-non-root-don-t-stri.patch | 92 + package/at/Config.in | 12 + package/at/S99at | 47 + package/at/at.hash | 5 + package/at/at.mk | 25 + .../0001-seq.h-fix-build-with-gcc-10.patch | 40 + package/atest/Config.in | 13 + package/atest/atest.hash | 3 + package/atest/atest.mk | 15 + package/atf/Config.in | 13 + package/atf/atf.hash | 3 + package/atf/atf.mk | 24 + package/atftp/Config.in | 14 + package/atftp/atftp.hash | 3 + package/atftp/atftp.mk | 37 + package/atk/Config.in | 14 + package/atk/atk.hash | 5 + package/atk/atk.mk | 25 + package/atkmm/Config.in | 20 + package/atkmm/atkmm.hash | 5 + package/atkmm/atkmm.mk | 16 + package/atop/Config.in | 26 + package/atop/atop.hash | 5 + package/atop/atop.mk | 29 + package/attr/0001-build-with-older-GCCs.patch | 87 + package/attr/Config.in | 7 + package/attr/attr.hash | 6 + package/attr/attr.mk | 19 + package/aubio/Config.in | 21 + package/aubio/aubio.hash | 5 + package/aubio/aubio.mk | 63 + package/audit/Config.in | 24 + package/audit/S02auditd | 80 + package/audit/audit.hash | 4 + package/audit/audit.mk | 69 + package/audit/audit_tmpfiles.conf | 1 + .../aufs-util/0001-remove-user-settings.patch | 16 + package/aufs-util/0002-no-check-ver.patch | 24 + package/aufs-util/0003-no-strip-lib.patch | 18 + package/aufs-util/Config.in | 36 + package/aufs-util/aufs-util.mk | 59 + package/aufs/Config.in | 16 + package/aufs/aufs.mk | 24 + package/augeas/Config.in | 20 + package/augeas/augeas.hash | 4 + package/augeas/augeas.mk | 23 + .../0001-fix-incorrect-makefile-am.patch | 28 + package/aumix/Config.in | 12 + package/aumix/aumix.hash | 4 + package/aumix/aumix.mk | 27 + .../autoconf-archive/autoconf-archive.hash | 4 + package/autoconf-archive/autoconf-archive.mk | 14 + .../0001-dont-add-dirty-to-version.patch | 28 + package/autoconf/autoconf.hash | 4 + package/autoconf/autoconf.mk | 26 + package/autofs/Config.in | 22 + package/autofs/autofs.hash | 6 + package/autofs/autofs.mk | 48 + package/automake/0001-noman.patch | 27 + package/automake/automake.hash | 4 + package/automake/automake.mk | 38 + package/automake/gtk-doc.m4 | 88 + package/autossh/Config.in | 10 + package/autossh/autossh.hash | 6 + package/autossh/autossh.mk | 17 + ...01-Fix-NULL-pointer-crashes-from-175.patch | 152 + package/avahi/Config.in | 62 + package/avahi/S05avahi-setup.sh | 16 + package/avahi/S50avahi-daemon | 20 + package/avahi/avahi.hash | 3 + package/avahi/avahi.mk | 210 + package/avahi/avahi_sysusers.conf | 5 + package/avahi/avahi_tmpfiles.conf | 1 + package/avocado/Config.in | 21 + package/avocado/avocado.hash | 3 + package/avocado/avocado.mk | 13 + package/avrdude/Config.in | 33 + package/avrdude/avrdude.hash | 3 + package/avrdude/avrdude.mk | 43 + package/avro-c/Config.in | 27 + package/avro-c/avro-c.hash | 5 + package/avro-c/avro-c.mk | 27 + package/axel/Config.in | 10 + package/axel/axel.hash | 2 + package/axel/axel.mk | 28 + package/axfsutils/axfsutils.hash | 3 + package/axfsutils/axfsutils.mk | 24 + package/azmq/Config.in | 28 + package/azmq/azmq.hash | 3 + package/azmq/azmq.mk | 20 + ...apters-fix-build-with-libressl-2.8.0.patch | 85 + package/azure-iot-sdk-c/Config.in | 19 + package/azure-iot-sdk-c/azure-iot-sdk-c.hash | 5 + package/azure-iot-sdk-c/azure-iot-sdk-c.mk | 17 + package/b43-firmware/Config.in | 25 + package/b43-firmware/b43-firmware.hash | 3 + package/b43-firmware/b43-firmware.mk | 29 + package/b43-fwcutter/b43-fwcutter.hash | 5 + package/b43-fwcutter/b43-fwcutter.mk | 21 + package/babeld/Config.in | 8 + package/babeld/S50babeld | 40 + package/babeld/babeld.hash | 3 + package/babeld/babeld.mk | 30 + package/babeld/babeld.service | 10 + ...ure-simplify-warning-flags-detection.patch | 669 + package/babeltrace2/Config.in | 29 + package/babeltrace2/Config.in.host | 17 + package/babeltrace2/babeltrace2.hash | 8 + package/babeltrace2/babeltrace2.mk | 35 + package/balena-engine/Config.in | 25 + package/balena-engine/balena-engine.hash | 3 + package/balena-engine/balena-engine.mk | 83 + ...c-bandwidthd.h-fix-build-with-gcc-10.patch | 60 + package/bandwidthd/Config.in | 60 + package/bandwidthd/bandwidthd.hash | 3 + package/bandwidthd/bandwidthd.mk | 40 + package/bandwidthd/bandwidthd.service | 11 + package/bash-completion/Config.in | 15 + package/bash-completion/bash-completion.hash | 3 + package/bash-completion/bash-completion.mk | 16 + ...put.h-add-missing-include-on-stdio.h.patch | 38 + ...local_shiftstates-vs.-locale_shiftst.patch | 72 + ...quote_pathname-vs.-udequote_pathname.patch | 40 + package/bash/Config.in | 25 + package/bash/bash.hash | 4 + package/bash/bash.mk | 71 + package/bat/Config.in | 11 + package/bat/bat.hash | 4 + package/bat/bat.mk | 12 + package/batctl/Config.in | 11 + package/batctl/batctl.hash | 6 + package/batctl/batctl.mk | 22 + package/batman-adv/Config.in | 37 + package/batman-adv/batman-adv.hash | 7 + package/batman-adv/batman-adv.mk | 43 + package/bats-core/Config.in | 11 + package/bats-core/bats-core.hash | 5 + package/bats-core/bats-core.mk | 16 + ...add-some-_always_inline_-annotations.patch | 75 + package/bayer2rgb-neon/Config.in | 22 + package/bayer2rgb-neon/bayer2rgb-neon.hash | 3 + package/bayer2rgb-neon/bayer2rgb-neon.mk | 24 + ...01-bc-use-MAKEINFO-variable-for-docs.patch | 35 + ...and-write-errors-on-input-and-output.patch | 754 + .../0003-dc-fix-exit-code-of-q-command.patch | 46 + package/bc/0004-no-gen-libmath.patch | 97 + package/bc/Config.in | 15 + package/bc/bc.hash | 4 + package/bc/bc.mk | 19 + ...inline-crc64-for-gcc-5-compatability.patch | 35 + package/bcache-tools/Config.in | 21 + package/bcache-tools/bcache-tools.hash | 3 + package/bcache-tools/bcache-tools.mk | 33 + package/bcg729/Config.in | 7 + package/bcg729/bcg729.hash | 3 + package/bcg729/bcg729.mk | 21 + package/bcm2835/Config.in | 19 + package/bcm2835/bcm2835.hash | 3 + package/bcm2835/bcm2835.mk | 16 + ...1-Fix-Libs.private-flags-for-mbedtls.patch | 37 + package/bctoolbox/Config.in | 19 + package/bctoolbox/bctoolbox.hash | 3 + package/bctoolbox/bctoolbox.mk | 42 + ...t-requires-inclusion-of-sys-select.h.patch | 31 + ...ss-recursion-when-using-USB-backends.patch | 35 + package/bcusdk/Config.in | 25 + package/bcusdk/bcusdk.hash | 3 + package/bcusdk/bcusdk.mk | 37 + package/bdwgc/Config.in | 10 + package/bdwgc/bdwgc.hash | 3 + package/bdwgc/bdwgc.mk | 39 + package/bearssl/Config.in | 7 + package/bearssl/bearssl.hash | 3 + package/bearssl/bearssl.mk | 43 + .../0001-cppglue.cxx-cplusplus-only.patch | 28 + package/beecrypt/0002-build-system.patch | 173 + ...3-don-t-check-for-cplusplus-compiler.patch | 27 + package/beecrypt/Config.in | 10 + package/beecrypt/beecrypt.hash | 3 + package/beecrypt/beecrypt.mk | 39 + package/belle-sip/Config.in | 22 + package/belle-sip/belle-sip.hash | 3 + package/belle-sip/belle-sip.mk | 44 + package/belr/Config.in | 19 + package/belr/belr.hash | 3 + package/belr/belr.mk | 25 + package/benejson/0001-c-std.patch | 22 + ...-as-a-function-for-Py3-compatibility.patch | 31 + package/benejson/Config.in | 15 + package/benejson/benejson.hash | 3 + package/benejson/benejson.mk | 60 + .../0001-Add-support-for-cmake-install.patch | 130 + ...-methods-funtions-and-passing-poolid.patch | 634 + .../0003-Backport-Smmothstream-changes.patch | 99 + package/bento4/0004-more-SPS-parameters.patch | 219 + ...0005-AVC-extract-VUI-values-from-SPS.patch | 96 + .../0006-Implement-SPS-Frame-parser.patch | 67 + ...-Fix-segfault-when-AP4_Sample-s-seek.patch | 25 + package/bento4/0008-Hack-HBO.patch | 214 + .../bento4/0009-Android-32-ftello-fix.patch | 31 + ...0010-Dazn-sample-duration-workaround.patch | 30 + ...ent-to-reuse-single-sample-decrypter.patch | 179 + .../0012-Static-ReadGolomb-SignedGolomb.patch | 54 + .../bento4/0013-Add-GetChannels-method.patch | 40 + ...ampleIndexForTimeStamp-GetNearestSyn.patch | 59 + ...015-Avoid-set-next-fragment-position.patch | 43 + ...ault-in-AP4_LinearReader-ProcessMoof.patch | 27 + package/bento4/Config.in | 11 + package/bento4/bento4.hash | 3 + package/bento4/bento4.mk | 25 + package/berkeleydb/0001-cwd-db_config.patch | 21 + .../0002-atomic_compare_exchange.patch | 27 + package/berkeleydb/Config.in | 22 + package/berkeleydb/berkeleydb.hash | 3 + package/berkeleydb/berkeleydb.mk | 82 + package/bind/0001-cross.patch | 34 + package/bind/Config.in | 49 + package/bind/S81named | 38 + package/bind/bind.hash | 4 + package/bind/bind.mk | 144 + package/bind/named.service | 12 + package/binutils/2.36.1/0001-sh-conf.patch | 48 + .../0002-poison-system-directories.patch | 306 + ...ith-plt-link-failure-for-local-calls.patch | 59 + ...elocation-R_OR1K_GOT_AHI16-for-gotha.patch | 256 + ...K_GOT16-overflow-failures-in-presenc.patch | 61 + ...ge-plt_relocs-when-generating-plt-en.patch | 500 + ...or1k-fix-building-with-gcc-version-5.patch | 50 + ...tive-relocation-against-dynamic-on-P.patch | 59 + ...K_GOT16-signed-overflow-by-using-spe.patch | 75 + ...OT32-relocations-against-ABS-symbols.patch | 53 + package/binutils/2.37/0001-sh-conf.patch | 48 + .../2.37/0002-poison-system-directories.patch | 306 + ...or1k-fix-building-with-gcc-version-5.patch | 50 + ...tive-relocation-against-dynamic-on-P.patch | 59 + ...K_GOT16-signed-overflow-by-using-spe.patch | 75 + ...le-descriptor-if-there-is-no-archive.patch | 236 + ...OT32-relocations-against-ABS-symbols.patch | 47 + package/binutils/2.38/0001-sh-conf.patch | 48 + .../2.38/0002-poison-system-directories.patch | 306 + ...or1k-fix-building-with-gcc-version-5.patch | 50 + ...K_GOT16-signed-overflow-by-using-spe.patch | 75 + ...binutils-2.38-vs.-ppc32-linux-kernel.patch | 55 + package/binutils/Config.in | 26 + package/binutils/Config.in.host | 41 + .../0001-poison-system-directories.patch | 310 + package/binutils/binutils.hash | 11 + package/binutils/binutils.mk | 139 + package/biosdevname/Config.in | 15 + package/biosdevname/biosdevname.hash | 3 + package/biosdevname/biosdevname.mk | 15 + ...gure.ac-fix-build-with-autoconf-2.70.patch | 33 + package/bird/Config.in | 86 + package/bird/bird.hash | 2 + package/bird/bird.mk | 47 + package/bison/bison.hash | 5 + package/bison/bison.mk | 19 + ...rc-randomenv.cpp-fix-build-on-uclibc.patch | 48 + package/bitcoin/Config.in | 47 + package/bitcoin/bitcoin.hash | 5 + package/bitcoin/bitcoin.mk | 38 + package/bitstream-vera/Config.in | 6 + package/bitstream-vera/bitstream-vera.hash | 4 + package/bitstream-vera/bitstream-vera.mk | 19 + package/bitstream/Config.in | 8 + package/bitstream/bitstream.hash | 6 + package/bitstream/bitstream.mk | 21 + package/bitwise/Config.in | 11 + package/bitwise/bitwise.hash | 3 + package/bitwise/bitwise.mk | 14 + package/blktrace/Config.in | 15 + package/blktrace/blktrace.hash | 6 + package/blktrace/blktrace.mk | 24 + package/bluez-alsa/Config.in | 44 + package/bluez-alsa/bluez-alsa.hash | 3 + package/bluez-alsa/bluez-alsa.mk | 79 + package/bluez-tools/Config.in | 19 + package/bluez-tools/bluez-tools.hash | 3 + package/bluez-tools/bluez-tools.mk | 16 + package/bluez5_utils-headers/Config.in | 7 + .../bluez5_utils-headers.hash | 1 + .../bluez5_utils-headers.mk | 25 + package/bluez5_utils/Config.in | 175 + package/bluez5_utils/S40bluetooth | 61 + package/bluez5_utils/bluez5_utils.hash | 5 + package/bluez5_utils/bluez5_utils.mk | 191 + package/bmap-tools/Config.in | 43 + package/bmap-tools/Config.in.host | 12 + package/bmap-tools/bmap-tools.hash | 3 + package/bmap-tools/bmap-tools.mk | 14 + package/bmon/Config.in | 15 + package/bmon/bmon.hash | 4 + package/bmon/bmon.mk | 22 + ...c-378-36-error-SIOCGSTAMP-undeclared.patch | 28 + package/bmx7/0002-Fix-linking-error.patch | 29 + ...r-includes-to-avoid-ethhdr-collision.patch | 35 + package/bmx7/Config.in | 15 + package/bmx7/bmx7.hash | 3 + package/bmx7/bmx7.mk | 21 + package/boinc/Config.in | 24 + package/boinc/S99boinc-client | 37 + package/boinc/boinc.hash | 4 + package/boinc/boinc.mk | 65 + package/bonnie/Config.in | 13 + package/bonnie/bonnie.hash | 3 + package/bonnie/bonnie.mk | 18 + .../0001-json-array-erase-relocate.patch | 65 + ...ips1-to-mips-and-alias-mips1-to-mips.patch | 48 + package/boost/Config.in | 364 + package/boost/boost.hash | 5 + package/boost/boost.mk | 186 + package/bootstrap/Config.in | 7 + package/bootstrap/bootstrap.hash | 3 + package/bootstrap/bootstrap.mk | 28 + ...01-Add-superh-alias-needed-by-Debian.patch | 22 + ...-data-arch-superh.txt-add-sh4-eb-aeb.patch | 30 + package/botan/Config.in | 35 + package/botan/botan.hash | 4 + package/botan/botan.mk | 103 + ...strapping-during-a-cross-compilation.patch | 96 + package/bpftool/Config.in | 33 + package/bpftool/bpftool.hash | 5 + package/bpftool/bpftool.mk | 45 + package/brcm-patchram-plus/Config.in | 7 + .../brcm-patchram-plus.hash | 3 + .../brcm-patchram-plus/brcm-patchram-plus.mk | 13 + package/brcmfmac_sdio-firmware-rpi/Config.in | 28 + .../brcmfmac_sdio-firmware-rpi.hash | 3 + .../brcmfmac_sdio-firmware-rpi.mk | 42 + package/brickd/Config.in | 19 + package/brickd/S70brickd | 37 + package/brickd/brickd.hash | 5 + package/brickd/brickd.mk | 22 + .../bridge-utils/0001-fix-build-on-musl.patch | 51 + package/bridge-utils/Config.in | 11 + package/bridge-utils/bridge-utils.hash | 5 + package/bridge-utils/bridge-utils.mk | 20 + .../0001-Fix-linking-error-on-mips64el.patch | 42 + package/brltty/Config.in | 23 + package/brltty/S10brltty | 40 + package/brltty/brltty.hash | 4 + package/brltty/brltty.mk | 140 + package/brltty/brltty.service | 23 + ...g-BUILD_SHARED_LIBS-to-choose-static.patch | 130 + ...time-linker-path-to-pkg-config-files.patch | 51 + package/brotli/Config.in | 12 + package/brotli/brotli.hash | 5 + package/brotli/brotli.mk | 32 + .../0001-Add-missing-header-for-u_char.patch | 17 + package/bsdiff/Config.in | 8 + package/bsdiff/bsdiff.hash | 4 + package/bsdiff/bsdiff.mk | 26 + package/btrfs-progs/Config.in | 17 + package/btrfs-progs/Config.in.host | 6 + package/btrfs-progs/btrfs-progs.hash | 5 + package/btrfs-progs/btrfs-progs.mk | 63 + package/bubblewrap/Config.in | 8 + package/bubblewrap/bubblewrap.hash | 5 + package/bubblewrap/bubblewrap.mk | 44 + package/bullet/Config.in | 15 + package/bullet/bullet.hash | 3 + package/bullet/bullet.mk | 33 + package/bustle/Config.in | 26 + package/bustle/bustle.hash | 3 + package/bustle/bustle.mk | 29 + ...route-use-linux-if_packet.h-instead-.patch | 37 + ...trip-non-l-arguments-returned-by-pkg.patch | 33 + ...wk-fix-use-after-free-CVE-2022-30065.patch | 52 + ...tr-ensure-only-printable-characters-.patch | 42 + ...e-all-printed-strings-with-printable.patch | 69 + package/busybox/Config.in | 103 + package/busybox/S01syslogd | 55 + package/busybox/S02klogd | 55 + package/busybox/S02sysctl | 1 + package/busybox/S10mdev | 42 + package/busybox/S15watchdog | 20 + package/busybox/S50telnet | 39 + package/busybox/busybox-minimal.config | 1212 ++ package/busybox/busybox.config | 1216 ++ package/busybox/busybox.hash | 5 + package/busybox/busybox.mk | 422 + package/busybox/inittab | 40 + package/busybox/mdev.conf | 39 + package/busybox/telnetd.service | 10 + package/busybox/udhcpc.script | 122 + package/bwm-ng/Config.in | 8 + package/bwm-ng/bwm-ng.hash | 3 + package/bwm-ng/bwm-ng.mk | 19 + package/bzip2/0001-build-objects-twice.patch | 56 + package/bzip2/0002-improve-build-system.patch | 84 + package/bzip2/Config.in | 9 + package/bzip2/bzip2.hash | 4 + package/bzip2/bzip2.mk | 70 + package/c-ares/Config.in | 6 + package/c-ares/c-ares.hash | 5 + package/c-ares/c-ares.mk | 16 + package/c-capnproto/Config.in | 27 + package/c-capnproto/c-capnproto.hash | 3 + package/c-capnproto/c-capnproto.mk | 24 + package/c-icap-modules/Config.in | 7 + package/c-icap-modules/c-icap-modules.hash | 7 + package/c-icap-modules/c-icap-modules.mk | 25 + ...ixes-to-compile-and-run-under-cygwin.patch | 391 + package/c-icap/Config.in | 18 + package/c-icap/S96cicap | 27 + package/c-icap/c-icap.hash | 6 + package/c-icap/c-icap.mk | 102 + package/c-periphery/Config.in | 16 + package/c-periphery/c-periphery.hash | 3 + package/c-periphery/c-periphery.mk | 14 + ...2pem.py-make-cryptography-module-opt.patch | 59 + package/ca-certificates/Config.in | 12 + package/ca-certificates/ca-certificates.hash | 6 + package/ca-certificates/ca-certificates.mk | 43 + .../0001-Fix-conflicting-round-function.patch | 108 + package/cache-calibrator/Config.in | 13 + .../cache-calibrator/cache-calibrator.hash | 3 + package/cache-calibrator/cache-calibrator.mk | 29 + .../cage/0001-Upgrade-to-wlroots-0.15.patch | 312 + package/cage/Config.in | 24 + package/cage/cage.hash | 5 + package/cage/cage.mk | 20 + package/cairo/0001-fix-nofork-build.patch | 29 + ...vailable-in-cairo_ft_apply_variation.patch | 33 + package/cairo/Config.in | 48 + package/cairo/cairo.hash | 9 + package/cairo/cairo.mk | 182 + package/cairomm/Config.in | 19 + package/cairomm/cairomm.hash | 3 + package/cairomm/cairomm.mk | 15 + package/can-utils/Config.in | 9 + package/can-utils/can-utils.hash | 4 + package/can-utils/can-utils.mk | 13 + package/cannelloni/Config.in | 17 + package/cannelloni/cannelloni.hash | 3 + package/cannelloni/cannelloni.mk | 20 + package/cantarell/Config.in | 7 + package/cantarell/cantarell.hash | 4 + package/cantarell/cantarell.mk | 15 + package/capnproto/Config.in | 28 + package/capnproto/capnproto.hash | 3 + package/capnproto/capnproto.mk | 38 + .../0001-Fix-stdint-types-with-musl.patch | 54 + package/caps/Config.in | 18 + package/caps/caps.hash | 3 + package/caps/caps.mk | 34 + ...castore-fix-build-without-lzma-or-xz.patch | 35 + ...tall-udev-rules-without-udev-support.patch | 53 + package/casync/Config.in | 13 + package/casync/casync.hash | 3 + package/casync/casync.mk | 64 + package/cbootimage/Config.in | 9 + package/cbootimage/Config.in.host | 9 + package/cbootimage/cbootimage.hash | 3 + package/cbootimage/cbootimage.mk | 14 + package/cc-tool/Config.in | 25 + package/cc-tool/cc-tool.hash | 5 + package/cc-tool/cc-tool.mk | 30 + package/ccache/ccache.hash | 4 + package/ccache/ccache.mk | 79 + package/ccid/Config.in | 17 + package/ccid/ccid.hash | 3 + package/ccid/ccid.mk | 26 + package/ccrypt/Config.in | 7 + package/ccrypt/ccrypt.hash | 3 + package/ccrypt/ccrypt.mk | 13 + package/cctz/Config.in | 29 + package/cctz/cctz.hash | 3 + package/cctz/cctz.mk | 27 + package/cdrkit/0001-no-rcmd.patch | 22 + ...THROW-to-avoid-build-issue-with-musl.patch | 47 + ...ar-outfile-declaration-to-fix-build-.patch | 30 + package/cdrkit/Config.in | 13 + package/cdrkit/cdrkit.hash | 4 + package/cdrkit/cdrkit.mk | 31 + .../0001-XMLParser.cpp-include-string.h.patch | 37 + package/cegui/Config.in | 24 + package/cegui/cegui.hash | 3 + package/cegui/cegui.mk | 102 + package/cereal/Config.in | 20 + package/cereal/cereal.hash | 6 + package/cereal/cereal.mk | 20 + package/cfm/Config.in | 17 + package/cfm/S65cfm | 55 + package/cfm/cfm.hash | 3 + package/cfm/cfm.mk | 24 + package/cfm/cfm.service | 10 + package/cgic/0001-prepare_makefile.patch | 44 + package/cgic/0002-file_enhancements.patch | 56 + ...3-restore-cgiFormFileGetTempfileName.patch | 43 + package/cgic/Config.in | 6 + package/cgic/cgic.hash | 3 + package/cgic/cgic.mk | 25 + package/cgilua/Config.in | 8 + package/cgilua/cgilua.hash | 3 + package/cgilua/cgilua.mk | 13 + package/cgroupfs-mount/Config.in | 19 + package/cgroupfs-mount/S30cgroupfs | 34 + package/cgroupfs-mount/cgroupfs-mount.hash | 3 + package/cgroupfs-mount/cgroupfs-mount.mk | 23 + package/chartjs/Config.in | 7 + package/chartjs/chartjs.hash | 3 + package/chartjs/chartjs.mk | 23 + package/check/Config.in | 6 + package/check/check.hash | 4 + package/check/check.mk | 20 + package/checkpolicy/Config.in | 19 + package/checkpolicy/Config.in.host | 14 + package/checkpolicy/checkpolicy.hash | 5 + package/checkpolicy/checkpolicy.mk | 50 + package/checksec/Config.in.host | 17 + package/checksec/checksec.hash | 3 + package/checksec/checksec.mk | 16 + .../0001-Fix-build-failure-on-musl.patch | 37 + package/chipmunk/Config.in | 12 + package/chipmunk/chipmunk.hash | 5 + package/chipmunk/chipmunk.mk | 28 + ...move-redundant-demoextend-definition.patch | 29 + package/chocolate-doom/Config.in | 17 + package/chocolate-doom/chocolate-doom.hash | 3 + package/chocolate-doom/chocolate-doom.mk | 38 + package/chrony/Config.in | 16 + package/chrony/S49chrony | 26 + package/chrony/chrony.hash | 5 + package/chrony/chrony.mk | 86 + package/chrony/chrony.service | 15 + package/cifs-utils/Config.in | 33 + package/cifs-utils/cifs-utils.hash | 5 + package/cifs-utils/cifs-utils.mk | 42 + package/circus/Config.in | 19 + package/circus/circus.hash | 4 + package/circus/circus.mk | 13 + package/civetweb/Config.in | 28 + package/civetweb/civetweb.hash | 3 + package/civetweb/civetweb.mk | 105 + package/cjson/Config.in | 18 + package/cjson/cjson.hash | 3 + package/cjson/cjson.mk | 34 + ...backtrace-if-using-uClibc-without-ba.patch | 36 + package/clamav/Config.in | 23 + package/clamav/clamav.hash | 14 + package/clamav/clamav.mk | 105 + ...hains-Gnu-Use-GCC_INSTALL_PREFIX-in-.patch | 78 + package/clang/Config.in | 27 + package/clang/clang.hash | 3 + package/clang/clang.mk | 144 + package/clinfo/Config.in | 12 + package/clinfo/clinfo.hash | 4 + package/clinfo/clinfo.mk | 21 + package/cloop/cloop.hash | 6 + package/cloop/cloop.mk | 26 + package/clpeak/Config.in | 15 + package/clpeak/clpeak.hash | 3 + package/clpeak/clpeak.mk | 13 + .../cmake/0001-rename-cmake-rootfile.patch | 43 + package/cmake/Config.in | 49 + package/cmake/Config.in.host | 11 + package/cmake/cmake.hash | 5 + package/cmake/cmake.mk | 87 + .../0001-Don-t-redefine-uintptr_t.patch | 77 + package/cmocka/Config.in | 15 + package/cmocka/cmocka.hash | 3 + package/cmocka/cmocka.mk | 24 + package/cog/Config.in | 65 + package/cog/cog.hash | 7 + package/cog/cog.mk | 42 + ...001-src-netlink.c-remove-REG_NOERROR.patch | 43 + package/collectd/Config.in | 800 + package/collectd/S90collectd | 51 + package/collectd/collectd.hash | 5 + package/collectd/collectd.mk | 260 + package/collectd/collectd.service | 17 + package/collectl/Config.in | 12 + package/collectl/collectl.hash | 5 + package/collectl/collectl.mk | 18 + package/comix-cursors/Config.in | 6 + package/comix-cursors/comix-cursors.hash | 2 + package/comix-cursors/comix-cursors.mk | 19 + package/compiler-rt/Config.in | 15 + package/compiler-rt/compiler-rt.hash | 3 + package/compiler-rt/compiler-rt.mk | 37 + package/connman-gtk/Config.in | 22 + package/connman-gtk/connman-gtk.hash | 3 + package/connman-gtk/connman-gtk.mk | 17 + package/connman/Config.in | 115 + package/connman/S45connman | 52 + package/connman/connman.hash | 4 + package/connman/connman.mk | 123 + package/conntrack-tools/Config.in | 22 + package/conntrack-tools/conntrack-tools.hash | 4 + package/conntrack-tools/conntrack-tools.mk | 26 + package/containerd/Config.in | 35 + package/containerd/containerd.hash | 3 + package/containerd/containerd.mk | 44 + ...0001-Do-not-load-coxpcall-for-LuaJIT.patch | 49 + package/copas/Config.in | 11 + package/copas/copas.hash | 3 + package/copas/copas.mk | 12 + package/coremark-pro/Config.in | 8 + package/coremark-pro/coremark-pro.hash | 3 + package/coremark-pro/coremark-pro.mk | 62 + package/coremark-pro/coremark-pro.sh.in | 35 + package/coremark/Config.in | 8 + package/coremark/coremark.hash | 3 + package/coremark/coremark.mk | 21 + package/coreutils/Config.in | 39 + package/coreutils/coreutils.hash | 4 + package/coreutils/coreutils.mk | 170 + package/corkscrew/Config.in | 7 + package/corkscrew/corkscrew.hash | 3 + package/corkscrew/corkscrew.mk | 13 + package/coxpcall/Config.in | 8 + package/coxpcall/coxpcall.hash | 3 + package/coxpcall/coxpcall.mk | 12 + package/cpio/0001-Minor-fix.patch | 30 + .../0002-Rewrite-dynamic-string-support.patch | 461 + package/cpio/0003-Fix-previous-commit.patch | 40 + package/cpio/Config.in | 12 + package/cpio/cpio.hash | 7 + package/cpio/cpio.mk | 26 + package/cppcms/Config.in | 43 + package/cppcms/cppcms.hash | 8 + package/cppcms/cppcms.mk | 65 + package/cppdb/0001-mysql-library-suffix.patch | 23 + package/cppdb/Config.in | 20 + package/cppdb/cppdb.hash | 6 + package/cppdb/cppdb.mk | 31 + package/cppunit/Config.in | 14 + package/cppunit/cppunit.hash | 6 + package/cppunit/cppunit.mk | 14 + package/cppzmq/Config.in | 12 + package/cppzmq/cppzmq.hash | 3 + package/cppzmq/cppzmq.mk | 15 + package/cpuburn-arm/Config.in | 15 + package/cpuburn-arm/cpuburn-arm.hash | 3 + package/cpuburn-arm/cpuburn-arm.mk | 31 + ...0001-Fix-crash-and-compiler-warnings.patch | 57 + ...l.h-and-add-missing-libgen.h-include.patch | 42 + .../0003-Fix-an-infrequent-crash.patch | 26 + .../0004-Remove-procfs.h-inclusion.patch | 30 + package/cpulimit/Config.in | 13 + package/cpulimit/cpulimit.hash | 3 + package/cpulimit/cpulimit.mk | 23 + package/cpuload/Config.in | 9 + package/cpuload/cpuload.hash | 3 + package/cpuload/cpuload.mk | 12 + ...eat-the-input-as-text-when-formattin.patch | 30 + package/cracklib/Config.in | 28 + package/cracklib/cracklib.hash | 4 + package/cracklib/cracklib.mk | 57 + package/cramfs/Config.in | 8 + package/cramfs/Config.in.host | 7 + package/cramfs/cramfs.hash | 3 + package/cramfs/cramfs.mk | 34 + ...support-python-3-in-utils-key2pub.py.patch | 283 + package/crda/0002-drop-ldconfig-call.patch | 15 + package/crda/0003-drop-werror.patch | 37 + package/crda/Config.in | 21 + package/crda/crda.hash | 3 + package/crda/crda.mk | 23 + package/crucible/Config.in | 8 + package/crucible/crucible.hash | 2 + package/crucible/crucible.mk | 13 + package/crudini/Config.in | 9 + package/crudini/crudini.hash | 3 + package/crudini/crudini.mk | 13 + package/cryptodev-linux/cryptodev-linux.hash | 3 + package/cryptodev-linux/cryptodev-linux.mk | 32 + package/cryptodev/Config.in | 50 + package/cryptodev/cryptodev.mk | 7 + ...e-add-missing-shared-library-symlink.patch | 62 + package/cryptopp/Config.in | 11 + package/cryptopp/cryptopp.hash | 5 + package/cryptopp/cryptopp.mk | 78 + package/cryptsetup/Config.in | 26 + package/cryptsetup/Config.in.host | 8 + package/cryptsetup/cryptsetup.hash | 4 + package/cryptsetup/cryptsetup.mk | 72 + package/ctorrent/0001-fix-musl-build.patch | 20 + package/ctorrent/Config.in | 13 + package/ctorrent/ctorrent.hash | 5 + package/ctorrent/ctorrent.mk | 19 + package/cukinia/Config.in | 18 + package/cukinia/cukinia.conf | 4 + package/cukinia/cukinia.hash | 4 + package/cukinia/cukinia.mk | 18 + package/cunit/Config.in | 6 + package/cunit/cunit.hash | 3 + package/cunit/cunit.mk | 17 + package/cups-filters/Config.in | 40 + package/cups-filters/S82cups-browsed | 48 + package/cups-filters/cups-filters.hash | 3 + package/cups-filters/cups-filters.mk | 86 + package/cups-pk-helper/Config.in | 23 + package/cups-pk-helper/cups-pk-helper.hash | 3 + package/cups-pk-helper/cups-pk-helper.mk | 15 + ...move-man-from-BUILDDIRS-in-configure.patch | 33 + package/cups/0002-Do-not-use-genstrings.patch | 40 + ...03-Sanitize-the-installation-process.patch | 131 + ...0004-Remove-PIE-flags-from-the-build.patch | 37 + package/cups/70-usb-printers.rules | 3 + package/cups/Config.in | 15 + package/cups/S81cupsd | 48 + package/cups/cups.hash | 4 + package/cups/cups.mk | 95 + .../0001-fix-CURLOPT_INFILESIZE.patch | 13 + .../0002-free_ftpfs_file-memleak-fix.patch | 14 + .../curlftpfs/0003-nocache-memleak-fix.patch | 59 + .../curlftpfs/0004-fix-musl-build-off-t.patch | 39 + package/curlftpfs/Config.in | 20 + package/curlftpfs/curlftpfs.hash | 3 + package/curlftpfs/curlftpfs.mk | 17 + package/curlpp/Config.in | 12 + package/curlpp/curlpp.hash | 5 + package/curlpp/curlpp.mk | 15 + ...s.txt-don-t-override-CMAKE_EXE_LINKE.patch | 31 + package/cutelyst/Config.in | 17 + package/cutelyst/cutelyst.hash | 3 + package/cutelyst/cutelyst.mk | 38 + package/cvs/Config.in | 24 + package/cvs/cvs.hash | 8 + package/cvs/cvs.mk | 58 + ...ng-by-adding-the-missing-lbluetooth-.patch | 27 + ...-configure-make-wmgui-build-optional.patch | 64 + package/cwiid/Config.in | 36 + package/cwiid/cwiid.hash | 4 + package/cwiid/cwiid.mk | 29 + package/cxxtest/Config.in | 10 + package/cxxtest/cxxtest.hash | 5 + package/cxxtest/cxxtest.mk | 30 + package/czmq/Config.in | 14 + package/czmq/czmq.hash | 6 + package/czmq/czmq.mk | 17 + package/dacapo/Config.in | 12 + package/dacapo/dacapo.hash | 3 + package/dacapo/dacapo.mk | 21 + package/dado/Config.in | 6 + package/dado/dado.hash | 3 + package/dado/dado.mk | 11 + ...aemon-fix-build-with-musl-libc-again.patch | 46 + .../0002-Fix-build-with-NDEBUG-defined.patch | 46 + package/daemon/Config.in | 12 + package/daemon/daemon.hash | 5 + package/daemon/daemon.mk | 26 + ...uild-fix-HOTPLUG_FIRMWARE-definition.patch | 64 + .../0002-fix-build-with-32-bits-kernel.patch | 144 + package/dahdi-linux/Config.in | 15 + package/dahdi-linux/dahdi-linux.hash | 25 + package/dahdi-linux/dahdi-linux.mk | 93 + package/dahdi-tools/0001-no-build-docs.patch | 16 + .../dahdi-tools/0002-no-perl-manpages.patch | 37 + package/dahdi-tools/Config.in | 19 + package/dahdi-tools/dahdi-tools.hash | 8 + package/dahdi-tools/dahdi-tools.mk | 32 + package/dante/0001-fix-sparc-compile.patch | 24 + ...m4-Remove-getaddrinfo-too-low-checks.patch | 35 + package/dante/Config.in | 11 + package/dante/S50dante | 40 + package/dante/dante.hash | 5 + package/dante/dante.mk | 49 + package/dante/dante.service | 15 + ...Fix-build-against-the-musl-C-library.patch | 54 + package/daq/0002-parallel-grammar.patch | 29 + package/daq/Config.in | 11 + package/daq/daq.hash | 7 + package/daq/daq.mk | 46 + package/daq3/Config.in | 16 + package/daq3/daq3.hash | 6 + package/daq3/daq3.mk | 30 + ...vars-outside-of-for-loop-for-std-c90.patch | 39 + package/darkhttpd/Config.in | 14 + package/darkhttpd/S50darkhttpd | 45 + package/darkhttpd/darkhttpd.hash | 3 + package/darkhttpd/darkhttpd.mk | 32 + package/darkhttpd/darkhttpd.service | 11 + package/dash/Config.in | 12 + package/dash/dash.hash | 4 + package/dash/dash.mk | 42 + package/datatables-buttons/Config.in | 12 + .../datatables-buttons.hash | 3 + .../datatables-buttons/datatables-buttons.mk | 25 + package/datatables-fixedcolumns/Config.in | 10 + .../datatables-fixedcolumns.hash | 3 + .../datatables-fixedcolumns.mk | 25 + package/datatables-responsive/Config.in | 12 + .../datatables-responsive.hash | 3 + .../datatables-responsive.mk | 25 + package/datatables/Config.in | 7 + package/datatables/datatables.hash | 3 + package/datatables/datatables.mk | 25 + package/dav1d/Config.in | 12 + package/dav1d/dav1d.hash | 4 + package/dav1d/dav1d.mk | 31 + ...do-not-hardcode-fstack-protector-str.patch | 45 + package/davfs2/Config.in | 18 + package/davfs2/davfs2.hash | 4 + package/davfs2/davfs2.mk | 26 + package/davici/Config.in | 18 + package/davici/davici.hash | 3 + package/davici/davici.mk | 16 + package/davinci-bootcount/Config.in | 11 + .../davinci-bootcount/davinci-bootcount.hash | 3 + .../davinci-bootcount/davinci-bootcount.mk | 15 + package/dawgdic/Config.in | 19 + package/dawgdic/dawgdic.hash | 3 + package/dawgdic/dawgdic.mk | 14 + package/dbus-broker/Config.in | 23 + package/dbus-broker/dbus-broker.hash | 17 + package/dbus-broker/dbus-broker.mk | 68 + package/dbus-broker/dbus.socket | 5 + package/dbus-broker/session.conf | 65 + package/dbus-broker/system.conf | 123 + package/dbus-cpp/0001-gcc4.7.patch | 17 + .../dbus-cpp/0002-cross-compile-tools.patch | 34 + ...-pipe.c-fix-build-error-with-gcc-7.x.patch | 36 + package/dbus-cpp/Config.in | 20 + package/dbus-cpp/dbus-cpp.hash | 3 + package/dbus-cpp/dbus-cpp.mk | 44 + package/dbus-cxx/Config.in | 24 + package/dbus-cxx/dbus-cxx.hash | 5 + package/dbus-cxx/dbus-cxx.mk | 28 + package/dbus-glib/Config.in | 16 + package/dbus-glib/dbus-glib.hash | 5 + package/dbus-glib/dbus-glib.mk | 43 + package/dbus-python/Config.in | 16 + package/dbus-python/Config.in.host | 6 + package/dbus-python/dbus-python.hash | 6 + package/dbus-python/dbus-python.mk | 28 + package/dbus-triggerd/Config.in | 15 + package/dbus-triggerd/dbus-triggerd.hash | 3 + package/dbus-triggerd/dbus-triggerd.mk | 21 + package/dbus/Config.in | 14 + package/dbus/S30dbus | 71 + package/dbus/dbus.hash | 7 + package/dbus/dbus.mk | 141 + package/dc3dd/0001-no_man.patch | 15 + package/dc3dd/0002-fix-autoreconf.patch | 32 + package/dc3dd/0003-fix-for-glibc-2.28.patch | 87 + package/dc3dd/Config.in | 19 + package/dc3dd/dc3dd.hash | 5 + package/dc3dd/dc3dd.mk | 18 + ...ne-to-logfile-openning-error-message.patch | 27 + package/dcron/Config.in | 23 + package/dcron/S90dcron | 22 + package/dcron/dcron.hash | 3 + package/dcron/dcron.mk | 36 + package/dcron/dcron.service | 10 + package/ddrescue/Config.in | 12 + package/ddrescue/ddrescue.hash | 4 + package/ddrescue/ddrescue.mk | 35 + package/debianutils/Config.in | 11 + package/debianutils/debianutils.hash | 4 + package/debianutils/debianutils.mk | 14 + package/dehydrated/Config.in | 33 + package/dehydrated/dehydrated.hash | 6 + package/dehydrated/dehydrated.mk | 18 + package/dejavu/Config.in | 33 + package/dejavu/dejavu.hash | 5 + package/dejavu/dejavu.mk | 62 + package/delve/Config.in | 22 + package/delve/Config.in.host | 7 + package/delve/delve.hash | 3 + package/delve/delve.mk | 22 + .../desktop-file-utils.hash | 3 + .../desktop-file-utils/desktop-file-utils.mk | 14 + package/dfu-util/Config.in | 16 + package/dfu-util/Config.in.host | 13 + package/dfu-util/dfu-util.hash | 6 + package/dfu-util/dfu-util.mk | 16 + package/dhcp/Config.in | 46 + package/dhcp/S80dhcp-relay | 53 + package/dhcp/S80dhcp-server | 49 + package/dhcp/dhclient-script | 284 + package/dhcp/dhclient.conf | 50 + package/dhcp/dhcp.hash | 4 + package/dhcp/dhcp.mk | 163 + package/dhcp/dhcpd.conf | 108 + package/dhcp/dhcpd.service | 13 + package/dhcpcd/Config.in | 28 + package/dhcpcd/S41dhcpcd | 33 + package/dhcpcd/dhcpcd.hash | 4 + package/dhcpcd/dhcpcd.mk | 75 + package/dhcpcd/dhcpcd.service | 13 + .../0001-use-non-bsd-structures.patch | 23 + package/dhcpdump/Config.in | 7 + package/dhcpdump/dhcpdump.hash | 3 + package/dhcpdump/dhcpdump.mk | 30 + package/dhrystone/0001-cmdline-nruns.patch | 53 + package/dhrystone/0002-HZ.patch | 17 + package/dhrystone/0003-exit.patch | 14 + package/dhrystone/0004-headers.patch | 15 + package/dhrystone/0005-prototypes.patch | 35 + package/dhrystone/Config.in | 6 + package/dhrystone/Makefile | 12 + package/dhrystone/dhrystone.hash | 2 + package/dhrystone/dhrystone.mk | 24 + package/dht/0001-cmake.patch | 67 + package/dht/Config.in | 6 + package/dht/dht.hash | 3 + package/dht/dht.mk | 13 + package/dialog/Config.in | 14 + package/dialog/dialog.hash | 4 + package/dialog/dialog.mk | 22 + ...dedir-as-include-search-path-for-bui.patch | 62 + .../0002-Fix-missing-type-intptr_t.patch | 27 + ...RCE-for-uint-and-M_PI-with-musl-libc.patch | 28 + .../0004-Add-static-to-inline-functions.patch | 65 + .../0005-Remove-defunct-rgb_operm.patch | 732 + package/dieharder/Config.in | 9 + package/dieharder/dieharder.hash | 3 + package/dieharder/dieharder.mk | 44 + ...rection.m4-fix-build-on-microblazeel.patch | 39 + .../0002-sigsegv-fix-build-on-or1k.patch | 32 + ..._random-port-better-to-uClibc-1-0-35.patch | 39 + ...-Fix-compilation-error-on-arceb-CPUs.patch | 41 + ...ort-for-Linux-PowerPC-32-bit-with-mu.patch | 58 + package/diffutils/Config.in | 12 + package/diffutils/diffutils.hash | 4 + package/diffutils/diffutils.mk | 22 + package/dillo/0001-usr-local-include.patch | 27 + .../dillo/0002-Fix-openssl-detection.patch | 29 + .../dillo/0003-Support-OpenSSL-1.1.0.patch | 33 + .../dillo/0004-fix-build-with-gcc-10.patch | 124 + package/dillo/Config.in | 19 + package/dillo/dillo.hash | 3 + package/dillo/dillo.mk | 46 + package/ding-libs/Config.in | 16 + package/ding-libs/ding-libs.hash | 6 + package/ding-libs/ding-libs.mk | 20 + .../directfb-examples/0001-remove-bzero.patch | 17 + package/directfb-examples/Config.in | 11 + .../directfb-examples/directfb-examples.hash | 3 + .../directfb-examples/directfb-examples.mk | 18 + ...01-fix-missing-davinci-voodoo-header.patch | 1726 +++ package/directfb/0002-imlib2-config.patch | 36 + package/directfb/0003-setregion-lock.patch | 99 + package/directfb/0004-use-gcc-link.patch | 35 + .../0005-add-missing-idivine-header.patch | 65 + ...-fix-client-gfx_state-initialisation.patch | 39 + package/directfb/Config.in | 169 + package/directfb/directfb.hash | 3 + package/directfb/directfb.mk | 172 + package/dmalloc/0001-mips.patch | 45 + .../0002-return-Fix-PowerPC-assembly.patch | 54 + package/dmalloc/Config.in | 9 + package/dmalloc/dmalloc.hash | 3 + package/dmalloc/dmalloc.mk | 81 + package/dmidecode/Config.in | 9 + package/dmidecode/dmidecode.hash | 3 + package/dmidecode/dmidecode.mk | 22 + .../0001-fix-compilation-under-musl.patch | 47 + package/dmraid/Config.in | 19 + package/dmraid/S20dmraid | 29 + package/dmraid/dmraid.hash | 5 + package/dmraid/dmraid.mk | 24 + ...-src-option.c-fix-build-with-gcc-4.8.patch | 52 + ...9080ff8743133fbd52427b4b2213171-typo.patch | 36 + ...-not-DNSSEC-compile-options-selected.patch | 34 + ...src-pattern.c-fix-build-with-gcc-4.8.patch | 57 + package/dnsmasq/Config.in | 51 + package/dnsmasq/S80dnsmasq | 25 + package/dnsmasq/dnsmasq.hash | 6 + package/dnsmasq/dnsmasq.mk | 95 + package/doc-asciidoc.mk | 190 + package/docker-cli/Config.in | 25 + package/docker-cli/docker-cli.hash | 3 + package/docker-cli/docker-cli.mk | 34 + ...p-generic-versions-and-bump-requests.patch | 66 + ...2-Bump-texttable-from-0.9.1-to-1.6.2.patch | 41 + ...003-support-PyYAML-up-to-5.1-version.patch | 44 + package/docker-compose/Config.in | 30 + package/docker-compose/docker-compose.hash | 5 + package/docker-compose/docker-compose.mk | 13 + package/docker-engine/Config.in | 56 + package/docker-engine/S60dockerd | 38 + package/docker-engine/docker-engine.hash | 3 + package/docker-engine/docker-engine.mk | 138 + package/docker-proxy/Config.in | 19 + package/docker-proxy/docker-proxy.hash | 3 + package/docker-proxy/docker-proxy.mk | 21 + package/docker/Config.in | 17 + package/docker/docker.hash | 4 + package/docker/docker.mk | 25 + package/domoticz/Config.in | 46 + package/domoticz/S99domoticz | 51 + package/domoticz/domoticz.hash | 3 + package/domoticz/domoticz.mk | 101 + package/domoticz/domoticz.service | 10 + package/doom-wad/Config.in | 11 + package/doom-wad/doom-wad.hash | 2 + package/doom-wad/doom-wad.mk | 24 + package/dos2unix/Config.in | 7 + package/dos2unix/Config.in.host | 6 + package/dos2unix/dos2unix.hash | 4 + package/dos2unix/dos2unix.mk | 48 + package/dosfstools/Config.in | 30 + package/dosfstools/Config.in.host | 6 + package/dosfstools/dosfstools.hash | 6 + package/dosfstools/dosfstools.mk | 60 + package/double-conversion/Config.in | 11 + .../double-conversion/double-conversion.hash | 3 + .../double-conversion/double-conversion.mk | 14 + package/dovecot-pigeonhole/Config.in | 8 + .../dovecot-pigeonhole.hash | 3 + .../dovecot-pigeonhole/dovecot-pigeonhole.mk | 18 + package/dovecot/Config.in | 41 + package/dovecot/dovecot.hash | 5 + package/dovecot/dovecot.mk | 135 + package/doxygen/Config.in.host | 12 + package/doxygen/doxygen.hash | 3 + package/doxygen/doxygen.mk | 17 + package/drbd-utils/Config.in | 7 + package/drbd-utils/drbd-utils.hash | 3 + package/drbd-utils/drbd-utils.mk | 36 + package/dropbear/Config.in | 76 + package/dropbear/S50dropbear | 61 + package/dropbear/dropbear.hash | 7 + package/dropbear/dropbear.mk | 142 + package/dropbear/dropbear.service | 27 + package/dropbear/etc-pam.d-sshd | 7 + package/dropwatch/Config.in | 14 + package/dropwatch/dropwatch.hash | 3 + package/dropwatch/dropwatch.mk | 18 + package/dstat/Config.in | 28 + package/dstat/dstat.hash | 3 + package/dstat/dstat.mk | 16 + package/dt-utils/Config.in | 11 + package/dt-utils/dt-utils.hash | 3 + package/dt-utils/dt-utils.mk | 15 + package/dt/0001-adjust-os-symlink.patch | 19 + .../dt/0002-dt-default-source-define.patch | 20 + package/dt/Config.in | 21 + package/dt/dt.hash | 7 + package/dt/dt.mk | 39 + package/dtach/Config.in | 10 + package/dtach/dtach.hash | 3 + package/dtach/dtach.mk | 17 + package/dtbocfg/Config.in | 12 + package/dtbocfg/dtbocfg.hash | 3 + package/dtbocfg/dtbocfg.mk | 18 + ...ards-for-older-kernel-u-boot-sources.patch | 67 + package/dtc/Config.in | 39 + package/dtc/Config.in.host | 10 + package/dtc/dtc.hash | 7 + package/dtc/dtc.mk | 79 + package/dtv-scan-tables/Config.in | 6 + package/dtv-scan-tables/dtv-scan-tables.hash | 4 + package/dtv-scan-tables/dtv-scan-tables.mk | 27 + package/duktape/Config.in | 20 + package/duktape/duktape.hash | 3 + package/duktape/duktape.mk | 33 + package/duktape/duktape.pc.in | 10 + package/duma/0001-fix-cross-compilation.patch | 37 + package/duma/0002-no-tests.patch | 19 + package/duma/0003-fix-C++14.patch | 65 + .../0004-Fix-build-with-latest-glibc.patch | 22 + package/duma/Config.in | 29 + package/duma/duma.hash | 4 + package/duma/duma.mk | 35 + package/dump1090/Config.in | 13 + package/dump1090/dump1090.hash | 3 + package/dump1090/dump1090.mk | 40 + package/dust/Config.in | 11 + package/dust/dust.hash | 3 + package/dust/dust.mk | 12 + .../dvb-apps/0001-Fix-generate-keynames.patch | 30 + .../0002-Fix-compiler-warning-flags.patch | 44 + ...0003-handle-static-shared-only-build.patch | 44 + .../dvb-apps/0004-Makefile-remove-test.patch | 27 + ...s-fix-build-with-kernel-headers-4.14.patch | 52 + package/dvb-apps/0006-fix-glibc-2.31.patch | 21 + package/dvb-apps/Config.in | 14 + package/dvb-apps/dvb-apps.hash | 6 + package/dvb-apps/dvb-apps.mk | 44 + package/dvblast/0001-missing-lm.patch | 29 + package/dvblast/0002-fix-int-types.patch | 24 + package/dvblast/Config.in | 14 + package/dvblast/dvblast.hash | 7 + package/dvblast/dvblast.mk | 29 + package/dvbsnoop/0001-musl-types-h.patch | 15 + package/dvbsnoop/Config.in | 21 + package/dvbsnoop/dvbsnoop.hash | 3 + package/dvbsnoop/dvbsnoop.mk | 12 + package/dvdauthor/Config.in | 25 + package/dvdauthor/dvdauthor.hash | 6 + package/dvdauthor/dvdauthor.mk | 47 + package/dvdrw-tools/0001-limits.h.patch | 23 + ...ysmacros.h-to-compile-with-newer-gcc.patch | 14 + package/dvdrw-tools/Config.in | 53 + package/dvdrw-tools/dvdrw-tools.hash | 3 + package/dvdrw-tools/dvdrw-tools.mk | 35 + ...-sanity-check-to-extent-manipulation.patch | 59 + package/e2fsprogs/Config.in | 82 + package/e2fsprogs/Config.in.host | 7 + package/e2fsprogs/e2fsprogs.hash | 6 + package/e2fsprogs/e2fsprogs.mk | 103 + package/e2tools/Config.in | 17 + package/e2tools/Config.in.host | 10 + package/e2tools/e2tools.hash | 3 + package/e2tools/e2tools.mk | 20 + ...001-main.c-fix-build-with-kernel-4.3.patch | 45 + package/earlyoom/Config.in | 12 + package/earlyoom/S02earlyoom | 49 + package/earlyoom/earlyoom.hash | 4 + package/earlyoom/earlyoom.mk | 40 + package/easy-rsa/Config.in | 16 + package/easy-rsa/easy-rsa.hash | 6 + package/easy-rsa/easy-rsa.mk | 23 + package/easydbus/Config.in | 15 + package/easydbus/easydbus.hash | 3 + package/easydbus/easydbus.mk | 13 + package/easyframes/Config.in | 11 + package/easyframes/easyframes.hash | 3 + package/easyframes/easyframes.mk | 13 + ...-ebtables-save-perl-script-with-bash.patch | 79 + ...estore-KERNEL_64_USERSPACE_32-checks.patch | 105 + ...-option-enable-kernel-64-userland-32.patch | 51 + package/ebtables/Config.in | 23 + package/ebtables/ebtables.hash | 4 + package/ebtables/ebtables.mk | 49 + package/ecryptfs-utils/0001-musl.patch | 35 + package/ecryptfs-utils/0002-openssl110.patch | 173 + .../0003-fix-parallel-build-issue.patch | 61 + package/ecryptfs-utils/Config.in | 35 + package/ecryptfs-utils/ecryptfs-utils.hash | 5 + package/ecryptfs-utils/ecryptfs-utils.mk | 50 + package/ed/Config.in | 8 + package/ed/ed.hash | 4 + package/ed/ed.mk | 30 + package/edid-decode/Config.in | 12 + package/edid-decode/edid-decode.hash | 3 + package/edid-decode/edid-decode.mk | 22 + package/edk2-platforms/Config.in | 8 + package/edk2-platforms/edk2-platforms.hash | 3 + package/edk2-platforms/edk2-platforms.mk | 22 + .../0001-Allow-build-with-uClibc.patch | 40 + .../efibootmgr/0002-remove-extra-decl.patch | 28 + package/efibootmgr/Config.in | 23 + package/efibootmgr/efibootmgr.hash | 3 + package/efibootmgr/efibootmgr.mk | 26 + .../efivar/0001-Allow-build-with-uClibc.patch | 37 + ..._guid-handle-misaligned-guid-pointer.patch | 62 + ...es-Werror-address-of-packed-member-c.patch | 174 + ...r-of-Werror-address-of-packed-member.patch | 57 + .../0005-ucs2.h-remove-unused-variable.patch | 35 + ...-that-checks-for-UCS-2-string-termin.patch | 32 + .../efivar/0007-gcc.specs-drop-Werror.patch | 44 + package/efivar/Config.in | 30 + package/efivar/efivar.hash | 3 + package/efivar/efivar.mk | 46 + ...es-drm-meson.build-use-gl_deps-as-en.patch | 36 + ...es-drm-meson.build-fix-gl_drm-includ.patch | 37 + .../0003-ecore_fb-fix-build-with-tslib.patch | 35 + package/efl/Config.in | 295 + package/efl/efl.hash | 13 + package/efl/efl.mk | 374 + ...ons-for-controlling-build-components.patch | 85 + package/eigen/Config.in | 17 + package/eigen/eigen.hash | 8 + package/eigen/eigen.mk | 31 + ...not-download-or-compile-dependencies.patch | 35 + package/ejabberd/0002-fix-ejabberdctl.patch | 28 + package/ejabberd/0003-correct-includes.patch | 1749 +++ package/ejabberd/Config.in | 35 + package/ejabberd/S50ejabberd | 54 + package/ejabberd/check-erlang-lib | 55 + package/ejabberd/ejabberd.hash | 3 + package/ejabberd/ejabberd.mk | 68 + .../0001-elf2flt-handle-binutils-2.34.patch | 377 + ...tate-32-byte-alignment-for-.data-sec.patch | 81 + ...03-elf2flt-add-riscv-64-bits-support.patch | 103 + ...2flt-create-a-common-helper-function.patch | 76 + ...l-error-regression-on-m68k-xtensa-ri.patch | 73 + package/elf2flt/elf2flt.hash | 3 + package/elf2flt/elf2flt.mk | 47 + package/elftosb/0001-fixes-includes.patch | 19 + package/elftosb/0002-force-cxx-compiler.patch | 98 + package/elftosb/elftosb.hash | 4 + package/elftosb/elftosb.mk | 22 + ...nable-disable-progs-configure-option.patch | 76 + ...e-Werror-conditional-to-BUILD_WERROR.patch | 38 + package/elfutils/Config.in | 34 + package/elfutils/elfutils.hash | 6 + package/elfutils/elfutils.mk | 99 + package/elixir/elixir.hash | 3 + package/elixir/elixir.mk | 21 + package/ell/Config.in | 13 + package/ell/ell.hash | 5 + package/ell/ell.mk | 19 + package/embiggen-disk/Config.in | 19 + package/embiggen-disk/embiggen-disk.hash | 3 + package/embiggen-disk/embiggen-disk.mk | 12 + package/emlog/Config.in | 17 + package/emlog/emlog.hash | 3 + package/emlog/emlog.mk | 26 + package/empty/0001-respect-LDFLAGS.patch | 22 + package/empty/Config.in | 8 + package/empty/empty.hash | 3 + package/empty/empty.mk | 22 + package/enchant/Config.in | 17 + package/enchant/enchant.hash | 3 + package/enchant/enchant.mk | 15 + package/enet/Config.in | 16 + package/enet/enet.hash | 3 + package/enet/enet.mk | 14 + package/enlightenment/Config.in | 38 + package/enlightenment/enlightenment.hash | 4 + package/enlightenment/enlightenment.mk | 58 + package/enscript/Config.in | 13 + package/enscript/enscript.hash | 4 + package/enscript/enscript.mk | 20 + package/environment-setup/Config.in.host | 6 + package/environment-setup/environment-setup | 25 + .../environment-setup/environment-setup.mk | 41 + package/erlang-base64url/Config.in | 6 + .../erlang-base64url/erlang-base64url.hash | 3 + package/erlang-base64url/erlang-base64url.mk | 12 + package/erlang-eimp/Config.in | 12 + package/erlang-eimp/erlang-eimp.hash | 3 + package/erlang-eimp/erlang-eimp.mk | 13 + package/erlang-goldrush/Config.in | 7 + package/erlang-goldrush/erlang-goldrush.hash | 3 + package/erlang-goldrush/erlang-goldrush.mk | 14 + package/erlang-idna/Config.in | 6 + package/erlang-idna/erlang-idna.hash | 3 + package/erlang-idna/erlang-idna.mk | 12 + package/erlang-jiffy/Config.in | 10 + package/erlang-jiffy/erlang-jiffy.hash | 3 + package/erlang-jiffy/erlang-jiffy.mk | 14 + package/erlang-jose/Config.in | 8 + package/erlang-jose/erlang-jose.hash | 3 + package/erlang-jose/erlang-jose.mk | 13 + package/erlang-lager/Config.in | 11 + package/erlang-lager/erlang-lager.hash | 3 + package/erlang-lager/erlang-lager.mk | 15 + package/erlang-p1-acme/Config.in | 14 + package/erlang-p1-acme/erlang-p1-acme.hash | 3 + package/erlang-p1-acme/erlang-p1-acme.mk | 13 + package/erlang-p1-cache-tab/Config.in | 7 + .../erlang-p1-cache-tab.hash | 3 + .../erlang-p1-cache-tab.mk | 13 + package/erlang-p1-mqtree/Config.in | 7 + .../erlang-p1-mqtree/erlang-p1-mqtree.hash | 3 + package/erlang-p1-mqtree/erlang-p1-mqtree.mk | 13 + package/erlang-p1-oauth2/Config.in | 6 + .../erlang-p1-oauth2/erlang-p1-oauth2.hash | 3 + package/erlang-p1-oauth2/erlang-p1-oauth2.mk | 13 + package/erlang-p1-pkix/Config.in | 6 + package/erlang-p1-pkix/erlang-p1-pkix.hash | 3 + package/erlang-p1-pkix/erlang-p1-pkix.mk | 12 + .../erlang-p1-sip/0001-correct-include.patch | 31 + package/erlang-p1-sip/Config.in | 9 + package/erlang-p1-sip/erlang-p1-sip.hash | 3 + package/erlang-p1-sip/erlang-p1-sip.mk | 14 + package/erlang-p1-stringprep/Config.in | 11 + .../erlang-p1-stringprep.hash | 5 + .../erlang-p1-stringprep.mk | 13 + package/erlang-p1-stun/Config.in | 8 + package/erlang-p1-stun/erlang-p1-stun.hash | 3 + package/erlang-p1-stun/erlang-p1-stun.mk | 14 + package/erlang-p1-tls/Config.in | 8 + package/erlang-p1-tls/erlang-p1-tls.hash | 3 + package/erlang-p1-tls/erlang-p1-tls.mk | 14 + package/erlang-p1-utils/Config.in | 6 + package/erlang-p1-utils/erlang-p1-utils.hash | 3 + package/erlang-p1-utils/erlang-p1-utils.mk | 14 + package/erlang-p1-xml/Config.in | 8 + package/erlang-p1-xml/erlang-p1-xml.hash | 3 + package/erlang-p1-xml/erlang-p1-xml.mk | 18 + .../erlang-p1-xmpp/0001-fix-includes.patch | 16 + package/erlang-p1-xmpp/Config.in | 16 + package/erlang-p1-xmpp/erlang-p1-xmpp.hash | 3 + package/erlang-p1-xmpp/erlang-p1-xmpp.mk | 17 + package/erlang-p1-yaml/Config.in | 8 + package/erlang-p1-yaml/erlang-p1-yaml.hash | 3 + package/erlang-p1-yaml/erlang-p1-yaml.mk | 13 + package/erlang-p1-yconf/Config.in | 5 + package/erlang-p1-yconf/erlang-p1-yconf.hash | 3 + package/erlang-p1-yconf/erlang-p1-yconf.mk | 13 + package/erlang-p1-zlib/Config.in | 7 + package/erlang-p1-zlib/erlang-p1-zlib.hash | 3 + package/erlang-p1-zlib/erlang-p1-zlib.mk | 13 + ...ompiler-add-fPIC-to-LDFLAGS-by-defau.patch | 35 + package/erlang-rebar/erlang-rebar.hash | 3 + package/erlang-rebar/erlang-rebar.mk | 31 + ...truct-libatomic_ops-we-do-require-CA.patch | 70 + ...ulator-reorder-inclued-headers-paths.patch | 46 + package/erlang/Config.in | 49 + package/erlang/erlang.hash | 5 + package/erlang/erlang.mk | 115 + package/erofs-utils/Config.in | 31 + package/erofs-utils/Config.in.host | 7 + package/erofs-utils/erofs-utils.hash | 5 + package/erofs-utils/erofs-utils.mk | 42 + ...red-library-on-architectures-needing.patch | 31 + ...ages-cast-string_ordinal-init-values.patch | 33 + package/espeak/Config.in | 43 + package/espeak/espeak.hash | 3 + package/espeak/espeak.mk | 44 + package/ethtool/Config.in | 15 + package/ethtool/ethtool.hash | 5 + package/ethtool/ethtool.mk | 23 + ...-pragma-for-ignoring-diagnostics-if-.patch | 39 + package/eudev/Config.in | 46 + package/eudev/Config.in.host | 3 + package/eudev/S10udev | 46 + package/eudev/eudev.hash | 3 + package/eudev/eudev.mk | 85 + package/ev3dev-linux-drivers/Config.in | 12 + .../ev3dev-linux-drivers.mk | 11 + .../lego-linux-drivers.hash | 2 + .../0001-Include-limits.h-for-PATH_MAX.patch | 35 + ...0002-evemu-Update-struct-input_event.patch | 110 + ...-evemu.c-fix-build-with-kernels-4.16.patch | 52 + ...-evemu.c-fix-build-with-kernels-4.16.patch | 47 + package/evemu/Config.in | 7 + package/evemu/evemu.hash | 4 + package/evemu/evemu.mk | 32 + package/evtest/Config.in | 9 + package/evtest/evtest.hash | 5 + package/evtest/evtest.mk | 20 + package/execline/Config.in | 12 + package/execline/execline.hash | 3 + package/execline/execline.mk | 72 + package/exempi/Config.in | 18 + package/exempi/exempi.hash | 3 + package/exempi/exempi.mk | 18 + package/exfat-utils/Config.in | 17 + package/exfat-utils/exfat-utils.hash | 3 + package/exfat-utils/exfat-utils.mk | 14 + package/exfat/Config.in | 16 + package/exfat/exfat.hash | 3 + package/exfat/exfat.mk | 18 + package/exfatprogs/Config.in | 17 + package/exfatprogs/Config.in.host | 13 + package/exfatprogs/exfatprogs.hash | 5 + package/exfatprogs/exfatprogs.mk | 16 + .../0001-Build-buildconfig-for-the-host.patch | 23 + ...ake-backup-copies-of-installed-files.patch | 40 + ...rsion-check-and-symlink-installation.patch | 41 + ..._lock-fix-lstat-related-build-errors.patch | 51 + .../exim/0005-sieve-fix-build-errors.patch | 42 + package/exim/Config.in | 36 + package/exim/S86exim | 34 + package/exim/exim.hash | 6 + package/exim/exim.mk | 160 + package/exim/exim.service | 14 + ...dd-BUILD_WITH_STACK_PROTECTOR-option.patch | 54 + package/exiv2/Config.in | 44 + package/exiv2/exiv2.hash | 3 + package/exiv2/exiv2.mk | 47 + ...re-safe-exiting-internalEntityParser.patch | 53 + package/expat/Config.in | 6 + package/expat/expat.hash | 7 + package/expat/expat.mk | 24 + .../0001-enable-cross-compilation.patch | 120 + .../0002-allow-tcl-build-directory.patch | 34 + package/expect/Config.in | 7 + package/expect/expect.hash | 4 + package/expect/expect.mk | 21 + package/explorercanvas/Config.in | 10 + package/explorercanvas/explorercanvas.hash | 3 + package/explorercanvas/explorercanvas.mk | 16 + package/f2fs-tools/Config.in | 12 + package/f2fs-tools/Config.in.host | 7 + package/f2fs-tools/f2fs-tools.hash | 3 + package/f2fs-tools/f2fs-tools.mk | 40 + package/faad2/Config.in | 6 + package/faad2/faad2.hash | 3 + package/faad2/faad2.mk | 19 + ...y-include-endian.h-for-BYTE_ORDER-ma.patch | 32 + ...t-include-linux-if_ether.h-for-musl-.patch | 32 + ...-fix-asbolute-symlink-of-libfaifa.so.patch | 32 + package/faifa/Config.in | 16 + package/faifa/faifa.hash | 3 + package/faifa/faifa.mk | 41 + ...-vulnerability-unset-escape-variable.patch | 158 + ...with-error-in-fail2ban-setup-command.patch | 67 + package/fail2ban/Config.in | 16 + package/fail2ban/S60fail2ban | 23 + package/fail2ban/fail2ban.hash | 3 + package/fail2ban/fail2ban.mk | 51 + package/fakedate/fakedate | 56 + package/fakedate/fakedate.mk | 14 + .../0001-fix-prototype-generation.patch | 61 + package/fakeroot/fakeroot.hash | 4 + package/fakeroot/fakeroot.mk | 26 + package/faketime/Config.in.host | 7 + package/faketime/faketime.hash | 3 + package/faketime/faketime.mk | 20 + ...cmake-Permit-setting-GRPC_CPP_PLUGIN.patch | 34 + package/falcosecurity-libs/Config.in | 32 + .../falcosecurity-libs.hash | 5 + .../falcosecurity-libs/falcosecurity-libs.mk | 84 + package/fan-ctrl/Config.in | 11 + package/fan-ctrl/fan-ctrl.hash | 2 + package/fan-ctrl/fan-ctrl.mk | 27 + package/fastd/Config.in | 36 + package/fastd/fastd.hash | 3 + package/fastd/fastd.mk | 55 + package/fatcat/Config.in.host | 8 + package/fatcat/fatcat.hash | 3 + package/fatcat/fatcat.mk | 12 + package/fb-test-app/Config.in | 6 + package/fb-test-app/fb-test-app.hash | 3 + package/fb-test-app/fb-test-app.mk | 24 + package/fbdump/Config.in | 9 + package/fbdump/fbdump.hash | 3 + package/fbdump/fbdump.mk | 21 + package/fbgrab/0001-fix-static-build.patch | 21 + package/fbgrab/Config.in | 8 + package/fbgrab/fbgrab.hash | 3 + package/fbgrab/fbgrab.mk | 21 + package/fbset/0001-Fix-musl-compile.patch | 33 + package/fbset/Config.in | 10 + package/fbset/fbset.hash | 3 + package/fbset/fbset.mk | 21 + ...roxy.cpp-fbterm.cpp-fix-musl-compile.patch | 70 + .../0002-mouse.cpp-fix-musl-compile.patch | 30 + package/fbterm/0003-C++11-compliance.patch | 93 + package/fbterm/0004-iconv.patch | 41 + package/fbterm/Config.in | 17 + package/fbterm/fbterm.hash | 4 + package/fbterm/fbterm.mk | 20 + package/fbtft/Config.in | 13 + package/fbtft/fbtft.hash | 3 + package/fbtft/fbtft.mk | 12 + package/fbv/0001-cross.patch | 44 + ...0002-fix-24bpp-support-on-big-endian.patch | 32 + package/fbv/0003-fix-bgr555.patch | 64 + package/fbv/0004-giflib.patch | 84 + package/fbv/0005-include.patch | 20 + package/fbv/0006-libpng15.patch | 24 + .../0007-gif.c-fic-build-with-gcc-10.patch | 36 + package/fbv/Config.in | 33 + package/fbv/fbv.hash | 3 + package/fbv/fbv.mk | 57 + .../0001-use-LIBS-from-configure.patch | 22 + ...systemd-instead-of-libsystemd-daemon.patch | 20 + package/fcgiwrap/Config.in | 10 + package/fcgiwrap/fcgiwrap.hash | 3 + package/fcgiwrap/fcgiwrap.mk | 33 + package/fconfig/Config.in | 6 + package/fconfig/fconfig.hash | 3 + package/fconfig/fconfig.mk | 22 + package/fdk-aac/Config.in | 24 + package/fdk-aac/fdk-aac.hash | 6 + package/fdk-aac/fdk-aac.mk | 14 + package/feh/Config.in | 13 + package/feh/feh.hash | 3 + package/feh/feh.mk | 46 + ...c-fix-cross-compilation-with-openssl.patch | 56 + package/fetchmail/Config.in | 12 + package/fetchmail/fetchmail.hash | 4 + package/fetchmail/fetchmail.mk | 27 + ...-x86-yuv2rgb-Fix-build-without-SSSE3.patch | 43 + ...264-skip-decode-if-pic-has-no-slices.patch | 36 + .../0003-libavutil-Fix-mips-build.patch | 72 + ...igure-add-extralibs-to-extralibs_xxx.patch | 47 + package/ffmpeg/Config.in | 188 + package/ffmpeg/ffmpeg.hash | 5 + package/ffmpeg/ffmpeg.mk | 580 + package/fftw/Config.in | 35 + package/fftw/fftw-double/Config.in | 5 + package/fftw/fftw-double/fftw-double.hash | 1 + package/fftw/fftw-double/fftw-double.mk | 22 + package/fftw/fftw-long-double/Config.in | 8 + .../fftw-long-double/fftw-long-double.hash | 1 + .../fftw/fftw-long-double/fftw-long-double.mk | 22 + package/fftw/fftw-quad/Config.in | 7 + package/fftw/fftw-quad/fftw-quad.hash | 1 + package/fftw/fftw-quad/fftw-quad.mk | 22 + package/fftw/fftw-single/Config.in | 5 + package/fftw/fftw-single/fftw-single.hash | 1 + package/fftw/fftw-single/fftw-single.mk | 37 + package/fftw/fftw.hash | 5 + package/fftw/fftw.mk | 36 + package/ficl/0001-fix-Makefile.patch | 47 + .../0002-Makefile.linux-pass-LDFLAGS.patch | 35 + package/ficl/Config.in | 9 + package/ficl/ficl.hash | 3 + package/ficl/ficl.mk | 59 + package/file/Config.in | 7 + package/file/file.hash | 7 + package/file/file.mk | 52 + package/filemq/Config.in | 16 + package/filemq/filemq.hash | 3 + package/filemq/filemq.mk | 23 + package/findutils/Config.in | 15 + package/findutils/findutils.hash | 5 + package/findutils/findutils.mk | 25 + package/fio/Config.in | 22 + package/fio/fio.hash | 4 + package/fio/fio.mk | 40 + package/firmware-utils/Config.in | 20 + package/firmware-utils/Config.in.host | 12 + package/firmware-utils/firmware-utils.hash | 2 + package/firmware-utils/firmware-utils.mk | 40 + package/flac/0001-Fix-uclibc-build.patch | 81 + package/flac/Config.in | 10 + package/flac/flac.hash | 8 + package/flac/flac.mk | 40 + .../0001-src-cpp-fix-cmake-3.11-build.patch | 80 + package/flann/Config.in | 25 + package/flann/flann.hash | 3 + package/flann/flann.mk | 29 + package/flannel/Config.in | 15 + package/flannel/flannel.hash | 3 + package/flannel/flannel.mk | 22 + package/flare-engine/Config.in | 21 + package/flare-engine/flare-engine.hash | 3 + package/flare-engine/flare-engine.mk | 26 + package/flare-game/Config.in | 13 + package/flare-game/flare-game.hash | 3 + package/flare-game/flare-game.mk | 18 + package/flashbench/Config.in | 10 + package/flashbench/flashbench.hash | 3 + package/flashbench/flashbench.mk | 24 + ...kefile-Fix-building-on-AArch64-NixOS.patch | 95 + package/flashrom/Config.in | 24 + package/flashrom/flashrom.hash | 4 + package/flashrom/flashrom.mk | 48 + ...flatbuffers-base.h-fix-build-on-musl.patch | 51 + package/flatbuffers/Config.in | 14 + package/flatbuffers/flatbuffers.hash | 3 + package/flatbuffers/flatbuffers.mk | 36 + package/flatcc/Config.in | 8 + package/flatcc/flatcc.hash | 3 + package/flatcc/flatcc.mk | 32 + ...SE_SYSTEM_EXTENSIONS-in-configure.ac.patch | 35 + ...ssible-to-disable-the-build-of-the-f.patch | 76 + ...ssible-to-disable-the-build-of-the-d.patch | 58 + package/flex/Config.in | 9 + package/flex/flex.hash | 4 + package/flex/flex.mk | 35 + package/flickcurl/Config.in | 21 + package/flickcurl/flickcurl.hash | 7 + package/flickcurl/flickcurl.mk | 23 + package/flite/0001-fix-alsa-static.patch | 19 + package/flite/Config.in | 16 + package/flite/flite.hash | 4 + package/flite/flite.mk | 28 + package/flot/Config.in | 97 + package/flot/flot.hash | 3 + package/flot/flot.mk | 34 + package/fltk/0001-disable-tests.patch | 16 + package/fltk/Config.in | 19 + package/fltk/fltk.hash | 5 + package/fltk/fltk.mk | 64 + package/fluid-soundfont/Config.in | 16 + package/fluid-soundfont/fluid-soundfont.hash | 3 + package/fluid-soundfont/fluid-soundfont.mk | 21 + package/fluidsynth/Config.in | 135 + package/fluidsynth/fluidsynth.hash | 3 + package/fluidsynth/fluidsynth.mk | 84 + package/fluxbox/0001-fixes-bug-1138.patch | 25 + package/fluxbox/Config.in | 16 + package/fluxbox/fluxbox.hash | 3 + package/fluxbox/fluxbox.mk | 88 + package/fluxbox/xsession | 2 + package/fmc/Config.in | 25 + package/fmc/fmc.hash | 3 + package/fmc/fmc.mk | 40 + package/fmlib/Config.in | 50 + package/fmlib/fmlib.hash | 3 + package/fmlib/fmlib.mk | 38 + package/fmt/Config.in | 13 + package/fmt/fmt.hash | 3 + package/fmt/fmt.mk | 23 + package/fmtools/Config.in | 9 + package/fmtools/fmtools.hash | 4 + package/fmtools/fmtools.mk | 12 + package/font-awesome/Config.in | 7 + package/font-awesome/font-awesome.hash | 2 + package/font-awesome/font-awesome.mk | 20 + ...x-the-build-issue-with-enable-static.patch | 133 + ...read-as-a-dependency-of-a-static-lib.patch | 44 + package/fontconfig/Config.in | 11 + package/fontconfig/fontconfig.hash | 5 + package/fontconfig/fontconfig.mk | 32 + package/fping/Config.in | 8 + package/fping/fping.hash | 5 + package/fping/fping.mk | 13 + ...-rename-md2-and-md5-functions-macros.patch | 695 + package/freeipmi/Config.in | 20 + package/freeipmi/freeipmi.hash | 15 + package/freeipmi/freeipmi.mk | 34 + .../0001-fix-for-nettle.patch | 20 + package/freeradius-client/Config.in | 7 + .../freeradius-client/freeradius-client.hash | 3 + .../freeradius-client/freeradius-client.mk | 22 + .../0001-jlibtool-cross-with-host-CC.patch | 33 + ...2-configure.ac-add-option-for-libcap.patch | 75 + ...configure.ac-allow-cross-compilation.patch | 42 + ...r-for-expansion-of-macro-in-thread.h.patch | 66 + ...dules-rlm_sql-remove-mysql_version.h.patch | 37 + ...006-configure.ac-add-option-for-pcap.patch | 80 + ...ure.ac-add-option-for-collectdclient.patch | 67 + ...-execinfo-in-libc-before-searching-l.patch | 71 + package/freeradius-server/Config.in | 19 + .../freeradius-server/freeradius-server.hash | 4 + .../freeradius-server/freeradius-server.mk | 227 + package/freeradius-server/radiusd.service | 38 + ...001-Fix-variable-declaration-in-loop.patch | 33 + ...2-Fixed-variable-declaration-in-loop.patch | 34 + ...ude-winpr-file.h-fix-build-on-uclibc.patch | 39 + package/freerdp/Config.in | 74 + package/freerdp/freerdp.hash | 5 + package/freerdp/freerdp.mk | 272 + package/freescale-imx/Config.in | 129 + package/freescale-imx/firmware-imx/Config.in | 99 + .../firmware-imx/firmware-imx.hash | 5 + .../firmware-imx/firmware-imx.mk | 180 + package/freescale-imx/freescale-imx.mk | 34 + .../freescale-imx/gpu-amd-bin-mx51/Config.in | 60 + package/freescale-imx/gpu-amd-bin-mx51/egl.pc | 10 + .../freescale-imx/gpu-amd-bin-mx51/glesv2.pc | 10 + .../gpu-amd-bin-mx51/gpu-amd-bin-mx51.hash | 3 + .../gpu-amd-bin-mx51/gpu-amd-bin-mx51.mk | 67 + package/freescale-imx/gpu-amd-bin-mx51/vg.pc | 10 + .../freescale-imx/imx-alsa-plugins/Config.in | 22 + .../imx-alsa-plugins/imx-alsa-plugins.hash | 3 + .../imx-alsa-plugins/imx-alsa-plugins.mk | 21 + package/freescale-imx/imx-codec/Config.in | 13 + .../freescale-imx/imx-codec/imx-codec.hash | 4 + package/freescale-imx/imx-codec/imx-codec.mk | 44 + package/freescale-imx/imx-gpu-g2d/Config.in | 29 + .../imx-gpu-g2d/imx-gpu-g2d.hash | 5 + .../freescale-imx/imx-gpu-g2d/imx-gpu-g2d.mk | 41 + package/freescale-imx/imx-gpu-viv/Config.in | 114 + .../imx-gpu-viv/imx-gpu-viv.hash | 5 + .../freescale-imx/imx-gpu-viv/imx-gpu-viv.mk | 101 + .../imx-kobs/0001-Fix-musl-build.patch | 39 + ...0002-Fix-build-for-recent-toolchains.patch | 26 + package/freescale-imx/imx-kobs/Config.in | 9 + package/freescale-imx/imx-kobs/imx-kobs.hash | 3 + package/freescale-imx/imx-kobs/imx-kobs.mk | 12 + package/freescale-imx/imx-lib/Config.in | 15 + package/freescale-imx/imx-lib/imx-lib.hash | 3 + package/freescale-imx/imx-lib/imx-lib.mk | 39 + .../freescale-imx/imx-m4fwloader/Config.in | 8 + .../imx-m4fwloader/imx-m4fwloader.hash | 3 + .../imx-m4fwloader/imx-m4fwloader.mk | 22 + package/freescale-imx/imx-parser/Config.in | 8 + .../freescale-imx/imx-parser/imx-parser.hash | 4 + .../freescale-imx/imx-parser/imx-parser.mk | 42 + .../freescale-imx/imx-sc-firmware/Config.in | 10 + .../imx-sc-firmware/imx-sc-firmware.hash | 4 + .../imx-sc-firmware/imx-sc-firmware.mk | 34 + package/freescale-imx/imx-seco/Config.in | 53 + package/freescale-imx/imx-seco/imx-seco.hash | 4 + package/freescale-imx/imx-seco/imx-seco.mk | 30 + package/freescale-imx/imx-uuc/Config.in | 23 + package/freescale-imx/imx-uuc/S80imx-uuc | 27 + package/freescale-imx/imx-uuc/imx-uuc.hash | 3 + package/freescale-imx/imx-uuc/imx-uuc.mk | 38 + package/freescale-imx/imx-uuc/imx-uuc.service | 11 + .../freescale-imx/imx-vpu-hantro-vc/Config.in | 14 + .../imx-vpu-hantro-vc/imx-vpu-hantro-vc.hash | 4 + .../imx-vpu-hantro-vc/imx-vpu-hantro-vc.mk | 25 + ...on.h-header-inclusion-to-be-standard.patch | 77 + ...0002-Fix-build-with-uclibc-toolchain.patch | 51 + .../freescale-imx/imx-vpu-hantro/Config.in | 20 + .../imx-vpu-hantro/imx-vpu-hantro.hash | 4 + .../imx-vpu-hantro/imx-vpu-hantro.mk | 43 + package/freescale-imx/imx-vpu/Config.in | 14 + package/freescale-imx/imx-vpu/imx-vpu.hash | 4 + package/freescale-imx/imx-vpu/imx-vpu.mk | 39 + package/freescale-imx/imx-vpuwrap/Config.in | 19 + .../imx-vpuwrap/imx-vpuwrap.hash | 4 + .../freescale-imx/imx-vpuwrap/imx-vpuwrap.mk | 28 + .../kernel-module-imx-gpu-viv/Config.in | 16 + .../kernel-module-imx-gpu-viv.hash | 3 + .../kernel-module-imx-gpu-viv.mk | 24 + package/freescale-imx/libz160/Config.in | 11 + package/freescale-imx/libz160/libz160.hash | 3 + package/freescale-imx/libz160/libz160.mk | 30 + package/freeswitch-mod-bcg729/Config.in | 10 + .../freeswitch-mod-bcg729.hash | 3 + .../freeswitch-mod-bcg729.mk | 30 + ...build-SWITCH_BYTE_ORDER-__BIG_ENDIAN.patch | 26 + .../0002-core-fix--disable-libyuv.patch | 129 + ...-hash-hmac_ossl.c-fix-build-with-lib.patch | 59 + package/freeswitch/Config.in | 39 + package/freeswitch/freeswitch.hash | 12 + package/freeswitch/freeswitch.mk | 352 + package/freetype/Config.in | 6 + package/freetype/freetype.hash | 8 + package/freetype/freetype.mk | 71 + package/frotz/Config.in | 10 + package/frotz/frotz.hash | 3 + package/frotz/frotz.mk | 31 + package/frr/Config.in | 40 + package/frr/S50frr | 46 + package/frr/frr.hash | 3 + package/frr/frr.mk | 108 + package/fscryptctl/Config.in | 12 + package/fscryptctl/fscryptctl.hash | 3 + package/fscryptctl/fscryptctl.mk | 21 + package/fstrcmp/0001-disable-rpath.patch | 25 + package/fstrcmp/Config.in | 12 + package/fstrcmp/fstrcmp.hash | 6 + package/fstrcmp/fstrcmp.mk | 31 + package/fswebcam/Config.in | 22 + package/fswebcam/fswebcam.hash | 3 + package/fswebcam/fswebcam.mk | 14 + package/ftop/0001-overflow.patch | 17 + package/ftop/Config.in | 9 + package/ftop/ftop.hash | 6 + package/ftop/ftop.mk | 14 + package/fuse-overlayfs/Config.in | 17 + package/fuse-overlayfs/fuse-overlayfs.hash | 4 + package/fuse-overlayfs/fuse-overlayfs.mk | 15 + .../fwts/0001-build-do-not-use-Werror.patch | 79 + package/fwts/Config.in | 40 + package/fwts/fwts.hash | 5 + package/fwts/fwts.mk | 23 + package/fwup/Config.in | 17 + package/fwup/Config.in.host | 7 + package/fwup/fwup.hash | 3 + package/fwup/fwup.mk | 17 + package/fxload/0001-fix-static-build.patch | 25 + package/fxload/Config.in | 10 + package/fxload/fxload.hash | 3 + package/fxload/fxload.mk | 27 + package/gamin/0001-no-abstract-sockets.patch | 61 + package/gamin/0002-no-const-return.patch | 57 + ...x-missing-PTHREAD_MUTEX_RECURSIVE_NP.patch | 39 + package/gamin/Config.in | 14 + package/gamin/gamin.hash | 3 + package/gamin/gamin.mk | 21 + package/gauche/Config.in | 28 + package/gauche/gauche.hash | 6 + package/gauche/gauche.mk | 43 + package/gawk/0001-no-versioned.patch | 16 + package/gawk/Config.in | 16 + package/gawk/gawk.hash | 6 + package/gawk/gawk.mk | 49 + ...get-92095-internal-error-with-O1-mcp.patch | 328 + ...-mcmodel-option-to-handle-large-GOTs.patch | 200 + ...-cmodel-large-when-building-crtstuff.patch | 60 + ...TRANT-for-OpenRISC-when-pthread-is-p.patch | 31 + ...le-split-stack-for-non-thread-builds.patch | 26 + ...-mcmodel-option-to-handle-large-GOTs.patch | 200 + ...-cmodel-large-when-building-crtstuff.patch | 60 + ...TRANT-for-OpenRISC-when-pthread-is-p.patch | 31 + ...le-split-stack-for-non-thread-builds.patch | 26 + .../11.3.0/0005-rs6000-Improve-.machine.patch | 120 + ...e-rs6000_cpu-for-.machine-ppc-and-pp.patch | 68 + ...le-split-stack-for-non-thread-builds.patch | 26 + .../0001-xtensa-fix-PR-target-91880.patch | 51 + ...get-92095-internal-error-with-O1-mcp.patch | 322 + ...er-Remove-cyclades-from-libsanitizer.patch | 123 + ...le-split-stack-for-non-thread-builds.patch | 26 + package/gcc/Config.in.host | 148 + .../0001-arc-Refurbish-adc-sbc-patterns.patch | 243 + ...er-Remove-cyclades-from-libsanitizer.patch | 121 + .../0100-uclibc-conf.patch | 29 + package/gcc/gcc-final/gcc-final.hash | 1 + package/gcc/gcc-final/gcc-final.mk | 219 + package/gcc/gcc-initial/gcc-initial.hash | 1 + package/gcc/gcc-initial/gcc-initial.mk | 54 + package/gcc/gcc.hash | 13 + package/gcc/gcc.mk | 345 + package/gcnano-binaries/Config.in | 39 + package/gcnano-binaries/gcnano-binaries.hash | 3 + package/gcnano-binaries/gcnano-binaries.mk | 77 + package/gconf/Config.in | 21 + package/gconf/gconf.hash | 4 + package/gconf/gconf.mk | 23 + ...wn-kw-argument-in-gnome.generate_gir.patch | 64 + package/gcr/Config.in | 22 + package/gcr/gcr.hash | 3 + package/gcr/gcr.mk | 47 + package/gd/Config.in | 58 + package/gd/gd.hash | 3 + package/gd/gd.mk | 96 + package/gdal/Config.in | 32 + package/gdal/gdal.hash | 6 + package/gdal/gdal.mk | 116 + ...e-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch | 55 + ...-pt_-dsp-regs-uapi_pt_-dsp-regs-on-G.patch | 43 + package/gdb/10.2/0003-use-asm-sgidefs.h.patch | 40 + .../0004-gdbserver-fix-build-for-m68k.patch | 63 + ...fork-inferior-include-linux-ptrace.h.patch | 53 + ...getrandom-compile-for-uclibc-v1.0.35.patch | 39 + .../10.2/0007-fix-musl-build-on-riscv.patch | 60 + ...-gdbserver-Makefile.in-fix-NLS-build.patch | 38 + .../0009-gdb-Fix-native-build-on-xtensa.patch | 57 + ...e-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch | 55 + ...-pt_-dsp-regs-uapi_pt_-dsp-regs-on-G.patch | 43 + package/gdb/11.2/0003-use-asm-sgidefs.h.patch | 40 + .../0004-gdbserver-fix-build-for-m68k.patch | 63 + ...fork-inferior-include-linux-ptrace.h.patch | 53 + ...getrandom-compile-for-uclibc-v1.0.35.patch | 39 + .../11.2/0007-fix-musl-build-on-riscv.patch | 60 + ...-gdbserver-Makefile.in-fix-NLS-build.patch | 38 + .../0009-gdb-Fix-native-build-on-xtensa.patch | 57 + ...e-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch | 55 + ...-pt_-dsp-regs-uapi_pt_-dsp-regs-on-G.patch | 43 + package/gdb/9.2/0003-use-asm-sgidefs.h.patch | 40 + .../0004-gdbserver-fix-build-for-m68k.patch | 62 + ...fork-inferior-include-linux-ptrace.h.patch | 53 + ...ppc-Fix-linker-error-with-fno-common.patch | 101 + ...x-Python3.9-related-runtime-problems.patch | 227 + ...t-build-gdbserver-with-m68k-and-ucli.patch | 41 + .../0009-gdb-Fix-native-build-on-xtensa.patch | 57 + package/gdb/Config.in | 86 + package/gdb/Config.in.host | 82 + package/gdb/gdb-python-config | 41 + package/gdb/gdb.hash | 7 + package/gdb/gdb.mk | 314 + package/gdbm/Config.in | 13 + package/gdbm/gdbm.hash | 6 + package/gdbm/gdbm.mk | 21 + package/gdk-pixbuf-xlib/Config.in | 17 + package/gdk-pixbuf-xlib/gdk-pixbuf-xlib.hash | 5 + package/gdk-pixbuf-xlib/gdk-pixbuf-xlib.mk | 16 + package/gdk-pixbuf/Config.in | 16 + package/gdk-pixbuf/gdk-pixbuf.hash | 3 + package/gdk-pixbuf/gdk-pixbuf.mk | 96 + package/genext2fs/Config.in | 9 + package/genext2fs/Config.in.host | 9 + package/genext2fs/genext2fs.hash | 3 + package/genext2fs/genext2fs.mk | 15 + ...-configure.ac-add-disable-doc-option.patch | 51 + package/gengetopt/gengetopt.hash | 4 + package/gengetopt/gengetopt.mk | 15 + package/genimage/Config.in.host | 13 + package/genimage/genimage.hash | 3 + package/genimage/genimage.mk | 14 + package/genpart/0001-fix-return-code.patch | 25 + package/genpart/Config.in | 8 + package/genpart/Config.in.host | 8 + package/genpart/genpart.hash | 2 + package/genpart/genpart.mk | 19 + package/genromfs/0001-build-system.patch | 26 + package/genromfs/Config.in | 6 + package/genromfs/genromfs.hash | 3 + package/genromfs/genromfs.mk | 34 + package/gensio/Config.in | 9 + package/gensio/gensio.hash | 7 + package/gensio/gensio.mk | 41 + package/geoip/Config.in | 14 + package/geoip/geoip.hash | 3 + package/geoip/geoip.mk | 14 + package/gerbera/Config.in | 34 + package/gerbera/S99gerbera | 55 + package/gerbera/config.xml | 175 + package/gerbera/gerbera.hash | 3 + package/gerbera/gerbera.mk | 133 + ...v3-attributes-according-to-draft-iet.patch | 30 + package/gesftpserver/Config.in | 18 + package/gesftpserver/gesftpserver.hash | 3 + package/gesftpserver/gesftpserver.mk | 37 + package/getent/Config.in | 10 + package/getent/getent | 45 + package/getent/getent.mk | 26 + .../0001-error_print_progname.patch | 20 + ...-buld-gettext-tools-seperately-part1.patch | 142 + package/gettext-gnu/Config.in | 24 + package/gettext-gnu/gettext-gnu.hash | 7 + package/gettext-gnu/gettext-gnu.mk | 103 + package/gettext-tiny/Config.in | 18 + package/gettext-tiny/gettext-tiny.hash | 6 + package/gettext-tiny/gettext-tiny.mk | 107 + package/gettext-tiny/gettext-wrapper | 24 + package/gettext/Config.in | 18 + package/gettext/gettext.mk | 10 + package/gflags/Config.in | 13 + package/gflags/gflags.hash | 5 + package/gflags/gflags.mk | 22 + package/ghostscript-fonts/Config.in | 8 + .../ghostscript-fonts/ghostscript-fonts.hash | 5 + .../ghostscript-fonts/ghostscript-fonts.mk | 21 + package/ghostscript/Config.in | 14 + package/ghostscript/ghostscript.hash | 5 + package/ghostscript/ghostscript.mk | 90 + .../giblib/0001-fix-imlib2-detection.patch | 127 + package/giblib/Config.in | 13 + package/giblib/giblib.hash | 3 + package/giblib/giblib.mk | 19 + ...dd-targets-to-manage-static-building.patch | 69 + package/giflib/Config.in | 6 + package/giflib/giflib.hash | 5 + package/giflib/giflib.mk | 49 + .../0001-fix-build-with-libressl-3.5.0.patch | 56 + package/git-crypt/Config.in | 22 + package/git-crypt/git-crypt.hash | 5 + package/git-crypt/git-crypt.mk | 26 + .../git/0001-Fix-build-without-threads.patch | 100 + package/git/Config.in | 11 + package/git/git.hash | 5 + package/git/git.mk | 85 + package/gitlab-runner/Config.in | 31 + package/gitlab-runner/S95gitlab-runner | 64 + package/gitlab-runner/gitlab-runner.hash | 3 + package/gitlab-runner/gitlab-runner.mk | 33 + package/gitlab-runner/gitlab-runner.service | 18 + package/gkrellm/Config.in | 43 + package/gkrellm/gkrellm.hash | 4 + package/gkrellm/gkrellm.mk | 54 + .../gli/0001-Optional-building-tests.patch | 45 + package/gli/Config.in | 10 + package/gli/gli.hash | 3 + package/gli/gli.mk | 19 + .../0001-meson-change-std-to-gnu99.patch | 30 + package/glib-networking/Config.in | 19 + package/glib-networking/glib-networking.hash | 3 + package/glib-networking/glib-networking.mk | 41 + ...lement-a-useful-version-of-_startup_.patch | 132 + ...ot-posix-conformant-on-microblaze-wi.patch | 37 + package/glibc/Config.in | 71 + package/glibc/glibc.hash | 7 + package/glibc/glibc.mk | 189 + package/glibc/nsswitch.conf | 13 + package/glibmm/Config.in | 18 + package/glibmm/glibmm.hash | 5 + package/glibmm/glibmm.mk | 29 + package/glm/Config.in | 10 + package/glm/glm.hash | 3 + package/glm/glm.mk | 23 + ...find_program-to-find-wayland-scanner.patch | 50 + package/glmark2/Config.in | 73 + package/glmark2/glmark2.hash | 4 + package/glmark2/glmark2.mk | 47 + .../glog/0001-added-emscripten-support.patch | 292 + package/glog/Config.in | 13 + package/glog/glog.hash | 5 + package/glog/glog.mk | 23 + ...src-connectiontcpserver-cpp-fix-musl.patch | 25 + package/gloox/Config.in | 16 + package/gloox/gloox.hash | 3 + package/gloox/gloox.mk | 47 + .../0001-Add-support-for-Apple-silicon.patch | 51 + ...s256.c-fix-aarch64-build-with-uclibc.patch | 43 + package/glorytun/Config.in | 7 + package/glorytun/glorytun.hash | 2 + package/glorytun/glorytun.mk | 13 + package/glslsandbox-player/Config.in | 119 + .../glslsandbox-player.hash | 3 + .../glslsandbox-player/glslsandbox-player.mk | 80 + ...z-inp_raw.c-Avoid-bit-size-overflows.patch | 27 + package/gmp/Config.in | 6 + package/gmp/gmp.hash | 6 + package/gmp/gmp.mk | 33 + package/gmpc/Config.in | 26 + package/gmpc/gmpc.hash | 3 + package/gmpc/gmpc.mk | 18 + package/gmrender-resurrect/Config.in | 16 + .../gmrender-resurrect.hash | 3 + .../gmrender-resurrect/gmrender-resurrect.mk | 18 + ...n-t-override-ARCH-when-cross-compili.patch | 32 + ...support-__mips64-to-recognize-mips64.patch | 60 + package/gnu-efi/Config.in | 18 + package/gnu-efi/gnu-efi.hash | 6 + package/gnu-efi/gnu-efi.mk | 45 + package/gnuchess/Config.in | 13 + package/gnuchess/gnuchess.hash | 3 + package/gnuchess/gnuchess.mk | 18 + ...se-EXTERN_UNLESS_MAIN_MODULE-pattern.patch | 156 + package/gnupg/Config.in | 44 + package/gnupg/Config.in.host | 12 + package/gnupg/gnupg.hash | 5 + package/gnupg/gnupg.mk | 91 + package/gnupg2/Config.in | 53 + package/gnupg2/gnupg2.hash | 7 + package/gnupg2/gnupg2.mk | 69 + ...01-configure-add-without-demo-option.patch | 69 + package/gnuplot/Config.in | 6 + package/gnuplot/gnuplot.hash | 6 + package/gnuplot/gnuplot.mk | 54 + ....h-drop-boost-cstdint.hpp-and-use-cs.patch | 39 + ...aceholders_with_their_full_namespace.patch | 1012 ++ ...rdcode-INTERFACE_INCLUDE_DIRECTORIES.patch | 57 + ...add-examples-c-subdirectory-when-gr-.patch | 55 + ...ve-deprecated-math-common_factor.hpp.patch | 165 + package/gnuradio/Config.in | 165 + package/gnuradio/gnuradio.hash | 3 + package/gnuradio/gnuradio.mk | 164 + package/gnutls/Config.in | 41 + package/gnutls/gnutls.hash | 6 + package/gnutls/gnutls.mk | 131 + package/go-bootstrap/Config.in.host | 7 + package/go-bootstrap/go-bootstrap.hash | 3 + package/go-bootstrap/go-bootstrap.mk | 50 + ...explicit-option-for-crosscompilation.patch | 40 + ...use-gohostarch-for-ssa-rewrite-check.patch | 95 + ...03-runtime-support-riscv64-SV57-mode.patch | 65 + package/go/Config.in.host | 31 + package/go/go.hash | 3 + package/go/go.mk | 165 + .../gob2/0001-dont-include-from-prefix.patch | 40 + package/gob2/gob2.hash | 4 + package/gob2/gob2.mk | 17 + .../0001-disable-tests.patch | 34 + .../0002-Add-rpath-links-to-ccompiler.patch | 29 + ...-error-return-codes-from-ldd-wrapper.patch | 31 + ...04-build-Avoid-the-doctemplates-hack.patch | 221 + package/gobject-introspection/Config.in | 50 + .../gobject-introspection/g-ir-compiler.in | 3 + .../g-ir-scanner-lddwrapper.in | 3 + .../g-ir-scanner-qemuwrapper.in | 22 + package/gobject-introspection/g-ir-scanner.in | 22 + .../gobject-introspection.hash | 5 + .../gobject-introspection.mk | 154 + ...-fix-jacobsa-crypto-build-on-riscv64.patch | 152 + package/gocryptfs/Config.in | 12 + package/gocryptfs/gocryptfs.hash | 3 + package/gocryptfs/gocryptfs.mk | 19 + package/google-breakpad/Config.in | 43 + package/google-breakpad/Config.in.host | 8 + package/google-breakpad/gen-syms.sh | 34 + package/google-breakpad/google-breakpad.hash | 3 + package/google-breakpad/google-breakpad.mk | 42 + .../google-material-design-icons/Config.in | 40 + .../google-material-design-icons.hash | 3 + .../google-material-design-icons.mk | 61 + package/googlefontdirectory/Config.in | 19 + .../googlefontdirectory.hash | 994 ++ .../googlefontdirectory.mk | 37 + package/gperf/Config.in | 10 + package/gperf/gperf.hash | 7 + package/gperf/gperf.mk | 15 + ...usl-support-to-libgpm-and-the-daemon.patch | 71 + .../0002-Install-unversioned-solibrary.patch | 41 + ...Really-install-unversioned-solibrary.patch | 31 + ...mptyset-API-instead-of-__sigemptyset.patch | 33 + .../gpm/0005-fix-building-w-newer-glibc.patch | 32 + ...on.h-avoid-redefinition-of-last_sele.patch | 43 + package/gpm/Config.in | 26 + package/gpm/gpm.hash | 3 + package/gpm/gpm.mk | 72 + package/gpsd/Config.in | 243 + package/gpsd/S50gpsd | 40 + package/gpsd/gpsd.hash | 3 + package/gpsd/gpsd.mk | 255 + ...lly-revert-Tweaks-for-building-on-th.patch | 42 + package/gptfdisk/Config.in | 47 + package/gptfdisk/Config.in.host | 11 + package/gptfdisk/gptfdisk.hash | 5 + package/gptfdisk/gptfdisk.mk | 55 + package/gqrx/Config.in | 52 + package/gqrx/gqrx.hash | 4 + package/gqrx/gqrx.mk | 21 + package/gr-osmosdr/Config.in | 46 + package/gr-osmosdr/gr-osmosdr.hash | 3 + package/gr-osmosdr/gr-osmosdr.mk | 57 + package/granite/Config.in | 20 + package/granite/granite.hash | 3 + package/granite/granite.mk | 28 + package/grantlee/Config.in | 9 + package/grantlee/grantlee.hash | 5 + package/grantlee/grantlee.mk | 14 + package/graphicsmagick/Config.in | 17 + package/graphicsmagick/graphicsmagick.hash | 3 + package/graphicsmagick/graphicsmagick.mk | 125 + ...l-a-libtool-file-with-static-library.patch | 67 + package/graphite2/Config.in | 12 + package/graphite2/graphite2.hash | 4 + package/graphite2/graphite2.mk | 25 + ...01-sigsegv-fix-build-on-microblazeel.patch | 32 + .../grep/0002-sigsegv-fix-build-on-or1k.patch | 32 + package/grep/Config.in | 14 + package/grep/grep.hash | 5 + package/grep/grep.mk | 50 + ...the-availability-of-pthread_setname_.patch | 66 + ...py.cc-add-GPR_DISABLE_WRAPPED_MEMCPY.patch | 34 + .../grpc/0003-host-grpc-only-cpp-plugin.patch | 206 + .../0004-fix-grpc-plugin-cross-compile.patch | 43 + ...nconditionally-downloading-api-repos.patch | 39 + package/grpc/Config.in | 27 + package/grpc/grpc.hash | 3 + package/grpc/grpc.mk | 92 + package/gsettings-desktop-schemas/Config.in | 16 + .../gsettings-desktop-schemas.hash | 5 + .../gsettings-desktop-schemas.mk | 17 + package/gsl/Config.in | 10 + package/gsl/gsl.hash | 3 + package/gsl/gsl.mk | 27 + package/gssdp/Config.in | 16 + package/gssdp/gssdp.hash | 5 + package/gssdp/gssdp.mk | 24 + package/gstreamer1/Config.in | 21 + package/gstreamer1/gst-omx/Config.in | 11 + package/gstreamer1/gst-omx/gst-omx.hash | 3 + package/gstreamer1/gst-omx/gst-omx.mk | 39 + package/gstreamer1/gst1-devtools/Config.in | 16 + .../gst1-devtools/gst1-devtools.hash | 3 + .../gstreamer1/gst1-devtools/gst1-devtools.mk | 40 + package/gstreamer1/gst1-imx/Config.in | 104 + package/gstreamer1/gst1-imx/gst1-imx.hash | 3 + package/gstreamer1/gst1-imx/gst1-imx.mk | 104 + package/gstreamer1/gst1-interpipe/Config.in | 10 + .../gst1-interpipe/gst1-interpipe.hash | 5 + .../gst1-interpipe/gst1-interpipe.mk | 22 + package/gstreamer1/gst1-libav/Config.in | 16 + package/gstreamer1/gst1-libav/gst1-libav.hash | 3 + package/gstreamer1/gst1-libav/gst1-libav.mk | 15 + package/gstreamer1/gst1-plugins-bad/Config.in | 733 + .../gst1-plugins-bad/gst1-plugins-bad.hash | 3 + .../gst1-plugins-bad/gst1-plugins-bad.mk | 825 ++ .../gstreamer1/gst1-plugins-base/Config.in | 322 + .../gst1-plugins-base/gst1-plugins-base.hash | 3 + .../gst1-plugins-base/gst1-plugins-base.mk | 301 + .../gst1-plugins-bayer2rgb-neon/Config.in | 20 + .../gst1-plugins-bayer2rgb-neon.hash | 3 + .../gst1-plugins-bayer2rgb-neon.mk | 23 + .../gstreamer1/gst1-plugins-good/Config.in | 424 + .../gst1-plugins-good/gst1-plugins-good.hash | 3 + .../gst1-plugins-good/gst1-plugins-good.mk | 490 + .../gstreamer1/gst1-plugins-ugly/Config.in | 61 + .../gst1-plugins-ugly/gst1-plugins-ugly.hash | 3 + .../gst1-plugins-ugly/gst1-plugins-ugly.mk | 99 + package/gstreamer1/gst1-python/Config.in | 26 + .../gstreamer1/gst1-python/gst1-python.hash | 3 + package/gstreamer1/gst1-python/gst1-python.mk | 39 + package/gstreamer1/gst1-rtsp-server/Config.in | 12 + .../gst1-rtsp-server/gst1-rtsp-server.hash | 4 + .../gst1-rtsp-server/gst1-rtsp-server.mk | 50 + package/gstreamer1/gst1-shark/Config.in | 13 + package/gstreamer1/gst1-shark/gst1-shark.hash | 5 + package/gstreamer1/gst1-shark/gst1-shark.mk | 19 + package/gstreamer1/gst1-vaapi/Config.in | 51 + package/gstreamer1/gst1-vaapi/gst1-vaapi.hash | 3 + package/gstreamer1/gst1-vaapi/gst1-vaapi.mk | 36 + .../0001-Fix-gstd_chmod.sh-DESTDIR-path.patch | 27 + ...td-check-user-xenv.sh-for-systemd-se.patch | 34 + ...son-python-module-for-python-install.patch | 78 + ...-meson.build-add-missing-init-subdir.patch | 28 + ...use-dependency-function-for-readline.patch | 51 + package/gstreamer1/gstd/Config.in | 18 + package/gstreamer1/gstd/gstd.hash | 3 + package/gstreamer1/gstd/gstd.mk | 40 + .../gstreamer1-editing-services/Config.in | 18 + .../gstreamer1-editing-services.hash | 6 + .../gstreamer1-editing-services.mk | 37 + package/gstreamer1/gstreamer1.mk | 1 + package/gstreamer1/gstreamer1/Config.in | 61 + package/gstreamer1/gstreamer1/gstreamer1.hash | 3 + package/gstreamer1/gstreamer1/gstreamer1.mk | 61 + ...test.pc-gmock.pc-library-names-for-t.patch | 62 + package/gtest/Config.in | 50 + package/gtest/gtest.hash | 3 + package/gtest/gtest.mk | 38 + package/gtk2-engines/Config.in | 5 + package/gtk2-engines/gtk2-engines.hash | 4 + package/gtk2-engines/gtk2-engines.mk | 88 + package/gtkmm3/Config.in | 30 + package/gtkmm3/gtkmm3.hash | 5 + package/gtkmm3/gtkmm3.mk | 16 + package/gtkperf/Config.in | 11 + package/gtkperf/gtkperf.hash | 3 + package/gtkperf/gtkperf.mk | 15 + package/gtksourceview/Config.in | 12 + package/gtksourceview/gtksourceview.hash | 5 + package/gtksourceview/gtksourceview.mk | 17 + .../guile/0001-calculate-csqrt_manually.patch | 16 + ...kefile.am-fix-build-without-makeinfo.patch | 51 + package/guile/Config.in | 21 + package/guile/guile.hash | 6 + package/guile/guile.mk | 78 + ...001-configure.ac-fix-build-without-C.patch | 63 + package/gumbo-parser/Config.in | 10 + package/gumbo-parser/gumbo-parser.hash | 5 + package/gumbo-parser/gumbo-parser.mk | 15 + package/gupnp-av/Config.in | 17 + package/gupnp-av/gupnp-av.hash | 5 + package/gupnp-av/gupnp-av.mk | 23 + package/gupnp-dlna/Config.in | 17 + package/gupnp-dlna/gupnp-dlna.hash | 5 + package/gupnp-dlna/gupnp-dlna.mk | 32 + package/gupnp-tools/Config.in | 21 + package/gupnp-tools/gupnp-tools.hash | 5 + package/gupnp-tools/gupnp-tools.mk | 38 + package/gupnp/Config.in | 20 + package/gupnp/gupnp.hash | 5 + package/gupnp/gupnp.mk | 25 + .../0001-use-pregen-xmli18n-header.patch | 48 + ...laces-static-with-static-libtool-lib.patch | 39 + package/gutenprint/Config.in | 15 + package/gutenprint/gutenprint.hash | 3 + package/gutenprint/gutenprint.mk | 89 + ...e-incorrect-i18n.merge_file-argument.patch | 33 + package/gvfs/Config.in | 23 + package/gvfs/gvfs.hash | 5 + package/gvfs/gvfs.mk | 171 + package/gzip/Config.in | 13 + package/gzip/gzip.hash | 6 + package/gzip/gzip.mk | 26 + ...ndFFTW.cmake-fix-build-without-fftw3.patch | 34 + package/hackrf/Config.in | 16 + package/hackrf/hackrf.hash | 3 + package/hackrf/hackrf.mk | 24 + package/hans/Config.in | 14 + package/hans/hans.hash | 6 + package/hans/hans.mk | 20 + package/haproxy/Config.in | 19 + package/haproxy/haproxy.hash | 6 + package/haproxy/haproxy.mk | 93 + ...0001-meson.build-check-for-pthread.h.patch | 42 + package/harfbuzz/Config.in | 17 + package/harfbuzz/harfbuzz.hash | 3 + package/harfbuzz/harfbuzz.mk | 102 + .../haserl/0001-add-haserl_lualib.inc.patch | 149 + package/haserl/Config.in | 16 + package/haserl/haserl.hash | 5 + package/haserl/haserl.mk | 33 + package/haveged/Config.in | 9 + package/haveged/S21haveged | 23 + package/haveged/haveged.hash | 3 + package/haveged/haveged.mk | 43 + package/haveged/haveged.service | 22 + ...eatures.cmake-fix-DENABLE_CPU_USAGE_.patch | 38 + package/hawktracer/Config.in | 25 + package/hawktracer/hawktracer.hash | 3 + package/hawktracer/hawktracer.mk | 48 + package/hdparm/Config.in | 7 + package/hdparm/hdparm.hash | 5 + package/hdparm/hdparm.mk | 23 + package/heimdal/heimdal.hash | 5 + package/heimdal/heimdal.mk | 52 + .../0001-fix-libressl-support.patch | 54 + package/heirloom-mailx/Config.in | 22 + package/heirloom-mailx/heirloom-mailx.hash | 5 + package/heirloom-mailx/heirloom-mailx.mk | 50 + package/hiawatha/Config.in | 36 + package/hiawatha/hiawatha.hash | 3 + package/hiawatha/hiawatha.mk | 57 + package/hicolor-icon-theme/Config.in | 11 + .../hicolor-icon-theme.hash | 3 + .../hicolor-icon-theme/hicolor-icon-theme.mk | 13 + package/hidapi/Config.in | 21 + package/hidapi/hidapi.hash | 6 + package/hidapi/hidapi.mk | 22 + ...1-CMakeLists.txt-do-not-force-SHARED.patch | 47 + ...-allow-building-without-a-C-compiler.patch | 57 + .../0003-Explicitly-set-c99-in-CMake.patch | 28 + package/hiredis/Config.in | 12 + package/hiredis/hiredis.hash | 3 + package/hiredis/hiredis.mk | 23 + package/hostapd/Config.in | 116 + package/hostapd/hostapd.hash | 3 + package/hostapd/hostapd.mk | 154 + ...ld-use-pkg-config-to-discover-libusb.patch | 45 + ...nfigure.in-fix-AM_INIT_AUTOMAKE-call.patch | 35 + package/hplip/Config.in | 24 + package/hplip/hplip.hash | 3 + package/hplip/hplip.mk | 48 + package/htop/Config.in | 14 + package/htop/htop.hash | 5 + package/htop/htop.mk | 47 + package/htpdate/Config.in | 8 + package/htpdate/S43htpdate | 51 + package/htpdate/htpdate.hash | 3 + package/htpdate/htpdate.mk | 38 + package/htpdate/htpdate.service | 13 + .../0001-fix-math-library-linking.patch | 25 + ...Makefile-allow-build-without-gettext.patch | 48 + package/httping/Config.in | 22 + package/httping/httping.hash | 3 + package/httping/httping.mk | 37 + package/hwdata/Config.in | 38 + package/hwdata/hwdata.hash | 4 + package/hwdata/hwdata.mk | 26 + package/hwloc/Config.in | 15 + package/hwloc/hwloc.hash | 4 + package/hwloc/hwloc.mk | 58 + package/hyperfine/Config.in | 11 + package/hyperfine/hyperfine.hash | 4 + package/hyperfine/hyperfine.mk | 12 + package/i2c-tools/Config.in | 11 + package/i2c-tools/i2c-tools.hash | 7 + package/i2c-tools/i2c-tools.mk | 68 + ...pd-Fix-the-build-with-LibreSSL-3-5-2.patch | 27 + package/i2pd/Config.in | 40 + package/i2pd/S99i2pd | 38 + package/i2pd/i2pd.hash | 4 + package/i2pd/i2pd.mk | 62 + package/i2pd/i2pd.service | 29 + package/i7z/0001-fix-build-with-gcc-10.patch | 63 + package/i7z/Config.in | 17 + package/i7z/i7z.hash | 3 + package/i7z/i7z.mk | 22 + ...01-Use-LONG_BIT-to-define-RADIX_BITS.patch | 80 + package/ibm-sw-tpm2/Config.in | 16 + package/ibm-sw-tpm2/ibm-sw-tpm2.hash | 6 + package/ibm-sw-tpm2/ibm-sw-tpm2.mk | 23 + ...File.cpp-support-POSIX-basename-call.patch | 55 + ...-added-openssl-1.1-compatibility-264.patch | 357 + ...sl-gcm-fix-static-build-with-openssl.patch | 94 + package/ibrcommon/Config.in | 13 + package/ibrcommon/ibrcommon.hash | 4 + package/ibrcommon/ibrcommon.mk | 36 + package/ibrdtn-tools/Config.in | 15 + package/ibrdtn-tools/ibrdtn-tools.hash | 3 + package/ibrdtn-tools/ibrdtn-tools.mk | 32 + package/ibrdtn/Config.in | 16 + package/ibrdtn/ibrdtn.hash | 3 + package/ibrdtn/ibrdtn.mk | 29 + ...-ibrdtnd-added-openssl-compatibility.patch | 205 + ...icateManager.cpp-include-cstring-267.patch | 29 + package/ibrdtnd/Config.in | 15 + package/ibrdtnd/ibrdtnd.hash | 3 + package/ibrdtnd/ibrdtnd.mk | 53 + ...0001-dont-build-static-dynamic-twice.patch | 37 + .../icu/0002-workaround-toolchain-bugs.patch | 37 + .../icu/0003-link-icudata-as-data-only.patch | 35 + .../0004-fix-static-linking-with-icu-uc.patch | 34 + package/icu/Config.in | 35 + package/icu/icu.hash | 3 + package/icu/icu.mk | 87 + package/ifenslave/Config.in | 7 + package/ifenslave/ifenslave.hash | 5 + package/ifenslave/ifenslave.mk | 19 + ...K-Packet-too-small-or-truncated-92-1.patch | 29 + package/ifmetric/Config.in | 10 + package/ifmetric/ifmetric.hash | 4 + package/ifmetric/ifmetric.mk | 14 + package/ifplugd/0001-cross.patch | 17 + package/ifplugd/0002-fix-headers.patch | 24 + package/ifplugd/0003-no-cxx.patch | 17 + package/ifplugd/0004-musl-fix-types.patch | 24 + ...rc-interface.h-fix-build-with-gcc-10.patch | 38 + package/ifplugd/Config.in | 14 + package/ifplugd/ifplugd.hash | 3 + package/ifplugd/ifplugd.mk | 35 + ...01-ui_common.h-fix-build-with-gcc-10.patch | 60 + ...ame-pcap_filter-to-iftop_pcap_filter.patch | 51 + package/iftop/Config.in | 16 + package/iftop/iftop.hash | 3 + package/iftop/iftop.mk | 19 + package/ifupdown-scripts/Config.in | 7 + package/ifupdown-scripts/S40network | 30 + package/ifupdown-scripts/ifupdown-scripts.mk | 72 + package/ifupdown-scripts/network.service | 21 + .../ifupdown-scripts/network/if-down.d/.empty | 0 .../network/if-post-down.d/.empty | 0 .../network/if-pre-up.d/wait_iface | 21 + .../ifupdown-scripts/network/if-up.d/.empty | 0 package/ifupdown-scripts/nfs_check | 20 + .../0001-dont-use-dpkg-architecture.patch | 17 + package/ifupdown/Config.in | 18 + package/ifupdown/ifupdown.hash | 4 + package/ifupdown/ifupdown.mk | 35 + package/igd2-for-linux/Config.in | 25 + package/igd2-for-linux/S99upnpd | 67 + package/igd2-for-linux/igd2-for-linux.hash | 4 + package/igd2-for-linux/igd2-for-linux.mk | 29 + package/igd2-for-linux/upnpd.service | 22 + package/igh-ethercat/Config.in | 29 + package/igh-ethercat/igh-ethercat.hash | 5 + package/igh-ethercat/igh-ethercat.mk | 25 + package/igmpproxy/Config.in | 15 + package/igmpproxy/igmpproxy.hash | 5 + package/igmpproxy/igmpproxy.mk | 14 + package/ijs/Config.in | 8 + package/ijs/ijs.hash | 3 + package/ijs/ijs.mk | 17 + package/ima-evm-utils/Config.in | 16 + package/ima-evm-utils/ima-evm-utils.hash | 4 + package/ima-evm-utils/ima-evm-utils.mk | 32 + package/imagemagick/Config.in | 19 + package/imagemagick/Config.in.host | 32 + package/imagemagick/imagemagick.hash | 3 + package/imagemagick/imagemagick.mk | 248 + package/imlib2/Config.in | 42 + package/imlib2/imlib2.hash | 8 + package/imlib2/imlib2.mk | 68 + ...overriding-BL32-and-BL33-not-only-BL.patch | 60 + .../0002-Add-LDFLAGS-to-link-step.patch | 26 + .../0003-Add-unused-fake-version.patch | 36 + ...rt-for-overriding-BL31-BL32-and-BL33.patch | 61 + package/imx-mkimage/Config.in.host | 7 + package/imx-mkimage/imx-mkimage.hash | 3 + package/imx-mkimage/imx-mkimage.mk | 38 + package/imx-usb-loader/Config.in | 15 + package/imx-usb-loader/Config.in.host | 14 + package/imx-usb-loader/imx-usb-loader.hash | 3 + package/imx-usb-loader/imx-usb-loader.mk | 32 + package/inadyn/Config.in | 15 + package/inadyn/S70inadyn | 70 + package/inadyn/inadyn.conf | 26 + package/inadyn/inadyn.hash | 5 + package/inadyn/inadyn.mk | 38 + package/inconsolata/Config.in | 7 + package/inconsolata/inconsolata.hash | 4 + package/inconsolata/inconsolata.mk | 19 + package/inih/Config.in | 7 + package/inih/inih.hash | 3 + package/inih/inih.mk | 20 + package/initscripts/Config.in | 4 + package/initscripts/init.d/rcK | 27 + package/initscripts/init.d/rcS | 27 + package/initscripts/initscripts.mk | 12 + package/inotify-tools/Config.in | 11 + package/inotify-tools/inotify-tools.hash | 3 + package/inotify-tools/inotify-tools.mk | 13 + package/input-event-daemon/Config.in | 10 + .../input-event-daemon/S99input-event-daemon | 39 + .../input-event-daemon.hash | 3 + .../input-event-daemon/input-event-daemon.mk | 35 + .../input-event-daemon.service | 9 + .../0001-Drop-hardening-related-flags.patch | 28 + package/intel-gmmlib/Config.in | 15 + package/intel-gmmlib/intel-gmmlib.hash | 3 + package/intel-gmmlib/intel-gmmlib.mk | 17 + .../0001-Fix-uClibc-build.patch | 65 + .../0002-Fix-build-with-libexecinfo.patch | 43 + package/intel-mediadriver/Config.in | 34 + .../intel-mediadriver/intel-mediadriver.hash | 3 + .../intel-mediadriver/intel-mediadriver.mk | 45 + .../0001-Don-t-force-fstack-protector.patch | 54 + package/intel-mediasdk/Config.in | 26 + package/intel-mediasdk/intel-mediasdk.hash | 3 + package/intel-mediasdk/intel-mediasdk.mk | 20 + package/intel-microcode/Config.in | 18 + package/intel-microcode/intel-microcode.hash | 3 + package/intel-microcode/intel-microcode.mk | 35 + .../0001-perl-5.26-compatibility.patch | 55 + package/intltool/intltool.hash | 6 + package/intltool/intltool.mk | 14 + .../0001-disable-systemd-and-selinux.patch | 29 + package/iodine/Config.in | 9 + package/iodine/iodine.hash | 4 + package/iodine/iodine.mk | 34 + .../0001-Fix-build-error-with-Python-3.patch | 37 + package/iotop/Config.in | 11 + package/iotop/iotop.hash | 3 + package/iotop/iotop.mk | 13 + .../0001-Add-new-targets-for-iozone.patch | 103 + package/iozone/Config.in | 14 + package/iozone/iozone.hash | 2 + package/iozone/iozone.mk | 32 + package/ipcalc/Config.in | 8 + package/ipcalc/ipcalc.hash | 3 + package/ipcalc/ipcalc.mk | 33 + .../iperf/0001-Fix-build-with-musl-libc.patch | 67 + .../0002-compat-gettcpinfo.c-fix-build.patch | 34 + package/iperf/Config.in | 14 + package/iperf/iperf.hash | 6 + package/iperf/iperf.mk | 17 + package/iperf3/Config.in | 16 + package/iperf3/iperf3.hash | 4 + package/iperf3/iperf3.mk | 25 + .../0001-Fix-missing-stddef.h-include.patch | 38 + ....1-compatibility-error-storage-size-.patch | 108 + ...iler-happier-about-changes-related-t.patch | 40 + ...ool-coredumps-in-EVP_CIPHER_CTX_init.patch | 57 + ...CIPHER_CTX_free-instead-of-EVP_CIPHE.patch | 148 + ...ompile-with-deprecated-APIs-disabled.patch | 50 + ...g-move-variable-definition-to-c-file.patch | 40 + ...-Fix-buffer-overflow-vulnerabilities.patch | 132 + ...uffer-overflow-in-ipmi_spd_print_fru.patch | 52 + ...er-overflow-in-ipmi_get_session_info.patch | 52 + .../0011-channel-Fix-buffer-overflow.patch | 46 + ...er-overflows-in-get_lan_param_select.patch | 92 + ...u-sdr-Fix-id_string-buffer-overflows.patch | 141 + package/ipmitool/Config.in | 40 + package/ipmitool/ipmitool.hash | 3 + package/ipmitool/ipmitool.mk | 56 + package/ipmiutil/Config.in | 18 + package/ipmiutil/ipmiutil.hash | 6 + package/ipmiutil/ipmiutil.mk | 24 + .../0001-bpf_glue-include-errno.h.patch | 32 + package/iproute2/Config.in | 13 + package/iproute2/iproute2.hash | 3 + package/iproute2/iproute2.mk | 58 + ...gure.ac-add-AC_USE_SYSTEM_EXTENSIONS.patch | 47 + package/iprutils/Config.in | 11 + package/iprutils/iprutils.hash | 6 + package/iprutils/iprutils.mk | 16 + package/ipset/Config.in | 8 + package/ipset/ipset.hash | 4 + package/ipset/ipset.mk | 18 + ...uild-for-missing-ETH_ALEN-definition.patch | 69 + ...2-treewide-use-uint-instead-of-u_int.patch | 167 + .../0003-netfilter-add-nf_log.h.patch | 38 + package/iptables/Config.in | 31 + package/iptables/S35iptables | 58 + package/iptables/iptables.hash | 4 + package/iptables/iptables.mk | 65 + package/iptraf-ng/Config.in | 17 + package/iptraf-ng/iptraf-ng.hash | 3 + package/iptraf-ng/iptraf-ng.mk | 24 + package/iputils/Config.in | 65 + package/iputils/iputils.hash | 6 + package/iputils/iputils.mk | 132 + package/irda-utils/0001-daemon.patch | 34 + package/irda-utils/0002-nommu.patch | 24 + package/irda-utils/0003-subdir.patch | 23 + package/irda-utils/0004-musl.patch | 31 + package/irda-utils/Config.in | 19 + package/irda-utils/irda-utils.hash | 3 + package/irda-utils/irda-utils.mk | 39 + package/irqbalance/Config.in | 19 + package/irqbalance/S13irqbalance | 36 + package/irqbalance/irqbalance.hash | 3 + package/irqbalance/irqbalance.mk | 54 + package/irqbalance/irqbalance.service | 10 + ...LAGS-CXXFLAGS-and-CFLAGS-in-Makefile.patch | 44 + .../irrlicht/0002-remove-sys-sysctl.h.patch | 38 + ...e-LDFLAGS-and-remove-obsolete-X11R6-.patch | 36 + package/irrlicht/Config.in | 17 + package/irrlicht/irrlicht.hash | 10 + package/irrlicht/irrlicht.mk | 65 + package/irssi/Config.in | 31 + package/irssi/irssi.hash | 4 + package/irssi/irssi.mk | 46 + package/isl/isl.hash | 3 + package/isl/isl.mk | 14 + package/iucode-tool/Config.in | 11 + package/iucode-tool/S00iucode-tool | 28 + package/iucode-tool/iucode-tool.hash | 3 + package/iucode-tool/iucode-tool.mk | 29 + package/iucode-tool/iucode.service | 10 + package/iw/Config.in | 11 + package/iw/iw.hash | 4 + package/iw/iw.mk | 26 + ...-src-storage.c-fix-build-with-uclibc.patch | 37 + package/iwd/Config.in | 20 + package/iwd/S40iwd | 42 + package/iwd/iwd.hash | 5 + package/iwd/iwd.mk | 89 + package/iwd/main.conf | 5 + package/jack1/Config.in | 31 + package/jack1/jack1.hash | 5 + package/jack1/jack1.mk | 22 + package/jack2/Config.in | 51 + package/jack2/jack2.hash | 3 + package/jack2/jack2.mk | 75 + package/jailhouse/Config.in | 28 + package/jailhouse/jailhouse.hash | 3 + package/jailhouse/jailhouse.mk | 54 + package/janet/Config.in | 10 + package/janet/janet.hash | 5 + package/janet/janet.mk | 27 + package/jansson/Config.in | 7 + package/jansson/jansson.hash | 3 + package/jansson/jansson.mk | 17 + package/janus-gateway/0001-disable-ssp.patch | 35 + ...dd-test-for-Wunused-but-set-variable.patch | 150 + package/janus-gateway/Config.in | 107 + package/janus-gateway/janus-gateway.hash | 3 + package/janus-gateway/janus-gateway.mk | 143 + package/janus-gateway/janus-gateway.service | 13 + package/jasper/Config.in | 6 + package/jasper/jasper.hash | 3 + package/jasper/jasper.mk | 37 + package/jbig2dec/Config.in | 7 + package/jbig2dec/jbig2dec.hash | 7 + package/jbig2dec/jbig2dec.mk | 17 + package/jemalloc/Config.in | 29 + package/jemalloc/jemalloc.hash | 3 + package/jemalloc/jemalloc.mk | 22 + package/jh71xx-tools/Config.in.host | 7 + package/jh71xx-tools/jh71xx-tools.hash | 3 + package/jh71xx-tools/jh71xx-tools.mk | 20 + package/jhead/Config.in | 11 + package/jhead/jhead.hash | 3 + package/jhead/jhead.mk | 21 + package/jimtcl/Config.in | 10 + package/jimtcl/jimtcl.hash | 3 + package/jimtcl/jimtcl.mk | 103 + ...-Makefile-add-ENABLE_STACK_PROTECTOR.patch | 52 + package/jitterentropy-library/Config.in | 10 + .../jitterentropy-library.hash | 5 + .../jitterentropy-library.mk | 44 + package/jo/Config.in | 6 + package/jo/jo.hash | 3 + package/jo/jo.mk | 14 + package/joe/Config.in | 21 + package/joe/joe.hash | 6 + package/joe/joe.mk | 25 + ...-lib-hsh.c-rename-hsh-local-variable.patch | 71 + ...dd-option-to-skip-building-man-pages.patch | 64 + package/jose/Config.in | 14 + package/jose/jose.hash | 3 + package/jose/jose.mk | 16 + package/jpeg-turbo/Config.in.options | 11 + package/jpeg-turbo/jpeg-turbo.hash | 7 + package/jpeg-turbo/jpeg-turbo.mk | 53 + package/jpeg/Config.in | 57 + package/jpeg/jpeg.mk | 7 + package/jq/Config.in | 12 + package/jq/Config.in.host | 11 + package/jq/jq.hash | 3 + package/jq/jq.mk | 35 + package/jquery-datetimepicker/Config.in | 7 + .../jquery-datetimepicker.hash | 3 + .../jquery-datetimepicker.mk | 19 + package/jquery-keyboard/Config.in | 7 + package/jquery-keyboard/jquery-keyboard.hash | 3 + package/jquery-keyboard/jquery-keyboard.mk | 24 + package/jquery-mobile/Config.in | 25 + package/jquery-mobile/jquery-mobile.hash | 2 + package/jquery-mobile/jquery-mobile.mk | 47 + package/jquery-sidebar/Config.in | 6 + package/jquery-sidebar/jquery-sidebar.hash | 3 + package/jquery-sidebar/jquery-sidebar.mk | 17 + package/jquery-sparkline/Config.in | 12 + .../jquery-sparkline/jquery-sparkline.hash | 2 + package/jquery-sparkline/jquery-sparkline.mk | 21 + package/jquery-ui-themes/Config.in | 117 + .../jquery-ui-themes/jquery-ui-themes.hash | 3 + package/jquery-ui-themes/jquery-ui-themes.mk | 30 + package/jquery-ui/Config.in | 9 + package/jquery-ui/jquery-ui.hash | 3 + package/jquery-ui/jquery-ui.mk | 34 + package/jquery-validation/Config.in | 8 + .../jquery-validation/jquery-validation.hash | 3 + .../jquery-validation/jquery-validation.mk | 24 + package/jquery/Config.in | 8 + package/jquery/jquery.hash | 2 + package/jquery/jquery.mk | 22 + package/jsmin/Config.in | 11 + package/jsmin/Config.in.host | 11 + package/jsmin/jsmin.hash | 3 + package/jsmin/jsmin.mk | 29 + package/jsmn/Config.in | 8 + package/jsmn/jsmn.hash | 3 + package/jsmn/jsmn.mk | 19 + package/json-c/Config.in | 13 + package/json-c/json-c.hash | 4 + package/json-c/json-c.mk | 16 + package/json-for-modern-cpp/Config.in | 29 + .../json-for-modern-cpp.hash | 3 + .../json-for-modern-cpp.mk | 19 + package/json-glib/Config.in | 16 + package/json-glib/json-glib.hash | 5 + package/json-glib/json-glib.mk | 30 + package/json-javascript/Config.in | 6 + package/json-javascript/json-javascript.hash | 3 + package/json-javascript/json-javascript.mk | 16 + package/jsoncpp/Config.in | 15 + package/jsoncpp/jsoncpp.hash | 3 + package/jsoncpp/jsoncpp.mk | 15 + package/jszip/Config.in | 7 + package/jszip/jszip.hash | 3 + package/jszip/jszip.mk | 18 + package/kbd/Config.in | 13 + package/kbd/kbd.hash | 4 + package/kbd/kbd.mk | 21 + ...upport-meta-l4proro-until-Linux-3-14.patch | 76 + ...upport-meta-l4proro-until-Linux-3-14.patch | 40 + .../0003-fix-build-with-libressl.patch | 50 + package/keepalived/Config.in | 19 + package/keepalived/keepalived.hash | 3 + package/keepalived/keepalived.mk | 63 + package/kexec-lite/0001-clean-restart.patch | 34 + package/kexec-lite/Config.in | 25 + package/kexec-lite/kexec-lite.hash | 3 + package/kexec-lite/kexec-lite.mk | 15 + package/kexec/Config.in | 22 + package/kexec/kexec.hash | 4 + package/kexec/kexec.mk | 37 + package/keyutils/0001-fix-install-rule.patch | 22 + package/keyutils/0002-cifs.patch | 15 + package/keyutils/Config.in | 13 + package/keyutils/keyutils.hash | 4 + package/keyutils/keyutils.mk | 43 + package/kf5/Config.in | 15 + package/kf5/kf5-extra-cmake-modules/Config.in | 10 + .../kf5-extra-cmake-modules.hash | 3 + .../kf5-extra-cmake-modules.mk | 22 + package/kf5/kf5-kcoreaddons/Config.in | 15 + .../kf5/kf5-kcoreaddons/kf5-kcoreaddons.hash | 16 + .../kf5/kf5-kcoreaddons/kf5-kcoreaddons.mk | 48 + package/kf5/kf5-modemmanager-qt/Config.in | 20 + .../kf5-modemmanager-qt.hash | 10 + .../kf5-modemmanager-qt.mk | 30 + package/kf5/kf5-networkmanager-qt/Config.in | 20 + .../kf5-networkmanager-qt.hash | 10 + .../kf5-networkmanager-qt.mk | 24 + package/kf5/kf5.mk | 11 + package/kismet/Config.in | 76 + package/kismet/kismet.hash | 3 + package/kismet/kismet.mk | 90 + package/kmod/0001-fix-O_CLOEXEC.patch | 48 + package/kmod/Config.in | 21 + package/kmod/Config.in.host | 19 + package/kmod/kmod.hash | 6 + package/kmod/kmod.mk | 125 + package/kmscube/Config.in | 20 + package/kmscube/kmscube.hash | 3 + package/kmscube/kmscube.mk | 13 + package/kmsxx/Config.in | 29 + package/kmsxx/kmsxx.hash | 3 + package/kmsxx/kmsxx.mk | 42 + package/knock/Config.in | 23 + package/knock/knock.hash | 3 + package/knock/knock.mk | 23 + package/kodi-audiodecoder-modplug/Config.in | 7 + .../kodi-audiodecoder-modplug.hash | 3 + .../kodi-audiodecoder-modplug.mk | 13 + package/kodi-audiodecoder-nosefart/Config.in | 6 + .../kodi-audiodecoder-nosefart.hash | 3 + .../kodi-audiodecoder-nosefart.mk | 13 + package/kodi-audiodecoder-sidplay/Config.in | 7 + .../kodi-audiodecoder-sidplay.hash | 3 + .../kodi-audiodecoder-sidplay.mk | 13 + package/kodi-audiodecoder-snesapu/Config.in | 6 + .../kodi-audiodecoder-snesapu.hash | 3 + .../kodi-audiodecoder-snesapu.mk | 13 + package/kodi-audiodecoder-stsound/Config.in | 6 + .../kodi-audiodecoder-stsound.hash | 3 + .../kodi-audiodecoder-stsound.mk | 13 + package/kodi-audiodecoder-timidity/Config.in | 6 + .../kodi-audiodecoder-timidity.hash | 3 + .../kodi-audiodecoder-timidity.mk | 13 + package/kodi-audiodecoder-vgmstream/Config.in | 6 + .../kodi-audiodecoder-vgmstream.hash | 3 + .../kodi-audiodecoder-vgmstream.mk | 13 + package/kodi-audioencoder-flac/Config.in | 9 + .../kodi-audioencoder-flac.hash | 3 + .../kodi-audioencoder-flac.mk | 13 + package/kodi-audioencoder-lame/Config.in | 9 + .../kodi-audioencoder-lame.hash | 3 + .../kodi-audioencoder-lame.mk | 19 + package/kodi-audioencoder-vorbis/Config.in | 9 + .../kodi-audioencoder-vorbis.hash | 3 + .../kodi-audioencoder-vorbis.mk | 13 + package/kodi-audioencoder-wav/Config.in | 7 + .../kodi-audioencoder-wav.hash | 3 + .../kodi-audioencoder-wav.mk | 13 + package/kodi-inputstream-adaptive/Config.in | 10 + .../kodi-inputstream-adaptive.hash | 3 + .../kodi-inputstream-adaptive.mk | 13 + .../kodi-inputstream-ffmpegdirect/Config.in | 13 + .../kodi-inputstream-ffmpegdirect.hash | 3 + .../kodi-inputstream-ffmpegdirect.mk | 15 + package/kodi-inputstream-rtmp/Config.in | 9 + .../kodi-inputstream-rtmp.hash | 3 + .../kodi-inputstream-rtmp.mk | 13 + .../kodi-jsonschemabuilder.hash | 1 + .../kodi-jsonschemabuilder.mk | 26 + package/kodi-peripheral-joystick/Config.in | 11 + .../kodi-peripheral-joystick.hash | 3 + .../kodi-peripheral-joystick.mk | 13 + package/kodi-peripheral-xarcade/Config.in | 6 + .../kodi-peripheral-xarcade.hash | 3 + .../kodi-peripheral-xarcade.mk | 13 + package/kodi-pvr-argustv/Config.in | 7 + .../kodi-pvr-argustv/kodi-pvr-argustv.hash | 3 + package/kodi-pvr-argustv/kodi-pvr-argustv.mk | 13 + package/kodi-pvr-dvblink/Config.in | 7 + .../kodi-pvr-dvblink/kodi-pvr-dvblink.hash | 3 + package/kodi-pvr-dvblink/kodi-pvr-dvblink.mk | 13 + package/kodi-pvr-dvbviewer/Config.in | 7 + .../kodi-pvr-dvbviewer.hash | 3 + .../kodi-pvr-dvbviewer/kodi-pvr-dvbviewer.mk | 13 + package/kodi-pvr-filmon/Config.in | 7 + package/kodi-pvr-filmon/kodi-pvr-filmon.hash | 3 + package/kodi-pvr-filmon/kodi-pvr-filmon.mk | 13 + package/kodi-pvr-hdhomerun/Config.in | 8 + .../kodi-pvr-hdhomerun.hash | 3 + .../kodi-pvr-hdhomerun/kodi-pvr-hdhomerun.mk | 13 + package/kodi-pvr-hts/Config.in | 10 + package/kodi-pvr-hts/kodi-pvr-hts.hash | 3 + package/kodi-pvr-hts/kodi-pvr-hts.mk | 13 + package/kodi-pvr-iptvsimple/Config.in | 15 + .../kodi-pvr-iptvsimple.hash | 3 + .../kodi-pvr-iptvsimple.mk | 13 + .../kodi-pvr-mediaportal-tvserver/Config.in | 7 + .../kodi-pvr-mediaportal-tvserver.hash | 3 + .../kodi-pvr-mediaportal-tvserver.mk | 13 + package/kodi-pvr-mythtv/Config.in | 6 + package/kodi-pvr-mythtv/kodi-pvr-mythtv.hash | 3 + package/kodi-pvr-mythtv/kodi-pvr-mythtv.mk | 13 + package/kodi-pvr-nextpvr/Config.in | 7 + .../kodi-pvr-nextpvr/kodi-pvr-nextpvr.hash | 3 + package/kodi-pvr-nextpvr/kodi-pvr-nextpvr.mk | 13 + package/kodi-pvr-njoy/Config.in | 7 + package/kodi-pvr-njoy/kodi-pvr-njoy.hash | 3 + package/kodi-pvr-njoy/kodi-pvr-njoy.mk | 13 + package/kodi-pvr-octonet/Config.in | 11 + .../kodi-pvr-octonet/kodi-pvr-octonet.hash | 3 + package/kodi-pvr-octonet/kodi-pvr-octonet.mk | 13 + package/kodi-pvr-pctv/Config.in | 7 + package/kodi-pvr-pctv/kodi-pvr-pctv.hash | 3 + package/kodi-pvr-pctv/kodi-pvr-pctv.mk | 13 + package/kodi-pvr-plutotv/Config.in | 7 + .../kodi-pvr-plutotv/kodi-pvr-plutotv.hash | 3 + package/kodi-pvr-plutotv/kodi-pvr-plutotv.mk | 13 + package/kodi-pvr-stalker/Config.in | 8 + .../kodi-pvr-stalker/kodi-pvr-stalker.hash | 3 + package/kodi-pvr-stalker/kodi-pvr-stalker.mk | 13 + package/kodi-pvr-vbox/Config.in | 7 + package/kodi-pvr-vbox/kodi-pvr-vbox.hash | 3 + package/kodi-pvr-vbox/kodi-pvr-vbox.mk | 13 + package/kodi-pvr-vdr-vnsi/Config.in | 10 + .../kodi-pvr-vdr-vnsi/kodi-pvr-vdr-vnsi.hash | 3 + .../kodi-pvr-vdr-vnsi/kodi-pvr-vdr-vnsi.mk | 13 + package/kodi-pvr-vuplus/Config.in | 12 + package/kodi-pvr-vuplus/kodi-pvr-vuplus.hash | 3 + package/kodi-pvr-vuplus/kodi-pvr-vuplus.mk | 13 + package/kodi-pvr-waipu/Config.in | 7 + package/kodi-pvr-waipu/kodi-pvr-waipu.hash | 3 + package/kodi-pvr-waipu/kodi-pvr-waipu.mk | 13 + package/kodi-pvr-wmc/Config.in | 6 + package/kodi-pvr-wmc/kodi-pvr-wmc.hash | 3 + package/kodi-pvr-wmc/kodi-pvr-wmc.mk | 13 + package/kodi-pvr-zattoo/Config.in | 8 + package/kodi-pvr-zattoo/kodi-pvr-zattoo.hash | 3 + package/kodi-pvr-zattoo/kodi-pvr-zattoo.mk | 13 + package/kodi-screensaver-asteroids/Config.in | 7 + .../kodi-screensaver-asteroids.hash | 3 + .../kodi-screensaver-asteroids.mk | 13 + package/kodi-screensaver-asterwave/Config.in | 7 + .../kodi-screensaver-asterwave.hash | 3 + .../kodi-screensaver-asterwave.mk | 17 + package/kodi-screensaver-biogenesis/Config.in | 6 + .../kodi-screensaver-biogenesis.hash | 3 + .../kodi-screensaver-biogenesis.mk | 13 + package/kodi-screensaver-cpblobs/Config.in | 7 + .../kodi-screensaver-cpblobs.hash | 3 + .../kodi-screensaver-cpblobs.mk | 17 + package/kodi-screensaver-greynetic/Config.in | 7 + .../kodi-screensaver-greynetic.hash | 3 + .../kodi-screensaver-greynetic.mk | 13 + .../kodi-screensaver-matrixtrails/Config.in | 6 + .../kodi-screensaver-matrixtrails.hash | 3 + .../kodi-screensaver-matrixtrails.mk | 17 + package/kodi-screensaver-pingpong/Config.in | 7 + .../kodi-screensaver-pingpong.hash | 3 + .../kodi-screensaver-pingpong.mk | 13 + package/kodi-screensaver-pyro/Config.in | 6 + .../kodi-screensaver-pyro.hash | 3 + .../kodi-screensaver-pyro.mk | 13 + package/kodi-screensaver-rsxs/Config.in | 13 + .../kodi-screensaver-rsxs.hash | 3 + .../kodi-screensaver-rsxs.mk | 13 + package/kodi-screensaver-stars/Config.in | 6 + .../kodi-screensaver-stars.hash | 3 + .../kodi-screensaver-stars.mk | 13 + package/kodi-skin-confluence/Config.in | 6 + .../kodi-skin-confluence.hash | 3 + .../kodi-skin-confluence.mk | 24 + .../0001-texturepacker.patch | 16 + ...-fix-texture-packer-cmake-source-dir.patch | 27 + .../kodi-texturepacker.hash | 1 + .../kodi-texturepacker/kodi-texturepacker.mk | 41 + package/kodi-vfs-libarchive/Config.in | 13 + .../kodi-vfs-libarchive.hash | 3 + .../kodi-vfs-libarchive.mk | 21 + package/kodi-vfs-rar/Config.in | 7 + package/kodi-vfs-rar/kodi-vfs-rar.hash | 5 + package/kodi-vfs-rar/kodi-vfs-rar.mk | 13 + package/kodi-vfs-sftp/Config.in | 9 + package/kodi-vfs-sftp/kodi-vfs-sftp.hash | 3 + package/kodi-vfs-sftp/kodi-vfs-sftp.mk | 13 + package/kodi-visualisation-fishbmc/Config.in | 7 + .../kodi-visualisation-fishbmc.hash | 3 + .../kodi-visualisation-fishbmc.mk | 13 + package/kodi-visualisation-goom/Config.in | 11 + .../kodi-visualisation-goom.hash | 3 + .../kodi-visualisation-goom.mk | 17 + package/kodi-visualisation-matrix/Config.in | 7 + .../kodi-visualisation-matrix.hash | 3 + .../kodi-visualisation-matrix.mk | 13 + .../kodi-visualisation-shadertoy/Config.in | 12 + .../kodi-visualisation-shadertoy.hash | 3 + .../kodi-visualisation-shadertoy.mk | 13 + package/kodi-visualisation-spectrum/Config.in | 7 + .../kodi-visualisation-spectrum.hash | 3 + .../kodi-visualisation-spectrum.mk | 13 + .../kodi-visualisation-starburst/Config.in | 7 + .../kodi-visualisation-starburst.hash | 3 + .../kodi-visualisation-starburst.mk | 13 + package/kodi-visualisation-waveform/Config.in | 7 + .../kodi-visualisation-waveform.hash | 3 + .../kodi-visualisation-waveform.mk | 13 + ...e-use-CMAKE_FIND_ROOT_PATH-to-fix-cr.patch | 45 + package/kodi/0002-cmake-findpython.patch | 135 + ...-cmake-search-for-python-interpreter.patch | 48 + ...-allow-to-override-PYTHON_EXECUTABLE.patch | 39 + package/kodi/Config.in | 358 + package/kodi/S50kodi | 39 + package/kodi/br-kodi | 36 + package/kodi/kodi.hash | 6 + package/kodi/kodi.mk | 404 + package/kodi/kodi.service | 12 + package/kompexsqlite/Config.in | 15 + package/kompexsqlite/kompexsqlite.hash | 4 + package/kompexsqlite/kompexsqlite.mk | 47 + package/ksmbd-tools/Config.in | 15 + package/ksmbd-tools/ksmbd-tools.hash | 3 + package/ksmbd-tools/ksmbd-tools.mk | 20 + package/kvazaar/Config.in | 16 + package/kvazaar/kvazaar.hash | 5 + package/kvazaar/kvazaar.mk | 22 + ...emove-Werror-to-avoid-build-failures.patch | 30 + package/kvm-unit-tests/Config.in | 44 + package/kvm-unit-tests/kvm-unit-tests.hash | 3 + package/kvm-unit-tests/kvm-unit-tests.mk | 62 + package/kvmtool/Config.in | 31 + package/kvmtool/kvmtool.hash | 3 + package/kvmtool/kvmtool.mk | 36 + package/kyua/Config.in | 23 + package/kyua/kyua.hash | 3 + package/kyua/kyua.mk | 27 + package/lame/Config.in | 6 + package/lame/lame.hash | 3 + package/lame/lame.mk | 34 + package/lapack/Config.in | 31 + package/lapack/lapack.hash | 3 + package/lapack/lapack.mk | 30 + package/latencytop/0001-makefile.patch | 28 + package/latencytop/Config.in | 26 + package/latencytop/latencytop.hash | 3 + package/latencytop/latencytop.mk | 23 + .../0001-retro-compatible-with-Lua-5.1.patch | 20 + package/lbase64/Config.in | 6 + package/lbase64/lbase64.hash | 3 + package/lbase64/lbase64.mk | 24 + package/lbreakout2/Config.in | 30 + package/lbreakout2/lbreakout2.hash | 6 + package/lbreakout2/lbreakout2.mk | 33 + package/lcdapi/Config.in | 12 + package/lcdapi/lcdapi.hash | 3 + package/lcdapi/lcdapi.mk | 14 + package/lcdproc/0001-LCDd.conf.patch | 18 + .../0002-Add-missing-ioctl-header.patch | 50 + .../0003-Fixcompilation-with-GCC-10-x.patch | 46 + package/lcdproc/Config.in | 29 + package/lcdproc/lcdproc.hash | 4 + package/lcdproc/lcdproc.mk | 33 + package/lcms2/Config.in | 11 + package/lcms2/lcms2.hash | 5 + package/lcms2/lcms2.mk | 33 + package/leafnode2/0001-cross_makefile.patch | 39 + package/leafnode2/Config.in | 17 + package/leafnode2/leafnode2.hash | 4 + package/leafnode2/leafnode2.mk | 43 + package/leafpad/Config.in | 7 + package/leafpad/leafpad.hash | 4 + package/leafpad/leafpad.mk | 13 + package/lensfun/Config.in | 29 + package/lensfun/lensfun.hash | 7 + package/lensfun/lensfun.mk | 47 + package/leptonica/Config.in | 6 + package/leptonica/leptonica.hash | 3 + package/leptonica/leptonica.mk | 73 + package/less/Config.in | 8 + package/less/less.hash | 6 + package/less/less.mk | 18 + package/lesstif/Config.in | 11 + package/lesstif/lesstif.hash | 3 + package/lesstif/lesstif.mk | 42 + .../0001-fix-build-with-musl-C-library.patch | 38 + package/let-me-create/Config.in | 27 + package/let-me-create/let-me-create.hash | 3 + package/let-me-create/let-me-create.mk | 26 + .../0001-Fix-compilation-with-g-4.8.2.patch | 31 + .../0002-CMake-install-libmemenv.a.patch | 76 + ...keLists.txt-check-for-atomic-library.patch | 49 + ...make-Use-find_package-to-find-Snappy.patch | 100 + package/leveldb/Config.in | 15 + package/leveldb/leveldb.hash | 3 + package/leveldb/leveldb.mk | 20 + package/lft/Config.in | 10 + package/lft/lft.hash | 5 + package/lft/lft.mk | 19 + ...-LibreSSL-following-commit-537f37898.patch | 46 + ..._ssl.c-fix-build-with-libressl-2.7.0.patch | 36 + package/lftp/Config.in | 67 + package/lftp/lftp.hash | 7 + package/lftp/lftp.mk | 77 + package/libaacs/Config.in | 15 + package/libaacs/libaacs.hash | 5 + package/libaacs/libaacs.mk | 24 + ...0001-force-position-independent-code.patch | 38 + package/libabseil-cpp/Config.in | 37 + package/libabseil-cpp/libabseil-cpp.hash | 3 + package/libabseil-cpp/libabseil-cpp.mk | 24 + package/libaio/Config.in | 6 + package/libaio/libaio.hash | 5 + package/libaio/libaio.mk | 40 + package/libao/Config.in | 8 + package/libao/libao.hash | 5 + package/libao/libao.mk | 35 + package/libapparmor/Config.in | 21 + package/libapparmor/libapparmor.hash | 6 + package/libapparmor/libapparmor.mk | 48 + package/libarchive/Config.in | 33 + package/libarchive/libarchive.hash | 4 + package/libarchive/libarchive.mk | 158 + ...argon2-dont-fail-on-existing-symlink.patch | 23 + package/libargon2/Config.in | 12 + package/libargon2/libargon2.hash | 3 + package/libargon2/libargon2.mk | 41 + package/libargtable2/Config.in | 7 + package/libargtable2/libargtable2.hash | 3 + package/libargtable2/libargtable2.mk | 21 + package/libart/0001-art-config-cross.patch | 34 + package/libart/Config.in | 14 + package/libart/libart.hash | 5 + package/libart/libart.mk | 17 + ...asplib_CPUTimer.h-Fix-time.h-include.patch | 39 + package/libasplib/Config.in | 11 + package/libasplib/libasplib.hash | 3 + package/libasplib/libasplib.mk | 21 + package/libass/Config.in | 18 + package/libass/libass.hash | 3 + package/libass/libass.mk | 36 + package/libassuan/Config.in | 14 + package/libassuan/libassuan.hash | 8 + package/libassuan/libassuan.mk | 18 + .../0001-strpool-cross-flags.patch | 42 + package/libatasmart/Config.in | 11 + package/libatasmart/libatasmart.hash | 3 + package/libatasmart/libatasmart.mk | 19 + package/libatomic_ops/Config.in | 18 + package/libatomic_ops/libatomic_ops.hash | 4 + package/libatomic_ops/libatomic_ops.mk | 28 + package/libavl/0001-fix-makefile.patch | 49 + package/libavl/Config.in | 13 + package/libavl/libavl.hash | 5 + package/libavl/libavl.mk | 43 + package/libb2/Config.in | 6 + package/libb2/libb2.hash | 3 + package/libb2/libb2.mk | 19 + package/libb64/0001-Integer-overflows.patch | 73 + .../libb64/0002-Initialize-C++-objects.patch | 38 + package/libb64/Config.in | 14 + package/libb64/libb64.hash | 6 + package/libb64/libb64.mk | 30 + package/libbacktrace/Config.in | 7 + package/libbacktrace/libbacktrace.hash | 3 + package/libbacktrace/libbacktrace.mk | 13 + package/libbdplus/Config.in | 20 + package/libbdplus/libbdplus.hash | 5 + package/libbdplus/libbdplus.mk | 31 + ...-replacement-function-for-strerror_l.patch | 71 + package/libblockdev/Config.in | 72 + package/libblockdev/libblockdev.hash | 3 + package/libblockdev/libblockdev.mk | 82 + package/libbluray/Config.in | 11 + package/libbluray/libbluray.hash | 4 + package/libbluray/libbluray.mk | 47 + package/libbpf/Config.in | 35 + package/libbpf/libbpf.hash | 5 + package/libbpf/libbpf.mk | 65 + package/libbroadvoice/Config.in | 10 + package/libbroadvoice/libbroadvoice.hash | 3 + package/libbroadvoice/libbroadvoice.mk | 19 + ...01-src-local-elf.h-fix-big-endian-sh.patch | 39 + package/libbsd/Config.in | 28 + package/libbsd/libbsd.hash | 3 + package/libbsd/libbsd.mk | 17 + package/libbson/Config.in | 11 + package/libbson/libbson.hash | 4 + package/libbson/libbson.mk | 22 + package/libbytesize/Config.in | 10 + package/libbytesize/libbytesize.hash | 3 + package/libbytesize/libbytesize.mk | 24 + ...ror-and-Wfatal-errors-compiler-comma.patch | 37 + ...preview-compile-conversion-from-Wind.patch | 39 + package/libcamera-apps/Config.in | 30 + package/libcamera-apps/libcamera-apps.hash | 3 + package/libcamera-apps/libcamera-apps.mk | 52 + package/libcamera/Config.in | 98 + package/libcamera/libcamera.hash | 12 + package/libcamera/libcamera.mk | 135 + package/libcap-ng/Config.in | 10 + package/libcap-ng/libcap-ng.hash | 4 + package/libcap-ng/libcap-ng.mk | 21 + package/libcap/Config.in | 24 + package/libcap/libcap.hash | 5 + package/libcap/libcap.mk | 72 + .../0001-libcdaudio-enable-autoreconf.patch | 43 + package/libcdaudio/Config.in | 10 + package/libcdaudio/libcdaudio.hash | 3 + package/libcdaudio/libcdaudio.mk | 17 + package/libcddb/Config.in | 20 + package/libcddb/libcddb.hash | 3 + package/libcddb/libcddb.mk | 26 + package/libcdio-paranoia/Config.in | 8 + .../libcdio-paranoia/libcdio-paranoia.hash | 3 + package/libcdio-paranoia/libcdio-paranoia.mk | 20 + package/libcdio/Config.in | 8 + package/libcdio/libcdio.hash | 5 + package/libcdio/libcdio.mk | 30 + .../0001-cecloader-h-fix-null-return.patch | 37 + package/libcec/Config.in | 19 + package/libcec/libcec.hash | 3 + package/libcec/libcec.mk | 46 + ...-CMakeLists.txt-honour-BUILD_TESTING.patch | 44 + package/libcgi/Config.in | 11 + package/libcgi/libcgi.hash | 8 + package/libcgi/libcgi.mk | 14 + .../0001-disable-documentation-option.patch | 50 + package/libcgicc/Config.in | 11 + package/libcgicc/libcgicc.hash | 6 + package/libcgicc/libcgicc.mk | 19 + package/libcgroup/Config.in | 22 + package/libcgroup/libcgroup.hash | 5 + package/libcgroup/libcgroup.mk | 40 + .../0001-support-out-of-tree-build.patch | 71 + package/libclc/Config.in | 14 + package/libclc/libclc.hash | 3 + package/libclc/libclc.mk | 42 + package/libcli/Config.in | 10 + package/libcli/libcli.hash | 3 + package/libcli/libcli.mk | 44 + package/libcoap/Config.in | 11 + package/libcoap/libcoap.hash | 4 + package/libcoap/libcoap.mk | 33 + package/libcodec2/Config.in | 16 + package/libcodec2/libcodec2.hash | 3 + package/libcodec2/libcodec2.mk | 19 + package/libcofi/Config.in | 15 + package/libcofi/libcofi.hash | 3 + package/libcofi/libcofi.mk | 20 + package/libconfig/Config.in | 9 + package/libconfig/libconfig.hash | 3 + package/libconfig/libconfig.mk | 18 + ...rminated-username-used-with-getpwnam.patch | 43 + package/libconfuse/Config.in | 11 + package/libconfuse/libconfuse.hash | 5 + package/libconfuse/libconfuse.mk | 21 + ...ists.txt-conditionally-use-Wpedantic.patch | 42 + ...-conditionally-use-fsanitize-address.patch | 35 + package/libcorrect/Config.in | 12 + package/libcorrect/libcorrect.hash | 3 + package/libcorrect/libcorrect.mk | 13 + package/libcpprestsdk/Config.in | 33 + package/libcpprestsdk/libcpprestsdk.hash | 3 + package/libcpprestsdk/libcpprestsdk.mk | 55 + package/libcrossguid/Config.in | 13 + package/libcrossguid/libcrossguid.hash | 3 + package/libcrossguid/libcrossguid.mk | 28 + package/libcsv/Config.in | 10 + package/libcsv/libcsv.hash | 3 + package/libcsv/libcsv.mk | 13 + package/libcue/Config.in | 7 + package/libcue/libcue.hash | 3 + package/libcue/libcue.mk | 14 + package/libcuefile/0001-fix-static-link.patch | 25 + package/libcuefile/Config.in | 6 + package/libcuefile/libcuefile.hash | 7 + package/libcuefile/libcuefile.mk | 25 + ...de-sched-h-if-available-to-fix-build.patch | 30 + ...for-the-stdatomic.h-header-in-config.patch | 70 + package/libcurl/Config.in | 90 + package/libcurl/libcurl.hash | 5 + package/libcurl/libcurl.mk | 189 + package/libcutl/libcutl.hash | 6 + package/libcutl/libcutl.mk | 16 + ...use-unistd-h-instead-of-sys-unistd-h.patch | 16 + package/libdaemon/Config.in | 9 + package/libdaemon/libdaemon.hash | 3 + package/libdaemon/libdaemon.mk | 18 + package/libdbi-drivers/Config.in | 12 + package/libdbi-drivers/libdbi-drivers.hash | 3 + package/libdbi-drivers/libdbi-drivers.mk | 48 + package/libdbi/Config.in | 11 + package/libdbi/libdbi.hash | 3 + package/libdbi/libdbi.mk | 16 + package/libdcadec/Config.in | 7 + package/libdcadec/libdcadec.hash | 3 + package/libdcadec/libdcadec.mk | 33 + package/libdeflate/Config.in | 7 + package/libdeflate/libdeflate.hash | 3 + package/libdeflate/libdeflate.mk | 34 + package/libdill/Config.in | 7 + package/libdill/libdill.hash | 3 + package/libdill/libdill.mk | 28 + package/libdmtx/Config.in | 7 + package/libdmtx/libdmtx.hash | 3 + package/libdmtx/libdmtx.mk | 15 + package/libdnet/0001-python-makefile.patch | 27 + package/libdnet/Config.in | 20 + package/libdnet/libdnet.hash | 3 + package/libdnet/libdnet.mk | 39 + package/libdri2/Config.in | 15 + package/libdri2/libdri2.hash | 3 + package/libdri2/libdri2.mk | 17 + ...d-disable-nouveau-tests-for-static-b.patch | 43 + package/libdrm/Config.in | 109 + package/libdrm/libdrm.hash | 6 + package/libdrm/libdrm.mk | 117 + .../libdvbcsa/0001-altivec-powerpc64.patch | 33 + package/libdvbcsa/Config.in | 11 + package/libdvbcsa/libdvbcsa.hash | 7 + package/libdvbcsa/libdvbcsa.mk | 32 + package/libdvbpsi/Config.in | 12 + package/libdvbpsi/libdvbpsi.hash | 6 + package/libdvbpsi/libdvbpsi.mk | 14 + package/libdvbsi/Config.in | 15 + package/libdvbsi/libdvbsi.hash | 3 + package/libdvbsi/libdvbsi.mk | 14 + package/libdvdcss/Config.in | 7 + package/libdvdcss/libdvdcss.hash | 7 + package/libdvdcss/libdvdcss.mk | 14 + package/libdvdnav/Config.in | 13 + package/libdvdnav/libdvdnav.hash | 7 + package/libdvdnav/libdvdnav.mk | 16 + package/libdvdread/Config.in | 8 + package/libdvdread/libdvdread.hash | 7 + package/libdvdread/libdvdread.mk | 17 + ...dtls.c-fix-build-with-libressl-3.4.1.patch | 43 + package/libeXosip2/Config.in | 14 + package/libeXosip2/libeXosip2.hash | 3 + package/libeXosip2/libeXosip2.mk | 38 + package/libeastl/Config.in | 28 + package/libeastl/libeastl.hash | 2 + package/libeastl/libeastl.mk | 13 + ...-header-files-for-std-numeric_limits.patch | 40 + package/libebml/Config.in | 12 + package/libebml/libebml.hash | 3 + package/libebml/libebml.mk | 15 + package/libebur128/Config.in | 13 + package/libebur128/libebur128.hash | 3 + package/libebur128/libebur128.mk | 13 + .../0001-check-bsd-functions-in-libbsd.patch | 22 + package/libedit/Config.in | 21 + package/libedit/libedit.hash | 3 + package/libedit/libedit.mk | 30 + package/libee/Config.in | 19 + package/libee/libee.hash | 5 + package/libee/libee.mk | 16 + package/libenca/Config.in | 6 + package/libenca/libenca.hash | 3 + package/libenca/libenca.mk | 27 + package/libepoxy/Config.in | 12 + package/libepoxy/libepoxy.hash | 5 + package/libepoxy/libepoxy.mk | 31 + package/liberation/Config.in | 24 + package/liberation/liberation.hash | 3 + package/liberation/liberation.mk | 39 + package/libesmtp/Config.in | 12 + package/libesmtp/libesmtp.hash | 4 + package/libesmtp/libesmtp.mk | 27 + ...ove-duplicate-invocation-of-AM_INIT_.patch | 36 + ....h-add-missing-extern-on-e_ctx_ssl_e.patch | 42 + package/libest/Config.in | 32 + package/libest/libest.hash | 3 + package/libest/libest.mk | 67 + package/libest/libest.pc | 10 + package/libestr/Config.in | 6 + package/libestr/libestr.hash | 5 + package/libestr/libestr.mk | 14 + package/libev/Config.in | 6 + package/libev/libev.hash | 3 + package/libev/libev.mk | 21 + package/libevdev/Config.in | 6 + package/libevdev/libevdev.hash | 6 + package/libevdev/libevdev.mk | 22 + ...define-BIO_get_init-for-LibreSSL-3-5.patch | 29 + package/libevent/Config.in | 6 + package/libevent/libevent.hash | 4 + package/libevent/libevent.mk | 40 + package/libexecinfo/Config.in | 11 + package/libexecinfo/libexecinfo.hash | 3 + package/libexecinfo/libexecinfo.mk | 30 + package/libexif/Config.in | 9 + package/libexif/libexif.hash | 3 + package/libexif/libexif.mk | 17 + package/libfastjson/Config.in | 17 + package/libfastjson/libfastjson.hash | 3 + package/libfastjson/libfastjson.mk | 17 + package/libfcgi/0001-link-against-math.patch | 18 + package/libfcgi/0002-disable-examples.patch | 21 + package/libfcgi/Config.in | 7 + package/libfcgi/libfcgi.hash | 3 + package/libfcgi/libfcgi.mk | 16 + ...-Fix-installation-location-of-libffi.patch | 55 + ...Fix-use-of-compact-eh-frames-on-MIPS.patch | 45 + ...-hardfloat-in-the-MIPS-assembly-code.patch | 44 + package/libffi/Config.in | 13 + package/libffi/libffi.hash | 4 + package/libffi/libffi.mk | 22 + package/libfm-extra/Config.in | 15 + package/libfm-extra/libfm-extra.hash | 8 + package/libfm-extra/libfm-extra.mk | 16 + .../0001-modules-fix-cross-compilation.patch | 27 + package/libfm/Config.in | 30 + package/libfm/libfm.hash | 8 + package/libfm/libfm.mk | 32 + package/libfreefare/Config.in | 9 + package/libfreefare/libfreefare.hash | 5 + package/libfreefare/libfreefare.mk | 17 + package/libfreeglut/Config.in | 20 + package/libfreeglut/libfreeglut.hash | 6 + package/libfreeglut/libfreeglut.mk | 33 + .../libfreeimage/0001-no-root-install.patch | 20 + package/libfreeimage/0002-fix-cpuid-x86.patch | 67 + .../libfreeimage/0003-fix-big-endian-os.patch | 64 + .../0004-fixed-C-11-warnings.patch | 94 + package/libfreeimage/Config.in | 18 + package/libfreeimage/libfreeimage.hash | 9 + package/libfreeimage/libfreeimage.mk | 35 + package/libfribidi/Config.in | 7 + package/libfribidi/libfribidi.hash | 3 + package/libfribidi/libfribidi.mk | 18 + package/libftdi/0001-pkgconfig_libusb.patch | 47 + ....pc-requires-libusb-fix-static-build.patch | 27 + package/libftdi/Config.in | 29 + package/libftdi/libftdi.hash | 7 + package/libftdi/libftdi.mk | 30 + ...andard-CMake-flag-to-drive-the-share.patch | 93 + ...sts.txt-fix-paths-when-FTDIPP-is-set.patch | 46 + package/libftdi1/Config.in | 39 + package/libftdi1/libftdi1.hash | 8 + package/libftdi1/libftdi1.mk | 43 + package/libfuse/0001-fix-aarch64-build.patch | 22 + ...ally-define-closefrom-fix-glibc-2-34.patch | 64 + package/libfuse/Config.in | 14 + package/libfuse/libfuse.hash | 6 + package/libfuse/libfuse.mk | 48 + package/libfuse3/Config.in | 14 + package/libfuse3/libfuse3.hash | 3 + package/libfuse3/libfuse3.mk | 33 + package/libfutils/Config.in | 15 + package/libfutils/libfutils.hash | 3 + package/libfutils/libfutils.mk | 56 + package/libg7221/Config.in | 7 + package/libg7221/libg7221.hash | 3 + package/libg7221/libg7221.mk | 16 + ...re.ac-add-an-option-to-disable-tests.patch | 66 + package/libgcrypt/Config.in | 8 + package/libgcrypt/libgcrypt.hash | 5 + package/libgcrypt/libgcrypt.mk | 34 + ...-only-when-enable-unit-tests-is-pass.patch | 53 + package/libgdiplus/Config.in | 19 + package/libgdiplus/libgdiplus.hash | 3 + package/libgdiplus/libgdiplus.mk | 56 + package/libgee/Config.in | 17 + package/libgee/libgee.hash | 5 + package/libgee/libgee.mk | 24 + package/libgeos/Config.in | 19 + package/libgeos/libgeos.hash | 3 + package/libgeos/libgeos.mk | 32 + package/libgeotiff/Config.in | 18 + package/libgeotiff/libgeotiff.hash | 3 + package/libgeotiff/libgeotiff.mk | 28 + package/libgit2/Config.in | 14 + package/libgit2/libgit2.hash | 3 + package/libgit2/libgit2.mk | 52 + package/libglade/Config.in | 20 + package/libglade/libglade.hash | 5 + package/libglade/libglade.mk | 23 + package/libglew/Config.in | 20 + package/libglew/libglew.hash | 3 + package/libglew/libglew.mk | 39 + ...emove-extra-cmake-modules-dependency.patch | 121 + ...xt-allow-override-of-wayland-pkgdata.patch | 32 + package/libglfw/Config.in | 20 + package/libglfw/libglfw.hash | 3 + package/libglfw/libglfw.mk | 43 + ...01-fix-compile-time-atomic-detection.patch | 34 + .../0002-remove-cpp-requirement.patch | 87 + ...mat-nonliteral-to-compiler-arguments.patch | 29 + ...girdir-to-gio-2.0.pc-and-glib-2.0.pc.patch | 48 + package/libglib2/Config.in | 18 + package/libglib2/libglib2.hash | 4 + package/libglib2/libglib2.mk | 146 + package/libglob/Config.in | 6 + package/libglob/libglob.hash | 3 + package/libglob/libglob.mk | 48 + package/libglu/Config.in | 10 + package/libglu/libglu.hash | 5 + package/libglu/libglu.mk | 15 + package/libglvnd/Config.in | 51 + package/libglvnd/libglvnd.hash | 7 + package/libglvnd/libglvnd.mk | 52 + package/libgpg-error/Config.in | 63 + package/libgpg-error/libgpg-error.hash | 10 + package/libgpg-error/libgpg-error.mk | 25 + .../0001-Fix-build-without-threads.patch | 59 + package/libgpgme/Config.in | 13 + package/libgpgme/libgpgme.hash | 6 + package/libgpgme/libgpgme.mk | 49 + package/libgphoto2/Config.in | 16 + package/libgphoto2/libgphoto2.hash | 3 + package/libgphoto2/libgphoto2.mk | 60 + ...nfigure-switch-for-building-examples.patch | 91 + package/libgpiod/Config.in | 20 + package/libgpiod/libgpiod.hash | 4 + package/libgpiod/libgpiod.mk | 44 + package/libgsasl/Config.in | 15 + package/libgsasl/libgsasl.hash | 11 + package/libgsasl/libgsasl.mk | 27 + .../0001-misc-fixes-from-archlinux.patch | 218 + package/libgsm/Config.in | 10 + package/libgsm/libgsm.hash | 3 + package/libgsm/libgsm.mk | 45 + package/libgta/Config.in | 10 + package/libgta/libgta.hash | 3 + package/libgta/libgta.mk | 29 + .../libgtk2/0001-reduce-dependencies.patch | 117 + package/libgtk2/Config.in | 43 + package/libgtk2/libgtk2.hash | 5 + package/libgtk2/libgtk2.mk | 139 + package/libgtk3/0001-no-gtk-doc.patch | 25 + .../0002-fix-introspection-check.patch | 28 + package/libgtk3/0003-disable-atk-bridge.patch | 45 + ...endency-from-gtk-encode-symbolic-svg.patch | 105 + package/libgtk3/Config.in | 110 + package/libgtk3/libgtk3.hash | 5 + package/libgtk3/libgtk3.mk | 202 + package/libgudev/Config.in | 19 + package/libgudev/libgudev.hash | 5 + package/libgudev/libgudev.mk | 23 + package/libhdhomerun/0001-dont-strip.patch | 18 + package/libhdhomerun/Config.in | 12 + package/libhdhomerun/libhdhomerun.hash | 3 + package/libhdhomerun/libhdhomerun.mk | 32 + .../0001-dont-fiddle-with-debug-flags.patch | 19 + .../libhid/0002-no-newline-in-ldflags.patch | 22 + package/libhid/0003-uclinux.patch | 27 + package/libhid/Config.in | 14 + package/libhid/libhid.hash | 3 + package/libhid/libhid.mk | 23 + package/libhtp/Config.in | 9 + package/libhtp/libhtp.hash | 3 + package/libhtp/libhtp.mk | 22 + package/libhttpparser/Config.in | 17 + package/libhttpparser/libhttpparser.hash | 3 + package/libhttpparser/libhttpparser.mk | 35 + package/libhttpserver/Config.in | 17 + package/libhttpserver/libhttpserver.hash | 3 + package/libhttpserver/libhttpserver.mk | 18 + package/libiberty/libiberty.hash | 5 + package/libiberty/libiberty.mk | 32 + package/libical/0001-no-tests.patch | 19 + ...ype_from_string-copy-the-reqstattype.patch | 27 + package/libical/Config.in | 15 + package/libical/libical.hash | 3 + package/libical/libical.mk | 23 + package/libiconv/Config.in | 29 + package/libiconv/libiconv.hash | 6 + package/libiconv/libiconv.mk | 32 + package/libid3tag/Config.in | 7 + package/libid3tag/id3tag.pc | 12 + package/libid3tag/libid3tag.hash | 7 + package/libid3tag/libid3tag.mk | 34 + package/libidn/Config.in | 16 + package/libidn/libidn.hash | 7 + package/libidn/libidn.mk | 31 + package/libidn2/Config.in | 17 + package/libidn2/libidn2.hash | 8 + package/libidn2/libidn2.mk | 31 + package/libiec61850/Config.in | 21 + package/libiec61850/libiec61850.hash | 3 + package/libiec61850/libiec61850.mk | 15 + ...rs-setters-cannot-be-marked-readonly.patch | 32 + package/libiio/Config.in | 98 + package/libiio/S99iiod | 30 + package/libiio/libiio.hash | 3 + package/libiio/libiio.mk | 108 + package/libilbc/Config.in | 7 + package/libilbc/libilbc.hash | 3 + package/libilbc/libilbc.mk | 15 + package/libimxvpuapi/Config.in | 16 + package/libimxvpuapi/libimxvpuapi.hash | 3 + package/libimxvpuapi/libimxvpuapi.mk | 15 + package/libinput/Config.in | 17 + package/libinput/libinput.hash | 5 + package/libinput/libinput.mk | 50 + ...tic-library-and-find-required-thread.patch | 45 + .../libiqrf/0002-use-only-c-language.patch | 29 + package/libiqrf/Config.in | 16 + package/libiqrf/libiqrf.hash | 3 + package/libiqrf/libiqrf.mk | 14 + package/libiscsi/Config.in | 16 + package/libiscsi/libiscsi.hash | 5 + package/libiscsi/libiscsi.mk | 17 + package/libite/Config.in | 17 + package/libite/libite.hash | 7 + package/libite/libite.mk | 15 + package/libjpeg/libjpeg.hash | 3 + package/libjpeg/libjpeg.mk | 32 + package/libjpeg/libjpeg.pc.in | 10 + .../libjson/0001-fix-broken-makefile.patch | 16 + package/libjson/Config.in | 11 + package/libjson/libjson.hash | 3 + package/libjson/libjson.mk | 49 + ...f-__NR_io_getevents-when-not-defined.patch | 42 + package/libkcapi/Config.in | 31 + package/libkcapi/libkcapi.hash | 5 + package/libkcapi/libkcapi.mk | 50 + package/libkrb5/Config.in | 21 + package/libkrb5/libkrb5.hash | 5 + package/libkrb5/libkrb5.mk | 81 + ...-CMakeLists.txt-honour-BUILD_TESTING.patch | 41 + package/libks/Config.in | 16 + package/libks/libks.hash | 3 + package/libks/libks.mk | 14 + package/libksba/Config.in | 8 + package/libksba/libksba.hash | 9 + package/libksba/libksba.mk | 17 + ...se-accessors-for-DSA-and-RSA-objects.patch | 96 + package/libldns/Config.in | 10 + package/libldns/libldns.hash | 7 + package/libldns/libldns.mk | 43 + ...0001-blas-don-t-overwrite-ar-options.patch | 36 + package/liblinear/0002-build-static-lib.patch | 20 + package/liblinear/Config.in | 11 + package/liblinear/liblinear.hash | 3 + package/liblinear/liblinear.mk | 46 + package/libllcp/Config.in | 12 + package/libllcp/libllcp.hash | 3 + package/libllcp/libllcp.mk | 18 + package/liblo/Config.in | 11 + package/liblo/liblo.hash | 7 + package/liblo/liblo.mk | 23 + ...01-Makefile.in-fix-cross-compilation.patch | 82 + package/liblockfile/Config.in | 7 + package/liblockfile/liblockfile.hash | 7 + package/liblockfile/liblockfile.mk | 20 + ...erquoted-definition-of-AM_PATH_LOG4C.patch | 34 + ...02-Fix-linking-error-without-pthread.patch | 38 + ...003-Fix-debug-mode-build-with-uClibc.patch | 69 + ...-AC_CONFIG_MACRO_DIR-to-configure.in.patch | 30 + .../0005-Fix-C-support.patch | 61 + package/liblog4c-localtime/Config.in | 11 + .../liblog4c-localtime.hash | 3 + .../liblog4c-localtime/liblog4c-localtime.mk | 23 + package/liblogging/Config.in | 8 + package/liblogging/liblogging.hash | 5 + package/liblogging/liblogging.mk | 22 + ...-to-a-specific-location-using-DESTDI.patch | 65 + package/libloki/0002-use-ln-snf.patch | 31 + package/libloki/Config.in | 12 + package/libloki/libloki.hash | 5 + package/libloki/libloki.mk | 39 + .../0001-mips-h-constraint-removal.patch | 72 + .../0002-configure-ac-automake-foreign.patch | 16 + package/libmad/Config.in | 51 + package/libmad/libmad.hash | 6 + package/libmad/libmad.mk | 49 + package/libmad/mad.pc | 11 + package/libmatroska/Config.in | 13 + package/libmatroska/libmatroska.hash | 3 + package/libmatroska/libmatroska.mk | 16 + package/libmaxminddb/Config.in | 18 + package/libmaxminddb/libmaxminddb.hash | 3 + package/libmaxminddb/libmaxminddb.mk | 23 + package/libmbim/Config.in | 16 + package/libmbim/libmbim.hash | 4 + package/libmbim/libmbim.mk | 31 + package/libmbus/Config.in | 8 + package/libmbus/libmbus.hash | 3 + package/libmbus/libmbus.mk | 13 + package/libmd/Config.in | 9 + package/libmd/libmd.hash | 5 + package/libmd/libmd.mk | 14 + package/libmdbx/Config.in | 45 + package/libmdbx/libmdbx.hash | 5 + package/libmdbx/libmdbx.mk | 41 + package/libmediaart/Config.in | 37 + package/libmediaart/libmediaart.hash | 5 + package/libmediaart/libmediaart.mk | 39 + package/libmemcached/0001-disable-tests.patch | 42 + .../libmemcached/0002-disable-sanitizer.patch | 25 + .../0003-move-ac_config_aux_dir.patch | 25 + .../0004-disable-doc-and-man.patch | 37 + .../0005-fix-pointer-comparaison.patch | 30 + package/libmemcached/Config.in | 14 + package/libmemcached/libmemcached.hash | 5 + package/libmemcached/libmemcached.mk | 29 + package/libmhash/Config.in | 9 + package/libmhash/libmhash.hash | 3 + package/libmhash/libmhash.mk | 14 + package/libmicrohttpd/Config.in | 22 + package/libmicrohttpd/libmicrohttpd.hash | 3 + package/libmicrohttpd/libmicrohttpd.mk | 32 + ...akeLists-txt-fix-install-for-headers.patch | 43 + package/libminiupnpc/Config.in | 14 + package/libminiupnpc/libminiupnpc.hash | 3 + package/libminiupnpc/libminiupnpc.mk | 25 + package/libmms/Config.in | 18 + package/libmms/libmms.hash | 3 + package/libmms/libmms.mk | 15 + package/libmng/0001-jpeg-9a.patch | 22 + package/libmng/Config.in | 9 + package/libmng/libmng.hash | 6 + package/libmng/libmng.mk | 22 + package/libmnl/Config.in | 16 + package/libmnl/libmnl.hash | 7 + package/libmnl/libmnl.mk | 43 + package/libmodbus/Config.in | 8 + package/libmodbus/libmodbus.hash | 3 + package/libmodbus/libmodbus.mk | 15 + package/libmodplug/Config.in | 10 + package/libmodplug/libmodplug.hash | 3 + package/libmodplug/libmodplug.mk | 14 + ...-drop-usage-of-git-at-configure-time.patch | 79 + .../0002-modsecurity.pc.in-add-lstdc.patch | 32 + ...Revert-Fix-maxminddb-link-on-FreeBSD.patch | 28 + ...build-pcre.m4-fix-build-without-pcre.patch | 29 + package/libmodsecurity/Config.in | 24 + package/libmodsecurity/libmodsecurity.hash | 4 + package/libmodsecurity/libmodsecurity.mk | 66 + ...x-build-on-archlinux-missing-include.patch | 24 + package/libmpd/Config.in | 17 + package/libmpd/libmpd.hash | 3 + package/libmpd/libmpd.mk | 15 + package/libmpdclient/Config.in | 7 + package/libmpdclient/libmpdclient.hash | 3 + package/libmpdclient/libmpdclient.mk | 15 + package/libmpeg2/0001-altivec.patch | 23 + package/libmpeg2/0002-armv4l.patch | 24 + package/libmpeg2/0003-fix-arm-detection.patch | 39 + package/libmpeg2/0004-fix-sparc.patch | 16 + package/libmpeg2/Config.in | 16 + package/libmpeg2/libmpeg2.hash | 3 + package/libmpeg2/libmpeg2.mk | 32 + package/libmspack/Config.in | 7 + package/libmspack/libmspack.hash | 3 + package/libmspack/libmspack.mk | 18 + package/libnatpmp/Config.in | 16 + package/libnatpmp/libnatpmp.hash | 3 + package/libnatpmp/libnatpmp.mk | 31 + package/libndp/Config.in | 8 + package/libndp/libndp.hash | 3 + package/libndp/libndp.mk | 15 + ...d-of-__int64_t-for-mingw-cross-build.patch | 31 + package/libnet/Config.in | 7 + package/libnet/libnet.hash | 5 + package/libnet/libnet.mk | 18 + package/libnetconf2/Config.in | 17 + package/libnetconf2/libnetconf2.hash | 3 + package/libnetconf2/libnetconf2.mk | 40 + package/libnetfilter_acct/Config.in | 8 + .../libnetfilter_acct/libnetfilter_acct.hash | 6 + .../libnetfilter_acct/libnetfilter_acct.mk | 15 + ...-fix-build-with-kernel-5-15-and-musl.patch | 60 + package/libnetfilter_conntrack/Config.in | 10 + .../libnetfilter_conntrack.hash | 5 + .../libnetfilter_conntrack.mk | 16 + package/libnetfilter_cthelper/Config.in | 9 + .../libnetfilter_cthelper.hash | 5 + .../libnetfilter_cthelper.mk | 16 + package/libnetfilter_cttimeout/Config.in | 9 + .../libnetfilter_cttimeout.hash | 5 + .../libnetfilter_cttimeout.mk | 16 + package/libnetfilter_log/Config.in | 9 + .../libnetfilter_log/libnetfilter_log.hash | 5 + package/libnetfilter_log/libnetfilter_log.mk | 15 + package/libnetfilter_queue/Config.in | 10 + .../libnetfilter_queue.hash | 5 + .../libnetfilter_queue/libnetfilter_queue.mk | 17 + ...utotools-make-example-build-optional.patch | 69 + package/libnfc/Config.in | 83 + package/libnfc/libnfc.hash | 3 + package/libnfc/libnfc.mk | 63 + package/libnfnetlink/Config.in | 11 + package/libnfnetlink/libnfnetlink.hash | 5 + package/libnfnetlink/libnfnetlink.mk | 15 + .../libnfs/0001-Fix-include-sys-time.h.patch | 41 + package/libnfs/Config.in | 11 + package/libnfs/libnfs.hash | 6 + package/libnfs/libnfs.mk | 19 + package/libnftnl/Config.in | 15 + package/libnftnl/libnftnl.hash | 3 + package/libnftnl/libnftnl.mk | 15 + package/libnice/Config.in | 23 + package/libnice/libnice.hash | 7 + package/libnice/libnice.mk | 39 + .../libnids/0001-libpcap-use-pkg-config.patch | 48 + package/libnids/Config.in | 14 + package/libnids/libnids.hash | 3 + package/libnids/libnids.mk | 43 + ...workaround-to-the-libc-compat.h-copy.patch | 37 + package/libnl/Config.in | 23 + package/libnl/libnl.hash | 4 + package/libnl/libnl.mk | 29 + package/libnpth/Config.in | 13 + package/libnpth/libnpth.hash | 7 + package/libnpth/libnpth.mk | 14 + package/libnpupnp/Config.in | 18 + package/libnpupnp/libnpupnp.hash | 5 + package/libnpupnp/libnpupnp.mk | 14 + ...-1765100-fix-build-on-mips-musl-libc.patch | 33 + package/libnspr/Config.in | 21 + package/libnspr/libnspr.hash | 4 + package/libnspr/libnspr.mk | 57 + package/libnss/Config.in | 32 + package/libnss/libnss.hash | 4 + package/libnss/libnss.mk | 177 + package/libnss/nss.pc.in | 11 + ...Fixes-build-issue-with-OpenSSL-1.1.0.patch | 156 + package/liboauth/Config.in | 11 + package/liboauth/liboauth.hash | 3 + package/liboauth/liboauth.mk | 20 + package/libodb-boost/Config.in | 16 + package/libodb-boost/libodb-boost.hash | 6 + package/libodb-boost/libodb-boost.mk | 20 + ...-syntax-issue-while-checking-ldflags.patch | 35 + .../libodb-mysql/0002-mariadb-FTBFS-fix.patch | 51 + package/libodb-mysql/Config.in | 16 + package/libodb-mysql/libodb-mysql.hash | 4 + package/libodb-mysql/libodb-mysql.mk | 19 + package/libodb-pgsql/Config.in | 16 + package/libodb-pgsql/libodb-pgsql.hash | 6 + package/libodb-pgsql/libodb-pgsql.mk | 17 + package/libodb/Config.in | 13 + package/libodb/libodb.hash | 6 + package/libodb/libodb.mk | 18 + package/libogg/Config.in | 9 + package/libogg/libogg.hash | 5 + package/libogg/libogg.mk | 16 + package/libolm/Config.in | 12 + package/libolm/libolm.hash | 3 + package/libolm/libolm.mk | 16 + package/libopenaptx/Config.in | 14 + package/libopenaptx/libopenaptx.hash | 3 + package/libopenaptx/libopenaptx.mk | 29 + package/libopenh264/Config.in | 22 + package/libopenh264/libopenh264.hash | 3 + package/libopenh264/libopenh264.mk | 55 + ...building-manpages-if-we-re-not-going.patch | 33 + ...ible-build-do-not-leak-compiler-path.patch | 29 + ...ENSSL_NO_MADVISE-to-disable-call-to-.patch | 27 + ...Fv2-ABI-on-some-ppc64-big-endian-sys.patch | 37 + ...m-ppc-xlate.pl-add-linux64v2-flavour.patch | 64 + ...ort-for-io_pgetevents_time64-syscall.patch | 61 + ...ort-for-io_pgetevents_time64-syscall.patch | 98 + package/libopenssl/Config.in | 138 + package/libopenssl/libopenssl.hash | 5 + package/libopenssl/libopenssl.mk | 176 + package/liboping/0001-fix-utf8-support.patch | 35 + ...-when-adding-hosts-not-when-doing-th.patch | 91 + ...-GCC-7-buffer-overflow-with-snprintf.patch | 28 + .../0004-Fix-compile-error-on-GCC-7.patch | 32 + package/liboping/Config.in | 7 + package/liboping/liboping.hash | 5 + package/liboping/liboping.mk | 23 + package/libopusenc/Config.in | 8 + package/libopusenc/libopusenc.hash | 3 + package/libopusenc/libopusenc.mk | 16 + package/libosip2/Config.in | 10 + package/libosip2/libosip2.hash | 5 + package/libosip2/libosip2.mk | 23 + package/libosmium/Config.in | 18 + package/libosmium/libosmium.hash | 3 + package/libosmium/libosmium.mk | 34 + package/libostree/Config.in | 24 + package/libostree/libostree.hash | 3 + package/libostree/libostree.mk | 91 + ...rc-p11_attr.c-fix-build-with-gcc-4.8.patch | 42 + package/libp11/Config.in | 13 + package/libp11/Config.in.host | 7 + package/libp11/libp11.hash | 3 + package/libp11/libp11.mk | 32 + package/libpagekite/Config.in | 24 + package/libpagekite/libpagekite.hash | 7 + package/libpagekite/libpagekite.mk | 28 + package/libpam-nfc/Config.in | 7 + package/libpam-nfc/libpam-nfc.hash | 3 + package/libpam-nfc/libpam-nfc.mk | 22 + package/libpam-radius-auth/Config.in | 9 + .../libpam-radius-auth.hash | 5 + .../libpam-radius-auth/libpam-radius-auth.mk | 28 + ...0001-Add-an-option-to-disable-Werror.patch | 55 + package/libpam-tacplus/Config.in | 9 + package/libpam-tacplus/libpam-tacplus.hash | 3 + package/libpam-tacplus/libpam-tacplus.mk | 24 + package/libpcap/Config.in | 8 + package/libpcap/libpcap.hash | 6 + package/libpcap/libpcap.mk | 61 + ...001-pciaccess.pc.in-add-Libs.Private.patch | 28 + package/libpciaccess/Config.in | 8 + package/libpciaccess/libpciaccess.hash | 7 + package/libpciaccess/libpciaccess.mk | 21 + package/libpeas/Config.in | 45 + package/libpeas/libpeas.hash | 4 + package/libpeas/libpeas.mk | 41 + package/libpfm4/Config.in | 11 + package/libpfm4/libpfm4.hash | 6 + package/libpfm4/libpfm4.mk | 32 + package/libphidget/Config.in | 29 + package/libphidget/libphidget.hash | 3 + package/libphidget/libphidget.mk | 16 + ...ull-request-from-GHSA-26j7-ww69-c4qj.patch | 44 + package/libpjsip/Config.in | 14 + package/libpjsip/libpjsip.hash | 3 + package/libpjsip/libpjsip.mk | 169 + ...require-c-11-as-the-minimum-standard.patch | 26 + package/libplatform/Config.in | 7 + package/libplatform/libplatform.hash | 3 + package/libplatform/libplatform.mk | 13 + package/libplist/Config.in | 12 + package/libplist/libplist.hash | 3 + package/libplist/libplist.mk | 19 + ...0001-Disable-pngfix-and-png-fix-itxt.patch | 47 + package/libpng/Config.in | 8 + package/libpng/libpng.hash | 6 + package/libpng/libpng.mk | 32 + package/libpqxx/Config.in | 17 + package/libpqxx/libpqxx.hash | 3 + package/libpqxx/libpqxx.mk | 16 + package/libpri/Config.in | 21 + package/libpri/libpri.hash | 7 + package/libpri/libpri.mk | 53 + ...dd-libiconv-dep-to-meson-build-again.patch | 60 + package/libpsl/Config.in | 13 + package/libpsl/libpsl.hash | 6 + package/libpsl/libpsl.mk | 30 + package/libpthread-stubs/Config.in | 11 + .../libpthread-stubs/libpthread-stubs.hash | 3 + package/libpthread-stubs/libpthread-stubs.mk | 20 + .../0001-fix-build-on-linux-3.x-host.patch | 28 + package/libpthsem/Config.in | 18 + package/libpthsem/libpthsem.hash | 3 + package/libpthsem/libpthsem.mk | 37 + package/libpwquality/Config.in | 20 + package/libpwquality/libpwquality.hash | 3 + package/libpwquality/libpwquality.mk | 44 + package/libqb/Config.in | 12 + package/libqb/libqb.hash | 5 + package/libqb/libqb.mk | 21 + package/libqmi/Config.in | 15 + package/libqmi/libqmi.hash | 4 + package/libqmi/libqmi.mk | 65 + package/libqrencode/Config.in | 20 + package/libqrencode/libqrencode.hash | 5 + package/libqrencode/libqrencode.mk | 34 + package/libqrtr-glib/Config.in | 17 + package/libqrtr-glib/libqrtr-glib.hash | 3 + package/libqrtr-glib/libqrtr-glib.mk | 22 + .../0001-Add-Libs.private-to-libraw.pc.patch | 67 + package/libraw/Config.in | 12 + package/libraw/libraw.hash | 5 + package/libraw/libraw.mk | 54 + package/libraw1394/Config.in | 7 + package/libraw1394/libraw1394.hash | 4 + package/libraw1394/libraw1394.mk | 14 + package/librelp/Config.in | 10 + package/librelp/librelp.hash | 3 + package/librelp/librelp.mk | 28 + package/libreplaygain/Config.in | 6 + package/libreplaygain/libreplaygain.hash | 6 + package/libreplaygain/libreplaygain.mk | 16 + ...0001-always-expose-SSL_OP_NO_TLSv1_3.patch | 37 + package/libressl/Config.in | 9 + package/libressl/libressl.hash | 4 + package/libressl/libressl.mk | 22 + ...1-src-roxml_mem.h-add-missing-extern.patch | 37 + package/libroxml/Config.in | 12 + package/libroxml/libroxml.hash | 3 + package/libroxml/libroxml.mk | 19 + ...r-Makefile.am-set-GDK_PIXBUF_MODULED.patch | 41 + package/librsvg/Config.in | 30 + package/librsvg/librsvg.hash | 5 + package/librsvg/librsvg.mk | 34 + package/librsync/Config.in | 11 + package/librsync/librsync.hash | 3 + package/librsync/librsync.mk | 15 + ...onfigure.ac-remove-LOCAL_CHECK_FLAGS.patch | 46 + package/librtas/Config.in | 10 + package/librtas/librtas.hash | 3 + package/librtas/librtas.mk | 15 + ...pect-DESTDIR-with-install-udev-rules.patch | 31 + package/librtlsdr/Config.in | 34 + package/librtlsdr/librtlsdr.hash | 4 + package/librtlsdr/librtlsdr.mk | 33 + package/libsamplerate/Config.in | 9 + package/libsamplerate/libsamplerate.hash | 4 + package/libsamplerate/libsamplerate.mk | 29 + package/libscrypt/Config.in | 12 + package/libscrypt/libscrypt.hash | 3 + package/libscrypt/libscrypt.mk | 33 + package/libseccomp/Config.in | 30 + package/libseccomp/libseccomp.hash | 4 + package/libseccomp/libseccomp.mk | 15 + package/libsecret/Config.in | 17 + package/libsecret/libsecret.hash | 5 + package/libsecret/libsecret.mk | 49 + package/libselinux/0001-fix-musl-build.patch | 38 + ...T-and-rely-on-the-installed-file-nam.patch | 50 + package/libselinux/Config.in | 22 + package/libselinux/libselinux.hash | 5 + package/libselinux/libselinux.mk | 138 + package/libsemanage/Config.in | 24 + package/libsemanage/libsemanage.hash | 5 + package/libsemanage/libsemanage.mk | 58 + .../libsepol/0001-support-static-only.patch | 47 + package/libsepol/Config.in | 40 + package/libsepol/libsepol.hash | 5 + package/libsepol/libsepol.mk | 53 + ...ix-build-when-size_t-is-an-unsigned-.patch | 39 + ...on-t-use-high-baudrates-when-not-ava.patch | 53 + package/libserial/Config.in | 17 + package/libserial/libserial.hash | 3 + package/libserial/libserial.mk | 21 + .../0001-uclinux-detection.patch | 26 + package/libserialport/Config.in | 9 + package/libserialport/libserialport.hash | 3 + package/libserialport/libserialport.mk | 15 + package/libsexy/Config.in | 11 + package/libsexy/libsexy.hash | 3 + package/libsexy/libsexy.mk | 14 + package/libsha1/Config.in | 9 + package/libsha1/libsha1.hash | 3 + package/libsha1/libsha1.mk | 18 + package/libshairplay/Config.in | 17 + package/libshairplay/libshairplay.hash | 3 + package/libshairplay/libshairplay.mk | 15 + ...01-backend-Add-missing-include-files.patch | 47 + ...stress_test-Fix-build-with-musl-libc.patch | 37 + package/libshdata/Config.in | 30 + package/libshdata/libshdata.hash | 3 + package/libshdata/libshdata.mk | 68 + ...re.ac-add-an-option-to-disable-tools.patch | 51 + package/libshout/Config.in | 11 + package/libshout/libshout.hash | 8 + package/libshout/libshout.mk | 40 + .../0001-sidplay2-libs-2.1.1.patch | 227 + package/libsidplay2/0002-pkg-config.patch | 25 + package/libsidplay2/0003-gcc6.patch | 44 + package/libsidplay2/Config.in | 14 + package/libsidplay2/libsidplay2.hash | 4 + package/libsidplay2/libsidplay2.mk | 14 + package/libsigc/Config.in | 14 + package/libsigc/libsigc.hash | 5 + package/libsigc/libsigc.mk | 18 + .../libsigrok/0001-Support-glibmm-2.68.patch | 129 + package/libsigrok/Config.in | 46 + package/libsigrok/libsigrok.hash | 3 + package/libsigrok/libsigrok.mk | 68 + ...figure-ac-Add-support-for-Python-3-9.patch | 28 + ...02-configure-Add-python-3-10-support.patch | 28 + package/libsigrokdecode/Config.in | 21 + package/libsigrokdecode/libsigrokdecode.hash | 3 + package/libsigrokdecode/libsigrokdecode.mk | 16 + package/libsigsegv/Config.in | 11 + package/libsigsegv/libsigsegv.hash | 5 + package/libsigsegv/libsigsegv.mk | 14 + package/libsilk/Config.in | 6 + package/libsilk/libsilk.hash | 3 + package/libsilk/libsilk.mk | 16 + ...ute-EXTERNAL_MPEG_LIBS-in-sndfile-pc.patch | 24 + package/libsndfile/Config.in | 8 + package/libsndfile/libsndfile.hash | 4 + package/libsndfile/libsndfile.mk | 31 + package/libsoc/Config.in | 11 + package/libsoc/libsoc.hash | 3 + package/libsoc/libsoc.mk | 23 + package/libsocketcan/Config.in | 6 + package/libsocketcan/libsocketcan.hash | 3 + package/libsocketcan/libsocketcan.mk | 14 + package/libsodium/Config.in | 18 + package/libsodium/libsodium.hash | 4 + package/libsodium/libsodium.mk | 24 + package/libsoundtouch/Config.in | 12 + package/libsoundtouch/libsoundtouch.hash | 3 + package/libsoundtouch/libsoundtouch.mk | 15 + .../0001-meson.build-set-c_std-to-gnu99.patch | 40 + package/libsoup/Config.in | 39 + package/libsoup/libsoup.hash | 4 + package/libsoup/libsoup.mk | 64 + ...-Add-Libs.private-for-static-linking.patch | 43 + package/libsoxr/Config.in | 15 + package/libsoxr/libsoxr.hash | 7 + package/libsoxr/libsoxr.mk | 25 + .../0001-allow-building-static-libs.patch | 32 + ...-CMakeLists.txt-fix-CMAKE_BUILD_TYPE.patch | 30 + package/libspatialindex/Config.in | 31 + package/libspatialindex/libspatialindex.hash | 5 + package/libspatialindex/libspatialindex.mk | 24 + ...ption-for-ln-to-remove-existing-dest.patch | 32 + package/libsquish/Config.in | 12 + package/libsquish/libsquish.hash | 5 + package/libsquish/libsquish.mk | 40 + ...legacy-OpenSSL-to-fix-LibreSSL-build.patch | 86 + package/libsrtp/Config.in | 8 + package/libsrtp/libsrtp.hash | 3 + package/libsrtp/libsrtp.mk | 34 + package/libss7/Config.in | 19 + package/libss7/libss7.hash | 6 + package/libss7/libss7.mk | 56 + package/libssh/Config.in | 46 + package/libssh/libssh.hash | 5 + package/libssh/libssh.mk | 43 + .../0001-Opaque-structs-in-LibreSSL-3-5.patch | 27 + package/libssh2/Config.in | 33 + package/libssh2/libssh2.hash | 3 + package/libssh2/libssh2.mk | 50 + package/libstrophe/Config.in | 15 + package/libstrophe/libstrophe.hash | 4 + package/libstrophe/libstrophe.mk | 32 + package/libsvg-cairo/Config.in | 11 + package/libsvg-cairo/libsvg-cairo.hash | 6 + package/libsvg-cairo/libsvg-cairo.mk | 16 + .../0001-fix-expat-static-declaration.patch | 33 + ...fined-symbol-png_set_gray_1_2_4_to_8.patch | 32 + package/libsvg/Config.in | 12 + package/libsvg/libsvg.hash | 6 + package/libsvg/libsvg.mk | 23 + .../0001-disable-debug-printfs.patch | 125 + package/libsvgtiny/0002-Remove-Werror.patch | 44 + ...-inlines-and-non-inlines-calling-one.patch | 36 + ...nclude-gperf-generated-code-directly.patch | 97 + package/libsvgtiny/Config.in | 9 + package/libsvgtiny/libsvgtiny.hash | 3 + package/libsvgtiny/libsvgtiny.mk | 47 + package/libsysfs/Config.in | 7 + package/libsysfs/libsysfs.hash | 4 + package/libsysfs/libsysfs.mk | 17 + ...mba-add-disable-stack-protector-opti.patch | 116 + package/libtalloc/Config.in | 14 + package/libtalloc/libtalloc-cache.txt | 42 + package/libtalloc/libtalloc.hash | 3 + package/libtalloc/libtalloc.mk | 60 + ...fuzz-Makefile.am-do-not-force-static.patch | 35 + package/libtasn1/Config.in | 6 + package/libtasn1/libtasn1.hash | 7 + package/libtasn1/libtasn1.mk | 32 + .../0001-revert-disregard-current-state.patch | 51 + .../0002-fix-build-on-openwrt-musl-libc.patch | 41 + ...3-increase-wait-time-for-daemon-kill.patch | 37 + package/libteam/Config.in | 31 + package/libteam/libteam.hash | 3 + package/libteam/libteam.mk | 23 + .../0001-fix-compilation-without-zlib.patch | 42 + package/libtelnet/Config.in | 10 + package/libtelnet/libtelnet.hash | 3 + package/libtelnet/libtelnet.mk | 18 + package/libtextstyle/libtextstyle.hash | 6 + package/libtextstyle/libtextstyle.mk | 24 + .../libtheora/0001-link-libtheoradec.patch | 21 + package/libtheora/0002-fix-autoreconf.patch | 46 + package/libtheora/Config.in | 9 + package/libtheora/libtheora.hash | 6 + package/libtheora/libtheora.mk | 25 + package/libtirpc/Config.in | 25 + package/libtirpc/libtirpc.hash | 5 + package/libtirpc/libtirpc.mk | 29 + .../libtomcrypt/0001-fix-CVE-2019-17362.patch | 29 + package/libtomcrypt/Config.in | 11 + package/libtomcrypt/libtomcrypt.hash | 5 + package/libtomcrypt/libtomcrypt.mk | 35 + ...bn_mp_set_double-c-on-more-platforms.patch | 44 + package/libtommath/Config.in | 7 + package/libtommath/libtommath.hash | 5 + package/libtommath/libtommath.mk | 23 + package/libtool/Config.in | 8 + package/libtool/libtool.hash | 5 + package/libtool/libtool.mk | 56 + package/libtorrent-rasterbar/Config.in | 26 + .../libtorrent-rasterbar.hash | 3 + .../libtorrent-rasterbar.mk | 40 + ...01-libtorrent.pc.in-add-Libs.Private.patch | 30 + package/libtorrent/Config.in | 15 + package/libtorrent/libtorrent.hash | 3 + package/libtorrent/libtorrent.mk | 29 + package/libtpl/Config.in | 6 + package/libtpl/libtpl.hash | 3 + package/libtpl/libtpl.mk | 20 + ...xt-do-not-force-the-build-of-a-share.patch | 55 + package/libubootenv/Config.in | 11 + package/libubootenv/libubootenv.hash | 5 + package/libubootenv/libubootenv.mk | 17 + package/libubox/Config.in | 13 + package/libubox/libubox.hash | 2 + package/libubox/libubox.mk | 23 + package/libuci/Config.in | 16 + package/libuci/libuci.hash | 4 + package/libuci/libuci.mk | 29 + package/libucl/Config.in | 15 + package/libucl/libucl.hash | 3 + package/libucl/libucl.mk | 22 + package/libudfread/Config.in | 10 + package/libudfread/libudfread.hash | 3 + package/libudfread/libudfread.mk | 15 + package/libuecc/Config.in | 10 + package/libuecc/libuecc.hash | 5 + package/libuecc/libuecc.mk | 14 + package/libuev/Config.in | 6 + package/libuev/libuev.hash | 4 + package/libuev/libuev.mk | 15 + package/libuhttpd/Config.in | 16 + package/libuhttpd/libuhttpd.hash | 3 + package/libuhttpd/libuhttpd.mk | 48 + ...0001-configure-remove-po-Makefile.in.patch | 26 + package/libuio/Config.in | 8 + package/libuio/libuio.hash | 3 + package/libuio/libuio.mk | 30 + package/libunistring/Config.in | 12 + package/libunistring/libunistring.hash | 6 + package/libunistring/libunistring.mk | 16 + package/libunwind/Config.in | 38 + package/libunwind/libunwind.hash | 5 + package/libunwind/libunwind.mk | 19 + package/libupnp/Config.in | 14 + package/libupnp/libupnp.hash | 3 + package/libupnp/libupnp.mk | 30 + package/libupnpp/Config.in | 16 + package/libupnpp/libupnpp.hash | 5 + package/libupnpp/libupnpp.mk | 14 + ...ly-blacklist-ARM-gcc-4.8.0-and-4.8.1.patch | 42 + ...ix-don-t-use-C-thread_local-on-MacOs.patch | 41 + ...-Thread-local-storage-except-on-MSVC.patch | 53 + package/liburcu/Config.in | 30 + package/liburcu/liburcu.hash | 8 + package/liburcu/liburcu.mk | 19 + package/liburing/Config.in | 17 + package/liburing/liburing.hash | 8 + package/liburing/liburing.mk | 42 + package/liburiparser/Config.in | 7 + package/liburiparser/liburiparser.hash | 3 + package/liburiparser/liburiparser.mk | 27 + .../0001-fix-a-build-issue-on-linux.patch | 32 + package/libusb-compat/Config.in | 7 + package/libusb-compat/libusb-compat.hash | 3 + package/libusb-compat/libusb-compat.mk | 25 + package/libusb/Config.in | 19 + package/libusb/libusb.hash | 3 + package/libusb/libusb.mk | 38 + .../0001-Add-include-of-sys-sysmacro.h.patch | 98 + package/libusbgx/Config.in | 12 + package/libusbgx/libusbgx.hash | 4 + package/libusbgx/libusbgx.mk | 15 + package/libutp/Config.in | 10 + package/libutp/libutp.hash | 3 + package/libutp/libutp.mk | 13 + package/libuv/Config.in | 16 + package/libuv/libuv.hash | 3 + package/libuv/libuv.mk | 30 + ...001-CMakeLists.txt-add-BUILD_EXAMPLE.patch | 34 + .../libuwsc/0002-fix-bad-indentation.patch | 27 + package/libuwsc/Config.in | 8 + package/libuwsc/libuwsc.hash | 3 + package/libuwsc/libuwsc.mk | 53 + package/libv4l/Config.in | 46 + package/libv4l/libv4l.hash | 9 + package/libv4l/libv4l.mk | 88 + package/libva-intel-driver/Config.in | 19 + .../libva-intel-driver.hash | 5 + .../libva-intel-driver/libva-intel-driver.mk | 29 + package/libva-utils/Config.in | 15 + package/libva-utils/libva-utils.hash | 3 + package/libva-utils/libva-utils.mk | 13 + package/libva/Config.in | 19 + package/libva/libva.hash | 5 + package/libva/libva.mk | 39 + package/libvdpau/Config.in | 17 + package/libvdpau/libvdpau.hash | 4 + package/libvdpau/libvdpau.mk | 28 + package/libvips/Config.in | 21 + package/libvips/libvips.hash | 3 + package/libvips/libvips.mk | 149 + package/libvirt/90-kvm.rules | 1 + package/libvirt/Config.in | 98 + package/libvirt/S91virtlogd | 65 + package/libvirt/S92libvirtd | 132 + package/libvirt/libvirt.hash | 3 + package/libvirt/libvirt.mk | 322 + ...enssl.c-fix-build-with-libressl-3.5..patch | 66 + package/libvncserver/Config.in | 31 + package/libvncserver/libvncserver.hash | 3 + package/libvncserver/libvncserver.mk | 79 + package/libvorbis/Config.in | 17 + package/libvorbis/libvorbis.hash | 4 + package/libvorbis/libvorbis.mk | 17 + ...px_mem.h-Fix-compilation-with-uClibc.patch | 30 + package/libvpx/Config.in | 11 + package/libvpx/libvpx.hash | 4 + package/libvpx/libvpx.mk | 58 + ...g-config-to-detect-libevent-and-open.patch | 81 + package/libwebsock/0002-fix-ssl.patch | 21 + .../0003-fix-incorrect-inline.patch | 66 + package/libwebsock/Config.in | 16 + package/libwebsock/libwebsock.hash | 3 + package/libwebsock/libwebsock.mk | 22 + ...eLists.txt-fix-build-without-threads.patch | 47 + package/libwebsockets/Config.in | 13 + package/libwebsockets/libwebsockets.hash | 3 + package/libwebsockets/libwebsockets.mk | 99 + package/libwpe/Config.in | 13 + package/libwpe/libwpe.hash | 7 + package/libwpe/libwpe.mk | 24 + package/libxcrypt/Config.in | 11 + package/libxcrypt/libxcrypt.hash | 4 + package/libxcrypt/libxcrypt.mk | 20 + package/libxkbcommon/Config.in | 20 + package/libxkbcommon/libxkbcommon.hash | 5 + package/libxkbcommon/libxkbcommon.mk | 32 + .../libxml-parser-perl.hash | 3 + .../libxml-parser-perl/libxml-parser-perl.mk | 40 + package/libxml2/Config.in | 6 + package/libxml2/libxml2.hash | 4 + package/libxml2/libxml2.mk | 68 + package/libxmlpp/Config.in | 18 + package/libxmlpp/libxmlpp.hash | 5 + package/libxmlpp/libxmlpp.mk | 20 + package/libxmlrpc/Config.in | 27 + package/libxmlrpc/libxmlrpc.hash | 3 + package/libxmlrpc/libxmlrpc.mk | 68 + package/libxslt/Config.in | 16 + package/libxslt/libxslt.hash | 5 + package/libxslt/libxslt.mk | 36 + package/libyaml/Config.in | 6 + package/libyaml/libyaml.hash | 3 + package/libyaml/libyaml.mk | 16 + package/libyang/Config.in | 15 + package/libyang/libyang.hash | 3 + package/libyang/libyang.mk | 26 + package/libyuv/0001-i386-sse2.patch | 16 + package/libyuv/Config.in | 12 + package/libyuv/libyuv.hash | 3 + package/libyuv/libyuv.mk | 15 + package/libzip/Config.in | 14 + package/libzip/libzip.hash | 3 + package/libzip/libzip.mk | 65 + ...hat-discarded-provided-CC-definition.patch | 28 + package/libzlib/0002-fix-CVE-2022-37434.patch | 35 + .../0003-fix-CVE-2022-37434-regression.patch | 32 + package/libzlib/libzlib.hash | 4 + package/libzlib/libzlib.mk | 83 + ...e.am-don-t-install-lightning.h-twice.patch | 38 + package/lightning/Config.in | 32 + package/lightning/lightning.hash | 3 + package/lightning/lightning.mk | 21 + ...lt-lighttpd-configuration-file-to-ha.patch | 98 + package/lighttpd/Config.in | 127 + package/lighttpd/S50lighttpd | 43 + package/lighttpd/lighttpd.hash | 4 + package/lighttpd/lighttpd.mk | 168 + package/lighttpd/lighttpd_tmpfiles.conf | 2 + package/lilv/Config.in | 15 + package/lilv/lilv.hash | 4 + package/lilv/lilv.mk | 30 + package/linenoise/Config.in | 6 + package/linenoise/linenoise.hash | 3 + package/linenoise/linenoise.mk | 30 + ...nfigure-ac-tweak-CPPUNIT-conditional.patch | 47 + ...Makefile.am-fix-linking-with-log4cpp.patch | 37 + package/linknx/Config.in | 18 + package/linknx/linknx.hash | 3 + package/linknx/linknx.mk | 59 + package/links/Config.in | 24 + package/links/links.hash | 3 + package/links/links.mk | 101 + ...re-paths-paths.cpp-fix-powerpc-build.patch | 35 + package/linphone/Config.in | 41 + package/linphone/linphone.hash | 4 + package/linphone/linphone.mk | 42 + package/linux-backports/Config.in | 54 + package/linux-backports/linux-backports.hash | 6 + package/linux-backports/linux-backports.mk | 117 + package/linux-firmware/Config.in | 578 + package/linux-firmware/linux-firmware.hash | 38 + package/linux-firmware/linux-firmware.mk | 833 ++ .../0001-fix-for-linux-4-and-above.patch | 25 + ...-conversion-spec-and-value-in-printk.patch | 29 + ...n-Unknown-symbol-tasklist_lock-err-0.patch | 38 + ...0004-Port-one-one_udp.c-to-Linux-4.1.patch | 118 + package/linux-fusion/40-fusion.rules | 1 + package/linux-fusion/Config.in | 12 + package/linux-fusion/linux-fusion.hash | 3 + package/linux-fusion/linux-fusion.mk | 43 + package/linux-headers/Config.in | 2 + package/linux-headers/Config.in.host | 389 + package/linux-headers/linux-headers.hash | 1 + package/linux-headers/linux-headers.mk | 173 + package/linux-pam/Config.in | 17 + package/linux-pam/linux-pam.hash | 6 + package/linux-pam/linux-pam.mk | 63 + package/linux-pam/login.pam | 12 + package/linux-pam/other.pam | 7 + package/linux-serial-test/Config.in | 6 + .../linux-serial-test/linux-serial-test.hash | 3 + .../linux-serial-test/linux-serial-test.mk | 12 + package/linux-syscall-support/Config.in | 8 + .../linux-syscall-support.hash | 3 + .../linux-syscall-support.mk | 29 + package/linux-tools/Config.in | 187 + package/linux-tools/S10hyperv | 66 + package/linux-tools/hypervfcopyd.service | 11 + package/linux-tools/hypervkvpd.service | 11 + package/linux-tools/hypervvssd.service | 11 + package/linux-tools/linux-tool-cpupower.mk.in | 41 + package/linux-tools/linux-tool-gpio.mk.in | 28 + package/linux-tools/linux-tool-hv.mk.in | 61 + package/linux-tools/linux-tool-iio.mk.in | 29 + package/linux-tools/linux-tool-pci.mk.in | 27 + package/linux-tools/linux-tool-perf.mk.in | 182 + .../linux-tools/linux-tool-selftests.mk.in | 49 + package/linux-tools/linux-tool-tmon.mk.in | 38 + package/linux-tools/linux-tools.mk | 74 + .../0001-test-serial-Remove-test-serial.patch | 54 + ...fig-parse.y-add-missing-time.h-inclu.patch | 43 + package/linux-zigbee/Config.in | 55 + package/linux-zigbee/linux-zigbee.hash | 3 + package/linux-zigbee/linux-zigbee.mk | 33 + package/linuxconsoletools/Config.in | 40 + .../linuxconsoletools/linuxconsoletools.hash | 3 + .../linuxconsoletools/linuxconsoletools.mk | 41 + ...g.h-drop-clock_nanosleep-replacement.patch | 49 + package/linuxptp/Config.in | 17 + package/linuxptp/S65ptp4l | 57 + package/linuxptp/S66phc2sys | 57 + package/linuxptp/linuxptp.cfg | 19 + package/linuxptp/linuxptp.hash | 9 + package/linuxptp/linuxptp.mk | 50 + package/linuxptp/phc2sys.service | 10 + package/linuxptp/ptp4l.service | 13 + package/liquid-dsp/Config.in | 24 + package/liquid-dsp/liquid-dsp.hash | 3 + package/liquid-dsp/liquid-dsp.mk | 47 + .../0001-Fix-build-without-Python.patch | 63 + ...0002-Fix-python-client-cross-compile.patch | 47 + ...irc-version-detection-when-cross-com.patch | 51 + ...devinput.c-fix-build-with-musl-1.2.0.patch | 42 + package/lirc-tools/Config.in | 24 + package/lirc-tools/S25lircd | 38 + package/lirc-tools/lirc-tools.hash | 6 + package/lirc-tools/lirc-tools.mk | 59 + package/lite/0001-dfbspy-stat.patch | 53 + package/lite/0002-no-tests.patch | 11 + package/lite/0003-pkg-config.patch | 22 + package/lite/Config.in | 11 + package/lite/lite.hash | 3 + package/lite/lite.mk | 27 + ...config-file-for-the-shared-libraries.patch | 66 + package/live555/Config.in | 12 + package/live555/live555.hash | 5 + package/live555/live555.mk | 74 + package/ljlinenoise/Config.in | 13 + package/ljlinenoise/ljlinenoise.hash | 3 + package/ljlinenoise/ljlinenoise.mk | 11 + package/ljsyscall/Config.in | 12 + package/ljsyscall/ljsyscall.hash | 3 + package/ljsyscall/ljsyscall.mk | 44 + package/lksctp-tools/Config.in | 17 + package/lksctp-tools/lksctp-tools.hash | 6 + package/lksctp-tools/lksctp-tools.mk | 22 + package/lld/Config.in.host | 15 + package/lld/lld.hash | 3 + package/lld/lld.mk | 34 + package/lldpd/Config.in | 73 + package/lldpd/S60lldpd | 25 + package/lldpd/lldpd.hash | 5 + package/lldpd/lldpd.mk | 69 + .../llvm/0001-nfc-Fix-missing-include.patch | 24 + package/llvm/Config.in | 71 + package/llvm/llvm.hash | 3 + package/llvm/llvm.mk | 313 + package/lm-sensors/0001-static-build.patch | 81 + .../lm-sensors/0002-no-host-ldconfig.patch | 29 + package/lm-sensors/Config.in | 57 + package/lm-sensors/lm-sensors.hash | 4 + package/lm-sensors/lm-sensors.mk | 53 + ...-scripts-build-use-bin-bash-as-shell.patch | 28 + ...e-add-lmbench-to-list-of-executables.patch | 29 + ...c-to-prevent-memsize-from-timingout-.patch | 28 + ...bage-pointer-for-lat_rpc-S-localhost.patch | 25 + package/lmbench/Config.in | 14 + package/lmbench/lmbench.hash | 4 + package/lmbench/lmbench.mk | 46 + ...ACK-only-build-and-install-localedef.patch | 65 + ...y-on-GCC-to-4.8-and-binutils-to-2.24.patch | 63 + package/localedef/localedef.hash | 1 + package/localedef/localedef.mk | 56 + ...-static-library-and-headers-separate.patch | 44 + package/lockdev/Config.in | 6 + package/lockdev/lockdev.hash | 5 + package/lockdev/lockdev.mk | 58 + .../lockfile-progs/0001-sus3v-legacy.patch | 11 + package/lockfile-progs/Config.in | 6 + package/lockfile-progs/lockfile-progs.hash | 5 + package/lockfile-progs/lockfile-progs.mk | 28 + package/log4cplus/Config.in | 21 + package/log4cplus/log4cplus.hash | 3 + package/log4cplus/log4cplus.mk | 27 + package/log4cpp/Config.in | 14 + package/log4cpp/log4cpp.hash | 6 + package/log4cpp/log4cpp.mk | 35 + ...nly-check-for-boost-if-really-needed.patch | 36 + package/log4cxx/Config.in | 35 + package/log4cxx/log4cxx.hash | 4 + package/log4cxx/log4cxx.mk | 34 + package/log4qt/Config.in | 12 + package/log4qt/log4qt.hash | 3 + package/log4qt/log4qt.mk | 31 + package/logrotate/Config.in | 13 + package/logrotate/logrotate.conf | 14 + package/logrotate/logrotate.hash | 3 + package/logrotate/logrotate.mk | 37 + package/logsurfer/Config.in | 8 + package/logsurfer/logsurfer.hash | 3 + package/logsurfer/logsurfer.mk | 15 + package/lpc3250loader/Config.in.host | 7 + package/lpc3250loader/lpc3250loader.hash | 3 + package/lpc3250loader/lpc3250loader.mk | 17 + package/lpeg/Config.in | 7 + package/lpeg/lpeg.hash | 2 + package/lpeg/lpeg.mk | 10 + package/lpty/Config.in | 7 + package/lpty/lpty.hash | 3 + package/lpty/lpty.mk | 12 + package/lrandom/Config.in | 7 + package/lrandom/lrandom.hash | 2 + package/lrandom/lrandom.mk | 11 + package/lrzip/Config.in | 25 + package/lrzip/lrzip.hash | 3 + package/lrzip/lrzip.mk | 21 + package/lrzsz/Config.in | 16 + package/lrzsz/lrzsz.hash | 3 + package/lrzsz/lrzsz.mk | 36 + ...-error-when-g-version-is-less-than-5.patch | 65 + package/lshw/Config.in | 17 + package/lshw/lshw.hash | 3 + package/lshw/lshw.mk | 39 + package/lsof/Config.in | 10 + package/lsof/lsof.hash | 3 + package/lsof/lsof.mk | 52 + package/lsqlite3/Config.in | 7 + package/lsqlite3/lsqlite3.hash | 2 + package/lsqlite3/lsqlite3.mk | 12 + package/lsscsi/Config.in | 6 + package/lsscsi/lsscsi.hash | 3 + package/lsscsi/lsscsi.mk | 13 + package/lsuio/Config.in | 6 + package/lsuio/lsuio.hash | 3 + package/lsuio/lsuio.mk | 12 + ...ysinfo.h-to-fix-build-with-MUSL-libc.patch | 211 + .../0002-kvm-Fix-compilation-on-x86.patch | 40 + ...efined-reference-to-__stack_chk_fail.patch | 41 + ...fs05_make_tree-Restore-5-min-timeout.patch | 31 + ...igrate_pages03-restore-runtime-to-5m.patch | 44 + ...ait-for-umount-completed-in-thread_b.patch | 63 + ...0007-netstress-Restore-runtime-to-5m.patch | 53 + ...x-usage-of-variables-from-tst_net.sh.patch | 154 + ...-Fix-usage-of-PAGESIZE-from-memcg_li.patch | 121 + package/ltp-testsuite/Config.in | 42 + package/ltp-testsuite/ltp-testsuite.hash | 5 + package/ltp-testsuite/ltp-testsuite.mk | 100 + package/ltrace/0001-arm-plt.patch | 30 + ...-sparc-add-missing-library.h-include.patch | 36 + ...ac-fix-autoreconf-with-autoconf-2.70.patch | 35 + package/ltrace/Config.in | 33 + package/ltrace/ltrace.hash | 3 + package/ltrace/ltrace.mk | 32 + .../ltris/0001-fix-build-with-gcc-4.8.patch | 20 + package/ltris/Config.in | 21 + package/ltris/ltris.hash | 3 + package/ltris/ltris.mk | 29 + ...efile.am-remove-unneeded-static-flag.patch | 36 + package/lttng-babeltrace/Config.in | 35 + package/lttng-babeltrace/Config.in.host | 14 + .../lttng-babeltrace/lttng-babeltrace.hash | 7 + package/lttng-babeltrace/lttng-babeltrace.mk | 32 + .../0001-configure.ac-add-disable-tests.patch | 59 + package/lttng-libust/Config.in | 21 + package/lttng-libust/lttng-libust.hash | 9 + package/lttng-libust/lttng-libust.mk | 38 + package/lttng-modules/Config.in | 43 + package/lttng-modules/lttng-modules.hash | 8 + package/lttng-modules/lttng-modules.mk | 20 + .../0001-configure.ac-add-disable-tests.patch | 37 + package/lttng-tools/Config.in | 32 + package/lttng-tools/lttng-tools.hash | 10 + package/lttng-tools/lttng-tools.mk | 28 + package/lua-argon2/Config.in | 13 + package/lua-argon2/lua-argon2.hash | 2 + package/lua-argon2/lua-argon2.mk | 23 + package/lua-augeas/Config.in | 13 + package/lua-augeas/lua-augeas.hash | 3 + package/lua-augeas/lua-augeas.mk | 33 + package/lua-basexx/Config.in | 8 + package/lua-basexx/lua-basexx.hash | 3 + package/lua-basexx/lua-basexx.mk | 12 + package/lua-binaryheap/Config.in | 6 + package/lua-binaryheap/lua-binaryheap.hash | 2 + package/lua-binaryheap/lua-binaryheap.mk | 12 + package/lua-bit32/Config.in | 8 + package/lua-bit32/lua-bit32.hash | 3 + package/lua-bit32/lua-bit32.mk | 13 + package/lua-cffi/Config.in | 19 + package/lua-cffi/lua-cffi.hash | 3 + package/lua-cffi/lua-cffi.mk | 14 + package/lua-cjson/Config.in | 15 + package/lua-cjson/lua-cjson.hash | 3 + package/lua-cjson/lua-cjson.mk | 12 + package/lua-coat/Config.in | 6 + package/lua-coat/lua-coat.hash | 3 + package/lua-coat/lua-coat.mk | 12 + package/lua-coatpersistent/Config.in | 12 + .../lua-coatpersistent.hash | 4 + .../lua-coatpersistent/lua-coatpersistent.mk | 17 + package/lua-codegen/Config.in | 6 + package/lua-codegen/lua-codegen.hash | 3 + package/lua-codegen/lua-codegen.mk | 12 + package/lua-compat53/Config.in | 8 + package/lua-compat53/lua-compat53.hash | 3 + package/lua-compat53/lua-compat53.mk | 14 + package/lua-cqueues/Config.in | 12 + package/lua-cqueues/lua-cqueues.hash | 3 + package/lua-cqueues/lua-cqueues.mk | 30 + package/lua-csnappy/Config.in | 7 + package/lua-csnappy/lua-csnappy.hash | 3 + package/lua-csnappy/lua-csnappy.mk | 11 + package/lua-curl/Config.in | 7 + package/lua-curl/lua-curl.hash | 3 + package/lua-curl/lua-curl.mk | 14 + package/lua-datafile/Config.in | 7 + package/lua-datafile/lua-datafile.hash | 3 + package/lua-datafile/lua-datafile.mk | 13 + package/lua-ev/Config.in | 7 + package/lua-ev/lua-ev.hash | 3 + package/lua-ev/lua-ev.mk | 14 + package/lua-fifo/Config.in | 6 + package/lua-fifo/lua-fifo.hash | 3 + package/lua-fifo/lua-fifo.mk | 14 + package/lua-flu/Config.in | 19 + package/lua-flu/lua-flu.hash | 3 + package/lua-flu/lua-flu.mk | 14 + ...ion-of-LgdImageCreateFromPng-with-GD.patch | 34 + package/lua-gd/Config.in | 7 + package/lua-gd/lua-gd.hash | 3 + package/lua-gd/lua-gd.mk | 47 + package/lua-http/Config.in | 19 + package/lua-http/lua-http.hash | 3 + package/lua-http/lua-http.mk | 14 + package/lua-iconv/Config.in | 7 + package/lua-iconv/lua-iconv.hash | 3 + package/lua-iconv/lua-iconv.mk | 12 + package/lua-inotify/Config.in | 6 + package/lua-inotify/lua-inotify.hash | 3 + package/lua-inotify/lua-inotify.mk | 14 + package/lua-livr-extra/Config.in | 7 + package/lua-livr-extra/lua-livr-extra.hash | 3 + package/lua-livr-extra/lua-livr-extra.mk | 12 + package/lua-livr/Config.in | 7 + package/lua-livr/lua-livr.hash | 3 + package/lua-livr/lua-livr.mk | 12 + package/lua-lpeg-patterns/Config.in | 7 + .../lua-lpeg-patterns/lua-lpeg-patterns.hash | 3 + .../lua-lpeg-patterns/lua-lpeg-patterns.mk | 14 + package/lua-lunitx/Config.in | 6 + package/lua-lunitx/lua-lunitx.hash | 3 + package/lua-lunitx/lua-lunitx.mk | 13 + package/lua-lunix/0001-fix-with-uClibc.patch | 28 + .../0002-remove-link-with-librt.patch | 36 + .../lua-lunix/0003-fix-sysctl-detection.patch | 24 + package/lua-lunix/Config.in | 6 + package/lua-lunix/lua-lunix.hash | 3 + package/lua-lunix/lua-lunix.mk | 14 + package/lua-lyaml/Config.in | 9 + package/lua-lyaml/lua-lyaml.hash | 3 + package/lua-lyaml/lua-lyaml.mk | 33 + package/lua-markdown/Config.in | 7 + package/lua-markdown/lua-markdown.hash | 3 + package/lua-markdown/lua-markdown.mk | 13 + package/lua-messagepack/Config.in | 7 + package/lua-messagepack/lua-messagepack.hash | 4 + package/lua-messagepack/lua-messagepack.mk | 18 + package/lua-msgpack-native/Config.in | 12 + .../lua-msgpack-native.hash | 3 + .../lua-msgpack-native/lua-msgpack-native.mk | 26 + package/lua-periphery/Config.in | 7 + package/lua-periphery/lua-periphery.hash | 3 + package/lua-periphery/lua-periphery.mk | 12 + package/lua-resty-http/Config.in | 6 + package/lua-resty-http/lua-resty-http.hash | 3 + package/lua-resty-http/lua-resty-http.mk | 12 + package/lua-rotas/Config.in | 6 + package/lua-rotas/lua-rotas.hash | 3 + package/lua-rotas/lua-rotas.mk | 12 + package/lua-sailor/Config.in | 14 + package/lua-sailor/lua-sailor.hash | 3 + package/lua-sailor/lua-sailor.mk | 13 + ...reference-host-directory-for-headers.patch | 29 + .../0002-CMakeLists-do-not-require-C.patch | 58 + package/lua-sdl2/Config.in | 13 + package/lua-sdl2/lua-sdl2.hash | 3 + package/lua-sdl2/lua-sdl2.mk | 47 + package/lua-silva/Config.in | 6 + package/lua-silva/lua-silva.hash | 3 + package/lua-silva/lua-silva.mk | 12 + package/lua-std-debug/Config.in | 7 + package/lua-std-debug/lua-std-debug.hash | 3 + package/lua-std-debug/lua-std-debug.mk | 16 + package/lua-std-normalize/Config.in | 12 + .../lua-std-normalize/lua-std-normalize.hash | 3 + .../lua-std-normalize/lua-std-normalize.mk | 14 + package/lua-stdlib/Config.in | 9 + package/lua-stdlib/lua-stdlib.hash | 3 + package/lua-stdlib/lua-stdlib.mk | 14 + package/lua-testmore/Config.in | 6 + package/lua-testmore/lua-testmore.hash | 3 + package/lua-testmore/lua-testmore.mk | 12 + package/lua-utf8/Config.in | 7 + package/lua-utf8/lua-utf8.hash | 3 + package/lua-utf8/lua-utf8.mk | 12 + package/lua-valua/Config.in | 9 + package/lua-valua/lua-valua.hash | 3 + package/lua-valua/lua-valua.mk | 13 + package/lua-zlib/Config.in | 10 + package/lua-zlib/lua-zlib.hash | 2 + package/lua-zlib/lua-zlib.mk | 12 + package/lua/5.1.5/0001-root-path.patch | 30 + .../lua/5.1.5/0002-shared-libs-for-lua.patch | 78 + package/lua/5.1.5/0011-linenoise.patch | 24 + .../lua/5.1.5/0012-fix-reader-at-eoz.patch | 46 + package/lua/5.1.5/lua.hash | 6 + package/lua/5.3.6/0001-root-path.patch | 17 + .../lua/5.3.6/0002-shared-libs-for-lua.patch | 78 + package/lua/5.3.6/0003-linenoise.patch | 24 + package/lua/5.3.6/lua.hash | 6 + package/lua/5.4.4/0001-root-path.patch | 17 + .../lua/5.4.4/0002-shared-libs-for-lua.patch | 78 + package/lua/5.4.4/0011-linenoise.patch | 25 + package/lua/5.4.4/lua.hash | 6 + package/lua/Config.in | 70 + package/lua/lua.mk | 113 + package/lua/lua.pc.in | 26 + package/luabitop/Config.in | 11 + package/luabitop/luabitop.hash | 4 + package/luabitop/luabitop.mk | 12 + package/luadbi-sqlite3/Config.in | 9 + package/luadbi-sqlite3/luadbi-sqlite3.hash | 3 + package/luadbi-sqlite3/luadbi-sqlite3.mk | 13 + package/luadbi/Config.in | 10 + package/luadbi/luadbi.hash | 3 + package/luadbi/luadbi.mk | 12 + package/luaexpat/Config.in | 7 + package/luaexpat/luaexpat.hash | 3 + package/luaexpat/luaexpat.mk | 13 + package/luaexpatutils/Config.in | 9 + package/luaexpatutils/luaexpatutils.hash | 2 + package/luaexpatutils/luaexpatutils.mk | 17 + package/luafilesystem/Config.in | 7 + package/luafilesystem/luafilesystem.hash | 3 + package/luafilesystem/luafilesystem.mk | 12 + package/luainterpreter/Config.in | 25 + package/luainterpreter/luainterpreter.mk | 19 + package/luajit/0001-no-bin-symlink.patch | 26 + package/luajit/0002-install-inc.patch | 17 + package/luajit/Config.in | 49 + package/luajit/luajit.hash | 5 + package/luajit/luajit.mk | 81 + package/luajson/Config.in | 8 + package/luajson/luajson.hash | 3 + package/luajson/luajson.mk | 12 + package/lualdap/Config.in | 15 + package/lualdap/lualdap.hash | 3 + package/lualdap/lualdap.mk | 13 + package/lualogging/Config.in | 9 + package/lualogging/lualogging.hash | 3 + package/lualogging/lualogging.mk | 12 + package/luaossl/Config.in | 19 + package/luaossl/luaossl.hash | 3 + package/luaossl/luaossl.mk | 14 + package/luaposix/Config.in | 14 + package/luaposix/luaposix.hash | 3 + package/luaposix/luaposix.mk | 30 + package/luarocks/buildroot.lua | 411 + package/luarocks/luarocks.hash | 3 + package/luarocks/luarocks.mk | 53 + package/luasec/Config.in | 9 + package/luasec/luasec.hash | 3 + package/luasec/luasec.mk | 13 + package/luasocket/Config.in | 9 + package/luasocket/luasocket.hash | 3 + package/luasocket/luasocket.mk | 12 + package/luasql-sqlite3/Config.in | 7 + package/luasql-sqlite3/luasql-sqlite3.hash | 3 + package/luasql-sqlite3/luasql-sqlite3.mk | 13 + .../luasyslog/0001-remove-AX_LUA_LIBS.patch | 27 + ...uild-ax_lua.m4-fix-cross-compilation.patch | 45 + package/luasyslog/Config.in | 7 + package/luasyslog/luasyslog.hash | 3 + package/luasyslog/luasyslog.mk | 16 + .../0001-ImageIO-fix-invalid-conversion.patch | 35 + ...matched-usage-length-build-fail-on-g.patch | 58 + package/lugaru/Config.in | 38 + package/lugaru/lugaru.hash | 4 + package/lugaru/lugaru.mk | 30 + package/luksmeta/Config.in | 17 + package/luksmeta/luksmeta.hash | 3 + package/luksmeta/luksmeta.mk | 16 + package/lutok/Config.in | 11 + package/lutok/lutok.hash | 3 + package/lutok/lutok.mk | 16 + package/luv/Config.in | 16 + package/luv/luv.hash | 3 + package/luv/luv.mk | 29 + package/luvi/Config.in | 34 + package/luvi/luvi.hash | 3 + package/luvi/luvi.mk | 68 + package/lv2/Config.in | 8 + package/lv2/lv2.hash | 4 + package/lv2/lv2.mk | 36 + package/lvm2/Config.in | 43 + package/lvm2/lvm2.hash | 5 + package/lvm2/lvm2.mk | 79 + package/lxc/Config.in | 24 + package/lxc/lxc.hash | 4 + package/lxc/lxc.mk | 68 + package/lynx/Config.in | 9 + package/lynx/lynx.hash | 4 + package/lynx/lynx.mk | 58 + ...mory-corruption-with-negative-memmov.patch | 26 + package/lz4/Config.in | 19 + package/lz4/lz4.hash | 4 + package/lz4/lz4.mk | 67 + package/lzip/Config.in | 15 + package/lzip/lzip.hash | 4 + package/lzip/lzip.mk | 40 + package/lzlib/Config.in | 10 + package/lzlib/lzlib.hash | 3 + package/lzlib/lzlib.mk | 15 + package/lzma-alone/Config.in.host | 18 + package/lzma-alone/lzma-alone.hash | 5 + package/lzma-alone/lzma-alone.mk | 27 + .../0001-Remove-static-from-LDFLAGS.patch | 68 + package/lzma/lzma.hash | 5 + package/lzma/lzma.mk | 15 + package/lzo/Config.in | 6 + package/lzo/lzo.hash | 5 + package/lzo/lzo.mk | 30 + package/lzop/0001-build-with-gcc6.patch | 37 + ...es-as-the-external-inline-definition.patch | 102 + package/lzop/Config.in | 9 + package/lzop/lzop.hash | 3 + package/lzop/lzop.mk | 17 + package/m4/m4.hash | 4 + package/m4/m4.mk | 13 + ...0001-Fix-missing-include-for-caddr_t.patch | 35 + package/macchanger/Config.in | 7 + package/macchanger/macchanger.hash | 4 + package/macchanger/macchanger.mk | 12 + .../madplay/0001-switch-to-new-alsa-api.patch | 173 + .../0002-configure-ac-automake-foreign.patch | 16 + ...ure-ac-use-pkg-config-to-find-id3tag.patch | 23 + ...4-configure-ac-call-AM_MKINSTALLDIRS.patch | 23 + package/madplay/Config.in | 21 + package/madplay/madplay.hash | 4 + package/madplay/madplay.mk | 26 + ...pport-GLIBC-glob-interface-version-2.patch | 31 + ...b-Do-not-assume-glibc-glob-internals.patch | 70 + package/make/Config.in | 12 + package/make/make.hash | 6 + package/make/make.mk | 33 + package/makedevs/README | 35 + package/makedevs/makedevs.c | 650 + package/makedevs/makedevs.mk | 31 + ...0001-PATCH-Define-PN_XNUM-if-missing.patch | 25 + package/makedumpfile/Config.in | 30 + package/makedumpfile/makedumpfile.hash | 3 + package/makedumpfile/makedumpfile.mk | 44 + package/mali-driver/Config.in | 15 + package/mali-driver/mali-driver.hash | 3 + package/mali-driver/mali-driver.mk | 15 + package/mali-t76x/Config.in | 28 + package/mali-t76x/egl.pc | 11 + package/mali-t76x/glesv2.pc | 11 + package/mali-t76x/mali-t76x.hash | 2 + package/mali-t76x/mali-t76x.mk | 27 + .../0001-add-extra-check-for-librt.patch | 33 + package/mariadb/S97mysqld | 85 + package/mariadb/mariadb.hash | 6 + package/mariadb/mariadb.mk | 159 + package/mariadb/mysqld.service | 14 + package/matchbox-common/Config.in | 12 + package/matchbox-common/matchbox-common.hash | 4 + package/matchbox-common/matchbox-common.mk | 21 + package/matchbox-desktop/Config.in | 8 + .../matchbox-desktop/matchbox-desktop.hash | 4 + package/matchbox-desktop/matchbox-desktop.mk | 27 + package/matchbox-fakekey/Config.in | 8 + .../matchbox-fakekey/matchbox-fakekey.hash | 3 + package/matchbox-fakekey/matchbox-fakekey.mk | 26 + package/matchbox-keyboard/Config.in | 11 + .../matchbox-keyboard/matchbox-keyboard.hash | 4 + .../matchbox-keyboard/matchbox-keyboard.mk | 40 + .../mb-applet-kbd-wrapper.sh | 8 + .../matchbox-lib/0001-index-is-legacy.patch | 35 + package/matchbox-lib/Config.in | 7 + package/matchbox-lib/matchbox-lib.hash | 3 + package/matchbox-lib/matchbox-lib.mk | 61 + .../matchbox-panel/0001-index-is-legacy.patch | 20 + .../0002-mb-applet-wireless.patch | 34 + .../0003-mb-applet-battery.patch | 21 + package/matchbox-panel/Config.in | 8 + package/matchbox-panel/matchbox-panel.hash | 4 + package/matchbox-panel/matchbox-panel.mk | 35 + .../0001-true-false.patch | 21 + package/matchbox-startup-monitor/Config.in | 8 + .../matchbox-startup-monitor.hash | 4 + .../matchbox-startup-monitor.mk | 14 + package/matchbox/0001-defaulttheme.patch | 47 + .../0002-src-Fix-build-with-gcc-10.patch | 47 + package/matchbox/Config.in | 35 + package/matchbox/matchbox.hash | 6 + package/matchbox/matchbox.mk | 46 + package/matio/Config.in | 8 + package/matio/matio.hash | 4 + package/matio/matio.mk | 21 + package/mawk/Config.in | 6 + package/mawk/mawk.hash | 2 + package/mawk/mawk.mk | 13 + ...-PIC-inline-ASM-compilation-with-GCC.patch | 74 + package/mbedtls/Config.in | 32 + package/mbedtls/mbedtls.hash | 4 + package/mbedtls/mbedtls.mk | 75 + package/mbpfan/Config.in | 9 + package/mbpfan/mbpfan.hash | 3 + package/mbpfan/mbpfan.mk | 29 + package/mbuffer/Config.in | 12 + package/mbuffer/mbuffer.hash | 8 + package/mbuffer/mbuffer.mk | 18 + ...1-CMakeLists.txt-fix-build-without-C.patch | 38 + package/mbw/Config.in | 8 + package/mbw/mbw.hash | 3 + package/mbw/mbw.mk | 12 + package/mc/Config.in | 20 + package/mc/mc.hash | 4 + package/mc/mc.mk | 49 + package/mcelog/Config.in | 9 + package/mcelog/mcelog.hash | 3 + package/mcelog/mcelog.mk | 26 + package/mdadm/Config.in | 12 + package/mdadm/mdadm.hash | 4 + package/mdadm/mdadm.mk | 42 + package/mdevd/Config.in | 9 + package/mdevd/mdevd.hash | 3 + package/mdevd/mdevd.mk | 39 + ...-nowebcam.c-fix-build-without-ffmpeg.patch | 55 + ...FER_PADDING_SIZE-to-determine-paddin.patch | 44 + package/mediastreamer/Config.in | 28 + package/mediastreamer/mediastreamer.hash | 3 + package/mediastreamer/mediastreamer.mk | 179 + .../0001-logger.c-initialize-rport.patch | 55 + .../memcached/0002-check-for-sys-auxv.h.patch | 50 + ...0003-configure.ac-add-disable-werror.patch | 65 + ...c-use-pkg-config-to-retrieve-openssl.patch | 181 + package/memcached/Config.in | 15 + package/memcached/memcached.hash | 6 + package/memcached/memcached.mk | 32 + package/memstat/0001-PATH_MAX.patch | 14 + package/memstat/Config.in | 9 + package/memstat/memstat.hash | 4 + package/memstat/memstat.mk | 24 + package/memtest86/Config.in | 29 + package/memtest86/memtest86.hash | 3 + package/memtest86/memtest86.mk | 18 + package/memtester/Config.in | 7 + package/memtester/memtester.hash | 3 + package/memtester/memtester.mk | 25 + package/memtool/Config.in | 13 + package/memtool/memtool.hash | 3 + package/memtool/memtool.mk | 13 + package/mender-artifact/Config.in.host | 18 + package/mender-artifact/mender-artifact.hash | 95 + package/mender-artifact/mender-artifact.mk | 102 + package/mender-connect/Config.in | 33 + package/mender-connect/S43mender-connect | 53 + package/mender-connect/mender-connect.hash | 34 + package/mender-connect/mender-connect.mk | 59 + package/mender-grubenv/Config.in | 41 + package/mender-grubenv/mender-grubenv.hash | 3 + package/mender-grubenv/mender-grubenv.mk | 86 + package/mender/Config.in | 42 + package/mender/S42mender | 60 + package/mender/artifact_info | 1 + package/mender/device_type | 1 + package/mender/mender-client.service | 24 + package/mender/mender.conf | 10 + package/mender/mender.hash | 45 + package/mender/mender.mk | 114 + package/mender/readme.txt | 154 + package/mender/server.crt | 22 + .../0001-Support-gcc10-compilation.patch | 109 + package/menu-cache/Config.in | 16 + package/menu-cache/menu-cache.hash | 6 + package/menu-cache/menu-cache.mk | 16 + ...s-makes-opengl-an-optional-component.patch | 88 + package/mesa3d-demos/Config.in | 12 + package/mesa3d-demos/mesa3d-demos.hash | 5 + package/mesa3d-demos/mesa3d-demos.mk | 80 + package/mesa3d-headers/Config.in | 9 + package/mesa3d-headers/dri.pc | 10 + package/mesa3d-headers/mesa3d-headers.hash | 1 + package/mesa3d-headers/mesa3d-headers.mk | 77 + ...rt-isinf-for-uclibc-based-toolchains.patch | 30 + ...t-proper-value-for-LIBCLC_INCLUDEDIR.patch | 41 + ...tion-to-disable-optional-neon-suppor.patch | 84 + ...r-Include-stddef.h-to-fix-build-erro.patch | 40 + ...-fix-build-on-32-bit-architectures-u.patch | 43 + ...emove-needless-c99-compat-h-includes.patch | 126 + .../0007-include-drop-c11-compat-h.patch | 100 + package/mesa3d/0008-Fix-uClibc-build.patch | 65 + package/mesa3d/Config.in | 421 + package/mesa3d/mesa3d.hash | 5 + package/mesa3d/mesa3d.mk | 275 + ...l-remove-non-std-C-convention-in-for.patch | 50 + package/meson-tools/Config.in.host | 9 + package/meson-tools/meson-tools.hash | 3 + package/meson-tools/meson-tools.mk | 26 + ...tic-libs-when-default-library-static.patch | 47 + ...dencies-base.py-add-pkg_config_stati.patch | 43 + package/meson/meson.hash | 4 + package/meson/meson.mk | 21 + .../metacity/0001-add-libm-reference.patch | 51 + package/metacity/0002-gconf.patch | 30 + .../0003-mag-add-libm-reference.patch | 45 + package/metacity/Config.in | 18 + package/metacity/Xsession | 6 + package/metacity/metacity.hash | 5 + package/metacity/metacity.mk | 44 + ...onflicting-declaration-of-__time64_t.patch | 27 + package/mfgtools/Config.in.host | 15 + package/mfgtools/mfgtools.hash | 4 + package/mfgtools/mfgtools.mk | 34 + package/mfgtools/readme.txt | 69 + package/mfoc/Config.in | 7 + package/mfoc/mfoc.hash | 3 + package/mfoc/mfoc.mk | 16 + package/mg/Config.in | 18 + package/mg/mg.hash | 4 + package/mg/mg.mk | 19 + package/micropython-lib/Config.in | 8 + package/micropython-lib/micropython-lib.hash | 3 + package/micropython-lib/micropython-lib.mk | 18 + package/micropython/Config.in | 14 + package/micropython/micropython.hash | 3 + package/micropython/micropython.mk | 55 + .../0001-disable-vala-fatal-warnings.patch | 30 + ...ion-to-specify-path-to-g-ir-compiler.patch | 37 + package/midori/Config.in | 52 + package/midori/midori.hash | 3 + package/midori/midori.mk | 35 + package/mii-diag/0001-strchr.patch | 23 + package/mii-diag/Config.in | 7 + package/mii-diag/mii-diag.hash | 4 + package/mii-diag/mii-diag.mk | 33 + ...1-Fix-linking-on-gcc-10.2.0-or-newer.patch | 27 + package/mimic/Config.in | 41 + package/mimic/mimic.hash | 3 + package/mimic/mimic.mk | 29 + package/minetest-game/Config.in | 7 + package/minetest-game/minetest-game.hash | 38 + package/minetest-game/minetest-game.mk | 52 + package/minetest/Config.in | 65 + package/minetest/minetest.hash | 6 + package/minetest/minetest.mk | 100 + .../0001-linux.c-fix-musl-build.patch | 46 + package/mini-snmpd/Config.in | 7 + package/mini-snmpd/mini-snmpd | 2 + package/mini-snmpd/mini-snmpd.hash | 3 + package/mini-snmpd/mini-snmpd.mk | 23 + package/minicom/Config.in | 16 + package/minicom/minicom.hash | 3 + package/minicom/minicom.mk | 22 + package/minidlna/Config.in | 26 + package/minidlna/S60minidlnad | 43 + package/minidlna/minidlna.hash | 6 + package/minidlna/minidlna.mk | 39 + package/minidlna/minidlnad.service | 11 + package/minimodem/Config.in | 14 + package/minimodem/minimodem.hash | 2 + package/minimodem/minimodem.mk | 35 + package/minissdpd/Config.in | 9 + package/minissdpd/S50minissdpd | 47 + package/minissdpd/minissdpd.hash | 3 + package/minissdpd/minissdpd.mk | 39 + package/minissdpd/minissdpd.service | 12 + package/minizip-zlib/Config.in | 7 + package/minizip-zlib/minizip-zlib.hash | 4 + package/minizip-zlib/minizip-zlib.mk | 20 + package/minizip/Config.in | 19 + package/minizip/minizip.hash | 3 + package/minizip/minizip.mk | 74 + package/miraclecast/Config.in | 22 + package/miraclecast/miraclecast.hash | 6 + package/miraclecast/miraclecast.mk | 23 + package/mjpegtools/Config.in | 22 + package/mjpegtools/mjpegtools.hash | 6 + package/mjpegtools/mjpegtools.mk | 63 + package/mjpg-streamer/Config.in | 18 + package/mjpg-streamer/mjpg-streamer.hash | 3 + package/mjpg-streamer/mjpg-streamer.mk | 49 + package/mkpasswd/Config.in.host | 2 + package/mkpasswd/config.h | 95 + package/mkpasswd/mkpasswd.c | 466 + package/mkpasswd/mkpasswd.mk | 28 + package/mkpasswd/utils.c | 96 + package/mkpasswd/utils.h | 56 + package/mkpimage/mkpimage.c | 376 + package/mkpimage/mkpimage.mk | 25 + package/mksh/Config.in | 25 + package/mksh/mksh.hash | 4 + package/mksh/mksh.mk | 32 + ...01-mmc_cmds.c-fix-build-with-gcc-4.9.patch | 37 + package/mmc-utils/Config.in | 10 + package/mmc-utils/mmc-utils.hash | 3 + package/mmc-utils/mmc-utils.mk | 25 + package/moarvm/Config.in | 25 + package/moarvm/moarvm.hash | 3 + package/moarvm/moarvm.mk | 52 + .../mobile-broadband-provider-info/Config.in | 6 + .../mobile-broadband-provider-info.hash | 4 + .../mobile-broadband-provider-info.mk | 15 + package/moby-buildkit/Config.in | 19 + package/moby-buildkit/Config.in.host | 8 + package/moby-buildkit/moby-buildkit.hash | 3 + package/moby-buildkit/moby-buildkit.mk | 28 + package/modem-manager/Config.in | 32 + package/modem-manager/S44modem-manager | 43 + package/modem-manager/modem-manager.hash | 4 + package/modem-manager/modem-manager.mk | 50 + package/modplugtools/Config.in | 14 + package/modplugtools/modplugtools.hash | 3 + package/modplugtools/modplugtools.mk | 20 + package/modsecurity2/Config.in | 13 + package/modsecurity2/modsecurity2.hash | 5 + package/modsecurity2/modsecurity2.mk | 28 + ...fix-build-with-gcc-7-and-fpermissive.patch | 55 + ...c-plan_stats.h-fix-build-with-gcc-11.patch | 44 + package/mongodb/Config.in | 42 + package/mongodb/mongodb.hash | 4 + package/mongodb/mongodb.mk | 104 + package/mongoose/Config.in | 13 + package/mongoose/mongoose.hash | 3 + package/mongoose/mongoose.mk | 38 + package/mongrel2/0001-Do-not-run-tests.patch | 43 + ...-Fix-Makefiles-for-cross-compilation.patch | 78 + .../0003-fix-build-with-gcc-4.8.patch | 60 + package/mongrel2/Config.in | 33 + package/mongrel2/mongrel2.hash | 6 + package/mongrel2/mongrel2.mk | 26 + package/monit/0001-no-force-static.patch | 20 + package/monit/Config.in | 16 + package/monit/monit.hash | 4 + package/monit/monit.mk | 39 + ...-MONO_PROFILE_ENTER_LEAVE-undeclared.patch | 28 + .../0002-Mono-compilation-error-branch.patch | 25 + package/mono-gtksharp3/Config.in | 8 + package/mono-gtksharp3/mono-gtksharp3.hash | 5 + package/mono-gtksharp3/mono-gtksharp3.mk | 17 + ...-system-libatomic_ops-shared-library.patch | 52 + ...0002-Ongoing-work-on-the-cmake-build.patch | 34 + package/mono/Config.in | 29 + package/mono/mono.hash | 5 + package/mono/mono.mk | 66 + package/monolite/monolite.hash | 2 + package/monolite/monolite.mk | 17 + package/mosh/Config.in | 34 + package/mosh/mosh.hash | 5 + package/mosh/mosh.mk | 33 + package/mosquitto/Config.in | 34 + package/mosquitto/S50mosquitto | 35 + package/mosquitto/mosquitto.hash | 8 + package/mosquitto/mosquitto.mk | 131 + package/most/Config.in | 12 + package/most/most.hash | 6 + package/most/most.mk | 25 + ...1-configure.ac-remove-po-Makefile.in.patch | 29 + package/motion/Config.in | 18 + package/motion/S99motion | 37 + package/motion/motion.hash | 3 + package/motion/motion.mk | 72 + package/motion/motion.service | 10 + package/mp4v2/Config.in | 22 + package/mp4v2/mp4v2.hash | 3 + package/mp4v2/mp4v2.mk | 26 + package/mpc/Config.in | 10 + package/mpc/mpc.hash | 3 + package/mpc/mpc.mk | 16 + package/mpd-mpc/Config.in | 7 + package/mpd-mpc/mpd-mpc.hash | 3 + package/mpd-mpc/mpd-mpc.mk | 16 + ...build-add-atomic-dependency-for-spar.patch | 39 + package/mpd/Config.in | 443 + package/mpd/S95mpd | 33 + package/mpd/mpd.conf | 32 + package/mpd/mpd.hash | 3 + package/mpd/mpd.mk | 353 + package/mpdecimal/Config.in | 10 + package/mpdecimal/mpdecimal.hash | 4 + package/mpdecimal/mpdecimal.mk | 33 + package/mpfr/Config.in | 8 + package/mpfr/mpfr.hash | 5 + package/mpfr/mpfr.mk | 19 + package/mpg123/Config.in | 8 + package/mpg123/mpg123.hash | 7 + package/mpg123/mpg123.mk | 84 + ...iv.asm-workaround-binutils-bug-14887.patch | 40 + package/mpir/Config.in | 8 + package/mpir/mpir.hash | 3 + package/mpir/mpir.mk | 39 + package/mpv/0001-fix-powerpc64-altivec.patch | 32 + package/mpv/Config.in | 43 + package/mpv/mpv.hash | 3 + package/mpv/mpv.mk | 224 + ...de-Declare-gVERSION-global-as-extern.patch | 30 + package/mraa/Config.in | 23 + package/mraa/mraa.hash | 3 + package/mraa/mraa.mk | 44 + package/mrouted/Config.in | 13 + package/mrouted/S41mrouted | 62 + package/mrouted/mrouted.hash | 5 + package/mrouted/mrouted.mk | 32 + package/mrp/Config.in | 18 + package/mrp/S65mrp | 55 + package/mrp/mrp.hash | 3 + package/mrp/mrp.mk | 23 + package/mrp/mrp.service | 10 + package/msgpack/Config.in | 15 + package/msgpack/msgpack.hash | 4 + package/msgpack/msgpack.mk | 18 + package/msmtp/Config.in | 8 + package/msmtp/msmtp.hash | 7 + package/msmtp/msmtp.mk | 54 + package/msr-tools/Config.in | 14 + package/msr-tools/msr-tools.hash | 3 + package/msr-tools/msr-tools.mk | 21 + ...pport-different-versions-of-pidof-13.patch | 48 + package/mstpd/Config.in | 9 + package/mstpd/mstpd.hash | 5 + package/mstpd/mstpd.mk | 17 + package/mtd/Config.in | 225 + package/mtd/Config.in.host | 6 + package/mtd/mtd.hash | 4 + package/mtd/mtd.mk | 154 + package/mtdev/Config.in | 7 + package/mtdev/mtdev.hash | 3 + package/mtdev/mtdev.mk | 15 + package/mtools/Config.in | 17 + package/mtools/Config.in.host | 9 + package/mtools/mtools.hash | 5 + package/mtools/mtools.mk | 35 + package/mtr/Config.in | 8 + package/mtr/mtr.hash | 3 + package/mtr/mtr.mk | 38 + package/multicat/Config.in | 12 + package/multicat/multicat.hash | 6 + package/multicat/multicat.mk | 27 + ...ble-systemd-if-ENABLE_SYSTEMD-is-def.patch | 35 + package/multipath-tools/Config.in | 32 + package/multipath-tools/S60multipathd | 47 + package/multipath-tools/multipath-tools.hash | 7 + package/multipath-tools/multipath-tools.mk | 51 + ...-Makefile-add-an-install_libs-target.patch | 41 + ...-free-of-object-during-linearization.patch | 52 + ...x-key-size-in-cached-color-converter.patch | 119 + ...file-compile-hexdump.exe-with-HOSTCC.patch | 40 + package/mupdf/Config.in | 24 + package/mupdf/mupdf.hash | 8 + package/mupdf/mupdf.mk | 79 + package/murata-cyw-fw/Config.in | 97 + package/murata-cyw-fw/murata-cyw-fw.hash | 5 + package/murata-cyw-fw/murata-cyw-fw.mk | 98 + package/musepack/0001-shared.patch | 24 + ...andard-CMake-flag-to-drive-the-share.patch | 43 + ...-include-fpu-control-with-glibc-only.patch | 26 + .../musepack/0004-missing-sys-select.patch | 21 + .../musepack/0005-fix-build-with-gcc-10.patch | 30 + package/musepack/Config.in | 12 + package/musepack/musepack.hash | 7 + package/musepack/musepack.mk | 16 + package/musl-compat-headers/Config.in | 2 + package/musl-compat-headers/cdefs.h | 51 + .../musl-compat-headers.hash | 2 + .../musl-compat-headers.mk | 34 + package/musl-fts/Config.in | 9 + package/musl-fts/musl-fts.hash | 3 + package/musl-fts/musl-fts.mk | 16 + .../musl/0001-avoid-kernel-if_ether.h.patch | 30 + ...e-scheduler-functions-Linux-compatib.patch | 76 + ...rameter-name-in-internal-netlink.h-R.patch | 33 + package/musl/Config.in | 40 + package/musl/musl.hash | 4 + package/musl/musl.mk | 71 + package/mutt/Config.in | 27 + package/mutt/mutt.hash | 3 + package/mutt/mutt.mk | 125 + package/mxml/Config.in | 6 + package/mxml/mxml.hash | 4 + package/mxml/mxml.mk | 18 + package/mxsldr/Config.in.host | 14 + package/mxsldr/mxsldr.mk | 22 + package/mysql/Config.in | 84 + package/mysql/mysql.mk | 7 + ...andom.c-fix-build-with-uclibc-1.0.35.patch | 46 + package/nano/Config.in | 24 + package/nano/nano.hash | 5 + package/nano/nano.mk | 41 + .../nanocom/0001-fix-build-with-gcc-10.patch | 36 + package/nanocom/Config.in | 12 + package/nanocom/nanocom.hash | 3 + package/nanocom/nanocom.mk | 22 + package/nanomsg/Config.in | 23 + package/nanomsg/nanomsg.hash | 5 + package/nanomsg/nanomsg.mk | 24 + package/nasm/nasm.hash | 3 + package/nasm/nasm.mk | 15 + package/nbd/Config.in | 35 + package/nbd/nbd.hash | 7 + package/nbd/nbd.mk | 39 + package/ncdu/Config.in | 8 + package/ncdu/ncdu.hash | 5 + package/ncdu/ncdu.mk | 15 + package/ncftp/0001-fix-gcc-10.patch | 24 + package/ncftp/Config.in | 34 + package/ncftp/ncftp.hash | 3 + package/ncftp/ncftp.mk | 56 + ...uild-add-atomic-dependency-for-sparc.patch | 43 + package/ncmpc/Config.in | 21 + package/ncmpc/ncmpc.hash | 5 + package/ncmpc/ncmpc.mk | 40 + package/ncurses/0001-gcc-5.x-MKlib_gen.patch | 44 + package/ncurses/Config.in | 34 + package/ncurses/ncurses.hash | 39 + package/ncurses/ncurses.mk | 202 + package/ndisc6/Config.in | 52 + package/ndisc6/ndisc6.hash | 4 + package/ndisc6/ndisc6.mk | 35 + ...on-t-hard-code-thumb-code-generation.patch | 30 + package/ne10/0002-fix-build-without-C.patch | 55 + package/ne10/Config.in | 17 + package/ne10/ne10.hash | 3 + package/ne10/ne10.mk | 49 + package/neard/Config.in | 30 + package/neard/S53neard | 29 + package/neard/neard.hash | 3 + package/neard/neard.mk | 42 + ...-lib-neardal.h-fix-build-with-gcc-10.patch | 35 + package/neardal/Config.in | 26 + package/neardal/neardal.hash | 3 + package/neardal/neardal.mk | 24 + package/neofetch/Config.in | 10 + package/neofetch/neofetch.hash | 2 + package/neofetch/neofetch.mk | 17 + ...se-TS_SSL-feature-with-OpenSSL-1.1.0.patch | 76 + .../0002-configure.ac-fix-autoreconf.patch | 28 + package/neon/Config.in | 43 + package/neon/neon.hash | 6 + package/neon/neon.mk | 54 + package/nerdctl/Config.in | 18 + package/nerdctl/nerdctl.hash | 3 + package/nerdctl/nerdctl.mk | 20 + package/net-tools/Config.in | 10 + package/net-tools/net-tools.hash | 6 + package/net-tools/net-tools.mk | 47 + ...ng-of-LD_LIBRARY_FLAGS-shlibpath_var.patch | 48 + ..._compat.h-fix-build-with-libressl-2..patch | 43 + package/netatalk/Config.in | 23 + package/netatalk/S50netatalk | 33 + package/netatalk/netatalk.hash | 7 + package/netatalk/netatalk.mk | 61 + package/netcalc/Config.in | 8 + package/netcalc/netcalc.hash | 5 + package/netcalc/netcalc.mk | 13 + package/netcat-openbsd/Config.in | 30 + package/netcat-openbsd/netcat-openbsd.hash | 6 + package/netcat-openbsd/netcat-openbsd.mk | 31 + package/netcat/0001-signed-bit-counting.patch | 30 + package/netcat/Config.in | 15 + package/netcat/netcat.hash | 3 + package/netcat/netcat.mk | 13 + package/netdata/Config.in | 41 + package/netdata/S60netdata | 55 + package/netdata/netdata.hash | 5 + package/netdata/netdata.mk | 100 + package/netifrc/Config.in | 12 + package/netifrc/netifrc.hash | 3 + package/netifrc/netifrc.mk | 58 + ...X-use-DESTDIR-when-executing-scripts.patch | 47 + package/netopeer2/Config.in | 36 + package/netopeer2/S52netopeer2 | 50 + package/netopeer2/netopeer2.hash | 3 + package/netopeer2/netopeer2.mk | 46 + ...st_omni.c-fix-compilation-with-GCC10.patch | 42 + package/netperf/Config.in | 6 + package/netperf/netperf.hash | 3 + package/netperf/netperf.mk | 25 + package/netplug/0001-makefile-flags.patch | 21 + .../0002-add-missing-time-include.patch | 20 + package/netplug/0003-remove-assert-fail.patch | 51 + package/netplug/Config.in | 8 + package/netplug/S29netplug | 70 + package/netplug/netplug-script | 57 + package/netplug/netplug.hash | 3 + package/netplug/netplug.mk | 31 + package/netplug/netplug.service | 10 + ...ibpcap-dependencies-using-pkg-config.patch | 51 + package/netsniff-ng/Config.in | 34 + package/netsniff-ng/netsniff-ng.hash | 5 + package/netsniff-ng/netsniff-ng.mk | 72 + ...figure-static-linking-Fix-SSL-checks.patch | 146 + .../0002-configure-Fix-lcrypto-lz-test.patch | 44 + ..._CHECK_FUNCS-EVP_sha224-EVP_sha384-..patch | 39 + ..._CHECK_FUNCS-TLS_method-TLSv1_method.patch | 39 + package/netsnmp/Config.in | 61 + package/netsnmp/S59snmpd | 104 + package/netsnmp/netsnmp.hash | 7 + package/netsnmp/netsnmp.mk | 110 + package/netstat-nat/Config.in | 6 + package/netstat-nat/netstat-nat.hash | 3 + package/netstat-nat/netstat-nat.mk | 12 + .../netsurf-buildsystem.hash | 3 + .../netsurf-buildsystem.mk | 20 + .../0001-avoid-system-perl-dependencies.patch | 29 + .../0002-do-not-cross-compile-nsgenbind.patch | 32 + .../0003-fix-compilation-without-curl.patch | 27 + ...nal-font-generated-source-for-GCC-10.patch | 37 + package/netsurf/Config.in | 56 + package/netsurf/netsurf.hash | 3 + package/netsurf/netsurf.mk | 127 + .../0001-disable-testsuite-examples.patch | 20 + package/nettle/Config.in | 10 + package/nettle/nettle.hash | 6 + package/nettle/nettle.mk | 30 + package/network-manager-openvpn/Config.in | 8 + .../network-manager-openvpn.hash | 4 + .../network-manager-openvpn.mk | 22 + package/network-manager/Config.in | 62 + package/network-manager/S45network-manager | 41 + package/network-manager/network-manager.hash | 6 + package/network-manager/network-manager.mk | 162 + package/networkd-dispatcher/Config.in | 27 + .../networkd-dispatcher.hash | 3 + .../networkd-dispatcher.mk | 25 + package/newt/Config.in | 16 + package/newt/newt.hash | 5 + package/newt/newt.mk | 18 + package/nfacct/Config.in | 8 + package/nfacct/nfacct.hash | 5 + package/nfacct/nfacct.mk | 15 + ...ead-fix-linking-while-static-linking.patch | 34 + package/nfs-utils/Config.in | 65 + package/nfs-utils/S60nfs | 83 + package/nfs-utils/nfs-utils.hash | 4 + package/nfs-utils/nfs-utils.mk | 128 + package/nfs-utils/nfs-utils_env.sh | 3 + package/nfs-utils/nfs-utils_tmpfiles.conf | 4 + package/nftables/Config.in | 17 + package/nftables/nftables.hash | 3 + package/nftables/nftables.mk | 53 + package/nghttp2/Config.in | 7 + package/nghttp2/nghttp2.hash | 3 + package/nghttp2/nghttp2.mk | 23 + package/nginx-dav-ext/Config.in | 8 + package/nginx-dav-ext/nginx-dav-ext.hash | 3 + package/nginx-dav-ext/nginx-dav-ext.mk | 13 + .../0001-config-use-pkg-config.patch | 29 + package/nginx-modsecurity/Config.in | 21 + .../nginx-modsecurity/nginx-modsecurity.hash | 4 + .../nginx-modsecurity/nginx-modsecurity.mk | 14 + ...runtime.c-fix-build-without-x_forwar.patch | 63 + package/nginx-naxsi/Config.in | 29 + package/nginx-naxsi/nginx-naxsi.hash | 4 + package/nginx-naxsi/nginx-naxsi.mk | 12 + package/nginx-upload/Config.in | 9 + package/nginx-upload/nginx-upload.hash | 3 + package/nginx-upload/nginx-upload.mk | 13 + ...-rework-autotest-to-be-cross-compila.patch | 89 + ...-mechanism-allowing-to-force-feature.patch | 135 + ...ture_run_force_result-for-each-featu.patch | 207 + ...auto-lib-libxslt-conf-use-pkg-config.patch | 34 + ...ake-sys_nerr-guessing-cross-friendly.patch | 135 + ...auto-lib-openssl-conf-use-pkg-config.patch | 251 + ...7-auto-lib-libgd-conf-use-pkg-config.patch | 36 + ...linux_config.h-only-include-dlfcn.h-.patch | 33 + ...to-os-linux-fix-build-with-libxcrypt.patch | 38 + ...-of-endianness-for-cross-compilation.patch | 118 + package/nginx/Config.in | 462 + package/nginx/S50nginx | 31 + package/nginx/nginx.hash | 4 + package/nginx/nginx.logrotate | 9 + package/nginx/nginx.mk | 327 + package/nginx/nginx.service | 17 + package/ngircd/Config.in | 7 + package/ngircd/ngircd.hash | 3 + package/ngircd/ngircd.mk | 41 + ...nfigure-in-when-testing-for-use_pcre.patch | 25 + ...heck-for-libnet_init-in-configure-in.patch | 28 + package/ngrep/0003-fix-disable-tcpkill.patch | 39 + package/ngrep/Config.in | 8 + package/ngrep/ngrep.hash | 3 + package/ngrep/ngrep.mk | 34 + ...0001-nilfs_cleanerd-link-dynamically.patch | 32 + package/nilfs-utils/Config.in | 16 + package/nilfs-utils/nilfs-utils.hash | 3 + package/nilfs-utils/nilfs-utils.mk | 26 + package/ninja/ninja.hash | 3 + package/ninja/ninja.mk | 17 + package/nload/Config.in | 15 + package/nload/nload.hash | 5 + package/nload/nload.mk | 13 + .../nmap/0001-libdnet-wrapper-configure.patch | 11 + package/nmap/Config.in | 50 + package/nmap/nmap.hash | 5 + package/nmap/nmap.mk | 87 + package/nmon/Config.in | 11 + package/nmon/nmon.hash | 5 + package/nmon/nmon.mk | 28 + .../0001-add-qemu-wrapper-support.patch | 88 + ...heck-if-uclibc-has-backtrace-support.patch | 26 + package/nodejs/Config.in | 83 + package/nodejs/Config.in.host | 18 + package/nodejs/nodejs.hash | 5 + package/nodejs/nodejs.mk | 279 + package/nodejs/v8-qemu-wrapper.in | 9 + package/nodm/Config.in | 23 + package/nodm/S90nodm | 49 + package/nodm/nodm.hash | 3 + package/nodm/nodm.mk | 34 + package/nodm/nodm.pam | 14 + package/noip/Config.in | 7 + package/noip/noip.hash | 3 + package/noip/noip.mk | 26 + ...01-protolib-drop-linux-version-check.patch | 38 + ...ction-call-for-Python3-compatibility.patch | 29 + ...ixed-tabs-spaces-in-protolib-wscript.patch | 41 + package/norm/Config.in | 15 + package/norm/norm.hash | 3 + package/norm/norm.mk | 24 + package/nss-mdns/Config.in | 19 + package/nss-mdns/nss-mdns.hash | 3 + package/nss-mdns/nss-mdns.mk | 22 + package/nss-myhostname/Config.in | 12 + package/nss-myhostname/nss-myhostname.hash | 3 + package/nss-myhostname/nss-myhostname.mk | 20 + package/nss-pam-ldapd/Config.in | 25 + package/nss-pam-ldapd/S45nslcd | 25 + package/nss-pam-ldapd/nslcd.service | 11 + package/nss-pam-ldapd/nss-pam-ldapd.hash | 5 + package/nss-pam-ldapd/nss-pam-ldapd.mk | 43 + package/ntfs-3g/Config.in | 36 + package/ntfs-3g/ntfs-3g.hash | 4 + package/ntfs-3g/ntfs-3g.mk | 36 + package/ntp/0001-nano.patch | 28 + package/ntp/0002-ntp-syscalls-fallback.patch | 27 + package/ntp/0003-override-shell.patch | 20 + ...o-not-use-PTHREAD_STACK_MIN-on-glibc.patch | 33 + package/ntp/Config.in | 101 + package/ntp/S48sntp | 55 + package/ntp/S49ntp.in | 56 + package/ntp/ntp.hash | 5 + package/ntp/ntp.mk | 136 + package/ntp/ntpd.etc.conf | 10 + package/ntp/ntpd.service.in | 15 + ...5-ofmt5-jfmt6-ofmt6-related-compile-.patch | 90 + ...hecks-for-bsd-string.h-fixes-host-co.patch | 73 + .../ntpsec/0003-fix-build-with-libressl.patch | 80 + package/ntpsec/Config.in | 44 + package/ntpsec/S49ntpd | 58 + package/ntpsec/ntpd.etc.conf | 33 + package/ntpsec/ntpsec.hash | 4 + package/ntpsec/ntpsec.mk | 75 + ...0001-Do-not-stringify-SYMVER-symbols.patch | 25 + .../0002-link-with-latomic-if-needed.patch | 52 + package/numactl/Config.in | 10 + package/numactl/numactl.hash | 3 + package/numactl/numactl.mk | 15 + package/nut/Config.in | 27 + package/nut/nut.hash | 5 + package/nut/nut.mk | 109 + package/nuttcp/0001-susv3-legacy.patch | 264 + package/nuttcp/Config.in | 7 + package/nuttcp/nuttcp.hash | 4 + package/nuttcp/nuttcp.mk | 23 + package/nvidia-driver/0001-use-LDFLAGS.patch | 48 + package/nvidia-driver/Config.in | 93 + package/nvidia-driver/egl.pc | 10 + package/nvidia-driver/gl.pc | 11 + package/nvidia-driver/nvidia-driver.hash | 4 + package/nvidia-driver/nvidia-driver.mk | 212 + package/nvidia-modprobe/Config.in | 8 + package/nvidia-modprobe/nvidia-modprobe.hash | 3 + package/nvidia-modprobe/nvidia-modprobe.mk | 22 + package/nvme/Config.in | 7 + package/nvme/nvme.hash | 3 + package/nvme/nvme.mk | 40 + package/obsidian-cursors/Config.in | 6 + .../obsidian-cursors/obsidian-cursors.hash | 2 + package/obsidian-cursors/obsidian-cursors.mk | 18 + package/ocf-linux/ocf-linux.hash | 2 + package/ocf-linux/ocf-linux.mk | 26 + package/ocrad/Config.in | 15 + package/ocrad/ocrad.hash | 3 + package/ocrad/ocrad.mk | 40 + ...-BLAS-library-integer-size-detection.patch | 40 + package/octave/Config.in | 39 + package/octave/octave.hash | 3 + package/octave/octave.mk | 28 + ...gcc.hxx-appears-to-be-no-longer-nece.patch | 30 + .../odb/0002-Remove-gratuitous-classes.patch | 444 + ...rk-to-make-ODB-compatible-with-GCC-6.patch | 312 + ...e-compilable-with-GCC-6-in-C-14-mode.patch | 48 + ...-in-GCC-6-input_location-translation.patch | 34 + .../odb/0006-Adapt-to-changes-in-GCC-8.patch | 228 + ...itch-to-C-11-get-rid-of-auto_ptr-use.patch | 351 + ...tion-to-be-compatible-with-previous-.patch | 33 + ...espace-aliases-when-parsing-GCC-tree.patch | 30 + .../0010-Add-initial-support-for-GCC-9.patch | 233 + .../0011-Adjust-to-changes-in-GCC-10.patch | 97 + .../0012-Adjust-to-changes-in-GCC-11.patch | 50 + ...kup-ambiguity-causing-error-with-GCC.patch | 68 + package/odb/Config.in.host | 9 + package/odb/odb.hash | 6 + package/odb/odb.mk | 27 + package/odhcp6c/Config.in | 8 + package/odhcp6c/odhcp6c.hash | 3 + package/odhcp6c/odhcp6c.mk | 27 + package/odhcploc/Config.in | 8 + package/odhcploc/odhcploc.hash | 3 + package/odhcploc/odhcploc.mk | 20 + package/odroidc2-firmware/Config.in | 11 + .../odroidc2-firmware/odroidc2-firmware.hash | 2 + .../odroidc2-firmware/odroidc2-firmware.mk | 31 + package/ofono/0001-uclibc-backtrace.patch | 49 + package/ofono/0002-fix-musl-compile.patch | 37 + package/ofono/Config.in | 26 + package/ofono/S46ofono | 22 + package/ofono/ofono.hash | 4 + package/ofono/ofono.mk | 48 + package/ogre/Config.in | 45 + package/ogre/ogre.hash | 3 + package/ogre/ogre.mk | 57 + ...-ola-fix-compilation-with-musl-1-2-3.patch | 35 + package/ola/Config.in | 193 + package/ola/ola.hash | 8 + package/ola/ola.mk | 232 + ...1-olsrd-migrate-to-using-bison-3.7.1.patch | 48 + ...-lib-pud-Makefile-fix-parallel-build.patch | 33 + ...ud-adapt-to-API-changes-in-gpsd-3-20.patch | 105 + ...-adapt-gpsdclient.c-to-new-gpsd-3.21.patch | 35 + ...client.c-drop-handling-of-gpsdata-fi.patch | 49 + package/olsr/Config.in | 24 + package/olsr/S50olsr | 23 + package/olsr/olsr.hash | 4 + package/olsr/olsr.mk | 60 + package/olsr/olsr.service | 10 + package/omap-u-boot-utils/Config.in.host | 9 + .../omap-u-boot-utils/omap-u-boot-utils.hash | 3 + .../omap-u-boot-utils/omap-u-boot-utils.mk | 22 + package/omniorb/Config.in | 28 + package/omniorb/omniorb.hash | 8 + package/omniorb/omniorb.mk | 71 + ...file-to-be-compatible-with-buildroot.patch | 39 + package/omxplayer/Config.in | 36 + package/omxplayer/omxplayer.hash | 6 + package/omxplayer/omxplayer.mk | 39 + package/on2-8170-libs/Config.in | 15 + package/on2-8170-libs/on2-8170-libs.hash | 2 + package/on2-8170-libs/on2-8170-libs.mk | 26 + package/on2-8170-modules/Config.in | 13 + .../on2-8170-modules/on2-8170-modules.hash | 2 + package/on2-8170-modules/on2-8170-modules.mk | 14 + package/oniguruma/Config.in | 9 + package/oniguruma/oniguruma.hash | 4 + package/oniguruma/oniguruma.mk | 16 + package/open-lldp/Config.in | 16 + package/open-lldp/open-lldp.hash | 3 + package/open-lldp/open-lldp.mk | 21 + ...NER-and-GROUPS-parameters-to-install.patch | 277 + ...0002-plc-plc.h-fix-build-with-gcc-10.patch | 37 + package/open-plc-utils/Config.in | 7 + package/open-plc-utils/open-plc-utils.hash | 3 + package/open-plc-utils/open-plc-utils.mk | 33 + package/open2300/0001-fix-makefile.patch | 52 + package/open2300/Config.in | 7 + package/open2300/open2300.hash | 4 + package/open2300/open2300.mk | 37 + package/open62541/Config.in | 117 + package/open62541/open62541.hash | 3 + package/open62541/open62541.mk | 99 + package/openal/Config.in | 34 + package/openal/openal.hash | 3 + package/openal/openal.mk | 52 + ...don-t-specify-optimization-level-bui.patch | 39 + package/openblas/Config.in | 97 + package/openblas/openblas.hash | 3 + package/openblas/openblas.mk | 80 + package/openbox/Config.in | 29 + package/openbox/openbox.hash | 3 + package/openbox/openbox.mk | 61 + package/opencl-clhpp/Config.in | 14 + package/opencl-clhpp/opencl-clhpp.hash | 3 + package/opencl-clhpp/opencl-clhpp.mk | 29 + package/opencore-amr/Config.in | 12 + package/opencore-amr/opencore-amr.hash | 6 + package/opencore-amr/opencore-amr.mk | 13 + package/opencv3/Config.in | 341 + package/opencv3/opencv3.hash | 3 + package/opencv3/opencv3.mk | 376 + package/opencv4/Config.in | 387 + package/opencv4/opencv4.hash | 3 + package/opencv4/opencv4.mk | 385 + package/openfpgaloader/Config.in | 32 + package/openfpgaloader/openfpgaloader.hash | 3 + package/openfpgaloader/openfpgaloader.mk | 27 + package/opengl/Config.in | 7 + package/opengl/libegl/Config.in | 10 + package/opengl/libegl/libegl.mk | 7 + package/opengl/libgbm/Config.in | 25 + package/opengl/libgbm/libgbm.mk | 9 + package/opengl/libgl/Config.in | 6 + package/opengl/libgl/libgl.mk | 7 + package/opengl/libgles/Config.in | 6 + package/opengl/libgles/libgles.mk | 7 + package/opengl/libopencl/Config.in | 6 + package/opengl/libopencl/libopencl.mk | 7 + package/opengl/libopenmax/Config.in | 6 + package/opengl/libopenmax/libopenmax.mk | 7 + package/opengl/libopenvg/Config.in | 6 + package/opengl/libopenvg/libopenvg.mk | 7 + package/opengl/opengl.mk | 1 + ...01-Avoid-searching-host-library-path.patch | 53 + ...igure.ac-add-without-execinfo-option.patch | 55 + package/openipmi/Config.in | 19 + package/openipmi/openipmi.hash | 8 + package/openipmi/openipmi.mk | 43 + package/openjdk-bin/openjdk-bin.hash | 11 + package/openjdk-bin/openjdk-bin.mk | 45 + ...ARCv2-ISA-processors-support-to-Zero.patch | 109 + package/openjdk/Config.in | 178 + package/openjdk/openjdk.hash | 4 + package/openjdk/openjdk.mk | 160 + package/openjpeg/Config.in | 7 + package/openjpeg/openjpeg.hash | 3 + package/openjpeg/openjpeg.mk | 25 + package/openlayers/Config.in | 11 + package/openlayers/openlayers.hash | 2 + package/openlayers/openlayers.mk | 24 + package/openldap/0001-fix_cross_strip.patch | 74 + package/openldap/0002-fix-bignum.patch | 38 + package/openldap/0003-disable-docs.patch | 23 + ...fix-libtool-static-behavior-to-match.patch | 56 + package/openldap/Config.in | 27 + package/openldap/openldap.hash | 7 + package/openldap/openldap.mk | 74 + package/openmpi/Config.in | 20 + package/openmpi/openmpi-mips32-fortran.cache | 52 + package/openmpi/openmpi-mips64-fortran.cache | 61 + package/openmpi/openmpi.hash | 6 + package/openmpi/openmpi.mk | 48 + package/openntpd/Config.in | 20 + package/openntpd/S49ntp | 24 + package/openntpd/ntpd.service | 15 + package/openntpd/openntpd.hash | 5 + package/openntpd/openntpd.mk | 40 + package/openobex/Config.in | 7 + package/openobex/openobex.hash | 6 + package/openobex/openobex.mk | 31 + ...01-configure-enable-build-on-uclinux.patch | 26 + ...ac-fix-autoreconf-with-autoconf-2.70.patch | 32 + ...GV-with-libusb-v1.0.24-33-g32a2206-1.patch | 89 + package/openocd/Config.in | 253 + package/openocd/Config.in.host | 10 + package/openocd/openocd.hash | 3 + package/openocd/openocd.mk | 122 + .../0001-Rename-openpgm-5.2.pc.in.patch | 57 + ...hecksum.c-fix-build-with-32-bits-MMX.patch | 41 + package/openpgm/Config.in | 20 + package/openpgm/openpgm.hash | 3 + package/openpgm/openpgm.mk | 20 + ...-stack-libraries-to-lib-subdirectory.patch | 167 + ...002-cmake-install-oplk-headers-files.patch | 32 + .../0003-Add-top-level-CMakeLists.txt.patch | 201 + package/openpowerlink/Config.in | 127 + package/openpowerlink/openpowerlink.hash | 6 + package/openpowerlink/openpowerlink.mk | 153 + ...tl.in-add-support-for-busybox-sysctl.patch | 66 + ....in-change-run-lock-from-root-uucp-t.patch | 36 + ...ty-replace-sbin-agetty-by-sbin-getty.patch | 33 + ...getty-start-agetty-after-all-sevices.patch | 29 + ...-add-agetty.tty-1-6-if-MKSYSVINIT-ye.patch | 34 + ...lso-create-run-lock-subsys-directory.patch | 29 + package/openrc/Config.in | 29 + package/openrc/openrc.hash | 3 + package/openrc/openrc.mk | 93 + package/openrc/sysv-rcs | 27 + package/openresolv/Config.in | 8 + package/openresolv/openresolv.hash | 3 + package/openresolv/openresolv.mk | 25 + .../0001-Fix-maybe-uninitialized-errors.patch | 82 + ...02-added-compatibility-with-LibreSSL.patch | 173 + .../0003-Fix-build-with-libressl-3.5.0.patch | 47 + package/opensc/Config.in | 18 + package/opensc/opensc.hash | 5 + package/opensc/opensc.mk | 16 + package/openssh/Config.in | 42 + package/openssh/S50sshd | 47 + package/openssh/openssh.hash | 4 + package/openssh/openssh.mk | 135 + package/openssh/sshd-sysusers.conf | 1 + package/openssh/sshd.service | 11 + package/openssl/Config.in | 67 + package/openssl/openssl.mk | 8 + ...constants.c-workaround-missing-ns_t_.patch | 29 + package/openswan/Config.in | 14 + package/openswan/openswan.hash | 4 + package/openswan/openswan.mk | 43 + package/opentracing-cpp/Config.in | 18 + package/opentracing-cpp/opentracing-cpp.hash | 3 + package/opentracing-cpp/opentracing-cpp.mk | 28 + package/opentyrian-data/Config.in | 9 + package/opentyrian-data/opentyrian-data.hash | 2 + package/opentyrian-data/opentyrian-data.mk | 23 + ...ed-to-be-exposed-from-opl-h-to-opl-c.patch | 365 + package/opentyrian/Config.in | 24 + package/opentyrian/opentyrian.hash | 3 + package/opentyrian/opentyrian.mk | 35 + .../openvmtools/0001-no_cflags_werror.patch | 18 + .../0002-dont-force-cppflags.patch | 21 + ..._poll-h-to-fix-build-failure-on-musl.patch | 813 ++ ...ns-about-glibc-being-only-libc-imple.patch | 27 + ...e-configure-test-for-struct-timespec.patch | 48 + ...finition-of-ALLPERMS-and-ACCESSPERMS.patch | 61 + ...-test-for-feature-instead-of-platfor.patch | 151 + ...onfigure-test-for-sys-stat.h-include.patch | 28 + ...hgfs-fuse-fsutils.h-fix-build-on-mus.patch | 41 + ...FromNtTimeNsec-aware-of-64-bit-time_.patch | 80 + package/openvmtools/Config.in | 64 + package/openvmtools/S10vmtoolsd | 56 + package/openvmtools/openvmtools.hash | 3 + package/openvmtools/openvmtools.mk | 83 + package/openvmtools/shutdown | 7 + package/openvmtools/vmtoolsd.service | 15 + package/openvpn/Config.in | 39 + package/openvpn/S60openvpn | 99 + package/openvpn/openvpn.hash | 3 + package/openvpn/openvpn.mk | 78 + package/openzwave/Config.in | 18 + package/openzwave/openzwave.hash | 7 + package/openzwave/openzwave.mk | 62 + package/opkg-utils/Config.in | 28 + package/opkg-utils/Config.in.host | 6 + package/opkg-utils/opkg-utils.hash | 3 + package/opkg-utils/opkg-utils.mk | 29 + package/opkg/Config.in | 33 + package/opkg/opkg.hash | 4 + package/opkg/opkg.mk | 32 + package/oprofile/0001-musl.patch | 48 + package/oprofile/Config.in | 51 + package/oprofile/oprofile.hash | 6 + package/oprofile/oprofile.mk | 23 + package/optee-benchmark/Config.in | 20 + package/optee-benchmark/optee-benchmark.hash | 4 + package/optee-benchmark/optee-benchmark.mk | 14 + package/optee-client/Config.in | 44 + package/optee-client/S30optee | 49 + package/optee-client/optee-client.hash | 4 + package/optee-client/optee-client.mk | 34 + package/optee-examples/Config.in | 26 + package/optee-examples/optee-examples.hash | 4 + package/optee-examples/optee-examples.mk | 31 + package/optee-test/Config.in | 31 + package/optee-test/optee-test.hash | 4 + package/optee-test/optee-test.mk | 37 + package/opus-tools/Config.in | 12 + package/opus-tools/opus-tools.hash | 5 + package/opus-tools/opus-tools.mk | 30 + package/opus/Config.in | 26 + package/opus/opus.hash | 5 + package/opus/opus.mk | 36 + package/opusfile/Config.in | 9 + package/opusfile/opusfile.hash | 5 + package/opusfile/opusfile.mk | 25 + .../oracle-mysql/0000-ac_cache_check.patch | 156 + .../0001-configure-ps-cache-check.patch | 39 + .../0002-use-new-readline-iface.patch | 21 + .../0003-ac_stack_direction-is-unset.patch | 15 + .../0004-Fix-gen_lex_hash-execution.patch | 32 + ...05-bison_3_breaks_mysql_server_build.patch | 3310 +++++ .../0006-no-force-static-build.patch | 18 + ...0007-dont-install-in-mysql-directory.patch | 182 + .../0008-fix-type-conversion.patch | 22 + package/oracle-mysql/0009-gcc7.patch | 45 + .../0010-fix-build-without-zlib.patch | 52 + ...-alloca.m4-Remove-obsolete-Cray-supp.patch | 51 + package/oracle-mysql/S97mysqld | 39 + package/oracle-mysql/mysqld.service | 13 + package/oracle-mysql/oracle-mysql.hash | 6 + package/oracle-mysql/oracle-mysql.mk | 138 + package/orbit/Config.in | 15 + package/orbit/orbit.hash | 4 + package/orbit/orbit.mk | 14 + ...powerpc.c-fix-build-with-kernel-4.11.patch | 70 + package/orc/Config.in | 11 + package/orc/orc.hash | 5 + package/orc/orc.mk | 23 + package/ortp/Config.in | 16 + package/ortp/ortp.hash | 3 + package/ortp/ortp.mk | 25 + package/osm2pgsql/Config.in | 31 + package/osm2pgsql/osm2pgsql.hash | 3 + package/osm2pgsql/osm2pgsql.mk | 40 + package/owfs/Config.in | 16 + package/owfs/S55owserver | 31 + package/owfs/S60owfs | 33 + package/owfs/owfs.hash | 4 + package/owfs/owfs.mk | 86 + .../owl-linux/0001-fix-for-linux-3.3.x.patch | 21 + package/owl-linux/Config.in | 20 + package/owl-linux/owl-linux.hash | 3 + package/owl-linux/owl-linux.mk | 14 + package/p11-kit/Config.in | 15 + package/p11-kit/p11-kit.hash | 4 + package/p11-kit/p11-kit.mk | 41 + package/p7zip/Config.in | 39 + package/p7zip/p7zip.hash | 3 + package/p7zip/p7zip.mk | 34 + package/p910nd/Config.in | 9 + package/p910nd/p910nd.hash | 3 + package/p910nd/p910nd.mk | 21 + package/paho-mqtt-c/Config.in | 10 + package/paho-mqtt-c/paho-mqtt-c.hash | 5 + package/paho-mqtt-c/paho-mqtt-c.mk | 40 + package/paho-mqtt-cpp/Config.in | 17 + package/paho-mqtt-cpp/paho-mqtt-cpp.hash | 4 + package/paho-mqtt-cpp/paho-mqtt-cpp.mk | 35 + package/pahole/Config.in.host | 6 + package/pahole/pahole.hash | 3 + package/pahole/pahole.mk | 18 + package/pamtester/Config.in | 15 + package/pamtester/pamtester.hash | 3 + package/pamtester/pamtester.mk | 18 + package/pango/Config.in | 32 + package/pango/pango.hash | 5 + package/pango/pango.mk | 53 + package/pangomm/Config.in | 22 + package/pangomm/pangomm.hash | 5 + package/pangomm/pangomm.mk | 16 + package/parprouted/Config.in | 17 + package/parprouted/parprouted.hash | 3 + package/parprouted/parprouted.mk | 20 + package/parted/Config.in | 13 + package/parted/Config.in.host | 6 + package/parted/parted.hash | 5 + package/parted/parted.mk | 40 + ...x-segfault-with-mangled-rename-patch.patch | 33 + ...s-to-be-missing-for-ed-style-patches.patch | 37 + ...mmand-execution-in-ed-style-patches-.patch | 157 + ...-directly-instead-of-using-the-shell.patch | 41 + ...nks-unless--follow-symlinks-is-given.patch | 111 + package/patch/Config.in | 15 + package/patch/patch.hash | 4 + package/patch/patch.mk | 33 + ...ke-the-rpath-relative-under-a-specif.patch | 338 + package/patchelf/Config.in.host | 8 + package/patchelf/patchelf.hash | 4 + package/patchelf/patchelf.mk | 14 + package/pax-utils/Config.in | 11 + package/pax-utils/pax-utils.hash | 3 + package/pax-utils/pax-utils.mk | 40 + .../0001-genpaxtest-move-log-location.patch | 30 + ...st-page-alignment-ARM-and-NIOS2-arch.patch | 49 + package/paxtest/Config.in | 13 + package/paxtest/paxtest.hash | 3 + package/paxtest/paxtest.mk | 31 + ...nd-build-failure-with-older-binutils.patch | 57 + package/pciutils/Config.in | 7 + package/pciutils/pciutils.hash | 3 + package/pciutils/pciutils.mk | 69 + ...-python3-errors-add-linux-platform-s.patch | 103 + package/pcm-tools/Config.in | 31 + package/pcm-tools/pcm-tools.hash | 3 + package/pcm-tools/pcm-tools.mk | 41 + ...po-de-po-fix-build-with-gettext-tiny.patch | 35 + package/pcmanfm/Config.in | 27 + package/pcmanfm/pcmanfm.hash | 7 + package/pcmanfm/pcmanfm.mk | 24 + .../pcre/0001-Kill-compatibility-bits.patch | 46 + package/pcre/0002-Disable-C-unit-tests.patch | 42 + package/pcre/Config.in | 34 + package/pcre/pcre.hash | 4 + package/pcre/pcre.mk | 31 + package/pcre2/Config.in | 45 + package/pcre2/pcre2.hash | 5 + package/pcre2/pcre2.mk | 35 + package/pcsc-lite/Config.in | 40 + package/pcsc-lite/pcsc-lite.hash | 4 + package/pcsc-lite/pcsc-lite.mk | 52 + package/pdbg/Config.in | 11 + package/pdbg/pdbg.hash | 3 + package/pdbg/pdbg.mk | 16 + ...info.in-link-with-INTLLIBS-if-needed.patch | 27 + ...f-makeinfo.in-support-build-install-.patch | 76 + package/pdmenu/Config.in | 15 + package/pdmenu/pdmenu.hash | 5 + package/pdmenu/pdmenu.mk | 14 + .../perl-apache-logformat-compiler/Config.in | 7 + .../perl-apache-logformat-compiler.hash | 6 + .../perl-apache-logformat-compiler.mk | 15 + package/perl-appconfig/Config.in | 8 + package/perl-appconfig/perl-appconfig.hash | 6 + package/perl-appconfig/perl-appconfig.mk | 14 + package/perl-astro-suntime/Config.in | 6 + .../perl-astro-suntime.hash | 6 + .../perl-astro-suntime/perl-astro-suntime.mk | 15 + package/perl-class-inspector/Config.in | 6 + .../perl-class-inspector.hash | 6 + .../perl-class-inspector.mk | 14 + package/perl-class-load/Config.in | 15 + package/perl-class-load/perl-class-load.hash | 6 + package/perl-class-load/perl-class-load.mk | 14 + package/perl-class-method-modifiers/Config.in | 6 + .../perl-class-method-modifiers.hash | 6 + .../perl-class-method-modifiers.mk | 14 + package/perl-class-std-fast/Config.in | 7 + .../perl-class-std-fast.hash | 6 + .../perl-class-std-fast.mk | 15 + package/perl-class-std/Config.in | 6 + package/perl-class-std/perl-class-std.hash | 6 + package/perl-class-std/perl-class-std.mk | 15 + package/perl-convert-asn1/Config.in | 7 + .../perl-convert-asn1/perl-convert-asn1.hash | 6 + .../perl-convert-asn1/perl-convert-asn1.mk | 14 + package/perl-cookie-baker/Config.in | 7 + .../perl-cookie-baker/perl-cookie-baker.hash | 6 + .../perl-cookie-baker/perl-cookie-baker.mk | 15 + package/perl-crypt-blowfish/Config.in | 10 + .../perl-crypt-blowfish.hash | 6 + .../perl-crypt-blowfish.mk | 14 + package/perl-crypt-cbc/Config.in | 6 + package/perl-crypt-cbc/perl-crypt-cbc.hash | 6 + package/perl-crypt-cbc/perl-crypt-cbc.mk | 14 + package/perl-crypt-openssl-aes/Config.in | 11 + .../perl-crypt-openssl-aes.hash | 6 + .../perl-crypt-openssl-aes.mk | 15 + .../perl-crypt-openssl-guess.hash | 6 + .../perl-crypt-openssl-guess.mk | 14 + package/perl-crypt-openssl-random/Config.in | 11 + .../perl-crypt-openssl-random.hash | 6 + .../perl-crypt-openssl-random.mk | 21 + package/perl-crypt-openssl-rsa/Config.in | 13 + .../perl-crypt-openssl-rsa.hash | 5 + .../perl-crypt-openssl-rsa.mk | 22 + package/perl-data-dump/Config.in | 6 + package/perl-data-dump/perl-data-dump.hash | 6 + package/perl-data-dump/perl-data-dump.mk | 14 + package/perl-data-optlist/Config.in | 12 + .../perl-data-optlist/perl-data-optlist.hash | 6 + .../perl-data-optlist/perl-data-optlist.mk | 14 + package/perl-data-uuid/Config.in | 10 + package/perl-data-uuid/perl-data-uuid.hash | 6 + package/perl-data-uuid/perl-data-uuid.mk | 19 + package/perl-date-manip/Config.in | 6 + package/perl-date-manip/perl-date-manip.hash | 6 + package/perl-date-manip/perl-date-manip.mk | 14 + package/perl-datetime-tiny/Config.in | 6 + .../perl-datetime-tiny.hash | 6 + .../perl-datetime-tiny/perl-datetime-tiny.mk | 14 + package/perl-dbd-mysql/Config.in | 17 + package/perl-dbd-mysql/perl-dbd-mysql.hash | 6 + package/perl-dbd-mysql/perl-dbd-mysql.mk | 19 + package/perl-dbi/Config.in | 10 + package/perl-dbi/perl-dbi.hash | 6 + package/perl-dbi/perl-dbi.mk | 15 + package/perl-devel-cycle/Config.in | 6 + .../perl-devel-cycle/perl-devel-cycle.hash | 6 + package/perl-devel-cycle/perl-devel-cycle.mk | 14 + .../perl-devel-globaldestruction/Config.in | 8 + .../perl-devel-globaldestruction.hash | 6 + .../perl-devel-globaldestruction.mk | 14 + package/perl-devel-size/Config.in | 11 + package/perl-devel-size/perl-devel-size.hash | 6 + package/perl-devel-size/perl-devel-size.mk | 14 + .../perl-devel-stacktrace-ashtml/Config.in | 7 + .../perl-devel-stacktrace-ashtml.hash | 6 + .../perl-devel-stacktrace-ashtml.mk | 14 + package/perl-devel-stacktrace/Config.in | 6 + .../perl-devel-stacktrace.hash | 6 + .../perl-devel-stacktrace.mk | 14 + package/perl-device-serialport/Config.in | 10 + .../perl-device-serialport.hash | 6 + .../perl-device-serialport.mk | 14 + package/perl-digest-hmac/Config.in | 6 + .../perl-digest-hmac/perl-digest-hmac.hash | 6 + package/perl-digest-hmac/perl-digest-hmac.mk | 14 + package/perl-digest-sha1/Config.in | 10 + .../perl-digest-sha1/perl-digest-sha1.hash | 6 + package/perl-digest-sha1/perl-digest-sha1.mk | 14 + package/perl-dist-checkconflicts/Config.in | 7 + .../perl-dist-checkconflicts.hash | 6 + .../perl-dist-checkconflicts.mk | 14 + package/perl-encode-detect/Config.in | 12 + .../perl-encode-detect.hash | 6 + .../perl-encode-detect/perl-encode-detect.mk | 15 + package/perl-encode-locale/Config.in | 6 + .../perl-encode-locale.hash | 6 + .../perl-encode-locale/perl-encode-locale.mk | 14 + package/perl-exporter-tiny/Config.in | 7 + .../perl-exporter-tiny.hash | 7 + .../perl-exporter-tiny/perl-exporter-tiny.mk | 14 + .../perl-extutils-config.hash | 6 + .../perl-extutils-config.mk | 14 + .../perl-extutils-helpers.hash | 6 + .../perl-extutils-helpers.mk | 14 + .../perl-extutils-installpaths.hash | 6 + .../perl-extutils-installpaths.mk | 15 + .../perl-extutils-pkgconfig.hash | 6 + .../perl-extutils-pkgconfig.mk | 18 + package/perl-file-listing/Config.in | 7 + .../perl-file-listing/perl-file-listing.hash | 6 + .../perl-file-listing/perl-file-listing.mk | 14 + .../perl-file-sharedir-install.hash | 6 + .../perl-file-sharedir-install.mk | 14 + package/perl-file-sharedir/Config.in | 7 + .../perl-file-sharedir.hash | 6 + .../perl-file-sharedir/perl-file-sharedir.mk | 15 + package/perl-file-slurp/Config.in | 7 + package/perl-file-slurp/perl-file-slurp.hash | 6 + package/perl-file-slurp/perl-file-slurp.mk | 14 + package/perl-file-util/Config.in | 6 + package/perl-file-util/perl-file-util.hash | 7 + package/perl-file-util/perl-file-util.mk | 17 + package/perl-filesys-notify-simple/Config.in | 6 + .../perl-filesys-notify-simple.hash | 6 + .../perl-filesys-notify-simple.mk | 14 + package/perl-gd/Config.in | 12 + package/perl-gd/perl-gd.hash | 6 + package/perl-gd/perl-gd.mk | 60 + package/perl-gdgraph/Config.in | 12 + package/perl-gdgraph/perl-gdgraph.hash | 7 + package/perl-gdgraph/perl-gdgraph.mk | 14 + package/perl-gdtextutil/Config.in | 6 + package/perl-gdtextutil/perl-gdtextutil.hash | 7 + package/perl-gdtextutil/perl-gdtextutil.mk | 14 + package/perl-hash-multivalue/Config.in | 6 + .../perl-hash-multivalue.hash | 6 + .../perl-hash-multivalue.mk | 14 + package/perl-html-parser/Config.in | 13 + .../perl-html-parser/perl-html-parser.hash | 6 + package/perl-html-parser/perl-html-parser.mk | 14 + package/perl-html-tagset/Config.in | 6 + .../perl-html-tagset/perl-html-tagset.hash | 6 + package/perl-html-tagset/perl-html-tagset.mk | 14 + package/perl-http-cookies/Config.in | 8 + .../perl-http-cookies/perl-http-cookies.hash | 6 + .../perl-http-cookies/perl-http-cookies.mk | 14 + package/perl-http-daemon/Config.in | 9 + .../perl-http-daemon/perl-http-daemon.hash | 6 + package/perl-http-daemon/perl-http-daemon.mk | 15 + package/perl-http-date/Config.in | 7 + package/perl-http-date/perl-http-date.hash | 6 + package/perl-http-date/perl-http-date.mk | 14 + package/perl-http-entity-parser/Config.in | 11 + .../perl-http-entity-parser.hash | 6 + .../perl-http-entity-parser.mk | 15 + package/perl-http-headers-fast/Config.in | 7 + .../perl-http-headers-fast.hash | 6 + .../perl-http-headers-fast.mk | 15 + package/perl-http-message/Config.in | 11 + .../perl-http-message/perl-http-message.hash | 6 + .../perl-http-message/perl-http-message.mk | 14 + package/perl-http-multipartparser/Config.in | 6 + .../perl-http-multipartparser.hash | 6 + .../perl-http-multipartparser.mk | 14 + package/perl-http-negotiate/Config.in | 7 + .../perl-http-negotiate.hash | 6 + .../perl-http-negotiate.mk | 14 + package/perl-i18n/Config.in | 7 + package/perl-i18n/perl-i18n.hash | 6 + package/perl-i18n/perl-i18n.mk | 14 + package/perl-io-html/Config.in | 6 + package/perl-io-html/perl-io-html.hash | 6 + package/perl-io-html/perl-io-html.mk | 14 + package/perl-io-interface/Config.in | 10 + .../perl-io-interface/perl-io-interface.hash | 6 + .../perl-io-interface/perl-io-interface.mk | 15 + package/perl-io-socket-multicast/Config.in | 11 + .../perl-io-socket-multicast.hash | 6 + .../perl-io-socket-multicast.mk | 14 + package/perl-io-socket-ssl/Config.in | 12 + .../perl-io-socket-ssl.hash | 6 + .../perl-io-socket-ssl/perl-io-socket-ssl.mk | 14 + package/perl-json-maybexs/Config.in | 7 + .../perl-json-maybexs/perl-json-maybexs.hash | 6 + .../perl-json-maybexs/perl-json-maybexs.mk | 14 + package/perl-json-tiny/Config.in | 6 + package/perl-json-tiny/perl-json-tiny.hash | 6 + package/perl-json-tiny/perl-json-tiny.mk | 14 + package/perl-libwww-perl/Config.in | 22 + .../perl-libwww-perl/perl-libwww-perl.hash | 6 + package/perl-libwww-perl/perl-libwww-perl.mk | 14 + .../perl-locale-maketext-lexicon/Config.in | 6 + .../perl-locale-maketext-lexicon.hash | 6 + .../perl-locale-maketext-lexicon.mk | 14 + package/perl-lwp-mediatypes/Config.in | 6 + .../perl-lwp-mediatypes.hash | 6 + .../perl-lwp-mediatypes.mk | 14 + package/perl-lwp-protocol-https/Config.in | 14 + .../perl-lwp-protocol-https.hash | 6 + .../perl-lwp-protocol-https.mk | 14 + package/perl-mail-dkim/Config.in | 13 + package/perl-mail-dkim/perl-mail-dkim.hash | 6 + package/perl-mail-dkim/perl-mail-dkim.mk | 14 + package/perl-mailtools/Config.in | 7 + package/perl-mailtools/perl-mailtools.hash | 6 + package/perl-mailtools/perl-mailtools.mk | 14 + package/perl-math-int64/Config.in | 10 + package/perl-math-int64/perl-math-int64.hash | 6 + package/perl-math-int64/perl-math-int64.mk | 14 + package/perl-math-prime-util/Config.in | 11 + .../perl-math-prime-util.hash | 6 + .../perl-math-prime-util.mk | 14 + package/perl-mime-base64-urlsafe/Config.in | 6 + .../perl-mime-base64-urlsafe.hash | 6 + .../perl-mime-base64-urlsafe.mk | 14 + package/perl-mime-tools/Config.in | 7 + package/perl-mime-tools/perl-mime-tools.hash | 6 + package/perl-mime-tools/perl-mime-tools.mk | 14 + .../perl-module-build-tiny.hash | 6 + .../perl-module-build-tiny.mk | 18 + .../perl-module-build/perl-module-build.hash | 6 + .../perl-module-build/perl-module-build.mk | 14 + package/perl-module-implementation/Config.in | 9 + .../perl-module-implementation.hash | 6 + .../perl-module-implementation.mk | 14 + package/perl-module-runtime/Config.in | 6 + .../perl-module-runtime.hash | 6 + .../perl-module-runtime.mk | 15 + .../Config.in | 7 + ...erl-mojolicious-plugin-authentication.hash | 6 + .../perl-mojolicious-plugin-authentication.mk | 14 + .../Config.in | 7 + ...perl-mojolicious-plugin-authorization.hash | 6 + .../perl-mojolicious-plugin-authorization.mk | 15 + .../Config.in | 8 + .../perl-mojolicious-plugin-cspheader.hash | 6 + .../perl-mojolicious-plugin-cspheader.mk | 14 + .../perl-mojolicious-plugin-i18n/Config.in | 7 + .../perl-mojolicious-plugin-i18n.hash | 6 + .../perl-mojolicious-plugin-i18n.mk | 15 + .../Config.in | 7 + ...erl-mojolicious-plugin-securityheader.hash | 6 + .../perl-mojolicious-plugin-securityheader.mk | 14 + package/perl-mojolicious/Config.in | 6 + .../perl-mojolicious/perl-mojolicious.hash | 6 + package/perl-mojolicious/perl-mojolicious.mk | 14 + package/perl-moo/Config.in | 9 + package/perl-moo/perl-moo.hash | 6 + package/perl-moo/perl-moo.mk | 14 + package/perl-mozilla-ca/Config.in | 6 + package/perl-mozilla-ca/perl-mozilla-ca.hash | 6 + package/perl-mozilla-ca/perl-mozilla-ca.mk | 14 + package/perl-net-dns/Config.in | 7 + package/perl-net-dns/perl-net-dns.hash | 6 + package/perl-net-dns/perl-net-dns.mk | 14 + package/perl-net-http/Config.in | 7 + package/perl-net-http/perl-net-http.hash | 6 + package/perl-net-http/perl-net-http.mk | 14 + package/perl-net-snmp/Config.in | 6 + package/perl-net-snmp/perl-net-snmp.hash | 6 + package/perl-net-snmp/perl-net-snmp.mk | 15 + package/perl-net-ssh2/Config.in | 18 + package/perl-net-ssh2/perl-net-ssh2.hash | 6 + package/perl-net-ssh2/perl-net-ssh2.mk | 24 + .../0001-fix-build-system.patch | 36 + package/perl-net-ssleay/Config.in | 12 + package/perl-net-ssleay/perl-net-ssleay.hash | 6 + package/perl-net-ssleay/perl-net-ssleay.mk | 27 + package/perl-net-telnet/Config.in | 6 + package/perl-net-telnet/perl-net-telnet.hash | 6 + package/perl-net-telnet/perl-net-telnet.mk | 14 + package/perl-netaddr-ip/Config.in | 6 + package/perl-netaddr-ip/perl-netaddr-ip.hash | 7 + package/perl-netaddr-ip/perl-netaddr-ip.mk | 18 + package/perl-number-bytes-human/Config.in | 6 + .../perl-number-bytes-human.hash | 6 + .../perl-number-bytes-human.mk | 14 + package/perl-package-stash/Config.in | 8 + .../perl-package-stash.hash | 6 + .../perl-package-stash/perl-package-stash.mk | 14 + package/perl-params-util/Config.in | 10 + .../perl-params-util/perl-params-util.hash | 8 + package/perl-params-util/perl-params-util.mk | 14 + package/perl-parse-yapp/Config.in | 6 + package/perl-parse-yapp/perl-parse-yapp.hash | 6 + package/perl-parse-yapp/perl-parse-yapp.mk | 15 + package/perl-path-class/perl-path-class.hash | 6 + package/perl-path-class/perl-path-class.mk | 15 + package/perl-path-tiny/Config.in | 6 + package/perl-path-tiny/perl-path-tiny.hash | 6 + package/perl-path-tiny/perl-path-tiny.mk | 14 + package/perl-plack/Config.in | 21 + package/perl-plack/perl-plack.hash | 6 + package/perl-plack/perl-plack.mk | 15 + .../perl-posix-strftime-compiler/Config.in | 6 + .../perl-posix-strftime-compiler.hash | 6 + .../perl-posix-strftime-compiler.mk | 15 + package/perl-role-tiny/Config.in | 6 + package/perl-role-tiny/perl-role-tiny.hash | 6 + package/perl-role-tiny/perl-role-tiny.mk | 14 + package/perl-stream-buffered/Config.in | 6 + .../perl-stream-buffered.hash | 6 + .../perl-stream-buffered.mk | 14 + .../perl-sub-exporter-progressive/Config.in | 6 + .../perl-sub-exporter-progressive.hash | 6 + .../perl-sub-exporter-progressive.mk | 14 + package/perl-sub-install/Config.in | 6 + .../perl-sub-install/perl-sub-install.hash | 6 + package/perl-sub-install/perl-sub-install.mk | 14 + package/perl-sub-quote/Config.in | 6 + package/perl-sub-quote/perl-sub-quote.hash | 6 + package/perl-sub-quote/perl-sub-quote.mk | 14 + .../0001-remove-extraneous-include.patch | 20 + package/perl-sys-cpu/Config.in | 11 + package/perl-sys-cpu/perl-sys-cpu.hash | 3 + package/perl-sys-cpu/perl-sys-cpu.mk | 13 + package/perl-sys-meminfo/Config.in | 10 + .../perl-sys-meminfo/perl-sys-meminfo.hash | 6 + package/perl-sys-meminfo/perl-sys-meminfo.mk | 14 + package/perl-sys-mmap/Config.in | 10 + package/perl-sys-mmap/perl-sys-mmap.hash | 7 + package/perl-sys-mmap/perl-sys-mmap.mk | 14 + package/perl-time-parsedate/Config.in | 6 + .../perl-time-parsedate.hash | 7 + .../perl-time-parsedate.mk | 14 + package/perl-timedate/Config.in | 6 + package/perl-timedate/perl-timedate.hash | 6 + package/perl-timedate/perl-timedate.mk | 14 + package/perl-try-tiny/Config.in | 6 + package/perl-try-tiny/perl-try-tiny.hash | 6 + package/perl-try-tiny/perl-try-tiny.mk | 14 + package/perl-type-tiny/Config.in | 7 + package/perl-type-tiny/perl-type-tiny.hash | 6 + package/perl-type-tiny/perl-type-tiny.mk | 14 + package/perl-uri/Config.in | 6 + package/perl-uri/perl-uri.hash | 6 + package/perl-uri/perl-uri.mk | 14 + package/perl-www-form-urlencoded/Config.in | 6 + .../perl-www-form-urlencoded.hash | 6 + .../perl-www-form-urlencoded.mk | 15 + package/perl-www-robotrules/Config.in | 7 + .../perl-www-robotrules.hash | 6 + .../perl-www-robotrules.mk | 14 + package/perl-x10/Config.in | 13 + package/perl-x10/perl-x10.hash | 6 + package/perl-x10/perl-x10.mk | 14 + .../perl-xml-libxml/0001-Makefile-PL.patch | 18 + package/perl-xml-libxml/Config.in | 15 + package/perl-xml-libxml/perl-xml-libxml.hash | 6 + package/perl-xml-libxml/perl-xml-libxml.mk | 22 + package/perl-xml-namespacesupport/Config.in | 6 + .../perl-xml-namespacesupport.hash | 6 + .../perl-xml-namespacesupport.mk | 14 + package/perl-xml-sax-base/Config.in | 6 + .../perl-xml-sax-base/perl-xml-sax-base.hash | 6 + .../perl-xml-sax-base/perl-xml-sax-base.mk | 14 + package/perl-xml-sax/Config.in | 8 + package/perl-xml-sax/perl-xml-sax.hash | 6 + package/perl-xml-sax/perl-xml-sax.mk | 14 + package/perl/Config.in | 37 + package/perl/perl.hash | 12 + package/perl/perl.mk | 126 + package/phidgetwebservice/Config.in | 23 + .../phidgetwebservice/phidgetwebservice.hash | 3 + .../phidgetwebservice/phidgetwebservice.mk | 14 + .../0001-add-build-support-for-php-8.patch | 54 + .../php-amqp/0002-more-work-for-php-8.patch | 1265 ++ package/php-amqp/Config.in | 12 + package/php-amqp/php-amqp.hash | 3 + package/php-amqp/php-amqp.mk | 26 + package/php-apcu/Config.in | 10 + package/php-apcu/php-apcu.hash | 3 + package/php-apcu/php-apcu.mk | 29 + .../0001-add-build-support-for-php8.patch | 35 + package/php-geoip/Config.in | 7 + package/php-geoip/php-geoip.hash | 3 + package/php-geoip/php-geoip.mk | 26 + ...0001-Remove-inlining-_phpc_res_close.patch | 33 + package/php-gnupg/Config.in | 9 + package/php-gnupg/php-gnupg.hash | 3 + package/php-gnupg/php-gnupg.mk | 26 + package/php-imagick/Config.in | 13 + package/php-imagick/php-imagick.hash | 3 + package/php-imagick/php-imagick.mk | 28 + ...TATIC-ZEND_ACC_STATIC-for-static-met.patch | 28 + ...0002-php8-explicitly-declare-arginfo.patch | 68 + package/php-lua/Config.in | 8 + package/php-lua/php-lua.hash | 2 + package/php-lua/php-lua.mk | 39 + package/php-memcached/Config.in | 15 + package/php-memcached/php-memcached.hash | 5 + package/php-memcached/php-memcached.mk | 28 + package/php-pam/Config.in | 16 + package/php-pam/php-pam.hash | 3 + package/php-pam/php-pam.mk | 26 + package/php-pecl-dbus/0001-php8-compat.patch | 158 + ...lity-with-php8-call_user_function_ex.patch | 32 + package/php-pecl-dbus/Config.in | 15 + package/php-pecl-dbus/php-pecl-dbus.hash | 3 + package/php-pecl-dbus/php-pecl-dbus.mk | 24 + package/php-ssh2/Config.in | 7 + package/php-ssh2/php-ssh2.hash | 3 + package/php-ssh2/php-ssh2.mk | 26 + package/php-xdebug/Config.in | 6 + package/php-xdebug/php-xdebug.hash | 3 + package/php-xdebug/php-xdebug.mk | 28 + package/php-yaml/Config.in | 7 + package/php-yaml/php-yaml.hash | 3 + package/php-yaml/php-yaml.mk | 26 + .../0001-updates-for-php7.4-and-php8.0.patch | 230 + package/php-zmq/0002-fix-for-php-7.3.patch | 43 + .../php-zmq/0003-fix-for-php-8.0.0beta2.patch | 40 + package/php-zmq/Config.in | 12 + package/php-zmq/php-zmq.hash | 3 + package/php-zmq/php-zmq.mk | 25 + ...1-acinclude.m4-don-t-unset-variables.patch | 42 + .../0002-iconv-tweak-iconv-detection.patch | 39 + ...0003-configure-disable-the-phar-tool.patch | 43 + .../0004-Call-apxs-with-correct-prefix.patch | 51 + .../0005-allow-opcache-cross-compiling.patch | 39 + package/php/Config.ext | 425 + package/php/Config.in | 70 + package/php/php-fpm.conf | 11 + package/php/php.hash | 5 + package/php/php.mk | 346 + package/physfs/Config.in | 11 + package/physfs/physfs.hash | 3 + package/physfs/physfs.mk | 30 + package/phytool/Config.in | 10 + package/phytool/phytool.hash | 5 + package/phytool/phytool.mk | 24 + ...-with-libc-s-without-cispeed-cospeed.patch | 49 + package/picocom/Config.in | 9 + package/picocom/picocom.hash | 3 + package/picocom/picocom.mk | 21 + ...0001-Makefile-cross-compile-friendly.patch | 37 + .../pifmrds/0002-Makefile-use-LDFLAGS.patch | 20 + .../0003-Makefile-fix-static-link.patch | 25 + package/pifmrds/Config.in | 8 + package/pifmrds/pifmrds.hash | 3 + package/pifmrds/pifmrds.mk | 25 + package/piglit/Config.in | 35 + package/piglit/piglit.hash | 6 + package/piglit/piglit.mk | 72 + package/pigpio/Config.in | 14 + package/pigpio/S50pigpio | 50 + package/pigpio/pigpio.hash | 3 + package/pigpio/pigpio.mk | 51 + package/pigpio/pigpio.service | 10 + package/pigz/Config.in | 14 + package/pigz/Config.in.host | 9 + package/pigz/pigz.hash | 5 + package/pigz/pigz.mk | 32 + package/pimd/Config.in | 8 + package/pimd/pimd.hash | 6 + package/pimd/pimd.mk | 37 + package/pinentry/Config.in | 93 + package/pinentry/pinentry.hash | 5 + package/pinentry/pinentry.mk | 73 + ...remove-session-managers-option-check.patch | 36 + package/pipewire-media-session/Config.in | 10 + .../pipewire-media-session.hash | 4 + .../pipewire-media-session.mk | 49 + package/pipewire/Config.in | 55 + package/pipewire/pipewire.hash | 4 + package/pipewire/pipewire.mk | 212 + ...port.cc-fallback-value-for-RUSAGE_TH.patch | 33 + package/pistache/Config.in | 21 + package/pistache/pistache.hash | 3 + package/pistache/pistache.mk | 23 + package/pixiewps/Config.in | 11 + package/pixiewps/pixiewps.hash | 3 + package/pixiewps/pixiewps.mk | 21 + package/pixman/0001-Disable-tests.patch | 29 + package/pixman/Config.in | 6 + package/pixman/pixman.hash | 6 + package/pixman/pixman.mk | 65 + package/pixz/Config.in | 13 + package/pixz/pixz.hash | 3 + package/pixz/pixz.mk | 19 + ...h-core.c-fix-build-without-slotevent.patch | 37 + ...5-0-does-not-have-DSA_meth_set1_name.patch | 69 + package/pkcs11-helper/Config.in | 23 + package/pkcs11-helper/pkcs11-helper.hash | 5 + package/pkcs11-helper/pkcs11-helper.mk | 59 + package/pkg-autotools.mk | 328 + package/pkg-cargo.mk | 198 + package/pkg-cmake.mk | 273 + package/pkg-download.mk | 129 + package/pkg-generic.mk | 1312 ++ package/pkg-golang.mk | 161 + package/pkg-kconfig.mk | 335 + package/pkg-kernel-module.mk | 101 + package/pkg-luarocks.mk | 155 + package/pkg-meson.mk | 258 + package/pkg-perl.mk | 215 + package/pkg-python.mk | 325 + package/pkg-qmake.mk | 121 + package/pkg-rebar.mk | 256 + package/pkg-utils.mk | 277 + package/pkg-virtual.mk | 77 + package/pkg-waf.mk | 122 + ...th-the-sysroot-a-subset-of-variables.patch | 147 + ...me-modversion-insted-of-version-if-o.patch | 45 + package/pkgconf/Config.in | 10 + package/pkgconf/Config.in.host | 10 + package/pkgconf/pkg-config.in | 12 + package/pkgconf/pkgconf.hash | 3 + package/pkgconf/pkgconf.mk | 45 + package/ply/Config.in | 29 + package/ply/ply.hash | 3 + package/ply/ply.mk | 15 + package/pngquant/Config.in | 9 + package/pngquant/pngquant.hash | 4 + package/pngquant/pngquant.mk | 56 + package/poco/Config.in | 119 + package/poco/poco.hash | 3 + package/poco/poco.mk | 95 + ...P2MAN-replace-by-true-when-cross-com.patch | 34 + ...andom.c-fix-build-with-uclibc-1.0.35.patch | 72 + package/poke/Config.in | 28 + package/poke/poke.hash | 4 + package/poke/poke.mk | 56 + ...-all-paths-that-use-an-absolute-path.patch | 38 + .../0002-Add-PREFIX-to-host-paths.patch | 54 + package/policycoreutils/Config.in | 36 + package/policycoreutils/policycoreutils.hash | 3 + package/policycoreutils/policycoreutils.mk | 97 + .../0001-make-netgroup-support-optional.patch | 426 + ...tional-parameters-to-i18n.merge_file.patch | 45 + package/polkit/0003-fix-build-without-C.patch | 50 + package/polkit/Config.in | 26 + package/polkit/S50polkit | 51 + package/polkit/polkit.hash | 5 + package/polkit/polkit.mk | 75 + package/polkit/polkit.service | 12 + package/popperjs/Config.in | 6 + package/popperjs/popperjs.hash | 3 + package/popperjs/popperjs.mk | 19 + ...h-when-WITH_JPEG-yes-and-WITH_PNG-no.patch | 27 + package/poppler/Config.in | 36 + package/poppler/poppler.hash | 3 + package/poppler/poppler.mk | 145 + .../popt/0001-add-libiconv-to-popt.pc.patch | 19 + package/popt/0002-Detect-glob_pattern_p.patch | 53 + ...-configure-replace-deprecated-macros.patch | 76 + .../popt/0004-fix-build-without-wchar.patch | 53 + .../0005-fix-build-without-mbstate_t.patch | 68 + package/popt/Config.in | 6 + package/popt/popt.hash | 3 + package/popt/popt.mk | 28 + package/portaudio/Config.in | 33 + package/portaudio/portaudio.hash | 3 + package/portaudio/portaudio.mk | 23 + ...e-forced-static-linking-of-liblwgeom.patch | 31 + ...kefile.in-do-not-force-static-linkin.patch | 35 + package/postgis/Config.in | 24 + package/postgis/postgis.hash | 3 + package/postgis/postgis.mk | 49 + package/postgresql/Config.in | 40 + package/postgresql/S50postgresql | 44 + package/postgresql/pg_config | 79 + package/postgresql/postgresql.hash | 4 + package/postgresql/postgresql.mk | 142 + package/postgresql/postgresql.service | 27 + package/pound/0001-fix-openssl-1.0.2.patch | 127 + package/pound/0002-fix-openssl-1.1.0.patch | 334 + ...bressl-coexisting-with-openssl-1.1.x.patch | 140 + package/pound/Config.in | 18 + package/pound/pound.hash | 3 + package/pound/pound.mk | 24 + package/powerpc-utils/Config.in | 35 + package/powerpc-utils/powerpc-utils.hash | 3 + package/powerpc-utils/powerpc-utils.mk | 26 + ...dont-force-stack-smashing-protection.patch | 18 + package/powertop/Config.in | 17 + package/powertop/powertop.hash | 5 + package/powertop/powertop.mk | 25 + package/powervr/Config.in | 6 + package/powervr/powervr.mk | 7 + ...n-with-older-glibc-or-kernel-headers.patch | 60 + ...pd-eap-tls.c-fix-build-with-libressl.patch | 36 + package/pppd/Config.in | 43 + package/pppd/pppd.hash | 7 + package/pppd/pppd.mk | 131 + package/pps-tools/Config.in | 7 + package/pps-tools/pps-tools.hash | 3 + package/pps-tools/pps-tools.mk | 29 + package/pptp-linux/0001-susv3-legacy.patch | 29 + .../pptp-linux/0002-fix-parallel-build.patch | 23 + package/pptp-linux/Config.in | 7 + package/pptp-linux/pptp-linux.hash | 7 + package/pptp-linux/pptp-linux.mk | 26 + package/prboom/0001-libpng-1.4.patch | 32 + ...move-predefined-O2-optimization-flag.patch | 21 + package/prboom/Config.in | 12 + package/prboom/prboom.hash | 3 + package/prboom/prboom.mk | 57 + ...c-Fix-TLS-offsets-computation-for-s3.patch | 43 + package/prelink-cross/prelink-cross.hash | 3 + package/prelink-cross/prelink-cross.mk | 16 + package/privoxy/Config.in | 17 + package/privoxy/privoxy.hash | 6 + package/privoxy/privoxy.mk | 18 + .../0001-configure-Add--disable-w.patch | 93 + ...ssing-nl_langinfo-on-certain-configs.patch | 34 + package/procps-ng/Config.in | 10 + package/procps-ng/S02sysctl | 94 + package/procps-ng/procps-ng.hash | 8 + package/procps-ng/procps-ng.mk | 67 + package/procrank_linux/Config.in | 7 + package/procrank_linux/procrank_linux.hash | 3 + package/procrank_linux/procrank_linux.mk | 22 + ...tab-fix-build-failure-against-gcc-10.patch | 56 + package/proftpd/Config.in | 105 + package/proftpd/S50proftpd | 45 + package/proftpd/proftpd.hash | 3 + package/proftpd/proftpd.mk | 139 + package/proftpd/proftpd.service | 10 + package/proj/Config.in | 20 + package/proj/proj.hash | 5 + package/proj/proj.mk | 40 + package/prosody/0001-enable-syslog.patch | 25 + package/prosody/0002-add-pidfile.patch | 26 + package/prosody/Config.in | 26 + package/prosody/S50prosody | 40 + package/prosody/prosody.hash | 8 + package/prosody/prosody.mk | 63 + package/protobuf-c/Config.in | 15 + package/protobuf-c/protobuf-c.hash | 3 + package/protobuf-c/protobuf-c.mk | 22 + package/protobuf/Config.in | 59 + package/protobuf/protobuf.hash | 3 + package/protobuf/protobuf.mk | 51 + ...xt-protobuf-is-only-needed-for-tests.patch | 35 + package/protozero/Config.in | 20 + package/protozero/protozero.hash | 4 + package/protozero/protozero.mk | 13 + ...OSIX-compliant-getnameinfo-signature.patch | 76 + package/proxychains-ng/Config.in | 12 + package/proxychains-ng/proxychains-ng.hash | 4 + package/proxychains-ng/proxychains-ng.mk | 27 + package/pru-software-support/Config.in | 9 + package/pru-software-support/Config.in.host | 11 + .../pru-software-support.hash | 3 + .../pru-software-support.mk | 38 + package/pru-software-support/readme.txt | 21 + package/psmisc/Config.in | 9 + package/psmisc/psmisc.hash | 6 + package/psmisc/psmisc.mk | 19 + package/psplash/Config.in | 41 + package/psplash/psplash-start.service | 10 + package/psplash/psplash-systemd.service | 12 + package/psplash/psplash.hash | 3 + package/psplash/psplash.mk | 40 + package/ptm2human/Config.in | 18 + package/ptm2human/ptm2human.hash | 3 + package/ptm2human/ptm2human.mk | 15 + package/ptpd/Config.in | 7 + package/ptpd/S65ptpd | 29 + package/ptpd/ptpd.hash | 3 + package/ptpd/ptpd.mk | 30 + package/ptpd/ptpd.service | 10 + package/ptpd2/0001-musl.patch | 15 + ...name-EVP_MD_CTX-into-PTPD_EVP_MD_CTX.patch | 46 + ...emoving-type-U64-from-net-snmp-relat.patch | 28 + package/ptpd2/Config.in | 8 + package/ptpd2/S65ptpd2 | 29 + package/ptpd2/ptpd2.hash | 3 + package/ptpd2/ptpd2.mk | 37 + package/ptpd2/ptpd2.service | 10 + package/pugixml/Config.in | 54 + package/pugixml/pugixml.hash | 3 + package/pugixml/pugixml.mk | 41 + ...c_assert-instead-of-static_assert-fo.patch | 32 + ...ild-sys-Fix-atomic-support-detection.patch | 59 + ...d-missing-libatomic_ops-dependencies.patch | 129 + ...0004-meson.build-fix-build-without-C.patch | 56 + package/pulseaudio/Config.in | 50 + package/pulseaudio/S50pulseaudio | 46 + package/pulseaudio/pulseaudio.hash | 6 + package/pulseaudio/pulseaudio.mk | 217 + package/pulseaudio/pulseaudio.service | 11 + ...place-obsolete-deprecated-Qt-methods.patch | 135 + ...d-due-to-C-template-behind-C-linkage.patch | 58 + .../pulseview/0003-Support-glibmm-2.68.patch | 89 + package/pulseview/Config.in | 40 + package/pulseview/pulseview.hash | 3 + package/pulseview/pulseview.mk | 27 + package/pure-ftpd/Config.in | 39 + package/pure-ftpd/pure-ftpd.hash | 3 + package/pure-ftpd/pure-ftpd.mk | 86 + ...1-unix-uxutils.h-fix-build-on-uclibc.patch | 41 + package/putty/Config.in | 15 + package/putty/putty.hash | 8 + package/putty/putty.mk | 21 + package/pv/Config.in | 8 + package/pv/pv.hash | 5 + package/pv/pv.mk | 31 + package/pwgen/Config.in | 7 + package/pwgen/Config.in.host | 7 + package/pwgen/pwgen.hash | 5 + package/pwgen/pwgen.mk | 14 + package/python-aenum/Config.in | 7 + package/python-aenum/python-aenum.hash | 5 + package/python-aenum/python-aenum.mk | 22 + package/python-aexpect/Config.in | 7 + package/python-aexpect/python-aexpect.hash | 5 + package/python-aexpect/python-aexpect.mk | 14 + package/python-aioblescan/Config.in | 6 + .../python-aioblescan/python-aioblescan.hash | 5 + .../python-aioblescan/python-aioblescan.mk | 14 + package/python-aiocoap/Config.in | 6 + package/python-aiocoap/python-aiocoap.hash | 5 + package/python-aiocoap/python-aiocoap.mk | 14 + package/python-aioconsole/Config.in | 6 + .../python-aioconsole/python-aioconsole.hash | 5 + .../python-aioconsole/python-aioconsole.mk | 14 + package/python-aiodns/Config.in | 7 + package/python-aiodns/python-aiodns.hash | 5 + package/python-aiodns/python-aiodns.mk | 14 + package/python-aiofiles/Config.in | 7 + package/python-aiofiles/python-aiofiles.hash | 5 + package/python-aiofiles/python-aiofiles.mk | 14 + package/python-aiohttp-cors/Config.in | 7 + .../python-aiohttp-cors.hash | 5 + .../python-aiohttp-cors.mk | 14 + package/python-aiohttp-debugtoolbar/Config.in | 8 + .../python-aiohttp-debugtoolbar.hash | 5 + .../python-aiohttp-debugtoolbar.mk | 14 + package/python-aiohttp-jinja2/Config.in | 9 + .../python-aiohttp-jinja2.hash | 5 + .../python-aiohttp-jinja2.mk | 14 + package/python-aiohttp-mako/Config.in | 9 + .../python-aiohttp-mako.hash | 5 + .../python-aiohttp-mako.mk | 14 + package/python-aiohttp-remotes/Config.in | 7 + .../python-aiohttp-remotes.hash | 5 + .../python-aiohttp-remotes.mk | 14 + package/python-aiohttp-security/Config.in | 7 + .../python-aiohttp-security.hash | 5 + .../python-aiohttp-security.mk | 14 + package/python-aiohttp-session/Config.in | 7 + .../python-aiohttp-session.hash | 5 + .../python-aiohttp-session.mk | 16 + package/python-aiohttp-sse/Config.in | 7 + .../python-aiohttp-sse.hash | 5 + .../python-aiohttp-sse/python-aiohttp-sse.mk | 14 + package/python-aiohttp/Config.in | 16 + package/python-aiohttp/python-aiohttp.hash | 5 + package/python-aiohttp/python-aiohttp.mk | 16 + package/python-aiojobs/Config.in | 6 + package/python-aiojobs/python-aiojobs.hash | 5 + package/python-aiojobs/python-aiojobs.mk | 14 + package/python-aiologstash/Config.in | 8 + .../python-aiologstash.hash | 5 + .../python-aiologstash/python-aiologstash.mk | 14 + package/python-aiomonitor/Config.in | 9 + .../python-aiomonitor/python-aiomonitor.hash | 5 + .../python-aiomonitor/python-aiomonitor.mk | 14 + package/python-aioprocessing/Config.in | 7 + .../python-aioprocessing.hash | 5 + .../python-aioprocessing.mk | 14 + package/python-aioredis/Config.in | 8 + package/python-aioredis/python-aioredis.hash | 5 + package/python-aioredis/python-aioredis.mk | 14 + package/python-aiorwlock/Config.in | 6 + .../python-aiorwlock/python-aiorwlock.hash | 5 + package/python-aiorwlock/python-aiorwlock.mk | 14 + package/python-aiosignal/Config.in | 7 + .../python-aiosignal/python-aiosignal.hash | 5 + package/python-aiosignal/python-aiosignal.mk | 14 + package/python-aiozipkin/Config.in | 8 + .../python-aiozipkin/python-aiozipkin.hash | 5 + package/python-aiozipkin/python-aiozipkin.mk | 14 + package/python-alembic/Config.in | 7 + package/python-alembic/python-alembic.hash | 5 + package/python-alembic/python-alembic.mk | 14 + package/python-alsaaudio/Config.in | 14 + .../python-alsaaudio/python-alsaaudio.hash | 5 + package/python-alsaaudio/python-alsaaudio.mk | 15 + package/python-ansicolors/Config.in | 6 + .../python-ansicolors/python-ansicolors.hash | 5 + .../python-ansicolors/python-ansicolors.mk | 20 + package/python-appdirs/Config.in | 7 + package/python-appdirs/python-appdirs.hash | 5 + package/python-appdirs/python-appdirs.mk | 14 + package/python-argh/Config.in | 6 + package/python-argh/python-argh.hash | 5 + package/python-argh/python-argh.mk | 14 + package/python-argon2-cffi-bindings/Config.in | 10 + .../python-argon2-cffi-bindings.hash | 5 + .../python-argon2-cffi-bindings.mk | 25 + package/python-argon2-cffi/Config.in | 9 + .../python-argon2-cffi.hash | 5 + .../python-argon2-cffi/python-argon2-cffi.mk | 14 + package/python-arrow/Config.in | 7 + package/python-arrow/python-arrow.hash | 5 + package/python-arrow/python-arrow.mk | 14 + package/python-asgiref/Config.in | 14 + package/python-asgiref/python-asgiref.hash | 5 + package/python-asgiref/python-asgiref.mk | 14 + package/python-asn1crypto/Config.in | 8 + .../python-asn1crypto/python-asn1crypto.hash | 5 + .../python-asn1crypto/python-asn1crypto.mk | 14 + package/python-async-lru/Config.in | 6 + .../python-async-lru/python-async-lru.hash | 5 + package/python-async-lru/python-async-lru.mk | 14 + package/python-async-timeout/Config.in | 7 + .../python-async-timeout.hash | 5 + .../python-async-timeout.mk | 14 + package/python-attrs/Config.in | 8 + package/python-attrs/python-attrs.hash | 5 + package/python-attrs/python-attrs.mk | 14 + ...-Use-CFFI-in-out-of-line-API-mode-49.patch | 101 + package/python-augeas/Config.in | 14 + package/python-augeas/python-augeas.hash | 3 + package/python-augeas/python-augeas.mk | 21 + package/python-autobahn/Config.in | 61 + package/python-autobahn/python-autobahn.hash | 5 + package/python-autobahn/python-autobahn.mk | 18 + package/python-automat/Config.in | 9 + package/python-automat/python-automat.hash | 5 + package/python-automat/python-automat.mk | 15 + package/python-avro/Config.in | 19 + package/python-avro/python-avro.hash | 5 + package/python-avro/python-avro.mk | 16 + package/python-babel/Config.in | 8 + package/python-babel/python-babel.hash | 5 + package/python-babel/python-babel.mk | 14 + package/python-backcall/Config.in | 6 + package/python-backcall/python-backcall.hash | 5 + package/python-backcall/python-backcall.mk | 14 + package/python-bcrypt/Config.in | 7 + package/python-bcrypt/python-bcrypt.hash | 5 + package/python-bcrypt/python-bcrypt.mk | 15 + package/python-beautifulsoup4/Config.in | 11 + .../python-beautifulsoup4.hash | 5 + .../python-beautifulsoup4.mk | 14 + package/python-beniget/python-beniget.hash | 5 + package/python-beniget/python-beniget.mk | 15 + package/python-bidict/Config.in | 6 + package/python-bidict/python-bidict.hash | 5 + package/python-bidict/python-bidict.mk | 14 + package/python-bitstring/Config.in | 6 + .../python-bitstring/python-bitstring.hash | 5 + package/python-bitstring/python-bitstring.mk | 14 + package/python-bleak/Config.in | 7 + package/python-bleak/python-bleak.hash | 5 + package/python-bleak/python-bleak.mk | 14 + package/python-bluezero/Config.in | 19 + package/python-bluezero/python-bluezero.hash | 5 + package/python-bluezero/python-bluezero.mk | 14 + package/python-boto3/Config.in | 9 + package/python-boto3/python-boto3.hash | 4 + package/python-boto3/python-boto3.mk | 14 + package/python-botocore/Config.in | 11 + package/python-botocore/python-botocore.hash | 4 + package/python-botocore/python-botocore.mk | 14 + package/python-bottle/Config.in | 9 + package/python-bottle/python-bottle.hash | 5 + package/python-bottle/python-bottle.mk | 16 + package/python-brotli/Config.in | 10 + package/python-brotli/python-brotli.hash | 5 + package/python-brotli/python-brotli.mk | 28 + package/python-bsdiff4/Config.in | 7 + package/python-bsdiff4/python-bsdiff4.hash | 5 + package/python-bsdiff4/python-bsdiff4.mk | 16 + package/python-bunch/Config.in | 6 + package/python-bunch/python-bunch.hash | 5 + package/python-bunch/python-bunch.mk | 14 + package/python-cached-property/Config.in | 6 + .../python-cached-property.hash | 5 + .../python-cached-property.mk | 14 + package/python-can/Config.in | 14 + package/python-can/python-can.hash | 4 + package/python-can/python-can.mk | 13 + package/python-canopen/Config.in | 9 + package/python-canopen/python-canopen.hash | 4 + package/python-canopen/python-canopen.mk | 14 + package/python-cbor/Config.in | 6 + package/python-cbor/python-cbor.hash | 3 + package/python-cbor/python-cbor.mk | 13 + package/python-cbor2/Config.in | 6 + package/python-cbor2/python-cbor2.hash | 5 + package/python-cbor2/python-cbor2.mk | 16 + package/python-cchardet/Config.in | 11 + package/python-cchardet/python-cchardet.hash | 5 + package/python-cchardet/python-cchardet.mk | 14 + package/python-certifi/Config.in | 6 + package/python-certifi/python-certifi.hash | 5 + package/python-certifi/python-certifi.mk | 15 + package/python-cffi/Config.in | 10 + package/python-cffi/python-cffi.hash | 5 + package/python-cffi/python-cffi.mk | 27 + package/python-channels-redis/Config.in | 14 + .../python-channels-redis.hash | 5 + .../python-channels-redis.mk | 14 + package/python-channels/Config.in | 16 + package/python-channels/python-channels.hash | 5 + package/python-channels/python-channels.mk | 14 + package/python-characteristic/Config.in | 6 + .../python-characteristic.hash | 5 + .../python-characteristic.mk | 14 + package/python-chardet/Config.in | 7 + package/python-chardet/python-chardet.hash | 5 + package/python-chardet/python-chardet.mk | 14 + package/python-charset-normalizer/Config.in | 7 + .../python-charset-normalizer.hash | 5 + .../python-charset-normalizer.mk | 15 + package/python-cheetah/Config.in | 12 + package/python-cheetah/python-cheetah.hash | 5 + package/python-cheetah/python-cheetah.mk | 15 + package/python-cheroot/Config.in | 10 + package/python-cheroot/python-cheroot.hash | 5 + package/python-cheroot/python-cheroot.mk | 15 + package/python-cherrypy/Config.in | 12 + package/python-cherrypy/python-cherrypy.hash | 4 + package/python-cherrypy/python-cherrypy.mk | 15 + package/python-click/Config.in | 7 + package/python-click/python-click.hash | 5 + package/python-click/python-click.mk | 14 + package/python-colorama/Config.in | 6 + package/python-colorama/python-colorama.hash | 5 + package/python-colorama/python-colorama.mk | 14 + package/python-colorlog/Config.in | 6 + package/python-colorlog/python-colorlog.hash | 5 + package/python-colorlog/python-colorlog.mk | 14 + package/python-colorzero/Config.in | 6 + .../python-colorzero/python-colorzero.hash | 4 + package/python-colorzero/python-colorzero.mk | 13 + package/python-configshell-fb/Config.in | 11 + .../python-configshell-fb.hash | 3 + .../python-configshell-fb.mk | 16 + package/python-constantly/Config.in | 8 + .../python-constantly/python-constantly.hash | 5 + .../python-constantly/python-constantly.mk | 14 + package/python-construct/Config.in | 7 + .../python-construct/python-construct.hash | 5 + package/python-construct/python-construct.mk | 14 + package/python-couchdb/Config.in | 7 + package/python-couchdb/python-couchdb.hash | 5 + package/python-couchdb/python-couchdb.mk | 14 + package/python-crayons/Config.in | 7 + package/python-crayons/python-crayons.hash | 5 + package/python-crayons/python-crayons.mk | 14 + package/python-crc16/Config.in | 10 + package/python-crc16/python-crc16.hash | 3 + package/python-crc16/python-crc16.mk | 13 + package/python-crcmod/Config.in | 8 + package/python-crcmod/python-crcmod.hash | 5 + package/python-crcmod/python-crcmod.mk | 14 + package/python-crontab/Config.in | 9 + package/python-crontab/python-crontab.hash | 5 + package/python-crontab/python-crontab.mk | 13 + .../0001-Avoid-intentional-syntax-error.patch | 29 + ...s-min.txt-drop-indirect-dependencies.patch | 74 + ...ice-wap-use-markupsafe-instead-of-we.patch | 53 + package/python-crossbar/Config.in | 71 + package/python-crossbar/python-crossbar.hash | 5 + package/python-crossbar/python-crossbar.mk | 14 + ...id-OPENSSL_NO_PSK-defined-guard-7146.patch | 56 + package/python-cryptography/Config.in | 10 + .../python-cryptography.hash | 6 + .../python-cryptography.mk | 42 + package/python-cssselect/Config.in | 7 + .../python-cssselect/python-cssselect.hash | 5 + package/python-cssselect/python-cssselect.mk | 14 + package/python-cssselect2/Config.in | 8 + .../python-cssselect2/python-cssselect2.hash | 5 + .../python-cssselect2/python-cssselect2.mk | 14 + package/python-cssutils/Config.in | 7 + package/python-cssutils/python-cssutils.hash | 5 + package/python-cssutils/python-cssutils.mk | 15 + package/python-cycler/Config.in | 7 + package/python-cycler/python-cycler.hash | 5 + package/python-cycler/python-cycler.mk | 14 + package/python-cython/Config.in.host | 7 + package/python-cython/python-cython.hash | 6 + package/python-cython/python-cython.mk | 14 + package/python-daemon/Config.in | 8 + package/python-daemon/python-daemon.hash | 6 + package/python-daemon/python-daemon.mk | 14 + package/python-daemonize/Config.in | 8 + .../python-daemonize/python-daemonize.hash | 5 + package/python-daemonize/python-daemonize.mk | 14 + ...001-remove-pytest-runner-requirement.patch | 27 + package/python-daphne/Config.in | 16 + package/python-daphne/python-daphne.hash | 5 + package/python-daphne/python-daphne.mk | 15 + package/python-dataproperty/Config.in | 8 + .../python-dataproperty.hash | 5 + .../python-dataproperty.mk | 14 + package/python-dateutil/Config.in | 7 + package/python-dateutil/python-dateutil.hash | 5 + package/python-dateutil/python-dateutil.mk | 14 + package/python-dbus-next/Config.in | 8 + .../python-dbus-next/python-dbus-next.hash | 5 + package/python-dbus-next/python-dbus-next.mk | 14 + package/python-decorator/Config.in | 6 + .../python-decorator/python-decorator.hash | 5 + package/python-decorator/python-decorator.mk | 17 + package/python-defusedxml/Config.in | 6 + .../python-defusedxml/python-defusedxml.hash | 5 + .../python-defusedxml/python-defusedxml.mk | 14 + package/python-dialog3/Config.in | 9 + package/python-dialog3/python-dialog3.hash | 5 + package/python-dialog3/python-dialog3.mk | 15 + package/python-dicttoxml/Config.in | 8 + .../python-dicttoxml/python-dicttoxml.hash | 5 + package/python-dicttoxml/python-dicttoxml.mk | 14 + package/python-distro/Config.in | 13 + package/python-distro/python-distro.hash | 3 + package/python-distro/python-distro.mk | 14 + package/python-django-enumfields/Config.in | 6 + .../python-django-enumfields.hash | 5 + .../python-django-enumfields.mk | 14 + package/python-django/Config.in | 19 + package/python-django/python-django.hash | 5 + package/python-django/python-django.mk | 18 + package/python-dnspython/Config.in | 6 + .../python-dnspython/python-dnspython.hash | 5 + package/python-dnspython/python-dnspython.mk | 27 + package/python-docker-pycreds/Config.in | 7 + .../python-docker-pycreds.hash | 4 + .../python-docker-pycreds.mk | 14 + package/python-docker/Config.in | 11 + package/python-docker/python-docker.hash | 5 + package/python-docker/python-docker.mk | 16 + package/python-dockerpty/Config.in | 7 + .../python-dockerpty/python-dockerpty.hash | 4 + package/python-dockerpty/python-dockerpty.mk | 14 + package/python-docopt/Config.in | 11 + package/python-docopt/python-docopt.hash | 3 + package/python-docopt/python-docopt.mk | 13 + package/python-docutils/Config.in | 9 + package/python-docutils/python-docutils.hash | 4 + package/python-docutils/python-docutils.mk | 15 + package/python-dominate/Config.in | 7 + package/python-dominate/python-dominate.hash | 5 + package/python-dominate/python-dominate.mk | 14 + package/python-dpkt/Config.in | 8 + package/python-dpkt/python-dpkt.hash | 5 + package/python-dpkt/python-dpkt.mk | 14 + package/python-dtschema/Config.in | 10 + package/python-dtschema/python-dtschema.hash | 5 + package/python-dtschema/python-dtschema.mk | 15 + package/python-ecdsa/Config.in | 7 + package/python-ecdsa/python-ecdsa.hash | 5 + package/python-ecdsa/python-ecdsa.mk | 15 + package/python-engineio/Config.in | 7 + package/python-engineio/python-engineio.hash | 5 + package/python-engineio/python-engineio.mk | 14 + package/python-entrypoints/Config.in | 6 + .../python-entrypoints.hash | 5 + .../python-entrypoints/python-entrypoints.mk | 14 + package/python-esptool/Config.in | 11 + package/python-esptool/python-esptool.hash | 5 + package/python-esptool/python-esptool.mk | 14 + package/python-falcon/Config.in | 7 + package/python-falcon/python-falcon.hash | 5 + package/python-falcon/python-falcon.mk | 18 + package/python-fastentrypoints/Config.in.host | 6 + .../python-fastentrypoints.hash | 4 + .../python-fastentrypoints.mk | 14 + package/python-filelock/Config.in | 6 + package/python-filelock/python-filelock.hash | 5 + package/python-filelock/python-filelock.mk | 14 + package/python-fire/Config.in | 9 + package/python-fire/python-fire.hash | 5 + package/python-fire/python-fire.mk | 14 + package/python-flask-babel/Config.in | 13 + .../python-flask-babel.hash | 6 + .../python-flask-babel/python-flask-babel.mk | 14 + package/python-flask-cors/Config.in | 8 + .../python-flask-cors/python-flask-cors.hash | 5 + .../python-flask-cors/python-flask-cors.mk | 16 + package/python-flask-expects-json/Config.in | 9 + .../python-flask-expects-json.hash | 5 + .../python-flask-expects-json.mk | 14 + ...-Move-pytest-runner-to-tests_require.patch | 32 + package/python-flask-jsonrpc/Config.in | 9 + .../python-flask-jsonrpc.hash | 6 + .../python-flask-jsonrpc.mk | 14 + package/python-flask-login/Config.in | 8 + .../python-flask-login.hash | 5 + .../python-flask-login/python-flask-login.mk | 14 + package/python-flask-sqlalchemy/Config.in | 9 + .../python-flask-sqlalchemy.hash | 5 + .../python-flask-sqlalchemy.mk | 14 + package/python-flask-wtf/Config.in | 9 + .../python-flask-wtf/python-flask-wtf.hash | 5 + package/python-flask-wtf/python-flask-wtf.mk | 14 + package/python-flask/Config.in | 14 + package/python-flask/python-flask.hash | 6 + package/python-flask/python-flask.mk | 16 + package/python-flatbuffers/Config.in | 6 + .../python-flatbuffers.hash | 3 + .../python-flatbuffers/python-flatbuffers.mk | 13 + ...sion-parser-for-multiple-assignments.patch | 80 + .../python-flit-core/python-flit-core.hash | 3 + package/python-flit-core/python-flit-core.mk | 18 + package/python-flup/Config.in | 8 + package/python-flup/python-flup.hash | 5 + package/python-flup/python-flup.mk | 14 + package/python-fonttools/Config.in | 6 + .../python-fonttools/python-fonttools.hash | 5 + package/python-fonttools/python-fonttools.mk | 22 + package/python-frozenlist/Config.in | 7 + .../python-frozenlist/python-frozenlist.hash | 5 + .../python-frozenlist/python-frozenlist.mk | 14 + package/python-future/Config.in | 6 + package/python-future/python-future.hash | 5 + package/python-future/python-future.mk | 14 + package/python-gast/python-gast.hash | 5 + package/python-gast/python-gast.mk | 14 + package/python-git/Config.in | 12 + package/python-git/python-git.hash | 3 + package/python-git/python-git.mk | 13 + package/python-gitdb2/Config.in | 12 + package/python-gitdb2/python-gitdb2.hash | 5 + package/python-gitdb2/python-gitdb2.mk | 14 + package/python-gnupg/Config.in | 16 + package/python-gnupg/python-gnupg.hash | 5 + package/python-gnupg/python-gnupg.mk | 14 + package/python-gobject/Config.in | 20 + package/python-gobject/python-gobject.hash | 3 + package/python-gobject/python-gobject.mk | 32 + package/python-gpiozero/Config.in | 10 + package/python-gpiozero/python-gpiozero.hash | 4 + package/python-gpiozero/python-gpiozero.mk | 13 + package/python-greenlet/Config.in | 18 + package/python-greenlet/Config.in.host | 7 + package/python-greenlet/python-greenlet.hash | 6 + package/python-greenlet/python-greenlet.mk | 16 + package/python-gunicorn/Config.in | 12 + package/python-gunicorn/python-gunicorn.hash | 5 + package/python-gunicorn/python-gunicorn.mk | 14 + package/python-h2/Config.in | 8 + package/python-h2/python-h2.hash | 5 + package/python-h2/python-h2.mk | 14 + ...0001-setup.py-fix-build-with-gcc-4.8.patch | 43 + package/python-hiredis/Config.in | 6 + package/python-hiredis/python-hiredis.hash | 6 + package/python-hiredis/python-hiredis.mk | 14 + package/python-hpack/Config.in | 6 + package/python-hpack/python-hpack.hash | 5 + package/python-hpack/python-hpack.mk | 14 + package/python-html5lib/Config.in | 8 + package/python-html5lib/python-html5lib.hash | 5 + package/python-html5lib/python-html5lib.mk | 14 + package/python-httplib2/Config.in | 10 + package/python-httplib2/python-httplib2.hash | 5 + package/python-httplib2/python-httplib2.mk | 16 + .../0001-fix-import-with-python3.patch | 8 + package/python-huepy/Config.in | 6 + package/python-huepy/python-huepy.hash | 4 + package/python-huepy/python-huepy.mk | 13 + package/python-humanize/Config.in | 9 + package/python-humanize/python-humanize.hash | 5 + package/python-humanize/python-humanize.mk | 14 + package/python-hyperframe/Config.in | 6 + .../python-hyperframe/python-hyperframe.hash | 5 + .../python-hyperframe/python-hyperframe.mk | 14 + package/python-hyperlink/Config.in | 7 + .../python-hyperlink/python-hyperlink.hash | 5 + package/python-hyperlink/python-hyperlink.mk | 14 + package/python-ibmiotf/Config.in | 12 + package/python-ibmiotf/python-ibmiotf.hash | 5 + package/python-ibmiotf/python-ibmiotf.mk | 14 + package/python-idna/Config.in | 11 + package/python-idna/python-idna.hash | 5 + package/python-idna/python-idna.mk | 15 + package/python-ifaddr/Config.in | 7 + package/python-ifaddr/python-ifaddr.hash | 5 + package/python-ifaddr/python-ifaddr.mk | 14 + package/python-incremental/Config.in | 6 + .../python-incremental.hash | 5 + .../python-incremental/python-incremental.mk | 15 + package/python-inflection/Config.in | 11 + .../python-inflection/python-inflection.hash | 5 + .../python-inflection/python-inflection.mk | 15 + package/python-influxdb/Config.in | 11 + package/python-influxdb/python-influxdb.hash | 5 + package/python-influxdb/python-influxdb.mk | 14 + package/python-iniconfig/Config.in | 6 + .../python-iniconfig/python-iniconfig.hash | 5 + package/python-iniconfig/python-iniconfig.mk | 14 + package/python-iniparse/Config.in | 11 + package/python-iniparse/python-iniparse.hash | 7 + package/python-iniparse/python-iniparse.mk | 14 + .../python-installer/python-installer.hash | 5 + package/python-installer/python-installer.mk | 16 + package/python-intelhex/Config.in | 6 + package/python-intelhex/python-intelhex.hash | 5 + package/python-intelhex/python-intelhex.mk | 14 + package/python-iowait/Config.in | 6 + package/python-iowait/python-iowait.hash | 4 + package/python-iowait/python-iowait.mk | 14 + package/python-ipdb/Config.in | 8 + package/python-ipdb/python-ipdb.hash | 5 + package/python-ipdb/python-ipdb.mk | 14 + package/python-iptables/Config.in | 11 + package/python-iptables/python-iptables.hash | 6 + package/python-iptables/python-iptables.mk | 22 + package/python-ipy/Config.in | 7 + package/python-ipy/python-ipy.hash | 5 + package/python-ipy/python-ipy.mk | 14 + package/python-ipython-genutils/Config.in | 6 + .../python-ipython-genutils.hash | 5 + .../python-ipython-genutils.mk | 14 + ...1-set-correct-python-executable-path.patch | 15 + package/python-ipython/Config.in | 18 + package/python-ipython/python-ipython.hash | 6 + package/python-ipython/python-ipython.mk | 16 + package/python-iso8601/Config.in | 6 + package/python-iso8601/python-iso8601.hash | 5 + package/python-iso8601/python-iso8601.mk | 14 + package/python-itsdangerous/Config.in | 8 + .../python-itsdangerous.hash | 6 + .../python-itsdangerous.mk | 14 + package/python-iwlib/Config.in | 8 + package/python-iwlib/python-iwlib.hash | 3 + package/python-iwlib/python-iwlib.mk | 14 + package/python-janus/Config.in | 8 + package/python-janus/python-janus.hash | 5 + package/python-janus/python-janus.mk | 14 + package/python-jaraco-classes/Config.in | 7 + .../python-jaraco-classes.hash | 5 + .../python-jaraco-classes.mk | 15 + package/python-jaraco-functools/Config.in | 8 + .../python-jaraco-functools.hash | 5 + .../python-jaraco-functools.mk | 15 + package/python-jedi/Config.in | 8 + package/python-jedi/python-jedi.hash | 7 + package/python-jedi/python-jedi.mk | 14 + package/python-jinja2/Config.in | 10 + package/python-jinja2/python-jinja2.hash | 5 + package/python-jinja2/python-jinja2.mk | 21 + package/python-jmespath/Config.in | 6 + package/python-jmespath/python-jmespath.hash | 4 + package/python-jmespath/python-jmespath.mk | 14 + .../python-json-schema-validator/Config.in | 6 + .../python-json-schema-validator.hash | 3 + .../python-json-schema-validator.mk | 14 + package/python-jsonmodels/Config.in | 9 + .../python-jsonmodels/python-jsonmodels.hash | 5 + .../python-jsonmodels/python-jsonmodels.mk | 14 + package/python-jsonschema/Config.in | 8 + .../python-jsonschema/python-jsonschema.hash | 6 + .../python-jsonschema/python-jsonschema.mk | 14 + package/python-keyring/Config.in | 11 + package/python-keyring/python-keyring.hash | 5 + package/python-keyring/python-keyring.mk | 17 + package/python-kflash/Config.in.host | 7 + package/python-kflash/python-kflash.hash | 5 + package/python-kflash/python-kflash.mk | 15 + package/python-kiwisolver/Config.in | 17 + .../python-kiwisolver/python-kiwisolver.hash | 3 + .../python-kiwisolver/python-kiwisolver.mk | 13 + package/python-lark/Config.in | 7 + package/python-lark/python-lark.hash | 5 + package/python-lark/python-lark.mk | 14 + package/python-libconfig/Config.in | 23 + .../python-libconfig/python-libconfig.hash | 3 + package/python-libconfig/python-libconfig.mk | 23 + package/python-libusb1/Config.in | 13 + package/python-libusb1/python-libusb1.hash | 4 + package/python-libusb1/python-libusb1.mk | 15 + package/python-lmdb/Config.in | 7 + package/python-lmdb/python-lmdb.hash | 5 + package/python-lmdb/python-lmdb.mk | 15 + package/python-lockfile/Config.in | 17 + package/python-lockfile/python-lockfile.hash | 5 + package/python-lockfile/python-lockfile.mk | 15 + package/python-logbook/Config.in | 7 + package/python-logbook/python-logbook.hash | 5 + package/python-logbook/python-logbook.mk | 14 + package/python-logstash/Config.in | 6 + package/python-logstash/python-logstash.hash | 5 + package/python-logstash/python-logstash.mk | 13 + package/python-lxml/Config.in | 10 + package/python-lxml/Config.in.host | 7 + package/python-lxml/python-lxml.hash | 6 + package/python-lxml/python-lxml.mk | 38 + package/python-m2crypto/Config.in | 9 + package/python-m2crypto/python-m2crypto.hash | 5 + package/python-m2crypto/python-m2crypto.mk | 18 + package/python-m2r/Config.in | 8 + package/python-m2r/python-m2r.hash | 5 + package/python-m2r/python-m2r.mk | 16 + package/python-mako/Config.in | 8 + package/python-mako/python-mako.hash | 5 + package/python-mako/python-mako.mk | 18 + package/python-markdown/Config.in | 8 + package/python-markdown/python-markdown.hash | 5 + package/python-markdown/python-markdown.mk | 15 + package/python-markdown2/Config.in | 6 + .../python-markdown2/python-markdown2.hash | 5 + package/python-markdown2/python-markdown2.mk | 15 + package/python-markupsafe/Config.in | 7 + .../python-markupsafe/python-markupsafe.hash | 5 + .../python-markupsafe/python-markupsafe.mk | 15 + package/python-matplotlib/Config.in | 40 + .../python-matplotlib/python-matplotlib.hash | 4 + .../python-matplotlib/python-matplotlib.mk | 31 + package/python-matplotlib/setup.cfg | 10 + package/python-maturin/python-maturin.hash | 5 + package/python-maturin/python-maturin.mk | 25 + package/python-mbstrdecoder/Config.in | 7 + .../python-mbstrdecoder.hash | 5 + .../python-mbstrdecoder.mk | 14 + package/python-memory-profiler/Config.in | 7 + .../python-memory-profiler.hash | 5 + .../python-memory-profiler.mk | 14 + package/python-mimeparse/Config.in | 7 + .../python-mimeparse/python-mimeparse.hash | 5 + package/python-mimeparse/python-mimeparse.mk | 13 + package/python-mistune/Config.in | 7 + package/python-mistune/python-mistune.hash | 5 + package/python-mistune/python-mistune.mk | 15 + package/python-modbus-tk/Config.in | 7 + .../python-modbus-tk/python-modbus-tk.hash | 5 + package/python-modbus-tk/python-modbus-tk.mk | 14 + package/python-more-itertools/Config.in | 6 + .../python-more-itertools.hash | 5 + .../python-more-itertools.mk | 14 + package/python-mpd2/Config.in | 6 + package/python-mpd2/python-mpd2.hash | 5 + package/python-mpd2/python-mpd2.mk | 13 + package/python-msgfy/Config.in | 7 + package/python-msgfy/python-msgfy.hash | 5 + package/python-msgfy/python-msgfy.mk | 14 + package/python-msgpack/Config.in | 9 + package/python-msgpack/python-msgpack.hash | 5 + package/python-msgpack/python-msgpack.mk | 14 + package/python-multidict/Config.in | 7 + .../python-multidict/python-multidict.hash | 5 + package/python-multidict/python-multidict.mk | 14 + package/python-mutagen/Config.in | 18 + package/python-mutagen/python-mutagen.hash | 5 + package/python-mutagen/python-mutagen.mk | 14 + package/python-mwclient/Config.in | 8 + package/python-mwclient/python-mwclient.hash | 5 + package/python-mwclient/python-mwclient.mk | 14 + package/python-mwscrape/Config.in | 9 + package/python-mwscrape/python-mwscrape.hash | 3 + package/python-mwscrape/python-mwscrape.mk | 13 + package/python-mwscrape2slob/Config.in | 21 + .../python-mwscrape2slob.hash | 2 + .../python-mwscrape2slob.mk | 12 + package/python-mypy-extensions/Config.in | 7 + .../python-mypy-extensions.hash | 5 + .../python-mypy-extensions.mk | 14 + package/python-nested-dict/Config.in | 7 + .../python-nested-dict.hash | 5 + .../python-nested-dict/python-nested-dict.mk | 14 + package/python-netaddr/Config.in | 6 + package/python-netaddr/python-netaddr.hash | 5 + package/python-netaddr/python-netaddr.mk | 14 + package/python-netifaces/Config.in | 6 + .../python-netifaces/python-netifaces.hash | 5 + package/python-netifaces/python-netifaces.mk | 14 + package/python-networkmanager/Config.in | 16 + .../python-networkmanager.hash | 5 + .../python-networkmanager.mk | 13 + package/python-networkx/Config.in | 9 + package/python-networkx/python-networkx.hash | 5 + package/python-networkx/python-networkx.mk | 18 + package/python-numpy/Config.in | 32 + package/python-numpy/python-numpy.hash | 8 + package/python-numpy/python-numpy.mk | 59 + package/python-oauthlib/Config.in | 7 + package/python-oauthlib/python-oauthlib.hash | 5 + package/python-oauthlib/python-oauthlib.mk | 14 + package/python-opcua-asyncio/Config.in | 14 + .../python-opcua-asyncio.hash | 3 + .../python-opcua-asyncio.mk | 14 + package/python-orjson/Config.in | 12 + package/python-orjson/python-orjson.hash | 5 + package/python-orjson/python-orjson.mk | 22 + package/python-packaging/Config.in | 7 + .../python-packaging/python-packaging.hash | 7 + package/python-packaging/python-packaging.mk | 16 + .../0001-fix-publish-for-python-3-10.patch | 37 + package/python-paho-mqtt/Config.in | 9 + .../python-paho-mqtt/python-paho-mqtt.hash | 6 + package/python-paho-mqtt/python-paho-mqtt.mk | 14 + package/python-paramiko/Config.in | 11 + package/python-paramiko/python-paramiko.hash | 5 + package/python-paramiko/python-paramiko.mk | 16 + package/python-parso/Config.in | 6 + package/python-parso/python-parso.hash | 7 + package/python-parso/python-parso.mk | 16 + package/python-passlib/Config.in | 7 + package/python-passlib/python-passlib.hash | 5 + package/python-passlib/python-passlib.mk | 14 + package/python-pathpy/Config.in | 8 + package/python-pathpy/python-pathpy.hash | 5 + package/python-pathpy/python-pathpy.mk | 15 + package/python-pathtools/Config.in | 6 + .../python-pathtools/python-pathtools.hash | 6 + package/python-pathtools/python-pathtools.mk | 14 + package/python-pathvalidate/Config.in | 7 + .../python-pathvalidate.hash | 5 + .../python-pathvalidate.mk | 14 + package/python-pbr/python-pbr.hash | 6 + package/python-pbr/python-pbr.mk | 14 + package/python-pep517/python-pep517.hash | 5 + package/python-pep517/python-pep517.mk | 15 + package/python-periphery/Config.in | 7 + .../python-periphery/python-periphery.hash | 3 + package/python-periphery/python-periphery.mk | 13 + package/python-pexpect/Config.in | 12 + package/python-pexpect/python-pexpect.hash | 5 + package/python-pexpect/python-pexpect.mk | 14 + package/python-pickleshare/Config.in | 6 + .../python-pickleshare.hash | 5 + .../python-pickleshare/python-pickleshare.mk | 14 + package/python-piexif/Config.in | 9 + package/python-piexif/python-piexif.hash | 3 + package/python-piexif/python-piexif.mk | 13 + package/python-pigpio/Config.in | 8 + package/python-pigpio/python-pigpio.hash | 3 + package/python-pigpio/python-pigpio.mk | 13 + package/python-pillow/Config.in | 15 + package/python-pillow/python-pillow.hash | 6 + package/python-pillow/python-pillow.mk | 74 + package/python-pip/Config.in | 8 + package/python-pip/python-pip.hash | 5 + package/python-pip/python-pip.mk | 16 + package/python-pluggy/Config.in | 6 + package/python-pluggy/python-pluggy.hash | 5 + package/python-pluggy/python-pluggy.mk | 15 + package/python-ply/Config.in | 6 + package/python-ply/python-ply.hash | 5 + package/python-ply/python-ply.mk | 15 + package/python-portend/Config.in | 7 + package/python-portend/python-portend.hash | 5 + package/python-portend/python-portend.mk | 15 + package/python-posix-ipc/Config.in | 13 + .../python-posix-ipc/python-posix-ipc.hash | 5 + package/python-posix-ipc/python-posix-ipc.mk | 14 + package/python-priority/Config.in | 6 + package/python-priority/python-priority.hash | 5 + package/python-priority/python-priority.mk | 14 + package/python-prompt-toolkit/Config.in | 10 + .../python-prompt-toolkit.hash | 5 + .../python-prompt-toolkit.mk | 14 + package/python-protobuf/Config.in | 13 + package/python-protobuf/python-protobuf.hash | 3 + package/python-protobuf/python-protobuf.mk | 16 + package/python-psutil/Config.in | 8 + package/python-psutil/python-psutil.hash | 5 + package/python-psutil/python-psutil.mk | 17 + package/python-psycopg2/Config.in | 30 + package/python-psycopg2/python-psycopg2.hash | 5 + package/python-psycopg2/python-psycopg2.mk | 19 + package/python-ptyprocess/Config.in | 7 + .../python-ptyprocess/python-ptyprocess.hash | 5 + .../python-ptyprocess/python-ptyprocess.mk | 14 + package/python-pudb/Config.in | 11 + package/python-pudb/python-pudb.hash | 5 + package/python-pudb/python-pudb.mk | 14 + package/python-py/Config.in | 7 + package/python-py/python-py.hash | 6 + package/python-py/python-py.mk | 17 + package/python-pyaes/Config.in | 7 + package/python-pyaes/python-pyaes.hash | 5 + package/python-pyaes/python-pyaes.mk | 14 + package/python-pyalsa/Config.in | 16 + package/python-pyalsa/python-pyalsa.hash | 2 + package/python-pyalsa/python-pyalsa.mk | 14 + package/python-pyasn1-modules/Config.in | 7 + .../python-pyasn1-modules.hash | 5 + .../python-pyasn1-modules.mk | 14 + package/python-pyasn1/Config.in | 6 + package/python-pyasn1/python-pyasn1.hash | 5 + package/python-pyasn1/python-pyasn1.mk | 14 + ...nd11-commands.py-support-STAGING_DIR.patch | 35 + package/python-pybind/Config.in | 12 + package/python-pybind/python-pybind.hash | 4 + package/python-pybind/python-pybind.mk | 28 + package/python-pycairo/Config.in | 7 + package/python-pycairo/python-pycairo.hash | 7 + package/python-pycairo/python-pycairo.mk | 15 + package/python-pycares/Config.in | 7 + package/python-pycares/python-pycares.hash | 5 + package/python-pycares/python-pycares.mk | 15 + package/python-pycparser/Config.in | 6 + .../python-pycparser/python-pycparser.hash | 5 + package/python-pycparser/python-pycparser.mk | 15 + package/python-pycryptodomex/Config.in | 6 + .../python-pycryptodomex.hash | 6 + .../python-pycryptodomex.mk | 17 + package/python-pycups/Config.in | 7 + package/python-pycups/python-pycups.hash | 5 + package/python-pycups/python-pycups.mk | 15 + package/python-pydal/Config.in | 15 + package/python-pydal/python-pydal.hash | 3 + package/python-pydal/python-pydal.mk | 14 + package/python-pydantic/Config.in | 8 + package/python-pydantic/python-pydantic.hash | 5 + package/python-pydantic/python-pydantic.mk | 14 + package/python-pydevmem/Config.in | 9 + package/python-pydevmem/python-pydevmem.hash | 3 + package/python-pydevmem/python-pydevmem.mk | 13 + package/python-pydyf/Config.in | 6 + package/python-pydyf/python-pydyf.hash | 5 + package/python-pydyf/python-pydyf.mk | 14 + package/python-pyelftools/Config.in | 7 + .../python-pyelftools/python-pyelftools.hash | 5 + .../python-pyelftools/python-pyelftools.mk | 15 + package/python-pyftpdlib/Config.in | 6 + .../python-pyftpdlib/python-pyftpdlib.hash | 5 + package/python-pyftpdlib/python-pyftpdlib.mk | 14 + package/python-pygame/Config.in | 50 + package/python-pygame/python-pygame.hash | 3 + package/python-pygame/python-pygame.mk | 111 + package/python-pygments/Config.in | 6 + package/python-pygments/python-pygments.hash | 5 + package/python-pygments/python-pygments.mk | 16 + package/python-pyhamcrest/Config.in | 8 + .../python-pyhamcrest/python-pyhamcrest.hash | 5 + .../python-pyhamcrest/python-pyhamcrest.mk | 14 + package/python-pyicu/Config.in | 17 + package/python-pyicu/python-pyicu.hash | 5 + package/python-pyicu/python-pyicu.mk | 15 + package/python-pyinotify/Config.in | 6 + .../python-pyinotify/python-pyinotify.hash | 3 + package/python-pyinotify/python-pyinotify.mk | 13 + package/python-pyjwt/Config.in | 6 + package/python-pyjwt/python-pyjwt.hash | 5 + package/python-pyjwt/python-pyjwt.mk | 16 + package/python-pylibfdt/Config.in | 6 + package/python-pylibfdt/python-pylibfdt.hash | 6 + package/python-pylibfdt/python-pylibfdt.mk | 15 + .../0001-do-not-use-find-library.patch | 31 + package/python-pylibftdi/Config.in | 13 + .../python-pylibftdi/python-pylibftdi.hash | 5 + package/python-pylibftdi/python-pylibftdi.mk | 15 + package/python-pylru/Config.in | 6 + package/python-pylru/python-pylru.hash | 5 + package/python-pylru/python-pylru.mk | 14 + package/python-pymodbus/Config.in | 8 + package/python-pymodbus/python-pymodbus.hash | 4 + package/python-pymodbus/python-pymodbus.mk | 14 + package/python-pymupdf/Config.in | 22 + package/python-pymupdf/python-pymupdf.hash | 5 + package/python-pymupdf/python-pymupdf.mk | 29 + package/python-pymysql/Config.in | 7 + package/python-pymysql/python-pymysql.hash | 5 + package/python-pymysql/python-pymysql.mk | 14 + package/python-pynacl/Config.in | 9 + package/python-pynacl/python-pynacl.hash | 5 + package/python-pynacl/python-pynacl.mk | 16 + package/python-pyndiff/Config.in | 9 + package/python-pyndiff/python-pyndiff.hash | 5 + package/python-pyndiff/python-pyndiff.mk | 14 + package/python-pyopenssl/Config.in | 8 + .../python-pyopenssl/python-pyopenssl.hash | 5 + package/python-pyopenssl/python-pyopenssl.mk | 16 + .../python-pypa-build/python-pypa-build.hash | 5 + .../python-pypa-build/python-pypa-build.mk | 18 + package/python-pyparsing/Config.in | 10 + .../python-pyparsing/python-pyparsing.hash | 5 + package/python-pyparsing/python-pyparsing.mk | 16 + package/python-pyparted/Config.in | 12 + package/python-pyparted/python-pyparted.hash | 3 + package/python-pyparted/python-pyparted.mk | 14 + package/python-pyphen/Config.in | 6 + package/python-pyphen/python-pyphen.hash | 8 + package/python-pyphen/python-pyphen.mk | 14 + package/python-pyqrcode/Config.in | 9 + package/python-pyqrcode/python-pyqrcode.hash | 5 + package/python-pyqrcode/python-pyqrcode.mk | 14 + .../0001-configure-skip-qtdetail.patch | 38 + .../0002-fix-QtCoremod.sip-syntax-error.patch | 29 + package/python-pyqt5/Config.in | 12 + package/python-pyqt5/python-pyqt5.hash | 6 + package/python-pyqt5/python-pyqt5.mk | 180 + package/python-pyratemp/Config.in | 8 + package/python-pyratemp/python-pyratemp.hash | 5 + package/python-pyratemp/python-pyratemp.mk | 14 + package/python-pyroute2/Config.in | 8 + package/python-pyroute2/python-pyroute2.hash | 7 + package/python-pyroute2/python-pyroute2.mk | 14 + package/python-pyrsistent/Config.in | 6 + .../python-pyrsistent/python-pyrsistent.hash | 5 + .../python-pyrsistent/python-pyrsistent.mk | 14 + package/python-pysendfile/Config.in | 6 + .../python-pysendfile/python-pysendfile.hash | 3 + .../python-pysendfile/python-pysendfile.mk | 13 + package/python-pysftp/Config.in | 8 + package/python-pysftp/python-pysftp.hash | 5 + package/python-pysftp/python-pysftp.mk | 14 + package/python-pysmb/Config.in | 15 + package/python-pysmb/python-pysmb.hash | 3 + package/python-pysmb/python-pysmb.mk | 14 + package/python-pysmi/Config.in | 7 + package/python-pysmi/python-pysmi.hash | 5 + package/python-pysmi/python-pysmi.mk | 14 + package/python-pysnmp-mibs/Config.in | 12 + .../python-pysnmp-mibs.hash | 5 + .../python-pysnmp-mibs/python-pysnmp-mibs.mk | 16 + package/python-pysnmp/Config.in | 10 + package/python-pysnmp/python-pysnmp.hash | 5 + package/python-pysnmp/python-pysnmp.mk | 14 + package/python-pysocks/Config.in | 6 + package/python-pysocks/python-pysocks.hash | 5 + package/python-pysocks/python-pysocks.mk | 14 + package/python-pytablereader/Config.in | 17 + .../python-pytablereader.hash | 5 + .../python-pytablereader.mk | 14 + package/python-pytablewriter/Config.in | 15 + .../python-pytablewriter.hash | 5 + .../python-pytablewriter.mk | 14 + package/python-pytest-asyncio/Config.in | 7 + .../python-pytest-asyncio.hash | 5 + .../python-pytest-asyncio.mk | 14 + package/python-pytest/Config.in | 15 + package/python-pytest/python-pytest.hash | 5 + package/python-pytest/python-pytest.mk | 15 + package/python-pythran/python-pythran.hash | 6 + package/python-pythran/python-pythran.mk | 19 + package/python-pytrie/Config.in | 7 + package/python-pytrie/python-pytrie.hash | 5 + package/python-pytrie/python-pytrie.mk | 14 + package/python-pytz/Config.in | 6 + package/python-pytz/python-pytz.hash | 5 + package/python-pytz/python-pytz.mk | 14 + ...ng-libudev-on-systems-without-ldconf.patch | 51 + package/python-pyudev/Config.in | 14 + package/python-pyudev/python-pyudev.hash | 5 + package/python-pyudev/python-pyudev.mk | 14 + package/python-pyusb/Config.in | 14 + package/python-pyusb/python-pyusb.hash | 5 + package/python-pyusb/python-pyusb.mk | 15 + package/python-pyxb/Config.in | 8 + package/python-pyxb/python-pyxb.hash | 4 + package/python-pyxb/python-pyxb.mk | 14 + package/python-pyyaml/Config.in | 7 + package/python-pyyaml/python-pyyaml.hash | 5 + package/python-pyyaml/python-pyyaml.mk | 20 + ...ldroot-zmq-version-instead-of-detect.patch | 54 + package/python-pyzmq/Config.in | 12 + package/python-pyzmq/python-pyzmq.hash | 6 + package/python-pyzmq/python-pyzmq.mk | 29 + package/python-qrcode/Config.in | 18 + package/python-qrcode/python-qrcode.hash | 5 + package/python-qrcode/python-qrcode.mk | 14 + package/python-raven/Config.in | 9 + package/python-raven/python-raven.hash | 5 + package/python-raven/python-raven.mk | 14 + package/python-redis/Config.in | 6 + package/python-redis/python-redis.hash | 5 + package/python-redis/python-redis.mk | 14 + package/python-reentry/Config.in | 9 + package/python-reentry/python-reentry.hash | 5 + package/python-reentry/python-reentry.mk | 14 + package/python-regex/Config.in | 6 + package/python-regex/python-regex.hash | 5 + package/python-regex/python-regex.mk | 15 + package/python-remi/Config.in | 11 + package/python-remi/python-remi.hash | 2 + package/python-remi/python-remi.mk | 13 + package/python-request-id/Config.in | 7 + .../python-request-id/python-request-id.hash | 5 + .../python-request-id/python-request-id.mk | 14 + package/python-requests-oauthlib/Config.in | 8 + .../python-requests-oauthlib.hash | 5 + .../python-requests-oauthlib.mk | 14 + package/python-requests-toolbelt/Config.in | 7 + .../python-requests-toolbelt.hash | 5 + .../python-requests-toolbelt.mk | 14 + package/python-requests/Config.in | 13 + package/python-requests/python-requests.hash | 5 + package/python-requests/python-requests.mk | 22 + package/python-rfc3987/Config.in | 7 + package/python-rfc3987/python-rfc3987.hash | 5 + package/python-rfc3987/python-rfc3987.mk | 14 + .../0001-fix-build-with-gcc-10.x.patch | 147 + package/python-rpi-gpio/Config.in | 7 + package/python-rpi-gpio/python-rpi-gpio.hash | 6 + package/python-rpi-gpio/python-rpi-gpio.mk | 14 + package/python-rpi-ws281x/Config.in | 7 + .../python-rpi-ws281x/python-rpi-ws281x.hash | 6 + .../python-rpi-ws281x/python-rpi-ws281x.mk | 14 + package/python-rsa/Config.in | 10 + package/python-rsa/python-rsa.hash | 5 + package/python-rsa/python-rsa.mk | 15 + package/python-rtoml/Config.in | 7 + package/python-rtoml/python-rtoml.hash | 4 + package/python-rtoml/python-rtoml.mk | 22 + package/python-rtslib-fb/Config.in | 9 + .../python-rtslib-fb/python-rtslib-fb.hash | 3 + package/python-rtslib-fb/python-rtslib-fb.mk | 17 + package/python-ruamel-yaml/Config.in | 8 + .../python-ruamel-yaml.hash | 5 + .../python-ruamel-yaml/python-ruamel-yaml.mk | 16 + package/python-s3transfer/Config.in | 7 + .../python-s3transfer/python-s3transfer.hash | 4 + .../python-s3transfer/python-s3transfer.mk | 14 + package/python-scandir/Config.in | 6 + package/python-scandir/python-scandir.hash | 5 + package/python-scandir/python-scandir.mk | 14 + package/python-scapy/Config.in | 7 + package/python-scapy/python-scapy.hash | 5 + package/python-scapy/python-scapy.mk | 16 + package/python-schedule/Config.in | 6 + package/python-schedule/python-schedule.hash | 5 + package/python-schedule/python-schedule.mk | 14 + package/python-scipy/Config.in | 25 + package/python-scipy/python-scipy.hash | 9 + package/python-scipy/python-scipy.mk | 58 + package/python-sdnotify/Config.in | 7 + package/python-sdnotify/python-sdnotify.hash | 5 + package/python-sdnotify/python-sdnotify.mk | 14 + package/python-secretstorage/Config.in | 8 + .../python-secretstorage.hash | 5 + .../python-secretstorage.mk | 14 + package/python-see/Config.in | 6 + package/python-see/python-see.hash | 4 + package/python-see/python-see.mk | 14 + .../python-semantic-version.hash | 5 + .../python-semantic-version.mk | 14 + package/python-semver/Config.in | 6 + package/python-semver/python-semver.hash | 5 + package/python-semver/python-semver.mk | 14 + package/python-sentry-sdk/Config.in | 8 + .../python-sentry-sdk/python-sentry-sdk.hash | 5 + .../python-sentry-sdk/python-sentry-sdk.mk | 14 + package/python-serial-asyncio/Config.in | 7 + .../python-serial-asyncio.hash | 5 + .../python-serial-asyncio.mk | 14 + package/python-serial/Config.in | 6 + package/python-serial/python-serial.hash | 5 + package/python-serial/python-serial.mk | 15 + package/python-service-identity/Config.in | 13 + .../python-service-identity.hash | 5 + .../python-service-identity.mk | 14 + package/python-setproctitle/Config.in | 6 + .../python-setproctitle.hash | 5 + .../python-setproctitle.mk | 14 + .../python-setuptools-rust.hash | 5 + .../python-setuptools-rust.mk | 15 + .../python-setuptools-scm-git-archive.hash | 5 + .../python-setuptools-scm-git-archive.mk | 15 + .../python-setuptools-scm.hash | 5 + .../python-setuptools-scm.mk | 19 + .../0001-add-executable.patch | 72 + package/python-setuptools/Config.in | 9 + .../python-setuptools/python-setuptools.hash | 4 + .../python-setuptools/python-setuptools.mk | 17 + package/python-sh/Config.in | 7 + package/python-sh/python-sh.hash | 5 + package/python-sh/python-sh.mk | 14 + package/python-shutilwhich/Config.in | 6 + .../python-shutilwhich.hash | 3 + .../python-shutilwhich/python-shutilwhich.mk | 13 + package/python-simpleaudio/Config.in | 13 + .../python-simpleaudio.hash | 5 + .../python-simpleaudio/python-simpleaudio.mk | 15 + package/python-simplegeneric/Config.in | 7 + .../python-simplegeneric.hash | 3 + .../python-simplegeneric.mk | 24 + package/python-simplejson/Config.in | 6 + .../python-simplejson/python-simplejson.hash | 5 + .../python-simplejson/python-simplejson.mk | 16 + package/python-simplelogging/Config.in | 7 + .../python-simplelogging.hash | 5 + .../python-simplelogging.mk | 14 + package/python-simplesqlite/Config.in | 17 + .../python-simplesqlite.hash | 5 + .../python-simplesqlite.mk | 14 + ...-remove-join-from-sip-h-files-string.patch | 33 + package/python-sip/Config.in | 17 + package/python-sip/python-sip.hash | 5 + package/python-sip/python-sip.mk | 50 + package/python-six/Config.in | 9 + package/python-six/Config.in.host | 9 + package/python-six/python-six.hash | 5 + package/python-six/python-six.mk | 15 + package/python-slob/Config.in | 19 + package/python-slob/python-slob.hash | 3 + package/python-slob/python-slob.mk | 13 + package/python-smbus-cffi/Config.in | 10 + .../python-smbus-cffi/python-smbus-cffi.hash | 5 + .../python-smbus-cffi/python-smbus-cffi.mk | 15 + package/python-smmap2/Config.in | 10 + package/python-smmap2/python-smmap2.hash | 5 + package/python-smmap2/python-smmap2.mk | 14 + package/python-snappy/Config.in | 12 + package/python-snappy/python-snappy.hash | 5 + package/python-snappy/python-snappy.mk | 14 + package/python-socketio/Config.in | 8 + package/python-socketio/python-socketio.hash | 5 + package/python-socketio/python-socketio.mk | 13 + package/python-sockjs/Config.in | 7 + package/python-sockjs/python-sockjs.hash | 5 + package/python-sockjs/python-sockjs.mk | 14 + package/python-sortedcontainers/Config.in | 7 + .../python-sortedcontainers.hash | 5 + .../python-sortedcontainers.mk | 14 + package/python-soupsieve/Config.in | 6 + .../python-soupsieve/python-soupsieve.hash | 5 + package/python-soupsieve/python-soupsieve.mk | 14 + package/python-spidev/Config.in | 7 + package/python-spidev/python-spidev.hash | 5 + package/python-spidev/python-spidev.mk | 14 + package/python-sqlalchemy/Config.in | 13 + .../python-sqlalchemy/python-sqlalchemy.hash | 5 + .../python-sqlalchemy/python-sqlalchemy.mk | 16 + package/python-sqliteschema/Config.in | 11 + .../python-sqliteschema.hash | 5 + .../python-sqliteschema.mk | 14 + package/python-sqlparse/Config.in | 8 + package/python-sqlparse/python-sqlparse.hash | 5 + package/python-sqlparse/python-sqlparse.mk | 14 + package/python-systemd/Config.in | 10 + package/python-systemd/python-systemd.hash | 5 + package/python-systemd/python-systemd.mk | 15 + package/python-tabledata/Config.in | 11 + .../python-tabledata/python-tabledata.hash | 5 + package/python-tabledata/python-tabledata.mk | 14 + package/python-tempora/Config.in | 9 + package/python-tempora/python-tempora.hash | 5 + package/python-tempora/python-tempora.mk | 15 + package/python-termcolor/Config.in | 6 + .../python-termcolor/python-termcolor.hash | 5 + package/python-termcolor/python-termcolor.mk | 14 + package/python-terminaltables/Config.in | 7 + .../python-terminaltables.hash | 5 + .../python-terminaltables.mk | 14 + package/python-texttable/Config.in | 6 + .../python-texttable/python-texttable.hash | 5 + package/python-texttable/python-texttable.mk | 14 + package/python-thrift/Config.in | 7 + package/python-thrift/python-thrift.hash | 5 + package/python-thrift/python-thrift.mk | 14 + package/python-tinycss2/Config.in | 7 + package/python-tinycss2/python-tinycss2.hash | 5 + package/python-tinycss2/python-tinycss2.mk | 14 + package/python-tinyrpc/Config.in | 9 + package/python-tinyrpc/python-tinyrpc.hash | 5 + package/python-tinyrpc/python-tinyrpc.mk | 14 + package/python-tomako/Config.in | 9 + package/python-tomako/python-tomako.hash | 5 + package/python-tomako/python-tomako.mk | 14 + package/python-toml/Config.in | 6 + package/python-toml/python-toml.hash | 5 + package/python-toml/python-toml.mk | 15 + package/python-tomli/Config.in | 6 + package/python-tomli/python-tomli.hash | 5 + package/python-tomli/python-tomli.mk | 16 + package/python-tornado/Config.in | 9 + package/python-tornado/python-tornado.hash | 5 + package/python-tornado/python-tornado.mk | 16 + package/python-tqdm/Config.in | 6 + package/python-tqdm/python-tqdm.hash | 5 + package/python-tqdm/python-tqdm.mk | 16 + package/python-traitlets/Config.in | 6 + .../python-traitlets/python-traitlets.hash | 5 + package/python-traitlets/python-traitlets.mk | 14 + package/python-treq/Config.in | 16 + package/python-treq/python-treq.hash | 5 + package/python-treq/python-treq.mk | 18 + package/python-twisted/Config.in | 44 + package/python-twisted/python-twisted.hash | 5 + package/python-twisted/python-twisted.mk | 20 + package/python-txaio/Config.in | 6 + package/python-txaio/python-txaio.hash | 5 + package/python-txaio/python-txaio.mk | 14 + package/python-txdbus/Config.in | 11 + package/python-txdbus/python-txdbus.hash | 3 + package/python-txdbus/python-txdbus.mk | 13 + package/python-txtorcon/Config.in | 16 + package/python-txtorcon/python-txtorcon.hash | 5 + package/python-txtorcon/python-txtorcon.mk | 14 + package/python-typeguard/Config.in | 6 + .../python-typeguard/python-typeguard.hash | 5 + package/python-typeguard/python-typeguard.mk | 15 + package/python-typepy/Config.in | 8 + package/python-typepy/python-typepy.hash | 5 + package/python-typepy/python-typepy.mk | 14 + package/python-typing-extensions/Config.in | 6 + .../python-typing-extensions.hash | 5 + .../python-typing-extensions.mk | 15 + package/python-typing-inspect/Config.in | 7 + .../python-typing-inspect.hash | 5 + .../python-typing-inspect.mk | 14 + package/python-u-msgpack/Config.in | 7 + .../python-u-msgpack/python-u-msgpack.hash | 5 + package/python-u-msgpack/python-u-msgpack.mk | 14 + package/python-ubjson/Config.in | 7 + package/python-ubjson/python-ubjson.hash | 5 + package/python-ubjson/python-ubjson.mk | 14 + package/python-ujson/Config.in | 11 + package/python-ujson/python-ujson.hash | 5 + package/python-ujson/python-ujson.mk | 15 + .../python-unittest-xml-reporting/Config.in | 8 + .../python-unittest-xml-reporting.hash | 5 + .../python-unittest-xml-reporting.mk | 23 + package/python-urllib3/Config.in | 8 + package/python-urllib3/python-urllib3.hash | 5 + package/python-urllib3/python-urllib3.mk | 17 + package/python-urwid/Config.in | 6 + package/python-urwid/python-urwid.hash | 5 + package/python-urwid/python-urwid.mk | 14 + package/python-uvloop/Config.in | 17 + package/python-uvloop/python-uvloop.hash | 6 + package/python-uvloop/python-uvloop.mk | 17 + package/python-validators/Config.in | 8 + .../python-validators/python-validators.hash | 5 + .../python-validators/python-validators.mk | 16 + .../python-vcversioner.hash | 3 + .../python-vcversioner/python-vcversioner.mk | 13 + package/python-versiontools/Config.in | 6 + .../python-versiontools.hash | 2 + .../python-versiontools.mk | 14 + package/python-visitor/Config.in | 6 + package/python-visitor/python-visitor.hash | 4 + package/python-visitor/python-visitor.mk | 14 + package/python-watchdog/Config.in | 10 + package/python-watchdog/python-watchdog.hash | 6 + package/python-watchdog/python-watchdog.mk | 14 + package/python-wcwidth/Config.in | 7 + package/python-wcwidth/python-wcwidth.hash | 5 + package/python-wcwidth/python-wcwidth.mk | 14 + package/python-weasyprint/Config.in | 20 + .../python-weasyprint/python-weasyprint.hash | 5 + .../python-weasyprint/python-weasyprint.mk | 14 + package/python-web2py/Config.in | 34 + package/python-web2py/S51web2py | 25 + package/python-web2py/python-web2py.hash | 3 + package/python-web2py/python-web2py.mk | 76 + package/python-web2py/web2py.service | 11 + package/python-webencodings/Config.in | 6 + .../python-webencodings.hash | 5 + .../python-webencodings.mk | 14 + package/python-webob/Config.in | 7 + package/python-webob/python-webob.hash | 5 + package/python-webob/python-webob.mk | 14 + package/python-webpy/Config.in | 9 + package/python-webpy/python-webpy.hash | 5 + package/python-webpy/python-webpy.mk | 14 + package/python-websocket-client/Config.in | 8 + .../python-websocket-client.hash | 5 + .../python-websocket-client.mk | 14 + package/python-websockets/Config.in | 9 + .../python-websockets/python-websockets.hash | 5 + .../python-websockets/python-websockets.mk | 14 + package/python-werkzeug/Config.in | 8 + package/python-werkzeug/python-werkzeug.hash | 5 + package/python-werkzeug/python-werkzeug.mk | 16 + package/python-whoosh/Config.in | 8 + package/python-whoosh/python-whoosh.hash | 5 + package/python-whoosh/python-whoosh.mk | 14 + package/python-wrapt/Config.in | 6 + package/python-wrapt/python-wrapt.hash | 5 + package/python-wrapt/python-wrapt.mk | 14 + ...1-Adjust-ws4py-for-Python-3.7-syntax.patch | 55 + package/python-ws4py/Config.in | 7 + package/python-ws4py/python-ws4py.hash | 5 + package/python-ws4py/python-ws4py.mk | 14 + package/python-wsaccel/Config.in | 6 + package/python-wsaccel/python-wsaccel.hash | 5 + package/python-wsaccel/python-wsaccel.mk | 14 + package/python-wtforms/Config.in | 8 + package/python-wtforms/python-wtforms.hash | 6 + package/python-wtforms/python-wtforms.mk | 14 + package/python-xlib/Config.in | 7 + package/python-xlib/python-xlib.hash | 5 + package/python-xlib/python-xlib.mk | 15 + package/python-xlrd/Config.in | 9 + package/python-xlrd/Config.in.host | 7 + package/python-xlrd/python-xlrd.hash | 5 + package/python-xlrd/python-xlrd.mk | 15 + package/python-xlsxwriter/Config.in | 7 + .../python-xlsxwriter/python-xlsxwriter.hash | 5 + .../python-xlsxwriter/python-xlsxwriter.mk | 14 + package/python-xlutils/Config.in | 9 + package/python-xlutils/python-xlutils.hash | 6 + package/python-xlutils/python-xlutils.mk | 14 + package/python-xlwt/Config.in | 8 + package/python-xlwt/python-xlwt.hash | 5 + package/python-xlwt/python-xlwt.mk | 14 + package/python-xmljson/Config.in | 6 + package/python-xmljson/python-xmljson.hash | 5 + package/python-xmljson/python-xmljson.mk | 14 + package/python-xmltodict/Config.in | 7 + .../python-xmltodict/python-xmltodict.hash | 5 + package/python-xmltodict/python-xmltodict.mk | 14 + package/python-xmodem/Config.in | 6 + package/python-xmodem/python-xmodem.hash | 5 + package/python-xmodem/python-xmodem.mk | 14 + package/python-yarl/Config.in | 8 + package/python-yarl/python-yarl.hash | 5 + package/python-yarl/python-yarl.mk | 14 + package/python-yatl/Config.in | 6 + package/python-yatl/python-yatl.hash | 3 + package/python-yatl/python-yatl.mk | 14 + package/python-zc-lockfile/Config.in | 6 + .../python-zc-lockfile.hash | 5 + .../python-zc-lockfile/python-zc-lockfile.mk | 14 + package/python-zeroconf/Config.in | 8 + package/python-zeroconf/python-zeroconf.hash | 5 + package/python-zeroconf/python-zeroconf.mk | 14 + package/python-zlmdb/Config.in | 22 + package/python-zlmdb/python-zlmdb.hash | 5 + package/python-zlmdb/python-zlmdb.mk | 14 + package/python-zope-interface/Config.in | 12 + .../python-zope-interface.hash | 5 + .../python-zope-interface.mk | 14 + package/python-zopfli/Config.in | 10 + package/python-zopfli/python-zopfli.hash | 5 + package/python-zopfli/python-zopfli.mk | 21 + ...e-the-build-of-pyc-files-conditional.patch | 56 + ...taddrinfo-configure-test-when-cross-.patch | 27 + ...re-to-disable-the-build-of-certain-e.patch | 108 + ...y-header-paths-for-cross-compilation.patch | 69 + ...ook-in-usr-lib-termcap-for-libraries.patch | 31 + .../0006-Don-t-add-multiarch-paths.patch | 37 + .../0007-Abort-on-failed-module-build.patch | 30 + .../0008-Serial-ioctl-workaround.patch | 33 + ...e-shebang-of-Python-scripts-for-cros.patch | 35 + ...ig.sh.in-ensure-sed-invocations-only.patch | 67 + .../0011-Add-an-option-to-disable-pydoc.patch | 100 + ...012-Add-an-option-to-disable-lib2to3.patch | 119 + ...option-to-disable-the-sqlite3-module.patch | 71 + ...d-an-option-to-disable-the-tk-module.patch | 74 + ...-option-to-disable-the-curses-module.patch | 61 + .../0016-Add-an-option-to-disable-expat.patch | 93 + ...-Add-an-option-to-disable-CJK-codecs.patch | 30 + .../0018-Add-an-option-to-disable-NIS.patch | 33 + ...Add-an-option-to-disable-unicodedata.patch | 30 + .../0020-Add-an-option-to-disable-IDLE.patch | 92 + ...021-Add-an-option-to-disable-decimal.patch | 66 + ...on-to-disable-the-ossaudiodev-module.patch | 30 + ...an-option-to-disable-openssl-support.patch | 30 + ...ption-to-disable-the-readline-module.patch | 30 + ...to-disable-zlib-bzip2-and-xz-modules.patch | 42 + ...thon-config.sh-don-t-reassign-prefix.patch | 53 + ...-Fix-cross-compiling-the-uuid-module.patch | 43 + ...Add-an-option-to-disable-uuid-module.patch | 33 + ...-fix-building-on-older-distributions.patch | 38 + ...up-CC-print-multiarch-output-for-mus.patch | 51 + ...ion-to-disable-the-berkeleydb-module.patch | 30 + ...-ng-doesn-t-set-errno-when-encryptio.patch | 42 + package/python3/Config.in | 130 + package/python3/Config.in.host | 21 + package/python3/python3.hash | 3 + package/python3/python3.mk | 293 + package/qcom-db410c-firmware/Config.in | 7 + .../qcom-db410c-firmware.hash | 3 + .../qcom-db410c-firmware.mk | 41 + package/qdecoder/Config.in | 8 + package/qdecoder/qdecoder.hash | 3 + package/qdecoder/qdecoder.mk | 15 + ...fp-disable-fp-bench-build-by-default.patch | 28 + ...comp.c-add-missing-header-for-CLONE_.patch | 42 + ...ll.c-fix-build-without-RLIMIT_RTTIME.patch | 48 + package/qemu/Config.in | 159 + package/qemu/Config.in.host | 105 + package/qemu/qemu.hash | 4 + package/qemu/qemu.mk | 416 + ...e-a-main-include-file-QExtSerialPort.patch | 40 + ...d-a-pkgconfig-file-to-ease-usage-wit.patch | 28 + package/qextserialport/Config.in | 7 + package/qextserialport/qextserialport.hash | 3 + package/qextserialport/qextserialport.mk | 17 + package/qhull/Config.in | 19 + package/qhull/qhull.hash | 5 + package/qhull/qhull.mk | 28 + package/qjson/Config.in | 8 + package/qjson/qjson.hash | 3 + package/qjson/qjson.mk | 14 + package/qlibc/Config.in | 17 + package/qlibc/qlibc.hash | 3 + package/qlibc/qlibc.mk | 21 + package/qoriq-cadence-dp-firmware/Config.in | 4 + .../qoriq-cadence-dp-firmware.hash | 5 + .../qoriq-cadence-dp-firmware.mk | 49 + package/qoriq-rcw/Config.in.host | 40 + package/qoriq-rcw/qoriq-rcw.hash | 3 + package/qoriq-rcw/qoriq-rcw.mk | 83 + package/qpdf/Config.in | 22 + package/qpdf/qpdf.hash | 5 + package/qpdf/qpdf.mk | 39 + package/qpid-proton/Config.in | 20 + package/qpid-proton/qpid-proton.hash | 5 + package/qpid-proton/qpid-proton.mk | 48 + package/qprint/Config.in | 18 + package/qprint/qprint.hash | 3 + package/qprint/qprint.mk | 13 + package/qt-webkit-kiosk/Config.in | 34 + package/qt-webkit-kiosk/qt-webkit-kiosk.hash | 3 + package/qt-webkit-kiosk/qt-webkit-kiosk.mk | 26 + package/qt5/Config.in | 75 + package/qt5/qt5.mk | 29 + package/qt5/qt53d/Config.in | 24 + package/qt5/qt53d/qt53d.hash | 7 + package/qt5/qt53d/qt53d.mk | 21 + ...tbase-Fix-build-error-when-using-EGL.patch | 37 + ...ble-conversion-enable-for-microblaze.patch | 29 + ...3-double-conversion-enable-for-nios2.patch | 26 + ...-double-conversion-enable-for-xtensa.patch | 29 + ...r-obscure-EGLNativeDisplayType-types.patch | 63 + .../qt5base/0006-Fix-build-on-riscv32.patch | 46 + ...figure.json-fix-atomicfptr-detection.patch | 48 + ...onvenience-add-missing-QList-include.patch | 37 + package/qt5/qt5base/Config.in | 305 + package/qt5/qt5base/qmake.conf.in | 38 + package/qt5/qt5base/qplatformdefs.h | 1 + package/qt5/qt5base/qt.conf.in | 7 + package/qt5/qt5base/qt5base.hash | 10 + package/qt5/qt5base/qt5base.mk | 370 + package/qt5/qt5charts/Config.in | 12 + package/qt5/qt5charts/qt5charts.hash | 5 + package/qt5/qt5charts/qt5charts.mk | 20 + package/qt5/qt5coap/Config.in | 11 + package/qt5/qt5coap/qt5coap.hash | 6 + package/qt5/qt5coap/qt5coap.mk | 15 + package/qt5/qt5connectivity/Config.in | 17 + .../qt5/qt5connectivity/qt5connectivity.hash | 9 + .../qt5/qt5connectivity/qt5connectivity.mk | 24 + ...gtexture-fix-debug-build-with-uclibc.patch | 47 + ...s-c-limits-include-instead-of-plain-.patch | 41 + package/qt5/qt5declarative/Config.in | 21 + .../qt5/qt5declarative/qt5declarative.hash | 9 + package/qt5/qt5declarative/qt5declarative.mk | 16 + package/qt5/qt5doc/Config.in | 17 + package/qt5/qt5doc/qt5doc.hash | 3 + package/qt5/qt5doc/qt5doc.mk | 28 + ...01-Do-not-use-deprecated-QLinkedList.patch | 39 + package/qt5/qt5enginio/Config.in | 16 + package/qt5/qt5enginio/qt5enginio.hash | 9 + package/qt5/qt5enginio/qt5enginio.mk | 25 + package/qt5/qt5graphicaleffects/Config.in | 19 + .../qt5graphicaleffects.hash | 9 + .../qt5graphicaleffects.mk | 17 + package/qt5/qt5imageformats/Config.in | 11 + .../qt5/qt5imageformats/qt5imageformats.hash | 9 + .../qt5/qt5imageformats/qt5imageformats.mk | 16 + package/qt5/qt5knx/Config.in | 12 + package/qt5/qt5knx/qt5knx.hash | 6 + package/qt5/qt5knx/qt5knx.mk | 15 + ...gl-native-fix-musl-compile-pthread_g.patch | 47 + package/qt5/qt5location/Config.in | 12 + package/qt5/qt5location/qt5location.hash | 9 + package/qt5/qt5location/qt5location.mk | 21 + package/qt5/qt5lottie/Config.in | 12 + package/qt5/qt5lottie/qt5lottie.hash | 6 + package/qt5/qt5lottie/qt5lottie.mk | 17 + package/qt5/qt5mqtt/Config.in | 13 + package/qt5/qt5mqtt/qt5mqtt.hash | 6 + package/qt5/qt5mqtt/qt5mqtt.mk | 15 + package/qt5/qt5multimedia/Config.in | 15 + package/qt5/qt5multimedia/qt5multimedia.hash | 10 + package/qt5/qt5multimedia/qt5multimedia.mk | 37 + package/qt5/qt5opcua/Config.in | 9 + package/qt5/qt5opcua/qt5opcua.hash | 10 + package/qt5/qt5opcua/qt5opcua.mk | 19 + package/qt5/qt5quickcontrols/Config.in | 13 + .../qt5quickcontrols/qt5quickcontrols.hash | 8 + .../qt5/qt5quickcontrols/qt5quickcontrols.mk | 17 + package/qt5/qt5quickcontrols2/Config.in | 15 + .../qt5quickcontrols2/qt5quickcontrols2.hash | 7 + .../qt5quickcontrols2/qt5quickcontrols2.mk | 17 + package/qt5/qt5quicktimeline/Config.in | 12 + .../qt5quicktimeline/qt5quicktimeline.hash | 5 + .../qt5/qt5quicktimeline/qt5quicktimeline.mk | 17 + package/qt5/qt5remoteobjects/Config.in | 15 + .../qt5remoteobjects/qt5remoteobjects.hash | 8 + .../qt5/qt5remoteobjects/qt5remoteobjects.mk | 20 + ...-Detect-32-bits-armv8-a-architecture.patch | 49 + package/qt5/qt5script/Config.in | 15 + package/qt5/qt5script/qt5script.hash | 10 + package/qt5/qt5script/qt5script.mk | 25 + package/qt5/qt5scxml/Config.in | 12 + package/qt5/qt5scxml/qt5scxml.hash | 7 + package/qt5/qt5scxml/qt5scxml.mk | 20 + package/qt5/qt5sensors/Config.in | 10 + package/qt5/qt5sensors/qt5sensors.hash | 9 + package/qt5/qt5sensors/qt5sensors.mk | 19 + package/qt5/qt5serialbus/Config.in | 17 + package/qt5/qt5serialbus/qt5serialbus.hash | 8 + package/qt5/qt5serialbus/qt5serialbus.mk | 17 + package/qt5/qt5serialport/Config.in | 11 + package/qt5/qt5serialport/qt5serialport.hash | 9 + package/qt5/qt5serialport/qt5serialport.mk | 15 + package/qt5/qt5svg/Config.in | 11 + package/qt5/qt5svg/qt5svg.hash | 8 + package/qt5/qt5svg/qt5svg.mk | 15 + ...-designer-tool-fixes-configure-error.patch | 53 + package/qt5/qt5tools/Config.in | 60 + package/qt5/qt5tools/qt5tools.hash | 9 + package/qt5/qt5tools/qt5tools.mk | 65 + package/qt5/qt5virtualkeyboard/Config.in | 59 + .../qt5virtualkeyboard.hash | 9 + .../qt5virtualkeyboard/qt5virtualkeyboard.mk | 47 + .../0001-Add-missing-define-guards.patch | 35 + package/qt5/qt5wayland/Config.in | 24 + package/qt5/qt5wayland/qt5wayland.hash | 9 + package/qt5/qt5wayland/qt5wayland.mk | 29 + package/qt5/qt5webchannel/Config.in | 12 + package/qt5/qt5webchannel/qt5webchannel.hash | 9 + package/qt5/qt5webchannel/qt5webchannel.mk | 30 + .../qt5webengine-chromium-catapult/Config.in | 4 + .../qt5webengine-chromium-catapult.hash | 3 + .../qt5webengine-chromium-catapult.mk | 14 + .../0001-Add-python3-build-support.patch | 1858 +++ .../0002-Don-t-rebase-sysroot-path.patch | 32 + package/qt5/qt5webengine-chromium/Config.in | 5 + .../qt5webengine-chromium/chromium-latest.inc | 1257 ++ .../qt5webengine-chromium.hash | 1256 ++ .../qt5webengine-chromium.mk | 23 + ...ro-don-t-link-statically-with-libstc.patch | 51 + .../0002-Add-python3-build-support.patch | 168 + package/qt5/qt5webengine/Config.in | 112 + package/qt5/qt5webengine/chromium-latest.inc | 1000 ++ package/qt5/qt5webengine/host-pkg-config.in | 6 + .../qt5/qt5webengine/host-python-wrapper.in | 3 + package/qt5/qt5webengine/qt5webengine.hash | 10 + package/qt5/qt5webengine/qt5webengine.mk | 181 + ...tion-ICU-68.1-no-longer-exposes-FALS.patch | 168 + ...with-Python-3.9-avoid-passing-encodi.patch | 33 + ...te-the-header-directly-to-fix-build-.patch | 52 + ..._object-declarations-to-fix-build-wi.patch | 31 + .../0005-Add-support-for-ARC-processors.patch | 93 + ...AppSinkCallbacks-struct-growth-https.patch | 39 + package/qt5/qt5webkit/Config.in | 56 + package/qt5/qt5webkit/qt5webkit.hash | 7 + package/qt5/qt5webkit/qt5webkit.mk | 60 + package/qt5/qt5websockets/Config.in | 13 + package/qt5/qt5websockets/qt5websockets.hash | 8 + package/qt5/qt5websockets/qt5websockets.mk | 23 + package/qt5/qt5webview/Config.in | 16 + package/qt5/qt5webview/qt5webview.hash | 8 + package/qt5/qt5webview/qt5webview.mk | 20 + package/qt5/qt5x11extras/Config.in | 12 + package/qt5/qt5x11extras/qt5x11extras.hash | 9 + package/qt5/qt5x11extras/qt5x11extras.mk | 15 + package/qt5/qt5xmlpatterns/Config.in | 10 + .../qt5/qt5xmlpatterns/qt5xmlpatterns.hash | 9 + package/qt5/qt5xmlpatterns/qt5xmlpatterns.mk | 27 + ...001-Fix-execution-problem-with-Qt5.3.patch | 64 + package/qt5cinex/CinematicExperience-demo | 2 + package/qt5cinex/Config.in | 34 + package/qt5cinex/qt5cinex.hash | 4 + package/qt5cinex/qt5cinex.mk | 34 + package/qt6/Config.in | 43 + package/qt6/qt6.mk | 12 + ...al-qsimd_p.h-fix-build-on-ARM-v7-due.patch | 49 + package/qt6/qt6base/Config.in | 16 + package/qt6/qt6base/qt6base.hash | 8 + package/qt6/qt6base/qt6base.mk | 81 + .../quagga/0001-fix-ipctl-forwarding.patch | 27 + ...2-lib-prefix.h-fix-build-with-gcc-10.patch | 36 + .../quagga/0003-Fix-build-with-gcc-10.patch | 127 + package/quagga/Config.in | 94 + package/quagga/quagga.hash | 5 + package/quagga/quagga.mk | 110 + package/quagga/quagga@.service | 17 + package/quagga/quagga_tmpfiles.conf | 1 + package/quazip/Config.in | 11 + package/quazip/quazip.hash | 3 + package/quazip/quazip.mk | 16 + package/quickjs/Config.in | 21 + package/quickjs/quickjs.hash | 3 + package/quickjs/quickjs.mk | 45 + ...-realloc-3-instead-of-reallocarray-3.patch | 34 + package/quota/Config.in | 15 + package/quota/quota.hash | 7 + package/quota/quota.mk | 43 + ...sing-__P-definition-for-musl-compile.patch | 36 + package/quotatool/Config.in | 7 + package/quotatool/quotatool.hash | 5 + package/quotatool/quotatool.mk | 17 + package/qwt/Config.in | 28 + package/qwt/qwt.hash | 7 + package/qwt/qwt.mk | 64 + package/rabbitmq-c/Config.in | 12 + package/rabbitmq-c/rabbitmq-c.hash | 3 + package/rabbitmq-c/rabbitmq-c.mk | 38 + package/rabbitmq-server/Config.in | 14 + package/rabbitmq-server/S50rabbitmq-server | 30 + package/rabbitmq-server/rabbitmq-server.hash | 25 + package/rabbitmq-server/rabbitmq-server.mk | 69 + .../rabbitmq-server/rabbitmq-server.service | 16 + ...ll-path-lib-instead-of-usr-lib-prefi.patch | 26 + package/racehound/Config.in | 37 + package/racehound/racehound.hash | 3 + package/racehound/racehound.mk | 27 + package/radvd/50-radvd.preset | 1 + package/radvd/Config.in | 15 + package/radvd/S50radvd | 59 + package/radvd/radvd.hash | 3 + package/radvd/radvd.mk | 35 + package/ragel/ragel.hash | 3 + package/ragel/ragel.mk | 16 + package/ramsmp/Config.in | 9 + package/ramsmp/Makefile | 14 + package/ramsmp/ramsmp.hash | 3 + package/ramsmp/ramsmp.mk | 22 + package/ramspeed/Config.in | 7 + package/ramspeed/Makefile | 14 + package/ramspeed/ramspeed.hash | 3 + package/ramspeed/ramspeed.mk | 22 + ...heme-check-for-compiled-python-files.patch | 31 + package/ranger/Config.in | 20 + package/ranger/ranger.hash | 4 + package/ranger/ranger.mk | 26 + package/rapidjson/Config.in | 11 + package/rapidjson/rapidjson.hash | 3 + package/rapidjson/rapidjson.mk | 22 + ...print-operations-are-declared-before.patch | 38 + package/rapidxml/Config.in | 11 + package/rapidxml/rapidxml.hash | 7 + package/rapidxml/rapidxml.mk | 28 + ....ac-remove-conditional-lib-inclusion.patch | 21 + ...pace-declarations-correctly-for-XML-.patch | 47 + ...are-namespace-declarations-correctly.patch | 33 + package/raptor/Config.in | 11 + package/raptor/raptor.hash | 3 + package/raptor/raptor.mk | 52 + ...akefile-allow-passing-CFLAGS-LDFLAGS.patch | 30 + package/raspberrypi-usbboot/Config.in.host | 17 + .../raspberrypi-usbboot.hash | 5 + .../raspberrypi-usbboot.mk | 23 + package/raspi-gpio/Config.in | 12 + package/raspi-gpio/raspi-gpio.hash | 3 + package/raspi-gpio/raspi-gpio.mk | 12 + package/ratpoison/Config.in | 17 + package/ratpoison/ratpoison.hash | 3 + package/ratpoison/ratpoison.mk | 28 + package/rauc/Config.in | 64 + package/rauc/Config.in.host | 10 + package/rauc/rauc.hash | 4 + package/rauc/rauc.mk | 76 + package/rcw-smarc-sal28/Config.in | 25 + package/rcw-smarc-sal28/rcw-smarc-sal28.hash | 3 + package/rcw-smarc-sal28/rcw-smarc-sal28.mk | 37 + package/rdesktop/0001-8bit-colors.patch | 21 + package/rdesktop/Config.in | 24 + package/rdesktop/rdesktop.hash | 3 + package/rdesktop/rdesktop.mk | 35 + package/re2/Config.in | 17 + package/re2/re2.hash | 3 + package/re2/re2.mk | 45 + .../0001-Fix-install-file-list.patch | 29 + .../read-edid/0002-Fix-compiler-check.patch | 19 + .../0003-fix-build-with-gcc-10.patch | 49 + package/read-edid/Config.in | 13 + package/read-edid/read-edid.hash | 3 + package/read-edid/read-edid.mk | 15 + package/readline/0001-curses-link.patch | 18 + package/readline/Config.in | 27 + package/readline/inputrc | 44 + package/readline/readline.hash | 6 + package/readline/readline.mk | 31 + package/reaver/Config.in | 13 + package/reaver/reaver.hash | 3 + package/reaver/reaver.mk | 23 + package/redir/Config.in | 7 + package/redir/redir.hash | 4 + package/redir/redir.mk | 17 + package/redis/0001-uclibc.patch | 28 + .../0002-largefile-conditional-define.patch | 32 + ...is.conf-adjust-defauts-for-buildroot.patch | 29 + package/redis/Config.in | 22 + package/redis/S50redis | 38 + package/redis/redis.hash | 5 + package/redis/redis.mk | 70 + package/redis/redis.service | 24 + package/refpolicy/Config.in | 121 + package/refpolicy/config | 8 + package/refpolicy/refpolicy.hash | 5 + package/refpolicy/refpolicy.mk | 134 + ...e-issue-compiling-with-Visual-Studio.patch | 95 + package/resiprocate/Config.in | 50 + package/resiprocate/resiprocate.hash | 4 + package/resiprocate/resiprocate.mk | 48 + package/restclient-cpp/Config.in | 13 + package/restclient-cpp/restclient-cpp.hash | 3 + package/restclient-cpp/restclient-cpp.mk | 18 + package/restorecond/Config.in | 22 + package/restorecond/S02restorecond | 54 + package/restorecond/restorecond.hash | 5 + package/restorecond/restorecond.mk | 52 + package/rhash/Config.in | 24 + package/rhash/rhash.hash | 5 + package/rhash/rhash.mk | 74 + package/riemann-c-client/Config.in | 17 + .../riemann-c-client/riemann-c-client.hash | 3 + package/riemann-c-client/riemann-c-client.mk | 21 + package/rings/Config.in | 6 + package/rings/rings.hash | 3 + package/rings/rings.mk | 13 + ...llocator-behind-a-cargo-feature-flag.patch | 131 + package/ripgrep/Config.in | 14 + package/ripgrep/ripgrep.hash | 3 + package/ripgrep/ripgrep.mk | 20 + ...01-riscv-disable-precompiled-headers.patch | 34 + package/riscv-isa-sim/Config.in.host | 13 + package/riscv-isa-sim/riscv-isa-sim.hash | 3 + package/riscv-isa-sim/riscv-isa-sim.mk | 14 + .../riscv64-elf-toolchain.mk | 25 + ...gure.ac-fix-build-without-sys-auxv.h.patch | 52 + package/rng-tools/Config.in | 41 + package/rng-tools/S21rngd | 48 + package/rng-tools/rng-tools.hash | 3 + package/rng-tools/rng-tools.mk | 58 + package/rng-tools/rngd.service | 9 + package/rockchip-mali/Config.in | 32 + package/rockchip-mali/rockchip-mali.hash | 2 + package/rockchip-mali/rockchip-mali.mk | 77 + ...ls-build_detect_platform-fix-C-tests.patch | 325 + package/rocksdb/Config.in | 36 + package/rocksdb/rocksdb.hash | 8 + package/rocksdb/rocksdb.mk | 107 + ...src-pppoe.h-fix-build-with-musl-libc.patch | 60 + package/rp-pppoe/Config.in | 18 + package/rp-pppoe/rp-pppoe.hash | 4 + package/rp-pppoe/rp-pppoe.mk | 43 + .../0001-Remove-yellow-pages-support.patch | 48 + package/rpcbind/Config.in | 16 + package/rpcbind/S30rpcbind | 38 + package/rpcbind/rpcbind.hash | 3 + package/rpcbind/rpcbind.mk | 33 + package/rpi-firmware/Config.in | 108 + package/rpi-firmware/cmdline.txt | 1 + package/rpi-firmware/rpi-firmware.hash | 3 + package/rpi-firmware/rpi-firmware.mk | 89 + package/rpi-rgb-led-matrix/Config.in | 43 + .../rpi-rgb-led-matrix.hash | 3 + .../rpi-rgb-led-matrix/rpi-rgb-led-matrix.mk | 82 + ...r-the-OpenGLESv2-EGL-and-bcm_host-li.patch | 107 + ...-faulty-assert-to-make-weston-happy-.patch | 35 + .../0003-Disable-Werror-everywhere.patch | 165 + ...cations-disable-missing-applications.patch | 34 + ...erge-add-missing-include-for-va_list.patch | 34 + ...threads-CMakeLists.txt-fix-build-wit.patch | 45 + ...dd-GLint64-GLuint64-and-GLsync-typed.patch | 99 + package/rpi-userland/Config.in | 45 + package/rpi-userland/rpi-userland.hash | 3 + package/rpi-userland/rpi-userland.mk | 49 + package/rpm/Config.in | 36 + package/rpm/rpm.hash | 5 + package/rpm/rpm.mk | 110 + package/rrdtool/Config.in | 40 + package/rrdtool/rrdtool.hash | 4 + package/rrdtool/rrdtool.mk | 40 + package/rs485conf/Config.in | 9 + package/rs485conf/rs485conf.hash | 3 + package/rs485conf/rs485conf.mk | 20 + package/rsh-redone/Config.in | 42 + package/rsh-redone/rsh-redone.hash | 4 + package/rsh-redone/rsh-redone.mk | 38 + package/rsync/Config.in | 10 + package/rsync/rsync.hash | 5 + package/rsync/rsync.mk | 30 + package/rsyslog/Config.in | 26 + package/rsyslog/S01rsyslogd | 53 + package/rsyslog/rsyslog.hash | 7 + package/rsyslog/rsyslog.mk | 172 + package/rsyslog/rsyslog.service | 19 + ...001-Fix-a-build-issue-with-uClibc-ng.patch | 33 + ...plicit-undefine-PYLIB-for-compatibil.patch | 48 + package/rt-tests/Config.in | 39 + package/rt-tests/rt-tests.hash | 4 + package/rt-tests/rt-tests.mk | 31 + package/rtai/Config.in | 8 + package/rtai/rtai.hash | 2 + package/rtai/rtai.mk | 32 + package/rtc-tools/Config.in | 7 + package/rtc-tools/rtc-tools.hash | 3 + package/rtc-tools/rtc-tools.mk | 31 + package/rtl8188eu/Config.in | 21 + package/rtl8188eu/rtl8188eu.hash | 3 + package/rtl8188eu/rtl8188eu.mk | 28 + package/rtl8189es/Config.in | 10 + package/rtl8189es/rtl8189es.hash | 2 + package/rtl8189es/rtl8189es.mk | 24 + ...1-Makefile-remove-default-endianness.patch | 30 + package/rtl8189fs/Config.in | 10 + package/rtl8189fs/rtl8189fs.hash | 2 + package/rtl8189fs/rtl8189fs.mk | 25 + package/rtl8723bu/Config.in | 10 + package/rtl8723bu/rtl8723bu.hash | 2 + package/rtl8723bu/rtl8723bu.mk | 20 + package/rtl8723ds/Config.in | 10 + package/rtl8723ds/rtl8723ds.hash | 2 + package/rtl8723ds/rtl8723ds.mk | 24 + package/rtl8812au-aircrack-ng/Config.in | 10 + .../rtl8812au-aircrack-ng.hash | 3 + .../rtl8812au-aircrack-ng.mk | 35 + ...-fallthrough-comments-for-kernel-5.3.patch | 29 + ...river-crashes-from-aircrack-ng-rtl88.patch | 169 + ...f-for-extending-string-which-causes-.patch | 339 + ...ate-to-rtl_sha256_state-to-avoid-nam.patch | 79 + ..._mgmt_frame_register-on-kernel-5.8.0.patch | 47 + ...-file_operations-to-proc_ops-for-5.6.patch | 110 + package/rtl8821au/Config.in | 10 + package/rtl8821au/rtl8821au.hash | 3 + package/rtl8821au/rtl8821au.mk | 19 + ...inor-Fix-a-compiler-flag-needs-GCC-7.patch | 27 + ....c-fix-build-without-__has_attribute.patch | 34 + ...low-in-Clipsal-CMR113-and-Somfy-IOHC.patch | 58 + ...0004-Fix-overflow-in-Acurite-00275rm.patch | 35 + package/rtl_433/Config.in | 16 + package/rtl_433/rtl_433.hash | 4 + package/rtl_433/rtl_433.mk | 40 + package/rtmpdump/0001-include-limits.h.patch | 39 + package/rtmpdump/Config.in | 8 + package/rtmpdump/rtmpdump.hash | 3 + package/rtmpdump/rtmpdump.mk | 55 + ...disable-execinfo-option-to-configure.patch | 34 + package/rtorrent/Config.in | 23 + package/rtorrent/rtorrent.hash | 3 + package/rtorrent/rtorrent.mk | 16 + package/rtptools/Config.in | 7 + package/rtptools/rtptools.hash | 3 + package/rtptools/rtptools.mk | 13 + package/rtty/Config.in | 8 + package/rtty/rtty.hash | 2 + package/rtty/rtty.mk | 38 + .../0001-dont-use-legacy-functions.patch | 18 + package/rubix/0002-misc-fixes.patch | 135 + package/rubix/Config.in | 8 + package/rubix/rubix.hash | 3 + package/rubix/rubix.mk | 30 + .../0001-Fix-build-with-LibreSSL-3-5.patch | 25 + package/ruby/Config.in | 16 + package/ruby/ruby.hash | 7 + package/ruby/ruby.mk | 105 + package/runc/Config.in | 16 + package/runc/Config.in.host | 8 + package/runc/runc.hash | 3 + package/runc/runc.mk | 30 + package/rust-bin/rust-bin.hash | 129 + package/rust-bin/rust-bin.mk | 62 + package/rust/rust.hash | 6 + package/rust/rust.mk | 94 + package/rustc/Config.in.host | 186 + package/rustc/rustc.mk | 24 + package/rwmem/Config.in | 15 + package/rwmem/rwmem.hash | 2 + package/rwmem/rwmem.mk | 14 + ...01-build-Add-man_pages-build-options.patch | 150 + ...-meson.build-fix-g_ir_compiler-calls.patch | 84 + package/rygel/Config.in | 63 + package/rygel/S99rygel | 37 + package/rygel/rygel.hash | 6 + package/rygel/rygel.mk | 67 + package/rygel/rygel.service | 10 + package/s390-tools/Config.in | 14 + package/s390-tools/s390-tools.hash | 3 + package/s390-tools/s390-tools.mk | 106 + package/s6-dns/Config.in | 10 + package/s6-dns/s6-dns.hash | 3 + package/s6-dns/s6-dns.mk | 45 + .../0001-configure-add-D_GNU_SOURCE.patch | 40 + package/s6-linux-init/Config.in | 12 + package/s6-linux-init/s6-linux-init.hash | 3 + package/s6-linux-init/s6-linux-init.mk | 36 + package/s6-linux-utils/Config.in | 9 + package/s6-linux-utils/s6-linux-utils.hash | 3 + package/s6-linux-utils/s6-linux-utils.mk | 34 + package/s6-networking/Config.in | 13 + package/s6-networking/s6-networking.hash | 3 + package/s6-networking/s6-networking.mk | 56 + package/s6-portable-utils/Config.in | 12 + .../s6-portable-utils/s6-portable-utils.hash | 3 + .../s6-portable-utils/s6-portable-utils.mk | 34 + package/s6-rc/Config.in | 11 + package/s6-rc/Config.in.host | 8 + package/s6-rc/s6-rc.hash | 3 + package/s6-rc/s6-rc.mk | 73 + package/s6/Config.in | 11 + package/s6/s6.hash | 3 + package/s6/s6.mk | 70 + ...01-fix-armv7-asm-inline-error-GH-115.patch | 156 + package/safeclib/Config.in | 9 + package/safeclib/safeclib.hash | 5 + package/safeclib/safeclib.mk | 19 + package/sam-ba/Config.in.host | 11 + package/sam-ba/sam-ba.hash | 3 + package/sam-ba/sam-ba.mk | 25 + ...01-libreplace-disable-libbsd-support.patch | 46 + ...uilt-heimdal-build-tools-in-case-of-.patch | 89 + ...st.c-include-stdint.h-before-cmoka.h.patch | 40 + .../0004-lib-util-Add-signal.h-include.patch | 37 + package/samba4/Config.in | 58 + package/samba4/S91smb | 56 + package/samba4/samba4-cache.txt | 47 + package/samba4/samba4.hash | 4 + package/samba4/samba4.mk | 205 + ...01-sane_backend-add-missing-config.h.patch | 49 + .../0002-genesys-fix-gcc-4.8-compile.patch | 50 + ...ep-instead-of-std-this_thread-sleep_.patch | 46 + ...-fix-uclibc-compile-include-stdarg.h.patch | 58 + ...canutil-fix-uclibc-compile-include-s.patch | 59 + package/sane-backends/Config.in | 16 + package/sane-backends/sane-backends.hash | 5 + package/sane-backends/sane-backends.mk | 95 + package/sane-backends/saned.socket | 10 + package/sane-backends/saned@.service | 18 + package/sbc/Config.in | 8 + package/sbc/sbc.hash | 6 + package/sbc/sbc.mk | 15 + package/sconeserver/Config.in | 94 + package/sconeserver/sconeserver.hash | 3 + package/sconeserver/sconeserver.mk | 92 + package/scons/scons.hash | 3 + package/scons/scons.mk | 19 + package/screen/0001-no-memcpy-fallback.patch | 126 + .../0002-install-no-backup-binary.patch | 41 + .../screen/0003-install-always-chmod.patch | 29 + .../0004-install-nonversioned-binary.patch | 31 + package/screen/0005-rename-sched_h.patch | 142 + .../0006-comm-h-now-depends-on-term-h.patch | 28 + ...-needed-for-list_-display-generic-.o.patch | 35 + package/screen/Config.in | 14 + package/screen/screen.hash | 5 + package/screen/screen.mk | 39 + package/screenfetch/Config.in | 9 + package/screenfetch/screenfetch.hash | 2 + package/screenfetch/screenfetch.mk | 17 + ...-m4-macros-are-included-in-the-build.patch | 45 + package/scrub/Config.in | 7 + package/scrub/scrub.hash | 5 + package/scrub/scrub.mk | 16 + package/scrypt/Config.in | 9 + package/scrypt/scrypt.hash | 4 + package/scrypt/scrypt.mk | 15 + package/sdbus-cpp/Config.in | 16 + package/sdbus-cpp/sdbus-cpp.hash | 4 + package/sdbus-cpp/sdbus-cpp.mk | 15 + package/sdbusplus/Config.in | 16 + package/sdbusplus/Config.in.host | 10 + package/sdbusplus/sdbusplus.hash | 5 + package/sdbusplus/sdbusplus.mk | 35 + .../0001-use-correct-directfb-config.patch | 25 + .../0002-fix-compilation-with-libx11.patch | 60 + package/sdl/Config.in | 26 + package/sdl/sdl.hash | 4 + package/sdl/sdl.mk | 98 + package/sdl2/Config.in | 64 + package/sdl2/sdl2.hash | 4 + package/sdl2/sdl2.mk | 184 + package/sdl2_gfx/Config.in | 10 + package/sdl2_gfx/sdl2_gfx.hash | 4 + package/sdl2_gfx/sdl2_gfx.mk | 27 + package/sdl2_image/Config.in | 9 + package/sdl2_image/sdl2_image.hash | 3 + package/sdl2_image/sdl2_image.mk | 60 + package/sdl2_mixer/Config.in | 11 + package/sdl2_mixer/sdl2_mixer.hash | 3 + package/sdl2_mixer/sdl2_mixer.mk | 52 + package/sdl2_net/Config.in | 9 + package/sdl2_net/sdl2_net.hash | 3 + package/sdl2_net/sdl2_net.mk | 15 + package/sdl2_ttf/Config.in | 9 + package/sdl2_ttf/sdl2_ttf.hash | 3 + package/sdl2_ttf/sdl2_ttf.mk | 36 + package/sdl_gfx/Config.in | 10 + package/sdl_gfx/sdl_gfx.hash | 6 + package/sdl_gfx/sdl_gfx.mk | 28 + package/sdl_image/Config.in | 57 + package/sdl_image/sdl_image.hash | 3 + package/sdl_image/sdl_image.mk | 60 + ...ibs.private-field-to-pkg-config-file.patch | 63 + .../0002-configure__set_macro_directory.patch | 34 + ...re.ac-fix-static-linking-with-tremor.patch | 24 + package/sdl_mixer/Config.in | 21 + package/sdl_mixer/sdl_mixer.hash | 3 + package/sdl_mixer/sdl_mixer.mk | 74 + package/sdl_net/Config.in | 9 + package/sdl_net/sdl_net.hash | 3 + package/sdl_net/sdl_net.mk | 25 + package/sdl_sound/0001-fix-constness.patch | 16 + package/sdl_sound/0002-remove-werror.patch | 29 + .../0003-renamed-physfs-export.patch | 32 + package/sdl_sound/Config.in | 23 + package/sdl_sound/sdl_sound.hash | 3 + package/sdl_sound/sdl_sound.mk | 74 + package/sdl_ttf/Config.in | 9 + package/sdl_ttf/sdl_ttf.hash | 3 + package/sdl_ttf/sdl_ttf.mk | 25 + package/sdparm/Config.in | 6 + package/sdparm/sdparm.hash | 3 + package/sdparm/sdparm.mk | 19 + package/seatd/Config.in | 23 + package/seatd/S70seatd | 46 + package/seatd/seatd.hash | 5 + package/seatd/seatd.mk | 53 + package/sed/Config.in | 13 + package/sed/sed.hash | 6 + package/sed/sed.mk | 24 + ...001-Common-log.h-time-2-needs-time.h.patch | 37 + package/sedutil/Config.in | 29 + package/sedutil/sedutil.hash | 3 + package/sedutil/sedutil.mk | 20 + package/selinux-python/Config.in | 51 + package/selinux-python/selinux-python.hash | 5 + package/selinux-python/selinux-python.mk | 42 + package/semodule-utils/Config.in | 21 + package/semodule-utils/semodule-utils.hash | 5 + package/semodule-utils/semodule-utils.mk | 27 + package/sentry-cli/Config.in.host | 10 + package/sentry-cli/sentry-cli.hash | 3 + package/sentry-cli/sentry-cli.mk | 14 + .../0001-sentry.h-include-ucontext.h.patch | 27 + package/sentry-native/Config.in | 28 + package/sentry-native/sentry-native.hash | 3 + package/sentry-native/sentry-native.mk | 17 + package/ser2net/Config.in | 11 + package/ser2net/S50ser2net | 43 + package/ser2net/ser2net.hash | 6 + package/ser2net/ser2net.mk | 29 + package/serd/Config.in | 8 + package/serd/serd.hash | 4 + package/serd/serd.mk | 20 + ...e-setools.InfoFlowAnalysis-and-setoo.patch | 145 + package/setools/Config.in | 30 + package/setools/setools.hash | 5 + package/setools/setools.mk | 51 + package/setserial/0001-build-system-fix.patch | 28 + .../0002-tiocghayesesp-build-fix.patch | 28 + package/setserial/Config.in | 8 + package/setserial/setserial.hash | 5 + package/setserial/setserial.mk | 27 + .../0001-src-sg_dd.c-fix-musl-build.patch | 39 + ...002-configure.ac-fix-uclibc-ng-build.patch | 36 + package/sg3_utils/Config.in | 18 + package/sg3_utils/sg3_utils.hash | 6 + package/sg3_utils/sg3_utils.mk | 66 + ...-pkg-config-to-find-netfilter_conntr.patch | 62 + .../0002-fix-maybe-uninitialized-errors.patch | 93 + ...kefile.am-remove-static-from-LDFLAGS.patch | 61 + package/shadowsocks-libev/Config.in | 34 + .../shadowsocks-libev/shadowsocks-libev.hash | 7 + .../shadowsocks-libev/shadowsocks-libev.mk | 27 + ...e.ac-find-sndfile-through-pkg-config.patch | 43 + package/shairport-sync/Config.in | 76 + package/shairport-sync/S99shairport-sync | 27 + package/shairport-sync/shairport-sync.hash | 3 + package/shairport-sync/shairport-sync.mk | 101 + package/shapelib/Config.in | 14 + package/shapelib/shapelib.hash | 4 + package/shapelib/shapelib.mk | 13 + ...ct-dependency-from-install-data-hook.patch | 47 + package/shared-mime-info/Config.in | 17 + .../shared-mime-info/shared-mime-info.hash | 3 + package/shared-mime-info/shared-mime-info.mk | 37 + ...e-disable-always-building-statically.patch | 26 + ...9-fix-for-broken-multipart-form-data.patch | 26 + package/shellinabox/Config.in | 18 + package/shellinabox/shellinabox.hash | 4 + package/shellinabox/shellinabox.mk | 33 + package/sigrok-cli/Config.in | 23 + package/sigrok-cli/sigrok-cli.hash | 3 + package/sigrok-cli/sigrok-cli.mk | 21 + package/simple-mail/Config.in | 9 + package/simple-mail/simple-mail.hash | 5 + package/simple-mail/simple-mail.mk | 15 + package/siproxd/Config.in | 23 + package/siproxd/siproxd.hash | 10 + package/siproxd/siproxd.mk | 17 + package/sispmctl/Config.in | 20 + package/sispmctl/sispmctl.hash | 3 + package/sispmctl/sispmctl.mk | 15 + package/skalibs/Config.in | 9 + package/skalibs/skalibs.hash | 3 + package/skalibs/skalibs.mk | 55 + package/skeleton-custom/Config.in | 6 + package/skeleton-custom/skeleton-custom.mk | 61 + package/skeleton-init-common/Config.in | 2 + .../skeleton-init-common.mk | 105 + package/skeleton-init-none/Config.in | 7 + .../skeleton-init-none/skeleton-init-none.mk | 18 + package/skeleton-init-openrc/Config.in | 7 + .../skeleton-init-openrc.mk | 37 + package/skeleton-init-openrc/skeleton/dev/log | 1 + .../skeleton/etc/conf.d/.empty | 0 .../skeleton-init-openrc/skeleton/etc/fstab | 4 + .../skeleton/etc/runlevels/default/.empty | 0 .../skeleton/etc/runlevels/default/sysv-rcs | 1 + .../skeleton-init-openrc/skeleton/var/cache | 1 + .../skeleton/var/lib/misc | 1 + .../skeleton-init-openrc/skeleton/var/lock | 1 + package/skeleton-init-openrc/skeleton/var/log | 1 + package/skeleton-init-openrc/skeleton/var/run | 1 + .../skeleton-init-openrc/skeleton/var/spool | 1 + package/skeleton-init-openrc/skeleton/var/tmp | 1 + package/skeleton-init-systemd/Config.in | 7 + package/skeleton-init-systemd/legacy.conf | 7 + .../skeleton-init-systemd.mk | 71 + package/skeleton-init-sysv/Config.in | 7 + .../skeleton-init-sysv/skeleton-init-sysv.mk | 33 + package/skeleton-init-sysv/skeleton/dev/log | 1 + .../skeleton/dev/pts/.empty | 0 .../skeleton/dev/shm/.empty | 0 package/skeleton-init-sysv/skeleton/etc/fstab | 8 + package/skeleton-init-sysv/skeleton/var/cache | 1 + .../skeleton-init-sysv/skeleton/var/lib/misc | 1 + package/skeleton-init-sysv/skeleton/var/lock | 1 + package/skeleton-init-sysv/skeleton/var/log | 1 + package/skeleton-init-sysv/skeleton/var/run | 1 + package/skeleton-init-sysv/skeleton/var/spool | 1 + package/skeleton-init-sysv/skeleton/var/tmp | 1 + package/skeleton/Config.in | 9 + package/skeleton/skeleton.mk | 27 + package/sl/Config.in | 9 + package/sl/sl.hash | 3 + package/sl/sl.mk | 21 + package/slang/0001-slsh-libs.patch | 19 + package/slang/Config.in | 7 + package/slang/slang.hash | 6 + package/slang/slang.mk | 63 + package/slirp/Config.in | 28 + package/slirp/slirp.hash | 3 + package/slirp/slirp.mk | 17 + package/sloci-image/Config.in.host | 7 + package/sloci-image/sloci-image.hash | 5 + package/sloci-image/sloci-image.mk | 19 + package/smack/Config.in | 35 + package/smack/smack.hash | 3 + package/smack/smack.mk | 23 + package/smartmontools/Config.in | 12 + package/smartmontools/smartmontools.hash | 7 + package/smartmontools/smartmontools.mk | 35 + package/smcroute/Config.in | 12 + package/smcroute/S41smcroute | 48 + package/smcroute/smcroute.hash | 5 + package/smcroute/smcroute.mk | 40 + package/smstools3/0001-fix-Makefile.patch | 31 + .../0002-fix-build-with-gcc-10.x.patch | 753 + package/smstools3/Config.in | 27 + package/smstools3/S50smsd | 43 + package/smstools3/smstools3.hash | 7 + package/smstools3/smstools3.mk | 35 + ...-with-SNAPPY_ATTRIBUTE_ALWAYS_INLINE.patch | 71 + package/snappy/Config.in | 13 + package/snappy/snappy.hash | 3 + package/snappy/snappy.mk | 15 + ...nssl.h-fix-build-with-libressl-3.5.0.patch | 40 + package/sngrep/Config.in | 14 + package/sngrep/sngrep.hash | 6 + package/sngrep/sngrep.mk | 39 + package/snmpclitools/Config.in | 9 + package/snmpclitools/snmpclitools.hash | 5 + package/snmpclitools/snmpclitools.mk | 13 + .../0001-fix-build-with-libressl-3-5-0.patch | 39 + package/snmppp/Config.in | 37 + package/snmppp/snmppp.hash | 3 + package/snmppp/snmppp.mk | 24 + ...in-Avoid-path-poisoning-with-libpcap.patch | 35 + ...ow-to-override-the-INADDR_NONE-check.patch | 44 + ...vert-AC_RUN_IFELSE-to-AC_CHECK_MEMBE.patch | 239 + ...vert-AC_RUN_IFELSE-to-AC_COMPILE_IFE.patch | 48 + package/snort/0005-fix-sparc.patch | 28 + ...r-when-building-against-uclibc-or-mu.patch | 34 + ...en-building-on-a-Fedora-host-machine.patch | 77 + package/snort/0008-Fix-NO-OPTIMIZE.patch | 24 + package/snort/Config.in | 27 + package/snort/snort.hash | 9 + package/snort/snort.mk | 49 + package/snort3/Config.in | 44 + package/snort3/snort3.hash | 6 + package/snort3/snort3.mk | 62 + package/socat/0001-no-documentation.patch | 37 + .../0002-compat-set-NETDB_INTERNAL.patch | 35 + ...-correct-the-getprotobynumber_r-test.patch | 43 + package/socat/Config.in | 7 + package/socat/socat.hash | 8 + package/socat/socat.mk | 46 + .../0001-Fix-GCC10-build-failure.patch | 113 + package/socketcand/Config.in | 13 + package/socketcand/socketcand.hash | 3 + package/socketcand/socketcand.mk | 19 + package/sofia-sip/Config.in | 14 + package/sofia-sip/sofia-sip.hash | 4 + package/sofia-sip/sofia-sip.mk | 35 + ...ate-autotools-plumbing-for-SoftEther.patch | 2107 +++ ...libsoftether.so-and-dynamically-link.patch | 133 + .../0003-use-fhs-install-directories.patch | 307 + ...g-softetherd-for-upstart-and-systemd.patch | 218 + ...-to-GetStateDir-in-Cedar-and-Mayaqua.patch | 90 + package/softether/0006-cross-compile.patch | 30 + package/softether/0007-iconv.patch | 28 + package/softether/0008-librt.patch | 33 + .../softether/0009-uclibc-ai-addrconfig.patch | 27 + package/softether/Config.in | 33 + package/softether/softether.hash | 3 + package/softether/softether.mk | 37 + package/softhsm2/Config.in | 21 + package/softhsm2/softhsm2.hash | 4 + package/softhsm2/softhsm2.mk | 24 + .../solarus/0001-cmake-remove-Werror.patch | 26 + ...0002-Add-a-basic-FindOpenGLES2.cmake.patch | 48 + package/solarus/Config.in | 33 + package/solarus/solarus.hash | 4 + package/solarus/solarus.mk | 42 + .../0001-wscript-add-no-threads-option.patch | 59 + package/sord/Config.in | 8 + package/sord/sord.hash | 4 + package/sord/sord.mk | 29 + package/sound-theme-borealis/Config.in | 6 + .../sound-theme-borealis.hash | 2 + .../sound-theme-borealis.mk | 18 + package/sound-theme-freedesktop/Config.in | 6 + .../sound-theme-freedesktop.hash | 2 + .../sound-theme-freedesktop.mk | 14 + package/sox/0001-uclibc.patch | 26 + ....ac-put-back-disable-stack-protector.patch | 45 + ...re.ac-fix-static-linking-with-id3tag.patch | 47 + ...ure.ac-fix-static-linking-with-magic.patch | 48 + ...e.ac-fix-static-linking-with-sndfile.patch | 44 + package/sox/Config.in | 12 + package/sox/sox.hash | 4 + package/sox/sox.mk | 149 + ...akefile-more-cross-compiler-friendly.patch | 22 + .../sp-oops-extract/0002-stdint-cleanup.patch | 33 + package/sp-oops-extract/Config.in | 6 + package/sp-oops-extract/sp-oops-extract.hash | 3 + package/sp-oops-extract/sp-oops-extract.mk | 22 + ...igure.ac-fix-AVX-SSE-and-MMX-options.patch | 60 + package/spandsp/Config.in | 10 + package/spandsp/spandsp.hash | 3 + package/spandsp/spandsp.mk | 29 + package/spawn-fcgi/Config.in | 8 + package/spawn-fcgi/spawn-fcgi.hash | 4 + package/spawn-fcgi/spawn-fcgi.mk | 14 + package/spdlog/Config.in | 14 + package/spdlog/spdlog.hash | 3 + package/spdlog/spdlog.mk | 25 + package/speex/0001-thumb2-support.patch | 222 + package/speex/Config.in | 23 + package/speex/speex.hash | 4 + package/speex/speex.mk | 36 + package/speexdsp/Config.in | 6 + package/speexdsp/speexdsp.hash | 5 + package/speexdsp/speexdsp.mk | 14 + package/sphinxbase/Config.in | 13 + package/sphinxbase/sphinxbase.hash | 3 + package/sphinxbase/sphinxbase.mk | 19 + package/spi-tools/Config.in | 7 + package/spi-tools/spi-tools.hash | 3 + package/spi-tools/spi-tools.mk | 14 + package/spice-protocol/Config.in | 12 + package/spice-protocol/spice-protocol.hash | 5 + package/spice-protocol/spice-protocol.mk | 14 + package/spice/Config.in | 26 + package/spice/spice.hash | 3 + package/spice/spice.mk | 72 + package/spidev_test/Config.in | 17 + package/spidev_test/spidev_test.hash | 4 + package/spidev_test/spidev_test.mk | 51 + .../spirv-llvm-translator.hash | 3 + .../spirv-llvm-translator.mk | 20 + package/sqlcipher/Config.in | 37 + package/sqlcipher/sqlcipher.hash | 3 + package/sqlcipher/sqlcipher.mk | 43 + package/sqlite/Config.in | 73 + package/sqlite/sqlite.hash | 3 + package/sqlite/sqlite.mk | 79 + ...e-of-INSTALL_DIR-for-symlink-targets.patch | 37 + package/squashfs/Config.in | 60 + package/squashfs/Config.in.host | 6 + package/squashfs/squashfs.hash | 5 + package/squashfs/squashfs.mk | 96 + package/squeezelite/Config.in | 49 + package/squeezelite/squeezelite.hash | 3 + package/squeezelite/squeezelite.mk | 53 + package/squid/Config.in | 25 + package/squid/S97squid | 39 + package/squid/squid.hash | 6 + package/squid/squid.mk | 99 + package/sratom/Config.in | 10 + package/sratom/sratom.hash | 4 + package/sratom/sratom.mk | 21 + package/sredird/0001-termio.patch | 20 + package/sredird/Config.in | 8 + package/sredird/sredird.hash | 3 + package/sredird/sredird.mk | 20 + package/ssdp-responder/Config.in | 20 + package/ssdp-responder/S50ssdpd | 42 + package/ssdp-responder/ssdp-responder.hash | 3 + package/ssdp-responder/ssdp-responder.mk | 33 + package/sshfs/Config.in | 19 + package/sshfs/sshfs.hash | 3 + package/sshfs/sshfs.mk | 17 + package/sshguard/Config.in | 14 + package/sshguard/S49sshguard | 49 + package/sshguard/sshguard.hash | 4 + package/sshguard/sshguard.mk | 30 + package/sshpass/Config.in | 9 + package/sshpass/sshpass.hash | 3 + package/sshpass/sshpass.mk | 12 + package/sslh/Config.in | 9 + package/sslh/S35sslh | 48 + package/sslh/sslh.hash | 3 + package/sslh/sslh.mk | 57 + .../0001-add-uclibc-alias-and-musl.patch | 44 + .../0002-just-warn-on-missing-arch.patch | 33 + package/start-stop-daemon/Config.in | 9 + .../start-stop-daemon/start-stop-daemon.hash | 4 + .../start-stop-daemon/start-stop-daemon.mk | 38 + package/startup-notification/Config.in | 11 + .../startup-notification.hash | 3 + .../startup-notification.mk | 18 + package/statserial/0001-ncurses-link.patch | 16 + package/statserial/Config.in | 11 + package/statserial/statserial.hash | 3 + package/statserial/statserial.mk | 21 + package/stella/0001-configure-add-CC.patch | 30 + package/stella/Config.in | 20 + package/stella/stella.hash | 4 + package/stella/stella.mk | 52 + package/stellarium/Config.in | 24 + package/stellarium/stellarium.hash | 5 + package/stellarium/stellarium.mk | 44 + package/stm32flash/Config.in | 8 + package/stm32flash/stm32flash.hash | 3 + package/stm32flash/stm32flash.mk | 21 + package/strace/Config.in | 24 + package/strace/strace.hash | 5 + package/strace/strace.mk | 38 + ...1-Makefile-fix-build-with-kernel-5.6.patch | 60 + package/stress-ng/Config.in | 20 + package/stress-ng/stress-ng.hash | 3 + package/stress-ng/stress-ng.mk | 31 + package/stress/Config.in | 9 + package/stress/stress.hash | 4 + package/stress/stress.mk | 25 + ...gswan-plugins-wolfssl-rename-encrypt.patch | 150 + package/strongswan/Config.in | 220 + package/strongswan/strongswan.hash | 7 + package/strongswan/strongswan.mk | 93 + package/stunnel/Config.in | 11 + package/stunnel/S50stunnel | 35 + package/stunnel/stunnel.hash | 5 + package/stunnel/stunnel.mk | 39 + package/subversion/Config.in | 20 + package/subversion/subversion.hash | 5 + package/subversion/subversion.mk | 38 + package/sudo/Config.in | 11 + package/sudo/sudo.hash | 4 + package/sudo/sudo.mk | 87 + package/sudo/sudo.pam | 12 + package/sunwait/Config.in | 11 + package/sunwait/sunwait.hash | 3 + package/sunwait/sunwait.mk | 26 + package/sunxi-boards/Config.in | 30 + package/sunxi-boards/sunxi-boards.hash | 2 + package/sunxi-boards/sunxi-boards.mk | 26 + package/sunxi-cedarx/Config.in | 16 + package/sunxi-cedarx/sunxi-cedarx.hash | 2 + package/sunxi-cedarx/sunxi-cedarx.mk | 60 + package/sunxi-mali-utgard-driver/Config.in | 39 + .../sunxi-mali-utgard-driver.hash | 3 + .../sunxi-mali-utgard-driver.mk | 41 + package/sunxi-mali-utgard/Config.in | 43 + package/sunxi-mali-utgard/egl.pc | 12 + package/sunxi-mali-utgard/glesv2.pc | 12 + .../sunxi-mali-utgard/sunxi-mali-utgard.hash | 3 + .../sunxi-mali-utgard/sunxi-mali-utgard.mk | 49 + ...nfo-Access-to-io-memory-via-pointers.patch | 59 + package/sunxi-tools/Config.in | 71 + package/sunxi-tools/Config.in.host | 17 + package/sunxi-tools/sunxi-tools.hash | 3 + package/sunxi-tools/sunxi-tools.mk | 63 + package/supertux/Config.in | 45 + package/supertux/supertux.hash | 4 + package/supertux/supertux.mk | 73 + package/supertuxkart/Config.in | 46 + package/supertuxkart/supertuxkart.hash | 3 + package/supertuxkart/supertuxkart.mk | 68 + package/supervisor/Config.in | 12 + package/supervisor/S99supervisord | 29 + package/supervisor/supervisor.hash | 4 + package/supervisor/supervisor.mk | 32 + package/supervisor/supervisord.conf | 18 + package/supervisor/supervisord.service | 10 + ...ure-proper-shabang-on-python-scripts.patch | 47 + ...low-the-user-to-override-RUST_TARGET.patch | 35 + package/suricata/Config.in | 26 + package/suricata/S99suricata | 64 + package/suricata/suricata.hash | 6 + package/suricata/suricata.mk | 136 + package/suricata/suricata.service | 14 + package/swig/Config.in.host | 8 + package/swig/swig.hash | 5 + package/swig/swig.mk | 37 + ...der.c-fix-build-without-reallocarray.patch | 35 + package/swupdate/10-mongoose-args | 1 + package/swupdate/90-start-progress | 1 + package/swupdate/Config.in | 92 + package/swupdate/S80swupdate | 47 + package/swupdate/swupdate-progress.service | 9 + package/swupdate/swupdate-usb.rules | 1 + package/swupdate/swupdate-usb@.service | 8 + package/swupdate/swupdate.config | 135 + package/swupdate/swupdate.hash | 12 + package/swupdate/swupdate.mk | 277 + package/swupdate/swupdate.service | 11 + package/swupdate/swupdate.sh | 33 + package/swupdate/swupdate.socket | 11 + package/swupdate/tmpfiles-swupdate.conf | 2 + ...-link-checker-before-accepting-click.patch | 37 + package/sylpheed/Config.in | 7 + package/sylpheed/sylpheed.hash | 4 + package/sylpheed/sylpheed.mk | 37 + package/synergy/Config.in | 22 + package/synergy/synergy.hash | 3 + package/synergy/synergy.mk | 39 + ...BUNDLED_DEPS-before-getting-nlohmann.patch | 52 + package/sysdig/Config.in | 34 + package/sysdig/sysdig.hash | 3 + package/sysdig/sysdig.mk | 38 + package/sysklogd/Config.in | 48 + package/sysklogd/S01syslogd | 62 + package/sysklogd/sysklogd.hash | 5 + package/sysklogd/sysklogd.mk | 45 + package/sysklogd/syslogd.service | 13 + .../syslog-ng/0001-fix-build-on-uclibc.patch | 51 + ...-lib-tlscontext.c-fix-libressl-build.patch | 85 + package/syslog-ng/Config.in | 20 + package/syslog-ng/S01syslog-ng | 62 + package/syslog-ng/syslog-ng.conf | 16 + package/syslog-ng/syslog-ng.hash | 5 + package/syslog-ng/syslog-ng.mk | 137 + .../sysprof/0001-define-NT_GNU_BUILD_ID.patch | 22 + package/sysprof/Config.in | 31 + package/sysprof/sysprof.hash | 3 + package/sysprof/sysprof.mk | 17 + package/sysrepo/Config.in | 30 + package/sysrepo/S51sysrepo-plugind | 53 + package/sysrepo/sysrepo.hash | 3 + package/sysrepo/sysrepo.mk | 41 + package/sysstat/Config.in | 39 + package/sysstat/sysstat.hash | 5 + package/sysstat/sysstat.mk | 24 + ...n-to-disable-xmlto-manual-generation.patch | 73 + ...figure-accept-non-system-cups-config.patch | 35 + package/system-config-printer/Config.in | 7 + .../system-config-printer.hash | 3 + .../system-config-printer.mk | 38 + package/systemd-bootchart/Config.in | 40 + .../systemd-bootchart/systemd-bootchart.hash | 3 + .../systemd-bootchart/systemd-bootchart.mk | 19 + ...define-MOVE_MOUNT_T_EMPTY_PATH-if-mi.patch | 33 + package/systemd/80-buildroot.preset | 2 + package/systemd/Config.in | 530 + package/systemd/Config.in.host | 4 + package/systemd/boot-files/buildroot.conf | 3 + package/systemd/boot-files/loader.conf | 2 + package/systemd/dhcp.network | 4 + package/systemd/fakeroot_tmpfiles.sh | 59 + package/systemd/systemd.hash | 14 + package/systemd/systemd.mk | 879 ++ ...efile-disable-stack-protector-strong.patch | 33 + package/sysvinit/Config.in | 10 + package/sysvinit/inittab | 32 + package/sysvinit/sysvinit.hash | 5 + package/sysvinit/sysvinit.mk | 50 + package/szip/Config.in | 16 + package/szip/szip.hash | 3 + package/szip/szip.mk | 13 + ...e-on-systems-without-HAVE_GCC_ATOMIC.patch | 34 + package/taglib/Config.in | 15 + package/taglib/taglib.hash | 4 + package/taglib/taglib.mk | 24 + ...andom.c-fix-build-with-uclibc-1.0.35.patch | 46 + package/tar/Config.in | 16 + package/tar/tar.hash | 4 + package/tar/tar.mk | 54 + package/targetcli-fb/Config.in | 15 + package/targetcli-fb/S50target | 46 + package/targetcli-fb/target.service | 14 + package/targetcli-fb/targetcli-fb.hash | 3 + package/targetcli-fb/targetcli-fb.mk | 35 + ...makedefine-HAVE_GET_CURRENT_DIR_NAME.patch | 28 + ...rrect-variables-for-GnuTLS-detection.patch | 32 + ...eLists-use-pkg-config-uuid-detection.patch | 40 + package/taskd/Config.in | 18 + package/taskd/taskd.hash | 5 + package/taskd/taskd.mk | 13 + ...Musl-linux-can-not-use-RTLD_DEEPBIND.patch | 33 + ...is-only-defined-on-glibc-and-android.patch | 42 + ...-Define-ITT_ARCH_IA64-when-undefiend.patch | 27 + package/tbb/Config.in | 22 + package/tbb/tbb.hash | 3 + package/tbb/tbb.mk | 20 + package/tcf-agent/Config.in | 41 + package/tcf-agent/S55tcf-agent | 40 + package/tcf-agent/tcf-agent.hash | 5 + package/tcf-agent/tcf-agent.mk | 34 + package/tcf-agent/tcf-agent.service | 9 + package/tcl/0001-dont-build-compat.patch | 25 + package/tcl/Config.in | 39 + package/tcl/tcl.hash | 3 + package/tcl/tcl.mk | 81 + package/tclap/Config.in | 18 + package/tclap/tclap.hash | 3 + package/tclap/tclap.mk | 17 + package/tcllib/Config.in | 11 + package/tcllib/tcllib.hash | 5 + package/tcllib/tcllib.mk | 15 + package/tcpdump/Config.in | 16 + package/tcpdump/tcpdump.hash | 5 + package/tcpdump/tcpdump.mk | 30 + package/tcping/Config.in | 14 + package/tcping/tcping.hash | 3 + package/tcping/tcping.mk | 21 + package/tcpreplay/Config.in | 10 + package/tcpreplay/tcpreplay.hash | 5 + package/tcpreplay/tcpreplay.mk | 43 + package/tealdeer/Config.in | 10 + package/tealdeer/tealdeer.hash | 4 + package/tealdeer/tealdeer.mk | 12 + package/tegrarcm/Config.in.host | 13 + package/tegrarcm/tegrarcm.hash | 3 + package/tegrarcm/tegrarcm.mk | 14 + package/tekui/Config.in | 22 + package/tekui/tekui.hash | 3 + package/tekui/tekui.mk | 69 + package/terminology/Config.in | 8 + package/terminology/terminology.hash | 3 + package/terminology/terminology.mk | 25 + ...-if-platform-supports-feenableexcept.patch | 42 + ...configure.ac-fix-build-on-aarch64_be.patch | 32 + package/tesseract-ocr/Config.in | 44 + package/tesseract-ocr/tesseract-ocr.hash | 9 + package/tesseract-ocr/tesseract-ocr.mk | 74 + ...tern-qualifier-to-fix-gcc-10.x-build.patch | 29 + package/tftpd/Config.in | 10 + package/tftpd/S80tftpd-hpa | 83 + package/tftpd/tftpd.hash | 5 + package/tftpd/tftpd.mk | 28 + package/thermald/Config.in | 33 + package/thermald/thermald.hash | 3 + package/thermald/thermald.mk | 47 + package/thrift/Config.in | 22 + package/thrift/thrift.hash | 4 + package/thrift/thrift.mk | 71 + package/thttpd/Config.in | 8 + package/thttpd/S90thttpd | 54 + package/thttpd/thttpd.hash | 3 + package/thttpd/thttpd.mk | 42 + package/thttpd/thttpd.service | 10 + package/ti-cgt-pru/Config.in.host | 18 + package/ti-cgt-pru/ti-cgt-pru.hash | 4 + package/ti-cgt-pru/ti-cgt-pru.mk | 33 + package/ti-gfx/0001-newclkapi.patch | 118 + .../ti-gfx/0002-fix-build-omaplfb-linux.patch | 21 + package/ti-gfx/0003-km_install_modules.patch | 19 + package/ti-gfx/Config.in | 84 + package/ti-gfx/S80ti-gfx | 53 + package/ti-gfx/egl.pc | 11 + package/ti-gfx/esrev.sh | 60 + package/ti-gfx/glesv2.pc | 11 + package/ti-gfx/powervr.ini | 2 + package/ti-gfx/ti-gfx.hash | 4 + package/ti-gfx/ti-gfx.mk | 209 + package/ti-gfx/ti-gfx.service | 11 + package/ti-sgx-demos/Config.in | 9 + package/ti-sgx-demos/ti-sgx-demos.hash | 3 + package/ti-sgx-demos/ti-sgx-demos.mk | 19 + package/ti-sgx-km/Config.in | 17 + package/ti-sgx-km/ti-sgx-km.hash | 3 + package/ti-sgx-km/ti-sgx-km.mk | 36 + ...-Makefile-do-not-install-init-script.patch | 39 + package/ti-sgx-um/Config.in | 44 + package/ti-sgx-um/S80ti-sgx | 56 + package/ti-sgx-um/ti-sgx-um.hash | 3 + package/ti-sgx-um/ti-sgx-um.mk | 37 + package/ti-uim/Config.in | 8 + package/ti-uim/ti-uim.hash | 3 + package/ti-uim/ti-uim.mk | 21 + .../0001-plt.h-fix-build-with-gcc-10.patch | 35 + package/ti-utils/Config.in | 12 + package/ti-utils/ti-utils.hash | 3 + package/ti-utils/ti-utils.mk | 31 + package/tiff/Config.in | 70 + package/tiff/tiff.hash | 3 + package/tiff/tiff.mk | 95 + package/time/Config.in | 14 + package/time/time.hash | 5 + package/time/time.mk | 13 + package/timescaledb/Config.in | 12 + package/timescaledb/timescaledb.hash | 3 + package/timescaledb/timescaledb.mk | 38 + package/tinc/Config.in | 16 + package/tinc/tinc.hash | 4 + package/tinc/tinc.mk | 26 + package/tini/Config.in | 17 + package/tini/tini.hash | 3 + package/tini/tini.mk | 38 + package/tinifier/Config.in | 10 + package/tinifier/tinifier.hash | 3 + package/tinifier/tinifier.mk | 13 + .../0001-include-time.h-before-asound.h.patch | 76 + package/tinyalsa/Config.in | 17 + package/tinyalsa/tinyalsa.hash | 3 + package/tinyalsa/tinyalsa.mk | 14 + .../0001-Makefile-add-DISABLE_WERROR.patch | 44 + package/tinycbor/Config.in | 6 + package/tinycbor/tinycbor.hash | 3 + package/tinycbor/tinycbor.mk | 45 + ...-sha2-sha2.c-fix-build-on-big-endian.patch | 119 + package/tinydtls/Config.in | 13 + package/tinydtls/tinydtls.hash | 3 + package/tinydtls/tinydtls.mk | 25 + ...ix-build-on-Thumb-only-architectures.patch | 47 + package/tinymembench/Config.in | 12 + package/tinymembench/tinymembench.hash | 3 + package/tinymembench/tinymembench.mk | 21 + ...up-in-error-page-in-invalid-requests.patch | 32 + package/tinyproxy/Config.in | 16 + package/tinyproxy/tinyproxy.hash | 4 + package/tinyproxy/tinyproxy.mk | 17 + package/tinyssh/Config.in | 8 + package/tinyssh/tinyssh.hash | 3 + package/tinyssh/tinyssh.mk | 20 + ...always-advance-the-pointer-if-p-0xef.patch | 37 + package/tinyxml/Config.in | 11 + package/tinyxml/tinyxml.hash | 3 + package/tinyxml/tinyxml.mk | 20 + package/tinyxml2/Config.in | 11 + package/tinyxml2/tinyxml2.hash | 3 + package/tinyxml2/tinyxml2.mk | 18 + package/tio/Config.in | 16 + package/tio/tio.hash | 5 + package/tio/tio.mk | 14 + package/tk/Config.in | 18 + package/tk/tk.hash | 3 + package/tk/tk.mk | 31 + package/tmux/Config.in | 19 + package/tmux/tmux.hash | 3 + package/tmux/tmux.mk | 22 + ...rc_lib_crypt_ops_crypto_dh_openssl_c.patch | 67 + ...c_lib_crypt_ops_crypto_rsa_openssl_c.patch | 58 + ...003-patch-src_lib_tls_x509_openssl_c.patch | 22 + package/tor/Config.in | 19 + package/tor/tor.hash | 4 + package/tor/tor.mk | 80 + package/tovid/0001-manpage.patch | 25 + package/tovid/Config.in | 50 + package/tovid/tovid.hash | 3 + package/tovid/tovid.mk | 13 + package/tpm-tools/Config.in | 14 + package/tpm-tools/tpm-tools.hash | 7 + package/tpm-tools/tpm-tools.mk | 23 + package/tpm2-abrmd/Config.in | 26 + package/tpm2-abrmd/S80tpm2-abrmd | 74 + package/tpm2-abrmd/tpm2-abrmd.hash | 3 + package/tpm2-abrmd/tpm2-abrmd.mk | 36 + package/tpm2-pkcs11/Config.in | 15 + package/tpm2-pkcs11/tpm2-pkcs11.hash | 3 + package/tpm2-pkcs11/tpm2-pkcs11.mk | 46 + package/tpm2-tools/Config.in | 38 + package/tpm2-tools/tpm2-tools.hash | 3 + package/tpm2-tools/tpm2-tools.mk | 29 + package/tpm2-totp/Config.in | 23 + package/tpm2-totp/tpm2-totp.hash | 3 + package/tpm2-totp/tpm2-totp.mk | 26 + ...01-Temporary-fix-for-build-without-C.patch | 44 + package/tpm2-tss/Config.in | 57 + package/tpm2-tss/tpm2-tss.hash | 3 + package/tpm2-tss/tpm2-tss.mk | 44 + package/trace-cmd/Config.in | 19 + package/trace-cmd/trace-cmd.hash | 6 + package/trace-cmd/trace-cmd.mk | 57 + package/traceroute/Config.in | 8 + package/traceroute/traceroute.hash | 6 + package/traceroute/traceroute.mk | 24 + package/transmission/0001-fix-utypes.patch | 30 + .../transmission/0002-fix-utp-include.patch | 46 + ...ac-fix-autoreconf-with-autoconf-2.70.patch | 42 + package/transmission/Config.in | 48 + package/transmission/S92transmission | 156 + package/transmission/transmission.hash | 3 + package/transmission/transmission.mk | 83 + package/tree/Config.in | 13 + package/tree/tree.hash | 3 + package/tree/tree.mk | 22 + package/tremor/Config.in | 10 + package/tremor/tremor.hash | 3 + package/tremor/tremor.mk | 32 + package/triggerhappy/Config.in | 11 + package/triggerhappy/S10triggerhappy | 36 + package/triggerhappy/triggerhappy.hash | 3 + package/triggerhappy/triggerhappy.mk | 47 + package/triggerhappy/triggerhappy.service | 9 + .../trinity/0001-Fix-build-with-GCC-10.patch | 38 + ...-ip-raw.c-fix-build-with-kernel-5.13.patch | 37 + .../0003-Use-fcntl-h-for-dev_t-mode_t.patch | 46 + package/trinity/Config.in | 21 + package/trinity/trinity.hash | 3 + package/trinity/trinity.mk | 41 + ...er-understands-pie-and-relro-options.patch | 214 + ...pwent_r-is-available-before-using-it.patch | 82 + .../0003-Fix-build-with-LibreSSL-2-7.patch | 24 + package/trousers/Config.in | 18 + package/trousers/trousers.hash | 6 + package/trousers/trousers.mk | 36 + package/ts4900-fpga/Config.in | 11 + package/ts4900-fpga/ts4900-fpga.hash | 5 + package/ts4900-fpga/ts4900-fpga.mk | 21 + package/tslib/Config.in | 6 + package/tslib/tslib.hash | 5 + package/tslib/tslib.mk | 35 + .../0001-build-get-along-with-buildroot.patch | 40 + package/tstools/Config.in | 22 + package/tstools/tstools.hash | 2 + package/tstools/tstools.mk | 25 + package/ttyd/Config.in | 21 + package/ttyd/ttyd.hash | 3 + package/ttyd/ttyd.mk | 13 + package/tunctl/Config.in | 6 + package/tunctl/tunctl.hash | 3 + package/tunctl/tunctl.mk | 21 + package/turbolua/Config.in | 18 + package/turbolua/turbolua.hash | 3 + package/turbolua/turbolua.mk | 33 + package/tvheadend/0001-no-check_config.patch | 23 + package/tvheadend/Config.in | 75 + package/tvheadend/S99tvheadend | 56 + package/tvheadend/etc.default.tvheadend | 6 + package/tvheadend/tvheadend.hash | 3 + package/tvheadend/tvheadend.mk | 221 + package/twolame/Config.in | 8 + package/twolame/twolame.hash | 3 + package/twolame/twolame.mk | 20 + package/tz/Config.in | 4 + package/tz/tz.mk | 41 + package/tzdata/Config.in | 9 + package/tzdata/tzdata.hash | 4 + package/tzdata/tzdata.mk | 66 + package/tzdump/tzdump.hash | 2 + package/tzdump/tzdump.mk | 21 + package/uacme/Config.in | 33 + package/uacme/uacme.hash | 3 + package/uacme/uacme.mk | 36 + .../0001-drop-configh-from-tools.patch | 49 + ...-tools-only-in-no-dot-config-targets.patch | 44 + ...ix-C-LD-FLAGS-with-CROSS_BUILD_TOOLS.patch | 34 + package/uboot-tools/Config.in | 104 + package/uboot-tools/Config.in.host | 111 + package/uboot-tools/uboot-tools.hash | 3 + package/uboot-tools/uboot-tools.mk | 242 + ...1-Install-server-and-client-examples.patch | 28 + package/ubus/Config.in | 31 + package/ubus/ubus.hash | 3 + package/ubus/ubus.mk | 41 + package/uccp420wlan/Config.in | 16 + package/uccp420wlan/uccp420wlan.hash | 4 + package/uccp420wlan/uccp420wlan.mk | 18 + package/ucl/ucl.hash | 3 + package/ucl/ucl.mk | 15 + package/uclibc-ng-test/Config.in | 22 + package/uclibc-ng-test/uclibc-ng-test.hash | 3 + package/uclibc-ng-test/uclibc-ng-test.mk | 63 + package/uclibc/Config.in | 183 + package/uclibc/uClibc-ng.config | 42 + package/uclibc/uclibc.hash | 4 + package/uclibc/uclibc.mk | 482 + package/udev-gentoo-scripts/Config.in | 6 + .../udev-gentoo-scripts.hash | 3 + .../udev-gentoo-scripts.mk | 22 + package/udev/Config.in | 6 + package/udev/udev.mk | 13 + package/udftools/Config.in | 12 + package/udftools/udftools.hash | 3 + package/udftools/udftools.mk | 13 + package/udisks/Config.in | 51 + package/udisks/udisks.hash | 3 + package/udisks/udisks.mk | 42 + package/udpcast/0001-fix-musl-build.patch | 31 + package/udpcast/Config.in | 29 + package/udpcast/udpcast.hash | 3 + package/udpcast/udpcast.mk | 23 + package/udpxy/Config.in | 9 + package/udpxy/udpxy.hash | 3 + package/udpxy/udpxy.mk | 22 + .../uemacs/01-clear-ixon-termios-flag.patch | 29 + package/uemacs/Config.in | 7 + package/uemacs/uemacs.hash | 3 + package/uemacs/uemacs.mk | 24 + package/uftp/Config.in | 13 + package/uftp/uftp.hash | 3 + package/uftp/uftp.mk | 28 + ...place-ADDR_NO_RANDOMIZE-by-its-value.patch | 33 + ...support.c-define-EF_ARM_VFP_FLOAT-wh.patch | 31 + package/uftrace/Config.in | 28 + package/uftrace/uftrace.hash | 3 + package/uftrace/uftrace.mk | 60 + ...add-boost-unit_test_framework-requir.patch | 40 + .../uhd/0002-host-fix-build-boost-173.patch | 577 + .../0003-add-RISC-V-endian-detection.patch | 113 + ...-lib-Fix-missing-includes-in-rpc-hpp.patch | 28 + ...ove-boost-math-in-favor-of-std-cmath.patch | 105 + ...ost-math-iround-math-sign-with-std-l.patch | 57 + ...explicit-template-type-for-std-min-T.patch | 28 + package/uhd/Config.in | 161 + package/uhd/uhd.hash | 4 + package/uhd/uhd.mk | 153 + package/uhttpd/0001-Remove-Werror.patch | 33 + ...x-TCP_FASTOPEN-related-compile-error.patch | 30 + package/uhttpd/Config.in | 18 + package/uhttpd/uhttpd.hash | 3 + package/uhttpd/uhttpd.mk | 35 + package/uhubctl/Config.in | 13 + package/uhubctl/uhubctl.hash | 4 + package/uhubctl/uhubctl.mk | 22 + package/ulog/Config.in | 12 + package/ulog/ulog.hash | 3 + package/ulog/ulog.mk | 46 + .../0001-ulogd-fix-build-with-musl-libc.patch | 32 + package/ulogd/Config.in | 18 + package/ulogd/ulogd.hash | 7 + package/ulogd/ulogd.mk | 56 + package/umtprd/Config.in | 11 + package/umtprd/umtprd.hash | 3 + package/umtprd/umtprd.mk | 20 + package/unbound/Config.in | 38 + package/unbound/S70unbound | 52 + package/unbound/unbound.hash | 5 + package/unbound/unbound.mk | 56 + package/unclutter-xfixes/Config.in | 13 + .../unclutter-xfixes/unclutter-xfixes.hash | 3 + package/unclutter-xfixes/unclutter-xfixes.mk | 22 + package/unionfs/Config.in | 14 + package/unionfs/unionfs.hash | 3 + package/unionfs/unionfs.mk | 13 + ...ivermanager.h-fix-build-without-thre.patch | 34 + package/unixodbc/Config.in | 12 + package/unixodbc/unixodbc.hash | 4 + package/unixodbc/unixodbc.mk | 51 + package/unrar/Config.in | 13 + package/unrar/unrar.hash | 3 + package/unrar/unrar.mk | 24 + package/unscd/Config.in | 27 + package/unscd/S46unscd | 25 + package/unscd/nscd.conf | 33 + package/unscd/unscd.hash | 2 + package/unscd/unscd.mk | 36 + ...keFile.txt-to-ease-cross-compilation.patch | 53 + package/unzip/Config.in | 12 + package/unzip/unzip.hash | 6 + package/unzip/unzip.mk | 31 + package/upmpdcli/Config.in | 22 + package/upmpdcli/S99upmpdcli | 36 + package/upmpdcli/upmpdcli.hash | 5 + package/upmpdcli/upmpdcli.mk | 38 + package/upower/Config.in | 26 + package/upower/upower.hash | 3 + package/upower/upower.mk | 36 + ...ck-DT_REL-DT_RELA-DT_RELSZ-DT_RELASZ.patch | 80 + package/upx/upx.hash | 3 + package/upx/upx.mk | 31 + package/uqmi/Config.in | 15 + package/uqmi/uqmi.hash | 3 + package/uqmi/uqmi.mk | 14 + package/urandom-scripts/Config.in | 10 + package/urandom-scripts/S20urandom | 70 + package/urandom-scripts/urandom-scripts.mk | 12 + package/uredir/Config.in | 9 + package/uredir/uredir.hash | 4 + package/uredir/uredir.mk | 13 + package/urg/0001-select-h.patch | 39 + ...02-urg-gcc6-fix-narrowing-conversion.patch | 99 + package/urg/Config.in | 10 + package/urg/urg.hash | 6 + package/urg/urg.mk | 31 + .../0001-fix-systemd-detection.patch | 18 + package/usb_modeswitch/Config.in | 26 + package/usb_modeswitch/usb_modeswitch.hash | 5 + package/usb_modeswitch/usb_modeswitch.mk | 39 + package/usb_modeswitch_data/Config.in | 15 + .../usb_modeswitch_data.hash | 5 + .../usb_modeswitch_data.mk | 20 + package/usbguard/Config.in | 28 + package/usbguard/S20usbguard | 37 + package/usbguard/usbguard.hash | 5 + package/usbguard/usbguard.mk | 64 + package/usbmount/0001-rules-fix.patch | 19 + ...se-udev-environment-instead-of-blkid.patch | 71 + package/usbmount/Config.in | 15 + package/usbmount/usbmount.hash | 4 + package/usbmount/usbmount.mk | 28 + package/usbredir/Config.in | 32 + package/usbredir/usbredir.hash | 6 + package/usbredir/usbredir.mk | 34 + package/usbutils/Config.in | 15 + package/usbutils/usbutils.hash | 5 + package/usbutils/usbutils.mk | 23 + ...-t-build-po-files-if-NLS-is-disabled.patch | 56 + package/ushare/Config.in | 17 + package/ushare/ushare.hash | 3 + package/ushare/ushare.mk | 48 + .../0001-fix-build-against-bluez-4.patch | 15 + .../0002-fix-build-again-obex-bluez.patch | 28 + .../0003-add-OBEX_CharToUnicode.patch | 47 + package/ussp-push/Config.in | 21 + package/ussp-push/ussp-push.hash | 4 + package/ussp-push/ussp-push.mk | 14 + package/ustream-ssl/Config.in | 12 + package/ustream-ssl/ustream-ssl.hash | 3 + package/ustream-ssl/ustream-ssl.mk | 22 + package/utf8proc/Config.in | 6 + package/utf8proc/utf8proc.hash | 3 + package/utf8proc/utf8proc.mk | 14 + ...improve-dependence-on-NS_GET_-ioctls.patch | 34 + package/util-linux/Config.in | 468 + package/util-linux/Config.in.host | 8 + package/util-linux/su.pam | 15 + .../util-linux-libs/util-linux-libs.hash | 1 + .../util-linux-libs/util-linux-libs.mk | 91 + package/util-linux/util-linux.hash | 9 + package/util-linux/util-linux.mk | 307 + package/utp_com/Config.in.host | 7 + package/utp_com/utp_com.hash | 3 + package/utp_com/utp_com.mk | 21 + package/uuu/Config.in.host | 18 + package/uuu/readme.txt | 13 + package/uuu/uuu.hash | 4 + package/uuu/uuu.mk | 14 + package/uvw/Config.in | 20 + package/uvw/uvw.hash | 3 + package/uvw/uvw.mk | 16 + package/ux500-firmware/Config.in | 8 + package/ux500-firmware/ux500-firmware.hash | 3 + package/ux500-firmware/ux500-firmware.mk | 23 + package/v4l2grab/Config.in | 20 + package/v4l2grab/v4l2grab.hash | 3 + package/v4l2grab/v4l2grab.mk | 15 + package/v4l2loopback/Config.in | 30 + package/v4l2loopback/v4l2loopback.hash | 3 + package/v4l2loopback/v4l2loopback.mk | 31 + ...0001-dont-add-dirty-to-valac-version.patch | 28 + package/vala/vala-wrapper | 2 + package/vala/vala.hash | 4 + package/vala/vala.mk | 37 + .../0001-workaround-SIGSEGV-on-PPC.patch | 32 + ...TSIGINFO-on-PowerPC-when-not-availab.patch | 37 + ...coregrind-fix-compilation-for-uclibc.patch | 65 + package/valgrind/Config.in | 88 + package/valgrind/uclibc.supp | 212 + package/valgrind/valgrind.hash | 8 + package/valgrind/valgrind.mk | 162 + package/valijson/Config.in | 14 + package/valijson/valijson.hash | 3 + package/valijson/valijson.mk | 16 + ...missing-definition-of-MTD_CHAR_MAJOR.patch | 30 + ...d-missing-header-include-for-ssize_t.patch | 27 + .../0003-Avoid-RSA-type-redefinition.patch | 44 + .../0004-Disable-static-futility.patch | 30 + ...05-include-sys-sysmacros.h-for-major.patch | 51 + .../0006-Update-for-openssl-1.1.patch | 268 + ...-Make-vboot_version-extern-in-header.patch | 50 + package/vboot-utils/Config.in.host | 7 + package/vboot-utils/vboot-utils.hash | 3 + package/vboot-utils/vboot-utils.mk | 43 + package/vde2/0001-no-cxx.patch | 22 + ...-fstp-Add-static-to-inline-functions.patch | 44 + ...de_l3-Add-static-to-inline-functions.patch | 37 + package/vde2/Config.in | 14 + package/vde2/vde2.hash | 5 + package/vde2/vde2.mk | 54 + package/vdr-plugin-vnsiserver/Config.in | 9 + .../vdr-plugin-vnsiserver.hash | 3 + .../vdr-plugin-vnsiserver.mk | 31 + package/vdr/0001-getloadavg.patch | 55 + package/vdr/0002-musl-compat.patch | 140 + package/vdr/0003-include-missing-limits.patch | 30 + ...at_cntr-is-an-internal-symbol-of-som.patch | 35 + package/vdr/Config.in | 25 + package/vdr/vdr.hash | 3 + package/vdr/vdr.mk | 66 + package/vim/Config.in | 26 + package/vim/vim.hash | 4 + package/vim/vim.mk | 93 + package/vis-network/Config.in | 7 + package/vis-network/vis-network.hash | 4 + package/vis-network/vis-network.mk | 21 + ...ding-of-statically-linked-vlc-binary.patch | 40 + ...2-automake-add-subdir-objects-option.patch | 32 + ...ld-use-pkg-config-to-get-tremor-libs.patch | 50 + ...r-using-uClibc-by-adding-sys-types.h.patch | 44 + ...Don-t-assume-strerror_l-is-available.patch | 58 + ...ient-run-time-fallback-to-real-time-.patch | 187 + .../vlc/0007-Add-support-for-freerdp2.patch | 150 + ...o-use-AC_PATH_PROG-to-check-for-wayl.patch | 50 + ...lter-opencv_example.cpp-fix-build-wi.patch | 42 + ...ive555.cpp-fix-build-with-live555-20.patch | 36 + ...-fix-compilation-with-upcoming-dav1d.patch | 88 + package/vlc/Config.in | 32 + package/vlc/vlc.hash | 7 + package/vlc/vlc.mk | 584 + package/vmtouch/Config.in | 11 + package/vmtouch/vmtouch.hash | 5 + package/vmtouch/vmtouch.mk | 21 + package/vnstat/Config.in | 18 + package/vnstat/vnstat.hash | 3 + package/vnstat/vnstat.mk | 22 + package/vo-aacenc/Config.in | 9 + package/vo-aacenc/vo-aacenc.hash | 3 + package/vo-aacenc/vo-aacenc.mk | 46 + package/volk/Config.in | 33 + package/volk/volk.hash | 4 + package/volk/volk.mk | 42 + package/vorbis-tools/Config.in | 12 + package/vorbis-tools/vorbis-tools.hash | 4 + package/vorbis-tools/vorbis-tools.mk | 30 + ...llow-to-override-the-PREFIX-variable.patch | 31 + ...kefile-allow-to-override-the-version.patch | 41 + ...allow-passing-custom-CFLAGS-CPPFLAGS.patch | 45 + ...vide-an-option-to-not-build-manpages.patch | 57 + ...assing-a-custom-path-to-libgcrypt-co.patch | 40 + ...-deprecated-SUSv3-functions-with-POS.patch | 36 + ...ssume-error.h-is-available-on-all-Li.patch | 52 + ...on-t-include-linux-if_tun.h-on-Linux.patch | 54 + ...dd-missing-sys-ttydefaults.h-include.patch | 36 + package/vpnc/Config.in | 21 + package/vpnc/vpnc.hash | 3 + package/vpnc/vpnc.mk | 27 + package/vsftpd/0001-utmpx-builddef.patch | 49 + package/vsftpd/0002-fix-CVE-2015-1419.patch | 102 + ...0003-Prevent-hang-in-SIGCHLD-handler.patch | 87 + package/vsftpd/Config.in | 18 + package/vsftpd/S70vsftpd | 33 + package/vsftpd/vsftpd.hash | 4 + package/vsftpd/vsftpd.mk | 74 + package/vsftpd/vsftpd.service | 12 + ...-with-kernel-headers-from-linux-4-13.patch | 54 + ...or-fstack-protector-compiler-support.patch | 43 + package/vte/Config.in | 39 + package/vte/vte.hash | 5 + package/vte/vte.mk | 51 + package/vtun/0001-fix-installation.patch | 44 + .../vtun/0002-fix-ssl-headers-checks.patch | 47 + package/vtun/0003-openssl11.patch | 294 + package/vtun/Config.in | 14 + package/vtun/vtun.hash | 6 + package/vtun/vtun.mk | 26 + package/vuejs-router/Config.in | 6 + package/vuejs-router/vuejs-router.hash | 3 + package/vuejs-router/vuejs-router.mk | 19 + package/vuejs/Config.in | 6 + package/vuejs/vuejs.hash | 3 + package/vuejs/vuejs.mk | 19 + package/vulkan-headers/Config.in | 7 + package/vulkan-headers/vulkan-headers.hash | 3 + package/vulkan-headers/vulkan-headers.mk | 13 + package/w_scan/0001-musl.patch | 26 + ...002-si_types-h-fix-build-with-gcc-10.patch | 37 + package/w_scan/Config.in | 14 + package/w_scan/w_scan.hash | 3 + package/w_scan/w_scan.mk | 18 + package/waf/waf.hash | 7 + package/waf/waf.mk | 21 + ...lags-from-.pc-files-to-waffle-cflags.patch | 42 + ...yland-fix-build-against-version-1-20.patch | 59 + package/waffle/0003-drop-C-dependency.patch | 46 + package/waffle/Config.in | 47 + package/waffle/waffle.hash | 5 + package/waffle/waffle.mk | 61 + .../0001-Add-RISC-V-endian-detection.patch | 46 + ...platform.h-fix-build-with-musl-1.2.0.patch | 38 + .../wampcc/0003-Broken-build-on-Windows.patch | 27 + package/wampcc/Config.in | 30 + package/wampcc/wampcc.hash | 3 + package/wampcc/wampcc.mk | 19 + package/watchdog/Config.in | 10 + package/watchdog/watchdog.hash | 3 + package/watchdog/watchdog.mk | 15 + package/watchdogd/Config.in | 58 + package/watchdogd/S01watchdogd | 47 + package/watchdogd/watchdogd.hash | 5 + package/watchdogd/watchdogd.mk | 57 + package/wavemon/Config.in | 21 + package/wavemon/wavemon.hash | 3 + package/wavemon/wavemon.mk | 23 + package/wavpack/Config.in | 9 + package/wavpack/wavpack.hash | 3 + package/wavpack/wavpack.mk | 38 + package/wayland-protocols/Config.in | 9 + .../wayland-protocols/wayland-protocols.hash | 5 + .../wayland-protocols/wayland-protocols.mk | 17 + package/wayland-utils/Config.in | 8 + package/wayland-utils/wayland-utils.hash | 6 + package/wayland-utils/wayland-utils.mk | 14 + .../wayland/0001-build-set-c_std-c99.patch | 34 + ...on-t-rely-on-implicit-GNU-extensions.patch | 108 + package/wayland/Config.in | 16 + package/wayland/wayland.hash | 6 + package/wayland/wayland.mk | 27 + package/waylandpp/Config.in | 18 + package/waylandpp/waylandpp.hash | 4 + package/waylandpp/waylandpp.mk | 28 + package/webkitgtk/Config.in | 142 + package/webkitgtk/webkitgtk.hash | 8 + package/webkitgtk/webkitgtk.mk | 136 + package/webp/Config.in | 25 + package/webp/webp.hash | 3 + package/webp/webp.mk | 84 + ...detection-of-cxxabi.h-and-execinfo.h.patch | 63 + package/webrtc-audio-processing/Config.in | 21 + .../webrtc-audio-processing.hash | 3 + .../webrtc-audio-processing.mk | 21 + package/websocketpp/Config.in | 15 + package/websocketpp/websocketpp.hash | 3 + package/websocketpp/websocketpp.mk | 16 + ...ncy-on-screenshooter-client-protocol.patch | 38 + package/weston/Config.in | 167 + package/weston/weston.hash | 4 + package/weston/weston.mk | 189 + package/wf111/Config.in | 29 + package/wf111/wf111.hash | 4 + package/wf111/wf111.mk | 33 + ...andom.c-fix-build-with-uclibc-1.0.35.patch | 46 + package/wget/Config.in | 17 + package/wget/wget.hash | 6 + package/wget/wget.mk | 75 + package/whetstone/Config.in | 6 + package/whetstone/whetstone.hash | 2 + package/whetstone/whetstone.mk | 23 + package/which/Config.in | 7 + package/which/which.hash | 4 + package/which/which.mk | 12 + package/whois/Config.in | 7 + package/whois/whois.hash | 5 + package/whois/whois.mk | 45 + package/wilc-driver/Config.in | 62 + package/wilc-driver/wilc-driver.hash | 3 + package/wilc-driver/wilc-driver.mk | 29 + package/wilc-firmware/Config.in | 34 + package/wilc-firmware/wilc-firmware.hash | 3 + package/wilc-firmware/wilc-firmware.mk | 35 + package/wilink-bt-firmware/Config.in | 7 + .../wilink-bt-firmware.hash | 3 + .../wilink-bt-firmware/wilink-bt-firmware.mk | 18 + ...a-avoid-mpg123-functions-with-suffix.patch | 21 + ...d-avoid-mpg123-functions-with-suffix.patch | 21 + package/wine/Config.in | 32 + package/wine/wine.hash | 5 + package/wine/wine.mk | 336 + package/wipe/0001-musl.patch | 28 + package/wipe/Config.in | 7 + package/wipe/wipe.hash | 3 + package/wipe/wipe.mk | 17 + package/wireguard-linux-compat/Config.in | 29 + .../wireguard-linux-compat.hash | 4 + .../wireguard-linux-compat.mk | 23 + package/wireguard-tools/Config.in | 21 + package/wireguard-tools/wireguard-tools.hash | 4 + package/wireguard-tools/wireguard-tools.mk | 37 + package/wireless-regdb/Config.in | 14 + package/wireless-regdb/wireless-regdb.hash | 4 + package/wireless-regdb/wireless-regdb.mk | 31 + .../wireless_tools/0001-remove-bzero.patch | 95 + package/wireless_tools/Config.in | 16 + package/wireless_tools/wireless_tools.hash | 3 + package/wireless_tools/wireless_tools.mk | 42 + .../0001-fix-non-x86_64-architectures.patch | 215 + package/wireplumber/Config.in | 22 + package/wireplumber/wireplumber.hash | 3 + package/wireplumber/wireplumber.mk | 43 + ...-CMAKE_-EXE_LINKER_FLAGS-SYSROOT-if-.patch | 31 + package/wireshark/Config.in | 51 + package/wireshark/wireshark.hash | 6 + package/wireshark/wireshark.mk | 191 + ...-Add-feature-macros-to-more-C-files-.patch | 174 + package/wlroots/Config.in | 44 + package/wlroots/wlroots.hash | 5 + package/wlroots/wlroots.mk | 48 + package/wmctrl/Config.in | 24 + package/wmctrl/wmctrl.hash | 3 + package/wmctrl/wmctrl.mk | 18 + ...tiple-libraries-being-returned-for-B.patch | 80 + package/woff2/Config.in | 12 + package/woff2/woff2.hash | 5 + package/woff2/woff2.mk | 23 + package/wolfssl/Config.in | 31 + package/wolfssl/wolfssl.hash | 6 + package/wolfssl/wolfssl.mk | 48 + package/wolftpm/Config.in | 41 + package/wolftpm/wolftpm.hash | 4 + package/wolftpm/wolftpm.mk | 50 + ...le-options-for-libwpa_client.so-and-.patch | 68 + .../wpa_supplicant/50-wpa_supplicant.preset | 4 + package/wpa_supplicant/Config.in | 178 + package/wpa_supplicant/ifupdown.sh | 49 + package/wpa_supplicant/wpa_supplicant.conf | 6 + package/wpa_supplicant/wpa_supplicant.hash | 3 + package/wpa_supplicant/wpa_supplicant.mk | 295 + package/wpan-tools/Config.in | 11 + package/wpan-tools/wpan-tools.hash | 3 + package/wpan-tools/wpan-tools.mk | 15 + package/wpebackend-fdo/Config.in | 20 + package/wpebackend-fdo/wpebackend-fdo.hash | 7 + package/wpebackend-fdo/wpebackend-fdo.mk | 15 + package/wpewebkit/Config.in | 141 + package/wpewebkit/wpewebkit.hash | 8 + package/wpewebkit/wpewebkit.mk | 104 + package/wqy-zenhei/Config.in | 16 + package/wqy-zenhei/wqy-zenhei.hash | 6 + package/wqy-zenhei/wqy-zenhei.mk | 27 + package/wsapi-fcgi/Config.in | 11 + package/wsapi-fcgi/wsapi-fcgi.hash | 4 + package/wsapi-fcgi/wsapi-fcgi.mk | 15 + package/wsapi-xavante/Config.in | 10 + package/wsapi-xavante/wsapi-xavante.hash | 4 + package/wsapi-xavante/wsapi-xavante.mk | 14 + package/wsapi/Config.in | 9 + package/wsapi/wsapi.hash | 4 + package/wsapi/wsapi.mk | 14 + package/wtfutil/Config.in | 8 + package/wtfutil/wtfutil.hash | 2 + package/wtfutil/wtfutil.mk | 14 + package/x11r7/Config.in | 246 + package/x11r7/libxcb/Config.in | 12 + package/x11r7/libxcb/libxcb.hash | 5 + package/x11r7/libxcb/libxcb.mk | 31 + package/x11r7/mcookie/Config.in | 6 + package/x11r7/mcookie/mcookie.c | 425 + package/x11r7/mcookie/mcookie.mk | 21 + package/x11r7/x11r7.mk | 1 + package/x11r7/xapp_appres/Config.in | 6 + package/x11r7/xapp_appres/xapp_appres.hash | 5 + package/x11r7/xapp_appres/xapp_appres.mk | 14 + package/x11r7/xapp_bdftopcf/Config.in | 5 + .../x11r7/xapp_bdftopcf/xapp_bdftopcf.hash | 8 + package/x11r7/xapp_bdftopcf/xapp_bdftopcf.mk | 19 + package/x11r7/xapp_beforelight/Config.in | 8 + .../xapp_beforelight/xapp_beforelight.hash | 4 + .../xapp_beforelight/xapp_beforelight.mk | 15 + package/x11r7/xapp_bitmap/Config.in | 8 + package/x11r7/xapp_bitmap/xapp_bitmap.hash | 5 + package/x11r7/xapp_bitmap/xapp_bitmap.mk | 15 + package/x11r7/xapp_editres/Config.in | 8 + package/x11r7/xapp_editres/xapp_editres.hash | 5 + package/x11r7/xapp_editres/xapp_editres.mk | 15 + package/x11r7/xapp_fonttosfnt/Config.in | 7 + .../xapp_fonttosfnt/xapp_fonttosfnt.hash | 5 + .../x11r7/xapp_fonttosfnt/xapp_fonttosfnt.mk | 14 + package/x11r7/xapp_fslsfonts/Config.in | 6 + .../x11r7/xapp_fslsfonts/xapp_fslsfonts.hash | 4 + .../x11r7/xapp_fslsfonts/xapp_fslsfonts.mk | 14 + package/x11r7/xapp_fstobdf/Config.in | 6 + package/x11r7/xapp_fstobdf/xapp_fstobdf.hash | 4 + package/x11r7/xapp_fstobdf/xapp_fstobdf.mk | 14 + package/x11r7/xapp_iceauth/Config.in | 6 + package/x11r7/xapp_iceauth/xapp_iceauth.hash | 5 + package/x11r7/xapp_iceauth/xapp_iceauth.mk | 14 + package/x11r7/xapp_ico/Config.in | 5 + package/x11r7/xapp_ico/xapp_ico.hash | 7 + package/x11r7/xapp_ico/xapp_ico.mk | 14 + package/x11r7/xapp_listres/Config.in | 8 + package/x11r7/xapp_listres/xapp_listres.hash | 5 + package/x11r7/xapp_listres/xapp_listres.mk | 14 + .../x11r7/xapp_luit/0001-posix-openpt.patch | 19 + package/x11r7/xapp_luit/Config.in | 7 + package/x11r7/xapp_luit/xapp_luit.hash | 4 + package/x11r7/xapp_luit/xapp_luit.mk | 14 + package/x11r7/xapp_mkfontscale/Config.in | 9 + .../xapp_mkfontscale/xapp_mkfontscale.hash | 5 + .../xapp_mkfontscale/xapp_mkfontscale.mk | 17 + package/x11r7/xapp_oclock/Config.in | 7 + package/x11r7/xapp_oclock/xapp_oclock.hash | 7 + package/x11r7/xapp_oclock/xapp_oclock.mk | 22 + package/x11r7/xapp_rgb/Config.in | 5 + package/x11r7/xapp_rgb/xapp_rgb.hash | 4 + package/x11r7/xapp_rgb/xapp_rgb.mk | 14 + package/x11r7/xapp_rstart/Config.in | 6 + package/x11r7/xapp_rstart/xapp_rstart.hash | 5 + package/x11r7/xapp_rstart/xapp_rstart.mk | 14 + package/x11r7/xapp_scripts/Config.in | 5 + package/x11r7/xapp_scripts/xapp_scripts.hash | 3 + package/x11r7/xapp_scripts/xapp_scripts.mk | 14 + package/x11r7/xapp_sessreg/Config.in | 6 + package/x11r7/xapp_sessreg/xapp_sessreg.hash | 7 + package/x11r7/xapp_sessreg/xapp_sessreg.mk | 14 + package/x11r7/xapp_setxkbmap/Config.in | 7 + .../x11r7/xapp_setxkbmap/xapp_setxkbmap.hash | 5 + .../x11r7/xapp_setxkbmap/xapp_setxkbmap.mk | 14 + package/x11r7/xapp_showfont/Config.in | 5 + .../x11r7/xapp_showfont/xapp_showfont.hash | 4 + package/x11r7/xapp_showfont/xapp_showfont.mk | 14 + package/x11r7/xapp_smproxy/Config.in | 6 + package/x11r7/xapp_smproxy/xapp_smproxy.hash | 4 + package/x11r7/xapp_smproxy/xapp_smproxy.mk | 14 + package/x11r7/xapp_twm/Config.in | 8 + package/x11r7/xapp_twm/xapp_twm.hash | 5 + package/x11r7/xapp_twm/xapp_twm.mk | 15 + package/x11r7/xapp_viewres/Config.in | 5 + package/x11r7/xapp_viewres/xapp_viewres.hash | 7 + package/x11r7/xapp_viewres/xapp_viewres.mk | 15 + package/x11r7/xapp_x11perf/Config.in | 7 + package/x11r7/xapp_x11perf/xapp_x11perf.hash | 7 + package/x11r7/xapp_x11perf/xapp_x11perf.mk | 14 + package/x11r7/xapp_xauth/Config.in | 8 + package/x11r7/xapp_xauth/xapp_xauth.hash | 5 + package/x11r7/xapp_xauth/xapp_xauth.mk | 14 + package/x11r7/xapp_xbacklight/Config.in | 8 + .../xapp_xbacklight/xapp_xbacklight.hash | 7 + .../x11r7/xapp_xbacklight/xapp_xbacklight.mk | 14 + package/x11r7/xapp_xbiff/Config.in | 6 + package/x11r7/xapp_xbiff/xapp_xbiff.hash | 7 + package/x11r7/xapp_xbiff/xapp_xbiff.mk | 14 + package/x11r7/xapp_xcalc/Config.in | 5 + package/x11r7/xapp_xcalc/xapp_xcalc.hash | 5 + package/x11r7/xapp_xcalc/xapp_xcalc.mk | 16 + package/x11r7/xapp_xclipboard/Config.in | 5 + .../xapp_xclipboard/xapp_xclipboard.hash | 5 + .../x11r7/xapp_xclipboard/xapp_xclipboard.mk | 15 + package/x11r7/xapp_xclock/Config.in | 9 + package/x11r7/xapp_xclock/xapp_xclock.hash | 5 + package/x11r7/xapp_xclock/xapp_xclock.mk | 15 + package/x11r7/xapp_xcmsdb/Config.in | 6 + package/x11r7/xapp_xcmsdb/xapp_xcmsdb.hash | 5 + package/x11r7/xapp_xcmsdb/xapp_xcmsdb.mk | 14 + package/x11r7/xapp_xcompmgr/Config.in | 10 + .../x11r7/xapp_xcompmgr/xapp_xcompmgr.hash | 7 + package/x11r7/xapp_xcompmgr/xapp_xcompmgr.mk | 19 + package/x11r7/xapp_xconsole/Config.in | 10 + .../x11r7/xapp_xconsole/xapp_xconsole.hash | 5 + package/x11r7/xapp_xconsole/xapp_xconsole.mk | 17 + package/x11r7/xapp_xcursorgen/Config.in | 7 + .../xapp_xcursorgen/xapp_xcursorgen.hash | 7 + .../x11r7/xapp_xcursorgen/xapp_xcursorgen.mk | 17 + package/x11r7/xapp_xdbedizzy/Config.in | 5 + .../x11r7/xapp_xdbedizzy/xapp_xdbedizzy.hash | 4 + .../x11r7/xapp_xdbedizzy/xapp_xdbedizzy.mk | 14 + package/x11r7/xapp_xditview/Config.in | 5 + .../x11r7/xapp_xditview/xapp_xditview.hash | 7 + package/x11r7/xapp_xditview/xapp_xditview.mk | 15 + package/x11r7/xapp_xdm/Config.in | 15 + package/x11r7/xapp_xdm/S99xdm | 25 + package/x11r7/xapp_xdm/xapp_xdm.hash | 5 + package/x11r7/xapp_xdm/xapp_xdm.mk | 32 + package/x11r7/xapp_xdpyinfo/Config.in | 8 + .../x11r7/xapp_xdpyinfo/xapp_xdpyinfo.hash | 5 + package/x11r7/xapp_xdpyinfo/xapp_xdpyinfo.mk | 37 + package/x11r7/xapp_xdriinfo/Config.in | 10 + .../x11r7/xapp_xdriinfo/xapp_xdriinfo.hash | 7 + package/x11r7/xapp_xdriinfo/xapp_xdriinfo.mk | 14 + package/x11r7/xapp_xedit/Config.in | 6 + package/x11r7/xapp_xedit/xapp_xedit.hash | 5 + package/x11r7/xapp_xedit/xapp_xedit.mk | 18 + package/x11r7/xapp_xev/Config.in | 6 + package/x11r7/xapp_xev/xapp_xev.hash | 5 + package/x11r7/xapp_xev/xapp_xev.mk | 14 + package/x11r7/xapp_xeyes/Config.in | 9 + package/x11r7/xapp_xeyes/xapp_xeyes.hash | 5 + package/x11r7/xapp_xeyes/xapp_xeyes.mk | 26 + package/x11r7/xapp_xf86dga/Config.in | 7 + package/x11r7/xapp_xf86dga/xapp_xf86dga.hash | 4 + package/x11r7/xapp_xf86dga/xapp_xf86dga.mk | 17 + package/x11r7/xapp_xfd/Config.in | 8 + package/x11r7/xapp_xfd/xapp_xfd.hash | 7 + package/x11r7/xapp_xfd/xapp_xfd.mk | 28 + package/x11r7/xapp_xfindproxy/Config.in | 9 + .../xapp_xfindproxy/xapp_xfindproxy.hash | 4 + .../x11r7/xapp_xfindproxy/xapp_xfindproxy.mk | 17 + package/x11r7/xapp_xfontsel/Config.in | 5 + .../x11r7/xapp_xfontsel/xapp_xfontsel.hash | 5 + package/x11r7/xapp_xfontsel/xapp_xfontsel.mk | 14 + package/x11r7/xapp_xfs/Config.in | 8 + package/x11r7/xapp_xfs/xapp_xfs.hash | 5 + package/x11r7/xapp_xfs/xapp_xfs.mk | 14 + package/x11r7/xapp_xfsinfo/Config.in | 6 + package/x11r7/xapp_xfsinfo/xapp_xfsinfo.hash | 7 + package/x11r7/xapp_xfsinfo/xapp_xfsinfo.mk | 14 + package/x11r7/xapp_xgamma/Config.in | 5 + package/x11r7/xapp_xgamma/xapp_xgamma.hash | 4 + package/x11r7/xapp_xgamma/xapp_xgamma.mk | 14 + package/x11r7/xapp_xgc/Config.in | 5 + package/x11r7/xapp_xgc/xapp_xgc.hash | 4 + package/x11r7/xapp_xgc/xapp_xgc.mk | 14 + package/x11r7/xapp_xhost/Config.in | 6 + package/x11r7/xapp_xhost/xapp_xhost.hash | 7 + package/x11r7/xapp_xhost/xapp_xhost.mk | 14 + package/x11r7/xapp_xinit/Config.in | 11 + package/x11r7/xapp_xinit/xapp_xinit.hash | 7 + package/x11r7/xapp_xinit/xapp_xinit.mk | 15 + .../x11r7/xapp_xinput-calibrator/Config.in | 12 + .../xapp_xinput-calibrator.hash | 3 + .../xapp_xinput-calibrator.mk | 14 + package/x11r7/xapp_xinput/Config.in | 8 + package/x11r7/xapp_xinput/xapp_xinput.hash | 7 + package/x11r7/xapp_xinput/xapp_xinput.mk | 14 + package/x11r7/xapp_xkbcomp/Config.in | 6 + package/x11r7/xapp_xkbcomp/xapp_xkbcomp.hash | 6 + package/x11r7/xapp_xkbcomp/xapp_xkbcomp.mk | 17 + package/x11r7/xapp_xkbevd/Config.in | 6 + package/x11r7/xapp_xkbevd/xapp_xkbevd.hash | 4 + package/x11r7/xapp_xkbevd/xapp_xkbevd.mk | 14 + package/x11r7/xapp_xkbprint/Config.in | 5 + .../x11r7/xapp_xkbprint/xapp_xkbprint.hash | 7 + package/x11r7/xapp_xkbprint/xapp_xkbprint.mk | 14 + package/x11r7/xapp_xkbutils/Config.in | 6 + .../x11r7/xapp_xkbutils/xapp_xkbutils.hash | 5 + package/x11r7/xapp_xkbutils/xapp_xkbutils.mk | 14 + package/x11r7/xapp_xkill/Config.in | 6 + package/x11r7/xapp_xkill/xapp_xkill.hash | 7 + package/x11r7/xapp_xkill/xapp_xkill.mk | 14 + package/x11r7/xapp_xload/Config.in | 5 + package/x11r7/xapp_xload/xapp_xload.hash | 5 + package/x11r7/xapp_xload/xapp_xload.mk | 25 + package/x11r7/xapp_xlogo/Config.in | 7 + package/x11r7/xapp_xlogo/xapp_xlogo.hash | 7 + package/x11r7/xapp_xlogo/xapp_xlogo.mk | 16 + package/x11r7/xapp_xlsatoms/Config.in | 6 + .../x11r7/xapp_xlsatoms/xapp_xlsatoms.hash | 7 + package/x11r7/xapp_xlsatoms/xapp_xlsatoms.mk | 14 + package/x11r7/xapp_xlsclients/Config.in | 8 + .../xapp_xlsclients/xapp_xlsclients.hash | 7 + .../x11r7/xapp_xlsclients/xapp_xlsclients.mk | 14 + package/x11r7/xapp_xlsfonts/Config.in | 5 + .../x11r7/xapp_xlsfonts/xapp_xlsfonts.hash | 5 + package/x11r7/xapp_xlsfonts/xapp_xlsfonts.mk | 14 + package/x11r7/xapp_xmag/Config.in | 5 + package/x11r7/xapp_xmag/xapp_xmag.hash | 5 + package/x11r7/xapp_xmag/xapp_xmag.mk | 15 + package/x11r7/xapp_xman/Config.in | 5 + package/x11r7/xapp_xman/xapp_xman.hash | 7 + package/x11r7/xapp_xman/xapp_xman.mk | 21 + package/x11r7/xapp_xmessage/Config.in | 5 + .../x11r7/xapp_xmessage/xapp_xmessage.hash | 5 + package/x11r7/xapp_xmessage/xapp_xmessage.mk | 15 + package/x11r7/xapp_xmh/Config.in | 7 + package/x11r7/xapp_xmh/xapp_xmh.hash | 4 + package/x11r7/xapp_xmh/xapp_xmh.mk | 14 + package/x11r7/xapp_xmodmap/Config.in | 5 + package/x11r7/xapp_xmodmap/xapp_xmodmap.hash | 5 + package/x11r7/xapp_xmodmap/xapp_xmodmap.mk | 14 + package/x11r7/xapp_xmore/Config.in | 5 + package/x11r7/xapp_xmore/xapp_xmore.hash | 7 + package/x11r7/xapp_xmore/xapp_xmore.mk | 14 + package/x11r7/xapp_xpr/Config.in | 6 + package/x11r7/xapp_xpr/xapp_xpr.hash | 5 + package/x11r7/xapp_xpr/xapp_xpr.mk | 14 + package/x11r7/xapp_xprop/Config.in | 6 + package/x11r7/xapp_xprop/xapp_xprop.hash | 5 + package/x11r7/xapp_xprop/xapp_xprop.mk | 14 + package/x11r7/xapp_xrandr/Config.in | 6 + package/x11r7/xapp_xrandr/xapp_xrandr.hash | 7 + package/x11r7/xapp_xrandr/xapp_xrandr.mk | 15 + package/x11r7/xapp_xrdb/Config.in | 6 + package/x11r7/xapp_xrdb/xapp_xrdb.hash | 5 + package/x11r7/xapp_xrdb/xapp_xrdb.mk | 14 + package/x11r7/xapp_xrefresh/Config.in | 5 + .../x11r7/xapp_xrefresh/xapp_xrefresh.hash | 5 + package/x11r7/xapp_xrefresh/xapp_xrefresh.mk | 14 + package/x11r7/xapp_xset/Config.in | 5 + package/x11r7/xapp_xset/xapp_xset.hash | 7 + package/x11r7/xapp_xset/xapp_xset.mk | 14 + package/x11r7/xapp_xsetmode/Config.in | 6 + .../x11r7/xapp_xsetmode/xapp_xsetmode.hash | 3 + package/x11r7/xapp_xsetmode/xapp_xsetmode.mk | 14 + package/x11r7/xapp_xsetpointer/Config.in | 7 + .../xapp_xsetpointer/xapp_xsetpointer.hash | 6 + .../xapp_xsetpointer/xapp_xsetpointer.mk | 14 + package/x11r7/xapp_xsetroot/Config.in | 8 + .../x11r7/xapp_xsetroot/xapp_xsetroot.hash | 7 + package/x11r7/xapp_xsetroot/xapp_xsetroot.mk | 14 + package/x11r7/xapp_xsm/Config.in | 6 + package/x11r7/xapp_xsm/xapp_xsm.hash | 5 + package/x11r7/xapp_xsm/xapp_xsm.mk | 14 + package/x11r7/xapp_xstdcmap/Config.in | 6 + .../x11r7/xapp_xstdcmap/xapp_xstdcmap.hash | 7 + package/x11r7/xapp_xstdcmap/xapp_xstdcmap.mk | 14 + package/x11r7/xapp_xvidtune/Config.in | 6 + .../x11r7/xapp_xvidtune/xapp_xvidtune.hash | 4 + package/x11r7/xapp_xvidtune/xapp_xvidtune.mk | 14 + package/x11r7/xapp_xvinfo/Config.in | 6 + package/x11r7/xapp_xvinfo/xapp_xvinfo.hash | 7 + package/x11r7/xapp_xvinfo/xapp_xvinfo.mk | 14 + package/x11r7/xapp_xwd/Config.in | 7 + package/x11r7/xapp_xwd/xapp_xwd.hash | 5 + package/x11r7/xapp_xwd/xapp_xwd.mk | 14 + package/x11r7/xapp_xwininfo/Config.in | 6 + .../x11r7/xapp_xwininfo/xapp_xwininfo.hash | 7 + package/x11r7/xapp_xwininfo/xapp_xwininfo.mk | 14 + package/x11r7/xapp_xwud/Config.in | 5 + package/x11r7/xapp_xwud/xapp_xwud.hash | 5 + package/x11r7/xapp_xwud/xapp_xwud.mk | 14 + package/x11r7/xcb-proto/Config.in | 6 + package/x11r7/xcb-proto/xcb-proto.hash | 5 + package/x11r7/xcb-proto/xcb-proto.mk | 23 + package/x11r7/xcb-util-cursor/Config.in | 19 + .../xcb-util-cursor/xcb-util-cursor.hash | 4 + .../x11r7/xcb-util-cursor/xcb-util-cursor.mk | 15 + package/x11r7/xcb-util-image/Config.in | 17 + .../x11r7/xcb-util-image/xcb-util-image.hash | 4 + .../x11r7/xcb-util-image/xcb-util-image.mk | 15 + package/x11r7/xcb-util-keysyms/Config.in | 17 + .../xcb-util-keysyms/xcb-util-keysyms.hash | 2 + .../xcb-util-keysyms/xcb-util-keysyms.mk | 18 + package/x11r7/xcb-util-renderutil/Config.in | 18 + .../xcb-util-renderutil.hash | 4 + .../xcb-util-renderutil.mk | 15 + package/x11r7/xcb-util-wm/Config.in | 17 + package/x11r7/xcb-util-wm/xcb-util-wm.hash | 4 + package/x11r7/xcb-util-wm/xcb-util-wm.mk | 15 + package/x11r7/xcb-util/Config.in | 8 + package/x11r7/xcb-util/xcb-util.hash | 3 + package/x11r7/xcb-util/xcb-util.mk | 15 + .../0001-fix-symlink.patch | 37 + .../x11r7/xcursor-transparent-theme/Config.in | 7 + .../xcursor-transparent-theme/index.theme | 2 + .../xcursor-transparent-theme.hash | 3 + .../xcursor-transparent-theme.mk | 21 + package/x11r7/xdata_xbitmaps/Config.in | 4 + .../x11r7/xdata_xbitmaps/xdata_xbitmaps.hash | 7 + .../x11r7/xdata_xbitmaps/xdata_xbitmaps.mk | 15 + package/x11r7/xdata_xcursor-themes/Config.in | 5 + .../xdata_xcursor-themes.hash | 7 + .../xdata_xcursor-themes.mk | 16 + .../0001-build-get-rid-of-sdkdir.patch | 87 + .../x11r7/xdriver_xf86-input-evdev/Config.in | 11 + .../xdriver_xf86-input-evdev.hash | 7 + .../xdriver_xf86-input-evdev.mk | 22 + .../0001-build-get-rid-of-sdkdir.patch | 78 + .../50-joystick.conf | 6 + .../xdriver_xf86-input-joystick/Config.in | 5 + .../xdriver_xf86-input-joystick.hash | 4 + .../xdriver_xf86-input-joystick.mk | 22 + .../xdriver_xf86-input-keyboard/Config.in | 5 + .../xdriver_xf86-input-keyboard.hash | 4 + .../xdriver_xf86-input-keyboard.mk | 15 + .../0001-build-get-rid-of-sdkdir.patch | 78 + .../xdriver_xf86-input-libinput/Config.in | 12 + .../xdriver_xf86-input-libinput.hash | 6 + .../xdriver_xf86-input-libinput.mk | 15 + .../0001-build-get-rid-of-sdkdir.patch | 81 + .../x11r7/xdriver_xf86-input-mouse/Config.in | 5 + .../xdriver_xf86-input-mouse.hash | 7 + .../xdriver_xf86-input-mouse.mk | 15 + .../0001-build-get-rid-of-sdkdir.patch | 88 + .../xdriver_xf86-input-synaptics/Config.in | 7 + .../xdriver_xf86-input-synaptics.hash | 5 + .../xdriver_xf86-input-synaptics.mk | 15 + .../x11r7/xdriver_xf86-input-tslib/Config.in | 8 + .../xdriver_xf86-input-tslib.hash | 5 + .../xdriver_xf86-input-tslib.mk | 17 + .../xdriver_xf86-input-vmmouse/Config.in | 6 + .../xdriver_xf86-input-vmmouse.hash | 4 + .../xdriver_xf86-input-vmmouse.mk | 21 + .../x11r7/xdriver_xf86-video-amdgpu/Config.in | 15 + .../xdriver_xf86-video-amdgpu.hash | 5 + .../xdriver_xf86-video-amdgpu.mk | 28 + .../0001-mibstore.patch | 40 + .../x11r7/xdriver_xf86-video-ark/Config.in | 5 + .../xdriver_xf86-video-ark.hash | 4 + .../xdriver_xf86-video-ark.mk | 14 + .../x11r7/xdriver_xf86-video-ast/Config.in | 5 + .../xdriver_xf86-video-ast.hash | 4 + .../xdriver_xf86-video-ast.mk | 14 + .../0001-Fix-link-failure-with-gcc-10.patch | 35 + ...terminology-to-use-primary-secondary.patch | 371 + ...-variable-priv-only-used-with-glamor.patch | 66 + ...dri-h-with-older-versions-of-xserver.patch | 32 + .../x11r7/xdriver_xf86-video-ati/Config.in | 14 + .../xdriver_xf86-video-ati.hash | 7 + .../xdriver_xf86-video-ati.mk | 28 + .../x11r7/xdriver_xf86-video-cirrus/Config.in | 5 + .../xdriver_xf86-video-cirrus.hash | 5 + .../xdriver_xf86-video-cirrus.mk | 14 + .../x11r7/xdriver_xf86-video-dummy/Config.in | 5 + .../xdriver_xf86-video-dummy.hash | 5 + .../xdriver_xf86-video-dummy.mk | 14 + .../x11r7/xdriver_xf86-video-fbdev/Config.in | 5 + .../xdriver_xf86-video-fbdev.hash | 4 + .../xdriver_xf86-video-fbdev.mk | 14 + ...sunxi_x_g2d-drop-unused-dri2-include.patch | 28 + ...nk-functions-instead-of-fbdevHW-Weak.patch | 160 + .../0003-Update-for-1.20-ABI.patch | 30 + ...-mandatory-modules-fb-shadow-fbdevhw.patch | 53 + ...ner-struct-_Window-backStorage-is-go.patch | 65 + .../xdriver_xf86-video-fbturbo/Config.in | 11 + .../xdriver_xf86-video-fbturbo.hash | 3 + .../xdriver_xf86-video-fbturbo.mk | 30 + .../x11r7/xdriver_xf86-video-geode/Config.in | 6 + .../xdriver_xf86-video-geode.hash | 3 + .../xdriver_xf86-video-geode.mk | 14 + .../x11r7/xdriver_xf86-video-glint/Config.in | 10 + .../xdriver_xf86-video-glint.hash | 4 + .../xdriver_xf86-video-glint.mk | 14 + .../x11r7/xdriver_xf86-video-i128/Config.in | 5 + .../xdriver_xf86-video-i128.hash | 7 + .../xdriver_xf86-video-i128.mk | 14 + .../xdriver_xf86-video-imx-viv/Config.in | 44 + .../xdriver_xf86-video-imx-viv.hash | 3 + .../xdriver_xf86-video-imx-viv.mk | 35 + .../0001-Update-to-newer-swap-macros.patch | 65 + ...002-Fix-error-unknown-type-name-uint.patch | 33 + .../0003-support-glibc-2.20.patch | 57 + ...-API-forward-and-backward-compatible.patch | 787 + ...-video-imxfb-fix-m4-hardcodded-paths.patch | 53 + .../0006-xserver-1.14-compat.patch | 34 + .../x11r7/xdriver_xf86-video-imx/Config.in | 27 + .../xdriver_xf86-video-imx.hash | 2 + .../xdriver_xf86-video-imx.mk | 14 + .../x11r7/xdriver_xf86-video-intel/Config.in | 10 + .../xdriver_xf86-video-intel.hash | 3 + .../xdriver_xf86-video-intel.mk | 47 + .../0001-cross-compile.patch | 27 + .../x11r7/xdriver_xf86-video-mach64/Config.in | 5 + .../xdriver_xf86-video-mach64.hash | 5 + .../xdriver_xf86-video-mach64.mk | 21 + .../x11r7/xdriver_xf86-video-mga/Config.in | 6 + .../xdriver_xf86-video-mga.hash | 5 + .../xdriver_xf86-video-mga.mk | 20 + .../xdriver_xf86-video-neomagic/Config.in | 5 + .../xdriver_xf86-video-neomagic.hash | 7 + .../xdriver_xf86-video-neomagic.mk | 14 + ...au-fixup-driver-for-new-X-server-ABI.patch | 68 + .../xdriver_xf86-video-nouveau/Config.in | 13 + .../xdriver_xf86-video-nouveau.hash | 6 + .../xdriver_xf86-video-nouveau.mk | 21 + package/x11r7/xdriver_xf86-video-nv/Config.in | 5 + .../xdriver_xf86-video-nv.hash | 5 + .../xdriver_xf86-video-nv.mk | 14 + .../xdriver_xf86-video-openchrome/Config.in | 16 + .../xdriver_xf86-video-openchrome.hash | 3 + .../xdriver_xf86-video-openchrome.mk | 22 + ...1-Fix-a-build-error-with-Xorg-master.patch | 106 + .../x11r7/xdriver_xf86-video-qxl/Config.in | 12 + .../xdriver_xf86-video-qxl.hash | 4 + .../xdriver_xf86-video-qxl.mk | 37 + .../x11r7/xdriver_xf86-video-r128/Config.in | 5 + .../xdriver_xf86-video-r128.hash | 7 + .../xdriver_xf86-video-r128.mk | 20 + .../0001-cross-compile.patch | 27 + .../0002-xorg-xserver120.patch | 23 + .../x11r7/xdriver_xf86-video-savage/Config.in | 6 + .../xdriver_xf86-video-savage.hash | 4 + .../xdriver_xf86-video-savage.mk | 21 + .../Config.in | 5 + .../xdriver_xf86-video-siliconmotion.hash | 4 + .../xdriver_xf86-video-siliconmotion.mk | 16 + .../x11r7/xdriver_xf86-video-sis/Config.in | 6 + .../xdriver_xf86-video-sis.hash | 7 + .../xdriver_xf86-video-sis.mk | 20 + .../xdriver_xf86-video-tdfx/0001-cross.patch | 24 + .../x11r7/xdriver_xf86-video-tdfx/Config.in | 6 + .../xdriver_xf86-video-tdfx.hash | 7 + .../xdriver_xf86-video-tdfx.mk | 24 + .../0001-mibstore.patch | 47 + .../x11r7/xdriver_xf86-video-tga/Config.in | 5 + .../xdriver_xf86-video-tga.hash | 4 + .../xdriver_xf86-video-tga.mk | 14 + .../0001-Remove-ramdac.patch | 56 + .../xdriver_xf86-video-trident/Config.in | 5 + .../xdriver_xf86-video-trident.hash | 4 + .../xdriver_xf86-video-trident.mk | 14 + .../x11r7/xdriver_xf86-video-vesa/Config.in | 5 + .../xdriver_xf86-video-vesa.hash | 5 + .../xdriver_xf86-video-vesa.mk | 14 + .../x11r7/xdriver_xf86-video-vmware/Config.in | 11 + .../xdriver_xf86-video-vmware.hash | 7 + .../xdriver_xf86-video-vmware.mk | 21 + .../x11r7/xdriver_xf86-video-voodoo/Config.in | 5 + .../xdriver_xf86-video-voodoo.mk | 14 + package/x11r7/xfont_encodings/Config.in | 5 + .../xfont_encodings/xfont_encodings.hash | 5 + .../x11r7/xfont_encodings/xfont_encodings.mk | 18 + .../x11r7/xfont_font-adobe-100dpi/Config.in | 5 + .../xfont_font-adobe-100dpi.hash | 3 + .../xfont_font-adobe-100dpi.mk | 22 + .../x11r7/xfont_font-adobe-75dpi/Config.in | 5 + .../xfont_font-adobe-75dpi.hash | 3 + .../xfont_font-adobe-75dpi.mk | 22 + .../xfont_font-adobe-utopia-100dpi/Config.in | 5 + .../xfont_font-adobe-utopia-100dpi.hash | 3 + .../xfont_font-adobe-utopia-100dpi.mk | 22 + .../xfont_font-adobe-utopia-75dpi/Config.in | 5 + .../xfont_font-adobe-utopia-75dpi.hash | 3 + .../xfont_font-adobe-utopia-75dpi.mk | 22 + .../xfont_font-adobe-utopia-type1/Config.in | 5 + .../xfont_font-adobe-utopia-type1.hash | 3 + .../xfont_font-adobe-utopia-type1.mk | 17 + package/x11r7/xfont_font-alias/Config.in | 5 + .../xfont_font-alias/xfont_font-alias.hash | 5 + .../xfont_font-alias/xfont_font-alias.mk | 17 + .../x11r7/xfont_font-arabic-misc/Config.in | 5 + .../xfont_font-arabic-misc.hash | 3 + .../xfont_font-arabic-misc.mk | 22 + package/x11r7/xfont_font-bh-100dpi/Config.in | 5 + .../xfont_font-bh-100dpi.hash | 3 + .../xfont_font-bh-100dpi.mk | 22 + package/x11r7/xfont_font-bh-75dpi/Config.in | 5 + .../xfont_font-bh-75dpi.hash | 3 + .../xfont_font-bh-75dpi.mk | 22 + .../Config.in | 5 + ...xfont_font-bh-lucidatypewriter-100dpi.hash | 3 + .../xfont_font-bh-lucidatypewriter-100dpi.mk | 22 + .../Config.in | 5 + .../xfont_font-bh-lucidatypewriter-75dpi.hash | 3 + .../xfont_font-bh-lucidatypewriter-75dpi.mk | 22 + package/x11r7/xfont_font-bh-ttf/Config.in | 5 + .../xfont_font-bh-ttf/xfont_font-bh-ttf.hash | 4 + .../xfont_font-bh-ttf/xfont_font-bh-ttf.mk | 17 + package/x11r7/xfont_font-bh-type1/Config.in | 5 + .../xfont_font-bh-type1.hash | 3 + .../xfont_font-bh-type1.mk | 17 + .../xfont_font-bitstream-100dpi/Config.in | 5 + .../xfont_font-bitstream-100dpi.hash | 3 + .../xfont_font-bitstream-100dpi.mk | 22 + .../xfont_font-bitstream-75dpi/Config.in | 5 + .../xfont_font-bitstream-75dpi.hash | 3 + .../xfont_font-bitstream-75dpi.mk | 22 + .../xfont_font-bitstream-type1/Config.in | 5 + .../xfont_font-bitstream-type1.hash | 3 + .../xfont_font-bitstream-type1.mk | 17 + .../xfont_font-cronyx-cyrillic/Config.in | 5 + .../xfont_font-cronyx-cyrillic.hash | 3 + .../xfont_font-cronyx-cyrillic.mk | 22 + .../x11r7/xfont_font-cursor-misc/Config.in | 5 + .../xfont_font-cursor-misc.hash | 3 + .../xfont_font-cursor-misc.mk | 22 + .../x11r7/xfont_font-daewoo-misc/Config.in | 5 + .../xfont_font-daewoo-misc.hash | 2 + .../xfont_font-daewoo-misc.mk | 21 + package/x11r7/xfont_font-dec-misc/Config.in | 5 + .../xfont_font-dec-misc.hash | 3 + .../xfont_font-dec-misc.mk | 22 + package/x11r7/xfont_font-ibm-type1/Config.in | 5 + .../xfont_font-ibm-type1.hash | 3 + .../xfont_font-ibm-type1.mk | 17 + package/x11r7/xfont_font-isas-misc/Config.in | 5 + .../xfont_font-isas-misc.hash | 3 + .../xfont_font-isas-misc.mk | 22 + package/x11r7/xfont_font-jis-misc/Config.in | 5 + .../xfont_font-jis-misc.hash | 2 + .../xfont_font-jis-misc.mk | 21 + package/x11r7/xfont_font-micro-misc/Config.in | 5 + .../xfont_font-micro-misc.hash | 3 + .../xfont_font-micro-misc.mk | 22 + .../x11r7/xfont_font-misc-cyrillic/Config.in | 5 + .../xfont_font-misc-cyrillic.hash | 3 + .../xfont_font-misc-cyrillic.mk | 22 + .../x11r7/xfont_font-misc-ethiopic/Config.in | 5 + .../xfont_font-misc-ethiopic.hash | 5 + .../xfont_font-misc-ethiopic.mk | 17 + .../x11r7/xfont_font-misc-meltho/Config.in | 5 + .../xfont_font-misc-meltho.hash | 3 + .../xfont_font-misc-meltho.mk | 17 + package/x11r7/xfont_font-misc-misc/Config.in | 5 + .../xfont_font-misc-misc.hash | 3 + .../xfont_font-misc-misc.mk | 22 + package/x11r7/xfont_font-mutt-misc/Config.in | 5 + .../xfont_font-mutt-misc.hash | 3 + .../xfont_font-mutt-misc.mk | 22 + .../xfont_font-schumacher-misc/Config.in | 5 + .../xfont_font-schumacher-misc.hash | 3 + .../xfont_font-schumacher-misc.mk | 22 + .../xfont_font-screen-cyrillic/Config.in | 5 + .../xfont_font-screen-cyrillic.hash | 4 + .../xfont_font-screen-cyrillic.mk | 22 + package/x11r7/xfont_font-sony-misc/Config.in | 5 + .../xfont_font-sony-misc.hash | 4 + .../xfont_font-sony-misc.mk | 22 + package/x11r7/xfont_font-sun-misc/Config.in | 5 + .../xfont_font-sun-misc.hash | 4 + .../xfont_font-sun-misc.mk | 22 + package/x11r7/xfont_font-util/Config.in | 4 + .../xfont_font-util/xfont_font-util.hash | 5 + .../x11r7/xfont_font-util/xfont_font-util.mk | 19 + .../xfont_font-winitzki-cyrillic/Config.in | 5 + .../xfont_font-winitzki-cyrillic.hash | 4 + .../xfont_font-winitzki-cyrillic.mk | 22 + .../x11r7/xfont_font-xfree86-type1/Config.in | 5 + .../xfont_font-xfree86-type1.hash | 4 + .../xfont_font-xfree86-type1.mk | 17 + package/x11r7/xkeyboard-config/Config.in | 10 + .../xkeyboard-config/xkeyboard-config.hash | 3 + .../xkeyboard-config/xkeyboard-config.mk | 21 + package/x11r7/xlib_libFS/Config.in | 6 + package/x11r7/xlib_libFS/xlib_libFS.hash | 7 + package/x11r7/xlib_libFS/xlib_libFS.mk | 18 + package/x11r7/xlib_libICE/Config.in | 6 + package/x11r7/xlib_libICE/xlib_libICE.hash | 7 + package/x11r7/xlib_libICE/xlib_libICE.mk | 17 + package/x11r7/xlib_libSM/Config.in | 7 + package/x11r7/xlib_libSM/xlib_libSM.hash | 7 + package/x11r7/xlib_libSM/xlib_libSM.mk | 16 + package/x11r7/xlib_libX11/Config.in | 10 + package/x11r7/xlib_libX11/xlib_libX11.hash | 5 + package/x11r7/xlib_libX11/xlib_libX11.mk | 42 + package/x11r7/xlib_libXScrnSaver/Config.in | 7 + .../xlib_libXScrnSaver.hash | 7 + .../xlib_libXScrnSaver/xlib_libXScrnSaver.mk | 16 + package/x11r7/xlib_libXau/Config.in | 6 + package/x11r7/xlib_libXau/xlib_libXau.hash | 7 + package/x11r7/xlib_libXau/xlib_libXau.mk | 18 + package/x11r7/xlib_libXaw/Config.in | 9 + package/x11r7/xlib_libXaw/xlib_libXaw.hash | 6 + package/x11r7/xlib_libXaw/xlib_libXaw.mk | 15 + package/x11r7/xlib_libXcomposite/Config.in | 8 + .../xlib_libXcomposite.hash | 7 + .../xlib_libXcomposite/xlib_libXcomposite.mk | 15 + package/x11r7/xlib_libXcursor/Config.in | 8 + .../xlib_libXcursor/xlib_libXcursor.hash | 5 + .../x11r7/xlib_libXcursor/xlib_libXcursor.mk | 21 + package/x11r7/xlib_libXdamage/Config.in | 7 + .../xlib_libXdamage/xlib_libXdamage.hash | 7 + .../x11r7/xlib_libXdamage/xlib_libXdamage.mk | 15 + package/x11r7/xlib_libXdmcp/Config.in | 6 + .../x11r7/xlib_libXdmcp/xlib_libXdmcp.hash | 7 + package/x11r7/xlib_libXdmcp/xlib_libXdmcp.mk | 19 + package/x11r7/xlib_libXext/Config.in | 6 + package/x11r7/xlib_libXext/xlib_libXext.hash | 7 + package/x11r7/xlib_libXext/xlib_libXext.mk | 18 + package/x11r7/xlib_libXfixes/Config.in | 6 + .../x11r7/xlib_libXfixes/xlib_libXfixes.hash | 6 + .../x11r7/xlib_libXfixes/xlib_libXfixes.mk | 20 + package/x11r7/xlib_libXfont/Config.in | 9 + .../x11r7/xlib_libXfont/xlib_libXfont.hash | 8 + package/x11r7/xlib_libXfont/xlib_libXfont.mk | 42 + package/x11r7/xlib_libXfont2/Config.in | 9 + .../x11r7/xlib_libXfont2/xlib_libXfont2.hash | 5 + .../x11r7/xlib_libXfont2/xlib_libXfont2.mk | 45 + package/x11r7/xlib_libXft/Config.in | 10 + package/x11r7/xlib_libXft/xlib_libXft.hash | 5 + package/x11r7/xlib_libXft/xlib_libXft.mk | 15 + package/x11r7/xlib_libXi/Config.in | 8 + package/x11r7/xlib_libXi/xlib_libXi.hash | 5 + package/x11r7/xlib_libXi/xlib_libXi.mk | 24 + package/x11r7/xlib_libXinerama/Config.in | 7 + .../xlib_libXinerama/xlib_libXinerama.hash | 7 + .../xlib_libXinerama/xlib_libXinerama.mk | 18 + package/x11r7/xlib_libXmu/Config.in | 8 + package/x11r7/xlib_libXmu/xlib_libXmu.hash | 7 + package/x11r7/xlib_libXmu/xlib_libXmu.mk | 15 + package/x11r7/xlib_libXpm/Config.in | 8 + package/x11r7/xlib_libXpm/xlib_libXpm.hash | 8 + package/x11r7/xlib_libXpm/xlib_libXpm.mk | 24 + package/x11r7/xlib_libXrandr/Config.in | 8 + .../x11r7/xlib_libXrandr/xlib_libXrandr.hash | 7 + .../x11r7/xlib_libXrandr/xlib_libXrandr.mk | 18 + package/x11r7/xlib_libXrender/Config.in | 6 + .../xlib_libXrender/xlib_libXrender.hash | 5 + .../x11r7/xlib_libXrender/xlib_libXrender.mk | 22 + package/x11r7/xlib_libXres/Config.in | 7 + package/x11r7/xlib_libXres/xlib_libXres.hash | 6 + package/x11r7/xlib_libXres/xlib_libXres.mk | 18 + package/x11r7/xlib_libXt/Config.in | 9 + package/x11r7/xlib_libXt/xlib_libXt.hash | 5 + package/x11r7/xlib_libXt/xlib_libXt.mk | 18 + package/x11r7/xlib_libXtst/Config.in | 8 + package/x11r7/xlib_libXtst/xlib_libXtst.hash | 4 + package/x11r7/xlib_libXtst/xlib_libXtst.mk | 22 + package/x11r7/xlib_libXv/Config.in | 7 + package/x11r7/xlib_libXv/xlib_libXv.hash | 5 + package/x11r7/xlib_libXv/xlib_libXv.mk | 18 + package/x11r7/xlib_libXvMC/Config.in | 8 + package/x11r7/xlib_libXvMC/xlib_libXvMC.hash | 5 + package/x11r7/xlib_libXvMC/xlib_libXvMC.mk | 18 + package/x11r7/xlib_libXxf86dga/Config.in | 8 + .../xlib_libXxf86dga/xlib_libXxf86dga.hash | 7 + .../xlib_libXxf86dga/xlib_libXxf86dga.mk | 18 + package/x11r7/xlib_libXxf86vm/Config.in | 7 + .../xlib_libXxf86vm/xlib_libXxf86vm.hash | 6 + .../x11r7/xlib_libXxf86vm/xlib_libXxf86vm.mk | 18 + package/x11r7/xlib_libdmx/Config.in | 7 + package/x11r7/xlib_libdmx/xlib_libdmx.hash | 7 + package/x11r7/xlib_libdmx/xlib_libdmx.mk | 18 + package/x11r7/xlib_libfontenc/Config.in | 6 + .../xlib_libfontenc/xlib_libfontenc.hash | 7 + .../x11r7/xlib_libfontenc/xlib_libfontenc.mk | 17 + package/x11r7/xlib_libxcvt/Config.in | 8 + package/x11r7/xlib_libxcvt/xlib_libxcvt.hash | 5 + package/x11r7/xlib_libxcvt/xlib_libxcvt.mk | 14 + package/x11r7/xlib_libxkbfile/Config.in | 6 + .../xlib_libxkbfile/xlib_libxkbfile.hash | 7 + .../x11r7/xlib_libxkbfile/xlib_libxkbfile.mk | 17 + package/x11r7/xlib_libxshmfence/Config.in | 9 + .../xlib_libxshmfence/xlib_libxshmfence.hash | 7 + .../xlib_libxshmfence/xlib_libxshmfence.mk | 15 + package/x11r7/xlib_xtrans/Config.in | 4 + package/x11r7/xlib_xtrans/xlib_xtrans.hash | 7 + package/x11r7/xlib_xtrans/xlib_xtrans.mk | 15 + package/x11r7/xorgproto/Config.in | 5 + package/x11r7/xorgproto/xorgproto.hash | 41 + package/x11r7/xorgproto/xorgproto.mk | 54 + ...0001-include-misc.h-fix-uClibc-build.patch | 31 + package/x11r7/xserver_xorg-server/Config.in | 95 + package/x11r7/xserver_xorg-server/S40xorg | 46 + .../x11r7/xserver_xorg-server/xorg.service | 11 + .../xserver_xorg-server.hash | 6 + .../xserver_xorg-server.mk | 191 + package/x11r7/xutil_makedepend/Config.in | 5 + .../xutil_makedepend/xutil_makedepend.hash | 7 + .../xutil_makedepend/xutil_makedepend.mk | 17 + ...ld-on-32bit-arches-with-64bit-time_t.patch | 109 + ...ared-memory-segments-to-current-user.patch | 25 + package/x11vnc/Config.in | 16 + package/x11vnc/x11vnc.hash | 3 + package/x11vnc/x11vnc.mk | 70 + package/x264/Config.in | 19 + package/x264/x264.hash | 3 + package/x264/x264.mk | 70 + package/x265/0001-fix-gcc-options.patch | 88 + package/x265/Config.in | 29 + package/x265/x265.hash | 5 + package/x265/x265.mk | 38 + package/xapian/Config.in | 18 + package/xapian/xapian.hash | 5 + package/xapian/xapian.mk | 17 + package/xavante/Config.in | 13 + package/xavante/xavante.hash | 3 + package/xavante/xavante.mk | 11 + package/xdg-dbus-proxy/Config.in | 14 + package/xdg-dbus-proxy/xdg-dbus-proxy.hash | 5 + package/xdg-dbus-proxy/xdg-dbus-proxy.mk | 17 + package/xdotool/Config.in | 12 + package/xdotool/xdotool.hash | 3 + package/xdotool/xdotool.mk | 24 + ...de-linux-limits.h-for-XATTR_SIZE_MAX.patch | 43 + .../0002-Fix-build-with-64-bits-time_t.patch | 95 + ...-libs-light-fix-tv_sec-printf-format.patch | 63 + ...libs-light-fix-tv_sec-fprintf-format.patch | 30 + package/xen/Config.in | 43 + package/xen/xen.hash | 3 + package/xen/xen.mk | 65 + ...Allow-building-with-GCC-10-2-2020101.patch | 1721 +++ ...2-Add-disable-demo-testsuite-options.patch | 94 + ...id-addresses-for-pthread_setspecific.patch | 57 + package/xenomai/Config.in | 231 + package/xenomai/xenomai.hash | 17 + package/xenomai/xenomai.mk | 166 + .../0001-fix-static-linking-with-curl.patch | 39 + ...oadMsg-fix-memory-leak-when-transcod.patch | 87 + package/xerces/Config.in | 23 + package/xerces/xerces.hash | 5 + package/xerces/xerces.mk | 48 + ...-do-dynamic-linking-of-libtool-libra.patch | 52 + ...-do-not-try-to-run-the-crc32selftest.patch | 44 + ...riding-MAP_SYNC-in-publicly-exported.patch | 187 + package/xfsprogs/Config.in | 19 + package/xfsprogs/xfsprogs.hash | 6 + package/xfsprogs/xfsprogs.mk | 32 + package/xinetd/0001-ar.patch | 74 + package/xinetd/0002-destdir.patch | 55 + package/xinetd/0003-rpc-fix.patch | 26 + package/xinetd/0004-configure-rlim_t.patch | 18 + ...netd-ignores-user-and-group-directiv.patch | 29 + package/xinetd/Config.in | 8 + package/xinetd/xinetd.hash | 3 + package/xinetd/xinetd.mk | 38 + package/xl2tp/Config.in | 12 + package/xl2tp/xl2tp.hash | 3 + package/xl2tp/xl2tp.mk | 27 + package/xl2tp/xl2tpd | 27 + .../0001-fix-build-with-libressl-3.5.0.patch | 91 + package/xml-security-c/Config.in | 20 + package/xml-security-c/xml-security-c.hash | 3 + package/xml-security-c/xml-security-c.mk | 18 + package/xmlstarlet/Config.in | 9 + package/xmlstarlet/xmlstarlet.hash | 5 + package/xmlstarlet/xmlstarlet.mk | 34 + package/xmrig/Config.in | 31 + package/xmrig/xmrig.hash | 3 + package/xmrig/xmrig.mk | 43 + package/xorcurses/Config.in | 11 + package/xorcurses/xorcurses.hash | 3 + package/xorcurses/xorcurses.mk | 27 + package/xorriso/Config.in | 22 + package/xorriso/Config.in.host | 14 + package/xorriso/xorriso.hash | 4 + package/xorriso/xorriso.mk | 79 + package/xr819-xradio/Config.in | 12 + package/xr819-xradio/xr819-xradio.hash | 4 + package/xr819-xradio/xr819-xradio.mk | 21 + package/xscreensaver/Config.in | 38 + package/xscreensaver/xscreensaver.hash | 4 + package/xscreensaver/xscreensaver.mk | 75 + package/xtables-addons/Config.in | 19 + package/xtables-addons/xtables-addons.hash | 3 + package/xtables-addons/xtables-addons.mk | 40 + package/xterm/Config.in | 10 + package/xterm/xterm.hash | 4 + package/xterm/xterm.mk | 36 + package/xutil_util-macros/Config.in | 4 + .../xutil_util-macros/xutil_util-macros.hash | 5 + .../xutil_util-macros/xutil_util-macros.mk | 17 + ...psmouse-back.c-fix-build-with-gcc-11.patch | 115 + package/xvisor/Config.in | 69 + package/xvisor/xvisor.hash | 3 + package/xvisor/xvisor.mk | 88 + package/xvkbd/Config.in | 16 + package/xvkbd/xvkbd.hash | 4 + package/xvkbd/xvkbd.mk | 23 + .../0001-fix-man-page-installation.patch | 66 + ...kefile-add-dedicated-install-targets.patch | 71 + ...nd-on-assert-h-for-XXH_STATIC_ASSERT.patch | 29 + package/xxhash/Config.in | 7 + package/xxhash/xxhash.hash | 4 + package/xxhash/xxhash.mk | 43 + package/xz/Config.in | 15 + package/xz/xz.hash | 9 + package/xz/xz.mk | 32 + package/yad/Config.in | 13 + package/yad/yad.hash | 6 + package/yad/yad.mk | 24 + package/yaffs2utils/yaffs2utils.hash | 3 + package/yaffs2utils/yaffs2utils.mk | 22 + ...nd-the-static-library-have-the-same-.patch | 34 + ...ared-library-build-when-BUILD_SHARED.patch | 49 + ...ith-shared-libyajl-in-a-shared-build.patch | 127 + ...with-libm-when-isnan-is-not-brought-.patch | 64 + package/yajl/Config.in | 8 + package/yajl/yajl.hash | 3 + package/yajl/yajl.mk | 13 + package/yaml-cpp/Config.in | 12 + package/yaml-cpp/yaml-cpp.hash | 3 + package/yaml-cpp/yaml-cpp.mk | 25 + package/yasm/Config.in | 10 + package/yasm/yasm.hash | 7 + package/yasm/yasm.mk | 22 + package/yavta/Config.in | 6 + package/yavta/yavta.hash | 3 + package/yavta/yavta.mk | 14 + package/ympd/0001-only-c-language.patch | 21 + .../0002-added-forward-declarations.patch | 43 + package/ympd/Config.in | 15 + package/ympd/ympd.hash | 3 + package/ympd/ympd.mk | 20 + package/ytree/0001-fix-musl.patch | 26 + package/ytree/Config.in | 8 + package/ytree/ytree.hash | 3 + package/ytree/ytree.mk | 31 + ...-netsnmp.m4-fix-shared-netsnmp-build.patch | 44 + package/zabbix/Config.in | 83 + package/zabbix/zabbix-agent.service | 17 + package/zabbix/zabbix-server.service | 17 + package/zabbix/zabbix.hash | 4 + package/zabbix/zabbix.mk | 136 + package/zbar/Config.in | 17 + package/zbar/zbar.hash | 3 + package/zbar/zbar.mk | 42 + ...rgp-standalone-wrap-and-find_library.patch | 106 + ...002-zck-declare-write_data-as-static.patch | 34 + package/zchunk/Config.in | 9 + package/zchunk/zchunk.hash | 3 + package/zchunk/zchunk.mk | 39 + package/zd1211-firmware/Config.in | 6 + package/zd1211-firmware/zd1211-firmware.hash | 3 + package/zd1211-firmware/zd1211-firmware.mk | 19 + package/zeek/Config.in | 43 + package/zeek/zeek.hash | 6 + package/zeek/zeek.mk | 92 + package/zerofree/Config.in | 14 + package/zerofree/zerofree.hash | 3 + package/zerofree/zerofree.mk | 28 + package/zeromq/Config.in | 65 + package/zeromq/zeromq.hash | 7 + package/zeromq/zeromq.mk | 102 + package/zfs/Config.in | 33 + package/zfs/zfs.hash | 7 + package/zfs/zfs.mk | 82 + ...ove-dependency-check-on-version-file.patch | 32 + package/zic/zic.hash | 4 + package/zic/zic.mk | 25 + ...-Check-C-compiler-type-optimization-.patch | 130 + .../0002-configure-Don-t-use-host-CPP.patch | 37 + ...akefile-Use-CFLAGS-from-command-line.patch | 30 + ...figure-use-LDFLAGS-from-command-line.patch | 35 + ...-configure-remove-GID-UID-size-check.patch | 85 + ...e-borrow-the-LFS-test-from-autotools.patch | 101 + ...ne.c-needs-time.h-fixes-musl-compile.patch | 38 + package/zip/0008-fix-musl-static-build.patch | 20 + package/zip/Config.in | 10 + package/zip/Config.in.host | 10 + package/zip/zip.hash | 3 + package/zip/zip.mk | 62 + package/zisofs-tools/zisofs-tools.hash | 5 + package/zisofs-tools/zisofs-tools.mk | 15 + ...rd-for-vec_sumsu-to-prevent-undefine.patch | 27 + ...ix-version-in-zlib.pc-when-building-.patch | 53 + ...-sys-auxv.h-exists-at-configure-time.patch | 90 + package/zlib-ng/zlib-ng.hash | 3 + package/zlib-ng/zlib-ng.mk | 32 + package/zlib/Config.in | 62 + package/zlib/zlib.mk | 8 + ...verflow-at-zlog_conf_build_with_file.patch | 25 + package/zlog/Config.in | 12 + package/zlog/zlog.hash | 3 + package/zlog/zlog.mk | 30 + ...ilding-shared-or-static-library-only.patch | 92 + package/zmqpp/Config.in | 41 + package/zmqpp/zmqpp.hash | 3 + package/zmqpp/zmqpp.mk | 59 + package/znc/Config.in | 17 + package/znc/znc.hash | 3 + package/znc/znc.mk | 49 + package/zsh/Config.in | 11 + package/zsh/zsh.hash | 3 + package/zsh/zsh.mk | 80 + package/zstd/Config.in | 12 + package/zstd/Config.in.host | 8 + package/zstd/zstd.hash | 6 + package/zstd/zstd.mk | 111 + ...bs-private-not-exported-to-the-users.patch | 43 + ...akeLists-txt-add-BUILD_OPENCV-option.patch | 39 + package/zxing-cpp/Config.in | 14 + package/zxing-cpp/zxing-cpp.hash | 5 + package/zxing-cpp/zxing-cpp.mk | 26 + package/zynaddsubfx/Config.in | 30 + package/zynaddsubfx/zynaddsubfx.hash | 3 + package/zynaddsubfx/zynaddsubfx.mk | 47 + package/zyre/Config.in | 16 + package/zyre/zyre.hash | 3 + package/zyre/zyre.mk | 22 + ...-implant-ZZIP_LIBLATEST-for-zzip_lib.patch | 75 + ...reate-symlinks-only-if-target-is-mis.patch | 72 + package/zziplib/Config.in | 11 + package/zziplib/zziplib.hash | 5 + package/zziplib/zziplib.mk | 30 + .../autobuild/arm-aarch64.config | 4 + .../autobuild/bootlin-aarch64-glibc.config | 4 + .../bootlin-arcle-hs38-uclibc.config | 5 + .../autobuild/bootlin-armv5-uclibc.config | 4 + .../autobuild/bootlin-armv7-glibc.config | 6 + .../autobuild/bootlin-armv7-musl.config | 6 + .../autobuild/bootlin-armv7m-uclibc.config | 5 + .../autobuild/bootlin-m68k-5208-uclibc.config | 4 + .../bootlin-m68k-68040-uclibc.config | 4 + .../bootlin-microblazeel-uclibc.config | 3 + .../autobuild/bootlin-mipsel-uclibc.config | 4 + .../autobuild/bootlin-mipsel32r6-glibc.config | 6 + .../autobuild/bootlin-nios2-glibc.config | 4 + .../autobuild/bootlin-openrisc-uclibc.config | 3 + .../bootlin-powerpc-e500mc-uclibc.config | 4 + .../bootlin-powerpc64le-power8-glibc.config | 4 + .../autobuild/bootlin-riscv32-glibc.config | 5 + .../autobuild/bootlin-riscv64-glibc.config | 5 + .../autobuild/bootlin-riscv64-musl.config | 4 + .../autobuild/bootlin-sh4-uclibc.config | 3 + .../autobuild/bootlin-sparc-uclibc.config | 3 + .../autobuild/bootlin-sparc64-glibc.config | 3 + .../autobuild/bootlin-x86-64-glibc.config | 5 + .../autobuild/bootlin-x86-64-musl.config | 4 + .../autobuild/bootlin-x86-64-uclibc.config | 4 + .../autobuild/bootlin-xtensa-uclibc.config | 5 + .../autobuild/br-arc-full-internal.config | 3 + .../autobuild/br-arc-internal-glibc.config | 4 + .../autobuild/br-arm-basic.config | 8 + .../autobuild/br-arm-full-nothread.config | 11 + .../autobuild/br-arm-full-static.config | 11 + .../autobuild/br-arm-internal-full.config | 5 + .../autobuild/br-arm-internal-glibc.config | 6 + .../autobuild/br-arm-internal-musl.config | 4 + .../autobuild/br-i386-pentium-mmx-musl.config | 10 + .../autobuild/br-i386-pentium4-full.config | 10 + .../br-microblazeel-full-internal.config | 1 + .../autobuild/br-mips64-n64-full.config | 10 + .../autobuild/br-mips64r6-el-hf-glibc.config | 12 + .../br-powerpc-603e-basic-cpp.config | 10 + .../autobuild/br-powerpc-internal-full.config | 4 + .../br-powerpc64-power7-glibc.config | 9 + .../autobuild/br-riscv64-full-internal.config | 4 + .../br-s390x-z13-internal-glibc.config | 4 + .../autobuild/br-xtensa-full-internal.config | 3 + .../autobuild/linaro-aarch64-be.config | 3 + .../autobuild/linaro-aarch64.config | 3 + .../autobuild/linaro-arm.config | 5 + .../autobuild/sourcery-arm-armv4t.config | 4 + .../autobuild/sourcery-arm-thumb2.config | 7 + .../autobuild/sourcery-arm.config | 3 + .../autobuild/sourcery-mips.config | 4 + .../autobuild/sourcery-mips64.config | 5 + .../autobuild/sourcery-nios2.config | 3 + .../autobuild/toolchain-configs.csv | 72 + support/config-fragments/minimal.config | 8 + support/dependencies/check-host-asciidoc.sh | 36 + support/dependencies/check-host-bison-flex.mk | 14 + support/dependencies/check-host-cmake.mk | 14 + support/dependencies/check-host-cmake.sh | 45 + support/dependencies/check-host-coreutils.mk | 6 + support/dependencies/check-host-coreutils.sh | 12 + support/dependencies/check-host-gzip.mk | 3 + support/dependencies/check-host-gzip.sh | 21 + support/dependencies/check-host-lzip.mk | 4 + support/dependencies/check-host-lzip.sh | 14 + support/dependencies/check-host-make.mk | 21 + support/dependencies/check-host-make.sh | 37 + support/dependencies/check-host-python3.mk | 8 + support/dependencies/check-host-python3.sh | 31 + support/dependencies/check-host-tar.mk | 6 + support/dependencies/check-host-tar.sh | 47 + support/dependencies/check-host-xzcat.mk | 7 + support/dependencies/check-host-xzcat.sh | 14 + support/dependencies/dependencies.mk | 35 + support/dependencies/dependencies.sh | 312 + support/docker/Dockerfile | 66 + support/docker/apt-sources.list | 4 + support/download/bzr | 65 + support/download/cargo-post-process | 38 + support/download/check-hash | 107 + support/download/cvs | 70 + support/download/dl-wrapper | 227 + support/download/file | 49 + support/download/git | 231 + support/download/go-post-process | 35 + support/download/helpers | 98 + support/download/hg | 50 + support/download/scp | 47 + support/download/sftp | 41 + support/download/svn | 67 + support/download/wget | 50 + support/gnuconfig/README.buildroot | 21 + support/gnuconfig/config.guess | 1685 +++ support/gnuconfig/config.sub | 1847 +++ support/gnuconfig/update | 14 + support/kconfig/.gitignore | 4 + support/kconfig/Makefile | 342 + support/kconfig/Makefile.br | 53 + support/kconfig/POTFILES.in | 12 + support/kconfig/README.buildroot | 25 + support/kconfig/check.sh | 14 + support/kconfig/conf.c | 716 + support/kconfig/confdata.c | 1282 ++ support/kconfig/expr.c | 1305 ++ support/kconfig/expr.h | 329 + support/kconfig/foo.h | 12 + support/kconfig/gconf.c | 1521 ++ support/kconfig/gconf.glade | 661 + support/kconfig/images.c | 326 + support/kconfig/kconf_id.c | 53 + support/kconfig/kxgettext.c | 235 + support/kconfig/list.h | 132 + support/kconfig/lkc.h | 188 + support/kconfig/lkc_proto.h | 53 + support/kconfig/lxdialog/.gitignore | 4 + support/kconfig/lxdialog/BIG.FAT.WARNING | 4 + support/kconfig/lxdialog/check-lxdialog.sh | 93 + support/kconfig/lxdialog/checklist.c | 332 + support/kconfig/lxdialog/dialog.h | 257 + support/kconfig/lxdialog/inputbox.c | 301 + support/kconfig/lxdialog/menubox.c | 437 + support/kconfig/lxdialog/textbox.c | 408 + support/kconfig/lxdialog/util.c | 713 + support/kconfig/lxdialog/yesno.c | 114 + support/kconfig/mconf.c | 1047 ++ support/kconfig/menu.c | 873 ++ support/kconfig/merge_config.sh | 182 + support/kconfig/nconf.c | 1563 ++ support/kconfig/nconf.gui.c | 664 + support/kconfig/nconf.h | 94 + .../01-kconfig-kernel-to-buildroot.patch | 107 + .../06-br-build-system-integration.patch | 74 + .../kconfig/patches/10-br-build-system.patch | 80 + .../patches/11-use-mktemp-for-lxdialog.patch | 17 + .../patches/12-fix-glade-file-path.patch | 17 + .../14-support-out-of-tree-config.patch | 207 + .../16-fix-space-to-de-select-options.patch | 41 + .../kconfig/patches/17-backport-kecho.patch | 26 + ...fig.sh-create-temporary-files-in-tmp.patch | 27 + ...e_config.sh-add-br2-external-support.patch | 47 + ...fig.sh-Allow-to-define-config-prefix.patch | 31 + ...-positive-matches-from-comment-lines.patch | 32 + support/kconfig/patches/series | 12 + support/kconfig/qconf.cc | 1879 +++ support/kconfig/qconf.h | 330 + support/kconfig/streamline_config.pl | 682 + support/kconfig/symbol.c | 1432 ++ support/kconfig/util.c | 179 + support/kconfig/zconf.l | 372 + support/kconfig/zconf.lex.c_shipped | 2500 ++++ support/kconfig/zconf.tab.c_shipped | 2488 ++++ support/kconfig/zconf.y | 782 + support/legal-info/README.header | 35 + support/legal-info/README.warnings-header | 4 + support/legal-info/buildroot.hash | 2 + support/libtool/buildroot-libtool-v1.5.patch | 91 + support/libtool/buildroot-libtool-v2.2.patch | 106 + .../libtool/buildroot-libtool-v2.4.4.patch | 95 + support/libtool/buildroot-libtool-v2.4.patch | 89 + support/misc/Buildroot.cmake | 8 + support/misc/Vagrantfile | 60 + support/misc/cross-compilation.conf.in | 40 + support/misc/gen-glibc-locales.mk | 41 + support/misc/gitlab-ci.yml.in | 105 + support/misc/relocate-sdk.sh | 52 + support/misc/target-dir-warning.txt | 29 + support/misc/toolchainfile.cmake.in | 136 + support/misc/utils.mk | 143 + support/scripts/apply-patches.sh | 165 + support/scripts/boot-qemu-image.py | 84 + support/scripts/br2-external | 262 + support/scripts/brpkgutil.py | 50 + support/scripts/check-bin-arch | 96 + support/scripts/check-dotconfig.py | 42 + support/scripts/check-host-rpath | 111 + support/scripts/check-kernel-headers.sh | 69 + support/scripts/check-merged-usr.sh | 39 + support/scripts/cpedb.py | 174 + support/scripts/cve.py | 273 + support/scripts/expunge-gconv-modules | 59 + support/scripts/fix-configure-powerpc64.sh | 47 + support/scripts/fix-rpath | 162 + support/scripts/gen-bootlin-toolchains | 566 + support/scripts/gen-missing-cpe | 65 + support/scripts/generate-gitlab-ci-yml | 143 + support/scripts/genimage.sh | 48 + support/scripts/graph-build-time | 373 + support/scripts/graph-depends | 357 + support/scripts/hardlink-or-copy | 35 + support/scripts/mkmakefile | 52 + support/scripts/mkusers | 471 + support/scripts/pkg-stats | 1354 ++ support/scripts/pyinstaller.py | 92 + support/scripts/setlocalversion | 93 + support/scripts/size-stats | 311 + .../conf/binfmt-misc-kernel-fragment.config | 2 + .../testing/conf/docker-compose-kernel.config | 77 + support/testing/conf/docker-compose.yml | 9 + .../testing/conf/f2fs-kernel-fragment.config | 5 + support/testing/conf/grub2-efi.cfg | 2 + support/testing/conf/grub2.cfg | 7 + support/testing/conf/isolinux.cfg | 5 + .../conf/minimal-x86-qemu-kernel.config | 50 + support/testing/conf/unittest.cfg | 5 + support/testing/infra/__init__.py | 127 + support/testing/infra/basetest.py | 94 + support/testing/infra/builder.py | 107 + support/testing/infra/emulator.py | 128 + support/testing/run-tests | 121 + support/testing/tests/__init__.py | 0 support/testing/tests/boot/__init__.py | 0 support/testing/tests/boot/test_atf.py | 56 + support/testing/tests/boot/test_edk2.py | 45 + support/testing/tests/boot/test_grub.py | 156 + .../boot/test_grub/genimage-aarch64-efi.cfg | 32 + .../tests/boot/test_grub/grub-aarch64-efi.cfg | 6 + .../boot/test_grub/linux-aarch64-efi.config | 1 + .../tests/boot/test_grub/post-build.sh | 7 + .../boot/test_grub/post-image-aarch64-efi.sh | 8 + support/testing/tests/boot/test_syslinux.py | 85 + support/testing/tests/core/__init__.py | 0 .../br2-external/detect-bad-arch/Config.in | 1 + .../detect-bad-arch/external.desc | 1 + .../br2-external/detect-bad-arch/external.mk | 1 + .../package/detect-bad-arch/Config.in | 4 + .../detect-bad-arch/detect-bad-arch.mk | 15 + .../tests/core/cpeid-br2-external/Config.in | 0 .../core/cpeid-br2-external/external.desc | 1 + .../tests/core/cpeid-br2-external/external.mk | 1 + .../package/cpe-id-pkg1/cpe-id-pkg1.mk | 4 + .../package/cpe-id-pkg2/cpe-id-pkg2.mk | 3 + .../package/cpe-id-pkg3/cpe-id-pkg3.mk | 5 + .../package/cpe-id-pkg4/cpe-id-pkg4.mk | 9 + .../package/cpe-id-pkg5/cpe-id-pkg5.mk | 16 + support/testing/tests/core/device_table2.txt | 7 + support/testing/tests/core/post-build.sh | 12 + support/testing/tests/core/post-fakeroot.sh | 1 + support/testing/tests/core/post-image.sh | 1 + .../tests/core/rootfs-overlay1/test-file1 | 1 + .../tests/core/rootfs-overlay2/etc/test-file2 | 1 + .../tests/core/squashfs-xattr-kernel.config | 1 + support/testing/tests/core/test_bad_arch.py | 18 + support/testing/tests/core/test_cpeid.py | 110 + .../tests/core/test_file_capabilities.py | 46 + support/testing/tests/core/test_hardening.py | 115 + .../testing/tests/core/test_post_scripts.py | 48 + .../testing/tests/core/test_root_password.py | 36 + .../testing/tests/core/test_rootfs_overlay.py | 30 + support/testing/tests/core/test_selinux.py | 86 + .../core/test_selinux/br2_external/Config.in | 1 + .../test_selinux/br2_external/external.desc | 1 + .../test_selinux/br2_external/external.mk | 1 + .../package/selinux-test/Config.in | 4 + .../package/selinux-test/selinux-test.mk | 9 + .../package/selinux-test/selinux/buildroot.fc | 0 .../package/selinux-test/selinux/buildroot.if | 1 + .../package/selinux-test/selinux/buildroot.te | 3 + .../test_selinux/extra_modules/buildroot.fc | 0 .../test_selinux/extra_modules/buildroot.if | 1 + .../test_selinux/extra_modules/buildroot.te | 3 + support/testing/tests/core/test_timezone.py | 72 + support/testing/tests/download/__init__.py | 0 .../download/br2-external/git-hash/Config.in | 0 .../br2-external/git-hash/external.desc | 1 + .../br2-external/git-hash/external.mk | 4 + .../git-hash/package/bad/bad.hash | 1 + .../br2-external/git-hash/package/bad/bad.mk | 10 + .../git-hash/package/good/good.hash | 1 + .../git-hash/package/good/good.mk | 10 + .../git-hash/package/nohash/nohash.mk | 10 + .../download/br2-external/git-refs/Config.in | 0 .../br2-external/git-refs/external.desc | 1 + .../br2-external/git-refs/external.mk | 4 + .../git-partial-sha1-branch-head.hash | 2 + .../git-partial-sha1-branch-head.mk | 11 + .../git-partial-sha1-reachable-by-branch.hash | 2 + .../git-partial-sha1-reachable-by-branch.mk | 11 + .../git-partial-sha1-reachable-by-tag.hash | 2 + .../git-partial-sha1-reachable-by-tag.mk | 11 + .../git-partial-sha1-tag-itself.hash | 2 + .../git-partial-sha1-tag-itself.mk | 11 + .../git-partial-sha1-tag-points-to.hash | 2 + .../git-partial-sha1-tag-points-to.mk | 11 + .../git-sha1-branch-head.hash | 2 + .../git-sha1-branch-head.mk | 11 + .../git-sha1-reachable-by-branch.hash | 2 + .../git-sha1-reachable-by-branch.mk | 11 + .../git-sha1-reachable-by-tag.hash | 2 + .../git-sha1-reachable-by-tag.mk | 11 + .../git-sha1-tag-itself.hash | 2 + .../git-sha1-tag-itself.mk | 11 + .../git-sha1-tag-points-to.hash | 2 + .../git-sha1-tag-points-to.mk | 11 + .../git-submodule-disabled.hash | 2 + .../git-submodule-disabled.mk | 11 + .../git-submodule-enabled.hash | 1 + .../git-submodule-enabled.mk | 11 + .../git-refs/package/git-tag/git-tag.hash | 2 + .../git-refs/package/git-tag/git-tag.mk | 11 + .../git-wrong-content/git-wrong-content.hash | 2 + .../git-wrong-content/git-wrong-content.mk | 11 + .../package/git-wrong-sha1/git-wrong-sha1.mk | 11 + .../download/br2-external/github/Config.in | 0 .../br2-external/github/external.desc | 1 + .../download/br2-external/github/external.mk | 1 + .../github-helper-hash.hash | 3 + .../github-helper-hash/github-helper-hash.mk | 11 + .../github-helper-tag/github-helper-tag.hash | 3 + .../github-helper-tag/github-helper-tag.mk | 11 + .../github-release/github-release.hash | 3 + .../package/github-release/github-release.mk | 12 + .../download/br2-external/gitlab/Config.in | 0 .../br2-external/gitlab/external.desc | 1 + .../download/br2-external/gitlab/external.mk | 1 + .../gitlab-helper-hash.hash | 3 + .../gitlab-helper-hash/gitlab-helper-hash.mk | 12 + .../gitlab-helper-tag/gitlab-helper-tag.hash | 3 + .../gitlab-helper-tag/gitlab-helper-tag.mk | 11 + .../gitlab-release/gitlab-release.hash | 3 + .../package/gitlab-release/gitlab-release.mk | 12 + .../tests/download/br2-external/ssh/Config.in | 0 .../download/br2-external/ssh/external.desc | 1 + .../download/br2-external/ssh/external.mk | 1 + .../br2-external/ssh/package/scp/scp.hash | 1 + .../br2-external/ssh/package/scp/scp.mk | 17 + .../br2-external/ssh/package/sftp/sftp.hash | 1 + .../br2-external/ssh/package/sftp/sftp.mk | 17 + .../git-remote/refs-sub1.git/.gitattributes | 1 + .../download/git-remote/refs-sub1.git/HEAD | 1 + .../download/git-remote/refs-sub1.git/config | 4 + .../07/cabc655213bdf7087d8dd50fda95124e935570 | Bin 0 -> 22 bytes .../1d/f823cb8a6d1866148ae50a8009762a9c4c777f | Bin 0 -> 180 bytes .../7d/52f458bdb0f9f5a4beb46fa82824421b8b988e | Bin 0 -> 65 bytes .../99/f2e3e1cb15f9b52fa29f66d380dda061d917ab | Bin 0 -> 49 bytes .../a1/30af1626bbadd64841b2cbcb6ac4ed0638ba1a | Bin 0 -> 122 bytes .../bc/c81ba6e5bd8bf52c95688ae8d3e697e131fa23 | Bin 0 -> 22 bytes .../cb/545facf77bbc5f24f95b6d503c338d10b7b717 | 1 + .../dd/130f6f4629514adaf2e03407f3ed9344eb6cd6 | Bin 0 -> 122 bytes .../e7/9c5e8f964493290a409888d5413a737e8e5dd5 | Bin 0 -> 23 bytes .../f8/001e5780100962a5e30a25cbc4c9609cfc7bf3 | Bin 0 -> 184 bytes .../refs-sub1.git/refs/heads/submodule | 1 + .../git-remote/refs-sub2.git/.gitattributes | 1 + .../download/git-remote/refs-sub2.git/HEAD | 1 + .../download/git-remote/refs-sub2.git/config | 4 + .../0a/846af45c3e455789435f49f80d70e86b65b9d7 | Bin 0 -> 22 bytes .../0b/32ebd8fc52cec991f18c94be980e85a8341585 | Bin 0 -> 22 bytes .../32/d61bae693af7879da63b89a60d3ae67f851e56 | 1 + .../3e/9b0a5198c64cea9c00f820433411e3b4d50c1c | Bin 0 -> 48 bytes .../85/8f666af75b7c0dfba6b8be7eac5f196e7a1221 | Bin 0 -> 49 bytes .../99/f2e3e1cb15f9b52fa29f66d380dda061d917ab | Bin 0 -> 49 bytes .../cd/4d62ff218ab7b4a04f5bfdf800ace087af3ceb | 2 + .../e7/9c5e8f964493290a409888d5413a737e8e5dd5 | Bin 0 -> 23 bytes .../e8/3f6f805bd016b90acafc8702c52d778eb57310 | Bin 0 -> 182 bytes .../refs-sub2.git/refs/heads/submodule | 1 + .../git-remote/repo.git/.gitattributes | 1 + .../tests/download/git-remote/repo.git/HEAD | 1 + .../tests/download/git-remote/repo.git/config | 4 + .../0b/d8ceb961c3b2b210f64a67d57f4b5cd669d343 | Bin 0 -> 22 bytes .../11/93ff46343f4f6a0522e2b28b871e905178c1f0 | Bin 0 -> 23 bytes .../25/59d83bfe937fc0412d96ed664663c9e8a99055 | Bin 0 -> 22 bytes .../2b/0e0d98a49c97da6a618ab36337e2058eb733a2 | 1 + .../2f/a37f6885d7eb746df75eccaddbacf3ac82799d | Bin 0 -> 180 bytes .../31/7406308d9259e2231bd0d6ddad3de3832bce08 | 1 + .../34/d1da713bf7de1c535e1d7d3ca985afd84bc7e5 | Bin 0 -> 23 bytes .../46/bae5b639e5a18e2cc4dc508f080d566baeff59 | 1 + .../51/6c9c5f64ec66534d4d069c2e408d9ae4dce023 | 2 + .../68/c197d0879d485f4f6cee85544722b79e68e59f | 1 + .../8b/8a7e885a041da72b1ee9a47c5b9300b172a9e7 | Bin 0 -> 65 bytes .../92/ef85be57d627f280d8ce3724452ac21c9a6452 | Bin 0 -> 20 bytes .../99/f2e3e1cb15f9b52fa29f66d380dda061d917ab | Bin 0 -> 49 bytes .../a2/38b1dfcd825d47d834af3c5223417c8411d90d | 1 + .../a9/dbc1e23c45e8e1b88c0448763f54d714eb6f8f | Bin 0 -> 183 bytes .../b2/4b387624edc78d0292a127c43cad9ba97c6232 | Bin 0 -> 49 bytes .../cf/0f4f85d7a1237e377a2d25b996518a877ea001 | Bin 0 -> 49 bytes .../d4/e2941d18a63535400476324ddeb7f40164be41 | Bin 0 -> 121 bytes .../e2/2695cbf976fed1f543ad7486a531c0af473482 | Bin 0 -> 49 bytes .../e2/cfe068f7e5bf4de32ffe1241da53abce9fa89e | Bin 0 -> 49 bytes .../e7/9c5e8f964493290a409888d5413a737e8e5dd5 | Bin 0 -> 23 bytes .../f6/476b879f65e956d7dedd5b08736369e9a24acc | Bin 0 -> 20 bytes .../fe/74231105841041d5f441e70399d37f0e600aa5 | Bin 0 -> 121 bytes .../git-remote/repo.git/refs/heads/master | 1 + .../git-remote/repo.git/refs/heads/mybranch | 1 + .../git-remote/repo.git/refs/heads/submodule | 1 + .../git-remote/repo.git/refs/tags/mytag | 1 + support/testing/tests/download/gitremote.py | 47 + support/testing/tests/download/sshd.py | 149 + .../tests/download/sshd/ssh-test-1.0.tar.xz | Bin 0 -> 232 bytes support/testing/tests/download/test_git.py | 81 + .../testing/tests/download/test_gitforge.py | 49 + support/testing/tests/download/test_ssh.py | 62 + support/testing/tests/fs/__init__.py | 0 support/testing/tests/fs/test_ext.py | 124 + support/testing/tests/fs/test_f2fs.py | 47 + support/testing/tests/fs/test_iso9660.py | 236 + support/testing/tests/fs/test_jffs2.py | 44 + support/testing/tests/fs/test_oci.py | 57 + support/testing/tests/fs/test_squashfs.py | 57 + support/testing/tests/fs/test_ubi.py | 38 + .../fs/test_ubi/ubinize_qemu_pflash_cfi01.cfg | 8 + support/testing/tests/fs/test_yaffs2.py | 15 + support/testing/tests/init/__init__.py | 0 support/testing/tests/init/base.py | 46 + .../tests/init/systemd-factory/var/foo/bar | 1 + support/testing/tests/init/test_busybox.py | 64 + support/testing/tests/init/test_none.py | 32 + support/testing/tests/init/test_openrc.py | 46 + support/testing/tests/init/test_systemd.py | 192 + .../tests/init/test_systemd_selinux.py | 76 + .../linux-squashfs.fragment | 1 + support/testing/tests/package/__init__.py | 0 .../br2-external/clang-compiler-rt/Config.in | 1 + .../clang-compiler-rt/external.desc | 1 + .../clang-compiler-rt/external.mk | 1 + .../package/libfuzzer/Config.in | 8 + .../package/libfuzzer/libfuzzer.hash | 2 + .../package/libfuzzer/libfuzzer.mk | 24 + .../package/br2-external/openjdk/Config.in | 2 + .../br2-external/openjdk/external.desc | 1 + .../package/br2-external/openjdk/external.mk | 1 + .../package/openjdk-hello-world/Config.in | 5 + .../openjdk-hello-world/HelloWorld.java | 7 + .../openjdk-hello-world.mk | 18 + .../package/openjdk-jni-test/Config.in | 5 + .../package/openjdk-jni-test/JniHelper.java | 9 + .../package/openjdk-jni-test/JniTest.java | 92 + .../package/openjdk-jni-test/JniWrapper.c | 50 + .../package/openjdk-jni-test/JniWrapper.java | 17 + .../package/openjdk-jni-test/jni_helper.c | 94 + .../package/openjdk-jni-test/jni_helper.h | 13 + .../openjdk/package/openjdk-jni-test/native.c | 39 + .../openjdk/package/openjdk-jni-test/native.h | 11 + .../openjdk-jni-test/openjdk-jni-test.mk | 34 + .../package/br2-external/polkit/Config.in | 1 + .../package/br2-external/polkit/external.desc | 1 + .../package/br2-external/polkit/external.mk | 1 + .../package/polkit-rules-test/Config.in | 6 + .../polkit-rules-test/initd/hello-polkit.c | 6 + .../initd/hello-polkit.policy | 14 + .../initd/hello-polkit.rules | 6 + .../polkit-rules-test/polkit-rules-test.mk | 38 + .../systemd/systemd-timesyncd-restart.rules | 7 + .../br2-external/python-pybind/Config.in | 1 + .../br2-external/python-pybind/external.desc | 1 + .../br2-external/python-pybind/external.mk | 1 + .../package/python-pybind-example/Config.in | 6 + .../package/python-pybind-example/example.cpp | 16 + .../python-pybind-example.mk | 41 + .../package/copy-sample-script-to-target.sh | 7 + .../tests/package/sample_bmap_tools.sh | 16 + .../tests/package/sample_gst1_python.py | 32 + .../testing/tests/package/sample_libftdi1.py | 1 + .../tests/package/sample_python_aexpect.py | 1 + .../tests/package/sample_python_argh.py | 10 + .../tests/package/sample_python_attrs.py | 15 + .../tests/package/sample_python_augeas.py | 9 + .../tests/package/sample_python_autobahn.py | 1 + .../tests/package/sample_python_automat.py | 27 + .../tests/package/sample_python_avro.py | 23 + .../tests/package/sample_python_bitstring.py | 6 + .../tests/package/sample_python_boto3.py | 2 + .../tests/package/sample_python_botocore.py | 3 + .../tests/package/sample_python_can.py | 6 + .../tests/package/sample_python_cbor_dec.py | 10 + .../tests/package/sample_python_cbor_enc.py | 14 + .../tests/package/sample_python_click.py | 12 + .../tests/package/sample_python_colorzero.py | 8 + .../tests/package/sample_python_constantly.py | 19 + .../tests/package/sample_python_construct.py | 16 + .../tests/package/sample_python_crossbar.py | 4 + .../package/sample_python_cryptography.py | 3 + .../tests/package/sample_python_dbus_next.py | 44 + .../tests/package/sample_python_distro.py | 4 + .../tests/package/sample_python_django.py | 1 + .../tests/package/sample_python_dtschema.py | 1 + .../tests/package/sample_python_flask.py | 7 + .../sample_python_flask_expects_json.py | 18 + .../tests/package/sample_python_git.py | 1 + .../tests/package/sample_python_gitdb2.py | 1 + .../tests/package/sample_python_gnupg.py | 24 + .../tests/package/sample_python_gobject.py | 14 + .../tests/package/sample_python_gpiozero.py | 5 + .../package/sample_python_incremental.py | 3 + .../tests/package/sample_python_iptables.py | 1 + .../tests/package/sample_python_jmespath.py | 4 + .../tests/package/sample_python_paho_mqtt.py | 12 + .../tests/package/sample_python_passlib.py | 5 + .../tests/package/sample_python_pexpect.py | 8 + .../tests/package/sample_python_pyalsa.py | 12 + .../tests/package/sample_python_pybind.py | 4 + .../tests/package/sample_python_pynacl.py | 3 + .../tests/package/sample_python_pytest.py | 25 + .../package/sample_python_pytest_asyncio.py | 31 + .../tests/package/sample_python_pyyaml_dec.py | 10 + .../tests/package/sample_python_pyyaml_enc.py | 14 + .../tests/package/sample_python_qrcode.py | 3 + .../tests/package/sample_python_rpi_gpio.py | 6 + .../tests/package/sample_python_rsa.py | 2 + .../tests/package/sample_python_rtoml.py | 48 + .../tests/package/sample_python_s3transfer.py | 1 + .../tests/package/sample_python_scipy.py | 16 + .../package/sample_python_service_identity.py | 2 + .../tests/package/sample_python_smmap2.py | 6 + .../tests/package/sample_python_treq.py | 16 + .../tests/package/sample_python_twisted.py | 9 + .../package/sample_python_txaio_asyncio.py | 3 + .../package/sample_python_txaio_twisted.py | 3 + .../tests/package/sample_python_txtorcon.py | 1 + .../tests/package/sample_python_ubjson_dec.py | 10 + .../tests/package/sample_python_ubjson_enc.py | 14 + .../sample_python_unittest_xml_reporting.py | 11 + support/testing/tests/package/test_atop.py | 39 + support/testing/tests/package/test_avocado.py | 23 + .../testing/tests/package/test_bmap_tools.py | 84 + support/testing/tests/package/test_clang.py | 46 + support/testing/tests/package/test_crudini.py | 41 + .../tests/package/test_docker_compose.py | 64 + .../testing/tests/package/test_dropbear.py | 30 + support/testing/tests/package/test_dtbocfg.py | 37 + .../testing/tests/package/test_execline.py | 23 + support/testing/tests/package/test_gdb.py | 215 + support/testing/tests/package/test_glxinfo.py | 64 + .../etc/X11/xorg.conf.d/01-modules.conf | 11 + .../testing/tests/package/test_gst1_python.py | 31 + support/testing/tests/package/test_ipython.py | 22 + .../testing/tests/package/test_libftdi1.py | 13 + .../testing/tests/package/test_libshdata.py | 25 + support/testing/tests/package/test_lpeg.py | 27 + .../testing/tests/package/test_lsqlite3.py | 25 + support/testing/tests/package/test_lua.py | 58 + .../testing/tests/package/test_lua_argon2.py | 25 + .../testing/tests/package/test_lua_augeas.py | 27 + .../testing/tests/package/test_lua_cffi.py | 13 + .../testing/tests/package/test_lua_cqueues.py | 59 + .../testing/tests/package/test_lua_curl.py | 27 + support/testing/tests/package/test_lua_gd.py | 31 + .../testing/tests/package/test_lua_http.py | 37 + .../testing/tests/package/test_lua_inotify.py | 25 + .../testing/tests/package/test_lua_lunix.py | 25 + .../testing/tests/package/test_lua_lyaml.py | 27 + .../testing/tests/package/test_lua_sdl2.py | 42 + .../testing/tests/package/test_lua_utf8.py | 25 + .../testing/tests/package/test_lua_zlib.py | 25 + .../testing/tests/package/test_luaexpat.py | 25 + .../tests/package/test_luafilesystem.py | 25 + support/testing/tests/package/test_lualdap.py | 25 + support/testing/tests/package/test_luaossl.py | 27 + .../testing/tests/package/test_luaposix.py | 83 + support/testing/tests/package/test_luasec.py | 25 + .../testing/tests/package/test_luasocket.py | 29 + .../testing/tests/package/test_luasyslog.py | 27 + support/testing/tests/package/test_luvi.py | 37 + support/testing/tests/package/test_lxc.py | 58 + .../tests/package/test_lxc/lxc-kernel.config | 20 + .../test_lxc/rootfs-overlay/usr/bin/iperf3.sh | 2 + .../usr/share/lxc/config/minimal-iperf3.conf | 4 + .../usr/share/lxc/config/minimal.conf | 6 + support/testing/tests/package/test_lzlib.py | 14 + support/testing/tests/package/test_mender.py | 32 + .../rootfs-overlay/etc/mender/artifact_info | 1 + .../rootfs-overlay/usr/bin/fw_printenv | 6 + .../testing/tests/package/test_msr_tools.py | 50 + .../tests/package/test_msr_tools/linux.config | 2 + support/testing/tests/package/test_netdata.py | 22 + support/testing/tests/package/test_octave.py | 79 + support/testing/tests/package/test_ola.py | 95 + .../usr/bin/sample_ola_rdm_discovery.py | 24 + support/testing/tests/package/test_openjdk.py | 48 + support/testing/tests/package/test_openssh.py | 57 + .../tests/package/test_openssh/post-build.sh | 6 + support/testing/tests/package/test_opkg.py | 61 + .../tests/package/test_opkg/post-build.sh | 47 + support/testing/tests/package/test_perl.py | 65 + .../tests/package/test_perl_class_load.py | 29 + .../tests/package/test_perl_dbd_mysql.py | 21 + .../tests/package/test_perl_encode_detect.py | 20 + .../tests/package/test_perl_gdgraph.py | 22 + .../tests/package/test_perl_html_parser.py | 20 + .../package/test_perl_io_socket_multicast.py | 21 + .../tests/package/test_perl_io_socket_ssl.py | 22 + .../tests/package/test_perl_libwww_perl.py | 40 + .../package/test_perl_lwp_protocol_https.py | 42 + .../tests/package/test_perl_mail_dkim.py | 30 + .../testing/tests/package/test_perl_x10.py | 23 + .../tests/package/test_perl_xml_libxml.py | 22 + .../testing/tests/package/test_php_apcu.py | 35 + support/testing/tests/package/test_php_lua.py | 63 + support/testing/tests/package/test_php_pam.py | 32 + .../tests/package/test_php_pecl_dbus.py | 32 + support/testing/tests/package/test_pixz.py | 40 + support/testing/tests/package/test_polkit.py | 70 + support/testing/tests/package/test_prosody.py | 48 + support/testing/tests/package/test_python.py | 137 + .../tests/package/test_python_aexpect.py | 12 + .../testing/tests/package/test_python_argh.py | 36 + .../tests/package/test_python_attrs.py | 11 + .../tests/package/test_python_augeas.py | 13 + .../tests/package/test_python_autobahn.py | 19 + .../tests/package/test_python_automat.py | 12 + .../testing/tests/package/test_python_avro.py | 11 + .../tests/package/test_python_bitstring.py | 11 + .../tests/package/test_python_boto3.py | 23 + .../tests/package/test_python_botocore.py | 23 + .../testing/tests/package/test_python_can.py | 12 + .../testing/tests/package/test_python_cbor.py | 12 + .../tests/package/test_python_click.py | 35 + .../tests/package/test_python_colorzero.py | 12 + .../tests/package/test_python_constantly.py | 11 + .../tests/package/test_python_construct.py | 12 + .../tests/package/test_python_crossbar.py | 20 + .../tests/package/test_python_cryptography.py | 20 + .../tests/package/test_python_dbus_next.py | 40 + .../tests/package/test_python_distro.py | 11 + .../tests/package/test_python_django.py | 35 + .../tests/package/test_python_dtschema.py | 12 + .../tests/package/test_python_flask.py | 29 + .../package/test_python_flask_expects_json.py | 38 + .../testing/tests/package/test_python_git.py | 11 + .../tests/package/test_python_gitdb2.py | 11 + .../tests/package/test_python_gnupg.py | 11 + .../tests/package/test_python_gobject.py | 27 + .../tests/package/test_python_gpiozero.py | 23 + .../tests/package/test_python_incremental.py | 12 + .../tests/package/test_python_iptables.py | 12 + .../tests/package/test_python_jmespath.py | 12 + .../tests/package/test_python_paho_mqtt.py | 23 + .../tests/package/test_python_passlib.py | 12 + .../tests/package/test_python_pexpect.py | 11 + .../tests/package/test_python_pyalsa.py | 11 + .../tests/package/test_python_pybind.py | 14 + .../tests/package/test_python_pynacl.py | 12 + .../tests/package/test_python_pyndiff.py | 29 + .../tests/package/test_python_pytest.py | 18 + .../package/test_python_pytest_asyncio.py | 19 + .../tests/package/test_python_pyyaml.py | 12 + .../tests/package/test_python_qrcode.py | 12 + .../tests/package/test_python_rpi_gpio.py | 11 + .../testing/tests/package/test_python_rsa.py | 12 + .../tests/package/test_python_rtoml.py | 28 + .../tests/package/test_python_s3transfer.py | 23 + .../tests/package/test_python_scipy.py | 31 + .../package/test_python_service_identity.py | 20 + .../tests/package/test_python_smmap2.py | 11 + .../testing/tests/package/test_python_treq.py | 29 + .../tests/package/test_python_twisted.py | 30 + .../tests/package/test_python_txaio.py | 11 + .../tests/package/test_python_txtorcon.py | 20 + .../tests/package/test_python_ubjson.py | 12 + .../test_python_unittest_xml_reporting.py | 22 + support/testing/tests/package/test_redis.py | 23 + support/testing/tests/package/test_rings.py | 25 + support/testing/tests/package/test_rust.py | 56 + support/testing/tests/package/test_s6.py | 58 + .../tests/package/test_s6_networking.py | 36 + .../tests/package/test_s6_portable_utils.py | 32 + support/testing/tests/package/test_s6_rc.py | 46 + support/testing/tests/package/test_sudo.py | 34 + .../testing/tests/package/test_syslog_ng.py | 36 + support/testing/tests/package/test_tmux.py | 37 + .../testing/tests/package/test_turbolua.py | 13 + .../package/test_uboot_openssl_pkgconfig.py | 19 + .../testing/tests/package/test_zerofree.py | 41 + support/testing/tests/package/test_zfs.py | 90 + support/testing/tests/toolchain/__init__.py | 0 .../tests/toolchain/test_aarch64_64k.py | 66 + .../testing/tests/toolchain/test_external.py | 256 + .../tests/toolchain/test_external_bootlin.py | 3021 ++++ support/testing/tests/utils/__init__.py | 0 .../tests/utils/br2-external/Config.in | 1 + .../tests/utils/br2-external/external.desc | 1 + .../tests/utils/br2-external/external.mk | 2 + .../br2-external/package/external/external.mk | 1 + .../testing/tests/utils/test_check_package.py | 203 + .../tests/utils/test_get_developers.py | 171 + .../0001-package-binutils-change-.mk.patch | 23 + system/Config.in | 642 + system/device_table.txt | 21 + system/device_table_dev.txt | 133 + system/skeleton/dev/.empty | 0 system/skeleton/dev/fd | 1 + system/skeleton/dev/stderr | 1 + system/skeleton/dev/stdin | 1 + system/skeleton/dev/stdout | 1 + system/skeleton/etc/group | 26 + system/skeleton/etc/hosts | 1 + system/skeleton/etc/mtab | 1 + system/skeleton/etc/passwd | 9 + system/skeleton/etc/profile | 19 + system/skeleton/etc/profile.d/umask.sh | 1 + system/skeleton/etc/protocols | 61 + system/skeleton/etc/resolv.conf | 1 + system/skeleton/etc/services | 302 + system/skeleton/etc/shadow | 9 + system/skeleton/media/.empty | 0 system/skeleton/mnt/.empty | 0 system/skeleton/opt/.empty | 0 system/skeleton/proc/.empty | 0 system/skeleton/root/.empty | 0 system/skeleton/run/lock/.empty | 0 system/skeleton/sys/.empty | 0 system/skeleton/tmp/.empty | 0 system/skeleton/usr/bin/.empty | 0 system/skeleton/usr/lib/.empty | 0 system/skeleton/usr/sbin/.empty | 0 system/system.mk | 101 + toolchain/Config.in | 834 ++ toolchain/helpers.mk | 531 + toolchain/toolchain-buildroot/Config.in | 99 + .../toolchain-buildroot.mk | 17 + toolchain/toolchain-external/Config.in | 160 + .../pkg-toolchain-external.mk | 632 + .../Config.in | 18 + .../Config.in.options | 9 + .../toolchain-external-arm-aarch64-be.hash | 4 + .../toolchain-external-arm-aarch64-be.mk | 12 + .../toolchain-external-arm-aarch64/Config.in | 18 + .../Config.in.options | 9 + .../toolchain-external-arm-aarch64.hash | 4 + .../toolchain-external-arm-aarch64.mk | 12 + .../toolchain-external-arm-arm/Config.in | 29 + .../Config.in.options | 9 + .../toolchain-external-arm-arm.hash | 7 + .../toolchain-external-arm-arm.mk | 12 + .../toolchain-external-bootlin/Config.in | 9 + .../Config.in.options | 4999 +++++++ .../toolchain-external-bootlin.hash | 394 + .../toolchain-external-bootlin.mk | 1185 ++ .../Config.in | 65 + .../Config.in.options | 9 + ...toolchain-external-codescape-img-mips.hash | 4 + .../toolchain-external-codescape-img-mips.mk | 51 + .../Config.in | 76 + .../Config.in.options | 9 + ...toolchain-external-codescape-mti-mips.hash | 4 + .../toolchain-external-codescape-mti-mips.mk | 51 + .../Config.in | 19 + .../Config.in.options | 9 + ...olchain-external-codesourcery-aarch64.hash | 3 + ...toolchain-external-codesourcery-aarch64.mk | 12 + .../Config.in | 35 + .../Config.in.options | 9 + .../toolchain-external-codesourcery-arm.hash | 3 + .../toolchain-external-codesourcery-arm.mk | 13 + .../Config.in | 94 + .../Config.in.options | 9 + .../toolchain-external-codesourcery-mips.hash | 3 + .../toolchain-external-codesourcery-mips.mk | 13 + .../Config.in | 16 + .../Config.in.options | 9 + ...oolchain-external-codesourcery-niosII.hash | 6 + .../toolchain-external-codesourcery-niosII.mk | 13 + .../toolchain-external-custom/Config.in | 5 + .../Config.in.options | 520 + .../toolchain-external-custom.mk | 20 + .../Config.in | 15 + .../Config.in.options | 9 + .../toolchain-external-linaro-aarch64-be.hash | 3 + .../toolchain-external-linaro-aarch64-be.mk | 16 + .../Config.in | 15 + .../Config.in.options | 9 + .../toolchain-external-linaro-aarch64.hash | 3 + .../toolchain-external-linaro-aarch64.mk | 16 + .../toolchain-external-linaro-arm/Config.in | 26 + .../Config.in.options | 9 + .../toolchain-external-linaro-arm.hash | 3 + .../toolchain-external-linaro-arm.mk | 16 + .../toolchain-external-linaro-armeb/Config.in | 25 + .../Config.in.options | 9 + .../toolchain-external-linaro-armeb.hash | 3 + .../toolchain-external-linaro-armeb.mk | 17 + .../toolchain-external-synopsys-arc/Config.in | 17 + .../Config.in.options | 10 + .../toolchain-external-synopsys-arc.hash | 5 + .../toolchain-external-synopsys-arc.mk | 24 + .../toolchain-external/toolchain-external.mk | 28 + toolchain/toolchain-wrapper.c | 555 + toolchain/toolchain-wrapper.mk | 96 + toolchain/toolchain.mk | 50 + toolchain/toolchain/toolchain.mk | 50 + utils/brmake | 42 + utils/check-package | 220 + utils/checkpackagelib/__init__.py | 0 utils/checkpackagelib/base.py | 29 + utils/checkpackagelib/lib.py | 68 + utils/checkpackagelib/lib_config.py | 235 + utils/checkpackagelib/lib_hash.py | 70 + utils/checkpackagelib/lib_mk.py | 340 + utils/checkpackagelib/lib_patch.py | 63 + utils/checkpackagelib/lib_sysv.py | 69 + utils/checkpackagelib/readme.txt | 73 + utils/checkpackagelib/test_lib.py | 212 + utils/checkpackagelib/test_lib_config.py | 387 + utils/checkpackagelib/test_lib_hash.py | 183 + utils/checkpackagelib/test_lib_mk.py | 590 + utils/checkpackagelib/test_lib_patch.py | 96 + utils/checkpackagelib/test_lib_sysv.py | 131 + utils/checkpackagelib/test_tool.py | 112 + utils/checkpackagelib/test_util.py | 8 + utils/checkpackagelib/tool.py | 24 + utils/config | 206 + utils/diffconfig | 138 + utils/docker-run | 13 + utils/genrandconfig | 770 + utils/get-developers | 117 + utils/getdeveloperlib.py | 292 + utils/readme.txt | 45 + utils/scancpan | 1000 ++ utils/scanpypi | 750 + utils/size-stats-compare | 144 + utils/test-pkg | 304 + 13090 files changed, 526733 insertions(+) create mode 100644 .clang-format create mode 100644 .defconfig create mode 100644 .flake8 create mode 100644 .gitignore create mode 100644 .gitlab-ci.yml create mode 100644 .shellcheckrc create mode 100644 CHANGES create mode 100644 COPYING create mode 100644 Config.in create mode 100644 Config.in.legacy create mode 100644 DEVELOPERS create mode 100644 Makefile create mode 100644 Makefile.legacy create mode 100644 README create mode 100644 arch/Config.in create mode 100644 arch/Config.in.arc create mode 100644 arch/Config.in.arm create mode 100644 arch/Config.in.m68k create mode 100644 arch/Config.in.microblaze create mode 100644 arch/Config.in.mips create mode 100644 arch/Config.in.nios2 create mode 100644 arch/Config.in.or1k create mode 100644 arch/Config.in.powerpc create mode 100644 arch/Config.in.riscv create mode 100644 arch/Config.in.s390x create mode 100644 arch/Config.in.sh create mode 100644 arch/Config.in.sparc create mode 100644 arch/Config.in.x86 create mode 100644 arch/Config.in.xtensa create mode 100644 arch/arch.mk create mode 100644 arch/arch.mk.arc create mode 100644 arch/arch.mk.riscv create mode 100644 arch/arch.mk.xtensa create mode 100644 board/aarch64-efi/genimage-efi.cfg create mode 100644 board/aarch64-efi/grub.cfg create mode 100755 board/aarch64-efi/post-image.sh create mode 100644 board/aarch64-efi/readme.txt create mode 100644 board/acmesystems/acqua-a5/at91-sama5d3_acqua.dts create mode 100644 board/acmesystems/acqua-a5/genimage.cfg create mode 100644 board/acmesystems/acqua-a5/readme.txt create mode 100644 board/acmesystems/aria-g25/genimage.cfg create mode 100644 board/acmesystems/aria-g25/readme.txt create mode 100644 board/acmesystems/arietta-g25/genimage.cfg create mode 100644 board/acmesystems/arietta-g25/readme.txt create mode 100644 board/altera/socrates_cyclone5/boot-env.txt create mode 100644 board/altera/socrates_cyclone5/genimage.cfg create mode 100644 board/altera/socrates_cyclone5/readme.txt create mode 100644 board/amarula/a64-relic/extlinux.conf create mode 100644 board/amarula/a64-relic/genimage.cfg create mode 100755 board/amarula/a64-relic/post-build.sh create mode 100644 board/amarula/a64-relic/readme.txt create mode 100644 board/amarula/a64-relic/rootfs_overlay/lib/firmware/brcm/brcmfmac4330-sdio.txt create mode 100644 board/amarula/vyasa/extlinux.conf create mode 100644 board/amarula/vyasa/genimage.cfg create mode 100644 board/amarula/vyasa/linux_gmac.fragment create mode 100755 board/amarula/vyasa/post-build.sh create mode 100644 board/amarula/vyasa/readme.txt create mode 100755 board/andes/ae350/ae350.dts create mode 100644 board/andes/ae350/genimage_sdcard.cfg create mode 100644 board/andes/ae350/patches/opensbi/0001-Disable-PIC-explicitly-for-assembling.patch create mode 100644 board/andes/ae350/patches/opensbi/0002-Enable-cache-for-opensbi-jump-mode.patch create mode 100644 board/andes/ae350/patches/uboot/0001-Fix-mmc-no-partition-table-error.patch create mode 100644 board/andes/ae350/patches/uboot/0002-Prevent-fw_dynamic-from-relocation.patch create mode 100644 board/andes/ae350/patches/uboot/0003-Fix-u-boot-proper-booting-issue.patch create mode 100644 board/andes/ae350/patches/uboot/0004-Enable-printing-OpenSBI-boot-logo.patch create mode 100755 board/andes/ae350/post-build.sh create mode 100644 board/andes/ae350/readme.txt create mode 100644 board/andes/ae350/rootfs_overlay/boot/extlinux/extlinux.conf create mode 100644 board/andes/ae350/uboot.config.fragment create mode 100755 board/arcturus/aarch64-ucls1012a/post-build.sh create mode 100755 board/arcturus/aarch64-ucls1012a/post-image.sh create mode 100644 board/arcturus/aarch64-ucls1012a/readme.txt create mode 100644 board/arcturus/ppc-ucp1020/readme.txt create mode 100644 board/arm/foundation-v8/readme.txt create mode 100644 board/arm/juno/linux-juno-defconfig create mode 100644 board/arm/juno/readme.txt create mode 100644 board/armadeus/apf27/linux-4.12.config create mode 100644 board/armadeus/apf51/linux-4.4.config create mode 100644 board/armadeus/readme.txt create mode 100644 board/arrow/avenger96/overlay/boot/extlinux/extlinux.conf create mode 100644 board/arrow/avenger96/readme.txt create mode 100644 board/aspeed/ast2500-evb/genimage.cfg create mode 100644 board/aspeed/ast2500-evb/linux.fragment create mode 100644 board/aspeed/ast2500-evb/readme.txt create mode 100644 board/aspeed/ast2500-evb/uboot.fragment create mode 100644 board/aspeed/ast2600-evb/genimage.cfg create mode 100644 board/aspeed/ast2600-evb/readme.txt create mode 100644 board/aspeed/common/image.its.template create mode 100755 board/aspeed/common/post-image.sh create mode 100644 board/asus/tinker/extlinux.conf create mode 100644 board/asus/tinker/genimage.cfg create mode 100755 board/asus/tinker/post-build.sh create mode 100644 board/asus/tinker/readme.txt create mode 100644 board/atmel/at91sam9x5ek_mmc/genimage.cfg create mode 100644 board/atmel/at91sam9x5ek_mmc/uboot-env.txt create mode 100755 board/atmel/flasher.sh create mode 100644 board/atmel/nandflash.tcl create mode 100644 board/atmel/readme.txt create mode 100644 board/atmel/sama5d27_som1_ek_mmc/genimage.cfg create mode 100644 board/atmel/sama5d27_wlsom1_ek_mmc/genimage.cfg create mode 100644 board/atmel/sama5d2_xplained_mmc/genimage.cfg create mode 100644 board/atmel/sama5d3_xplained_mmc/genimage.cfg create mode 100644 board/atmel/sama5d4_xplained_mmc/genimage.cfg create mode 100644 board/avnet/s6lx9_microboard/lx9_mmu.dts create mode 100644 board/avnet/s6lx9_microboard/lx9_mmu_defconfig create mode 100644 board/avnet/s6lx9_microboard/readme.txt create mode 100644 board/bananapi/bananapi-m1/boot.cmd create mode 100644 board/bananapi/bananapi-m1/genimage.cfg create mode 100644 board/bananapi/bananapi-m1/readme.txt create mode 100644 board/bananapi/bananapi-m2-ultra/boot.cmd create mode 100644 board/bananapi/bananapi-m2-ultra/genimage.cfg create mode 100644 board/bananapi/bananapi-m2-ultra/readme.txt create mode 100644 board/bananapi/bananapi-m2-zero/boot.cmd create mode 100644 board/bananapi/bananapi-m2-zero/genimage.cfg create mode 100644 board/bananapi/bananapi-m2-zero/readme.txt create mode 100644 board/bananapi/bananapi-m64/boot.cmd create mode 100644 board/bananapi/bananapi-m64/genimage.cfg create mode 100644 board/bananapi/bananapi-m64/readme.txt create mode 100644 board/beagleboardx15/genimage.cfg create mode 100644 board/beagleboardx15/readme.txt create mode 100644 board/beaglebone/genimage.cfg create mode 100644 board/beaglebone/linux-sgx.fragment create mode 100644 board/beaglebone/patches/linux/0001-keep-jtag-clock-alive-for-debugger.patch create mode 100755 board/beaglebone/post-build.sh create mode 100644 board/beaglebone/readme.txt create mode 100644 board/beaglebone/rootfs_overlay/etc/qt5/eglfs_kms_cfg.json create mode 100644 board/beaglebone/uEnv.txt create mode 100644 board/beagleboneai/genimage.cfg create mode 100644 board/beagleboneai/patches/uboot/0001-am57xx_evm-fixes.patch create mode 100755 board/beagleboneai/post-build.sh create mode 100644 board/beagleboneai/readme.txt create mode 100644 board/beagleboneai/uEnv.txt create mode 100644 board/beaglev/extlinux.conf create mode 100644 board/beaglev/genimage.cfg create mode 100755 board/beaglev/post-build.sh create mode 100644 board/beaglev/readme.txt create mode 100644 board/beelink/gs1/extlinux.conf create mode 100644 board/beelink/gs1/genimage.cfg create mode 100755 board/beelink/gs1/post-build.sh create mode 100644 board/boundarydevices/common/boot.cmd create mode 100644 board/boundarydevices/common/genimage.cfg create mode 100755 board/boundarydevices/common/post-build.sh create mode 100755 board/boundarydevices/common/post-image.sh create mode 100644 board/boundarydevices/common/readme.txt create mode 100644 board/boundarydevices/common/upgrade.cmd create mode 100644 board/broadcom/northstar/linux.config create mode 100755 board/broadcom/northstar/post-image.sh create mode 100644 board/broadcom/northstar/readme.txt create mode 100644 board/canaan/k210-soc/busybox-tiny.config create mode 100644 board/canaan/k210-soc/genimage.cfg create mode 100644 board/canaan/k210-soc/linux-sdcard.config create mode 100755 board/canaan/k210-soc/post-build.sh create mode 120000 board/canaan/k210-soc/rootfs_overlay/init create mode 100755 board/canaan/k210-soc/rootfs_overlay/sbin/init create mode 100644 board/canaan/k210-soc/uboot.config create mode 100644 board/canaan/kd233/linux-cpio.config create mode 100644 board/canaan/kd233/readme.txt create mode 100644 board/chromebook/elm/kernel.args create mode 100644 board/chromebook/elm/kernel.its create mode 100644 board/chromebook/elm/linux.config create mode 100644 board/chromebook/elm/readme.txt create mode 100755 board/chromebook/elm/sign.sh create mode 100755 board/chromebook/mksd.sh create mode 100644 board/chromebook/snow/kernel.args create mode 100644 board/chromebook/snow/kernel.its create mode 100644 board/chromebook/snow/linux-4.15-dts-tpm.patch create mode 100644 board/chromebook/snow/linux-4.15.fragment create mode 100644 board/chromebook/snow/readme.txt create mode 100755 board/chromebook/snow/sign.sh create mode 100644 board/ci20/genimage.cfg create mode 100644 board/ci20/patches/uboot/0001-mips-Remove-default-endiannes.patch create mode 100644 board/ci20/readme.txt create mode 100644 board/ci20/uboot-env.txt create mode 100644 board/cubietech/cubieboard2/boot.cmd create mode 100644 board/cubietech/cubieboard2/genimage.cfg create mode 100755 board/cubietech/cubieboard2/post-image.sh create mode 100644 board/embest/riotboard/genimage.cfg create mode 100644 board/embest/riotboard/readme.txt create mode 100644 board/embest/riotboard/rootfs_overlay/boot/extlinux/extlinux.conf create mode 100644 board/engicam/geam6ul/genimage.cfg create mode 100644 board/engicam/geam6ul/readme.txt create mode 100644 board/engicam/icorem6/genimage.cfg create mode 100644 board/engicam/icorem6/linux_qt5.fragment create mode 100644 board/engicam/icorem6/readme.txt create mode 100644 board/engicam/icorem6/rootfs_overlay/root/imx6qdl-icore-ofcap10.json create mode 100644 board/engicam/icorem6/rootfs_overlay/root/imx6qdl-icore-ofcap12.json create mode 100644 board/engicam/icorem6/rootfs_overlay/root/imx6qdl-icore.json create mode 100644 board/engicam/icorem6_rqs/genimage.cfg create mode 100644 board/engicam/icorem6_rqs/readme.txt create mode 100644 board/engicam/isiot/genimage.cfg create mode 100644 board/engicam/isiot/readme.txt create mode 100644 board/firefly/roc-rk3399-pc/extlinux.conf create mode 100644 board/firefly/roc-rk3399-pc/genimage.cfg create mode 100755 board/firefly/roc-rk3399-pc/post-build.sh create mode 100644 board/firefly/roc-rk3399-pc/readme.txt create mode 100644 board/freescale/common/imx/genimage.cfg.template create mode 100644 board/freescale/common/imx/genimage.cfg.template_imx8 create mode 100644 board/freescale/common/imx/genimage.cfg.template_no_boot_part create mode 100644 board/freescale/common/imx/genimage.cfg.template_no_boot_part_spl create mode 100644 board/freescale/common/imx/genimage.cfg.template_spl create mode 100755 board/freescale/common/imx/imx8-bootloader-prepare.sh create mode 100755 board/freescale/common/imx/post-image.sh create mode 100644 board/freescale/common/mxs/genimage.cfg.template create mode 100755 board/freescale/common/mxs/post-image.sh create mode 100644 board/freescale/imx23evk/readme.txt create mode 100644 board/freescale/imx25pdk/readme.txt create mode 100644 board/freescale/imx28evk/readme.txt create mode 100644 board/freescale/imx51evk/readme.txt create mode 100644 board/freescale/imx6-sabresd/linux_qt5.fragment create mode 100644 board/freescale/imx6-sabresd/readme.txt create mode 100644 board/freescale/imx6-sabresd/rootfs_overlay/root/sabresd.json create mode 100644 board/freescale/imx6sabre/patches/uboot/0001-mx6qsabre_common-boot-Linux-to-init-in-mfgtools-mode.patch create mode 100644 board/freescale/imx6sabre/readme.txt create mode 100644 board/freescale/imx6slevk/readme.txt create mode 100644 board/freescale/imx6sxsdb/readme.txt create mode 100644 board/freescale/imx6ulevk/readme.txt create mode 100644 board/freescale/imx6ullevk/readme.txt create mode 100644 board/freescale/imx7dsdb/readme.txt create mode 100644 board/freescale/imx7dsdb/rootfs_overlay/boot/extlinux/extlinux.conf create mode 100644 board/freescale/imx8mmevk/readme.txt create mode 100644 board/freescale/imx8mnevk/readme.txt create mode 100644 board/freescale/imx8mpevk/readme.txt create mode 100644 board/freescale/imx8mqevk/readme.txt create mode 100644 board/freescale/imx8qmmek/readme.txt create mode 100644 board/freescale/imx8qxpmek/readme.txt create mode 100644 board/freescale/p1025twr/readme.txt create mode 100644 board/freescale/t1040_t2080/readme.txt create mode 100644 board/freescale/warpboard/README create mode 100644 board/freescale/warpboard/linux.fragment create mode 100644 board/freescale/warpboard/rootfs_overlay/lib/firmware/brcm/brcmfmac4330-sdio.txt create mode 100644 board/friendlyarm/nanopc-t4/extlinux.conf create mode 100644 board/friendlyarm/nanopc-t4/genimage.cfg create mode 100755 board/friendlyarm/nanopc-t4/post-build.sh create mode 100644 board/friendlyarm/nanopc-t4/readme.txt create mode 100644 board/friendlyarm/nanopi-a64/boot.cmd create mode 100644 board/friendlyarm/nanopi-a64/genimage.cfg create mode 100644 board/friendlyarm/nanopi-a64/readme.txt create mode 100644 board/friendlyarm/nanopi-m1-plus/boot.cmd create mode 100644 board/friendlyarm/nanopi-m1-plus/genimage.cfg create mode 100644 board/friendlyarm/nanopi-m1-plus/readme.txt create mode 100644 board/friendlyarm/nanopi-m1/boot.cmd create mode 100644 board/friendlyarm/nanopi-m1/genimage.cfg create mode 100644 board/friendlyarm/nanopi-m1/readme.txt create mode 100644 board/friendlyarm/nanopi-m4/extlinux.conf create mode 100644 board/friendlyarm/nanopi-m4/genimage.cfg create mode 100755 board/friendlyarm/nanopi-m4/post-build.sh create mode 100644 board/friendlyarm/nanopi-m4/readme.txt create mode 100644 board/friendlyarm/nanopi-neo-plus2/extlinux.conf create mode 100644 board/friendlyarm/nanopi-neo-plus2/genimage.cfg create mode 100644 board/friendlyarm/nanopi-neo-plus2/linux-extras.config create mode 100755 board/friendlyarm/nanopi-neo-plus2/post-build.sh create mode 100644 board/friendlyarm/nanopi-neo-plus2/readme.txt create mode 100644 board/friendlyarm/nanopi-neo-plus2/rootfs_overlay/lib/firmware/brcm/brcmfmac43430-sdio.friendlyarm,nanopi-neo-plus2.txt create mode 100644 board/friendlyarm/nanopi-neo2/boot.cmd create mode 100644 board/friendlyarm/nanopi-neo2/genimage.cfg create mode 100644 board/friendlyarm/nanopi-neo2/readme.txt create mode 100644 board/friendlyarm/nanopi-neo4/extlinux.conf create mode 100644 board/friendlyarm/nanopi-neo4/genimage.cfg create mode 100755 board/friendlyarm/nanopi-neo4/post-build.sh create mode 100644 board/friendlyarm/nanopi-neo4/readme.txt create mode 100644 board/friendlyarm/nanopi-r1/boot.cmd create mode 100644 board/friendlyarm/nanopi-r1/genimage.cfg create mode 100644 board/friendlyarm/nanopi-r1/kernel/linux-extras.config create mode 100644 board/friendlyarm/nanopi-r1/kernel/sun8i-h3-nanopi-r1.dts create mode 100644 board/friendlyarm/nanopi-r1/readme.txt create mode 100644 board/friendlyarm/nanopi-r1/uboot/nanopi_r1_defconfig create mode 100644 board/friendlyarm/nanopi-r1/uboot/sun8i-h3-nanopi-r1.dts create mode 100644 board/friendlyarm/nanopi-r2s/extlinux.conf create mode 100644 board/friendlyarm/nanopi-r2s/genimage.cfg create mode 100755 board/friendlyarm/nanopi-r2s/post-build.sh create mode 100644 board/friendlyarm/nanopi-r2s/readme.txt create mode 100644 board/globalscale/espressobin/genimage.cfg create mode 100644 board/globalscale/espressobin/linux-extras.config create mode 100644 board/globalscale/espressobin/readme.txt create mode 100644 board/grinn/chiliboard/genimage.cfg create mode 100644 board/grinn/chiliboard/readme.txt create mode 100644 board/grinn/liteboard/genimage.cfg create mode 100644 board/grinn/liteboard/readme.txt create mode 100644 board/hardkernel/odroidc2/boot.cmd create mode 100644 board/hardkernel/odroidc2/genimage.cfg create mode 100755 board/hardkernel/odroidc2/post-image.sh create mode 100644 board/hardkernel/odroidc2/readme.txt create mode 100755 board/hardkernel/odroidc2/rootfs_overlay/etc/init.d/S09modload create mode 100644 board/hardkernel/odroidxu4/boot.ini create mode 100644 board/hardkernel/odroidxu4/genimage.cfg create mode 100755 board/hardkernel/odroidxu4/post-image.sh create mode 100644 board/hardkernel/odroidxu4/readme.txt create mode 100644 board/intel/galileo/genimage.cfg create mode 100644 board/intel/galileo/grub.cfg create mode 100644 board/intel/galileo/linux-3.14.config create mode 100644 board/intel/galileo/patches/linux/0001-x86-relocs-Make-per_cpu_load_addr-static.patch create mode 100755 board/intel/galileo/post-build.sh create mode 100755 board/intel/galileo/post-image.sh create mode 100644 board/intel/galileo/readme.txt create mode 100755 board/intel/galileo/rootfs_overlay/etc/init.d/S09modload create mode 100644 board/intel/galileo/rootfs_overlay/etc/modules-load.galileo/galileo.conf create mode 100644 board/intel/galileo/rootfs_overlay/etc/modules-load.galileo/galileo_gen2.conf create mode 100644 board/kontron/bl-imx8mm/extlinux.conf create mode 100644 board/kontron/bl-imx8mm/genimage.cfg create mode 100755 board/kontron/bl-imx8mm/post-build.sh create mode 100644 board/kontron/bl-imx8mm/readme.txt create mode 100644 board/kontron/pitx-imx8m/extlinux.conf create mode 100644 board/kontron/pitx-imx8m/genimage.cfg create mode 100644 board/kontron/pitx-imx8m/patches/uboot/2022.04/0001-tools-mkeficapsule-use-pkg-config-to-get-luuid-and-l.patch create mode 100755 board/kontron/pitx-imx8m/post-build.sh create mode 100644 board/kontron/pitx-imx8m/readme.txt create mode 100644 board/kontron/smarc-sal28/extlinux.conf create mode 100644 board/kontron/smarc-sal28/genimage.cfg create mode 100755 board/kontron/smarc-sal28/post-build.sh create mode 100644 board/kontron/smarc-sal28/readme.txt create mode 100644 board/kontron/smarc-sal28/rootfs_overlay/etc/udev/rules.d/70-enetc-networking.rules create mode 100644 board/kontron/smarc-sal28/rootfs_overlay/etc/udev/rules.d/70-felix-networking.rules create mode 100644 board/kontron/smarc-sal28/rootfs_overlay/etc/udev/rules.d/71-smarc-networking.rules create mode 100644 board/lego/ev3/busybox.fragment create mode 100644 board/lego/ev3/genimage.cfg create mode 100644 board/lego/ev3/linux.fragment create mode 100755 board/lego/ev3/post-image.sh create mode 100644 board/lego/ev3/readme.txt create mode 100644 board/lemaker/bananapro/boot.cmd create mode 100644 board/lemaker/bananapro/genimage.cfg create mode 100644 board/lemaker/bananapro/linux-wifi.fragment create mode 100644 board/lemaker/bananapro/patches/linux/0001-arch-arm-boot-dts-sun7i-a20-bananapro.dts-disable-00.patch create mode 100755 board/lemaker/bananapro/post-build.sh create mode 100755 board/lemaker/bananapro/post-image.sh create mode 100644 board/lemaker/bananapro/readme.txt create mode 120000 board/lemaker/bananapro/rootfs_overlay/lib/firmware/brcm/brcmfmac43362-sdio.lemaker,bananapro.txt create mode 100644 board/lemaker/bananapro/rootfs_overlay/lib/firmware/brcm/brcmfmac43362-sdio.txt create mode 100644 board/librecomputer/lafrite/genimage.cfg create mode 100644 board/librecomputer/lafrite/overlay/extlinux/extlinux.conf create mode 100644 board/librecomputer/lafrite/readme.txt create mode 100644 board/licheepi/boot.cmd create mode 100644 board/licheepi/genimage.cfg create mode 100644 board/licheepi/readme.txt create mode 100644 board/linksprite/pcduino/linux-extras.config create mode 100644 board/linksprite/pcduino/readme.txt create mode 100644 board/mender/x86_64/genimage-efi.cfg create mode 100644 board/mender/x86_64/linux.config create mode 100644 board/mender/x86_64/mender_grubenv_defines create mode 100644 board/mender/x86_64/overlay/etc/fstab create mode 100644 board/mender/x86_64/overlay/etc/mender/mender.conf create mode 100755 board/mender/x86_64/post-build.sh create mode 100755 board/mender/x86_64/post-image-efi.sh create mode 100644 board/mender/x86_64/readme.txt create mode 100644 board/microchip/sam9x60ek_mmc/genimage.cfg create mode 100644 board/microchip/sama5d2_icp/genimage.cfg create mode 100644 board/microchip/sama7g5ek/genimage.cfg create mode 100644 board/minnowboard/genimage.cfg create mode 100644 board/minnowboard/grub.cfg create mode 100644 board/minnowboard/linux.config create mode 100755 board/minnowboard/post-build.sh create mode 100644 board/minnowboard/readme.txt create mode 100644 board/nexbox/a95x/boot.txt create mode 100644 board/nexbox/a95x/genimage.cfg create mode 100755 board/nexbox/a95x/post-build.sh create mode 100755 board/nexbox/a95x/post-image.sh create mode 100644 board/nexbox/a95x/readme.txt create mode 100644 board/nezha/genimage.cfg create mode 100644 board/nezha/overlay/boot/extlinux/extlinux.conf create mode 100644 board/nezha/patches/uboot/0001-arch-riscv-dts-sun20i-d1.dtsi-adjust-plic-compatible.patch create mode 100644 board/nezha/patches/uboot/0002-Makefile-HACK-Support-building-u-boot.toc1-for-nezda.patch create mode 100644 board/nezha/readme.txt create mode 100644 board/octavo/osd32mp1-brk/genimage.cfg create mode 100644 board/octavo/osd32mp1-brk/linux-dts/stm32mp157c-osd32mp1-brk.dts create mode 100644 board/octavo/osd32mp1-brk/overlay/boot/extlinux/extlinux.conf create mode 100644 board/octavo/osd32mp1-brk/patches/uboot/0001-osd32mp1-BRK-board-added.patch create mode 100644 board/octavo/osd32mp1-brk/readme.txt create mode 100644 board/octavo/osd32mp1-brk/tfa-dts/osd32mp1_ddr.dtsi create mode 100644 board/octavo/osd32mp1-brk/tfa-dts/stm32mp157c-osd32mp1-brk.dts create mode 100644 board/octavo/osd32mp1-red/genimage.cfg create mode 100644 board/octavo/osd32mp1-red/linux-dts/osd32mp1-red.dts create mode 100644 board/octavo/osd32mp1-red/linux-dts/stm32mp157c-osd32mp1-red.dtsi create mode 100644 board/octavo/osd32mp1-red/overlay/boot/extlinux/extlinux.conf create mode 100644 board/octavo/osd32mp1-red/patches/uboot/0001-Add-OSD32MP1-RED-Device-Tree-support.patch create mode 100644 board/octavo/osd32mp1-red/patches/uboot/0002-configs-stm32mp15_trusted_defconfig-disable-environm.patch create mode 100644 board/octavo/osd32mp1-red/readme.txt create mode 100644 board/octavo/osd32mp1-red/tfa-dts/osd32mp1-red.dts create mode 100644 board/octavo/osd32mp1-red/tfa-dts/stm32mp15-osd32mp1-ddr3-1x4Gb-1066-binG.dtsi create mode 120000 board/olimex/a10_olinuxino/boot.cmd create mode 120000 board/olimex/a10_olinuxino/genimage.cfg create mode 120000 board/olimex/a10_olinuxino/post-build.sh create mode 100644 board/olimex/a10_olinuxino/readme.txt create mode 100644 board/olimex/a13_olinuxino/boot.cmd create mode 100644 board/olimex/a13_olinuxino/genimage.cfg create mode 100755 board/olimex/a13_olinuxino/post-build.sh create mode 100644 board/olimex/a13_olinuxino/readme.txt create mode 100644 board/olimex/a20_olinuxino/boot.cmd create mode 100644 board/olimex/a20_olinuxino/genimage.cfg create mode 100644 board/olimex/a20_olinuxino/linux-disable-lima.fragment create mode 100755 board/olimex/a20_olinuxino/post-build.sh create mode 100644 board/olimex/a20_olinuxino/readme.txt create mode 100644 board/olimex/a20_olinuxino/rootfs_overlay/boot/extlinux/extlinux.conf create mode 100644 board/olimex/a33_olinuxino/boot.cmd create mode 100644 board/olimex/a33_olinuxino/genimage.cfg create mode 100755 board/olimex/a33_olinuxino/post-build.sh create mode 100644 board/olimex/a33_olinuxino/readme.txt create mode 100644 board/olimex/a64-olinuxino/boot.cmd create mode 100644 board/olimex/a64-olinuxino/genimage.cfg create mode 100644 board/olimex/a64-olinuxino/readme.txt create mode 100644 board/olimex/imx233_olinuxino/linux-wifi.fragment create mode 100644 board/olimex/imx233_olinuxino/readme.txt create mode 100644 board/olimex/stmp1_olinuxino/genimage.cfg create mode 100644 board/olimex/stmp1_olinuxino/linux.config create mode 100644 board/olimex/stmp1_olinuxino/readme.txt create mode 100644 board/olimex/stmp1_olinuxino/rootfs_overlay/boot/extlinux/extlinux.conf create mode 100644 board/olpc/genimage.cfg create mode 100644 board/olpc/linux.config create mode 100644 board/olpc/olpc.fth create mode 100755 board/olpc/post-build.sh create mode 100644 board/olpc/readme.txt create mode 100644 board/olpc/xo-1.75/linux.config create mode 100644 board/olpc/xo-1/linux.config create mode 100644 board/openblocks/a6/readme.txt create mode 100644 board/orangepi/common/extlinux.conf create mode 100644 board/orangepi/common/genimage.cfg create mode 100755 board/orangepi/common/post-build.sh create mode 100644 board/orangepi/orangepi-lite/boot.cmd create mode 100644 board/orangepi/orangepi-lite/genimage.cfg create mode 100644 board/orangepi/orangepi-lite/linux-extras.config create mode 100644 board/orangepi/orangepi-lite/readme.txt create mode 100644 board/orangepi/orangepi-lite2/extlinux.conf create mode 100644 board/orangepi/orangepi-lite2/genimage.cfg create mode 100755 board/orangepi/orangepi-lite2/post-build.sh create mode 100644 board/orangepi/orangepi-lite2/readme.txt create mode 100755 board/orangepi/orangepi-lite2/rootfs_overlay/lib/firmware/brcm/brcmfmac43455-sdio.txt create mode 100644 board/orangepi/orangepi-one-plus/extlinux.conf create mode 100644 board/orangepi/orangepi-one-plus/genimage.cfg create mode 100755 board/orangepi/orangepi-one-plus/post-build.sh create mode 100644 board/orangepi/orangepi-one-plus/readme.txt create mode 100644 board/orangepi/orangepi-one/readme.txt create mode 100644 board/orangepi/orangepi-pc-plus/linux-extras.config create mode 100644 board/orangepi/orangepi-pc-plus/readme.txt create mode 100644 board/orangepi/orangepi-pc/linux.fragment create mode 100644 board/orangepi/orangepi-pc/readme.txt create mode 100644 board/orangepi/orangepi-pc2/boot.cmd create mode 100644 board/orangepi/orangepi-pc2/genimage.cfg create mode 100644 board/orangepi/orangepi-pc2/readme.txt create mode 100644 board/orangepi/orangepi-plus/boot.cmd create mode 100644 board/orangepi/orangepi-plus/genimage.cfg create mode 100644 board/orangepi/orangepi-plus/readme.txt create mode 100644 board/orangepi/orangepi-prime/boot.cmd create mode 100644 board/orangepi/orangepi-prime/genimage.cfg create mode 100644 board/orangepi/orangepi-prime/readme.txt create mode 100644 board/orangepi/orangepi-r1/boot.cmd create mode 100644 board/orangepi/orangepi-r1/genimage.cfg create mode 100644 board/orangepi/orangepi-r1/linux-extras.config create mode 100644 board/orangepi/orangepi-r1/readme.txt create mode 100644 board/orangepi/orangepi-rk3399/extlinux.conf create mode 100644 board/orangepi/orangepi-rk3399/genimage.cfg create mode 100755 board/orangepi/orangepi-rk3399/post-build.sh create mode 100644 board/orangepi/orangepi-rk3399/readme.txt create mode 100644 board/orangepi/orangepi-win/boot.cmd create mode 100644 board/orangepi/orangepi-win/genimage.cfg create mode 100644 board/orangepi/orangepi-win/readme.txt create mode 100644 board/orangepi/orangepi-zero-plus/boot.cmd create mode 100644 board/orangepi/orangepi-zero-plus/genimage.cfg create mode 100644 board/orangepi/orangepi-zero-plus/readme.txt create mode 100644 board/orangepi/orangepi-zero-plus2/linux-extras.config create mode 100644 board/orangepi/orangepi-zero-plus2/readme.txt create mode 100644 board/orangepi/orangepi-zero-plus2/rootfs_overlay/lib/firmware/brcm/brcmfmac43430-sdio.txt create mode 100644 board/orangepi/orangepi-zero/linux-extras.fragment create mode 100644 board/orangepi/orangepi-zero/patches/linux/0001-ARM-dts-orange-pi-zero-interrupt-triggering-xr819.patch create mode 100644 board/orangepi/orangepi-zero/patches/linux/0002-ARM-dts-orange-pi-zero-enable-spi-nor.patch create mode 100644 board/orangepi/orangepi-zero/patches/linux/0003-ARM-dts-orange-pi-zero-enable-spidev.patch create mode 100644 board/orangepi/orangepi-zero/patches/linux/0004-ARM-dts-orange-pi-zero-enable-uart.patch create mode 100644 board/orangepi/orangepi-zero/readme.txt create mode 100644 board/pandaboard/genimage.cfg create mode 100644 board/pandaboard/readme.txt create mode 100644 board/pc/genimage-bios.cfg create mode 100644 board/pc/genimage-efi.cfg create mode 100644 board/pc/grub-bios.cfg create mode 100644 board/pc/grub-efi.cfg create mode 100644 board/pc/linux.config create mode 100755 board/pc/post-build.sh create mode 100755 board/pc/post-image-efi.sh create mode 100644 board/pc/readme.txt create mode 100644 board/pcengines/apu2/isolinux.cfg create mode 100644 board/pcengines/apu2/linux.config create mode 100644 board/pcengines/apu2/readme.txt create mode 100644 board/pine64/pine64/boot.cmd create mode 100644 board/pine64/pine64/genimage.cfg create mode 100644 board/pine64/pine64/readme.txt create mode 100644 board/pine64/rock64/extlinux.conf create mode 100644 board/pine64/rock64/genimage.cfg create mode 100644 board/pine64/rock64/patches/uboot/0001-Makefile-rk3328-needs-itb-image-to-boot-properly.patch create mode 100755 board/pine64/rock64/post-build.sh create mode 100644 board/pine64/rock64/readme.txt create mode 100644 board/pine64/rockpro64/extlinux.conf create mode 100644 board/pine64/rockpro64/genimage.cfg create mode 100755 board/pine64/rockpro64/post-build.sh create mode 100644 board/pine64/rockpro64/readme.txt create mode 100644 board/pine64/sopine/boot.cmd create mode 100644 board/pine64/sopine/genimage.cfg create mode 100644 board/pine64/sopine/readme.txt create mode 100755 board/qemu/aarch64-sbsa/assemble-flash-images create mode 100644 board/qemu/aarch64-sbsa/genimage.cfg create mode 100644 board/qemu/aarch64-sbsa/grub.cfg create mode 100644 board/qemu/aarch64-sbsa/linux.config create mode 100644 board/qemu/aarch64-sbsa/readme.txt create mode 100644 board/qemu/aarch64-virt/linux.config create mode 100644 board/qemu/aarch64-virt/readme.txt create mode 100644 board/qemu/arm-versatile/linux.fragment create mode 100644 board/qemu/arm-versatile/readme.txt create mode 100644 board/qemu/arm-vexpress-tz/linux.fragment create mode 100755 board/qemu/arm-vexpress-tz/post-build.sh create mode 100644 board/qemu/arm-vexpress-tz/readme.txt create mode 100644 board/qemu/arm-vexpress-tz/u-boot.config create mode 100644 board/qemu/arm-vexpress/readme.txt create mode 100644 board/qemu/m68k-mcf5208/linux.config create mode 100644 board/qemu/m68k-mcf5208/readme.txt create mode 100644 board/qemu/m68k-q800/linux.config create mode 100644 board/qemu/m68k-q800/readme.txt create mode 100644 board/qemu/microblazebe-mmu/0001-net-xilinx-xemaclite-add-2.00.b-revision.patch create mode 100644 board/qemu/microblazebe-mmu/linux.config create mode 100644 board/qemu/microblazebe-mmu/readme.txt create mode 100644 board/qemu/microblazeel-mmu/0001-net-xilinx-xemaclite-add-2.00.b-revision.patch create mode 100644 board/qemu/microblazeel-mmu/linux.config create mode 100644 board/qemu/microblazeel-mmu/readme.txt create mode 100644 board/qemu/mips32r2-malta/linux.config create mode 100644 board/qemu/mips32r2-malta/readme.txt create mode 100644 board/qemu/mips32r2el-malta/linux.config create mode 100644 board/qemu/mips32r2el-malta/readme.txt create mode 100644 board/qemu/mips32r6-malta/linux.config create mode 100644 board/qemu/mips32r6-malta/readme.txt create mode 100644 board/qemu/mips32r6el-malta/linux.config create mode 100644 board/qemu/mips32r6el-malta/readme.txt create mode 100644 board/qemu/mips64-malta/linux.config create mode 100644 board/qemu/mips64-malta/readme.txt create mode 100644 board/qemu/mips64el-malta/linux.config create mode 100644 board/qemu/mips64el-malta/readme.txt create mode 100644 board/qemu/mips64r6-malta/linux.config create mode 100644 board/qemu/mips64r6-malta/readme.txt create mode 100644 board/qemu/mips64r6el-malta/linux.config create mode 100644 board/qemu/mips64r6el-malta/readme.txt create mode 100644 board/qemu/nios2-10m50/linux.fragment create mode 100644 board/qemu/nios2-10m50/readme.txt create mode 100644 board/qemu/or1k/linux.config create mode 100644 board/qemu/or1k/readme.txt create mode 100755 board/qemu/post-image.sh create mode 100644 board/qemu/ppc-bamboo/linux.fragment create mode 100644 board/qemu/ppc-bamboo/readme.txt create mode 100644 board/qemu/ppc-e500mc/linux.fragment create mode 100644 board/qemu/ppc-e500mc/readme.txt create mode 100644 board/qemu/ppc-g3beige/linux.config create mode 100644 board/qemu/ppc-g3beige/readme.txt create mode 100644 board/qemu/ppc-mac99/linux.fragment create mode 100644 board/qemu/ppc-mac99/readme.txt create mode 100644 board/qemu/ppc-mpc8544ds/linux.config create mode 100644 board/qemu/ppc-mpc8544ds/patches/linux/0001-powerpc-Fix-mcpu-options-for-SPE-only-compiler.patch create mode 100644 board/qemu/ppc-mpc8544ds/readme.txt create mode 100644 board/qemu/ppc64-e5500/linux.fragment create mode 100644 board/qemu/ppc64-e5500/readme.txt create mode 100644 board/qemu/ppc64-pseries/readme.txt create mode 100644 board/qemu/ppc64le-powernv8/readme.txt create mode 100644 board/qemu/ppc64le-pseries/readme.txt create mode 100644 board/qemu/riscv32-virt/readme.txt create mode 100644 board/qemu/riscv64-virt/readme.txt create mode 100644 board/qemu/s390x/readme.txt create mode 100644 board/qemu/sh4-r2d/linux.config create mode 100644 board/qemu/sh4-r2d/readme.txt create mode 100644 board/qemu/sh4eb-r2d/linux.config create mode 100644 board/qemu/sh4eb-r2d/readme.txt create mode 100644 board/qemu/sparc-ss10/linux.config create mode 100644 board/qemu/sparc-ss10/readme.txt create mode 100644 board/qemu/sparc64-sun4u/linux.config create mode 100644 board/qemu/sparc64-sun4u/readme.txt create mode 100644 board/qemu/x86/linux.config create mode 100755 board/qemu/x86/post-build.sh create mode 100644 board/qemu/x86/readme.txt create mode 100644 board/qemu/x86_64/linux.config create mode 100755 board/qemu/x86_64/post-build.sh create mode 100644 board/qemu/x86_64/readme.txt create mode 100644 board/qemu/xtensa-lx60/linux-nommu.config create mode 100644 board/qemu/xtensa-lx60/linux.config create mode 100644 board/qemu/xtensa-lx60/readme.txt create mode 100644 board/qmtech/zynq/patches/linux/0001-DTS-for-QMTech-Zynq-starter-kit.patch create mode 100644 board/qmtech/zynq/readme.txt create mode 100644 board/radxa/rockpi-4/extlinux.conf create mode 100644 board/radxa/rockpi-4/genimage.cfg create mode 100755 board/radxa/rockpi-4/post-build.sh create mode 100644 board/radxa/rockpi-4/readme.txt create mode 100644 board/radxa/rockpi-n10/extlinux.conf create mode 100644 board/radxa/rockpi-n10/genimage.cfg create mode 100755 board/radxa/rockpi-n10/post-build.sh create mode 100644 board/radxa/rockpi-n10/readme.txt create mode 100644 board/radxa/rockpi-n8/extlinux.conf create mode 100644 board/radxa/rockpi-n8/genimage.cfg create mode 100755 board/radxa/rockpi-n8/post-build.sh create mode 100644 board/radxa/rockpi-n8/readme.txt create mode 100644 board/raspberrypi/config_0w.txt create mode 100644 board/raspberrypi/config_3.txt create mode 100644 board/raspberrypi/config_3_64bit.txt create mode 100644 board/raspberrypi/config_3_qt5we.txt create mode 100644 board/raspberrypi/config_4.txt create mode 100644 board/raspberrypi/config_4_64bit.txt create mode 100644 board/raspberrypi/config_cm4io.txt create mode 100644 board/raspberrypi/config_cm4io_64bit.txt create mode 100644 board/raspberrypi/config_default.txt create mode 100644 board/raspberrypi/config_zero2w.txt create mode 100644 board/raspberrypi/genimage-raspberrypi.cfg create mode 100644 board/raspberrypi/genimage-raspberrypi0.cfg create mode 100644 board/raspberrypi/genimage-raspberrypi0w.cfg create mode 100644 board/raspberrypi/genimage-raspberrypi2.cfg create mode 100644 board/raspberrypi/genimage-raspberrypi3-64.cfg create mode 100644 board/raspberrypi/genimage-raspberrypi3.cfg create mode 100644 board/raspberrypi/genimage-raspberrypi4-64.cfg create mode 100644 board/raspberrypi/genimage-raspberrypi4.cfg create mode 100644 board/raspberrypi/genimage-raspberrypicm4io-64.cfg create mode 100644 board/raspberrypi/genimage-raspberrypicm4io.cfg create mode 100644 board/raspberrypi/genimage-raspberrypizero2w.cfg create mode 100755 board/raspberrypi/post-build.sh create mode 100755 board/raspberrypi/post-image.sh create mode 100644 board/raspberrypi/readme.txt create mode 120000 board/raspberrypi0 create mode 120000 board/raspberrypi0w create mode 120000 board/raspberrypi2 create mode 120000 board/raspberrypi3 create mode 120000 board/raspberrypi3-64 create mode 120000 board/raspberrypi4 create mode 120000 board/raspberrypi4-64 create mode 120000 board/raspberrypicm4io create mode 120000 board/raspberrypicm4io-64 create mode 120000 board/raspberrypizero2w create mode 100644 board/roseapplepi/genimage.cfg create mode 100644 board/roseapplepi/linux.config create mode 100644 board/roseapplepi/patches/uboot/0001-compiler-.h-sync-include-linux-compiler-.h-with-Linu.patch create mode 100755 board/roseapplepi/post-build.sh create mode 100644 board/roseapplepi/uEnv.txt create mode 100644 board/seeed/stm32mp157c-odyssey/genimage.cfg create mode 100644 board/seeed/stm32mp157c-odyssey/linux.config create mode 100644 board/seeed/stm32mp157c-odyssey/overlay/boot/extlinux/extlinux.conf create mode 100644 board/seeed/stm32mp157c-odyssey/patches/linux/0001-ARM-dts-stm32-fix-stm32mp157c-odyssey-card-detect.patch create mode 100644 board/seeed/stm32mp157c-odyssey/readme.txt create mode 100644 board/sheevaplug/patches/uboot/0001-Remove-redundant-YYLOC-global-declaration.patch create mode 100644 board/sheevaplug/readme.txt create mode 100644 board/sifive/hifive-unleashed/boot.cmd create mode 100644 board/sifive/hifive-unleashed/genimage_sdcard.cfg create mode 100644 board/sifive/hifive-unleashed/genimage_spi-nor.cfg create mode 100644 board/sifive/hifive-unleashed/linux.config.fragment create mode 100755 board/sifive/hifive-unleashed/post-build.sh create mode 100644 board/sifive/hifive-unleashed/readme.txt create mode 100644 board/sinovoip/m1-plus/boot.cmd create mode 100644 board/sinovoip/m1-plus/genimage.cfg create mode 100644 board/sinovoip/m1-plus/linux-wifi.fragment create mode 100644 board/sinovoip/m1-plus/patches/linux/0001-ARM-dts-sun7i-bananapi-m1-plus-Disable-OOB-IRQ-for-b.patch create mode 100755 board/sinovoip/m1-plus/post-build.sh create mode 100644 board/sinovoip/m1-plus/readme.txt create mode 120000 board/sinovoip/m1-plus/rootfs_overlay/lib/firmware/brcm/brcmfmac43362-sdio.sinovoip,bpi-m1-plus.txt create mode 100644 board/sinovoip/m1-plus/rootfs_overlay/lib/firmware/brcm/brcmfmac43362-sdio.txt create mode 100644 board/sinovoip/m2-plus/boot.cmd create mode 100644 board/sinovoip/m2-plus/genimage.cfg create mode 100644 board/sipeed/maix-bit/linux-cpio.config create mode 100644 board/sipeed/maix-bit/readme.txt create mode 100644 board/sipeed/maix-dock/linux-cpio.config create mode 100644 board/sipeed/maix-dock/readme.txt create mode 100644 board/sipeed/maix-go/linux-cpio.config create mode 100644 board/sipeed/maix-go/readme.txt create mode 100644 board/sipeed/maixduino/linux-cpio.config create mode 100644 board/sipeed/maixduino/readme.txt create mode 100644 board/solidrun/clearfog/extlinux.conf create mode 100644 board/solidrun/clearfog/genimage.cfg create mode 100644 board/solidrun/clearfog/linux.fragment create mode 100755 board/solidrun/clearfog/post-build.sh create mode 100644 board/solidrun/clearfog/readme.txt create mode 100644 board/solidrun/clearfog_gt_8k/extlinux.conf create mode 120000 board/solidrun/clearfog_gt_8k/genimage.cfg create mode 100644 board/solidrun/clearfog_gt_8k/linux-extras.config create mode 120000 board/solidrun/clearfog_gt_8k/post-build-mainline.sh create mode 100644 board/solidrun/clearfog_gt_8k/readme.txt create mode 120000 board/solidrun/clearfog_gt_8k/uboot-fragment.config create mode 100644 board/solidrun/macchiatobin/extlinux.conf create mode 100644 board/solidrun/macchiatobin/genimage.cfg create mode 100644 board/solidrun/macchiatobin/linux-extras.config create mode 100755 board/solidrun/macchiatobin/post-build-mainline.sh create mode 100755 board/solidrun/macchiatobin/post-build.sh create mode 100644 board/solidrun/macchiatobin/readme.txt create mode 100644 board/solidrun/macchiatobin/uEnv-example.txt create mode 100644 board/solidrun/macchiatobin/uboot-fragment.config create mode 100644 board/solidrun/mx6cubox/readme.txt create mode 100644 board/solidrun/mx6cubox/rootfs_overlay/boot/extlinux/extlinux.conf create mode 100644 board/spike/riscv64/readme.txt create mode 100755 board/spike/riscv64/start.sh create mode 100755 board/stmicroelectronics/common/stm32f4xx/stm32-post-build.sh create mode 100644 board/stmicroelectronics/common/stm32mp157/genimage.cfg.template create mode 100755 board/stmicroelectronics/common/stm32mp157/post-image.sh create mode 100755 board/stmicroelectronics/stm32f429-disco/flash.sh create mode 100644 board/stmicroelectronics/stm32f429-disco/linux.config create mode 100644 board/stmicroelectronics/stm32f429-disco/readme.txt create mode 100644 board/stmicroelectronics/stm32f469-disco/extlinux.conf create mode 100755 board/stmicroelectronics/stm32f469-disco/flash_sd.sh create mode 100755 board/stmicroelectronics/stm32f469-disco/flash_xip.sh create mode 100644 board/stmicroelectronics/stm32f469-disco/genimage.cfg create mode 100644 board/stmicroelectronics/stm32f469-disco/linux-sd.fragment create mode 100644 board/stmicroelectronics/stm32f469-disco/linux-xip.config create mode 100755 board/stmicroelectronics/stm32f469-disco/post-build.sh create mode 100644 board/stmicroelectronics/stm32f469-disco/readme.txt create mode 100644 board/stmicroelectronics/stm32f469-disco/readme_xip.txt create mode 100644 board/stmicroelectronics/stm32mp157a-dk1/linux.config create mode 100644 board/stmicroelectronics/stm32mp157a-dk1/overlay/boot/extlinux/extlinux.conf create mode 100644 board/stmicroelectronics/stm32mp157a-dk1/readme.txt create mode 100644 board/stmicroelectronics/stm32mp157c-dk2/linux.config create mode 100644 board/stmicroelectronics/stm32mp157c-dk2/overlay/boot/extlinux/extlinux.conf create mode 100644 board/stmicroelectronics/stm32mp157c-dk2/readme.txt create mode 100755 board/synopsys/axs10x/post-build.sh create mode 100644 board/synopsys/axs10x/uboot-fragment.config create mode 100644 board/synopsys/hsdk/genimage.cfg create mode 100644 board/synopsys/hsdk/linux.fragment create mode 100644 board/synopsys/hsdk/readme.txt create mode 100644 board/synopsys/hsdk/uboot.env.txt create mode 100644 board/technexion/imx6ulpico/readme.txt create mode 100644 board/technexion/imx6ulpico/rootfs_overlay/boot/extlinux/extlinux.conf create mode 100644 board/technexion/imx6ulpico/rootfs_overlay/lib/firmware/brcm/brcmfmac4339-sdio.txt create mode 100644 board/technexion/imx7dpico/readme.txt create mode 100644 board/technexion/imx7dpico/rootfs_overlay/boot/extlinux/extlinux.conf create mode 100644 board/technexion/imx7dpico/rootfs_overlay/lib/firmware/brcm/brcmfmac4339-sdio.txt create mode 100644 board/technexion/imx8mmpico/readme.txt create mode 100644 board/technexion/imx8mpico/readme.txt create mode 100644 board/technologic/ts4900/genimage.cfg create mode 100755 board/technologic/ts4900/post-image.sh create mode 100644 board/technologic/ts4900/readme.txt create mode 100644 board/technologic/ts5500/fs-overlay/boot/syslinux/syslinux.cfg create mode 100644 board/technologic/ts5500/linux-4.14.config create mode 100644 board/technologic/ts5500/readme.txt create mode 100644 board/technologic/ts7680/genimage.cfg create mode 100644 board/technologic/ts7680/readme.txt create mode 100644 board/terasic/de10nano_cyclone5/barebox-env/boot/mmc create mode 100644 board/terasic/de10nano_cyclone5/barebox-env/init/automount create mode 100644 board/terasic/de10nano_cyclone5/barebox-env/nv/boot.default create mode 100644 board/terasic/de10nano_cyclone5/barebox-env/nv/linux.bootargs.console create mode 100644 board/terasic/de10nano_cyclone5/genimage.cfg create mode 100644 board/terasic/de10nano_cyclone5/readme.txt create mode 100644 board/toradex/apalis-imx6/genimage.cfg create mode 100755 board/toradex/apalis-imx6/post-image.sh create mode 100644 board/toradex/apalis-imx6/readme.txt create mode 100644 board/toradex/apalis-imx6/uEnv.txt create mode 100644 board/udoo/common/boot.scr.txt create mode 100755 board/udoo/common/post-build.sh create mode 100644 board/udoo/mx6qdl/patches/linux/0000-udoo-disable-usbh1.patch create mode 100644 board/udoo/mx6qdl/readme.txt create mode 100644 board/udoo/neo/readme.txt create mode 100644 board/uevm5432/genimage.cfg create mode 100644 board/uevm5432/readme.txt create mode 100644 board/wandboard/readme.txt create mode 100644 board/wandboard/rootfs_overlay/boot/extlinux/extlinux.conf create mode 100644 board/warp7/readme.txt create mode 100644 board/warp7/rootfs_overlay/lib/firmware/brcm/brcmfmac43430-sdio.txt create mode 100644 board/zynq/extlinux.conf create mode 100644 board/zynq/genimage.cfg create mode 100644 board/zynq/microzed/uboot.fragment create mode 100755 board/zynq/post-build.sh create mode 100755 board/zynq/post-image.sh create mode 100644 board/zynq/readme.txt create mode 100644 board/zynq/zc706/uboot.fragment create mode 100644 board/zynq/zed/uboot.fragment create mode 100644 board/zynqmp/genimage.cfg create mode 100755 board/zynqmp/kria/kv260/kv260.sh create mode 100644 board/zynqmp/kria/kv260/pm_cfg_obj.c create mode 100644 board/zynqmp/kria/kv260/uboot.fragment create mode 100644 board/zynqmp/kria/patches/uboot/0001-arm64-zynqmp-zynqmp-sm-k26-revA-Fix-DP-PLL-configura.patch create mode 100644 board/zynqmp/kria/readme.txt create mode 100755 board/zynqmp/post-build.sh create mode 100755 board/zynqmp/post-image.sh create mode 100644 board/zynqmp/readme.txt create mode 100644 board/zynqmp/zcu102/pm_cfg_obj.c create mode 100644 board/zynqmp/zcu102/uboot.fragment create mode 100644 board/zynqmp/zcu106/patches/uboot/0001-arm64-zynqmp-zynqmp-zcu102-revA-Fix-DP-PLL-configura.patch create mode 100644 board/zynqmp/zcu106/pm_cfg_obj.c create mode 100644 board/zynqmp/zcu106/uboot.fragment create mode 100644 boot/Config.in create mode 100644 boot/afboot-stm32/0001-Pass-fno-builtin-to-fix-build-with-gcc-10.patch create mode 100644 boot/afboot-stm32/0002-Makefile-drop-nostartfiles.patch create mode 100644 boot/afboot-stm32/Config.in create mode 100644 boot/afboot-stm32/afboot-stm32.hash create mode 100644 boot/afboot-stm32/afboot-stm32.mk create mode 100644 boot/arm-trusted-firmware/Config.in create mode 100644 boot/arm-trusted-firmware/arm-trusted-firmware.hash create mode 100644 boot/arm-trusted-firmware/arm-trusted-firmware.mk create mode 100644 boot/at91bootstrap/0001-eabi-fix.patch create mode 100644 boot/at91bootstrap/0002-gcc-4.6.x-ldscript-fix.patch create mode 100644 boot/at91bootstrap/0003-u-boot-relocation-fix.patch create mode 100644 boot/at91bootstrap/Config.in create mode 100644 boot/at91bootstrap/at91bootstrap.hash create mode 100644 boot/at91bootstrap/at91bootstrap.mk create mode 100644 boot/at91bootstrap3/Config.in create mode 100644 boot/at91bootstrap3/at91bootstrap3.hash create mode 100644 boot/at91bootstrap3/at91bootstrap3.mk create mode 100644 boot/at91dataflashboot/0001-do-not-install.patch create mode 100644 boot/at91dataflashboot/0002-eabi-fixes.patch create mode 100644 boot/at91dataflashboot/Config.in create mode 100644 boot/at91dataflashboot/at91dataflashboot.hash create mode 100644 boot/at91dataflashboot/at91dataflashboot.mk create mode 100644 boot/barebox/Config.in create mode 100644 boot/barebox/barebox-aux/Config.in create mode 120000 boot/barebox/barebox-aux/barebox-aux.hash create mode 100644 boot/barebox/barebox-aux/barebox-aux.mk create mode 100644 boot/barebox/barebox.hash create mode 100644 boot/barebox/barebox.mk create mode 100644 boot/barebox/barebox/Config.in create mode 120000 boot/barebox/barebox/barebox.hash create mode 100644 boot/barebox/barebox/barebox.mk create mode 100644 boot/beaglev-ddrinit/Config.in create mode 100644 boot/beaglev-ddrinit/beaglev-ddrinit.hash create mode 100644 boot/beaglev-ddrinit/beaglev-ddrinit.mk create mode 100644 boot/beaglev-secondboot/Config.in create mode 100644 boot/beaglev-secondboot/beaglev-secondboot.hash create mode 100644 boot/beaglev-secondboot/beaglev-secondboot.mk create mode 100644 boot/binaries-marvell/Config.in create mode 100644 boot/binaries-marvell/binaries-marvell.hash create mode 100644 boot/binaries-marvell/binaries-marvell.mk create mode 100644 boot/boot-wrapper-aarch64/Config.in create mode 100644 boot/boot-wrapper-aarch64/boot-wrapper-aarch64.mk create mode 100644 boot/common.mk create mode 100644 boot/edk2/0001-MdeModulePkg-UsbBusDxe-fix-NOOPT-build-error.patch create mode 100644 boot/edk2/Config.in create mode 100644 boot/edk2/edk2.hash create mode 100644 boot/edk2/edk2.mk create mode 100644 boot/grub2/0001-Makefile-Make-grub_fstest.pp-depend-on-config-util.h.patch create mode 100644 boot/grub2/Config.in create mode 100644 boot/grub2/grub.cfg create mode 100644 boot/grub2/grub2.hash create mode 100644 boot/grub2/grub2.mk create mode 100644 boot/grub2/readme.txt create mode 100644 boot/gummiboot/0001-Allow-building-with-newer-glibc-versions.patch create mode 100644 boot/gummiboot/0002-Fix-linking-for-non-host-compatible-targets.patch create mode 100644 boot/gummiboot/Config.in create mode 100644 boot/gummiboot/buildroot.conf create mode 100644 boot/gummiboot/gummiboot.mk create mode 100644 boot/gummiboot/loader.conf create mode 100644 boot/lpc32xxcdl/0001-compiler_name.patch create mode 100644 boot/lpc32xxcdl/0002-delete_redundant_files.patch create mode 100644 boot/lpc32xxcdl/0003-libnosys_gnu.patch create mode 100644 boot/lpc32xxcdl/0004-slashes.patch create mode 100644 boot/lpc32xxcdl/Config.in create mode 100644 boot/lpc32xxcdl/lpc32xxcdl.hash create mode 100644 boot/lpc32xxcdl/lpc32xxcdl.mk create mode 100644 boot/mv-ddr-marvell/Config.in create mode 100644 boot/mv-ddr-marvell/mv-ddr-marvell.hash create mode 100644 boot/mv-ddr-marvell/mv-ddr-marvell.mk create mode 100644 boot/mxs-bootlets/Config.in create mode 100644 boot/mxs-bootlets/barebox_ivt.bd create mode 100644 boot/mxs-bootlets/mxs-bootlets.hash create mode 100644 boot/mxs-bootlets/mxs-bootlets.mk create mode 100644 boot/opensbi/0.9/0001-Makefile-Don-t-specify-mabi-or-march.patch create mode 100644 boot/opensbi/0.9/0002-Makefile-unconditionally-disable-SSP.patch create mode 100644 boot/opensbi/Config.in create mode 100644 boot/opensbi/opensbi.hash create mode 100644 boot/opensbi/opensbi.mk create mode 100644 boot/optee-os/3.13.0/0001-core-zlib-fix-build-warning-when-_LFS64_LARGEFILE-is.patch create mode 100644 boot/optee-os/Config.in create mode 100644 boot/optee-os/optee-os.hash create mode 100644 boot/optee-os/optee-os.mk create mode 100644 boot/s500-bootloader/Config.in create mode 100644 boot/s500-bootloader/s500-bootloader.hash create mode 100644 boot/s500-bootloader/s500-bootloader.mk create mode 100644 boot/shim/Config.in create mode 100644 boot/shim/shim.hash create mode 100644 boot/shim/shim.mk create mode 100644 boot/sun20i-d1-spl/Config.in create mode 100644 boot/sun20i-d1-spl/sun20i-d1-spl.hash create mode 100644 boot/sun20i-d1-spl/sun20i-d1-spl.mk create mode 100644 boot/syslinux/0001-bios-Fix-alignment-change-with-gcc-5.patch create mode 100644 boot/syslinux/0002-Disable-PIE-to-avoid-FTBFS-on-amd64.patch create mode 100644 boot/syslinux/0003-memdisk-Force-ld-output-format-to-32-bits.patch create mode 100644 boot/syslinux/0004-utils-Use-the-host-toolchain-to-build.patch create mode 100644 boot/syslinux/0005-lzo-Use-the-host-toolchain-for-prepcore.patch create mode 100644 boot/syslinux/0006-The-VPrint-definition-is-now-part-of-the-exports-of-.patch create mode 100644 boot/syslinux/0007-Update-the-longjump-calls-to-fit-the-new-declaration.patch create mode 100644 boot/syslinux/0008-efi-wrapper-build-it-with-the-host-toolchain.patch create mode 100644 boot/syslinux/0009-bios-Don-t-try-to-guess-the-sections-alignment.patch create mode 100644 boot/syslinux/0010-core-Clean-up-the-i386-bios-build.patch create mode 100644 boot/syslinux/0011-extlinux-Use-the-host-toolchain-to-build.patch create mode 100644 boot/syslinux/0012-pull-in-sys-sysmacros-h-for-major-minor-makedev.patch create mode 100644 boot/syslinux/0013-Fix-build-with-gnu-efi-version-3.0.9.patch create mode 100644 boot/syslinux/0014-Fix-build-with-binutils-note-gnu-property-section.patch create mode 100644 boot/syslinux/0015-efi-main.c-include-efisetjmp.h.patch create mode 100644 boot/syslinux/0016-Workaround-multiple-definition-of-symbol-errors.patch create mode 100644 boot/syslinux/0017-Replace-builtin-strlen-that-appears-to-get-optimized.patch create mode 100644 boot/syslinux/Config.in create mode 100644 boot/syslinux/syslinux.hash create mode 100644 boot/syslinux/syslinux.mk create mode 100644 boot/uboot/Config.in create mode 100644 boot/uboot/uboot.hash create mode 100644 boot/uboot/uboot.mk create mode 100644 boot/vexpress-firmware/Config.in create mode 100644 boot/vexpress-firmware/vexpress-firmware.hash create mode 100644 boot/vexpress-firmware/vexpress-firmware.mk create mode 100644 configs/aarch64_efi_defconfig create mode 100644 configs/acmesystems_acqua_a5_256mb_defconfig create mode 100644 configs/acmesystems_acqua_a5_512mb_defconfig create mode 100644 configs/acmesystems_aria_g25_128mb_defconfig create mode 100644 configs/acmesystems_aria_g25_256mb_defconfig create mode 100644 configs/acmesystems_arietta_g25_128mb_defconfig create mode 100644 configs/acmesystems_arietta_g25_256mb_defconfig create mode 100644 configs/amarula_a64_relic_defconfig create mode 100644 configs/amarula_vyasa_rk3288_defconfig create mode 100644 configs/andes_ae350_45_defconfig create mode 100644 configs/arcturus_ucls1012a_defconfig create mode 100644 configs/arcturus_ucp1020_defconfig create mode 100644 configs/arm_foundationv8_defconfig create mode 100644 configs/arm_juno_defconfig create mode 100644 configs/armadeus_apf27_defconfig create mode 100644 configs/armadeus_apf28_defconfig create mode 100644 configs/armadeus_apf51_defconfig create mode 100644 configs/aspeed_ast2500evb_defconfig create mode 100644 configs/aspeed_ast2600evb_defconfig create mode 100644 configs/asus_tinker_rk3288_defconfig create mode 100644 configs/at91sam9260eknf_defconfig create mode 100644 configs/at91sam9g20dfc_defconfig create mode 100644 configs/at91sam9g45m10ek_defconfig create mode 100644 configs/at91sam9rlek_defconfig create mode 100644 configs/at91sam9x5ek_defconfig create mode 100644 configs/at91sam9x5ek_dev_defconfig create mode 100644 configs/at91sam9x5ek_mmc_defconfig create mode 100644 configs/at91sam9x5ek_mmc_dev_defconfig create mode 100644 configs/atmel_sama5d27_som1_ek_mmc_dev_defconfig create mode 100644 configs/atmel_sama5d2_xplained_mmc_defconfig create mode 100644 configs/atmel_sama5d2_xplained_mmc_dev_defconfig create mode 100644 configs/atmel_sama5d3_xplained_defconfig create mode 100644 configs/atmel_sama5d3_xplained_dev_defconfig create mode 100644 configs/atmel_sama5d3_xplained_mmc_defconfig create mode 100644 configs/atmel_sama5d3_xplained_mmc_dev_defconfig create mode 100644 configs/atmel_sama5d3xek_defconfig create mode 100644 configs/atmel_sama5d4_xplained_defconfig create mode 100644 configs/atmel_sama5d4_xplained_dev_defconfig create mode 100644 configs/atmel_sama5d4_xplained_mmc_defconfig create mode 100644 configs/atmel_sama5d4_xplained_mmc_dev_defconfig create mode 100644 configs/avenger96_defconfig create mode 100644 configs/bananapi_m1_defconfig create mode 100644 configs/bananapi_m1_plus_defconfig create mode 100644 configs/bananapi_m2_plus_defconfig create mode 100644 configs/bananapi_m2_ultra_defconfig create mode 100644 configs/bananapi_m2_zero_defconfig create mode 100644 configs/bananapi_m64_defconfig create mode 100644 configs/bananapro_defconfig create mode 100644 configs/beagleboardx15_defconfig create mode 100644 configs/beaglebone_defconfig create mode 100644 configs/beaglebone_qt5_defconfig create mode 100644 configs/beagleboneai_defconfig create mode 100644 configs/beaglev_defconfig create mode 100644 configs/beelink_gs1_defconfig create mode 100644 configs/broadcom_northstar_defconfig create mode 100644 configs/canaan_kd233_defconfig create mode 100644 configs/chromebook_elm_defconfig create mode 100644 configs/chromebook_snow_defconfig create mode 100644 configs/ci20_defconfig create mode 100644 configs/cubieboard2_defconfig create mode 100644 configs/engicam_imx6qdl_icore_defconfig create mode 100644 configs/engicam_imx6qdl_icore_qt5_defconfig create mode 100644 configs/engicam_imx6qdl_icore_rqs_defconfig create mode 100644 configs/engicam_imx6ul_geam_defconfig create mode 100644 configs/engicam_imx6ul_isiot_defconfig create mode 100644 configs/freescale_imx28evk_defconfig create mode 100644 configs/freescale_imx6dlsabreauto_defconfig create mode 100644 configs/freescale_imx6dlsabresd_defconfig create mode 100644 configs/freescale_imx6qsabreauto_defconfig create mode 100644 configs/freescale_imx6qsabresd_defconfig create mode 100644 configs/freescale_imx6sxsabresd_defconfig create mode 100644 configs/freescale_imx6ullevk_defconfig create mode 100644 configs/freescale_imx7dsabresd_defconfig create mode 100644 configs/freescale_imx8mmevk_defconfig create mode 100644 configs/freescale_imx8mnevk_defconfig create mode 100644 configs/freescale_imx8mpevk_defconfig create mode 100644 configs/freescale_imx8mqevk_defconfig create mode 100644 configs/freescale_imx8qmmek_defconfig create mode 100644 configs/freescale_imx8qxpmek_defconfig create mode 100644 configs/freescale_p1025twr_defconfig create mode 100644 configs/freescale_t1040d4rdb_defconfig create mode 100644 configs/freescale_t2080_qds_rdb_defconfig create mode 100644 configs/friendlyarm_nanopc_t4_defconfig create mode 100644 configs/friendlyarm_nanopi_a64_defconfig create mode 100644 configs/friendlyarm_nanopi_m1_defconfig create mode 100644 configs/friendlyarm_nanopi_m1_plus_defconfig create mode 100644 configs/friendlyarm_nanopi_m4_defconfig create mode 100644 configs/friendlyarm_nanopi_neo2_defconfig create mode 100644 configs/friendlyarm_nanopi_neo4_defconfig create mode 100644 configs/friendlyarm_nanopi_neo_plus2_defconfig create mode 100644 configs/friendlyarm_nanopi_r1_defconfig create mode 100644 configs/friendlyarm_nanopi_r2s_defconfig create mode 100644 configs/galileo_defconfig create mode 100644 configs/globalscale_espressobin_defconfig create mode 100644 configs/grinn_chiliboard_defconfig create mode 100644 configs/grinn_liteboard_defconfig create mode 100644 configs/hifive_unleashed_defconfig create mode 100644 configs/imx23evk_defconfig create mode 100644 configs/imx6-sabreauto_defconfig create mode 100644 configs/imx6-sabresd_defconfig create mode 100644 configs/imx6-sabresd_qt5_defconfig create mode 100644 configs/imx6slevk_defconfig create mode 100644 configs/imx6sx-sdb_defconfig create mode 100644 configs/imx6ulevk_defconfig create mode 100644 configs/imx6ullevk_defconfig create mode 100644 configs/imx6ulpico_defconfig create mode 100644 configs/imx7d-sdb_defconfig create mode 100644 configs/imx7dpico_defconfig create mode 100644 configs/imx8mmpico_defconfig create mode 100644 configs/imx8mpico_defconfig create mode 100644 configs/imx8mqevk_defconfig create mode 100644 configs/kontron_bl_imx8mm_defconfig create mode 100644 configs/kontron_pitx_imx8m_defconfig create mode 100644 configs/kontron_smarc_sal28_defconfig create mode 100644 configs/lafrite_defconfig create mode 100644 configs/lego_ev3_defconfig create mode 100644 configs/licheepi_zero_defconfig create mode 100644 configs/linksprite_pcduino_defconfig create mode 100644 configs/mender_x86_64_efi_defconfig create mode 100644 configs/microchip_sam9x60ek_mmc_defconfig create mode 100644 configs/microchip_sam9x60ek_mmc_dev_defconfig create mode 100644 configs/microchip_sama5d27_wlsom1_ek_mmc_defconfig create mode 100644 configs/microchip_sama5d27_wlsom1_ek_mmc_dev_defconfig create mode 100644 configs/microchip_sama5d2_icp_mmc_defconfig create mode 100644 configs/microchip_sama5d2_icp_mmc_dev_defconfig create mode 100644 configs/microchip_sama7g5ek_mmc_defconfig create mode 100644 configs/microchip_sama7g5ek_mmc_dev_defconfig create mode 100644 configs/minnowboard_max_defconfig create mode 100644 configs/mx25pdk_defconfig create mode 100644 configs/mx51evk_defconfig create mode 100644 configs/mx53loco_defconfig create mode 100644 configs/mx6cubox_defconfig create mode 100644 configs/mx6sx_udoo_neo_defconfig create mode 100644 configs/mx6udoo_defconfig create mode 100644 configs/nexbox_a95x_defconfig create mode 100644 configs/nezha_defconfig create mode 100644 configs/nitrogen6sx_defconfig create mode 100644 configs/nitrogen6x_defconfig create mode 100644 configs/nitrogen7_defconfig create mode 100644 configs/nitrogen8m_defconfig create mode 100644 configs/nitrogen8mm_defconfig create mode 100644 configs/nitrogen8mn_defconfig create mode 100644 configs/nitrogen8mp_defconfig create mode 100644 configs/octavo_osd32mp1_brk_defconfig create mode 100644 configs/octavo_osd32mp1_red_defconfig create mode 100644 configs/odroidc2_defconfig create mode 100644 configs/odroidxu4_defconfig create mode 100644 configs/olimex_a10_olinuxino_lime_defconfig create mode 100644 configs/olimex_a13_olinuxino_defconfig create mode 100644 configs/olimex_a20_olinuxino_lime2_defconfig create mode 100644 configs/olimex_a20_olinuxino_lime_defconfig create mode 100644 configs/olimex_a20_olinuxino_micro_defconfig create mode 100644 configs/olimex_a33_olinuxino_defconfig create mode 100644 configs/olimex_a64_olinuxino_defconfig create mode 100644 configs/olimex_imx233_olinuxino_defconfig create mode 100644 configs/olimex_stmp157_olinuxino_lime_defconfig create mode 100644 configs/olpc_xo175_defconfig create mode 100644 configs/olpc_xo1_defconfig create mode 100644 configs/openblocks_a6_defconfig create mode 100644 configs/orangepi_lite2_defconfig create mode 100644 configs/orangepi_lite_defconfig create mode 100644 configs/orangepi_one_defconfig create mode 100644 configs/orangepi_one_plus_defconfig create mode 100644 configs/orangepi_pc2_defconfig create mode 100644 configs/orangepi_pc_defconfig create mode 100644 configs/orangepi_pc_plus_defconfig create mode 100644 configs/orangepi_plus_defconfig create mode 100644 configs/orangepi_prime_defconfig create mode 100644 configs/orangepi_r1_defconfig create mode 100644 configs/orangepi_rk3399_defconfig create mode 100644 configs/orangepi_win_defconfig create mode 100644 configs/orangepi_zero_defconfig create mode 100644 configs/orangepi_zero_plus2_defconfig create mode 100644 configs/orangepi_zero_plus_defconfig create mode 100644 configs/pandaboard_defconfig create mode 100644 configs/pc_x86_64_bios_defconfig create mode 100644 configs/pc_x86_64_efi_defconfig create mode 100644 configs/pcengines_apu2_defconfig create mode 100644 configs/pine64_defconfig create mode 100644 configs/pine64_sopine_defconfig create mode 100644 configs/qemu_aarch64_sbsa_defconfig create mode 100644 configs/qemu_aarch64_virt_defconfig create mode 100644 configs/qemu_arm_versatile_defconfig create mode 100644 configs/qemu_arm_vexpress_defconfig create mode 100644 configs/qemu_arm_vexpress_tz_defconfig create mode 100644 configs/qemu_m68k_mcf5208_defconfig create mode 100644 configs/qemu_m68k_q800_defconfig create mode 100644 configs/qemu_microblazebe_mmu_defconfig create mode 100644 configs/qemu_microblazeel_mmu_defconfig create mode 100644 configs/qemu_mips32r2_malta_defconfig create mode 100644 configs/qemu_mips32r2el_malta_defconfig create mode 100644 configs/qemu_mips32r6_malta_defconfig create mode 100644 configs/qemu_mips32r6el_malta_defconfig create mode 100644 configs/qemu_mips64_malta_defconfig create mode 100644 configs/qemu_mips64el_malta_defconfig create mode 100644 configs/qemu_mips64r6_malta_defconfig create mode 100644 configs/qemu_mips64r6el_malta_defconfig create mode 100644 configs/qemu_nios2_10m50_defconfig create mode 100644 configs/qemu_or1k_defconfig create mode 100644 configs/qemu_ppc64_e5500_defconfig create mode 100644 configs/qemu_ppc64_pseries_defconfig create mode 100644 configs/qemu_ppc64le_powernv8_defconfig create mode 100644 configs/qemu_ppc64le_pseries_defconfig create mode 100644 configs/qemu_ppc_bamboo_defconfig create mode 100644 configs/qemu_ppc_e500mc_defconfig create mode 100644 configs/qemu_ppc_g3beige_defconfig create mode 100644 configs/qemu_ppc_mac99_defconfig create mode 100644 configs/qemu_ppc_mpc8544ds_defconfig create mode 100644 configs/qemu_riscv32_virt_defconfig create mode 100644 configs/qemu_riscv64_nommu_virt_defconfig create mode 100644 configs/qemu_riscv64_virt_defconfig create mode 100644 configs/qemu_s390x_defconfig create mode 100644 configs/qemu_sh4_r2d_defconfig create mode 100644 configs/qemu_sh4eb_r2d_defconfig create mode 100644 configs/qemu_sparc64_sun4u_defconfig create mode 100644 configs/qemu_sparc_ss10_defconfig create mode 100644 configs/qemu_x86_64_defconfig create mode 100644 configs/qemu_x86_defconfig create mode 100644 configs/qemu_xtensa_lx60_defconfig create mode 100644 configs/qemu_xtensa_lx60_nommu_defconfig create mode 100644 configs/raspberrypi0_defconfig create mode 100644 configs/raspberrypi0w_defconfig create mode 100644 configs/raspberrypi2_defconfig create mode 100644 configs/raspberrypi3_64_defconfig create mode 100644 configs/raspberrypi3_defconfig create mode 100644 configs/raspberrypi3_qt5we_defconfig create mode 100644 configs/raspberrypi4_64_defconfig create mode 100644 configs/raspberrypi4_defconfig create mode 100644 configs/raspberrypi_defconfig create mode 100644 configs/raspberrypicm4io_64_defconfig create mode 100644 configs/raspberrypicm4io_defconfig create mode 100644 configs/raspberrypizero2w_defconfig create mode 100644 configs/riotboard_defconfig create mode 100644 configs/roc_pc_rk3399_defconfig create mode 100644 configs/rock64_defconfig create mode 100644 configs/rock_pi_4_defconfig create mode 100644 configs/rock_pi_n10_defconfig create mode 100644 configs/rock_pi_n8_defconfig create mode 100644 configs/rockpro64_defconfig create mode 100644 configs/roseapplepi_defconfig create mode 100644 configs/s6lx9_microboard_defconfig create mode 100644 configs/sheevaplug_defconfig create mode 100644 configs/sipeed_maix_bit_defconfig create mode 100644 configs/sipeed_maix_bit_sdcard_defconfig create mode 100644 configs/sipeed_maix_dock_defconfig create mode 100644 configs/sipeed_maix_dock_sdcard_defconfig create mode 100644 configs/sipeed_maix_go_defconfig create mode 100644 configs/sipeed_maix_go_sdcard_defconfig create mode 100644 configs/sipeed_maixduino_defconfig create mode 100644 configs/sipeed_maixduino_sdcard_defconfig create mode 100644 configs/snps_arc700_axs101_defconfig create mode 100644 configs/snps_archs38_axs103_defconfig create mode 100644 configs/snps_archs38_haps_defconfig create mode 100644 configs/snps_archs38_hsdk_defconfig create mode 100644 configs/socrates_cyclone5_defconfig create mode 100644 configs/solidrun_clearfog_defconfig create mode 100644 configs/solidrun_clearfog_gt_8k_defconfig create mode 100644 configs/solidrun_macchiatobin_defconfig create mode 100644 configs/spike_riscv64_defconfig create mode 100644 configs/stm32f429_disco_xip_defconfig create mode 100644 configs/stm32f469_disco_sd_defconfig create mode 100644 configs/stm32f469_disco_xip_defconfig create mode 100644 configs/stm32mp157a_dk1_defconfig create mode 100644 configs/stm32mp157c_dk2_defconfig create mode 100644 configs/stm32mp157c_odyssey_defconfig create mode 100644 configs/terasic_de10nano_cyclone5_defconfig create mode 100644 configs/toradex_apalis_imx6_defconfig create mode 100644 configs/ts4900_defconfig create mode 100644 configs/ts5500_defconfig create mode 100644 configs/ts7680_defconfig create mode 100644 configs/uevm5432_defconfig create mode 100644 configs/wandboard_defconfig create mode 100644 configs/warp7_defconfig create mode 100644 configs/warpboard_defconfig create mode 100644 configs/zynq_microzed_defconfig create mode 100644 configs/zynq_qmtech_defconfig create mode 100644 configs/zynq_zc706_defconfig create mode 100644 configs/zynq_zed_defconfig create mode 100644 configs/zynqmp_kria_kv260_defconfig create mode 100644 configs/zynqmp_zcu102_defconfig create mode 100644 configs/zynqmp_zcu106_defconfig create mode 100644 docs/conf/asciidoc-text.conf create mode 120000 docs/images create mode 100644 docs/manual/adding-board-support.txt create mode 100644 docs/manual/adding-packages-asciidoc.txt create mode 100644 docs/manual/adding-packages-autotools.txt create mode 100644 docs/manual/adding-packages-cargo.txt create mode 100644 docs/manual/adding-packages-cmake.txt create mode 100644 docs/manual/adding-packages-conclusion.txt create mode 100644 docs/manual/adding-packages-directory.txt create mode 100644 docs/manual/adding-packages-generic.txt create mode 100644 docs/manual/adding-packages-gettext.txt create mode 100644 docs/manual/adding-packages-golang.txt create mode 100644 docs/manual/adding-packages-hooks.txt create mode 100644 docs/manual/adding-packages-kconfig.txt create mode 100644 docs/manual/adding-packages-kernel-module.txt create mode 100644 docs/manual/adding-packages-linux-kernel-spec-infra.txt create mode 100644 docs/manual/adding-packages-luarocks.txt create mode 100644 docs/manual/adding-packages-meson.txt create mode 100644 docs/manual/adding-packages-perl.txt create mode 100644 docs/manual/adding-packages-python.txt create mode 100644 docs/manual/adding-packages-qmake.txt create mode 100644 docs/manual/adding-packages-rebar.txt create mode 100644 docs/manual/adding-packages-tips.txt create mode 100644 docs/manual/adding-packages-virtual.txt create mode 100644 docs/manual/adding-packages-waf.txt create mode 100644 docs/manual/adding-packages.txt create mode 100644 docs/manual/advanced.txt create mode 100644 docs/manual/appendix.txt create mode 100644 docs/manual/beyond-buildroot.txt create mode 100644 docs/manual/ccache-support.txt create mode 100644 docs/manual/common-usage.txt create mode 100644 docs/manual/configure-other-components.txt create mode 100644 docs/manual/configure.txt create mode 100644 docs/manual/contribute.txt create mode 100644 docs/manual/customize-configuration.txt create mode 100644 docs/manual/customize-device-permission-tables.txt create mode 100644 docs/manual/customize-directory-structure.txt create mode 100644 docs/manual/customize-outside-br.txt create mode 100644 docs/manual/customize-packages.txt create mode 100644 docs/manual/customize-patches.txt create mode 100644 docs/manual/customize-post-image.txt create mode 100644 docs/manual/customize-quick-guide.txt create mode 100644 docs/manual/customize-rootfs.txt create mode 100644 docs/manual/customize-users-tables.txt create mode 100644 docs/manual/customize.txt create mode 100644 docs/manual/debugging-buildroot.txt create mode 100644 docs/manual/developers.txt create mode 100644 docs/manual/docbook-xsl.css create mode 100644 docs/manual/download-infra.txt create mode 100644 docs/manual/download-location.txt create mode 100644 docs/manual/faq-troubleshooting.txt create mode 100644 docs/manual/getting.txt create mode 100644 docs/manual/github_hash_mongrel2.png create mode 100644 docs/manual/how-buildroot-works.txt create mode 100644 docs/manual/integration-selinux-support.txt create mode 100644 docs/manual/integration-systemd.txt create mode 100644 docs/manual/integration.txt create mode 100644 docs/manual/introduction.txt create mode 100644 docs/manual/known-issues.txt create mode 100644 docs/manual/legal-notice.txt create mode 100644 docs/manual/logo.png create mode 100644 docs/manual/make-tips.txt create mode 100644 docs/manual/makedev-syntax.txt create mode 100644 docs/manual/makeusers-syntax.txt create mode 100644 docs/manual/manual.html create mode 100644 docs/manual/manual.mk create mode 100644 docs/manual/manual.pdf create mode 100644 docs/manual/manual.text create mode 100644 docs/manual/manual.txt create mode 100644 docs/manual/migrating.txt create mode 100644 docs/manual/package-make-target.txt create mode 100644 docs/manual/patch-policy.txt create mode 100644 docs/manual/prerequisite.txt create mode 100644 docs/manual/quickstart.txt create mode 100644 docs/manual/rebuilding-packages.txt create mode 100644 docs/manual/release-engineering.txt create mode 100644 docs/manual/resources.txt create mode 100644 docs/manual/using-buildroot-debugger.txt create mode 100644 docs/manual/using-buildroot-development.txt create mode 100644 docs/manual/using-buildroot-toolchain.txt create mode 100644 docs/manual/writing-rules.txt create mode 100644 docs/website/.htaccess create mode 100644 docs/website/association.html create mode 100644 docs/website/contribute.html create mode 100644 docs/website/copyright.txt create mode 100644 docs/website/css/main.css create mode 100644 docs/website/css/timeline.css create mode 100644 docs/website/docs.html create mode 100644 docs/website/download.html create mode 100644 docs/website/favicon.ico create mode 100644 docs/website/favicon.png create mode 100644 docs/website/fonts/glyphicons-halflings-regular.woff create mode 100644 docs/website/footer.html create mode 100644 docs/website/header.html create mode 100644 docs/website/images/amarula-solutions-logo.png create mode 100644 docs/website/images/bootlin-logo.png create mode 100644 docs/website/images/boundary-devices-logo.png create mode 100644 docs/website/images/browser.png create mode 100644 docs/website/images/bug-buddy.png create mode 100644 docs/website/images/buildroot-slides.png create mode 100644 docs/website/images/calao-logo.png create mode 100644 docs/website/images/circuitco-logo.png create mode 100644 docs/website/images/clippy.svg create mode 100644 docs/website/images/email.png create mode 100644 docs/website/images/fluendo-logo.png create mode 100644 docs/website/images/free-electrons-logo.png create mode 100644 docs/website/images/gift.png create mode 100644 docs/website/images/github_hash_mongrel2.png create mode 100644 docs/website/images/google-logo.png create mode 100644 docs/website/images/hammer.png create mode 100644 docs/website/images/imgtec-logo.png create mode 100644 docs/website/images/irc.png create mode 100644 docs/website/images/logilin-logo.png create mode 100644 docs/website/images/logo.png create mode 100644 docs/website/images/logo.xcf create mode 100644 docs/website/images/logo_small.png create mode 100644 docs/website/images/menuconfig.png create mode 100644 docs/website/images/mind-logo.png create mode 100644 docs/website/images/nconfig.png create mode 100644 docs/website/images/package.png create mode 100644 docs/website/images/pdf-icon.png create mode 100644 docs/website/images/rockwell-collins-logo.png create mode 100644 docs/website/images/scaleway-logo.png create mode 100644 docs/website/images/smile-logo.png create mode 100644 docs/website/images/synopsys-logo.png create mode 100644 docs/website/images/tap2open-logo.png create mode 100644 docs/website/images/text.png create mode 100644 docs/website/images/tkos-logo.png create mode 100644 docs/website/images/tux-flat.png create mode 100644 docs/website/images/xconfig.png create mode 100644 docs/website/images/zillabit-logo.png create mode 100644 docs/website/images/zip.png create mode 100644 docs/website/index.html create mode 100644 docs/website/js/buildroot.js create mode 100644 docs/website/news.html create mode 100644 docs/website/robots.txt create mode 100644 docs/website/sponsors.html create mode 100644 docs/website/support.html create mode 100644 fs/Config.in create mode 100644 fs/axfs/Config.in create mode 100644 fs/axfs/axfs.mk create mode 100644 fs/btrfs/Config.in create mode 100644 fs/btrfs/btrfs.mk create mode 100644 fs/cloop/Config.in create mode 100644 fs/cloop/cloop.mk create mode 100644 fs/common.mk create mode 100644 fs/cpio/Config.in create mode 100644 fs/cpio/cpio.mk create mode 100755 fs/cpio/init create mode 100644 fs/cramfs/Config.in create mode 100644 fs/cramfs/cramfs.mk create mode 100644 fs/erofs/Config.in create mode 100644 fs/erofs/erofs.mk create mode 100644 fs/ext2/Config.in create mode 100644 fs/ext2/ext2.mk create mode 100644 fs/f2fs/Config.in create mode 100644 fs/f2fs/f2fs.mk create mode 100644 fs/initramfs/Config.in create mode 100644 fs/initramfs/initramfs.mk create mode 100644 fs/iso9660/Config.in create mode 100644 fs/iso9660/grub.cfg create mode 100644 fs/iso9660/iso9660.mk create mode 100644 fs/iso9660/isolinux.cfg create mode 100644 fs/jffs2/Config.in create mode 100644 fs/jffs2/jffs2.mk create mode 100644 fs/oci/Config.in create mode 100644 fs/oci/oci.mk create mode 100644 fs/romfs/Config.in create mode 100644 fs/romfs/romfs.mk create mode 100644 fs/squashfs/Config.in create mode 100644 fs/squashfs/squashfs.mk create mode 100644 fs/tar/Config.in create mode 100644 fs/tar/tar.mk create mode 100644 fs/ubi/Config.in create mode 100644 fs/ubi/ubi.mk create mode 100644 fs/ubi/ubinize.cfg create mode 100644 fs/ubifs/Config.in create mode 100644 fs/ubifs/ubifs.mk create mode 100644 fs/yaffs2/Config.in create mode 100644 fs/yaffs2/yaffs2.mk create mode 100644 linux/0001-timeconst.pl-Eliminate-Perl-warning.patch.conditional create mode 100644 linux/Config.ext.in create mode 100644 linux/Config.in create mode 100644 linux/linux-ext-aufs.mk create mode 100644 linux/linux-ext-ev3dev-linux-drivers.mk create mode 100644 linux/linux-ext-fbtft.mk create mode 100644 linux/linux-ext-rtai.mk create mode 100644 linux/linux-ext-xenomai.mk create mode 100644 linux/linux.hash create mode 100644 linux/linux.mk create mode 100644 package/18xx-ti-utils/0001-plt.h-fix-build-with-gcc-10.patch create mode 100644 package/18xx-ti-utils/18xx-ti-utils.hash create mode 100644 package/18xx-ti-utils/18xx-ti-utils.mk create mode 100644 package/18xx-ti-utils/Config.in create mode 100644 package/4th/0001-avoid-regen-during-install.patch create mode 100644 package/4th/4th.hash create mode 100644 package/4th/4th.mk create mode 100644 package/4th/Config.in create mode 100644 package/Config.in create mode 100644 package/Config.in.host create mode 100644 package/Makefile.in create mode 100644 package/a10disp/Config.in create mode 100644 package/a10disp/a10disp.hash create mode 100644 package/a10disp/a10disp.mk create mode 100644 package/abootimg/Config.in create mode 100644 package/abootimg/Config.in.host create mode 100644 package/abootimg/abootimg.hash create mode 100644 package/abootimg/abootimg.mk create mode 100644 package/ace/0001-ACE-ace-SSL-SSL_Asynch_BIO.cpp-fix-build-with-libres.patch create mode 100644 package/ace/Config.in create mode 100644 package/ace/ace.hash create mode 100644 package/ace/ace.mk create mode 100644 package/ace/platform_macros.GNU create mode 100644 package/acl/0001-Build-with-old-GCC-versions.patch create mode 100644 package/acl/Config.in create mode 100644 package/acl/acl.hash create mode 100644 package/acl/acl.mk create mode 100644 package/acpica/0001-build-do-not-use-Werror.patch create mode 100644 package/acpica/Config.in create mode 100644 package/acpica/acpica.hash create mode 100644 package/acpica/acpica.mk create mode 100644 package/acpid/0001-dont-use-isfdtype.patch create mode 100644 package/acpid/0002-add-missing-defines.patch create mode 100644 package/acpid/Config.in create mode 100644 package/acpid/S02acpid create mode 100644 package/acpid/acpid.hash create mode 100644 package/acpid/acpid.mk create mode 100644 package/acpid/acpid.service create mode 100644 package/acpitool/Config.in create mode 100644 package/acpitool/acpitool.hash create mode 100644 package/acpitool/acpitool.mk create mode 100644 package/acsccid/Config.in create mode 100644 package/acsccid/acsccid.hash create mode 100644 package/acsccid/acsccid.mk create mode 100644 package/adwaita-icon-theme/Config.in create mode 100644 package/adwaita-icon-theme/adwaita-icon-theme.hash create mode 100644 package/adwaita-icon-theme/adwaita-icon-theme.mk create mode 100644 package/aer-inject/Config.in create mode 100644 package/aer-inject/aer-inject.hash create mode 100644 package/aer-inject/aer-inject.mk create mode 100644 package/aespipe/Config.in create mode 100644 package/aespipe/Config.in.host create mode 100644 package/aespipe/aespipe.hash create mode 100644 package/aespipe/aespipe.mk create mode 100644 package/agentpp/Config.in create mode 100644 package/agentpp/agentpp.hash create mode 100644 package/agentpp/agentpp.mk create mode 100644 package/aircrack-ng/Config.in create mode 100644 package/aircrack-ng/aircrack-ng.hash create mode 100644 package/aircrack-ng/aircrack-ng.mk create mode 100644 package/alchemy/0001-toolchains-remove-hash-style-management.patch create mode 100644 package/alchemy/alchemy.hash create mode 100644 package/alchemy/alchemy.mk create mode 100644 package/alchemy/atom.mk.in create mode 100644 package/alfred/Config.in create mode 100644 package/alfred/alfred.hash create mode 100644 package/alfred/alfred.mk create mode 100644 package/alsa-lib/0001-Don-t-use-fork-on-noMMU-platforms.patch create mode 100644 package/alsa-lib/Config.in create mode 100644 package/alsa-lib/alsa-lib.hash create mode 100644 package/alsa-lib/alsa-lib.mk create mode 100644 package/alsa-plugins/Config.in create mode 100644 package/alsa-plugins/alsa-plugins.hash create mode 100644 package/alsa-plugins/alsa-plugins.mk create mode 100644 package/alsa-utils/0001-alsactl-info.c-fix-conditionals-on-__ALSA_PCM_H-and-.patch create mode 100644 package/alsa-utils/0002-aplay-aplay.c-make-UCM-support-optional.patch create mode 100644 package/alsa-utils/0003-configure.ac-fix-build-without-dlfcn.h.patch create mode 100644 package/alsa-utils/Config.in create mode 100644 package/alsa-utils/alsa-utils.hash create mode 100644 package/alsa-utils/alsa-utils.mk create mode 100644 package/alsamixergui/0001-misc-fixes.patch create mode 100644 package/alsamixergui/0002-configure-fix-detection-of-fltk-libs.patch create mode 100644 package/alsamixergui/Config.in create mode 100644 package/alsamixergui/alsamixergui.hash create mode 100644 package/alsamixergui/alsamixergui.mk create mode 100644 package/altera-stapl/Config.in create mode 100644 package/altera-stapl/altera-stapl.hash create mode 100644 package/altera-stapl/altera-stapl.mk create mode 100644 package/alure/Config.in create mode 100644 package/alure/alure.hash create mode 100644 package/alure/alure.mk create mode 100644 package/am335x-pru-package/0001-install-does-not-build.patch create mode 100644 package/am335x-pru-package/Config.in create mode 100644 package/am335x-pru-package/am335x-pru-package.hash create mode 100644 package/am335x-pru-package/am335x-pru-package.mk create mode 100644 package/am33x-cm3/0001-fix-makefile.patch create mode 100644 package/am33x-cm3/0002-Makefile-unconditionally-disable-SSP.patch create mode 100644 package/am33x-cm3/0003-Makefile-unconditionally-disable-PIE.patch create mode 100644 package/am33x-cm3/0004-Makefile-add-fno-builtin.patch create mode 100644 package/am33x-cm3/Config.in create mode 100644 package/am33x-cm3/S93-am335x-pm-firmware-load create mode 100644 package/am33x-cm3/am33x-cm3.hash create mode 100644 package/am33x-cm3/am33x-cm3.mk create mode 100644 package/android-tools/0001-Fix-makefiles-for-out-of-tree-build.patch create mode 100644 package/android-tools/0002-Fix-adbd-for-non-Ubuntu-systems.patch create mode 100644 package/android-tools/0003-Fix-build-issue-with-uclibc.patch create mode 100644 package/android-tools/0004-Fix-build-issue-with-musl.patch create mode 100644 package/android-tools/0005-Use-pkgconf-to-get-libs-deps.patch create mode 100644 package/android-tools/0006-fix-big-endian-build.patch create mode 100644 package/android-tools/0007-include-cdefs-h-when-needed.patch create mode 100644 package/android-tools/0008-Include-sysmacros.h-to-compile-with-glibc-2.28.patch create mode 100644 package/android-tools/0009-Fix-makefiles-for-out-of-tree-ext4_utils-build.patch create mode 100644 package/android-tools/0010-adb-added-patch-for-openssl-1.1.0-compatibility.patch create mode 100644 package/android-tools/Config.in create mode 100644 package/android-tools/Config.in.host create mode 100644 package/android-tools/android-tools.hash create mode 100644 package/android-tools/android-tools.mk create mode 100644 package/angular-websocket/Config.in create mode 100644 package/angular-websocket/angular-websocket.hash create mode 100644 package/angular-websocket/angular-websocket.mk create mode 100644 package/angularjs/Config.in create mode 100644 package/angularjs/angularjs.hash create mode 100644 package/angularjs/angularjs.mk create mode 100644 package/aoetools/0001-Change-shell-script-interpreter-from-bin-bash-to-bin.patch create mode 100644 package/aoetools/Config.in create mode 100644 package/aoetools/aoetools.hash create mode 100644 package/aoetools/aoetools.mk create mode 100644 package/apache/0001-cross-compile.patch create mode 100644 package/apache/0002-nios2_is_not_os2.patch create mode 100644 package/apache/0003-server-Makefile.in-handle-separate-APR_INCLUDE_DIR-A.patch create mode 100644 package/apache/Config.in create mode 100644 package/apache/S50apache create mode 100644 package/apache/apache.hash create mode 100644 package/apache/apache.mk create mode 100644 package/apache/apache.service create mode 100644 package/apcupsd/Config.in create mode 100644 package/apcupsd/apcupsd.hash create mode 100644 package/apcupsd/apcupsd.mk create mode 100644 package/apg/Config.in create mode 100644 package/apg/apg.hash create mode 100644 package/apg/apg.mk create mode 100644 package/apitrace/0001-thirdparty-libbacktrace-backtrace-h-include-config.h.patch create mode 100644 package/apitrace/0002-gltrace-Avoid-__libc_dlsym-and-__libc_dlopen_mode-on-GLIBC-2-34.patch create mode 100644 package/apitrace/Config.in create mode 100644 package/apitrace/apitrace.hash create mode 100644 package/apitrace/apitrace.mk create mode 100644 package/apparmor/Config.in create mode 100644 package/apparmor/apparmor.hash create mode 100644 package/apparmor/apparmor.mk create mode 100644 package/apr-util/0001-remove-checkapr.patch create mode 100644 package/apr-util/Config.in create mode 100644 package/apr-util/apr-util.hash create mode 100644 package/apr-util/apr-util.mk create mode 100644 package/apr/0001-cross-compile.patch create mode 100644 package/apr/0002-sys-param-h.patch create mode 100644 package/apr/0003-Merge-r1887279-from-trunk.patch create mode 100644 package/apr/0004-apr-1.7.0-CVE-2021-35940.patch create mode 100644 package/apr/Config.in create mode 100644 package/apr/apr.hash create mode 100644 package/apr/apr.mk create mode 100644 package/argp-standalone/Config.in create mode 100644 package/argp-standalone/argp-standalone.hash create mode 100644 package/argp-standalone/argp-standalone.mk create mode 100644 package/argparse/Config.in create mode 100644 package/argparse/argparse.hash create mode 100644 package/argparse/argparse.mk create mode 100644 package/argus/Config.in create mode 100644 package/argus/argus.hash create mode 100644 package/argus/argus.mk create mode 100644 package/arm-gnu-toolchain/arm-gnu-toolchain.hash create mode 100644 package/arm-gnu-toolchain/arm-gnu-toolchain.mk create mode 100644 package/armadillo/Config.in create mode 100644 package/armadillo/armadillo.hash create mode 100644 package/armadillo/armadillo.mk create mode 100644 package/armbian-firmware/Config.in create mode 100644 package/armbian-firmware/armbian-firmware.hash create mode 100644 package/armbian-firmware/armbian-firmware.mk create mode 100644 package/arp-scan/Config.in create mode 100644 package/arp-scan/arp-scan.hash create mode 100644 package/arp-scan/arp-scan.mk create mode 100644 package/arptables/0001-Fix-musl-build-issue.patch create mode 100644 package/arptables/0002-libarptc-libarptc_incl.c-fix-build-with-O0.patch create mode 100644 package/arptables/Config.in create mode 100644 package/arptables/arptables.hash create mode 100644 package/arptables/arptables.mk create mode 100644 package/ascii-invaders/Config.in create mode 100644 package/ascii-invaders/ascii-invaders.hash create mode 100644 package/ascii-invaders/ascii-invaders.mk create mode 100644 package/asn1c/Config.in.host create mode 100644 package/asn1c/asn1c.hash create mode 100644 package/asn1c/asn1c.mk create mode 100644 package/assimp/0001-code-disable-Werror.patch create mode 100644 package/assimp/Config.in create mode 100644 package/assimp/assimp.hash create mode 100644 package/assimp/assimp.mk create mode 100644 package/asterisk/0001-sounds-do-not-download-and-check-sha1s.patch create mode 100644 package/asterisk/0002-configure-fix-detection-of-libcrypt.patch create mode 100644 package/asterisk/0003-build-ensure-target-directory-for-modules-exists.patch create mode 100644 package/asterisk/0004-install-samples-need-the-data-files.patch create mode 100644 package/asterisk/0005-configure-fix-detection-of-re-entrant-resolver-funct.patch create mode 100644 package/asterisk/Config.in create mode 100644 package/asterisk/asterisk.hash create mode 100644 package/asterisk/asterisk.mk create mode 100644 package/at-spi2-atk/0001-meson-add-tests-option.patch create mode 100644 package/at-spi2-atk/Config.in create mode 100644 package/at-spi2-atk/at-spi2-atk.hash create mode 100644 package/at-spi2-atk/at-spi2-atk.mk create mode 100644 package/at-spi2-core/Config.in create mode 100644 package/at-spi2-core/at-spi2-core.hash create mode 100644 package/at-spi2-core/at-spi2-core.mk create mode 100644 package/at/0001-Makefile.in-fix-make-install-for-non-root-don-t-stri.patch create mode 100644 package/at/Config.in create mode 100644 package/at/S99at create mode 100644 package/at/at.hash create mode 100644 package/at/at.mk create mode 100644 package/atest/0001-seq.h-fix-build-with-gcc-10.patch create mode 100644 package/atest/Config.in create mode 100644 package/atest/atest.hash create mode 100644 package/atest/atest.mk create mode 100644 package/atf/Config.in create mode 100644 package/atf/atf.hash create mode 100644 package/atf/atf.mk create mode 100644 package/atftp/Config.in create mode 100644 package/atftp/atftp.hash create mode 100644 package/atftp/atftp.mk create mode 100644 package/atk/Config.in create mode 100644 package/atk/atk.hash create mode 100644 package/atk/atk.mk create mode 100644 package/atkmm/Config.in create mode 100644 package/atkmm/atkmm.hash create mode 100644 package/atkmm/atkmm.mk create mode 100644 package/atop/Config.in create mode 100644 package/atop/atop.hash create mode 100644 package/atop/atop.mk create mode 100644 package/attr/0001-build-with-older-GCCs.patch create mode 100644 package/attr/Config.in create mode 100644 package/attr/attr.hash create mode 100644 package/attr/attr.mk create mode 100644 package/aubio/Config.in create mode 100644 package/aubio/aubio.hash create mode 100644 package/aubio/aubio.mk create mode 100644 package/audit/Config.in create mode 100644 package/audit/S02auditd create mode 100644 package/audit/audit.hash create mode 100644 package/audit/audit.mk create mode 100644 package/audit/audit_tmpfiles.conf create mode 100644 package/aufs-util/0001-remove-user-settings.patch create mode 100644 package/aufs-util/0002-no-check-ver.patch create mode 100644 package/aufs-util/0003-no-strip-lib.patch create mode 100644 package/aufs-util/Config.in create mode 100644 package/aufs-util/aufs-util.mk create mode 100644 package/aufs/Config.in create mode 100644 package/aufs/aufs.mk create mode 100644 package/augeas/Config.in create mode 100644 package/augeas/augeas.hash create mode 100644 package/augeas/augeas.mk create mode 100644 package/aumix/0001-fix-incorrect-makefile-am.patch create mode 100644 package/aumix/Config.in create mode 100644 package/aumix/aumix.hash create mode 100644 package/aumix/aumix.mk create mode 100644 package/autoconf-archive/autoconf-archive.hash create mode 100644 package/autoconf-archive/autoconf-archive.mk create mode 100644 package/autoconf/0001-dont-add-dirty-to-version.patch create mode 100644 package/autoconf/autoconf.hash create mode 100644 package/autoconf/autoconf.mk create mode 100644 package/autofs/Config.in create mode 100644 package/autofs/autofs.hash create mode 100644 package/autofs/autofs.mk create mode 100644 package/automake/0001-noman.patch create mode 100644 package/automake/automake.hash create mode 100644 package/automake/automake.mk create mode 100644 package/automake/gtk-doc.m4 create mode 100644 package/autossh/Config.in create mode 100644 package/autossh/autossh.hash create mode 100644 package/autossh/autossh.mk create mode 100644 package/avahi/0001-Fix-NULL-pointer-crashes-from-175.patch create mode 100644 package/avahi/Config.in create mode 100644 package/avahi/S05avahi-setup.sh create mode 100644 package/avahi/S50avahi-daemon create mode 100644 package/avahi/avahi.hash create mode 100644 package/avahi/avahi.mk create mode 100644 package/avahi/avahi_sysusers.conf create mode 100644 package/avahi/avahi_tmpfiles.conf create mode 100644 package/avocado/Config.in create mode 100644 package/avocado/avocado.hash create mode 100644 package/avocado/avocado.mk create mode 100644 package/avrdude/Config.in create mode 100644 package/avrdude/avrdude.hash create mode 100644 package/avrdude/avrdude.mk create mode 100644 package/avro-c/Config.in create mode 100644 package/avro-c/avro-c.hash create mode 100644 package/avro-c/avro-c.mk create mode 100644 package/axel/Config.in create mode 100644 package/axel/axel.hash create mode 100644 package/axel/axel.mk create mode 100644 package/axfsutils/axfsutils.hash create mode 100644 package/axfsutils/axfsutils.mk create mode 100644 package/azmq/Config.in create mode 100644 package/azmq/azmq.hash create mode 100644 package/azmq/azmq.mk create mode 100644 package/azure-iot-sdk-c/0001-adapters-fix-build-with-libressl-2.8.0.patch create mode 100644 package/azure-iot-sdk-c/Config.in create mode 100644 package/azure-iot-sdk-c/azure-iot-sdk-c.hash create mode 100644 package/azure-iot-sdk-c/azure-iot-sdk-c.mk create mode 100644 package/b43-firmware/Config.in create mode 100644 package/b43-firmware/b43-firmware.hash create mode 100644 package/b43-firmware/b43-firmware.mk create mode 100644 package/b43-fwcutter/b43-fwcutter.hash create mode 100644 package/b43-fwcutter/b43-fwcutter.mk create mode 100644 package/babeld/Config.in create mode 100644 package/babeld/S50babeld create mode 100644 package/babeld/babeld.hash create mode 100644 package/babeld/babeld.mk create mode 100644 package/babeld/babeld.service create mode 100644 package/babeltrace2/0001-configure-simplify-warning-flags-detection.patch create mode 100644 package/babeltrace2/Config.in create mode 100644 package/babeltrace2/Config.in.host create mode 100644 package/babeltrace2/babeltrace2.hash create mode 100644 package/babeltrace2/babeltrace2.mk create mode 100644 package/balena-engine/Config.in create mode 100644 package/balena-engine/balena-engine.hash create mode 100644 package/balena-engine/balena-engine.mk create mode 100644 package/bandwidthd/0001-src-bandwidthd.h-fix-build-with-gcc-10.patch create mode 100644 package/bandwidthd/Config.in create mode 100644 package/bandwidthd/bandwidthd.hash create mode 100644 package/bandwidthd/bandwidthd.mk create mode 100644 package/bandwidthd/bandwidthd.service create mode 100644 package/bash-completion/Config.in create mode 100644 package/bash-completion/bash-completion.hash create mode 100644 package/bash-completion/bash-completion.mk create mode 100644 package/bash/0001-input.h-add-missing-include-on-stdio.h.patch create mode 100644 package/bash/0002-locale-fix-typo-local_shiftstates-vs.-locale_shiftst.patch create mode 100644 package/bash/0003-glob-fix-dequote_pathname-vs.-udequote_pathname.patch create mode 100644 package/bash/Config.in create mode 100644 package/bash/bash.hash create mode 100644 package/bash/bash.mk create mode 100644 package/bat/Config.in create mode 100644 package/bat/bat.hash create mode 100644 package/bat/bat.mk create mode 100644 package/batctl/Config.in create mode 100644 package/batctl/batctl.hash create mode 100644 package/batctl/batctl.mk create mode 100644 package/batman-adv/Config.in create mode 100644 package/batman-adv/batman-adv.hash create mode 100644 package/batman-adv/batman-adv.mk create mode 100644 package/bats-core/Config.in create mode 100644 package/bats-core/bats-core.hash create mode 100644 package/bats-core/bats-core.mk create mode 100644 package/bayer2rgb-neon/0001-add-some-_always_inline_-annotations.patch create mode 100644 package/bayer2rgb-neon/Config.in create mode 100644 package/bayer2rgb-neon/bayer2rgb-neon.hash create mode 100644 package/bayer2rgb-neon/bayer2rgb-neon.mk create mode 100644 package/bc/0001-bc-use-MAKEINFO-variable-for-docs.patch create mode 100644 package/bc/0002-notice-read-and-write-errors-on-input-and-output.patch create mode 100644 package/bc/0003-dc-fix-exit-code-of-q-command.patch create mode 100644 package/bc/0004-no-gen-libmath.patch create mode 100644 package/bc/Config.in create mode 100644 package/bc/bc.hash create mode 100644 package/bc/bc.mk create mode 100644 package/bcache-tools/0001-Don-t-inline-crc64-for-gcc-5-compatability.patch create mode 100644 package/bcache-tools/Config.in create mode 100644 package/bcache-tools/bcache-tools.hash create mode 100644 package/bcache-tools/bcache-tools.mk create mode 100644 package/bcg729/Config.in create mode 100644 package/bcg729/bcg729.hash create mode 100644 package/bcg729/bcg729.mk create mode 100644 package/bcm2835/Config.in create mode 100644 package/bcm2835/bcm2835.hash create mode 100644 package/bcm2835/bcm2835.mk create mode 100644 package/bctoolbox/0001-Fix-Libs.private-flags-for-mbedtls.patch create mode 100644 package/bctoolbox/Config.in create mode 100644 package/bctoolbox/bctoolbox.hash create mode 100644 package/bctoolbox/bctoolbox.mk create mode 100644 package/bcusdk/0001-fd_set-requires-inclusion-of-sys-select.h.patch create mode 100644 package/bcusdk/0002-eibd-fix-endless-recursion-when-using-USB-backends.patch create mode 100644 package/bcusdk/Config.in create mode 100644 package/bcusdk/bcusdk.hash create mode 100644 package/bcusdk/bcusdk.mk create mode 100644 package/bdwgc/Config.in create mode 100644 package/bdwgc/bdwgc.hash create mode 100644 package/bdwgc/bdwgc.mk create mode 100644 package/bearssl/Config.in create mode 100644 package/bearssl/bearssl.hash create mode 100644 package/bearssl/bearssl.mk create mode 100644 package/beecrypt/0001-cppglue.cxx-cplusplus-only.patch create mode 100644 package/beecrypt/0002-build-system.patch create mode 100644 package/beecrypt/0003-don-t-check-for-cplusplus-compiler.patch create mode 100644 package/beecrypt/Config.in create mode 100644 package/beecrypt/beecrypt.hash create mode 100644 package/beecrypt/beecrypt.mk create mode 100644 package/belle-sip/Config.in create mode 100644 package/belle-sip/belle-sip.hash create mode 100644 package/belle-sip/belle-sip.mk create mode 100644 package/belr/Config.in create mode 100644 package/belr/belr.hash create mode 100644 package/belr/belr.mk create mode 100644 package/benejson/0001-c-std.patch create mode 100644 package/benejson/0002-Use-print-as-a-function-for-Py3-compatibility.patch create mode 100644 package/benejson/Config.in create mode 100644 package/benejson/benejson.hash create mode 100644 package/benejson/benejson.mk create mode 100644 package/bento4/0001-Add-support-for-cmake-install.patch create mode 100644 package/bento4/0002-Add-additional-methods-funtions-and-passing-poolid.patch create mode 100644 package/bento4/0003-Backport-Smmothstream-changes.patch create mode 100644 package/bento4/0004-more-SPS-parameters.patch create mode 100644 package/bento4/0005-AVC-extract-VUI-values-from-SPS.patch create mode 100644 package/bento4/0006-Implement-SPS-Frame-parser.patch create mode 100644 package/bento4/0007-Fix-segfault-when-AP4_Sample-s-seek.patch create mode 100644 package/bento4/0008-Hack-HBO.patch create mode 100644 package/bento4/0009-Android-32-ftello-fix.patch create mode 100644 package/bento4/0010-Dazn-sample-duration-workaround.patch create mode 100644 package/bento4/0011-Add-argument-to-reuse-single-sample-decrypter.patch create mode 100644 package/bento4/0012-Static-ReadGolomb-SignedGolomb.patch create mode 100644 package/bento4/0013-Add-GetChannels-method.patch create mode 100644 package/bento4/0014-Implemented-GetSampleIndexForTimeStamp-GetNearestSyn.patch create mode 100644 package/bento4/0015-Avoid-set-next-fragment-position.patch create mode 100644 package/bento4/0016-Fix-segfault-in-AP4_LinearReader-ProcessMoof.patch create mode 100644 package/bento4/Config.in create mode 100644 package/bento4/bento4.hash create mode 100644 package/bento4/bento4.mk create mode 100644 package/berkeleydb/0001-cwd-db_config.patch create mode 100644 package/berkeleydb/0002-atomic_compare_exchange.patch create mode 100644 package/berkeleydb/Config.in create mode 100644 package/berkeleydb/berkeleydb.hash create mode 100644 package/berkeleydb/berkeleydb.mk create mode 100644 package/bind/0001-cross.patch create mode 100644 package/bind/Config.in create mode 100644 package/bind/S81named create mode 100644 package/bind/bind.hash create mode 100644 package/bind/bind.mk create mode 100644 package/bind/named.service create mode 100644 package/binutils/2.36.1/0001-sh-conf.patch create mode 100644 package/binutils/2.36.1/0002-poison-system-directories.patch create mode 100644 package/binutils/2.36.1/0003-or1k-Fix-issue-with-plt-link-failure-for-local-calls.patch create mode 100644 package/binutils/2.36.1/0004-or1k-Implement-relocation-R_OR1K_GOT_AHI16-for-gotha.patch create mode 100644 package/binutils/2.36.1/0005-or1k-Avoid-R_OR1K_GOT16-overflow-failures-in-presenc.patch create mode 100644 package/binutils/2.36.1/0006-or1k-Support-large-plt_relocs-when-generating-plt-en.patch create mode 100644 package/binutils/2.36.1/0007-bfd-elf32-or1k-fix-building-with-gcc-version-5.patch create mode 100644 package/binutils/2.36.1/0008-or1k-fix-pc-relative-relocation-against-dynamic-on-P.patch create mode 100644 package/binutils/2.36.1/0009-or1k-Avoid-R_OR1K_GOT16-signed-overflow-by-using-spe.patch create mode 100644 package/binutils/2.36.1/0010-i386-Allow-GOT32-relocations-against-ABS-symbols.patch create mode 100644 package/binutils/2.37/0001-sh-conf.patch create mode 100644 package/binutils/2.37/0002-poison-system-directories.patch create mode 100644 package/binutils/2.37/0003-bfd-elf32-or1k-fix-building-with-gcc-version-5.patch create mode 100644 package/binutils/2.37/0004-or1k-fix-pc-relative-relocation-against-dynamic-on-P.patch create mode 100644 package/binutils/2.37/0005-or1k-Avoid-R_OR1K_GOT16-signed-overflow-by-using-spe.patch create mode 100644 package/binutils/2.37/0006-bfd-Close-the-file-descriptor-if-there-is-no-archive.patch create mode 100644 package/binutils/2.37/0007-i386-Allow-GOT32-relocations-against-ABS-symbols.patch create mode 100644 package/binutils/2.38/0001-sh-conf.patch create mode 100644 package/binutils/2.38/0002-poison-system-directories.patch create mode 100644 package/binutils/2.38/0003-bfd-elf32-or1k-fix-building-with-gcc-version-5.patch create mode 100644 package/binutils/2.38/0004-or1k-Avoid-R_OR1K_GOT16-signed-overflow-by-using-spe.patch create mode 100644 package/binutils/2.38/0005-binutils-2.38-vs.-ppc32-linux-kernel.patch create mode 100644 package/binutils/Config.in create mode 100644 package/binutils/Config.in.host create mode 100644 package/binutils/arc-2020.09-release/0001-poison-system-directories.patch create mode 100644 package/binutils/binutils.hash create mode 100644 package/binutils/binutils.mk create mode 100644 package/biosdevname/Config.in create mode 100644 package/biosdevname/biosdevname.hash create mode 100644 package/biosdevname/biosdevname.mk create mode 100644 package/bird/0001-configure.ac-fix-build-with-autoconf-2.70.patch create mode 100644 package/bird/Config.in create mode 100644 package/bird/bird.hash create mode 100644 package/bird/bird.mk create mode 100644 package/bison/bison.hash create mode 100644 package/bison/bison.mk create mode 100644 package/bitcoin/0001-src-randomenv.cpp-fix-build-on-uclibc.patch create mode 100644 package/bitcoin/Config.in create mode 100644 package/bitcoin/bitcoin.hash create mode 100644 package/bitcoin/bitcoin.mk create mode 100644 package/bitstream-vera/Config.in create mode 100644 package/bitstream-vera/bitstream-vera.hash create mode 100644 package/bitstream-vera/bitstream-vera.mk create mode 100644 package/bitstream/Config.in create mode 100644 package/bitstream/bitstream.hash create mode 100644 package/bitstream/bitstream.mk create mode 100644 package/bitwise/Config.in create mode 100644 package/bitwise/bitwise.hash create mode 100644 package/bitwise/bitwise.mk create mode 100644 package/blktrace/Config.in create mode 100644 package/blktrace/blktrace.hash create mode 100644 package/blktrace/blktrace.mk create mode 100644 package/bluez-alsa/Config.in create mode 100644 package/bluez-alsa/bluez-alsa.hash create mode 100644 package/bluez-alsa/bluez-alsa.mk create mode 100644 package/bluez-tools/Config.in create mode 100644 package/bluez-tools/bluez-tools.hash create mode 100644 package/bluez-tools/bluez-tools.mk create mode 100644 package/bluez5_utils-headers/Config.in create mode 120000 package/bluez5_utils-headers/bluez5_utils-headers.hash create mode 100644 package/bluez5_utils-headers/bluez5_utils-headers.mk create mode 100644 package/bluez5_utils/Config.in create mode 100755 package/bluez5_utils/S40bluetooth create mode 100644 package/bluez5_utils/bluez5_utils.hash create mode 100644 package/bluez5_utils/bluez5_utils.mk create mode 100644 package/bmap-tools/Config.in create mode 100644 package/bmap-tools/Config.in.host create mode 100644 package/bmap-tools/bmap-tools.hash create mode 100644 package/bmap-tools/bmap-tools.mk create mode 100644 package/bmon/Config.in create mode 100644 package/bmon/bmon.hash create mode 100644 package/bmon/bmon.mk create mode 100644 package/bmx7/0001-Fix-schedule.c-378-36-error-SIOCGSTAMP-undeclared.patch create mode 100644 package/bmx7/0002-Fix-linking-error.patch create mode 100644 package/bmx7/0003-Reorder-includes-to-avoid-ethhdr-collision.patch create mode 100644 package/bmx7/Config.in create mode 100644 package/bmx7/bmx7.hash create mode 100644 package/bmx7/bmx7.mk create mode 100644 package/boinc/Config.in create mode 100644 package/boinc/S99boinc-client create mode 100644 package/boinc/boinc.hash create mode 100644 package/boinc/boinc.mk create mode 100644 package/bonnie/Config.in create mode 100644 package/bonnie/bonnie.hash create mode 100644 package/bonnie/bonnie.mk create mode 100644 package/boost/0001-json-array-erase-relocate.patch create mode 100644 package/boost/0002-Rename-mips1-to-mips-and-alias-mips1-to-mips.patch create mode 100644 package/boost/Config.in create mode 100644 package/boost/boost.hash create mode 100644 package/boost/boost.mk create mode 100644 package/bootstrap/Config.in create mode 100644 package/bootstrap/bootstrap.hash create mode 100644 package/bootstrap/bootstrap.mk create mode 100644 package/botan/0001-Add-superh-alias-needed-by-Debian.patch create mode 100644 package/botan/0002-src-build-data-arch-superh.txt-add-sh4-eb-aeb.patch create mode 100644 package/botan/Config.in create mode 100644 package/botan/botan.hash create mode 100644 package/botan/botan.mk create mode 100644 package/bpftool/0001-bpftool-Fix-bootstrapping-during-a-cross-compilation.patch create mode 100644 package/bpftool/Config.in create mode 100644 package/bpftool/bpftool.hash create mode 100644 package/bpftool/bpftool.mk create mode 100644 package/brcm-patchram-plus/Config.in create mode 100644 package/brcm-patchram-plus/brcm-patchram-plus.hash create mode 100644 package/brcm-patchram-plus/brcm-patchram-plus.mk create mode 100644 package/brcmfmac_sdio-firmware-rpi/Config.in create mode 100644 package/brcmfmac_sdio-firmware-rpi/brcmfmac_sdio-firmware-rpi.hash create mode 100644 package/brcmfmac_sdio-firmware-rpi/brcmfmac_sdio-firmware-rpi.mk create mode 100644 package/brickd/Config.in create mode 100644 package/brickd/S70brickd create mode 100644 package/brickd/brickd.hash create mode 100644 package/brickd/brickd.mk create mode 100644 package/bridge-utils/0001-fix-build-on-musl.patch create mode 100644 package/bridge-utils/Config.in create mode 100644 package/bridge-utils/bridge-utils.hash create mode 100644 package/bridge-utils/bridge-utils.mk create mode 100644 package/brltty/0001-Fix-linking-error-on-mips64el.patch create mode 100644 package/brltty/Config.in create mode 100644 package/brltty/S10brltty create mode 100644 package/brltty/brltty.hash create mode 100644 package/brltty/brltty.mk create mode 100644 package/brltty/brltty.service create mode 100644 package/brotli/0001-CMake-Allow-using-BUILD_SHARED_LIBS-to-choose-static.patch create mode 100644 package/brotli/0002-Revert-Add-runtime-linker-path-to-pkg-config-files.patch create mode 100644 package/brotli/Config.in create mode 100644 package/brotli/brotli.hash create mode 100644 package/brotli/brotli.mk create mode 100644 package/bsdiff/0001-Add-missing-header-for-u_char.patch create mode 100644 package/bsdiff/Config.in create mode 100644 package/bsdiff/bsdiff.hash create mode 100644 package/bsdiff/bsdiff.mk create mode 100644 package/btrfs-progs/Config.in create mode 100644 package/btrfs-progs/Config.in.host create mode 100644 package/btrfs-progs/btrfs-progs.hash create mode 100644 package/btrfs-progs/btrfs-progs.mk create mode 100644 package/bubblewrap/Config.in create mode 100644 package/bubblewrap/bubblewrap.hash create mode 100644 package/bubblewrap/bubblewrap.mk create mode 100644 package/bullet/Config.in create mode 100644 package/bullet/bullet.hash create mode 100644 package/bullet/bullet.mk create mode 100644 package/bustle/Config.in create mode 100644 package/bustle/bustle.hash create mode 100644 package/bustle/bustle.mk create mode 100644 package/busybox/0001-networking-libiproute-use-linux-if_packet.h-instead-.patch create mode 100644 package/busybox/0002-Makefile.flags-strip-non-l-arguments-returned-by-pkg.patch create mode 100644 package/busybox/0003-awk-fix-use-after-free-CVE-2022-30065.patch create mode 100644 package/busybox/0004-libbb-sockaddr2str-ensure-only-printable-characters-.patch create mode 100644 package/busybox/0005-nslookup-sanitize-all-printed-strings-with-printable.patch create mode 100644 package/busybox/Config.in create mode 100644 package/busybox/S01syslogd create mode 100644 package/busybox/S02klogd create mode 120000 package/busybox/S02sysctl create mode 100644 package/busybox/S10mdev create mode 100644 package/busybox/S15watchdog create mode 100644 package/busybox/S50telnet create mode 100644 package/busybox/busybox-minimal.config create mode 100644 package/busybox/busybox.config create mode 100644 package/busybox/busybox.hash create mode 100644 package/busybox/busybox.mk create mode 100644 package/busybox/inittab create mode 100644 package/busybox/mdev.conf create mode 100644 package/busybox/telnetd.service create mode 100755 package/busybox/udhcpc.script create mode 100644 package/bwm-ng/Config.in create mode 100644 package/bwm-ng/bwm-ng.hash create mode 100644 package/bwm-ng/bwm-ng.mk create mode 100644 package/bzip2/0001-build-objects-twice.patch create mode 100644 package/bzip2/0002-improve-build-system.patch create mode 100644 package/bzip2/Config.in create mode 100644 package/bzip2/bzip2.hash create mode 100644 package/bzip2/bzip2.mk create mode 100644 package/c-ares/Config.in create mode 100644 package/c-ares/c-ares.hash create mode 100644 package/c-ares/c-ares.mk create mode 100644 package/c-capnproto/Config.in create mode 100644 package/c-capnproto/c-capnproto.hash create mode 100644 package/c-capnproto/c-capnproto.mk create mode 100644 package/c-icap-modules/Config.in create mode 100644 package/c-icap-modules/c-icap-modules.hash create mode 100644 package/c-icap-modules/c-icap-modules.mk create mode 100644 package/c-icap/0001-Required-fixes-to-compile-and-run-under-cygwin.patch create mode 100644 package/c-icap/Config.in create mode 100644 package/c-icap/S96cicap create mode 100644 package/c-icap/c-icap.hash create mode 100644 package/c-icap/c-icap.mk create mode 100644 package/c-periphery/Config.in create mode 100644 package/c-periphery/c-periphery.hash create mode 100644 package/c-periphery/c-periphery.mk create mode 100644 package/ca-certificates/0001-mozilla-certdata2pem.py-make-cryptography-module-opt.patch create mode 100644 package/ca-certificates/Config.in create mode 100644 package/ca-certificates/ca-certificates.hash create mode 100644 package/ca-certificates/ca-certificates.mk create mode 100644 package/cache-calibrator/0001-Fix-conflicting-round-function.patch create mode 100644 package/cache-calibrator/Config.in create mode 100644 package/cache-calibrator/cache-calibrator.hash create mode 100644 package/cache-calibrator/cache-calibrator.mk create mode 100644 package/cage/0001-Upgrade-to-wlroots-0.15.patch create mode 100644 package/cage/Config.in create mode 100644 package/cage/cage.hash create mode 100644 package/cage/cage.mk create mode 100644 package/cairo/0001-fix-nofork-build.patch create mode 100644 package/cairo/0002-ft-Use-FT_Done_MM_Var-instead-of-free-when-available-in-cairo_ft_apply_variation.patch create mode 100644 package/cairo/Config.in create mode 100644 package/cairo/cairo.hash create mode 100644 package/cairo/cairo.mk create mode 100644 package/cairomm/Config.in create mode 100644 package/cairomm/cairomm.hash create mode 100644 package/cairomm/cairomm.mk create mode 100644 package/can-utils/Config.in create mode 100644 package/can-utils/can-utils.hash create mode 100644 package/can-utils/can-utils.mk create mode 100644 package/cannelloni/Config.in create mode 100644 package/cannelloni/cannelloni.hash create mode 100644 package/cannelloni/cannelloni.mk create mode 100644 package/cantarell/Config.in create mode 100644 package/cantarell/cantarell.hash create mode 100644 package/cantarell/cantarell.mk create mode 100644 package/capnproto/Config.in create mode 100644 package/capnproto/capnproto.hash create mode 100644 package/capnproto/capnproto.mk create mode 100644 package/caps/0001-Fix-stdint-types-with-musl.patch create mode 100644 package/caps/Config.in create mode 100644 package/caps/caps.hash create mode 100644 package/caps/caps.mk create mode 100644 package/casync/0001-castore-fix-build-without-lzma-or-xz.patch create mode 100644 package/casync/0002-build-don-t-install-udev-rules-without-udev-support.patch create mode 100644 package/casync/Config.in create mode 100644 package/casync/casync.hash create mode 100644 package/casync/casync.mk create mode 100644 package/cbootimage/Config.in create mode 100644 package/cbootimage/Config.in.host create mode 100644 package/cbootimage/cbootimage.hash create mode 100644 package/cbootimage/cbootimage.mk create mode 100644 package/cc-tool/Config.in create mode 100644 package/cc-tool/cc-tool.hash create mode 100644 package/cc-tool/cc-tool.mk create mode 100644 package/ccache/ccache.hash create mode 100644 package/ccache/ccache.mk create mode 100644 package/ccid/Config.in create mode 100644 package/ccid/ccid.hash create mode 100644 package/ccid/ccid.mk create mode 100644 package/ccrypt/Config.in create mode 100644 package/ccrypt/ccrypt.hash create mode 100644 package/ccrypt/ccrypt.mk create mode 100644 package/cctz/Config.in create mode 100644 package/cctz/cctz.hash create mode 100644 package/cctz/cctz.mk create mode 100644 package/cdrkit/0001-no-rcmd.patch create mode 100644 package/cdrkit/0002-define-__THROW-to-avoid-build-issue-with-musl.patch create mode 100644 package/cdrkit/0003-Add-extern-to-char-outfile-declaration-to-fix-build-.patch create mode 100644 package/cdrkit/Config.in create mode 100644 package/cdrkit/cdrkit.hash create mode 100644 package/cdrkit/cdrkit.mk create mode 100644 package/cegui/0001-XMLParser.cpp-include-string.h.patch create mode 100644 package/cegui/Config.in create mode 100644 package/cegui/cegui.hash create mode 100644 package/cegui/cegui.mk create mode 100644 package/cereal/Config.in create mode 100644 package/cereal/cereal.hash create mode 100644 package/cereal/cereal.mk create mode 100644 package/cfm/Config.in create mode 100644 package/cfm/S65cfm create mode 100644 package/cfm/cfm.hash create mode 100644 package/cfm/cfm.mk create mode 100644 package/cfm/cfm.service create mode 100644 package/cgic/0001-prepare_makefile.patch create mode 100644 package/cgic/0002-file_enhancements.patch create mode 100644 package/cgic/0003-restore-cgiFormFileGetTempfileName.patch create mode 100644 package/cgic/Config.in create mode 100644 package/cgic/cgic.hash create mode 100644 package/cgic/cgic.mk create mode 100644 package/cgilua/Config.in create mode 100644 package/cgilua/cgilua.hash create mode 100644 package/cgilua/cgilua.mk create mode 100644 package/cgroupfs-mount/Config.in create mode 100644 package/cgroupfs-mount/S30cgroupfs create mode 100644 package/cgroupfs-mount/cgroupfs-mount.hash create mode 100644 package/cgroupfs-mount/cgroupfs-mount.mk create mode 100644 package/chartjs/Config.in create mode 100644 package/chartjs/chartjs.hash create mode 100644 package/chartjs/chartjs.mk create mode 100644 package/check/Config.in create mode 100644 package/check/check.hash create mode 100644 package/check/check.mk create mode 100644 package/checkpolicy/Config.in create mode 100644 package/checkpolicy/Config.in.host create mode 100644 package/checkpolicy/checkpolicy.hash create mode 100644 package/checkpolicy/checkpolicy.mk create mode 100644 package/checksec/Config.in.host create mode 100644 package/checksec/checksec.hash create mode 100644 package/checksec/checksec.mk create mode 100644 package/chipmunk/0001-Fix-build-failure-on-musl.patch create mode 100644 package/chipmunk/Config.in create mode 100644 package/chipmunk/chipmunk.hash create mode 100644 package/chipmunk/chipmunk.mk create mode 100644 package/chocolate-doom/0001-Remove-redundant-demoextend-definition.patch create mode 100644 package/chocolate-doom/Config.in create mode 100644 package/chocolate-doom/chocolate-doom.hash create mode 100644 package/chocolate-doom/chocolate-doom.mk create mode 100644 package/chrony/Config.in create mode 100644 package/chrony/S49chrony create mode 100644 package/chrony/chrony.hash create mode 100644 package/chrony/chrony.mk create mode 100644 package/chrony/chrony.service create mode 100644 package/cifs-utils/Config.in create mode 100644 package/cifs-utils/cifs-utils.hash create mode 100644 package/cifs-utils/cifs-utils.mk create mode 100644 package/circus/Config.in create mode 100644 package/circus/circus.hash create mode 100644 package/circus/circus.mk create mode 100644 package/civetweb/Config.in create mode 100644 package/civetweb/civetweb.hash create mode 100644 package/civetweb/civetweb.mk create mode 100644 package/cjson/Config.in create mode 100644 package/cjson/cjson.hash create mode 100644 package/cjson/cjson.mk create mode 100644 package/clamav/0001-mbox-do-not-use-backtrace-if-using-uClibc-without-ba.patch create mode 100644 package/clamav/Config.in create mode 100644 package/clamav/clamav.hash create mode 100644 package/clamav/clamav.mk create mode 100644 package/clang/0001-lib-Driver-ToolChains-Gnu-Use-GCC_INSTALL_PREFIX-in-.patch create mode 100644 package/clang/Config.in create mode 100644 package/clang/clang.hash create mode 100644 package/clang/clang.mk create mode 100644 package/clinfo/Config.in create mode 100644 package/clinfo/clinfo.hash create mode 100644 package/clinfo/clinfo.mk create mode 100644 package/cloop/cloop.hash create mode 100644 package/cloop/cloop.mk create mode 100644 package/clpeak/Config.in create mode 100644 package/clpeak/clpeak.hash create mode 100644 package/clpeak/clpeak.mk create mode 100644 package/cmake/0001-rename-cmake-rootfile.patch create mode 100644 package/cmake/Config.in create mode 100644 package/cmake/Config.in.host create mode 100644 package/cmake/cmake.hash create mode 100644 package/cmake/cmake.mk create mode 100644 package/cmocka/0001-Don-t-redefine-uintptr_t.patch create mode 100644 package/cmocka/Config.in create mode 100644 package/cmocka/cmocka.hash create mode 100644 package/cmocka/cmocka.mk create mode 100644 package/cog/Config.in create mode 100644 package/cog/cog.hash create mode 100644 package/cog/cog.mk create mode 100644 package/collectd/0001-src-netlink.c-remove-REG_NOERROR.patch create mode 100644 package/collectd/Config.in create mode 100644 package/collectd/S90collectd create mode 100644 package/collectd/collectd.hash create mode 100644 package/collectd/collectd.mk create mode 100644 package/collectd/collectd.service create mode 100644 package/collectl/Config.in create mode 100644 package/collectl/collectl.hash create mode 100644 package/collectl/collectl.mk create mode 100644 package/comix-cursors/Config.in create mode 100644 package/comix-cursors/comix-cursors.hash create mode 100644 package/comix-cursors/comix-cursors.mk create mode 100644 package/compiler-rt/Config.in create mode 100644 package/compiler-rt/compiler-rt.hash create mode 100644 package/compiler-rt/compiler-rt.mk create mode 100644 package/connman-gtk/Config.in create mode 100644 package/connman-gtk/connman-gtk.hash create mode 100644 package/connman-gtk/connman-gtk.mk create mode 100644 package/connman/Config.in create mode 100644 package/connman/S45connman create mode 100644 package/connman/connman.hash create mode 100644 package/connman/connman.mk create mode 100644 package/conntrack-tools/Config.in create mode 100644 package/conntrack-tools/conntrack-tools.hash create mode 100644 package/conntrack-tools/conntrack-tools.mk create mode 100644 package/containerd/Config.in create mode 100644 package/containerd/containerd.hash create mode 100644 package/containerd/containerd.mk create mode 100644 package/copas/0001-Do-not-load-coxpcall-for-LuaJIT.patch create mode 100644 package/copas/Config.in create mode 100644 package/copas/copas.hash create mode 100644 package/copas/copas.mk create mode 100644 package/coremark-pro/Config.in create mode 100644 package/coremark-pro/coremark-pro.hash create mode 100644 package/coremark-pro/coremark-pro.mk create mode 100755 package/coremark-pro/coremark-pro.sh.in create mode 100644 package/coremark/Config.in create mode 100644 package/coremark/coremark.hash create mode 100644 package/coremark/coremark.mk create mode 100644 package/coreutils/Config.in create mode 100644 package/coreutils/coreutils.hash create mode 100644 package/coreutils/coreutils.mk create mode 100644 package/corkscrew/Config.in create mode 100644 package/corkscrew/corkscrew.hash create mode 100644 package/corkscrew/corkscrew.mk create mode 100644 package/coxpcall/Config.in create mode 100644 package/coxpcall/coxpcall.hash create mode 100644 package/coxpcall/coxpcall.mk create mode 100644 package/cpio/0001-Minor-fix.patch create mode 100644 package/cpio/0002-Rewrite-dynamic-string-support.patch create mode 100644 package/cpio/0003-Fix-previous-commit.patch create mode 100644 package/cpio/Config.in create mode 100644 package/cpio/cpio.hash create mode 100644 package/cpio/cpio.mk create mode 100644 package/cppcms/Config.in create mode 100644 package/cppcms/cppcms.hash create mode 100644 package/cppcms/cppcms.mk create mode 100644 package/cppdb/0001-mysql-library-suffix.patch create mode 100644 package/cppdb/Config.in create mode 100644 package/cppdb/cppdb.hash create mode 100644 package/cppdb/cppdb.mk create mode 100644 package/cppunit/Config.in create mode 100644 package/cppunit/cppunit.hash create mode 100644 package/cppunit/cppunit.mk create mode 100644 package/cppzmq/Config.in create mode 100644 package/cppzmq/cppzmq.hash create mode 100644 package/cppzmq/cppzmq.mk create mode 100644 package/cpuburn-arm/Config.in create mode 100644 package/cpuburn-arm/cpuburn-arm.hash create mode 100644 package/cpuburn-arm/cpuburn-arm.mk create mode 100644 package/cpulimit/0001-Fix-crash-and-compiler-warnings.patch create mode 100644 package/cpulimit/0002-Remove-sys-sysctl.h-and-add-missing-libgen.h-include.patch create mode 100644 package/cpulimit/0003-Fix-an-infrequent-crash.patch create mode 100644 package/cpulimit/0004-Remove-procfs.h-inclusion.patch create mode 100644 package/cpulimit/Config.in create mode 100644 package/cpulimit/cpulimit.hash create mode 100644 package/cpulimit/cpulimit.mk create mode 100644 package/cpuload/Config.in create mode 100644 package/cpuload/cpuload.hash create mode 100644 package/cpuload/cpuload.mk create mode 100644 package/cracklib/0001-Force-grep-to-treat-the-input-as-text-when-formattin.patch create mode 100644 package/cracklib/Config.in create mode 100644 package/cracklib/cracklib.hash create mode 100644 package/cracklib/cracklib.mk create mode 100644 package/cramfs/Config.in create mode 100644 package/cramfs/Config.in.host create mode 100644 package/cramfs/cramfs.hash create mode 100644 package/cramfs/cramfs.mk create mode 100644 package/crda/0001-crda-support-python-3-in-utils-key2pub.py.patch create mode 100644 package/crda/0002-drop-ldconfig-call.patch create mode 100644 package/crda/0003-drop-werror.patch create mode 100644 package/crda/Config.in create mode 100644 package/crda/crda.hash create mode 100644 package/crda/crda.mk create mode 100644 package/crucible/Config.in create mode 100644 package/crucible/crucible.hash create mode 100644 package/crucible/crucible.mk create mode 100644 package/crudini/Config.in create mode 100644 package/crudini/crudini.hash create mode 100644 package/crudini/crudini.mk create mode 100644 package/cryptodev-linux/cryptodev-linux.hash create mode 100644 package/cryptodev-linux/cryptodev-linux.mk create mode 100644 package/cryptodev/Config.in create mode 100644 package/cryptodev/cryptodev.mk create mode 100644 package/cryptopp/0001-GNUmakefile-add-missing-shared-library-symlink.patch create mode 100644 package/cryptopp/Config.in create mode 100644 package/cryptopp/cryptopp.hash create mode 100644 package/cryptopp/cryptopp.mk create mode 100644 package/cryptsetup/Config.in create mode 100644 package/cryptsetup/Config.in.host create mode 100644 package/cryptsetup/cryptsetup.hash create mode 100644 package/cryptsetup/cryptsetup.mk create mode 100644 package/ctorrent/0001-fix-musl-build.patch create mode 100644 package/ctorrent/Config.in create mode 100644 package/ctorrent/ctorrent.hash create mode 100644 package/ctorrent/ctorrent.mk create mode 100644 package/cukinia/Config.in create mode 100644 package/cukinia/cukinia.conf create mode 100644 package/cukinia/cukinia.hash create mode 100644 package/cukinia/cukinia.mk create mode 100644 package/cunit/Config.in create mode 100644 package/cunit/cunit.hash create mode 100644 package/cunit/cunit.mk create mode 100644 package/cups-filters/Config.in create mode 100644 package/cups-filters/S82cups-browsed create mode 100644 package/cups-filters/cups-filters.hash create mode 100644 package/cups-filters/cups-filters.mk create mode 100644 package/cups-pk-helper/Config.in create mode 100644 package/cups-pk-helper/cups-pk-helper.hash create mode 100644 package/cups-pk-helper/cups-pk-helper.mk create mode 100644 package/cups/0001-Remove-man-from-BUILDDIRS-in-configure.patch create mode 100644 package/cups/0002-Do-not-use-genstrings.patch create mode 100644 package/cups/0003-Sanitize-the-installation-process.patch create mode 100644 package/cups/0004-Remove-PIE-flags-from-the-build.patch create mode 100644 package/cups/70-usb-printers.rules create mode 100644 package/cups/Config.in create mode 100644 package/cups/S81cupsd create mode 100644 package/cups/cups.hash create mode 100644 package/cups/cups.mk create mode 100644 package/curlftpfs/0001-fix-CURLOPT_INFILESIZE.patch create mode 100644 package/curlftpfs/0002-free_ftpfs_file-memleak-fix.patch create mode 100644 package/curlftpfs/0003-nocache-memleak-fix.patch create mode 100644 package/curlftpfs/0004-fix-musl-build-off-t.patch create mode 100644 package/curlftpfs/Config.in create mode 100644 package/curlftpfs/curlftpfs.hash create mode 100644 package/curlftpfs/curlftpfs.mk create mode 100644 package/curlpp/Config.in create mode 100644 package/curlpp/curlpp.hash create mode 100644 package/curlpp/curlpp.mk create mode 100644 package/cutelyst/0001-server-CMakeLists.txt-don-t-override-CMAKE_EXE_LINKE.patch create mode 100644 package/cutelyst/Config.in create mode 100644 package/cutelyst/cutelyst.hash create mode 100644 package/cutelyst/cutelyst.mk create mode 100644 package/cvs/Config.in create mode 100644 package/cvs/cvs.hash create mode 100644 package/cvs/cvs.mk create mode 100644 package/cwiid/0001-wmdemo-fix-linking-by-adding-the-missing-lbluetooth-.patch create mode 100644 package/cwiid/0002-configure-make-wmgui-build-optional.patch create mode 100644 package/cwiid/Config.in create mode 100644 package/cwiid/cwiid.hash create mode 100644 package/cwiid/cwiid.mk create mode 100644 package/cxxtest/Config.in create mode 100644 package/cxxtest/cxxtest.hash create mode 100644 package/cxxtest/cxxtest.mk create mode 100644 package/czmq/Config.in create mode 100644 package/czmq/czmq.hash create mode 100644 package/czmq/czmq.mk create mode 100644 package/dacapo/Config.in create mode 100644 package/dacapo/dacapo.hash create mode 100644 package/dacapo/dacapo.mk create mode 100644 package/dado/Config.in create mode 100644 package/dado/dado.hash create mode 100644 package/dado/dado.mk create mode 100644 package/daemon/0001-daemon-fix-build-with-musl-libc-again.patch create mode 100644 package/daemon/0002-Fix-build-with-NDEBUG-defined.patch create mode 100644 package/daemon/Config.in create mode 100644 package/daemon/daemon.hash create mode 100644 package/daemon/daemon.mk create mode 100644 package/dahdi-linux/0001-drivers-dahdi-Kbuild-fix-HOTPLUG_FIRMWARE-definition.patch create mode 100644 package/dahdi-linux/0002-fix-build-with-32-bits-kernel.patch create mode 100644 package/dahdi-linux/Config.in create mode 100644 package/dahdi-linux/dahdi-linux.hash create mode 100644 package/dahdi-linux/dahdi-linux.mk create mode 100644 package/dahdi-tools/0001-no-build-docs.patch create mode 100644 package/dahdi-tools/0002-no-perl-manpages.patch create mode 100644 package/dahdi-tools/Config.in create mode 100644 package/dahdi-tools/dahdi-tools.hash create mode 100644 package/dahdi-tools/dahdi-tools.mk create mode 100644 package/dante/0001-fix-sparc-compile.patch create mode 100644 package/dante/0002-osdep-m4-Remove-getaddrinfo-too-low-checks.patch create mode 100644 package/dante/Config.in create mode 100644 package/dante/S50dante create mode 100644 package/dante/dante.hash create mode 100644 package/dante/dante.mk create mode 100644 package/dante/dante.service create mode 100644 package/daq/0001-Fix-build-against-the-musl-C-library.patch create mode 100644 package/daq/0002-parallel-grammar.patch create mode 100644 package/daq/Config.in create mode 100644 package/daq/daq.hash create mode 100644 package/daq/daq.mk create mode 100644 package/daq3/Config.in create mode 100644 package/daq3/daq3.hash create mode 100644 package/daq3/daq3.mk create mode 100644 package/darkhttpd/0001-Declare-vars-outside-of-for-loop-for-std-c90.patch create mode 100644 package/darkhttpd/Config.in create mode 100644 package/darkhttpd/S50darkhttpd create mode 100644 package/darkhttpd/darkhttpd.hash create mode 100644 package/darkhttpd/darkhttpd.mk create mode 100644 package/darkhttpd/darkhttpd.service create mode 100644 package/dash/Config.in create mode 100644 package/dash/dash.hash create mode 100644 package/dash/dash.mk create mode 100644 package/datatables-buttons/Config.in create mode 100644 package/datatables-buttons/datatables-buttons.hash create mode 100644 package/datatables-buttons/datatables-buttons.mk create mode 100644 package/datatables-fixedcolumns/Config.in create mode 100644 package/datatables-fixedcolumns/datatables-fixedcolumns.hash create mode 100644 package/datatables-fixedcolumns/datatables-fixedcolumns.mk create mode 100644 package/datatables-responsive/Config.in create mode 100644 package/datatables-responsive/datatables-responsive.hash create mode 100644 package/datatables-responsive/datatables-responsive.mk create mode 100644 package/datatables/Config.in create mode 100644 package/datatables/datatables.hash create mode 100644 package/datatables/datatables.mk create mode 100644 package/dav1d/Config.in create mode 100644 package/dav1d/dav1d.hash create mode 100644 package/dav1d/dav1d.mk create mode 100644 package/davfs2/0001-src-Makefile.am-do-not-hardcode-fstack-protector-str.patch create mode 100644 package/davfs2/Config.in create mode 100644 package/davfs2/davfs2.hash create mode 100644 package/davfs2/davfs2.mk create mode 100644 package/davici/Config.in create mode 100644 package/davici/davici.hash create mode 100644 package/davici/davici.mk create mode 100644 package/davinci-bootcount/Config.in create mode 100644 package/davinci-bootcount/davinci-bootcount.hash create mode 100644 package/davinci-bootcount/davinci-bootcount.mk create mode 100644 package/dawgdic/Config.in create mode 100644 package/dawgdic/dawgdic.hash create mode 100644 package/dawgdic/dawgdic.mk create mode 100644 package/dbus-broker/Config.in create mode 100644 package/dbus-broker/dbus-broker.hash create mode 100644 package/dbus-broker/dbus-broker.mk create mode 100644 package/dbus-broker/dbus.socket create mode 100644 package/dbus-broker/session.conf create mode 100644 package/dbus-broker/system.conf create mode 100644 package/dbus-cpp/0001-gcc4.7.patch create mode 100644 package/dbus-cpp/0002-cross-compile-tools.patch create mode 100644 package/dbus-cpp/0003-src-pipe.c-fix-build-error-with-gcc-7.x.patch create mode 100644 package/dbus-cpp/Config.in create mode 100644 package/dbus-cpp/dbus-cpp.hash create mode 100644 package/dbus-cpp/dbus-cpp.mk create mode 100644 package/dbus-cxx/Config.in create mode 100644 package/dbus-cxx/dbus-cxx.hash create mode 100644 package/dbus-cxx/dbus-cxx.mk create mode 100644 package/dbus-glib/Config.in create mode 100644 package/dbus-glib/dbus-glib.hash create mode 100644 package/dbus-glib/dbus-glib.mk create mode 100644 package/dbus-python/Config.in create mode 100644 package/dbus-python/Config.in.host create mode 100644 package/dbus-python/dbus-python.hash create mode 100644 package/dbus-python/dbus-python.mk create mode 100644 package/dbus-triggerd/Config.in create mode 100644 package/dbus-triggerd/dbus-triggerd.hash create mode 100644 package/dbus-triggerd/dbus-triggerd.mk create mode 100644 package/dbus/Config.in create mode 100644 package/dbus/S30dbus create mode 100644 package/dbus/dbus.hash create mode 100644 package/dbus/dbus.mk create mode 100644 package/dc3dd/0001-no_man.patch create mode 100644 package/dc3dd/0002-fix-autoreconf.patch create mode 100644 package/dc3dd/0003-fix-for-glibc-2.28.patch create mode 100644 package/dc3dd/Config.in create mode 100644 package/dc3dd/dc3dd.hash create mode 100644 package/dc3dd/dc3dd.mk create mode 100644 package/dcron/0001-main.c-add-newline-to-logfile-openning-error-message.patch create mode 100644 package/dcron/Config.in create mode 100644 package/dcron/S90dcron create mode 100644 package/dcron/dcron.hash create mode 100644 package/dcron/dcron.mk create mode 100644 package/dcron/dcron.service create mode 100644 package/ddrescue/Config.in create mode 100644 package/ddrescue/ddrescue.hash create mode 100644 package/ddrescue/ddrescue.mk create mode 100644 package/debianutils/Config.in create mode 100644 package/debianutils/debianutils.hash create mode 100644 package/debianutils/debianutils.mk create mode 100644 package/dehydrated/Config.in create mode 100644 package/dehydrated/dehydrated.hash create mode 100644 package/dehydrated/dehydrated.mk create mode 100644 package/dejavu/Config.in create mode 100644 package/dejavu/dejavu.hash create mode 100644 package/dejavu/dejavu.mk create mode 100644 package/delve/Config.in create mode 100644 package/delve/Config.in.host create mode 100644 package/delve/delve.hash create mode 100644 package/delve/delve.mk create mode 100644 package/desktop-file-utils/desktop-file-utils.hash create mode 100644 package/desktop-file-utils/desktop-file-utils.mk create mode 100644 package/dfu-util/Config.in create mode 100644 package/dfu-util/Config.in.host create mode 100644 package/dfu-util/dfu-util.hash create mode 100644 package/dfu-util/dfu-util.mk create mode 100644 package/dhcp/Config.in create mode 100644 package/dhcp/S80dhcp-relay create mode 100644 package/dhcp/S80dhcp-server create mode 100755 package/dhcp/dhclient-script create mode 100644 package/dhcp/dhclient.conf create mode 100644 package/dhcp/dhcp.hash create mode 100644 package/dhcp/dhcp.mk create mode 100644 package/dhcp/dhcpd.conf create mode 100644 package/dhcp/dhcpd.service create mode 100644 package/dhcpcd/Config.in create mode 100644 package/dhcpcd/S41dhcpcd create mode 100644 package/dhcpcd/dhcpcd.hash create mode 100644 package/dhcpcd/dhcpcd.mk create mode 100644 package/dhcpcd/dhcpcd.service create mode 100644 package/dhcpdump/0001-use-non-bsd-structures.patch create mode 100644 package/dhcpdump/Config.in create mode 100644 package/dhcpdump/dhcpdump.hash create mode 100644 package/dhcpdump/dhcpdump.mk create mode 100644 package/dhrystone/0001-cmdline-nruns.patch create mode 100644 package/dhrystone/0002-HZ.patch create mode 100644 package/dhrystone/0003-exit.patch create mode 100644 package/dhrystone/0004-headers.patch create mode 100644 package/dhrystone/0005-prototypes.patch create mode 100644 package/dhrystone/Config.in create mode 100644 package/dhrystone/Makefile create mode 100644 package/dhrystone/dhrystone.hash create mode 100644 package/dhrystone/dhrystone.mk create mode 100644 package/dht/0001-cmake.patch create mode 100644 package/dht/Config.in create mode 100644 package/dht/dht.hash create mode 100644 package/dht/dht.mk create mode 100644 package/dialog/Config.in create mode 100644 package/dialog/dialog.hash create mode 100644 package/dialog/dialog.mk create mode 100644 package/dieharder/0001-Do-not-use-includedir-as-include-search-path-for-bui.patch create mode 100644 package/dieharder/0002-Fix-missing-type-intptr_t.patch create mode 100644 package/dieharder/0003-Add-_GNU_SOURCE-for-uint-and-M_PI-with-musl-libc.patch create mode 100644 package/dieharder/0004-Add-static-to-inline-functions.patch create mode 100644 package/dieharder/0005-Remove-defunct-rgb_operm.patch create mode 100644 package/dieharder/Config.in create mode 100644 package/dieharder/dieharder.hash create mode 100644 package/dieharder/dieharder.mk create mode 100644 package/diffutils/0001-m4-stack-direction.m4-fix-build-on-microblazeel.patch create mode 100644 package/diffutils/0002-sigsegv-fix-build-on-or1k.patch create mode 100644 package/diffutils/0003-sys_random-port-better-to-uClibc-1-0-35.patch create mode 100644 package/diffutils/0004-sigsegv-Fix-compilation-error-on-arceb-CPUs.patch create mode 100644 package/diffutils/0005-sigsegv-Add-support-for-Linux-PowerPC-32-bit-with-mu.patch create mode 100644 package/diffutils/Config.in create mode 100644 package/diffutils/diffutils.hash create mode 100644 package/diffutils/diffutils.mk create mode 100644 package/dillo/0001-usr-local-include.patch create mode 100644 package/dillo/0002-Fix-openssl-detection.patch create mode 100644 package/dillo/0003-Support-OpenSSL-1.1.0.patch create mode 100644 package/dillo/0004-fix-build-with-gcc-10.patch create mode 100644 package/dillo/Config.in create mode 100644 package/dillo/dillo.hash create mode 100644 package/dillo/dillo.mk create mode 100644 package/ding-libs/Config.in create mode 100644 package/ding-libs/ding-libs.hash create mode 100644 package/ding-libs/ding-libs.mk create mode 100644 package/directfb-examples/0001-remove-bzero.patch create mode 100644 package/directfb-examples/Config.in create mode 100644 package/directfb-examples/directfb-examples.hash create mode 100644 package/directfb-examples/directfb-examples.mk create mode 100644 package/directfb/0001-fix-missing-davinci-voodoo-header.patch create mode 100644 package/directfb/0002-imlib2-config.patch create mode 100644 package/directfb/0003-setregion-lock.patch create mode 100644 package/directfb/0004-use-gcc-link.patch create mode 100644 package/directfb/0005-add-missing-idivine-header.patch create mode 100644 package/directfb/0006-fix-client-gfx_state-initialisation.patch create mode 100644 package/directfb/Config.in create mode 100644 package/directfb/directfb.hash create mode 100644 package/directfb/directfb.mk create mode 100644 package/dmalloc/0001-mips.patch create mode 100644 package/dmalloc/0002-return-Fix-PowerPC-assembly.patch create mode 100644 package/dmalloc/Config.in create mode 100644 package/dmalloc/dmalloc.hash create mode 100644 package/dmalloc/dmalloc.mk create mode 100644 package/dmidecode/Config.in create mode 100644 package/dmidecode/dmidecode.hash create mode 100644 package/dmidecode/dmidecode.mk create mode 100644 package/dmraid/0001-fix-compilation-under-musl.patch create mode 100644 package/dmraid/Config.in create mode 100644 package/dmraid/S20dmraid create mode 100644 package/dmraid/dmraid.hash create mode 100644 package/dmraid/dmraid.mk create mode 100644 package/dnsmasq/0001-src-option.c-fix-build-with-gcc-4.8.patch create mode 100644 package/dnsmasq/0002-Fix-46312909d9080ff8743133fbd52427b4b2213171-typo.patch create mode 100644 package/dnsmasq/0003-Fix-FTBFS-when-CONNTRACK-and-UBUS-but-not-DNSSEC-compile-options-selected.patch create mode 100644 package/dnsmasq/0004-src-pattern.c-fix-build-with-gcc-4.8.patch create mode 100644 package/dnsmasq/Config.in create mode 100644 package/dnsmasq/S80dnsmasq create mode 100644 package/dnsmasq/dnsmasq.hash create mode 100644 package/dnsmasq/dnsmasq.mk create mode 100644 package/doc-asciidoc.mk create mode 100644 package/docker-cli/Config.in create mode 100644 package/docker-cli/docker-cli.hash create mode 100644 package/docker-cli/docker-cli.mk create mode 100644 package/docker-compose/0001-Strip-up-generic-versions-and-bump-requests.patch create mode 100644 package/docker-compose/0002-Bump-texttable-from-0.9.1-to-1.6.2.patch create mode 100644 package/docker-compose/0003-support-PyYAML-up-to-5.1-version.patch create mode 100644 package/docker-compose/Config.in create mode 100644 package/docker-compose/docker-compose.hash create mode 100644 package/docker-compose/docker-compose.mk create mode 100644 package/docker-engine/Config.in create mode 100644 package/docker-engine/S60dockerd create mode 100644 package/docker-engine/docker-engine.hash create mode 100644 package/docker-engine/docker-engine.mk create mode 100644 package/docker-proxy/Config.in create mode 100644 package/docker-proxy/docker-proxy.hash create mode 100644 package/docker-proxy/docker-proxy.mk create mode 100644 package/docker/Config.in create mode 100644 package/docker/docker.hash create mode 100644 package/docker/docker.mk create mode 100644 package/domoticz/Config.in create mode 100644 package/domoticz/S99domoticz create mode 100644 package/domoticz/domoticz.hash create mode 100644 package/domoticz/domoticz.mk create mode 100644 package/domoticz/domoticz.service create mode 100644 package/doom-wad/Config.in create mode 100644 package/doom-wad/doom-wad.hash create mode 100644 package/doom-wad/doom-wad.mk create mode 100644 package/dos2unix/Config.in create mode 100644 package/dos2unix/Config.in.host create mode 100644 package/dos2unix/dos2unix.hash create mode 100644 package/dos2unix/dos2unix.mk create mode 100644 package/dosfstools/Config.in create mode 100644 package/dosfstools/Config.in.host create mode 100644 package/dosfstools/dosfstools.hash create mode 100644 package/dosfstools/dosfstools.mk create mode 100644 package/double-conversion/Config.in create mode 100644 package/double-conversion/double-conversion.hash create mode 100644 package/double-conversion/double-conversion.mk create mode 100644 package/dovecot-pigeonhole/Config.in create mode 100644 package/dovecot-pigeonhole/dovecot-pigeonhole.hash create mode 100644 package/dovecot-pigeonhole/dovecot-pigeonhole.mk create mode 100644 package/dovecot/Config.in create mode 100644 package/dovecot/dovecot.hash create mode 100644 package/dovecot/dovecot.mk create mode 100644 package/doxygen/Config.in.host create mode 100644 package/doxygen/doxygen.hash create mode 100644 package/doxygen/doxygen.mk create mode 100644 package/drbd-utils/Config.in create mode 100644 package/drbd-utils/drbd-utils.hash create mode 100644 package/drbd-utils/drbd-utils.mk create mode 100644 package/dropbear/Config.in create mode 100644 package/dropbear/S50dropbear create mode 100644 package/dropbear/dropbear.hash create mode 100644 package/dropbear/dropbear.mk create mode 100644 package/dropbear/dropbear.service create mode 100644 package/dropbear/etc-pam.d-sshd create mode 100644 package/dropwatch/Config.in create mode 100644 package/dropwatch/dropwatch.hash create mode 100644 package/dropwatch/dropwatch.mk create mode 100644 package/dstat/Config.in create mode 100644 package/dstat/dstat.hash create mode 100644 package/dstat/dstat.mk create mode 100644 package/dt-utils/Config.in create mode 100644 package/dt-utils/dt-utils.hash create mode 100644 package/dt-utils/dt-utils.mk create mode 100644 package/dt/0001-adjust-os-symlink.patch create mode 100644 package/dt/0002-dt-default-source-define.patch create mode 100644 package/dt/Config.in create mode 100644 package/dt/dt.hash create mode 100644 package/dt/dt.mk create mode 100644 package/dtach/Config.in create mode 100644 package/dtach/dtach.hash create mode 100644 package/dtach/dtach.mk create mode 100644 package/dtbocfg/Config.in create mode 100644 package/dtbocfg/dtbocfg.hash create mode 100644 package/dtbocfg/dtbocfg.mk create mode 100644 package/dtc/0001-Fix-include-guards-for-older-kernel-u-boot-sources.patch create mode 100644 package/dtc/Config.in create mode 100644 package/dtc/Config.in.host create mode 100644 package/dtc/dtc.hash create mode 100644 package/dtc/dtc.mk create mode 100644 package/dtv-scan-tables/Config.in create mode 100644 package/dtv-scan-tables/dtv-scan-tables.hash create mode 100644 package/dtv-scan-tables/dtv-scan-tables.mk create mode 100644 package/duktape/Config.in create mode 100644 package/duktape/duktape.hash create mode 100644 package/duktape/duktape.mk create mode 100644 package/duktape/duktape.pc.in create mode 100644 package/duma/0001-fix-cross-compilation.patch create mode 100644 package/duma/0002-no-tests.patch create mode 100644 package/duma/0003-fix-C++14.patch create mode 100644 package/duma/0004-Fix-build-with-latest-glibc.patch create mode 100644 package/duma/Config.in create mode 100644 package/duma/duma.hash create mode 100644 package/duma/duma.mk create mode 100644 package/dump1090/Config.in create mode 100644 package/dump1090/dump1090.hash create mode 100644 package/dump1090/dump1090.mk create mode 100644 package/dust/Config.in create mode 100644 package/dust/dust.hash create mode 100644 package/dust/dust.mk create mode 100644 package/dvb-apps/0001-Fix-generate-keynames.patch create mode 100644 package/dvb-apps/0002-Fix-compiler-warning-flags.patch create mode 100644 package/dvb-apps/0003-handle-static-shared-only-build.patch create mode 100644 package/dvb-apps/0004-Makefile-remove-test.patch create mode 100644 package/dvb-apps/0005-utils-fix-build-with-kernel-headers-4.14.patch create mode 100644 package/dvb-apps/0006-fix-glibc-2.31.patch create mode 100644 package/dvb-apps/Config.in create mode 100644 package/dvb-apps/dvb-apps.hash create mode 100644 package/dvb-apps/dvb-apps.mk create mode 100644 package/dvblast/0001-missing-lm.patch create mode 100644 package/dvblast/0002-fix-int-types.patch create mode 100644 package/dvblast/Config.in create mode 100644 package/dvblast/dvblast.hash create mode 100644 package/dvblast/dvblast.mk create mode 100644 package/dvbsnoop/0001-musl-types-h.patch create mode 100644 package/dvbsnoop/Config.in create mode 100644 package/dvbsnoop/dvbsnoop.hash create mode 100644 package/dvbsnoop/dvbsnoop.mk create mode 100644 package/dvdauthor/Config.in create mode 100644 package/dvdauthor/dvdauthor.hash create mode 100644 package/dvdauthor/dvdauthor.mk create mode 100644 package/dvdrw-tools/0001-limits.h.patch create mode 100644 package/dvdrw-tools/0002-Include-sysmacros.h-to-compile-with-newer-gcc.patch create mode 100644 package/dvdrw-tools/Config.in create mode 100644 package/dvdrw-tools/dvdrw-tools.hash create mode 100644 package/dvdrw-tools/dvdrw-tools.mk create mode 100644 package/e2fsprogs/0001-libext2fs-add-sanity-check-to-extent-manipulation.patch create mode 100644 package/e2fsprogs/Config.in create mode 100644 package/e2fsprogs/Config.in.host create mode 100644 package/e2fsprogs/e2fsprogs.hash create mode 100644 package/e2fsprogs/e2fsprogs.mk create mode 100644 package/e2tools/Config.in create mode 100644 package/e2tools/Config.in.host create mode 100644 package/e2tools/e2tools.hash create mode 100644 package/e2tools/e2tools.mk create mode 100644 package/earlyoom/0001-main.c-fix-build-with-kernel-4.3.patch create mode 100644 package/earlyoom/Config.in create mode 100644 package/earlyoom/S02earlyoom create mode 100644 package/earlyoom/earlyoom.hash create mode 100644 package/earlyoom/earlyoom.mk create mode 100644 package/easy-rsa/Config.in create mode 100644 package/easy-rsa/easy-rsa.hash create mode 100644 package/easy-rsa/easy-rsa.mk create mode 100644 package/easydbus/Config.in create mode 100644 package/easydbus/easydbus.hash create mode 100644 package/easydbus/easydbus.mk create mode 100644 package/easyframes/Config.in create mode 100644 package/easyframes/easyframes.hash create mode 100644 package/easyframes/easyframes.mk create mode 100644 package/ebtables/0001-replace-ebtables-save-perl-script-with-bash.patch create mode 100644 package/ebtables/0002-ebtables.h-restore-KERNEL_64_USERSPACE_32-checks.patch create mode 100644 package/ebtables/0003-configure.ac-add-option-enable-kernel-64-userland-32.patch create mode 100644 package/ebtables/Config.in create mode 100644 package/ebtables/ebtables.hash create mode 100644 package/ebtables/ebtables.mk create mode 100644 package/ecryptfs-utils/0001-musl.patch create mode 100644 package/ecryptfs-utils/0002-openssl110.patch create mode 100644 package/ecryptfs-utils/0003-fix-parallel-build-issue.patch create mode 100644 package/ecryptfs-utils/Config.in create mode 100644 package/ecryptfs-utils/ecryptfs-utils.hash create mode 100644 package/ecryptfs-utils/ecryptfs-utils.mk create mode 100644 package/ed/Config.in create mode 100644 package/ed/ed.hash create mode 100644 package/ed/ed.mk create mode 100644 package/edid-decode/Config.in create mode 100644 package/edid-decode/edid-decode.hash create mode 100644 package/edid-decode/edid-decode.mk create mode 100644 package/edk2-platforms/Config.in create mode 100644 package/edk2-platforms/edk2-platforms.hash create mode 100644 package/edk2-platforms/edk2-platforms.mk create mode 100644 package/efibootmgr/0001-Allow-build-with-uClibc.patch create mode 100644 package/efibootmgr/0002-remove-extra-decl.patch create mode 100644 package/efibootmgr/Config.in create mode 100644 package/efibootmgr/efibootmgr.hash create mode 100644 package/efibootmgr/efibootmgr.mk create mode 100644 package/efivar/0001-Allow-build-with-uClibc.patch create mode 100644 package/efivar/0002-dp.h-make-format_guid-handle-misaligned-guid-pointer.patch create mode 100644 package/efivar/0003-Fix-all-the-places-Werror-address-of-packed-member-c.patch create mode 100644 package/efivar/0004-Fix-another-error-of-Werror-address-of-packed-member.patch create mode 100644 package/efivar/0005-ucs2.h-remove-unused-variable.patch create mode 100644 package/efivar/0006-ucs2.h-fix-logic-that-checks-for-UCS-2-string-termin.patch create mode 100644 package/efivar/0007-gcc.specs-drop-Werror.patch create mode 100644 package/efivar/Config.in create mode 100644 package/efivar/efivar.hash create mode 100644 package/efivar/efivar.mk create mode 100644 package/efl/0001-ecore_evas-engines-drm-meson.build-use-gl_deps-as-en.patch create mode 100644 package/efl/0002-ecore_evas-engines-drm-meson.build-fix-gl_drm-includ.patch create mode 100644 package/efl/0003-ecore_fb-fix-build-with-tslib.patch create mode 100644 package/efl/Config.in create mode 100644 package/efl/efl.hash create mode 100644 package/efl/efl.mk create mode 100644 package/eigen/0001-Adds-new-CMake-Options-for-controlling-build-components.patch create mode 100644 package/eigen/Config.in create mode 100644 package/eigen/eigen.hash create mode 100644 package/eigen/eigen.mk create mode 100644 package/ejabberd/0001-Makefile.in-do-not-download-or-compile-dependencies.patch create mode 100644 package/ejabberd/0002-fix-ejabberdctl.patch create mode 100644 package/ejabberd/0003-correct-includes.patch create mode 100644 package/ejabberd/Config.in create mode 100644 package/ejabberd/S50ejabberd create mode 100755 package/ejabberd/check-erlang-lib create mode 100644 package/ejabberd/ejabberd.hash create mode 100644 package/ejabberd/ejabberd.mk create mode 100644 package/elf2flt/0001-elf2flt-handle-binutils-2.34.patch create mode 100644 package/elf2flt/0002-elf2flt.ld-reinstate-32-byte-alignment-for-.data-sec.patch create mode 100644 package/elf2flt/0003-elf2flt-add-riscv-64-bits-support.patch create mode 100644 package/elf2flt/0004-elf2flt-create-a-common-helper-function.patch create mode 100644 package/elf2flt/0005-elf2flt-fix-fatal-error-regression-on-m68k-xtensa-ri.patch create mode 100644 package/elf2flt/elf2flt.hash create mode 100644 package/elf2flt/elf2flt.mk create mode 100644 package/elftosb/0001-fixes-includes.patch create mode 100644 package/elftosb/0002-force-cxx-compiler.patch create mode 100644 package/elftosb/elftosb.hash create mode 100644 package/elftosb/elftosb.mk create mode 100644 package/elfutils/0001-Add-a-enable-disable-progs-configure-option.patch create mode 100644 package/elfutils/0002-Really-make-Werror-conditional-to-BUILD_WERROR.patch create mode 100644 package/elfutils/Config.in create mode 100644 package/elfutils/elfutils.hash create mode 100644 package/elfutils/elfutils.mk create mode 100644 package/elixir/elixir.hash create mode 100644 package/elixir/elixir.mk create mode 100644 package/ell/Config.in create mode 100644 package/ell/ell.hash create mode 100644 package/ell/ell.mk create mode 100644 package/embiggen-disk/Config.in create mode 100644 package/embiggen-disk/embiggen-disk.hash create mode 100644 package/embiggen-disk/embiggen-disk.mk create mode 100644 package/emlog/Config.in create mode 100644 package/emlog/emlog.hash create mode 100644 package/emlog/emlog.mk create mode 100644 package/empty/0001-respect-LDFLAGS.patch create mode 100644 package/empty/Config.in create mode 100644 package/empty/empty.hash create mode 100644 package/empty/empty.mk create mode 100644 package/enchant/Config.in create mode 100644 package/enchant/enchant.hash create mode 100644 package/enchant/enchant.mk create mode 100644 package/enet/Config.in create mode 100644 package/enet/enet.hash create mode 100644 package/enet/enet.mk create mode 100644 package/enlightenment/Config.in create mode 100644 package/enlightenment/enlightenment.hash create mode 100644 package/enlightenment/enlightenment.mk create mode 100644 package/enscript/Config.in create mode 100644 package/enscript/enscript.hash create mode 100644 package/enscript/enscript.mk create mode 100644 package/environment-setup/Config.in.host create mode 100644 package/environment-setup/environment-setup create mode 100644 package/environment-setup/environment-setup.mk create mode 100644 package/erlang-base64url/Config.in create mode 100644 package/erlang-base64url/erlang-base64url.hash create mode 100644 package/erlang-base64url/erlang-base64url.mk create mode 100644 package/erlang-eimp/Config.in create mode 100644 package/erlang-eimp/erlang-eimp.hash create mode 100644 package/erlang-eimp/erlang-eimp.mk create mode 100644 package/erlang-goldrush/Config.in create mode 100644 package/erlang-goldrush/erlang-goldrush.hash create mode 100644 package/erlang-goldrush/erlang-goldrush.mk create mode 100644 package/erlang-idna/Config.in create mode 100644 package/erlang-idna/erlang-idna.hash create mode 100644 package/erlang-idna/erlang-idna.mk create mode 100644 package/erlang-jiffy/Config.in create mode 100644 package/erlang-jiffy/erlang-jiffy.hash create mode 100644 package/erlang-jiffy/erlang-jiffy.mk create mode 100644 package/erlang-jose/Config.in create mode 100644 package/erlang-jose/erlang-jose.hash create mode 100644 package/erlang-jose/erlang-jose.mk create mode 100644 package/erlang-lager/Config.in create mode 100644 package/erlang-lager/erlang-lager.hash create mode 100644 package/erlang-lager/erlang-lager.mk create mode 100644 package/erlang-p1-acme/Config.in create mode 100644 package/erlang-p1-acme/erlang-p1-acme.hash create mode 100644 package/erlang-p1-acme/erlang-p1-acme.mk create mode 100644 package/erlang-p1-cache-tab/Config.in create mode 100644 package/erlang-p1-cache-tab/erlang-p1-cache-tab.hash create mode 100644 package/erlang-p1-cache-tab/erlang-p1-cache-tab.mk create mode 100644 package/erlang-p1-mqtree/Config.in create mode 100644 package/erlang-p1-mqtree/erlang-p1-mqtree.hash create mode 100644 package/erlang-p1-mqtree/erlang-p1-mqtree.mk create mode 100644 package/erlang-p1-oauth2/Config.in create mode 100644 package/erlang-p1-oauth2/erlang-p1-oauth2.hash create mode 100644 package/erlang-p1-oauth2/erlang-p1-oauth2.mk create mode 100644 package/erlang-p1-pkix/Config.in create mode 100644 package/erlang-p1-pkix/erlang-p1-pkix.hash create mode 100644 package/erlang-p1-pkix/erlang-p1-pkix.mk create mode 100644 package/erlang-p1-sip/0001-correct-include.patch create mode 100644 package/erlang-p1-sip/Config.in create mode 100644 package/erlang-p1-sip/erlang-p1-sip.hash create mode 100644 package/erlang-p1-sip/erlang-p1-sip.mk create mode 100644 package/erlang-p1-stringprep/Config.in create mode 100644 package/erlang-p1-stringprep/erlang-p1-stringprep.hash create mode 100644 package/erlang-p1-stringprep/erlang-p1-stringprep.mk create mode 100644 package/erlang-p1-stun/Config.in create mode 100644 package/erlang-p1-stun/erlang-p1-stun.hash create mode 100644 package/erlang-p1-stun/erlang-p1-stun.mk create mode 100644 package/erlang-p1-tls/Config.in create mode 100644 package/erlang-p1-tls/erlang-p1-tls.hash create mode 100644 package/erlang-p1-tls/erlang-p1-tls.mk create mode 100644 package/erlang-p1-utils/Config.in create mode 100644 package/erlang-p1-utils/erlang-p1-utils.hash create mode 100644 package/erlang-p1-utils/erlang-p1-utils.mk create mode 100644 package/erlang-p1-xml/Config.in create mode 100644 package/erlang-p1-xml/erlang-p1-xml.hash create mode 100644 package/erlang-p1-xml/erlang-p1-xml.mk create mode 100644 package/erlang-p1-xmpp/0001-fix-includes.patch create mode 100644 package/erlang-p1-xmpp/Config.in create mode 100644 package/erlang-p1-xmpp/erlang-p1-xmpp.hash create mode 100644 package/erlang-p1-xmpp/erlang-p1-xmpp.mk create mode 100644 package/erlang-p1-yaml/Config.in create mode 100644 package/erlang-p1-yaml/erlang-p1-yaml.hash create mode 100644 package/erlang-p1-yaml/erlang-p1-yaml.mk create mode 100644 package/erlang-p1-yconf/Config.in create mode 100644 package/erlang-p1-yconf/erlang-p1-yconf.hash create mode 100644 package/erlang-p1-yconf/erlang-p1-yconf.mk create mode 100644 package/erlang-p1-zlib/Config.in create mode 100644 package/erlang-p1-zlib/erlang-p1-zlib.hash create mode 100644 package/erlang-p1-zlib/erlang-p1-zlib.mk create mode 100644 package/erlang-rebar/0001-src-rebar_port_compiler-add-fPIC-to-LDFLAGS-by-defau.patch create mode 100644 package/erlang-rebar/erlang-rebar.hash create mode 100644 package/erlang-rebar/erlang-rebar.mk create mode 100644 package/erlang/0001-erts-ethread-instruct-libatomic_ops-we-do-require-CA.patch create mode 100644 package/erlang/0002-erts-emulator-reorder-inclued-headers-paths.patch create mode 100644 package/erlang/Config.in create mode 100644 package/erlang/erlang.hash create mode 100644 package/erlang/erlang.mk create mode 100644 package/erofs-utils/Config.in create mode 100644 package/erofs-utils/Config.in.host create mode 100644 package/erofs-utils/erofs-utils.hash create mode 100644 package/erofs-utils/erofs-utils.mk create mode 100644 package/espeak/0001-Fix-build-of-shared-library-on-architectures-needing.patch create mode 100644 package/espeak/0002-tr_languages-cast-string_ordinal-init-values.patch create mode 100644 package/espeak/Config.in create mode 100644 package/espeak/espeak.hash create mode 100644 package/espeak/espeak.mk create mode 100644 package/ethtool/Config.in create mode 100644 package/ethtool/ethtool.hash create mode 100644 package/ethtool/ethtool.mk create mode 100644 package/eudev/0001-Only-use-pragma-for-ignoring-diagnostics-if-.patch create mode 100644 package/eudev/Config.in create mode 100644 package/eudev/Config.in.host create mode 100644 package/eudev/S10udev create mode 100644 package/eudev/eudev.hash create mode 100644 package/eudev/eudev.mk create mode 100644 package/ev3dev-linux-drivers/Config.in create mode 100644 package/ev3dev-linux-drivers/ev3dev-linux-drivers.mk create mode 100644 package/ev3dev-linux-drivers/lego-linux-drivers.hash create mode 100644 package/evemu/0001-Include-limits.h-for-PATH_MAX.patch create mode 100644 package/evemu/0002-evemu-Update-struct-input_event.patch create mode 100644 package/evemu/0003-src-evemu.c-fix-build-with-kernels-4.16.patch create mode 100644 package/evemu/0004-src-evemu.c-fix-build-with-kernels-4.16.patch create mode 100644 package/evemu/Config.in create mode 100644 package/evemu/evemu.hash create mode 100644 package/evemu/evemu.mk create mode 100644 package/evtest/Config.in create mode 100644 package/evtest/evtest.hash create mode 100644 package/evtest/evtest.mk create mode 100644 package/execline/Config.in create mode 100644 package/execline/execline.hash create mode 100644 package/execline/execline.mk create mode 100644 package/exempi/Config.in create mode 100644 package/exempi/exempi.hash create mode 100644 package/exempi/exempi.mk create mode 100644 package/exfat-utils/Config.in create mode 100644 package/exfat-utils/exfat-utils.hash create mode 100644 package/exfat-utils/exfat-utils.mk create mode 100644 package/exfat/Config.in create mode 100644 package/exfat/exfat.hash create mode 100644 package/exfat/exfat.mk create mode 100644 package/exfatprogs/Config.in create mode 100644 package/exfatprogs/Config.in.host create mode 100644 package/exfatprogs/exfatprogs.hash create mode 100644 package/exfatprogs/exfatprogs.mk create mode 100644 package/exim/0001-Build-buildconfig-for-the-host.patch create mode 100644 package/exim/0002-Don-t-make-backup-copies-of-installed-files.patch create mode 100644 package/exim/0003-Skip-version-check-and-symlink-installation.patch create mode 100644 package/exim/0004-exim_lock-fix-lstat-related-build-errors.patch create mode 100644 package/exim/0005-sieve-fix-build-errors.patch create mode 100644 package/exim/Config.in create mode 100644 package/exim/S86exim create mode 100644 package/exim/exim.hash create mode 100644 package/exim/exim.mk create mode 100644 package/exim/exim.service create mode 100644 package/exiv2/0001-add-BUILD_WITH_STACK_PROTECTOR-option.patch create mode 100644 package/exiv2/Config.in create mode 100644 package/exiv2/exiv2.hash create mode 100644 package/exiv2/exiv2.mk create mode 100644 package/expat/0001-Ensure-raw-tagnames-are-safe-exiting-internalEntityParser.patch create mode 100644 package/expat/Config.in create mode 100644 package/expat/expat.hash create mode 100644 package/expat/expat.mk create mode 100644 package/expect/0001-enable-cross-compilation.patch create mode 100644 package/expect/0002-allow-tcl-build-directory.patch create mode 100644 package/expect/Config.in create mode 100644 package/expect/expect.hash create mode 100644 package/expect/expect.mk create mode 100644 package/explorercanvas/Config.in create mode 100644 package/explorercanvas/explorercanvas.hash create mode 100644 package/explorercanvas/explorercanvas.mk create mode 100644 package/f2fs-tools/Config.in create mode 100644 package/f2fs-tools/Config.in.host create mode 100644 package/f2fs-tools/f2fs-tools.hash create mode 100644 package/f2fs-tools/f2fs-tools.mk create mode 100644 package/faad2/Config.in create mode 100644 package/faad2/faad2.hash create mode 100644 package/faad2/faad2.mk create mode 100644 package/faifa/0001-sha2.c-explicitly-include-endian.h-for-BYTE_ORDER-ma.patch create mode 100644 package/faifa/0002-hpav_cfg.c-do-not-include-linux-if_ether.h-for-musl-.patch create mode 100644 package/faifa/0003-Makefile.in-fix-asbolute-symlink-of-libfaifa.so.patch create mode 100644 package/faifa/Config.in create mode 100644 package/faifa/faifa.hash create mode 100644 package/faifa/faifa.mk create mode 100644 package/fail2ban/0001-fixed-possible-RCE-vulnerability-unset-escape-variable.patch create mode 100644 package/fail2ban/0002-fix-gh-3098-build-fails-with-error-in-fail2ban-setup-command.patch create mode 100644 package/fail2ban/Config.in create mode 100644 package/fail2ban/S60fail2ban create mode 100644 package/fail2ban/fail2ban.hash create mode 100644 package/fail2ban/fail2ban.mk create mode 100755 package/fakedate/fakedate create mode 100644 package/fakedate/fakedate.mk create mode 100644 package/fakeroot/0001-fix-prototype-generation.patch create mode 100644 package/fakeroot/fakeroot.hash create mode 100644 package/fakeroot/fakeroot.mk create mode 100644 package/faketime/Config.in.host create mode 100644 package/faketime/faketime.hash create mode 100644 package/faketime/faketime.mk create mode 100644 package/falcosecurity-libs/0001-cmake-Permit-setting-GRPC_CPP_PLUGIN.patch create mode 100644 package/falcosecurity-libs/Config.in create mode 100644 package/falcosecurity-libs/falcosecurity-libs.hash create mode 100644 package/falcosecurity-libs/falcosecurity-libs.mk create mode 100644 package/fan-ctrl/Config.in create mode 100644 package/fan-ctrl/fan-ctrl.hash create mode 100644 package/fan-ctrl/fan-ctrl.mk create mode 100644 package/fastd/Config.in create mode 100644 package/fastd/fastd.hash create mode 100644 package/fastd/fastd.mk create mode 100644 package/fatcat/Config.in.host create mode 100644 package/fatcat/fatcat.hash create mode 100644 package/fatcat/fatcat.mk create mode 100644 package/fb-test-app/Config.in create mode 100644 package/fb-test-app/fb-test-app.hash create mode 100644 package/fb-test-app/fb-test-app.mk create mode 100644 package/fbdump/Config.in create mode 100644 package/fbdump/fbdump.hash create mode 100644 package/fbdump/fbdump.mk create mode 100644 package/fbgrab/0001-fix-static-build.patch create mode 100644 package/fbgrab/Config.in create mode 100644 package/fbgrab/fbgrab.hash create mode 100644 package/fbgrab/fbgrab.mk create mode 100644 package/fbset/0001-Fix-musl-compile.patch create mode 100644 package/fbset/Config.in create mode 100644 package/fbset/fbset.hash create mode 100644 package/fbset/fbset.mk create mode 100644 package/fbterm/0001-fbio.cpp-improxy.cpp-fbterm.cpp-fix-musl-compile.patch create mode 100644 package/fbterm/0002-mouse.cpp-fix-musl-compile.patch create mode 100644 package/fbterm/0003-C++11-compliance.patch create mode 100644 package/fbterm/0004-iconv.patch create mode 100644 package/fbterm/Config.in create mode 100644 package/fbterm/fbterm.hash create mode 100644 package/fbterm/fbterm.mk create mode 100644 package/fbtft/Config.in create mode 100644 package/fbtft/fbtft.hash create mode 100644 package/fbtft/fbtft.mk create mode 100644 package/fbv/0001-cross.patch create mode 100644 package/fbv/0002-fix-24bpp-support-on-big-endian.patch create mode 100644 package/fbv/0003-fix-bgr555.patch create mode 100644 package/fbv/0004-giflib.patch create mode 100644 package/fbv/0005-include.patch create mode 100644 package/fbv/0006-libpng15.patch create mode 100644 package/fbv/0007-gif.c-fic-build-with-gcc-10.patch create mode 100644 package/fbv/Config.in create mode 100644 package/fbv/fbv.hash create mode 100644 package/fbv/fbv.mk create mode 100644 package/fcgiwrap/0001-use-LIBS-from-configure.patch create mode 100644 package/fcgiwrap/0002-link-with-libsystemd-instead-of-libsystemd-daemon.patch create mode 100644 package/fcgiwrap/Config.in create mode 100644 package/fcgiwrap/fcgiwrap.hash create mode 100644 package/fcgiwrap/fcgiwrap.mk create mode 100644 package/fconfig/Config.in create mode 100644 package/fconfig/fconfig.hash create mode 100644 package/fconfig/fconfig.mk create mode 100644 package/fdk-aac/Config.in create mode 100644 package/fdk-aac/fdk-aac.hash create mode 100644 package/fdk-aac/fdk-aac.mk create mode 100644 package/feh/Config.in create mode 100644 package/feh/feh.hash create mode 100644 package/feh/feh.mk create mode 100644 package/fetchmail/0001-configure.ac-fix-cross-compilation-with-openssl.patch create mode 100644 package/fetchmail/Config.in create mode 100644 package/fetchmail/fetchmail.hash create mode 100644 package/fetchmail/fetchmail.mk create mode 100644 package/ffmpeg/0001-swscale-x86-yuv2rgb-Fix-build-without-SSSE3.patch create mode 100644 package/ffmpeg/0002-avcodec-vaapi_h264-skip-decode-if-pic-has-no-slices.patch create mode 100644 package/ffmpeg/0003-libavutil-Fix-mips-build.patch create mode 100644 package/ffmpeg/0004-configure-add-extralibs-to-extralibs_xxx.patch create mode 100644 package/ffmpeg/Config.in create mode 100644 package/ffmpeg/ffmpeg.hash create mode 100644 package/ffmpeg/ffmpeg.mk create mode 100644 package/fftw/Config.in create mode 100644 package/fftw/fftw-double/Config.in create mode 120000 package/fftw/fftw-double/fftw-double.hash create mode 100644 package/fftw/fftw-double/fftw-double.mk create mode 100644 package/fftw/fftw-long-double/Config.in create mode 120000 package/fftw/fftw-long-double/fftw-long-double.hash create mode 100644 package/fftw/fftw-long-double/fftw-long-double.mk create mode 100644 package/fftw/fftw-quad/Config.in create mode 120000 package/fftw/fftw-quad/fftw-quad.hash create mode 100644 package/fftw/fftw-quad/fftw-quad.mk create mode 100644 package/fftw/fftw-single/Config.in create mode 120000 package/fftw/fftw-single/fftw-single.hash create mode 100644 package/fftw/fftw-single/fftw-single.mk create mode 100644 package/fftw/fftw.hash create mode 100644 package/fftw/fftw.mk create mode 100644 package/ficl/0001-fix-Makefile.patch create mode 100644 package/ficl/0002-Makefile.linux-pass-LDFLAGS.patch create mode 100644 package/ficl/Config.in create mode 100644 package/ficl/ficl.hash create mode 100644 package/ficl/ficl.mk create mode 100644 package/file/Config.in create mode 100644 package/file/file.hash create mode 100644 package/file/file.mk create mode 100644 package/filemq/Config.in create mode 100644 package/filemq/filemq.hash create mode 100644 package/filemq/filemq.mk create mode 100644 package/findutils/Config.in create mode 100644 package/findutils/findutils.hash create mode 100644 package/findutils/findutils.mk create mode 100644 package/fio/Config.in create mode 100644 package/fio/fio.hash create mode 100644 package/fio/fio.mk create mode 100644 package/firmware-utils/Config.in create mode 100644 package/firmware-utils/Config.in.host create mode 100644 package/firmware-utils/firmware-utils.hash create mode 100644 package/firmware-utils/firmware-utils.mk create mode 100644 package/flac/0001-Fix-uclibc-build.patch create mode 100644 package/flac/Config.in create mode 100644 package/flac/flac.hash create mode 100644 package/flac/flac.mk create mode 100644 package/flann/0001-src-cpp-fix-cmake-3.11-build.patch create mode 100644 package/flann/Config.in create mode 100644 package/flann/flann.hash create mode 100644 package/flann/flann.mk create mode 100644 package/flannel/Config.in create mode 100644 package/flannel/flannel.hash create mode 100644 package/flannel/flannel.mk create mode 100644 package/flare-engine/Config.in create mode 100644 package/flare-engine/flare-engine.hash create mode 100644 package/flare-engine/flare-engine.mk create mode 100644 package/flare-game/Config.in create mode 100644 package/flare-game/flare-game.hash create mode 100644 package/flare-game/flare-game.mk create mode 100644 package/flashbench/Config.in create mode 100644 package/flashbench/flashbench.hash create mode 100644 package/flashbench/flashbench.mk create mode 100644 package/flashrom/0001-Makefile-Fix-building-on-AArch64-NixOS.patch create mode 100644 package/flashrom/Config.in create mode 100644 package/flashrom/flashrom.hash create mode 100644 package/flashrom/flashrom.mk create mode 100644 package/flatbuffers/0001-include-flatbuffers-base.h-fix-build-on-musl.patch create mode 100644 package/flatbuffers/Config.in create mode 100644 package/flatbuffers/flatbuffers.hash create mode 100644 package/flatbuffers/flatbuffers.mk create mode 100644 package/flatcc/Config.in create mode 100644 package/flatcc/flatcc.hash create mode 100644 package/flatcc/flatcc.mk create mode 100644 package/flex/0001-build-AC_USE_SYSTEM_EXTENSIONS-in-configure.ac.patch create mode 100644 package/flex/0002-build-make-it-possible-to-disable-the-build-of-the-f.patch create mode 100644 package/flex/0003-build-make-it-possible-to-disable-the-build-of-the-d.patch create mode 100644 package/flex/Config.in create mode 100644 package/flex/flex.hash create mode 100644 package/flex/flex.mk create mode 100644 package/flickcurl/Config.in create mode 100644 package/flickcurl/flickcurl.hash create mode 100644 package/flickcurl/flickcurl.mk create mode 100644 package/flite/0001-fix-alsa-static.patch create mode 100644 package/flite/Config.in create mode 100644 package/flite/flite.hash create mode 100644 package/flite/flite.mk create mode 100644 package/flot/Config.in create mode 100644 package/flot/flot.hash create mode 100644 package/flot/flot.mk create mode 100644 package/fltk/0001-disable-tests.patch create mode 100644 package/fltk/Config.in create mode 100644 package/fltk/fltk.hash create mode 100644 package/fltk/fltk.mk create mode 100644 package/fluid-soundfont/Config.in create mode 100644 package/fluid-soundfont/fluid-soundfont.hash create mode 100644 package/fluid-soundfont/fluid-soundfont.mk create mode 100644 package/fluidsynth/Config.in create mode 100644 package/fluidsynth/fluidsynth.hash create mode 100644 package/fluidsynth/fluidsynth.mk create mode 100644 package/fluxbox/0001-fixes-bug-1138.patch create mode 100644 package/fluxbox/Config.in create mode 100644 package/fluxbox/fluxbox.hash create mode 100644 package/fluxbox/fluxbox.mk create mode 100644 package/fluxbox/xsession create mode 100644 package/fmc/Config.in create mode 100644 package/fmc/fmc.hash create mode 100644 package/fmc/fmc.mk create mode 100644 package/fmlib/Config.in create mode 100644 package/fmlib/fmlib.hash create mode 100644 package/fmlib/fmlib.mk create mode 100644 package/fmt/Config.in create mode 100644 package/fmt/fmt.hash create mode 100644 package/fmt/fmt.mk create mode 100644 package/fmtools/Config.in create mode 100644 package/fmtools/fmtools.hash create mode 100644 package/fmtools/fmtools.mk create mode 100644 package/font-awesome/Config.in create mode 100644 package/font-awesome/font-awesome.hash create mode 100644 package/font-awesome/font-awesome.mk create mode 100644 package/fontconfig/0001-Fix-the-build-issue-with-enable-static.patch create mode 100644 package/fontconfig/0002-add-pthread-as-a-dependency-of-a-static-lib.patch create mode 100644 package/fontconfig/Config.in create mode 100644 package/fontconfig/fontconfig.hash create mode 100644 package/fontconfig/fontconfig.mk create mode 100644 package/fping/Config.in create mode 100644 package/fping/fping.hash create mode 100644 package/fping/fping.mk create mode 100644 package/freeipmi/0001-libfreeipmi-rename-md2-and-md5-functions-macros.patch create mode 100644 package/freeipmi/Config.in create mode 100644 package/freeipmi/freeipmi.hash create mode 100644 package/freeipmi/freeipmi.mk create mode 100644 package/freeradius-client/0001-fix-for-nettle.patch create mode 100644 package/freeradius-client/Config.in create mode 100644 package/freeradius-client/freeradius-client.hash create mode 100644 package/freeradius-client/freeradius-client.mk create mode 100644 package/freeradius-server/0001-jlibtool-cross-with-host-CC.patch create mode 100644 package/freeradius-server/0002-configure.ac-add-option-for-libcap.patch create mode 100644 package/freeradius-server/0003-configure.ac-allow-cross-compilation.patch create mode 100644 package/freeradius-server/0004-fix-error-for-expansion-of-macro-in-thread.h.patch create mode 100644 package/freeradius-server/0005-modules-rlm_sql-remove-mysql_version.h.patch create mode 100644 package/freeradius-server/0006-configure.ac-add-option-for-pcap.patch create mode 100644 package/freeradius-server/0007-configure.ac-add-option-for-collectdclient.patch create mode 100644 package/freeradius-server/0008-configure.ac-try-execinfo-in-libc-before-searching-l.patch create mode 100644 package/freeradius-server/Config.in create mode 100644 package/freeradius-server/freeradius-server.hash create mode 100644 package/freeradius-server/freeradius-server.mk create mode 100644 package/freeradius-server/radiusd.service create mode 100644 package/freerdp/0001-Fix-variable-declaration-in-loop.patch create mode 100644 package/freerdp/0002-Fixed-variable-declaration-in-loop.patch create mode 100644 package/freerdp/0003-winpr-include-winpr-file.h-fix-build-on-uclibc.patch create mode 100644 package/freerdp/Config.in create mode 100644 package/freerdp/freerdp.hash create mode 100644 package/freerdp/freerdp.mk create mode 100644 package/freescale-imx/Config.in create mode 100644 package/freescale-imx/firmware-imx/Config.in create mode 100644 package/freescale-imx/firmware-imx/firmware-imx.hash create mode 100644 package/freescale-imx/firmware-imx/firmware-imx.mk create mode 100644 package/freescale-imx/freescale-imx.mk create mode 100644 package/freescale-imx/gpu-amd-bin-mx51/Config.in create mode 100644 package/freescale-imx/gpu-amd-bin-mx51/egl.pc create mode 100644 package/freescale-imx/gpu-amd-bin-mx51/glesv2.pc create mode 100644 package/freescale-imx/gpu-amd-bin-mx51/gpu-amd-bin-mx51.hash create mode 100644 package/freescale-imx/gpu-amd-bin-mx51/gpu-amd-bin-mx51.mk create mode 100644 package/freescale-imx/gpu-amd-bin-mx51/vg.pc create mode 100644 package/freescale-imx/imx-alsa-plugins/Config.in create mode 100644 package/freescale-imx/imx-alsa-plugins/imx-alsa-plugins.hash create mode 100644 package/freescale-imx/imx-alsa-plugins/imx-alsa-plugins.mk create mode 100644 package/freescale-imx/imx-codec/Config.in create mode 100644 package/freescale-imx/imx-codec/imx-codec.hash create mode 100644 package/freescale-imx/imx-codec/imx-codec.mk create mode 100644 package/freescale-imx/imx-gpu-g2d/Config.in create mode 100644 package/freescale-imx/imx-gpu-g2d/imx-gpu-g2d.hash create mode 100644 package/freescale-imx/imx-gpu-g2d/imx-gpu-g2d.mk create mode 100644 package/freescale-imx/imx-gpu-viv/Config.in create mode 100644 package/freescale-imx/imx-gpu-viv/imx-gpu-viv.hash create mode 100644 package/freescale-imx/imx-gpu-viv/imx-gpu-viv.mk create mode 100644 package/freescale-imx/imx-kobs/0001-Fix-musl-build.patch create mode 100644 package/freescale-imx/imx-kobs/0002-Fix-build-for-recent-toolchains.patch create mode 100644 package/freescale-imx/imx-kobs/Config.in create mode 100644 package/freescale-imx/imx-kobs/imx-kobs.hash create mode 100644 package/freescale-imx/imx-kobs/imx-kobs.mk create mode 100644 package/freescale-imx/imx-lib/Config.in create mode 100644 package/freescale-imx/imx-lib/imx-lib.hash create mode 100644 package/freescale-imx/imx-lib/imx-lib.mk create mode 100644 package/freescale-imx/imx-m4fwloader/Config.in create mode 100644 package/freescale-imx/imx-m4fwloader/imx-m4fwloader.hash create mode 100644 package/freescale-imx/imx-m4fwloader/imx-m4fwloader.mk create mode 100644 package/freescale-imx/imx-parser/Config.in create mode 100644 package/freescale-imx/imx-parser/imx-parser.hash create mode 100644 package/freescale-imx/imx-parser/imx-parser.mk create mode 100644 package/freescale-imx/imx-sc-firmware/Config.in create mode 100644 package/freescale-imx/imx-sc-firmware/imx-sc-firmware.hash create mode 100644 package/freescale-imx/imx-sc-firmware/imx-sc-firmware.mk create mode 100644 package/freescale-imx/imx-seco/Config.in create mode 100644 package/freescale-imx/imx-seco/imx-seco.hash create mode 100644 package/freescale-imx/imx-seco/imx-seco.mk create mode 100644 package/freescale-imx/imx-uuc/Config.in create mode 100644 package/freescale-imx/imx-uuc/S80imx-uuc create mode 100644 package/freescale-imx/imx-uuc/imx-uuc.hash create mode 100644 package/freescale-imx/imx-uuc/imx-uuc.mk create mode 100644 package/freescale-imx/imx-uuc/imx-uuc.service create mode 100644 package/freescale-imx/imx-vpu-hantro-vc/Config.in create mode 100644 package/freescale-imx/imx-vpu-hantro-vc/imx-vpu-hantro-vc.hash create mode 100644 package/freescale-imx/imx-vpu-hantro-vc/imx-vpu-hantro-vc.mk create mode 100644 package/freescale-imx/imx-vpu-hantro/0001-Fix-ion.h-header-inclusion-to-be-standard.patch create mode 100644 package/freescale-imx/imx-vpu-hantro/0002-Fix-build-with-uclibc-toolchain.patch create mode 100644 package/freescale-imx/imx-vpu-hantro/Config.in create mode 100644 package/freescale-imx/imx-vpu-hantro/imx-vpu-hantro.hash create mode 100644 package/freescale-imx/imx-vpu-hantro/imx-vpu-hantro.mk create mode 100644 package/freescale-imx/imx-vpu/Config.in create mode 100644 package/freescale-imx/imx-vpu/imx-vpu.hash create mode 100644 package/freescale-imx/imx-vpu/imx-vpu.mk create mode 100644 package/freescale-imx/imx-vpuwrap/Config.in create mode 100644 package/freescale-imx/imx-vpuwrap/imx-vpuwrap.hash create mode 100644 package/freescale-imx/imx-vpuwrap/imx-vpuwrap.mk create mode 100644 package/freescale-imx/kernel-module-imx-gpu-viv/Config.in create mode 100644 package/freescale-imx/kernel-module-imx-gpu-viv/kernel-module-imx-gpu-viv.hash create mode 100644 package/freescale-imx/kernel-module-imx-gpu-viv/kernel-module-imx-gpu-viv.mk create mode 100644 package/freescale-imx/libz160/Config.in create mode 100644 package/freescale-imx/libz160/libz160.hash create mode 100644 package/freescale-imx/libz160/libz160.mk create mode 100644 package/freeswitch-mod-bcg729/Config.in create mode 100644 package/freeswitch-mod-bcg729/freeswitch-mod-bcg729.hash create mode 100644 package/freeswitch-mod-bcg729/freeswitch-mod-bcg729.mk create mode 100644 package/freeswitch/0001-fix-build-SWITCH_BYTE_ORDER-__BIG_ENDIAN.patch create mode 100644 package/freeswitch/0002-core-fix--disable-libyuv.patch create mode 100644 package/freeswitch/0003-libs-srtp-crypto-hash-hmac_ossl.c-fix-build-with-lib.patch create mode 100644 package/freeswitch/Config.in create mode 100644 package/freeswitch/freeswitch.hash create mode 100644 package/freeswitch/freeswitch.mk create mode 100644 package/freetype/Config.in create mode 100644 package/freetype/freetype.hash create mode 100644 package/freetype/freetype.mk create mode 100644 package/frotz/Config.in create mode 100644 package/frotz/frotz.hash create mode 100644 package/frotz/frotz.mk create mode 100644 package/frr/Config.in create mode 100644 package/frr/S50frr create mode 100644 package/frr/frr.hash create mode 100644 package/frr/frr.mk create mode 100644 package/fscryptctl/Config.in create mode 100644 package/fscryptctl/fscryptctl.hash create mode 100644 package/fscryptctl/fscryptctl.mk create mode 100644 package/fstrcmp/0001-disable-rpath.patch create mode 100644 package/fstrcmp/Config.in create mode 100644 package/fstrcmp/fstrcmp.hash create mode 100644 package/fstrcmp/fstrcmp.mk create mode 100644 package/fswebcam/Config.in create mode 100644 package/fswebcam/fswebcam.hash create mode 100644 package/fswebcam/fswebcam.mk create mode 100644 package/ftop/0001-overflow.patch create mode 100644 package/ftop/Config.in create mode 100644 package/ftop/ftop.hash create mode 100644 package/ftop/ftop.mk create mode 100644 package/fuse-overlayfs/Config.in create mode 100644 package/fuse-overlayfs/fuse-overlayfs.hash create mode 100644 package/fuse-overlayfs/fuse-overlayfs.mk create mode 100644 package/fwts/0001-build-do-not-use-Werror.patch create mode 100644 package/fwts/Config.in create mode 100644 package/fwts/fwts.hash create mode 100644 package/fwts/fwts.mk create mode 100644 package/fwup/Config.in create mode 100644 package/fwup/Config.in.host create mode 100644 package/fwup/fwup.hash create mode 100644 package/fwup/fwup.mk create mode 100644 package/fxload/0001-fix-static-build.patch create mode 100644 package/fxload/Config.in create mode 100644 package/fxload/fxload.hash create mode 100644 package/fxload/fxload.mk create mode 100644 package/gamin/0001-no-abstract-sockets.patch create mode 100644 package/gamin/0002-no-const-return.patch create mode 100644 package/gamin/0003-fix-missing-PTHREAD_MUTEX_RECURSIVE_NP.patch create mode 100644 package/gamin/Config.in create mode 100644 package/gamin/gamin.hash create mode 100644 package/gamin/gamin.mk create mode 100644 package/gauche/Config.in create mode 100644 package/gauche/gauche.hash create mode 100644 package/gauche/gauche.mk create mode 100644 package/gawk/0001-no-versioned.patch create mode 100644 package/gawk/Config.in create mode 100644 package/gawk/gawk.hash create mode 100644 package/gawk/gawk.mk create mode 100644 package/gcc/10.4.0/0001-Revert-re-PR-target-92095-internal-error-with-O1-mcp.patch create mode 100644 package/gcc/10.4.0/0002-or1k-Add-mcmodel-option-to-handle-large-GOTs.patch create mode 100644 package/gcc/10.4.0/0003-or1k-Use-cmodel-large-when-building-crtstuff.patch create mode 100644 package/gcc/10.4.0/0004-gcc-define-_REENTRANT-for-OpenRISC-when-pthread-is-p.patch create mode 100644 package/gcc/10.4.0/0005-disable-split-stack-for-non-thread-builds.patch create mode 100644 package/gcc/11.3.0/0001-or1k-Add-mcmodel-option-to-handle-large-GOTs.patch create mode 100644 package/gcc/11.3.0/0002-or1k-Use-cmodel-large-when-building-crtstuff.patch create mode 100644 package/gcc/11.3.0/0003-gcc-define-_REENTRANT-for-OpenRISC-when-pthread-is-p.patch create mode 100644 package/gcc/11.3.0/0004-disable-split-stack-for-non-thread-builds.patch create mode 100644 package/gcc/11.3.0/0005-rs6000-Improve-.machine.patch create mode 100644 package/gcc/11.3.0/0006-rs6000-Do-not-use-rs6000_cpu-for-.machine-ppc-and-pp.patch create mode 100644 package/gcc/12.1.0/0001-disable-split-stack-for-non-thread-builds.patch create mode 100644 package/gcc/8.4.0/0001-xtensa-fix-PR-target-91880.patch create mode 100644 package/gcc/8.4.0/0002-Revert-re-PR-target-92095-internal-error-with-O1-mcp.patch create mode 100644 package/gcc/8.4.0/0003-libsanitizer-Remove-cyclades-from-libsanitizer.patch create mode 100644 package/gcc/8.4.0/0004-disable-split-stack-for-non-thread-builds.patch create mode 100644 package/gcc/Config.in.host create mode 100644 package/gcc/arc-2020.09-release/0001-arc-Refurbish-adc-sbc-patterns.patch create mode 100644 package/gcc/arc-2020.09-release/0002-libsanitizer-Remove-cyclades-from-libsanitizer.patch create mode 100644 package/gcc/arc-2020.09-release/0100-uclibc-conf.patch create mode 120000 package/gcc/gcc-final/gcc-final.hash create mode 100644 package/gcc/gcc-final/gcc-final.mk create mode 120000 package/gcc/gcc-initial/gcc-initial.hash create mode 100644 package/gcc/gcc-initial/gcc-initial.mk create mode 100644 package/gcc/gcc.hash create mode 100644 package/gcc/gcc.mk create mode 100644 package/gcnano-binaries/Config.in create mode 100644 package/gcnano-binaries/gcnano-binaries.hash create mode 100644 package/gcnano-binaries/gcnano-binaries.mk create mode 100644 package/gconf/Config.in create mode 100644 package/gconf/gconf.hash create mode 100644 package/gconf/gconf.mk create mode 100644 package/gcr/0001-meson-Fix-unknown-kw-argument-in-gnome.generate_gir.patch create mode 100644 package/gcr/Config.in create mode 100644 package/gcr/gcr.hash create mode 100644 package/gcr/gcr.mk create mode 100644 package/gd/Config.in create mode 100644 package/gd/gd.hash create mode 100644 package/gd/gd.mk create mode 100644 package/gdal/Config.in create mode 100644 package/gdal/gdal.hash create mode 100644 package/gdal/gdal.mk create mode 100644 package/gdb/10.2/0001-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch create mode 100644 package/gdb/10.2/0002-sh-ptrace-Define-pt_-dsp-regs-uapi_pt_-dsp-regs-on-G.patch create mode 100644 package/gdb/10.2/0003-use-asm-sgidefs.h.patch create mode 100644 package/gdb/10.2/0004-gdbserver-fix-build-for-m68k.patch create mode 100644 package/gdb/10.2/0005-nat-fork-inferior-include-linux-ptrace.h.patch create mode 100644 package/gdb/10.2/0006-Fix-getrandom-compile-for-uclibc-v1.0.35.patch create mode 100644 package/gdb/10.2/0007-fix-musl-build-on-riscv.patch create mode 100644 package/gdb/10.2/0008-gdbserver-Makefile.in-fix-NLS-build.patch create mode 100644 package/gdb/10.2/0009-gdb-Fix-native-build-on-xtensa.patch create mode 100644 package/gdb/11.2/0001-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch create mode 100644 package/gdb/11.2/0002-sh-ptrace-Define-pt_-dsp-regs-uapi_pt_-dsp-regs-on-G.patch create mode 100644 package/gdb/11.2/0003-use-asm-sgidefs.h.patch create mode 100644 package/gdb/11.2/0004-gdbserver-fix-build-for-m68k.patch create mode 100644 package/gdb/11.2/0005-nat-fork-inferior-include-linux-ptrace.h.patch create mode 100644 package/gdb/11.2/0006-Fix-getrandom-compile-for-uclibc-v1.0.35.patch create mode 100644 package/gdb/11.2/0007-fix-musl-build-on-riscv.patch create mode 100644 package/gdb/11.2/0008-gdbserver-Makefile.in-fix-NLS-build.patch create mode 100644 package/gdb/11.2/0009-gdb-Fix-native-build-on-xtensa.patch create mode 100644 package/gdb/9.2/0001-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch create mode 100644 package/gdb/9.2/0002-sh-ptrace-Define-pt_-dsp-regs-uapi_pt_-dsp-regs-on-G.patch create mode 100644 package/gdb/9.2/0003-use-asm-sgidefs.h.patch create mode 100644 package/gdb/9.2/0004-gdbserver-fix-build-for-m68k.patch create mode 100644 package/gdb/9.2/0005-nat-fork-inferior-include-linux-ptrace.h.patch create mode 100644 package/gdb/9.2/0006-sim-ppc-Fix-linker-error-with-fno-common.patch create mode 100644 package/gdb/9.2/0007-Fix-Python3.9-related-runtime-problems.patch create mode 100644 package/gdb/9.2/0007-gdb-configure.tgt-build-gdbserver-with-m68k-and-ucli.patch create mode 100644 package/gdb/9.2/0009-gdb-Fix-native-build-on-xtensa.patch create mode 100644 package/gdb/Config.in create mode 100644 package/gdb/Config.in.host create mode 100755 package/gdb/gdb-python-config create mode 100644 package/gdb/gdb.hash create mode 100644 package/gdb/gdb.mk create mode 100644 package/gdbm/Config.in create mode 100644 package/gdbm/gdbm.hash create mode 100644 package/gdbm/gdbm.mk create mode 100644 package/gdk-pixbuf-xlib/Config.in create mode 100644 package/gdk-pixbuf-xlib/gdk-pixbuf-xlib.hash create mode 100644 package/gdk-pixbuf-xlib/gdk-pixbuf-xlib.mk create mode 100644 package/gdk-pixbuf/Config.in create mode 100644 package/gdk-pixbuf/gdk-pixbuf.hash create mode 100644 package/gdk-pixbuf/gdk-pixbuf.mk create mode 100644 package/genext2fs/Config.in create mode 100644 package/genext2fs/Config.in.host create mode 100644 package/genext2fs/genext2fs.hash create mode 100644 package/genext2fs/genext2fs.mk create mode 100644 package/gengetopt/0001-configure.ac-add-disable-doc-option.patch create mode 100644 package/gengetopt/gengetopt.hash create mode 100644 package/gengetopt/gengetopt.mk create mode 100644 package/genimage/Config.in.host create mode 100644 package/genimage/genimage.hash create mode 100644 package/genimage/genimage.mk create mode 100644 package/genpart/0001-fix-return-code.patch create mode 100644 package/genpart/Config.in create mode 100644 package/genpart/Config.in.host create mode 100644 package/genpart/genpart.hash create mode 100644 package/genpart/genpart.mk create mode 100644 package/genromfs/0001-build-system.patch create mode 100644 package/genromfs/Config.in create mode 100644 package/genromfs/genromfs.hash create mode 100644 package/genromfs/genromfs.mk create mode 100644 package/gensio/Config.in create mode 100644 package/gensio/gensio.hash create mode 100644 package/gensio/gensio.mk create mode 100644 package/geoip/Config.in create mode 100644 package/geoip/geoip.hash create mode 100644 package/geoip/geoip.mk create mode 100644 package/gerbera/Config.in create mode 100644 package/gerbera/S99gerbera create mode 100644 package/gerbera/config.xml create mode 100644 package/gerbera/gerbera.hash create mode 100644 package/gerbera/gerbera.mk create mode 100644 package/gesftpserver/0001-Change-order-of-v3-attributes-according-to-draft-iet.patch create mode 100644 package/gesftpserver/Config.in create mode 100644 package/gesftpserver/gesftpserver.hash create mode 100644 package/gesftpserver/gesftpserver.mk create mode 100644 package/getent/Config.in create mode 100644 package/getent/getent create mode 100644 package/getent/getent.mk create mode 100644 package/gettext-gnu/0001-error_print_progname.patch create mode 100644 package/gettext-gnu/0002-restore-the-ability-to-buld-gettext-tools-seperately-part1.patch create mode 100644 package/gettext-gnu/Config.in create mode 100644 package/gettext-gnu/gettext-gnu.hash create mode 100644 package/gettext-gnu/gettext-gnu.mk create mode 100644 package/gettext-tiny/Config.in create mode 100644 package/gettext-tiny/gettext-tiny.hash create mode 100644 package/gettext-tiny/gettext-tiny.mk create mode 100644 package/gettext-tiny/gettext-wrapper create mode 100644 package/gettext/Config.in create mode 100644 package/gettext/gettext.mk create mode 100644 package/gflags/Config.in create mode 100644 package/gflags/gflags.hash create mode 100644 package/gflags/gflags.mk create mode 100644 package/ghostscript-fonts/Config.in create mode 100644 package/ghostscript-fonts/ghostscript-fonts.hash create mode 100644 package/ghostscript-fonts/ghostscript-fonts.mk create mode 100644 package/ghostscript/Config.in create mode 100644 package/ghostscript/ghostscript.hash create mode 100644 package/ghostscript/ghostscript.mk create mode 100644 package/giblib/0001-fix-imlib2-detection.patch create mode 100644 package/giblib/Config.in create mode 100644 package/giblib/giblib.hash create mode 100644 package/giblib/giblib.mk create mode 100644 package/giflib/0001-Makefile-add-targets-to-manage-static-building.patch create mode 100644 package/giflib/Config.in create mode 100644 package/giflib/giflib.hash create mode 100644 package/giflib/giflib.mk create mode 100644 package/git-crypt/0001-fix-build-with-libressl-3.5.0.patch create mode 100644 package/git-crypt/Config.in create mode 100644 package/git-crypt/git-crypt.hash create mode 100644 package/git-crypt/git-crypt.mk create mode 100644 package/git/0001-Fix-build-without-threads.patch create mode 100644 package/git/Config.in create mode 100644 package/git/git.hash create mode 100644 package/git/git.mk create mode 100644 package/gitlab-runner/Config.in create mode 100644 package/gitlab-runner/S95gitlab-runner create mode 100644 package/gitlab-runner/gitlab-runner.hash create mode 100644 package/gitlab-runner/gitlab-runner.mk create mode 100644 package/gitlab-runner/gitlab-runner.service create mode 100644 package/gkrellm/Config.in create mode 100644 package/gkrellm/gkrellm.hash create mode 100644 package/gkrellm/gkrellm.mk create mode 100644 package/gli/0001-Optional-building-tests.patch create mode 100644 package/gli/Config.in create mode 100644 package/gli/gli.hash create mode 100644 package/gli/gli.mk create mode 100644 package/glib-networking/0001-meson-change-std-to-gnu99.patch create mode 100644 package/glib-networking/Config.in create mode 100644 package/glib-networking/glib-networking.hash create mode 100644 package/glib-networking/glib-networking.mk create mode 100644 package/glibc/0001-Revert-Linux-Implement-a-useful-version-of-_startup_.patch create mode 100644 package/glibc/0002-struct-stat-is-not-posix-conformant-on-microblaze-wi.patch create mode 100644 package/glibc/Config.in create mode 100644 package/glibc/glibc.hash create mode 100644 package/glibc/glibc.mk create mode 100644 package/glibc/nsswitch.conf create mode 100644 package/glibmm/Config.in create mode 100644 package/glibmm/glibmm.hash create mode 100644 package/glibmm/glibmm.mk create mode 100644 package/glm/Config.in create mode 100644 package/glm/glm.hash create mode 100644 package/glm/glm.mk create mode 100644 package/glmark2/0001-wscript-use-find_program-to-find-wayland-scanner.patch create mode 100644 package/glmark2/Config.in create mode 100644 package/glmark2/glmark2.hash create mode 100644 package/glmark2/glmark2.mk create mode 100644 package/glog/0001-added-emscripten-support.patch create mode 100644 package/glog/Config.in create mode 100644 package/glog/glog.hash create mode 100644 package/glog/glog.mk create mode 100644 package/gloox/0001-src-connectiontcpserver-cpp-fix-musl.patch create mode 100644 package/gloox/Config.in create mode 100644 package/gloox/gloox.hash create mode 100644 package/gloox/gloox.mk create mode 100644 package/glorytun/0001-Add-support-for-Apple-silicon.patch create mode 100644 package/glorytun/0002-aegis256.c-fix-aarch64-build-with-uclibc.patch create mode 100644 package/glorytun/Config.in create mode 100644 package/glorytun/glorytun.hash create mode 100644 package/glorytun/glorytun.mk create mode 100644 package/glslsandbox-player/Config.in create mode 100644 package/glslsandbox-player/glslsandbox-player.hash create mode 100644 package/glslsandbox-player/glslsandbox-player.mk create mode 100644 package/gmp/0001-mpz-inp_raw.c-Avoid-bit-size-overflows.patch create mode 100644 package/gmp/Config.in create mode 100644 package/gmp/gmp.hash create mode 100644 package/gmp/gmp.mk create mode 100644 package/gmpc/Config.in create mode 100644 package/gmpc/gmpc.hash create mode 100644 package/gmpc/gmpc.mk create mode 100644 package/gmrender-resurrect/Config.in create mode 100644 package/gmrender-resurrect/gmrender-resurrect.hash create mode 100644 package/gmrender-resurrect/gmrender-resurrect.mk create mode 100644 package/gnu-efi/0001-Make.defaults-don-t-override-ARCH-when-cross-compili.patch create mode 100644 package/gnu-efi/0002-inc-efi-.h-also-support-__mips64-to-recognize-mips64.patch create mode 100644 package/gnu-efi/Config.in create mode 100644 package/gnu-efi/gnu-efi.hash create mode 100644 package/gnu-efi/gnu-efi.mk create mode 100644 package/gnuchess/Config.in create mode 100644 package/gnuchess/gnuchess.hash create mode 100644 package/gnuchess/gnuchess.mk create mode 100644 package/gnupg/0001-build-Always-use-EXTERN_UNLESS_MAIN_MODULE-pattern.patch create mode 100644 package/gnupg/Config.in create mode 100644 package/gnupg/Config.in.host create mode 100644 package/gnupg/gnupg.hash create mode 100644 package/gnupg/gnupg.mk create mode 100644 package/gnupg2/Config.in create mode 100644 package/gnupg2/gnupg2.hash create mode 100644 package/gnupg2/gnupg2.mk create mode 100644 package/gnuplot/0001-configure-add-without-demo-option.patch create mode 100644 package/gnuplot/Config.in create mode 100644 package/gnuplot/gnuplot.hash create mode 100644 package/gnuplot/gnuplot.mk create mode 100644 package/gnuradio/0001-gr-digital-glfsr.h-drop-boost-cstdint.hpp-and-use-cs.patch create mode 100644 package/gnuradio/0002-boost_qualify_placeholders_with_their_full_namespace.patch create mode 100644 package/gnuradio/0003-gnuradio-runtime_pmt-dont-hardcode-INTERFACE_INCLUDE_DIRECTORIES.patch create mode 100644 package/gnuradio/0004-gr-qtgui-dont-t-add-examples-c-subdirectory-when-gr-.patch create mode 100644 package/gnuradio/0005-boost-remove-deprecated-math-common_factor.hpp.patch create mode 100644 package/gnuradio/Config.in create mode 100644 package/gnuradio/gnuradio.hash create mode 100644 package/gnuradio/gnuradio.mk create mode 100644 package/gnutls/Config.in create mode 100644 package/gnutls/gnutls.hash create mode 100644 package/gnutls/gnutls.mk create mode 100644 package/go-bootstrap/Config.in.host create mode 100644 package/go-bootstrap/go-bootstrap.hash create mode 100644 package/go-bootstrap/go-bootstrap.mk create mode 100644 package/go/0001-build.go-explicit-option-for-crosscompilation.patch create mode 100644 package/go/0002-cmd-dist-use-gohostarch-for-ssa-rewrite-check.patch create mode 100644 package/go/0003-runtime-support-riscv64-SV57-mode.patch create mode 100644 package/go/Config.in.host create mode 100644 package/go/go.hash create mode 100644 package/go/go.mk create mode 100644 package/gob2/0001-dont-include-from-prefix.patch create mode 100644 package/gob2/gob2.hash create mode 100644 package/gob2/gob2.mk create mode 100644 package/gobject-introspection/0001-disable-tests.patch create mode 100644 package/gobject-introspection/0002-Add-rpath-links-to-ccompiler.patch create mode 100644 package/gobject-introspection/0003-giscanner-ignore-error-return-codes-from-ldd-wrapper.patch create mode 100644 package/gobject-introspection/0004-build-Avoid-the-doctemplates-hack.patch create mode 100644 package/gobject-introspection/Config.in create mode 100644 package/gobject-introspection/g-ir-compiler.in create mode 100644 package/gobject-introspection/g-ir-scanner-lddwrapper.in create mode 100644 package/gobject-introspection/g-ir-scanner-qemuwrapper.in create mode 100644 package/gobject-introspection/g-ir-scanner.in create mode 100644 package/gobject-introspection/gobject-introspection.hash create mode 100644 package/gobject-introspection/gobject-introspection.mk create mode 100644 package/gocryptfs/0001-go.mod-fix-jacobsa-crypto-build-on-riscv64.patch create mode 100644 package/gocryptfs/Config.in create mode 100644 package/gocryptfs/gocryptfs.hash create mode 100644 package/gocryptfs/gocryptfs.mk create mode 100644 package/google-breakpad/Config.in create mode 100644 package/google-breakpad/Config.in.host create mode 100755 package/google-breakpad/gen-syms.sh create mode 100644 package/google-breakpad/google-breakpad.hash create mode 100644 package/google-breakpad/google-breakpad.mk create mode 100644 package/google-material-design-icons/Config.in create mode 100644 package/google-material-design-icons/google-material-design-icons.hash create mode 100644 package/google-material-design-icons/google-material-design-icons.mk create mode 100644 package/googlefontdirectory/Config.in create mode 100644 package/googlefontdirectory/googlefontdirectory.hash create mode 100644 package/googlefontdirectory/googlefontdirectory.mk create mode 100644 package/gperf/Config.in create mode 100644 package/gperf/gperf.hash create mode 100644 package/gperf/gperf.mk create mode 100644 package/gpm/0001-Added-musl-support-to-libgpm-and-the-daemon.patch create mode 100644 package/gpm/0002-Install-unversioned-solibrary.patch create mode 100644 package/gpm/0003-src-Makefile.in-Really-install-unversioned-solibrary.patch create mode 100644 package/gpm/0004-Use-sigemptyset-API-instead-of-__sigemptyset.patch create mode 100644 package/gpm/0005-fix-building-w-newer-glibc.patch create mode 100644 package/gpm/0006-src-headers-daemon.h-avoid-redefinition-of-last_sele.patch create mode 100644 package/gpm/Config.in create mode 100644 package/gpm/gpm.hash create mode 100644 package/gpm/gpm.mk create mode 100644 package/gpsd/Config.in create mode 100644 package/gpsd/S50gpsd create mode 100644 package/gpsd/gpsd.hash create mode 100644 package/gpsd/gpsd.mk create mode 100644 package/gptfdisk/0001-gptcurses-partially-revert-Tweaks-for-building-on-th.patch create mode 100644 package/gptfdisk/Config.in create mode 100644 package/gptfdisk/Config.in.host create mode 100644 package/gptfdisk/gptfdisk.hash create mode 100644 package/gptfdisk/gptfdisk.mk create mode 100644 package/gqrx/Config.in create mode 100644 package/gqrx/gqrx.hash create mode 100644 package/gqrx/gqrx.mk create mode 100644 package/gr-osmosdr/Config.in create mode 100644 package/gr-osmosdr/gr-osmosdr.hash create mode 100644 package/gr-osmosdr/gr-osmosdr.mk create mode 100644 package/granite/Config.in create mode 100644 package/granite/granite.hash create mode 100644 package/granite/granite.mk create mode 100644 package/grantlee/Config.in create mode 100644 package/grantlee/grantlee.hash create mode 100644 package/grantlee/grantlee.mk create mode 100644 package/graphicsmagick/Config.in create mode 100644 package/graphicsmagick/graphicsmagick.hash create mode 100644 package/graphicsmagick/graphicsmagick.mk create mode 100644 package/graphite2/0001-don-t-install-a-libtool-file-with-static-library.patch create mode 100644 package/graphite2/Config.in create mode 100644 package/graphite2/graphite2.hash create mode 100644 package/graphite2/graphite2.mk create mode 100644 package/grep/0001-sigsegv-fix-build-on-microblazeel.patch create mode 100644 package/grep/0002-sigsegv-fix-build-on-or1k.patch create mode 100644 package/grep/Config.in create mode 100644 package/grep/grep.hash create mode 100644 package/grep/grep.mk create mode 100644 package/grpc/0001-Properly-detect-the-availability-of-pthread_setname_.patch create mode 100644 package/grpc/0002-wrap_memcpy.cc-add-GPR_DISABLE_WRAPPED_MEMCPY.patch create mode 100644 package/grpc/0003-host-grpc-only-cpp-plugin.patch create mode 100644 package/grpc/0004-fix-grpc-plugin-cross-compile.patch create mode 100644 package/grpc/0005-disable-unconditionally-downloading-api-repos.patch create mode 100644 package/grpc/Config.in create mode 100644 package/grpc/grpc.hash create mode 100644 package/grpc/grpc.mk create mode 100644 package/gsettings-desktop-schemas/Config.in create mode 100644 package/gsettings-desktop-schemas/gsettings-desktop-schemas.hash create mode 100644 package/gsettings-desktop-schemas/gsettings-desktop-schemas.mk create mode 100644 package/gsl/Config.in create mode 100644 package/gsl/gsl.hash create mode 100644 package/gsl/gsl.mk create mode 100644 package/gssdp/Config.in create mode 100644 package/gssdp/gssdp.hash create mode 100644 package/gssdp/gssdp.mk create mode 100644 package/gstreamer1/Config.in create mode 100644 package/gstreamer1/gst-omx/Config.in create mode 100644 package/gstreamer1/gst-omx/gst-omx.hash create mode 100644 package/gstreamer1/gst-omx/gst-omx.mk create mode 100644 package/gstreamer1/gst1-devtools/Config.in create mode 100644 package/gstreamer1/gst1-devtools/gst1-devtools.hash create mode 100644 package/gstreamer1/gst1-devtools/gst1-devtools.mk create mode 100644 package/gstreamer1/gst1-imx/Config.in create mode 100644 package/gstreamer1/gst1-imx/gst1-imx.hash create mode 100644 package/gstreamer1/gst1-imx/gst1-imx.mk create mode 100644 package/gstreamer1/gst1-interpipe/Config.in create mode 100644 package/gstreamer1/gst1-interpipe/gst1-interpipe.hash create mode 100644 package/gstreamer1/gst1-interpipe/gst1-interpipe.mk create mode 100644 package/gstreamer1/gst1-libav/Config.in create mode 100644 package/gstreamer1/gst1-libav/gst1-libav.hash create mode 100644 package/gstreamer1/gst1-libav/gst1-libav.mk create mode 100644 package/gstreamer1/gst1-plugins-bad/Config.in create mode 100644 package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.hash create mode 100644 package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.mk create mode 100644 package/gstreamer1/gst1-plugins-base/Config.in create mode 100644 package/gstreamer1/gst1-plugins-base/gst1-plugins-base.hash create mode 100644 package/gstreamer1/gst1-plugins-base/gst1-plugins-base.mk create mode 100644 package/gstreamer1/gst1-plugins-bayer2rgb-neon/Config.in create mode 100644 package/gstreamer1/gst1-plugins-bayer2rgb-neon/gst1-plugins-bayer2rgb-neon.hash create mode 100644 package/gstreamer1/gst1-plugins-bayer2rgb-neon/gst1-plugins-bayer2rgb-neon.mk create mode 100644 package/gstreamer1/gst1-plugins-good/Config.in create mode 100644 package/gstreamer1/gst1-plugins-good/gst1-plugins-good.hash create mode 100644 package/gstreamer1/gst1-plugins-good/gst1-plugins-good.mk create mode 100644 package/gstreamer1/gst1-plugins-ugly/Config.in create mode 100644 package/gstreamer1/gst1-plugins-ugly/gst1-plugins-ugly.hash create mode 100644 package/gstreamer1/gst1-plugins-ugly/gst1-plugins-ugly.mk create mode 100644 package/gstreamer1/gst1-python/Config.in create mode 100644 package/gstreamer1/gst1-python/gst1-python.hash create mode 100644 package/gstreamer1/gst1-python/gst1-python.mk create mode 100644 package/gstreamer1/gst1-rtsp-server/Config.in create mode 100644 package/gstreamer1/gst1-rtsp-server/gst1-rtsp-server.hash create mode 100644 package/gstreamer1/gst1-rtsp-server/gst1-rtsp-server.mk create mode 100644 package/gstreamer1/gst1-shark/Config.in create mode 100644 package/gstreamer1/gst1-shark/gst1-shark.hash create mode 100644 package/gstreamer1/gst1-shark/gst1-shark.mk create mode 100644 package/gstreamer1/gst1-vaapi/Config.in create mode 100644 package/gstreamer1/gst1-vaapi/gst1-vaapi.hash create mode 100644 package/gstreamer1/gst1-vaapi/gst1-vaapi.mk create mode 100644 package/gstreamer1/gstd/0001-Fix-gstd_chmod.sh-DESTDIR-path.patch create mode 100644 package/gstreamer1/gstd/0002-Don-t-require-gstd-check-user-xenv.sh-for-systemd-se.patch create mode 100644 package/gstreamer1/gstd/0003-Use-native-meson-python-module-for-python-install.patch create mode 100644 package/gstreamer1/gstd/0004-meson.build-add-missing-init-subdir.patch create mode 100644 package/gstreamer1/gstd/0005-meson.build-use-dependency-function-for-readline.patch create mode 100644 package/gstreamer1/gstd/Config.in create mode 100644 package/gstreamer1/gstd/gstd.hash create mode 100644 package/gstreamer1/gstd/gstd.mk create mode 100644 package/gstreamer1/gstreamer1-editing-services/Config.in create mode 100644 package/gstreamer1/gstreamer1-editing-services/gstreamer1-editing-services.hash create mode 100644 package/gstreamer1/gstreamer1-editing-services/gstreamer1-editing-services.mk create mode 100644 package/gstreamer1/gstreamer1.mk create mode 100644 package/gstreamer1/gstreamer1/Config.in create mode 100644 package/gstreamer1/gstreamer1/gstreamer1.hash create mode 100644 package/gstreamer1/gstreamer1/gstreamer1.mk create mode 100644 package/gtest/0001-pkg-config-fix-gtest.pc-gmock.pc-library-names-for-t.patch create mode 100644 package/gtest/Config.in create mode 100644 package/gtest/gtest.hash create mode 100644 package/gtest/gtest.mk create mode 100644 package/gtk2-engines/Config.in create mode 100644 package/gtk2-engines/gtk2-engines.hash create mode 100644 package/gtk2-engines/gtk2-engines.mk create mode 100644 package/gtkmm3/Config.in create mode 100644 package/gtkmm3/gtkmm3.hash create mode 100644 package/gtkmm3/gtkmm3.mk create mode 100644 package/gtkperf/Config.in create mode 100644 package/gtkperf/gtkperf.hash create mode 100644 package/gtkperf/gtkperf.mk create mode 100644 package/gtksourceview/Config.in create mode 100644 package/gtksourceview/gtksourceview.hash create mode 100644 package/gtksourceview/gtksourceview.mk create mode 100644 package/guile/0001-calculate-csqrt_manually.patch create mode 100644 package/guile/0002-Makefile.am-fix-build-without-makeinfo.patch create mode 100644 package/guile/Config.in create mode 100644 package/guile/guile.hash create mode 100644 package/guile/guile.mk create mode 100644 package/gumbo-parser/0001-configure.ac-fix-build-without-C.patch create mode 100644 package/gumbo-parser/Config.in create mode 100644 package/gumbo-parser/gumbo-parser.hash create mode 100644 package/gumbo-parser/gumbo-parser.mk create mode 100644 package/gupnp-av/Config.in create mode 100644 package/gupnp-av/gupnp-av.hash create mode 100644 package/gupnp-av/gupnp-av.mk create mode 100644 package/gupnp-dlna/Config.in create mode 100644 package/gupnp-dlna/gupnp-dlna.hash create mode 100644 package/gupnp-dlna/gupnp-dlna.mk create mode 100644 package/gupnp-tools/Config.in create mode 100644 package/gupnp-tools/gupnp-tools.hash create mode 100644 package/gupnp-tools/gupnp-tools.mk create mode 100644 package/gupnp/Config.in create mode 100644 package/gupnp/gupnp.hash create mode 100644 package/gupnp/gupnp.mk create mode 100644 package/gutenprint/0001-use-pregen-xmli18n-header.patch create mode 100644 package/gutenprint/0002-cups-support-replaces-static-with-static-libtool-lib.patch create mode 100644 package/gutenprint/Config.in create mode 100644 package/gutenprint/gutenprint.hash create mode 100644 package/gutenprint/gutenprint.mk create mode 100644 package/gvfs/0001-build-Remove-incorrect-i18n.merge_file-argument.patch create mode 100644 package/gvfs/Config.in create mode 100644 package/gvfs/gvfs.hash create mode 100644 package/gvfs/gvfs.mk create mode 100644 package/gzip/Config.in create mode 100644 package/gzip/gzip.hash create mode 100644 package/gzip/gzip.mk create mode 100644 package/hackrf/0001-cmake-modules-FindFFTW.cmake-fix-build-without-fftw3.patch create mode 100644 package/hackrf/Config.in create mode 100644 package/hackrf/hackrf.hash create mode 100644 package/hackrf/hackrf.mk create mode 100644 package/hans/Config.in create mode 100644 package/hans/hans.hash create mode 100644 package/hans/hans.mk create mode 100644 package/haproxy/Config.in create mode 100644 package/haproxy/haproxy.hash create mode 100644 package/haproxy/haproxy.mk create mode 100644 package/harfbuzz/0001-meson.build-check-for-pthread.h.patch create mode 100644 package/harfbuzz/Config.in create mode 100644 package/harfbuzz/harfbuzz.hash create mode 100644 package/harfbuzz/harfbuzz.mk create mode 100644 package/haserl/0001-add-haserl_lualib.inc.patch create mode 100644 package/haserl/Config.in create mode 100644 package/haserl/haserl.hash create mode 100644 package/haserl/haserl.mk create mode 100644 package/haveged/Config.in create mode 100644 package/haveged/S21haveged create mode 100644 package/haveged/haveged.hash create mode 100644 package/haveged/haveged.mk create mode 100644 package/haveged/haveged.service create mode 100644 package/hawktracer/0001-cmake-platform_features.cmake-fix-DENABLE_CPU_USAGE_.patch create mode 100644 package/hawktracer/Config.in create mode 100644 package/hawktracer/hawktracer.hash create mode 100644 package/hawktracer/hawktracer.mk create mode 100644 package/hdparm/Config.in create mode 100644 package/hdparm/hdparm.hash create mode 100644 package/hdparm/hdparm.mk create mode 100644 package/heimdal/heimdal.hash create mode 100644 package/heimdal/heimdal.mk create mode 100644 package/heirloom-mailx/0001-fix-libressl-support.patch create mode 100644 package/heirloom-mailx/Config.in create mode 100644 package/heirloom-mailx/heirloom-mailx.hash create mode 100644 package/heirloom-mailx/heirloom-mailx.mk create mode 100644 package/hiawatha/Config.in create mode 100644 package/hiawatha/hiawatha.hash create mode 100644 package/hiawatha/hiawatha.mk create mode 100644 package/hicolor-icon-theme/Config.in create mode 100644 package/hicolor-icon-theme/hicolor-icon-theme.hash create mode 100644 package/hicolor-icon-theme/hicolor-icon-theme.mk create mode 100644 package/hidapi/Config.in create mode 100644 package/hidapi/hidapi.hash create mode 100644 package/hidapi/hidapi.mk create mode 100644 package/hiredis/0001-CMakeLists.txt-do-not-force-SHARED.patch create mode 100644 package/hiredis/0002-CMakeLists.txt-allow-building-without-a-C-compiler.patch create mode 100644 package/hiredis/0003-Explicitly-set-c99-in-CMake.patch create mode 100644 package/hiredis/Config.in create mode 100644 package/hiredis/hiredis.hash create mode 100644 package/hiredis/hiredis.mk create mode 100644 package/hostapd/Config.in create mode 100644 package/hostapd/hostapd.hash create mode 100644 package/hostapd/hostapd.mk create mode 100644 package/hplip/0001-build-use-pkg-config-to-discover-libusb.patch create mode 100644 package/hplip/0002-configure.in-fix-AM_INIT_AUTOMAKE-call.patch create mode 100644 package/hplip/Config.in create mode 100644 package/hplip/hplip.hash create mode 100644 package/hplip/hplip.mk create mode 100644 package/htop/Config.in create mode 100644 package/htop/htop.hash create mode 100644 package/htop/htop.mk create mode 100644 package/htpdate/Config.in create mode 100644 package/htpdate/S43htpdate create mode 100644 package/htpdate/htpdate.hash create mode 100644 package/htpdate/htpdate.mk create mode 100644 package/htpdate/htpdate.service create mode 100644 package/httping/0001-fix-math-library-linking.patch create mode 100644 package/httping/0002-Makefile-allow-build-without-gettext.patch create mode 100644 package/httping/Config.in create mode 100644 package/httping/httping.hash create mode 100644 package/httping/httping.mk create mode 100644 package/hwdata/Config.in create mode 100644 package/hwdata/hwdata.hash create mode 100644 package/hwdata/hwdata.mk create mode 100644 package/hwloc/Config.in create mode 100644 package/hwloc/hwloc.hash create mode 100644 package/hwloc/hwloc.mk create mode 100644 package/hyperfine/Config.in create mode 100644 package/hyperfine/hyperfine.hash create mode 100644 package/hyperfine/hyperfine.mk create mode 100644 package/i2c-tools/Config.in create mode 100644 package/i2c-tools/i2c-tools.hash create mode 100644 package/i2c-tools/i2c-tools.mk create mode 100644 package/i2pd/0001-libi2pd-Fix-the-build-with-LibreSSL-3-5-2.patch create mode 100644 package/i2pd/Config.in create mode 100644 package/i2pd/S99i2pd create mode 100644 package/i2pd/i2pd.hash create mode 100644 package/i2pd/i2pd.mk create mode 100644 package/i2pd/i2pd.service create mode 100644 package/i7z/0001-fix-build-with-gcc-10.patch create mode 100644 package/i7z/Config.in create mode 100644 package/i7z/i7z.hash create mode 100644 package/i7z/i7z.mk create mode 100644 package/ibm-sw-tpm2/0001-Use-LONG_BIT-to-define-RADIX_BITS.patch create mode 100644 package/ibm-sw-tpm2/Config.in create mode 100644 package/ibm-sw-tpm2/ibm-sw-tpm2.hash create mode 100644 package/ibm-sw-tpm2/ibm-sw-tpm2.mk create mode 100644 package/ibrcommon/0001-ibrcommon-data-File.cpp-support-POSIX-basename-call.patch create mode 100644 package/ibrcommon/0002-ibrcommon-added-openssl-1.1-compatibility-264.patch create mode 100644 package/ibrcommon/0003-ibrcommon-ssl-gcm-fix-static-build-with-openssl.patch create mode 100644 package/ibrcommon/Config.in create mode 100644 package/ibrcommon/ibrcommon.hash create mode 100644 package/ibrcommon/ibrcommon.mk create mode 100644 package/ibrdtn-tools/Config.in create mode 100644 package/ibrdtn-tools/ibrdtn-tools.hash create mode 100644 package/ibrdtn-tools/ibrdtn-tools.mk create mode 100644 package/ibrdtn/Config.in create mode 100644 package/ibrdtn/ibrdtn.hash create mode 100644 package/ibrdtn/ibrdtn.mk create mode 100644 package/ibrdtnd/0001-ibrdtnd-added-openssl-compatibility.patch create mode 100644 package/ibrdtnd/0002-SecurityCertificateManager.cpp-include-cstring-267.patch create mode 100644 package/ibrdtnd/Config.in create mode 100644 package/ibrdtnd/ibrdtnd.hash create mode 100644 package/ibrdtnd/ibrdtnd.mk create mode 100644 package/icu/0001-dont-build-static-dynamic-twice.patch create mode 100644 package/icu/0002-workaround-toolchain-bugs.patch create mode 100644 package/icu/0003-link-icudata-as-data-only.patch create mode 100644 package/icu/0004-fix-static-linking-with-icu-uc.patch create mode 100644 package/icu/Config.in create mode 100644 package/icu/icu.hash create mode 100644 package/icu/icu.mk create mode 100644 package/ifenslave/Config.in create mode 100644 package/ifenslave/ifenslave.hash create mode 100644 package/ifenslave/ifenslave.mk create mode 100644 package/ifmetric/0001-Fix-issue-NETLINK-Packet-too-small-or-truncated-92-1.patch create mode 100644 package/ifmetric/Config.in create mode 100644 package/ifmetric/ifmetric.hash create mode 100644 package/ifmetric/ifmetric.mk create mode 100644 package/ifplugd/0001-cross.patch create mode 100644 package/ifplugd/0002-fix-headers.patch create mode 100644 package/ifplugd/0003-no-cxx.patch create mode 100644 package/ifplugd/0004-musl-fix-types.patch create mode 100644 package/ifplugd/0005-src-interface.h-fix-build-with-gcc-10.patch create mode 100644 package/ifplugd/Config.in create mode 100644 package/ifplugd/ifplugd.hash create mode 100644 package/ifplugd/ifplugd.mk create mode 100644 package/iftop/0001-ui_common.h-fix-build-with-gcc-10.patch create mode 100644 package/iftop/0002-Rename-pcap_filter-to-iftop_pcap_filter.patch create mode 100644 package/iftop/Config.in create mode 100644 package/iftop/iftop.hash create mode 100644 package/iftop/iftop.mk create mode 100644 package/ifupdown-scripts/Config.in create mode 100644 package/ifupdown-scripts/S40network create mode 100644 package/ifupdown-scripts/ifupdown-scripts.mk create mode 100644 package/ifupdown-scripts/network.service create mode 100644 package/ifupdown-scripts/network/if-down.d/.empty create mode 100644 package/ifupdown-scripts/network/if-post-down.d/.empty create mode 100755 package/ifupdown-scripts/network/if-pre-up.d/wait_iface create mode 100644 package/ifupdown-scripts/network/if-up.d/.empty create mode 100755 package/ifupdown-scripts/nfs_check create mode 100644 package/ifupdown/0001-dont-use-dpkg-architecture.patch create mode 100644 package/ifupdown/Config.in create mode 100644 package/ifupdown/ifupdown.hash create mode 100644 package/ifupdown/ifupdown.mk create mode 100644 package/igd2-for-linux/Config.in create mode 100644 package/igd2-for-linux/S99upnpd create mode 100644 package/igd2-for-linux/igd2-for-linux.hash create mode 100644 package/igd2-for-linux/igd2-for-linux.mk create mode 100644 package/igd2-for-linux/upnpd.service create mode 100644 package/igh-ethercat/Config.in create mode 100644 package/igh-ethercat/igh-ethercat.hash create mode 100644 package/igh-ethercat/igh-ethercat.mk create mode 100644 package/igmpproxy/Config.in create mode 100644 package/igmpproxy/igmpproxy.hash create mode 100644 package/igmpproxy/igmpproxy.mk create mode 100644 package/ijs/Config.in create mode 100644 package/ijs/ijs.hash create mode 100644 package/ijs/ijs.mk create mode 100644 package/ima-evm-utils/Config.in create mode 100644 package/ima-evm-utils/ima-evm-utils.hash create mode 100644 package/ima-evm-utils/ima-evm-utils.mk create mode 100644 package/imagemagick/Config.in create mode 100644 package/imagemagick/Config.in.host create mode 100644 package/imagemagick/imagemagick.hash create mode 100644 package/imagemagick/imagemagick.mk create mode 100644 package/imlib2/Config.in create mode 100644 package/imlib2/imlib2.hash create mode 100644 package/imlib2/imlib2.mk create mode 100644 package/imx-mkimage/0001-Add-support-for-overriding-BL32-and-BL33-not-only-BL.patch create mode 100644 package/imx-mkimage/0002-Add-LDFLAGS-to-link-step.patch create mode 100644 package/imx-mkimage/0003-Add-unused-fake-version.patch create mode 100644 package/imx-mkimage/0004-Add-support-for-overriding-BL31-BL32-and-BL33.patch create mode 100644 package/imx-mkimage/Config.in.host create mode 100644 package/imx-mkimage/imx-mkimage.hash create mode 100644 package/imx-mkimage/imx-mkimage.mk create mode 100644 package/imx-usb-loader/Config.in create mode 100644 package/imx-usb-loader/Config.in.host create mode 100644 package/imx-usb-loader/imx-usb-loader.hash create mode 100644 package/imx-usb-loader/imx-usb-loader.mk create mode 100644 package/inadyn/Config.in create mode 100755 package/inadyn/S70inadyn create mode 100644 package/inadyn/inadyn.conf create mode 100644 package/inadyn/inadyn.hash create mode 100644 package/inadyn/inadyn.mk create mode 100644 package/inconsolata/Config.in create mode 100644 package/inconsolata/inconsolata.hash create mode 100644 package/inconsolata/inconsolata.mk create mode 100644 package/inih/Config.in create mode 100644 package/inih/inih.hash create mode 100644 package/inih/inih.mk create mode 100644 package/initscripts/Config.in create mode 100755 package/initscripts/init.d/rcK create mode 100755 package/initscripts/init.d/rcS create mode 100644 package/initscripts/initscripts.mk create mode 100644 package/inotify-tools/Config.in create mode 100644 package/inotify-tools/inotify-tools.hash create mode 100644 package/inotify-tools/inotify-tools.mk create mode 100644 package/input-event-daemon/Config.in create mode 100644 package/input-event-daemon/S99input-event-daemon create mode 100644 package/input-event-daemon/input-event-daemon.hash create mode 100644 package/input-event-daemon/input-event-daemon.mk create mode 100644 package/input-event-daemon/input-event-daemon.service create mode 100644 package/intel-gmmlib/0001-Drop-hardening-related-flags.patch create mode 100644 package/intel-gmmlib/Config.in create mode 100644 package/intel-gmmlib/intel-gmmlib.hash create mode 100644 package/intel-gmmlib/intel-gmmlib.mk create mode 100644 package/intel-mediadriver/0001-Fix-uClibc-build.patch create mode 100644 package/intel-mediadriver/0002-Fix-build-with-libexecinfo.patch create mode 100644 package/intel-mediadriver/Config.in create mode 100644 package/intel-mediadriver/intel-mediadriver.hash create mode 100644 package/intel-mediadriver/intel-mediadriver.mk create mode 100644 package/intel-mediasdk/0001-Don-t-force-fstack-protector.patch create mode 100644 package/intel-mediasdk/Config.in create mode 100644 package/intel-mediasdk/intel-mediasdk.hash create mode 100644 package/intel-mediasdk/intel-mediasdk.mk create mode 100644 package/intel-microcode/Config.in create mode 100644 package/intel-microcode/intel-microcode.hash create mode 100644 package/intel-microcode/intel-microcode.mk create mode 100644 package/intltool/0001-perl-5.26-compatibility.patch create mode 100644 package/intltool/intltool.hash create mode 100644 package/intltool/intltool.mk create mode 100644 package/iodine/0001-disable-systemd-and-selinux.patch create mode 100644 package/iodine/Config.in create mode 100644 package/iodine/iodine.hash create mode 100644 package/iodine/iodine.mk create mode 100644 package/iotop/0001-Fix-build-error-with-Python-3.patch create mode 100644 package/iotop/Config.in create mode 100644 package/iotop/iotop.hash create mode 100644 package/iotop/iotop.mk create mode 100644 package/iozone/0001-Add-new-targets-for-iozone.patch create mode 100644 package/iozone/Config.in create mode 100644 package/iozone/iozone.hash create mode 100644 package/iozone/iozone.mk create mode 100644 package/ipcalc/Config.in create mode 100644 package/ipcalc/ipcalc.hash create mode 100644 package/ipcalc/ipcalc.mk create mode 100644 package/iperf/0001-Fix-build-with-musl-libc.patch create mode 100644 package/iperf/0002-compat-gettcpinfo.c-fix-build.patch create mode 100644 package/iperf/Config.in create mode 100644 package/iperf/iperf.hash create mode 100644 package/iperf/iperf.mk create mode 100644 package/iperf3/Config.in create mode 100644 package/iperf3/iperf3.hash create mode 100644 package/iperf3/iperf3.mk create mode 100644 package/ipmitool/0001-Fix-missing-stddef.h-include.patch create mode 100644 package/ipmitool/0002-ID-461-OpenSSL-1.1-compatibility-error-storage-size-.patch create mode 100644 package/ipmitool/0003-ID-461-Make-compiler-happier-about-changes-related-t.patch create mode 100644 package/ipmitool/0004-ID-480-ipmitool-coredumps-in-EVP_CIPHER_CTX_init.patch create mode 100644 package/ipmitool/0005-ID-480-Call-EVP_CIPHER_CTX_free-instead-of-EVP_CIPHE.patch create mode 100644 package/ipmitool/0006-lanplus-Fix-compile-with-deprecated-APIs-disabled.patch create mode 100644 package/ipmitool/0007-hpmfwupg-move-variable-definition-to-c-file.patch create mode 100644 package/ipmitool/0008-fru-Fix-buffer-overflow-vulnerabilities.patch create mode 100644 package/ipmitool/0009-fru-Fix-buffer-overflow-in-ipmi_spd_print_fru.patch create mode 100644 package/ipmitool/0010-session-Fix-buffer-overflow-in-ipmi_get_session_info.patch create mode 100644 package/ipmitool/0011-channel-Fix-buffer-overflow.patch create mode 100644 package/ipmitool/0012-lanp-Fix-buffer-overflows-in-get_lan_param_select.patch create mode 100644 package/ipmitool/0013-fru-sdr-Fix-id_string-buffer-overflows.patch create mode 100644 package/ipmitool/Config.in create mode 100644 package/ipmitool/ipmitool.hash create mode 100644 package/ipmitool/ipmitool.mk create mode 100644 package/ipmiutil/Config.in create mode 100644 package/ipmiutil/ipmiutil.hash create mode 100644 package/ipmiutil/ipmiutil.mk create mode 100644 package/iproute2/0001-bpf_glue-include-errno.h.patch create mode 100644 package/iproute2/Config.in create mode 100644 package/iproute2/iproute2.hash create mode 100644 package/iproute2/iproute2.mk create mode 100644 package/iprutils/0001-configure.ac-add-AC_USE_SYSTEM_EXTENSIONS.patch create mode 100644 package/iprutils/Config.in create mode 100644 package/iprutils/iprutils.hash create mode 100644 package/iprutils/iprutils.mk create mode 100644 package/ipset/Config.in create mode 100644 package/ipset/ipset.hash create mode 100644 package/ipset/ipset.mk create mode 100644 package/iptables/0001-Revert-fix-build-for-missing-ETH_ALEN-definition.patch create mode 100644 package/iptables/0002-treewide-use-uint-instead-of-u_int.patch create mode 100644 package/iptables/0003-netfilter-add-nf_log.h.patch create mode 100644 package/iptables/Config.in create mode 100644 package/iptables/S35iptables create mode 100644 package/iptables/iptables.hash create mode 100644 package/iptables/iptables.mk create mode 100644 package/iptraf-ng/Config.in create mode 100644 package/iptraf-ng/iptraf-ng.hash create mode 100644 package/iptraf-ng/iptraf-ng.mk create mode 100644 package/iputils/Config.in create mode 100644 package/iputils/iputils.hash create mode 100644 package/iputils/iputils.mk create mode 100644 package/irda-utils/0001-daemon.patch create mode 100644 package/irda-utils/0002-nommu.patch create mode 100644 package/irda-utils/0003-subdir.patch create mode 100644 package/irda-utils/0004-musl.patch create mode 100644 package/irda-utils/Config.in create mode 100644 package/irda-utils/irda-utils.hash create mode 100644 package/irda-utils/irda-utils.mk create mode 100644 package/irqbalance/Config.in create mode 100644 package/irqbalance/S13irqbalance create mode 100644 package/irqbalance/irqbalance.hash create mode 100644 package/irqbalance/irqbalance.mk create mode 100644 package/irqbalance/irqbalance.service create mode 100644 package/irrlicht/0001-override-CPPFLAGS-CXXFLAGS-and-CFLAGS-in-Makefile.patch create mode 100644 package/irrlicht/0002-remove-sys-sysctl.h.patch create mode 100644 package/irrlicht/0003-makefile-override-LDFLAGS-and-remove-obsolete-X11R6-.patch create mode 100644 package/irrlicht/Config.in create mode 100644 package/irrlicht/irrlicht.hash create mode 100644 package/irrlicht/irrlicht.mk create mode 100644 package/irssi/Config.in create mode 100644 package/irssi/irssi.hash create mode 100644 package/irssi/irssi.mk create mode 100644 package/isl/isl.hash create mode 100644 package/isl/isl.mk create mode 100644 package/iucode-tool/Config.in create mode 100644 package/iucode-tool/S00iucode-tool create mode 100644 package/iucode-tool/iucode-tool.hash create mode 100644 package/iucode-tool/iucode-tool.mk create mode 100644 package/iucode-tool/iucode.service create mode 100644 package/iw/Config.in create mode 100644 package/iw/iw.hash create mode 100644 package/iw/iw.mk create mode 100644 package/iwd/0001-src-storage.c-fix-build-with-uclibc.patch create mode 100644 package/iwd/Config.in create mode 100644 package/iwd/S40iwd create mode 100644 package/iwd/iwd.hash create mode 100644 package/iwd/iwd.mk create mode 100644 package/iwd/main.conf create mode 100644 package/jack1/Config.in create mode 100644 package/jack1/jack1.hash create mode 100644 package/jack1/jack1.mk create mode 100644 package/jack2/Config.in create mode 100644 package/jack2/jack2.hash create mode 100644 package/jack2/jack2.mk create mode 100644 package/jailhouse/Config.in create mode 100644 package/jailhouse/jailhouse.hash create mode 100644 package/jailhouse/jailhouse.mk create mode 100644 package/janet/Config.in create mode 100644 package/janet/janet.hash create mode 100644 package/janet/janet.mk create mode 100644 package/jansson/Config.in create mode 100644 package/jansson/jansson.hash create mode 100644 package/jansson/jansson.mk create mode 100644 package/janus-gateway/0001-disable-ssp.patch create mode 100644 package/janus-gateway/0002-Add-test-for-Wunused-but-set-variable.patch create mode 100644 package/janus-gateway/Config.in create mode 100644 package/janus-gateway/janus-gateway.hash create mode 100644 package/janus-gateway/janus-gateway.mk create mode 100644 package/janus-gateway/janus-gateway.service create mode 100644 package/jasper/Config.in create mode 100644 package/jasper/jasper.hash create mode 100644 package/jasper/jasper.mk create mode 100644 package/jbig2dec/Config.in create mode 100644 package/jbig2dec/jbig2dec.hash create mode 100644 package/jbig2dec/jbig2dec.mk create mode 100644 package/jemalloc/Config.in create mode 100644 package/jemalloc/jemalloc.hash create mode 100644 package/jemalloc/jemalloc.mk create mode 100644 package/jh71xx-tools/Config.in.host create mode 100644 package/jh71xx-tools/jh71xx-tools.hash create mode 100644 package/jh71xx-tools/jh71xx-tools.mk create mode 100644 package/jhead/Config.in create mode 100644 package/jhead/jhead.hash create mode 100644 package/jhead/jhead.mk create mode 100644 package/jimtcl/Config.in create mode 100644 package/jimtcl/jimtcl.hash create mode 100644 package/jimtcl/jimtcl.mk create mode 100644 package/jitterentropy-library/0001-Makefile-add-ENABLE_STACK_PROTECTOR.patch create mode 100644 package/jitterentropy-library/Config.in create mode 100644 package/jitterentropy-library/jitterentropy-library.hash create mode 100644 package/jitterentropy-library/jitterentropy-library.mk create mode 100644 package/jo/Config.in create mode 100644 package/jo/jo.hash create mode 100644 package/jo/jo.mk create mode 100644 package/joe/Config.in create mode 100644 package/joe/joe.hash create mode 100644 package/joe/joe.mk create mode 100644 package/jose/0001-lib-hsh.c-rename-hsh-local-variable.patch create mode 100644 package/jose/0002-man-add-option-to-skip-building-man-pages.patch create mode 100644 package/jose/Config.in create mode 100644 package/jose/jose.hash create mode 100644 package/jose/jose.mk create mode 100644 package/jpeg-turbo/Config.in.options create mode 100644 package/jpeg-turbo/jpeg-turbo.hash create mode 100644 package/jpeg-turbo/jpeg-turbo.mk create mode 100644 package/jpeg/Config.in create mode 100644 package/jpeg/jpeg.mk create mode 100644 package/jq/Config.in create mode 100644 package/jq/Config.in.host create mode 100644 package/jq/jq.hash create mode 100644 package/jq/jq.mk create mode 100644 package/jquery-datetimepicker/Config.in create mode 100644 package/jquery-datetimepicker/jquery-datetimepicker.hash create mode 100644 package/jquery-datetimepicker/jquery-datetimepicker.mk create mode 100644 package/jquery-keyboard/Config.in create mode 100644 package/jquery-keyboard/jquery-keyboard.hash create mode 100644 package/jquery-keyboard/jquery-keyboard.mk create mode 100644 package/jquery-mobile/Config.in create mode 100644 package/jquery-mobile/jquery-mobile.hash create mode 100644 package/jquery-mobile/jquery-mobile.mk create mode 100644 package/jquery-sidebar/Config.in create mode 100644 package/jquery-sidebar/jquery-sidebar.hash create mode 100644 package/jquery-sidebar/jquery-sidebar.mk create mode 100644 package/jquery-sparkline/Config.in create mode 100644 package/jquery-sparkline/jquery-sparkline.hash create mode 100644 package/jquery-sparkline/jquery-sparkline.mk create mode 100644 package/jquery-ui-themes/Config.in create mode 100644 package/jquery-ui-themes/jquery-ui-themes.hash create mode 100644 package/jquery-ui-themes/jquery-ui-themes.mk create mode 100644 package/jquery-ui/Config.in create mode 100644 package/jquery-ui/jquery-ui.hash create mode 100644 package/jquery-ui/jquery-ui.mk create mode 100644 package/jquery-validation/Config.in create mode 100644 package/jquery-validation/jquery-validation.hash create mode 100644 package/jquery-validation/jquery-validation.mk create mode 100644 package/jquery/Config.in create mode 100644 package/jquery/jquery.hash create mode 100644 package/jquery/jquery.mk create mode 100644 package/jsmin/Config.in create mode 100644 package/jsmin/Config.in.host create mode 100644 package/jsmin/jsmin.hash create mode 100644 package/jsmin/jsmin.mk create mode 100644 package/jsmn/Config.in create mode 100644 package/jsmn/jsmn.hash create mode 100644 package/jsmn/jsmn.mk create mode 100644 package/json-c/Config.in create mode 100644 package/json-c/json-c.hash create mode 100644 package/json-c/json-c.mk create mode 100644 package/json-for-modern-cpp/Config.in create mode 100644 package/json-for-modern-cpp/json-for-modern-cpp.hash create mode 100644 package/json-for-modern-cpp/json-for-modern-cpp.mk create mode 100644 package/json-glib/Config.in create mode 100644 package/json-glib/json-glib.hash create mode 100644 package/json-glib/json-glib.mk create mode 100644 package/json-javascript/Config.in create mode 100644 package/json-javascript/json-javascript.hash create mode 100644 package/json-javascript/json-javascript.mk create mode 100644 package/jsoncpp/Config.in create mode 100644 package/jsoncpp/jsoncpp.hash create mode 100644 package/jsoncpp/jsoncpp.mk create mode 100644 package/jszip/Config.in create mode 100644 package/jszip/jszip.hash create mode 100644 package/jszip/jszip.mk create mode 100644 package/kbd/Config.in create mode 100644 package/kbd/kbd.hash create mode 100644 package/kbd/kbd.mk create mode 100644 package/keepalived/0001-vrrp-nft-didn-t-support-meta-l4proro-until-Linux-3-14.patch create mode 100644 package/keepalived/0002-ipvs-nft-didn-t-support-meta-l4proro-until-Linux-3-14.patch create mode 100644 package/keepalived/0003-fix-build-with-libressl.patch create mode 100644 package/keepalived/Config.in create mode 100644 package/keepalived/keepalived.hash create mode 100644 package/keepalived/keepalived.mk create mode 100644 package/kexec-lite/0001-clean-restart.patch create mode 100644 package/kexec-lite/Config.in create mode 100644 package/kexec-lite/kexec-lite.hash create mode 100644 package/kexec-lite/kexec-lite.mk create mode 100644 package/kexec/Config.in create mode 100644 package/kexec/kexec.hash create mode 100644 package/kexec/kexec.mk create mode 100644 package/keyutils/0001-fix-install-rule.patch create mode 100644 package/keyutils/0002-cifs.patch create mode 100644 package/keyutils/Config.in create mode 100644 package/keyutils/keyutils.hash create mode 100644 package/keyutils/keyutils.mk create mode 100644 package/kf5/Config.in create mode 100644 package/kf5/kf5-extra-cmake-modules/Config.in create mode 100644 package/kf5/kf5-extra-cmake-modules/kf5-extra-cmake-modules.hash create mode 100644 package/kf5/kf5-extra-cmake-modules/kf5-extra-cmake-modules.mk create mode 100644 package/kf5/kf5-kcoreaddons/Config.in create mode 100644 package/kf5/kf5-kcoreaddons/kf5-kcoreaddons.hash create mode 100644 package/kf5/kf5-kcoreaddons/kf5-kcoreaddons.mk create mode 100644 package/kf5/kf5-modemmanager-qt/Config.in create mode 100644 package/kf5/kf5-modemmanager-qt/kf5-modemmanager-qt.hash create mode 100644 package/kf5/kf5-modemmanager-qt/kf5-modemmanager-qt.mk create mode 100644 package/kf5/kf5-networkmanager-qt/Config.in create mode 100644 package/kf5/kf5-networkmanager-qt/kf5-networkmanager-qt.hash create mode 100644 package/kf5/kf5-networkmanager-qt/kf5-networkmanager-qt.mk create mode 100644 package/kf5/kf5.mk create mode 100644 package/kismet/Config.in create mode 100644 package/kismet/kismet.hash create mode 100644 package/kismet/kismet.mk create mode 100644 package/kmod/0001-fix-O_CLOEXEC.patch create mode 100644 package/kmod/Config.in create mode 100644 package/kmod/Config.in.host create mode 100644 package/kmod/kmod.hash create mode 100644 package/kmod/kmod.mk create mode 100644 package/kmscube/Config.in create mode 100644 package/kmscube/kmscube.hash create mode 100644 package/kmscube/kmscube.mk create mode 100644 package/kmsxx/Config.in create mode 100644 package/kmsxx/kmsxx.hash create mode 100644 package/kmsxx/kmsxx.mk create mode 100644 package/knock/Config.in create mode 100644 package/knock/knock.hash create mode 100644 package/knock/knock.mk create mode 100644 package/kodi-audiodecoder-modplug/Config.in create mode 100644 package/kodi-audiodecoder-modplug/kodi-audiodecoder-modplug.hash create mode 100644 package/kodi-audiodecoder-modplug/kodi-audiodecoder-modplug.mk create mode 100644 package/kodi-audiodecoder-nosefart/Config.in create mode 100644 package/kodi-audiodecoder-nosefart/kodi-audiodecoder-nosefart.hash create mode 100644 package/kodi-audiodecoder-nosefart/kodi-audiodecoder-nosefart.mk create mode 100644 package/kodi-audiodecoder-sidplay/Config.in create mode 100644 package/kodi-audiodecoder-sidplay/kodi-audiodecoder-sidplay.hash create mode 100644 package/kodi-audiodecoder-sidplay/kodi-audiodecoder-sidplay.mk create mode 100644 package/kodi-audiodecoder-snesapu/Config.in create mode 100644 package/kodi-audiodecoder-snesapu/kodi-audiodecoder-snesapu.hash create mode 100644 package/kodi-audiodecoder-snesapu/kodi-audiodecoder-snesapu.mk create mode 100644 package/kodi-audiodecoder-stsound/Config.in create mode 100644 package/kodi-audiodecoder-stsound/kodi-audiodecoder-stsound.hash create mode 100644 package/kodi-audiodecoder-stsound/kodi-audiodecoder-stsound.mk create mode 100644 package/kodi-audiodecoder-timidity/Config.in create mode 100644 package/kodi-audiodecoder-timidity/kodi-audiodecoder-timidity.hash create mode 100644 package/kodi-audiodecoder-timidity/kodi-audiodecoder-timidity.mk create mode 100644 package/kodi-audiodecoder-vgmstream/Config.in create mode 100644 package/kodi-audiodecoder-vgmstream/kodi-audiodecoder-vgmstream.hash create mode 100644 package/kodi-audiodecoder-vgmstream/kodi-audiodecoder-vgmstream.mk create mode 100644 package/kodi-audioencoder-flac/Config.in create mode 100644 package/kodi-audioencoder-flac/kodi-audioencoder-flac.hash create mode 100644 package/kodi-audioencoder-flac/kodi-audioencoder-flac.mk create mode 100644 package/kodi-audioencoder-lame/Config.in create mode 100644 package/kodi-audioencoder-lame/kodi-audioencoder-lame.hash create mode 100644 package/kodi-audioencoder-lame/kodi-audioencoder-lame.mk create mode 100644 package/kodi-audioencoder-vorbis/Config.in create mode 100644 package/kodi-audioencoder-vorbis/kodi-audioencoder-vorbis.hash create mode 100644 package/kodi-audioencoder-vorbis/kodi-audioencoder-vorbis.mk create mode 100644 package/kodi-audioencoder-wav/Config.in create mode 100644 package/kodi-audioencoder-wav/kodi-audioencoder-wav.hash create mode 100644 package/kodi-audioencoder-wav/kodi-audioencoder-wav.mk create mode 100644 package/kodi-inputstream-adaptive/Config.in create mode 100644 package/kodi-inputstream-adaptive/kodi-inputstream-adaptive.hash create mode 100644 package/kodi-inputstream-adaptive/kodi-inputstream-adaptive.mk create mode 100644 package/kodi-inputstream-ffmpegdirect/Config.in create mode 100644 package/kodi-inputstream-ffmpegdirect/kodi-inputstream-ffmpegdirect.hash create mode 100644 package/kodi-inputstream-ffmpegdirect/kodi-inputstream-ffmpegdirect.mk create mode 100644 package/kodi-inputstream-rtmp/Config.in create mode 100644 package/kodi-inputstream-rtmp/kodi-inputstream-rtmp.hash create mode 100644 package/kodi-inputstream-rtmp/kodi-inputstream-rtmp.mk create mode 120000 package/kodi-jsonschemabuilder/kodi-jsonschemabuilder.hash create mode 100644 package/kodi-jsonschemabuilder/kodi-jsonschemabuilder.mk create mode 100644 package/kodi-peripheral-joystick/Config.in create mode 100644 package/kodi-peripheral-joystick/kodi-peripheral-joystick.hash create mode 100644 package/kodi-peripheral-joystick/kodi-peripheral-joystick.mk create mode 100644 package/kodi-peripheral-xarcade/Config.in create mode 100644 package/kodi-peripheral-xarcade/kodi-peripheral-xarcade.hash create mode 100644 package/kodi-peripheral-xarcade/kodi-peripheral-xarcade.mk create mode 100644 package/kodi-pvr-argustv/Config.in create mode 100644 package/kodi-pvr-argustv/kodi-pvr-argustv.hash create mode 100644 package/kodi-pvr-argustv/kodi-pvr-argustv.mk create mode 100644 package/kodi-pvr-dvblink/Config.in create mode 100644 package/kodi-pvr-dvblink/kodi-pvr-dvblink.hash create mode 100644 package/kodi-pvr-dvblink/kodi-pvr-dvblink.mk create mode 100644 package/kodi-pvr-dvbviewer/Config.in create mode 100644 package/kodi-pvr-dvbviewer/kodi-pvr-dvbviewer.hash create mode 100644 package/kodi-pvr-dvbviewer/kodi-pvr-dvbviewer.mk create mode 100644 package/kodi-pvr-filmon/Config.in create mode 100644 package/kodi-pvr-filmon/kodi-pvr-filmon.hash create mode 100644 package/kodi-pvr-filmon/kodi-pvr-filmon.mk create mode 100644 package/kodi-pvr-hdhomerun/Config.in create mode 100644 package/kodi-pvr-hdhomerun/kodi-pvr-hdhomerun.hash create mode 100644 package/kodi-pvr-hdhomerun/kodi-pvr-hdhomerun.mk create mode 100644 package/kodi-pvr-hts/Config.in create mode 100644 package/kodi-pvr-hts/kodi-pvr-hts.hash create mode 100644 package/kodi-pvr-hts/kodi-pvr-hts.mk create mode 100644 package/kodi-pvr-iptvsimple/Config.in create mode 100644 package/kodi-pvr-iptvsimple/kodi-pvr-iptvsimple.hash create mode 100644 package/kodi-pvr-iptvsimple/kodi-pvr-iptvsimple.mk create mode 100644 package/kodi-pvr-mediaportal-tvserver/Config.in create mode 100644 package/kodi-pvr-mediaportal-tvserver/kodi-pvr-mediaportal-tvserver.hash create mode 100644 package/kodi-pvr-mediaportal-tvserver/kodi-pvr-mediaportal-tvserver.mk create mode 100644 package/kodi-pvr-mythtv/Config.in create mode 100644 package/kodi-pvr-mythtv/kodi-pvr-mythtv.hash create mode 100644 package/kodi-pvr-mythtv/kodi-pvr-mythtv.mk create mode 100644 package/kodi-pvr-nextpvr/Config.in create mode 100644 package/kodi-pvr-nextpvr/kodi-pvr-nextpvr.hash create mode 100644 package/kodi-pvr-nextpvr/kodi-pvr-nextpvr.mk create mode 100644 package/kodi-pvr-njoy/Config.in create mode 100644 package/kodi-pvr-njoy/kodi-pvr-njoy.hash create mode 100644 package/kodi-pvr-njoy/kodi-pvr-njoy.mk create mode 100644 package/kodi-pvr-octonet/Config.in create mode 100644 package/kodi-pvr-octonet/kodi-pvr-octonet.hash create mode 100644 package/kodi-pvr-octonet/kodi-pvr-octonet.mk create mode 100644 package/kodi-pvr-pctv/Config.in create mode 100644 package/kodi-pvr-pctv/kodi-pvr-pctv.hash create mode 100644 package/kodi-pvr-pctv/kodi-pvr-pctv.mk create mode 100644 package/kodi-pvr-plutotv/Config.in create mode 100644 package/kodi-pvr-plutotv/kodi-pvr-plutotv.hash create mode 100644 package/kodi-pvr-plutotv/kodi-pvr-plutotv.mk create mode 100644 package/kodi-pvr-stalker/Config.in create mode 100644 package/kodi-pvr-stalker/kodi-pvr-stalker.hash create mode 100644 package/kodi-pvr-stalker/kodi-pvr-stalker.mk create mode 100644 package/kodi-pvr-vbox/Config.in create mode 100644 package/kodi-pvr-vbox/kodi-pvr-vbox.hash create mode 100644 package/kodi-pvr-vbox/kodi-pvr-vbox.mk create mode 100644 package/kodi-pvr-vdr-vnsi/Config.in create mode 100644 package/kodi-pvr-vdr-vnsi/kodi-pvr-vdr-vnsi.hash create mode 100644 package/kodi-pvr-vdr-vnsi/kodi-pvr-vdr-vnsi.mk create mode 100644 package/kodi-pvr-vuplus/Config.in create mode 100644 package/kodi-pvr-vuplus/kodi-pvr-vuplus.hash create mode 100644 package/kodi-pvr-vuplus/kodi-pvr-vuplus.mk create mode 100644 package/kodi-pvr-waipu/Config.in create mode 100644 package/kodi-pvr-waipu/kodi-pvr-waipu.hash create mode 100644 package/kodi-pvr-waipu/kodi-pvr-waipu.mk create mode 100644 package/kodi-pvr-wmc/Config.in create mode 100644 package/kodi-pvr-wmc/kodi-pvr-wmc.hash create mode 100644 package/kodi-pvr-wmc/kodi-pvr-wmc.mk create mode 100644 package/kodi-pvr-zattoo/Config.in create mode 100644 package/kodi-pvr-zattoo/kodi-pvr-zattoo.hash create mode 100644 package/kodi-pvr-zattoo/kodi-pvr-zattoo.mk create mode 100644 package/kodi-screensaver-asteroids/Config.in create mode 100644 package/kodi-screensaver-asteroids/kodi-screensaver-asteroids.hash create mode 100644 package/kodi-screensaver-asteroids/kodi-screensaver-asteroids.mk create mode 100644 package/kodi-screensaver-asterwave/Config.in create mode 100644 package/kodi-screensaver-asterwave/kodi-screensaver-asterwave.hash create mode 100644 package/kodi-screensaver-asterwave/kodi-screensaver-asterwave.mk create mode 100644 package/kodi-screensaver-biogenesis/Config.in create mode 100644 package/kodi-screensaver-biogenesis/kodi-screensaver-biogenesis.hash create mode 100644 package/kodi-screensaver-biogenesis/kodi-screensaver-biogenesis.mk create mode 100644 package/kodi-screensaver-cpblobs/Config.in create mode 100644 package/kodi-screensaver-cpblobs/kodi-screensaver-cpblobs.hash create mode 100644 package/kodi-screensaver-cpblobs/kodi-screensaver-cpblobs.mk create mode 100644 package/kodi-screensaver-greynetic/Config.in create mode 100644 package/kodi-screensaver-greynetic/kodi-screensaver-greynetic.hash create mode 100644 package/kodi-screensaver-greynetic/kodi-screensaver-greynetic.mk create mode 100644 package/kodi-screensaver-matrixtrails/Config.in create mode 100644 package/kodi-screensaver-matrixtrails/kodi-screensaver-matrixtrails.hash create mode 100644 package/kodi-screensaver-matrixtrails/kodi-screensaver-matrixtrails.mk create mode 100644 package/kodi-screensaver-pingpong/Config.in create mode 100644 package/kodi-screensaver-pingpong/kodi-screensaver-pingpong.hash create mode 100644 package/kodi-screensaver-pingpong/kodi-screensaver-pingpong.mk create mode 100644 package/kodi-screensaver-pyro/Config.in create mode 100644 package/kodi-screensaver-pyro/kodi-screensaver-pyro.hash create mode 100644 package/kodi-screensaver-pyro/kodi-screensaver-pyro.mk create mode 100644 package/kodi-screensaver-rsxs/Config.in create mode 100644 package/kodi-screensaver-rsxs/kodi-screensaver-rsxs.hash create mode 100644 package/kodi-screensaver-rsxs/kodi-screensaver-rsxs.mk create mode 100644 package/kodi-screensaver-stars/Config.in create mode 100644 package/kodi-screensaver-stars/kodi-screensaver-stars.hash create mode 100644 package/kodi-screensaver-stars/kodi-screensaver-stars.mk create mode 100644 package/kodi-skin-confluence/Config.in create mode 100644 package/kodi-skin-confluence/kodi-skin-confluence.hash create mode 100644 package/kodi-skin-confluence/kodi-skin-confluence.mk create mode 100644 package/kodi-texturepacker/0001-texturepacker.patch create mode 100644 package/kodi-texturepacker/0002-fix-texture-packer-cmake-source-dir.patch create mode 120000 package/kodi-texturepacker/kodi-texturepacker.hash create mode 100644 package/kodi-texturepacker/kodi-texturepacker.mk create mode 100644 package/kodi-vfs-libarchive/Config.in create mode 100644 package/kodi-vfs-libarchive/kodi-vfs-libarchive.hash create mode 100644 package/kodi-vfs-libarchive/kodi-vfs-libarchive.mk create mode 100644 package/kodi-vfs-rar/Config.in create mode 100644 package/kodi-vfs-rar/kodi-vfs-rar.hash create mode 100644 package/kodi-vfs-rar/kodi-vfs-rar.mk create mode 100644 package/kodi-vfs-sftp/Config.in create mode 100644 package/kodi-vfs-sftp/kodi-vfs-sftp.hash create mode 100644 package/kodi-vfs-sftp/kodi-vfs-sftp.mk create mode 100644 package/kodi-visualisation-fishbmc/Config.in create mode 100644 package/kodi-visualisation-fishbmc/kodi-visualisation-fishbmc.hash create mode 100644 package/kodi-visualisation-fishbmc/kodi-visualisation-fishbmc.mk create mode 100644 package/kodi-visualisation-goom/Config.in create mode 100644 package/kodi-visualisation-goom/kodi-visualisation-goom.hash create mode 100644 package/kodi-visualisation-goom/kodi-visualisation-goom.mk create mode 100644 package/kodi-visualisation-matrix/Config.in create mode 100644 package/kodi-visualisation-matrix/kodi-visualisation-matrix.hash create mode 100644 package/kodi-visualisation-matrix/kodi-visualisation-matrix.mk create mode 100644 package/kodi-visualisation-shadertoy/Config.in create mode 100644 package/kodi-visualisation-shadertoy/kodi-visualisation-shadertoy.hash create mode 100644 package/kodi-visualisation-shadertoy/kodi-visualisation-shadertoy.mk create mode 100644 package/kodi-visualisation-spectrum/Config.in create mode 100644 package/kodi-visualisation-spectrum/kodi-visualisation-spectrum.hash create mode 100644 package/kodi-visualisation-spectrum/kodi-visualisation-spectrum.mk create mode 100644 package/kodi-visualisation-starburst/Config.in create mode 100644 package/kodi-visualisation-starburst/kodi-visualisation-starburst.hash create mode 100644 package/kodi-visualisation-starburst/kodi-visualisation-starburst.mk create mode 100644 package/kodi-visualisation-waveform/Config.in create mode 100644 package/kodi-visualisation-waveform/kodi-visualisation-waveform.hash create mode 100644 package/kodi-visualisation-waveform/kodi-visualisation-waveform.mk create mode 100644 package/kodi/0001-kodi-config.cmake-use-CMAKE_FIND_ROOT_PATH-to-fix-cr.patch create mode 100644 package/kodi/0002-cmake-findpython.patch create mode 100644 package/kodi/0003-cmake-search-for-python-interpreter.patch create mode 100644 package/kodi/0004-cmake-allow-to-override-PYTHON_EXECUTABLE.patch create mode 100644 package/kodi/Config.in create mode 100644 package/kodi/S50kodi create mode 100755 package/kodi/br-kodi create mode 100644 package/kodi/kodi.hash create mode 100644 package/kodi/kodi.mk create mode 100644 package/kodi/kodi.service create mode 100644 package/kompexsqlite/Config.in create mode 100644 package/kompexsqlite/kompexsqlite.hash create mode 100644 package/kompexsqlite/kompexsqlite.mk create mode 100644 package/ksmbd-tools/Config.in create mode 100644 package/ksmbd-tools/ksmbd-tools.hash create mode 100644 package/ksmbd-tools/ksmbd-tools.mk create mode 100644 package/kvazaar/Config.in create mode 100644 package/kvazaar/kvazaar.hash create mode 100644 package/kvazaar/kvazaar.mk create mode 100644 package/kvm-unit-tests/0001-Makefile-remove-Werror-to-avoid-build-failures.patch create mode 100644 package/kvm-unit-tests/Config.in create mode 100644 package/kvm-unit-tests/kvm-unit-tests.hash create mode 100644 package/kvm-unit-tests/kvm-unit-tests.mk create mode 100644 package/kvmtool/Config.in create mode 100644 package/kvmtool/kvmtool.hash create mode 100644 package/kvmtool/kvmtool.mk create mode 100644 package/kyua/Config.in create mode 100644 package/kyua/kyua.hash create mode 100644 package/kyua/kyua.mk create mode 100644 package/lame/Config.in create mode 100644 package/lame/lame.hash create mode 100644 package/lame/lame.mk create mode 100644 package/lapack/Config.in create mode 100644 package/lapack/lapack.hash create mode 100644 package/lapack/lapack.mk create mode 100644 package/latencytop/0001-makefile.patch create mode 100644 package/latencytop/Config.in create mode 100644 package/latencytop/latencytop.hash create mode 100644 package/latencytop/latencytop.mk create mode 100644 package/lbase64/0001-retro-compatible-with-Lua-5.1.patch create mode 100644 package/lbase64/Config.in create mode 100644 package/lbase64/lbase64.hash create mode 100644 package/lbase64/lbase64.mk create mode 100644 package/lbreakout2/Config.in create mode 100644 package/lbreakout2/lbreakout2.hash create mode 100644 package/lbreakout2/lbreakout2.mk create mode 100644 package/lcdapi/Config.in create mode 100644 package/lcdapi/lcdapi.hash create mode 100644 package/lcdapi/lcdapi.mk create mode 100644 package/lcdproc/0001-LCDd.conf.patch create mode 100644 package/lcdproc/0002-Add-missing-ioctl-header.patch create mode 100644 package/lcdproc/0003-Fixcompilation-with-GCC-10-x.patch create mode 100644 package/lcdproc/Config.in create mode 100644 package/lcdproc/lcdproc.hash create mode 100644 package/lcdproc/lcdproc.mk create mode 100644 package/lcms2/Config.in create mode 100644 package/lcms2/lcms2.hash create mode 100644 package/lcms2/lcms2.mk create mode 100644 package/leafnode2/0001-cross_makefile.patch create mode 100644 package/leafnode2/Config.in create mode 100644 package/leafnode2/leafnode2.hash create mode 100644 package/leafnode2/leafnode2.mk create mode 100644 package/leafpad/Config.in create mode 100644 package/leafpad/leafpad.hash create mode 100644 package/leafpad/leafpad.mk create mode 100644 package/lensfun/Config.in create mode 100644 package/lensfun/lensfun.hash create mode 100644 package/lensfun/lensfun.mk create mode 100644 package/leptonica/Config.in create mode 100644 package/leptonica/leptonica.hash create mode 100644 package/leptonica/leptonica.mk create mode 100644 package/less/Config.in create mode 100644 package/less/less.hash create mode 100644 package/less/less.mk create mode 100644 package/lesstif/Config.in create mode 100644 package/lesstif/lesstif.hash create mode 100644 package/lesstif/lesstif.mk create mode 100644 package/let-me-create/0001-fix-build-with-musl-C-library.patch create mode 100644 package/let-me-create/Config.in create mode 100644 package/let-me-create/let-me-create.hash create mode 100644 package/let-me-create/let-me-create.mk create mode 100644 package/leveldb/0001-Fix-compilation-with-g-4.8.2.patch create mode 100644 package/leveldb/0002-CMake-install-libmemenv.a.patch create mode 100644 package/leveldb/0003-CMakeLists.txt-check-for-atomic-library.patch create mode 100644 package/leveldb/0004-cmake-Use-find_package-to-find-Snappy.patch create mode 100644 package/leveldb/Config.in create mode 100644 package/leveldb/leveldb.hash create mode 100644 package/leveldb/leveldb.mk create mode 100644 package/lft/Config.in create mode 100644 package/lft/lft.hash create mode 100644 package/lft/lft.mk create mode 100644 package/lftp/0001-Fix-build-with-LibreSSL-following-commit-537f37898.patch create mode 100644 package/lftp/0002-src-lftp_ssl.c-fix-build-with-libressl-2.7.0.patch create mode 100644 package/lftp/Config.in create mode 100644 package/lftp/lftp.hash create mode 100644 package/lftp/lftp.mk create mode 100644 package/libaacs/Config.in create mode 100644 package/libaacs/libaacs.hash create mode 100644 package/libaacs/libaacs.mk create mode 100644 package/libabseil-cpp/0001-force-position-independent-code.patch create mode 100644 package/libabseil-cpp/Config.in create mode 100644 package/libabseil-cpp/libabseil-cpp.hash create mode 100644 package/libabseil-cpp/libabseil-cpp.mk create mode 100644 package/libaio/Config.in create mode 100644 package/libaio/libaio.hash create mode 100644 package/libaio/libaio.mk create mode 100644 package/libao/Config.in create mode 100644 package/libao/libao.hash create mode 100644 package/libao/libao.mk create mode 100644 package/libapparmor/Config.in create mode 100644 package/libapparmor/libapparmor.hash create mode 100644 package/libapparmor/libapparmor.mk create mode 100644 package/libarchive/Config.in create mode 100644 package/libarchive/libarchive.hash create mode 100644 package/libarchive/libarchive.mk create mode 100644 package/libargon2/0001-libargon2-dont-fail-on-existing-symlink.patch create mode 100644 package/libargon2/Config.in create mode 100644 package/libargon2/libargon2.hash create mode 100644 package/libargon2/libargon2.mk create mode 100644 package/libargtable2/Config.in create mode 100644 package/libargtable2/libargtable2.hash create mode 100644 package/libargtable2/libargtable2.mk create mode 100644 package/libart/0001-art-config-cross.patch create mode 100644 package/libart/Config.in create mode 100644 package/libart/libart.hash create mode 100644 package/libart/libart.mk create mode 100644 package/libasplib/0001-asplib_CPUTimer.h-Fix-time.h-include.patch create mode 100644 package/libasplib/Config.in create mode 100644 package/libasplib/libasplib.hash create mode 100644 package/libasplib/libasplib.mk create mode 100644 package/libass/Config.in create mode 100644 package/libass/libass.hash create mode 100644 package/libass/libass.mk create mode 100644 package/libassuan/Config.in create mode 100644 package/libassuan/libassuan.hash create mode 100644 package/libassuan/libassuan.mk create mode 100644 package/libatasmart/0001-strpool-cross-flags.patch create mode 100644 package/libatasmart/Config.in create mode 100644 package/libatasmart/libatasmart.hash create mode 100644 package/libatasmart/libatasmart.mk create mode 100644 package/libatomic_ops/Config.in create mode 100644 package/libatomic_ops/libatomic_ops.hash create mode 100644 package/libatomic_ops/libatomic_ops.mk create mode 100644 package/libavl/0001-fix-makefile.patch create mode 100644 package/libavl/Config.in create mode 100644 package/libavl/libavl.hash create mode 100644 package/libavl/libavl.mk create mode 100644 package/libb2/Config.in create mode 100644 package/libb2/libb2.hash create mode 100644 package/libb2/libb2.mk create mode 100644 package/libb64/0001-Integer-overflows.patch create mode 100644 package/libb64/0002-Initialize-C++-objects.patch create mode 100644 package/libb64/Config.in create mode 100644 package/libb64/libb64.hash create mode 100644 package/libb64/libb64.mk create mode 100644 package/libbacktrace/Config.in create mode 100644 package/libbacktrace/libbacktrace.hash create mode 100644 package/libbacktrace/libbacktrace.mk create mode 100644 package/libbdplus/Config.in create mode 100644 package/libbdplus/libbdplus.hash create mode 100644 package/libbdplus/libbdplus.mk create mode 100644 package/libblockdev/0001-Provide-replacement-function-for-strerror_l.patch create mode 100644 package/libblockdev/Config.in create mode 100644 package/libblockdev/libblockdev.hash create mode 100644 package/libblockdev/libblockdev.mk create mode 100644 package/libbluray/Config.in create mode 100644 package/libbluray/libbluray.hash create mode 100644 package/libbluray/libbluray.mk create mode 100644 package/libbpf/Config.in create mode 100644 package/libbpf/libbpf.hash create mode 100644 package/libbpf/libbpf.mk create mode 100644 package/libbroadvoice/Config.in create mode 100644 package/libbroadvoice/libbroadvoice.hash create mode 100644 package/libbroadvoice/libbroadvoice.mk create mode 100644 package/libbsd/0001-src-local-elf.h-fix-big-endian-sh.patch create mode 100644 package/libbsd/Config.in create mode 100644 package/libbsd/libbsd.hash create mode 100644 package/libbsd/libbsd.mk create mode 100644 package/libbson/Config.in create mode 100644 package/libbson/libbson.hash create mode 100644 package/libbson/libbson.mk create mode 100644 package/libbytesize/Config.in create mode 100644 package/libbytesize/libbytesize.hash create mode 100644 package/libbytesize/libbytesize.mk create mode 100644 package/libcamera-apps/0001-cmake-remove-Werror-and-Wfatal-errors-compiler-comma.patch create mode 100644 package/libcamera-apps/0002-preview-fix-egl_preview-compile-conversion-from-Wind.patch create mode 100644 package/libcamera-apps/Config.in create mode 100644 package/libcamera-apps/libcamera-apps.hash create mode 100644 package/libcamera-apps/libcamera-apps.mk create mode 100644 package/libcamera/Config.in create mode 100644 package/libcamera/libcamera.hash create mode 100644 package/libcamera/libcamera.mk create mode 100644 package/libcap-ng/Config.in create mode 100644 package/libcap-ng/libcap-ng.hash create mode 100644 package/libcap-ng/libcap-ng.mk create mode 100644 package/libcap/Config.in create mode 100644 package/libcap/libcap.hash create mode 100644 package/libcap/libcap.mk create mode 100644 package/libcdaudio/0001-libcdaudio-enable-autoreconf.patch create mode 100644 package/libcdaudio/Config.in create mode 100644 package/libcdaudio/libcdaudio.hash create mode 100644 package/libcdaudio/libcdaudio.mk create mode 100644 package/libcddb/Config.in create mode 100644 package/libcddb/libcddb.hash create mode 100644 package/libcddb/libcddb.mk create mode 100644 package/libcdio-paranoia/Config.in create mode 100644 package/libcdio-paranoia/libcdio-paranoia.hash create mode 100644 package/libcdio-paranoia/libcdio-paranoia.mk create mode 100644 package/libcdio/Config.in create mode 100644 package/libcdio/libcdio.hash create mode 100644 package/libcdio/libcdio.mk create mode 100644 package/libcec/0001-cecloader-h-fix-null-return.patch create mode 100644 package/libcec/Config.in create mode 100644 package/libcec/libcec.hash create mode 100644 package/libcec/libcec.mk create mode 100644 package/libcgi/0001-CMakeLists.txt-honour-BUILD_TESTING.patch create mode 100644 package/libcgi/Config.in create mode 100644 package/libcgi/libcgi.hash create mode 100644 package/libcgi/libcgi.mk create mode 100644 package/libcgicc/0001-disable-documentation-option.patch create mode 100644 package/libcgicc/Config.in create mode 100644 package/libcgicc/libcgicc.hash create mode 100644 package/libcgicc/libcgicc.mk create mode 100644 package/libcgroup/Config.in create mode 100644 package/libcgroup/libcgroup.hash create mode 100644 package/libcgroup/libcgroup.mk create mode 100644 package/libclc/0001-support-out-of-tree-build.patch create mode 100644 package/libclc/Config.in create mode 100644 package/libclc/libclc.hash create mode 100644 package/libclc/libclc.mk create mode 100644 package/libcli/Config.in create mode 100644 package/libcli/libcli.hash create mode 100644 package/libcli/libcli.mk create mode 100644 package/libcoap/Config.in create mode 100644 package/libcoap/libcoap.hash create mode 100644 package/libcoap/libcoap.mk create mode 100644 package/libcodec2/Config.in create mode 100644 package/libcodec2/libcodec2.hash create mode 100644 package/libcodec2/libcodec2.mk create mode 100644 package/libcofi/Config.in create mode 100644 package/libcofi/libcofi.hash create mode 100644 package/libcofi/libcofi.mk create mode 100644 package/libconfig/Config.in create mode 100644 package/libconfig/libconfig.hash create mode 100644 package/libconfig/libconfig.mk create mode 100644 package/libconfuse/0001-Fix-163-unterminated-username-used-with-getpwnam.patch create mode 100644 package/libconfuse/Config.in create mode 100644 package/libconfuse/libconfuse.hash create mode 100644 package/libconfuse/libconfuse.mk create mode 100644 package/libcorrect/0001-CMakeLists.txt-conditionally-use-Wpedantic.patch create mode 100644 package/libcorrect/0002-CMakeLists.txt-conditionally-use-fsanitize-address.patch create mode 100644 package/libcorrect/Config.in create mode 100644 package/libcorrect/libcorrect.hash create mode 100644 package/libcorrect/libcorrect.mk create mode 100644 package/libcpprestsdk/Config.in create mode 100644 package/libcpprestsdk/libcpprestsdk.hash create mode 100644 package/libcpprestsdk/libcpprestsdk.mk create mode 100644 package/libcrossguid/Config.in create mode 100644 package/libcrossguid/libcrossguid.hash create mode 100644 package/libcrossguid/libcrossguid.mk create mode 100644 package/libcsv/Config.in create mode 100644 package/libcsv/libcsv.hash create mode 100644 package/libcsv/libcsv.mk create mode 100644 package/libcue/Config.in create mode 100644 package/libcue/libcue.hash create mode 100644 package/libcue/libcue.mk create mode 100644 package/libcuefile/0001-fix-static-link.patch create mode 100644 package/libcuefile/Config.in create mode 100644 package/libcuefile/libcuefile.hash create mode 100644 package/libcuefile/libcuefile.mk create mode 100644 package/libcurl/0001-easy_lock-h-include-sched-h-if-available-to-fix-build.patch create mode 100644 package/libcurl/0002-configure-check-for-the-stdatomic.h-header-in-config.patch create mode 100644 package/libcurl/Config.in create mode 100644 package/libcurl/libcurl.hash create mode 100644 package/libcurl/libcurl.mk create mode 100644 package/libcutl/libcutl.hash create mode 100644 package/libcutl/libcutl.mk create mode 100644 package/libdaemon/0001-testd-use-unistd-h-instead-of-sys-unistd-h.patch create mode 100644 package/libdaemon/Config.in create mode 100644 package/libdaemon/libdaemon.hash create mode 100644 package/libdaemon/libdaemon.mk create mode 100644 package/libdbi-drivers/Config.in create mode 100644 package/libdbi-drivers/libdbi-drivers.hash create mode 100644 package/libdbi-drivers/libdbi-drivers.mk create mode 100644 package/libdbi/Config.in create mode 100644 package/libdbi/libdbi.hash create mode 100644 package/libdbi/libdbi.mk create mode 100644 package/libdcadec/Config.in create mode 100644 package/libdcadec/libdcadec.hash create mode 100644 package/libdcadec/libdcadec.mk create mode 100644 package/libdeflate/Config.in create mode 100644 package/libdeflate/libdeflate.hash create mode 100644 package/libdeflate/libdeflate.mk create mode 100644 package/libdill/Config.in create mode 100644 package/libdill/libdill.hash create mode 100644 package/libdill/libdill.mk create mode 100644 package/libdmtx/Config.in create mode 100644 package/libdmtx/libdmtx.hash create mode 100644 package/libdmtx/libdmtx.mk create mode 100644 package/libdnet/0001-python-makefile.patch create mode 100644 package/libdnet/Config.in create mode 100644 package/libdnet/libdnet.hash create mode 100644 package/libdnet/libdnet.mk create mode 100644 package/libdri2/Config.in create mode 100644 package/libdri2/libdri2.hash create mode 100644 package/libdri2/libdri2.mk create mode 100644 package/libdrm/0001-tests-meson.build-disable-nouveau-tests-for-static-b.patch create mode 100644 package/libdrm/Config.in create mode 100644 package/libdrm/libdrm.hash create mode 100644 package/libdrm/libdrm.mk create mode 100644 package/libdvbcsa/0001-altivec-powerpc64.patch create mode 100644 package/libdvbcsa/Config.in create mode 100644 package/libdvbcsa/libdvbcsa.hash create mode 100644 package/libdvbcsa/libdvbcsa.mk create mode 100644 package/libdvbpsi/Config.in create mode 100644 package/libdvbpsi/libdvbpsi.hash create mode 100644 package/libdvbpsi/libdvbpsi.mk create mode 100644 package/libdvbsi/Config.in create mode 100644 package/libdvbsi/libdvbsi.hash create mode 100644 package/libdvbsi/libdvbsi.mk create mode 100644 package/libdvdcss/Config.in create mode 100644 package/libdvdcss/libdvdcss.hash create mode 100644 package/libdvdcss/libdvdcss.mk create mode 100644 package/libdvdnav/Config.in create mode 100644 package/libdvdnav/libdvdnav.hash create mode 100644 package/libdvdnav/libdvdnav.mk create mode 100644 package/libdvdread/Config.in create mode 100644 package/libdvdread/libdvdread.hash create mode 100644 package/libdvdread/libdvdread.mk create mode 100644 package/libeXosip2/0001-src-eXtl_dtls.c-fix-build-with-libressl-3.4.1.patch create mode 100644 package/libeXosip2/Config.in create mode 100644 package/libeXosip2/libeXosip2.hash create mode 100644 package/libeXosip2/libeXosip2.mk create mode 100644 package/libeastl/Config.in create mode 100644 package/libeastl/libeastl.hash create mode 100644 package/libeastl/libeastl.mk create mode 100644 package/libebml/0001-include-appropriate-header-files-for-std-numeric_limits.patch create mode 100644 package/libebml/Config.in create mode 100644 package/libebml/libebml.hash create mode 100644 package/libebml/libebml.mk create mode 100644 package/libebur128/Config.in create mode 100644 package/libebur128/libebur128.hash create mode 100644 package/libebur128/libebur128.mk create mode 100644 package/libedit/0001-check-bsd-functions-in-libbsd.patch create mode 100644 package/libedit/Config.in create mode 100644 package/libedit/libedit.hash create mode 100644 package/libedit/libedit.mk create mode 100644 package/libee/Config.in create mode 100644 package/libee/libee.hash create mode 100644 package/libee/libee.mk create mode 100644 package/libenca/Config.in create mode 100644 package/libenca/libenca.hash create mode 100644 package/libenca/libenca.mk create mode 100644 package/libepoxy/Config.in create mode 100644 package/libepoxy/libepoxy.hash create mode 100644 package/libepoxy/libepoxy.mk create mode 100644 package/liberation/Config.in create mode 100644 package/liberation/liberation.hash create mode 100644 package/liberation/liberation.mk create mode 100644 package/libesmtp/Config.in create mode 100644 package/libesmtp/libesmtp.hash create mode 100644 package/libesmtp/libesmtp.mk create mode 100644 package/libest/0005-configure.ac-remove-duplicate-invocation-of-AM_INIT_.patch create mode 100644 package/libest/0006-src-est-est_locl.h-add-missing-extern-on-e_ctx_ssl_e.patch create mode 100644 package/libest/Config.in create mode 100644 package/libest/libest.hash create mode 100644 package/libest/libest.mk create mode 100644 package/libest/libest.pc create mode 100644 package/libestr/Config.in create mode 100644 package/libestr/libestr.hash create mode 100644 package/libestr/libestr.mk create mode 100644 package/libev/Config.in create mode 100644 package/libev/libev.hash create mode 100644 package/libev/libev.mk create mode 100644 package/libevdev/Config.in create mode 100644 package/libevdev/libevdev.hash create mode 100644 package/libevdev/libevdev.mk create mode 100644 package/libevent/0001-Don-t-define-BIO_get_init-for-LibreSSL-3-5.patch create mode 100644 package/libevent/Config.in create mode 100644 package/libevent/libevent.hash create mode 100644 package/libevent/libevent.mk create mode 100644 package/libexecinfo/Config.in create mode 100644 package/libexecinfo/libexecinfo.hash create mode 100644 package/libexecinfo/libexecinfo.mk create mode 100644 package/libexif/Config.in create mode 100644 package/libexif/libexif.hash create mode 100644 package/libexif/libexif.mk create mode 100644 package/libfastjson/Config.in create mode 100644 package/libfastjson/libfastjson.hash create mode 100644 package/libfastjson/libfastjson.mk create mode 100644 package/libfcgi/0001-link-against-math.patch create mode 100644 package/libfcgi/0002-disable-examples.patch create mode 100644 package/libfcgi/Config.in create mode 100644 package/libfcgi/libfcgi.hash create mode 100644 package/libfcgi/libfcgi.mk create mode 100644 package/libffi/0001-Fix-installation-location-of-libffi.patch create mode 100644 package/libffi/0002-Fix-use-of-compact-eh-frames-on-MIPS.patch create mode 100644 package/libffi/0003-libffi-enable-hardfloat-in-the-MIPS-assembly-code.patch create mode 100644 package/libffi/Config.in create mode 100644 package/libffi/libffi.hash create mode 100644 package/libffi/libffi.mk create mode 100644 package/libfm-extra/Config.in create mode 100644 package/libfm-extra/libfm-extra.hash create mode 100644 package/libfm-extra/libfm-extra.mk create mode 100644 package/libfm/0001-modules-fix-cross-compilation.patch create mode 100644 package/libfm/Config.in create mode 100644 package/libfm/libfm.hash create mode 100644 package/libfm/libfm.mk create mode 100644 package/libfreefare/Config.in create mode 100644 package/libfreefare/libfreefare.hash create mode 100644 package/libfreefare/libfreefare.mk create mode 100644 package/libfreeglut/Config.in create mode 100644 package/libfreeglut/libfreeglut.hash create mode 100644 package/libfreeglut/libfreeglut.mk create mode 100644 package/libfreeimage/0001-no-root-install.patch create mode 100644 package/libfreeimage/0002-fix-cpuid-x86.patch create mode 100644 package/libfreeimage/0003-fix-big-endian-os.patch create mode 100644 package/libfreeimage/0004-fixed-C-11-warnings.patch create mode 100644 package/libfreeimage/Config.in create mode 100644 package/libfreeimage/libfreeimage.hash create mode 100644 package/libfreeimage/libfreeimage.mk create mode 100644 package/libfribidi/Config.in create mode 100644 package/libfribidi/libfribidi.hash create mode 100644 package/libfribidi/libfribidi.mk create mode 100644 package/libftdi/0001-pkgconfig_libusb.patch create mode 100644 package/libftdi/0002-libftdi.pc-requires-libusb-fix-static-build.patch create mode 100644 package/libftdi/Config.in create mode 100644 package/libftdi/libftdi.hash create mode 100644 package/libftdi/libftdi.mk create mode 100644 package/libftdi1/0001-cmake-use-the-standard-CMake-flag-to-drive-the-share.patch create mode 100644 package/libftdi1/0002-CMakeLists.txt-fix-paths-when-FTDIPP-is-set.patch create mode 100644 package/libftdi1/Config.in create mode 100644 package/libftdi1/libftdi1.hash create mode 100644 package/libftdi1/libftdi1.mk create mode 100644 package/libfuse/0001-fix-aarch64-build.patch create mode 100644 package/libfuse/0002-util-ulockmgr_server-c-conditionally-define-closefrom-fix-glibc-2-34.patch create mode 100644 package/libfuse/Config.in create mode 100644 package/libfuse/libfuse.hash create mode 100644 package/libfuse/libfuse.mk create mode 100644 package/libfuse3/Config.in create mode 100644 package/libfuse3/libfuse3.hash create mode 100644 package/libfuse3/libfuse3.mk create mode 100644 package/libfutils/Config.in create mode 100644 package/libfutils/libfutils.hash create mode 100644 package/libfutils/libfutils.mk create mode 100644 package/libg7221/Config.in create mode 100644 package/libg7221/libg7221.hash create mode 100644 package/libg7221/libg7221.mk create mode 100644 package/libgcrypt/0001-configure.ac-add-an-option-to-disable-tests.patch create mode 100644 package/libgcrypt/Config.in create mode 100644 package/libgcrypt/libgcrypt.hash create mode 100644 package/libgcrypt/libgcrypt.mk create mode 100644 package/libgdiplus/0001-Build-unit-tests-only-when-enable-unit-tests-is-pass.patch create mode 100644 package/libgdiplus/Config.in create mode 100644 package/libgdiplus/libgdiplus.hash create mode 100644 package/libgdiplus/libgdiplus.mk create mode 100644 package/libgee/Config.in create mode 100644 package/libgee/libgee.hash create mode 100644 package/libgee/libgee.mk create mode 100644 package/libgeos/Config.in create mode 100644 package/libgeos/libgeos.hash create mode 100644 package/libgeos/libgeos.mk create mode 100644 package/libgeotiff/Config.in create mode 100644 package/libgeotiff/libgeotiff.hash create mode 100644 package/libgeotiff/libgeotiff.mk create mode 100644 package/libgit2/Config.in create mode 100644 package/libgit2/libgit2.hash create mode 100644 package/libgit2/libgit2.mk create mode 100644 package/libglade/Config.in create mode 100644 package/libglade/libglade.hash create mode 100644 package/libglade/libglade.mk create mode 100644 package/libglew/Config.in create mode 100644 package/libglew/libglew.hash create mode 100644 package/libglew/libglew.mk create mode 100644 package/libglfw/0001-Wayland-Remove-extra-cmake-modules-dependency.patch create mode 100644 package/libglfw/0002-src-CMakeLists.txt-allow-override-of-wayland-pkgdata.patch create mode 100644 package/libglfw/Config.in create mode 100644 package/libglfw/libglfw.hash create mode 100644 package/libglfw/libglfw.mk create mode 100644 package/libglib2/0001-fix-compile-time-atomic-detection.patch create mode 100644 package/libglib2/0002-remove-cpp-requirement.patch create mode 100644 package/libglib2/0003-Add-Wno-format-nonliteral-to-compiler-arguments.patch create mode 100644 package/libglib2/0004-meson.build-add-girdir-to-gio-2.0.pc-and-glib-2.0.pc.patch create mode 100644 package/libglib2/Config.in create mode 100644 package/libglib2/libglib2.hash create mode 100644 package/libglib2/libglib2.mk create mode 100644 package/libglob/Config.in create mode 100644 package/libglob/libglob.hash create mode 100644 package/libglob/libglob.mk create mode 100644 package/libglu/Config.in create mode 100644 package/libglu/libglu.hash create mode 100644 package/libglu/libglu.mk create mode 100644 package/libglvnd/Config.in create mode 100644 package/libglvnd/libglvnd.hash create mode 100644 package/libglvnd/libglvnd.mk create mode 100644 package/libgpg-error/Config.in create mode 100644 package/libgpg-error/libgpg-error.hash create mode 100644 package/libgpg-error/libgpg-error.mk create mode 100644 package/libgpgme/0001-Fix-build-without-threads.patch create mode 100644 package/libgpgme/Config.in create mode 100644 package/libgpgme/libgpgme.hash create mode 100644 package/libgpgme/libgpgme.mk create mode 100644 package/libgphoto2/Config.in create mode 100644 package/libgphoto2/libgphoto2.hash create mode 100644 package/libgphoto2/libgphoto2.mk create mode 100644 package/libgpiod/0001-build-add-a-configure-switch-for-building-examples.patch create mode 100644 package/libgpiod/Config.in create mode 100644 package/libgpiod/libgpiod.hash create mode 100644 package/libgpiod/libgpiod.mk create mode 100644 package/libgsasl/Config.in create mode 100644 package/libgsasl/libgsasl.hash create mode 100644 package/libgsasl/libgsasl.mk create mode 100644 package/libgsm/0001-misc-fixes-from-archlinux.patch create mode 100644 package/libgsm/Config.in create mode 100644 package/libgsm/libgsm.hash create mode 100644 package/libgsm/libgsm.mk create mode 100644 package/libgta/Config.in create mode 100644 package/libgta/libgta.hash create mode 100644 package/libgta/libgta.mk create mode 100644 package/libgtk2/0001-reduce-dependencies.patch create mode 100644 package/libgtk2/Config.in create mode 100644 package/libgtk2/libgtk2.hash create mode 100644 package/libgtk2/libgtk2.mk create mode 100644 package/libgtk3/0001-no-gtk-doc.patch create mode 100644 package/libgtk3/0002-fix-introspection-check.patch create mode 100644 package/libgtk3/0003-disable-atk-bridge.patch create mode 100644 package/libgtk3/0004-Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch create mode 100644 package/libgtk3/Config.in create mode 100644 package/libgtk3/libgtk3.hash create mode 100644 package/libgtk3/libgtk3.mk create mode 100644 package/libgudev/Config.in create mode 100644 package/libgudev/libgudev.hash create mode 100644 package/libgudev/libgudev.mk create mode 100644 package/libhdhomerun/0001-dont-strip.patch create mode 100644 package/libhdhomerun/Config.in create mode 100644 package/libhdhomerun/libhdhomerun.hash create mode 100644 package/libhdhomerun/libhdhomerun.mk create mode 100644 package/libhid/0001-dont-fiddle-with-debug-flags.patch create mode 100644 package/libhid/0002-no-newline-in-ldflags.patch create mode 100644 package/libhid/0003-uclinux.patch create mode 100644 package/libhid/Config.in create mode 100644 package/libhid/libhid.hash create mode 100644 package/libhid/libhid.mk create mode 100644 package/libhtp/Config.in create mode 100644 package/libhtp/libhtp.hash create mode 100644 package/libhtp/libhtp.mk create mode 100644 package/libhttpparser/Config.in create mode 100644 package/libhttpparser/libhttpparser.hash create mode 100644 package/libhttpparser/libhttpparser.mk create mode 100644 package/libhttpserver/Config.in create mode 100644 package/libhttpserver/libhttpserver.hash create mode 100644 package/libhttpserver/libhttpserver.mk create mode 100644 package/libiberty/libiberty.hash create mode 100644 package/libiberty/libiberty.mk create mode 100644 package/libical/0001-no-tests.patch create mode 100644 package/libical/0002-icaltypes-c-icalreqstattype_from_string-copy-the-reqstattype.patch create mode 100644 package/libical/Config.in create mode 100644 package/libical/libical.hash create mode 100644 package/libical/libical.mk create mode 100644 package/libiconv/Config.in create mode 100644 package/libiconv/libiconv.hash create mode 100644 package/libiconv/libiconv.mk create mode 100644 package/libid3tag/Config.in create mode 100644 package/libid3tag/id3tag.pc create mode 100644 package/libid3tag/libid3tag.hash create mode 100644 package/libid3tag/libid3tag.mk create mode 100644 package/libidn/Config.in create mode 100644 package/libidn/libidn.hash create mode 100644 package/libidn/libidn.mk create mode 100644 package/libidn2/Config.in create mode 100644 package/libidn2/libidn2.hash create mode 100644 package/libidn2/libidn2.mk create mode 100644 package/libiec61850/Config.in create mode 100644 package/libiec61850/libiec61850.hash create mode 100644 package/libiec61850/libiec61850.mk create mode 100644 package/libiio/0001-C-public-fields-with-getters-setters-cannot-be-marked-readonly.patch create mode 100644 package/libiio/Config.in create mode 100644 package/libiio/S99iiod create mode 100644 package/libiio/libiio.hash create mode 100644 package/libiio/libiio.mk create mode 100644 package/libilbc/Config.in create mode 100644 package/libilbc/libilbc.hash create mode 100644 package/libilbc/libilbc.mk create mode 100644 package/libimxvpuapi/Config.in create mode 100644 package/libimxvpuapi/libimxvpuapi.hash create mode 100644 package/libimxvpuapi/libimxvpuapi.mk create mode 100644 package/libinput/Config.in create mode 100644 package/libinput/libinput.hash create mode 100644 package/libinput/libinput.mk create mode 100644 package/libiqrf/0001-cmake-handle-static-library-and-find-required-thread.patch create mode 100644 package/libiqrf/0002-use-only-c-language.patch create mode 100644 package/libiqrf/Config.in create mode 100644 package/libiqrf/libiqrf.hash create mode 100644 package/libiqrf/libiqrf.mk create mode 100644 package/libiscsi/Config.in create mode 100644 package/libiscsi/libiscsi.hash create mode 100644 package/libiscsi/libiscsi.mk create mode 100644 package/libite/Config.in create mode 100644 package/libite/libite.hash create mode 100644 package/libite/libite.mk create mode 100644 package/libjpeg/libjpeg.hash create mode 100644 package/libjpeg/libjpeg.mk create mode 100644 package/libjpeg/libjpeg.pc.in create mode 100644 package/libjson/0001-fix-broken-makefile.patch create mode 100644 package/libjson/Config.in create mode 100644 package/libjson/libjson.hash create mode 100644 package/libjson/libjson.mk create mode 100644 package/libkcapi/0001-Disable-use-of-__NR_io_getevents-when-not-defined.patch create mode 100644 package/libkcapi/Config.in create mode 100644 package/libkcapi/libkcapi.hash create mode 100644 package/libkcapi/libkcapi.mk create mode 100644 package/libkrb5/Config.in create mode 100644 package/libkrb5/libkrb5.hash create mode 100644 package/libkrb5/libkrb5.mk create mode 100644 package/libks/0001-CMakeLists.txt-honour-BUILD_TESTING.patch create mode 100644 package/libks/Config.in create mode 100644 package/libks/libks.hash create mode 100644 package/libks/libks.mk create mode 100644 package/libksba/Config.in create mode 100644 package/libksba/libksba.hash create mode 100644 package/libksba/libksba.mk create mode 100644 package/libldns/0001-Use-accessors-for-DSA-and-RSA-objects.patch create mode 100644 package/libldns/Config.in create mode 100644 package/libldns/libldns.hash create mode 100644 package/libldns/libldns.mk create mode 100644 package/liblinear/0001-blas-don-t-overwrite-ar-options.patch create mode 100644 package/liblinear/0002-build-static-lib.patch create mode 100644 package/liblinear/Config.in create mode 100644 package/liblinear/liblinear.hash create mode 100644 package/liblinear/liblinear.mk create mode 100644 package/libllcp/Config.in create mode 100644 package/libllcp/libllcp.hash create mode 100644 package/libllcp/libllcp.mk create mode 100644 package/liblo/Config.in create mode 100644 package/liblo/liblo.hash create mode 100644 package/liblo/liblo.mk create mode 100644 package/liblockfile/0001-Makefile.in-fix-cross-compilation.patch create mode 100644 package/liblockfile/Config.in create mode 100644 package/liblockfile/liblockfile.hash create mode 100644 package/liblockfile/liblockfile.mk create mode 100644 package/liblog4c-localtime/0001-log4c.m4-fix-underquoted-definition-of-AM_PATH_LOG4C.patch create mode 100644 package/liblog4c-localtime/0002-Fix-linking-error-without-pthread.patch create mode 100644 package/liblog4c-localtime/0003-Fix-debug-mode-build-with-uClibc.patch create mode 100644 package/liblog4c-localtime/0004-Add-AC_CONFIG_MACRO_DIR-to-configure.in.patch create mode 100644 package/liblog4c-localtime/0005-Fix-C-support.patch create mode 100644 package/liblog4c-localtime/Config.in create mode 100644 package/liblog4c-localtime/liblog4c-localtime.hash create mode 100644 package/liblog4c-localtime/liblog4c-localtime.mk create mode 100644 package/liblogging/Config.in create mode 100644 package/liblogging/liblogging.hash create mode 100644 package/liblogging/liblogging.mk create mode 100644 package/libloki/0001-allow-to-install-to-a-specific-location-using-DESTDI.patch create mode 100644 package/libloki/0002-use-ln-snf.patch create mode 100644 package/libloki/Config.in create mode 100644 package/libloki/libloki.hash create mode 100644 package/libloki/libloki.mk create mode 100644 package/libmad/0001-mips-h-constraint-removal.patch create mode 100644 package/libmad/0002-configure-ac-automake-foreign.patch create mode 100644 package/libmad/Config.in create mode 100644 package/libmad/libmad.hash create mode 100644 package/libmad/libmad.mk create mode 100644 package/libmad/mad.pc create mode 100644 package/libmatroska/Config.in create mode 100644 package/libmatroska/libmatroska.hash create mode 100644 package/libmatroska/libmatroska.mk create mode 100644 package/libmaxminddb/Config.in create mode 100644 package/libmaxminddb/libmaxminddb.hash create mode 100644 package/libmaxminddb/libmaxminddb.mk create mode 100644 package/libmbim/Config.in create mode 100644 package/libmbim/libmbim.hash create mode 100644 package/libmbim/libmbim.mk create mode 100644 package/libmbus/Config.in create mode 100644 package/libmbus/libmbus.hash create mode 100644 package/libmbus/libmbus.mk create mode 100644 package/libmd/Config.in create mode 100644 package/libmd/libmd.hash create mode 100644 package/libmd/libmd.mk create mode 100644 package/libmdbx/Config.in create mode 100644 package/libmdbx/libmdbx.hash create mode 100644 package/libmdbx/libmdbx.mk create mode 100644 package/libmediaart/Config.in create mode 100644 package/libmediaart/libmediaart.hash create mode 100644 package/libmediaart/libmediaart.mk create mode 100644 package/libmemcached/0001-disable-tests.patch create mode 100644 package/libmemcached/0002-disable-sanitizer.patch create mode 100644 package/libmemcached/0003-move-ac_config_aux_dir.patch create mode 100644 package/libmemcached/0004-disable-doc-and-man.patch create mode 100644 package/libmemcached/0005-fix-pointer-comparaison.patch create mode 100644 package/libmemcached/Config.in create mode 100644 package/libmemcached/libmemcached.hash create mode 100644 package/libmemcached/libmemcached.mk create mode 100644 package/libmhash/Config.in create mode 100644 package/libmhash/libmhash.hash create mode 100644 package/libmhash/libmhash.mk create mode 100644 package/libmicrohttpd/Config.in create mode 100644 package/libmicrohttpd/libmicrohttpd.hash create mode 100644 package/libmicrohttpd/libmicrohttpd.mk create mode 100644 package/libminiupnpc/0001-miniupnpc-CMakeLists-txt-fix-install-for-headers.patch create mode 100644 package/libminiupnpc/Config.in create mode 100644 package/libminiupnpc/libminiupnpc.hash create mode 100644 package/libminiupnpc/libminiupnpc.mk create mode 100644 package/libmms/Config.in create mode 100644 package/libmms/libmms.hash create mode 100644 package/libmms/libmms.mk create mode 100644 package/libmng/0001-jpeg-9a.patch create mode 100644 package/libmng/Config.in create mode 100644 package/libmng/libmng.hash create mode 100644 package/libmng/libmng.mk create mode 100644 package/libmnl/Config.in create mode 100644 package/libmnl/libmnl.hash create mode 100644 package/libmnl/libmnl.mk create mode 100644 package/libmodbus/Config.in create mode 100644 package/libmodbus/libmodbus.hash create mode 100644 package/libmodbus/libmodbus.mk create mode 100644 package/libmodplug/Config.in create mode 100644 package/libmodplug/libmodplug.hash create mode 100644 package/libmodplug/libmodplug.mk create mode 100644 package/libmodsecurity/0001-configure.ac-drop-usage-of-git-at-configure-time.patch create mode 100644 package/libmodsecurity/0002-modsecurity.pc.in-add-lstdc.patch create mode 100644 package/libmodsecurity/0003-Revert-Fix-maxminddb-link-on-FreeBSD.patch create mode 100644 package/libmodsecurity/0004-build-pcre.m4-fix-build-without-pcre.patch create mode 100644 package/libmodsecurity/Config.in create mode 100644 package/libmodsecurity/libmodsecurity.hash create mode 100644 package/libmodsecurity/libmodsecurity.mk create mode 100644 package/libmpd/0001-Fix-build-on-archlinux-missing-include.patch create mode 100644 package/libmpd/Config.in create mode 100644 package/libmpd/libmpd.hash create mode 100644 package/libmpd/libmpd.mk create mode 100644 package/libmpdclient/Config.in create mode 100644 package/libmpdclient/libmpdclient.hash create mode 100644 package/libmpdclient/libmpdclient.mk create mode 100644 package/libmpeg2/0001-altivec.patch create mode 100644 package/libmpeg2/0002-armv4l.patch create mode 100644 package/libmpeg2/0003-fix-arm-detection.patch create mode 100644 package/libmpeg2/0004-fix-sparc.patch create mode 100644 package/libmpeg2/Config.in create mode 100644 package/libmpeg2/libmpeg2.hash create mode 100644 package/libmpeg2/libmpeg2.mk create mode 100644 package/libmspack/Config.in create mode 100644 package/libmspack/libmspack.hash create mode 100644 package/libmspack/libmspack.mk create mode 100644 package/libnatpmp/Config.in create mode 100644 package/libnatpmp/libnatpmp.hash create mode 100644 package/libnatpmp/libnatpmp.mk create mode 100644 package/libndp/Config.in create mode 100644 package/libndp/libndp.hash create mode 100644 package/libndp/libndp.mk create mode 100644 package/libnet/0001-Use-standard-int64_t-instead-of-__int64_t-for-mingw-cross-build.patch create mode 100644 package/libnet/Config.in create mode 100644 package/libnet/libnet.hash create mode 100644 package/libnet/libnet.mk create mode 100644 package/libnetconf2/Config.in create mode 100644 package/libnetconf2/libnetconf2.hash create mode 100644 package/libnetconf2/libnetconf2.mk create mode 100644 package/libnetfilter_acct/Config.in create mode 100644 package/libnetfilter_acct/libnetfilter_acct.hash create mode 100644 package/libnetfilter_acct/libnetfilter_acct.mk create mode 100644 package/libnetfilter_conntrack/0001-conntrack-fix-build-with-kernel-5-15-and-musl.patch create mode 100644 package/libnetfilter_conntrack/Config.in create mode 100644 package/libnetfilter_conntrack/libnetfilter_conntrack.hash create mode 100644 package/libnetfilter_conntrack/libnetfilter_conntrack.mk create mode 100644 package/libnetfilter_cthelper/Config.in create mode 100644 package/libnetfilter_cthelper/libnetfilter_cthelper.hash create mode 100644 package/libnetfilter_cthelper/libnetfilter_cthelper.mk create mode 100644 package/libnetfilter_cttimeout/Config.in create mode 100644 package/libnetfilter_cttimeout/libnetfilter_cttimeout.hash create mode 100644 package/libnetfilter_cttimeout/libnetfilter_cttimeout.mk create mode 100644 package/libnetfilter_log/Config.in create mode 100644 package/libnetfilter_log/libnetfilter_log.hash create mode 100644 package/libnetfilter_log/libnetfilter_log.mk create mode 100644 package/libnetfilter_queue/Config.in create mode 100644 package/libnetfilter_queue/libnetfilter_queue.hash create mode 100644 package/libnetfilter_queue/libnetfilter_queue.mk create mode 100644 package/libnfc/0001-autotools-make-example-build-optional.patch create mode 100644 package/libnfc/Config.in create mode 100644 package/libnfc/libnfc.hash create mode 100644 package/libnfc/libnfc.mk create mode 100644 package/libnfnetlink/Config.in create mode 100644 package/libnfnetlink/libnfnetlink.hash create mode 100644 package/libnfnetlink/libnfnetlink.mk create mode 100644 package/libnfs/0001-Fix-include-sys-time.h.patch create mode 100644 package/libnfs/Config.in create mode 100644 package/libnfs/libnfs.hash create mode 100644 package/libnfs/libnfs.mk create mode 100644 package/libnftnl/Config.in create mode 100644 package/libnftnl/libnftnl.hash create mode 100644 package/libnftnl/libnftnl.mk create mode 100644 package/libnice/Config.in create mode 100644 package/libnice/libnice.hash create mode 100644 package/libnice/libnice.mk create mode 100644 package/libnids/0001-libpcap-use-pkg-config.patch create mode 100644 package/libnids/Config.in create mode 100644 package/libnids/libnids.hash create mode 100644 package/libnids/libnids.mk create mode 100644 package/libnl/0001-Add-musl-workaround-to-the-libc-compat.h-copy.patch create mode 100644 package/libnl/Config.in create mode 100644 package/libnl/libnl.hash create mode 100644 package/libnl/libnl.mk create mode 100644 package/libnpth/Config.in create mode 100644 package/libnpth/libnpth.hash create mode 100644 package/libnpth/libnpth.mk create mode 100644 package/libnpupnp/Config.in create mode 100644 package/libnpupnp/libnpupnp.hash create mode 100644 package/libnpupnp/libnpupnp.mk create mode 100644 package/libnspr/0001-Bug-1765100-fix-build-on-mips-musl-libc.patch create mode 100644 package/libnspr/Config.in create mode 100644 package/libnspr/libnspr.hash create mode 100644 package/libnspr/libnspr.mk create mode 100644 package/libnss/Config.in create mode 100644 package/libnss/libnss.hash create mode 100644 package/libnss/libnss.mk create mode 100644 package/libnss/nss.pc.in create mode 100644 package/liboauth/0001-Fixes-build-issue-with-OpenSSL-1.1.0.patch create mode 100644 package/liboauth/Config.in create mode 100644 package/liboauth/liboauth.hash create mode 100644 package/liboauth/liboauth.mk create mode 100644 package/libodb-boost/Config.in create mode 100644 package/libodb-boost/libodb-boost.hash create mode 100644 package/libodb-boost/libodb-boost.mk create mode 100644 package/libodb-mysql/0001-fix-syntax-issue-while-checking-ldflags.patch create mode 100644 package/libodb-mysql/0002-mariadb-FTBFS-fix.patch create mode 100644 package/libodb-mysql/Config.in create mode 100644 package/libodb-mysql/libodb-mysql.hash create mode 100644 package/libodb-mysql/libodb-mysql.mk create mode 100644 package/libodb-pgsql/Config.in create mode 100644 package/libodb-pgsql/libodb-pgsql.hash create mode 100644 package/libodb-pgsql/libodb-pgsql.mk create mode 100644 package/libodb/Config.in create mode 100644 package/libodb/libodb.hash create mode 100644 package/libodb/libodb.mk create mode 100644 package/libogg/Config.in create mode 100644 package/libogg/libogg.hash create mode 100644 package/libogg/libogg.mk create mode 100644 package/libolm/Config.in create mode 100644 package/libolm/libolm.hash create mode 100644 package/libolm/libolm.mk create mode 100644 package/libopenaptx/Config.in create mode 100644 package/libopenaptx/libopenaptx.hash create mode 100644 package/libopenaptx/libopenaptx.mk create mode 100644 package/libopenh264/Config.in create mode 100644 package/libopenh264/libopenh264.hash create mode 100644 package/libopenh264/libopenh264.mk create mode 100644 package/libopenssl/0001-Dont-waste-time-building-manpages-if-we-re-not-going.patch create mode 100644 package/libopenssl/0002-Reproducible-build-do-not-leak-compiler-path.patch create mode 100644 package/libopenssl/0003-Introduce-the-OPENSSL_NO_MADVISE-to-disable-call-to-.patch create mode 100644 package/libopenssl/0004-Configure-use-ELFv2-ABI-on-some-ppc64-big-endian-sys.patch create mode 100644 package/libopenssl/0005-crypto-perlasm-ppc-xlate.pl-add-linux64v2-flavour.patch create mode 100644 package/libopenssl/0006-Add-support-for-io_pgetevents_time64-syscall.patch create mode 100644 package/libopenssl/0007-Fixup-support-for-io_pgetevents_time64-syscall.patch create mode 100644 package/libopenssl/Config.in create mode 100644 package/libopenssl/libopenssl.hash create mode 100644 package/libopenssl/libopenssl.mk create mode 100644 package/liboping/0001-fix-utf8-support.patch create mode 100644 package/liboping/0002-Open-raw-sockets-when-adding-hosts-not-when-doing-th.patch create mode 100644 package/liboping/0003-Fix-compile-break-with-GCC-7-buffer-overflow-with-snprintf.patch create mode 100644 package/liboping/0004-Fix-compile-error-on-GCC-7.patch create mode 100644 package/liboping/Config.in create mode 100644 package/liboping/liboping.hash create mode 100644 package/liboping/liboping.mk create mode 100644 package/libopusenc/Config.in create mode 100644 package/libopusenc/libopusenc.hash create mode 100644 package/libopusenc/libopusenc.mk create mode 100644 package/libosip2/Config.in create mode 100644 package/libosip2/libosip2.hash create mode 100644 package/libosip2/libosip2.mk create mode 100644 package/libosmium/Config.in create mode 100644 package/libosmium/libosmium.hash create mode 100644 package/libosmium/libosmium.mk create mode 100644 package/libostree/Config.in create mode 100644 package/libostree/libostree.hash create mode 100644 package/libostree/libostree.mk create mode 100644 package/libp11/0001-src-p11_attr.c-fix-build-with-gcc-4.8.patch create mode 100644 package/libp11/Config.in create mode 100644 package/libp11/Config.in.host create mode 100644 package/libp11/libp11.hash create mode 100644 package/libp11/libp11.mk create mode 100644 package/libpagekite/Config.in create mode 100644 package/libpagekite/libpagekite.hash create mode 100644 package/libpagekite/libpagekite.mk create mode 100644 package/libpam-nfc/Config.in create mode 100644 package/libpam-nfc/libpam-nfc.hash create mode 100644 package/libpam-nfc/libpam-nfc.mk create mode 100644 package/libpam-radius-auth/Config.in create mode 100644 package/libpam-radius-auth/libpam-radius-auth.hash create mode 100644 package/libpam-radius-auth/libpam-radius-auth.mk create mode 100644 package/libpam-tacplus/0001-Add-an-option-to-disable-Werror.patch create mode 100644 package/libpam-tacplus/Config.in create mode 100644 package/libpam-tacplus/libpam-tacplus.hash create mode 100644 package/libpam-tacplus/libpam-tacplus.mk create mode 100644 package/libpcap/Config.in create mode 100644 package/libpcap/libpcap.hash create mode 100644 package/libpcap/libpcap.mk create mode 100644 package/libpciaccess/0001-pciaccess.pc.in-add-Libs.Private.patch create mode 100644 package/libpciaccess/Config.in create mode 100644 package/libpciaccess/libpciaccess.hash create mode 100644 package/libpciaccess/libpciaccess.mk create mode 100644 package/libpeas/Config.in create mode 100644 package/libpeas/libpeas.hash create mode 100644 package/libpeas/libpeas.mk create mode 100644 package/libpfm4/Config.in create mode 100644 package/libpfm4/libpfm4.hash create mode 100644 package/libpfm4/libpfm4.mk create mode 100644 package/libphidget/Config.in create mode 100644 package/libphidget/libphidget.hash create mode 100644 package/libphidget/libphidget.mk create mode 100644 package/libpjsip/0001-Merge-pull-request-from-GHSA-26j7-ww69-c4qj.patch create mode 100644 package/libpjsip/Config.in create mode 100644 package/libpjsip/libpjsip.hash create mode 100644 package/libpjsip/libpjsip.mk create mode 100644 package/libplatform/0001-cmake-require-c-11-as-the-minimum-standard.patch create mode 100644 package/libplatform/Config.in create mode 100644 package/libplatform/libplatform.hash create mode 100644 package/libplatform/libplatform.mk create mode 100644 package/libplist/Config.in create mode 100644 package/libplist/libplist.hash create mode 100644 package/libplist/libplist.mk create mode 100644 package/libpng/0001-Disable-pngfix-and-png-fix-itxt.patch create mode 100644 package/libpng/Config.in create mode 100644 package/libpng/libpng.hash create mode 100644 package/libpng/libpng.mk create mode 100644 package/libpqxx/Config.in create mode 100644 package/libpqxx/libpqxx.hash create mode 100644 package/libpqxx/libpqxx.mk create mode 100644 package/libpri/Config.in create mode 100644 package/libpri/libpri.hash create mode 100644 package/libpri/libpri.mk create mode 100644 package/libpsl/0001-Add-libiconv-dep-to-meson-build-again.patch create mode 100644 package/libpsl/Config.in create mode 100644 package/libpsl/libpsl.hash create mode 100644 package/libpsl/libpsl.mk create mode 100644 package/libpthread-stubs/Config.in create mode 100644 package/libpthread-stubs/libpthread-stubs.hash create mode 100644 package/libpthread-stubs/libpthread-stubs.mk create mode 100644 package/libpthsem/0001-fix-build-on-linux-3.x-host.patch create mode 100644 package/libpthsem/Config.in create mode 100644 package/libpthsem/libpthsem.hash create mode 100644 package/libpthsem/libpthsem.mk create mode 100644 package/libpwquality/Config.in create mode 100644 package/libpwquality/libpwquality.hash create mode 100644 package/libpwquality/libpwquality.mk create mode 100644 package/libqb/Config.in create mode 100644 package/libqb/libqb.hash create mode 100644 package/libqb/libqb.mk create mode 100644 package/libqmi/Config.in create mode 100644 package/libqmi/libqmi.hash create mode 100644 package/libqmi/libqmi.mk create mode 100644 package/libqrencode/Config.in create mode 100644 package/libqrencode/libqrencode.hash create mode 100644 package/libqrencode/libqrencode.mk create mode 100644 package/libqrtr-glib/Config.in create mode 100644 package/libqrtr-glib/libqrtr-glib.hash create mode 100644 package/libqrtr-glib/libqrtr-glib.mk create mode 100644 package/libraw/0001-Add-Libs.private-to-libraw.pc.patch create mode 100644 package/libraw/Config.in create mode 100644 package/libraw/libraw.hash create mode 100644 package/libraw/libraw.mk create mode 100644 package/libraw1394/Config.in create mode 100644 package/libraw1394/libraw1394.hash create mode 100644 package/libraw1394/libraw1394.mk create mode 100644 package/librelp/Config.in create mode 100644 package/librelp/librelp.hash create mode 100644 package/librelp/librelp.mk create mode 100644 package/libreplaygain/Config.in create mode 100644 package/libreplaygain/libreplaygain.hash create mode 100644 package/libreplaygain/libreplaygain.mk create mode 100644 package/libressl/0001-always-expose-SSL_OP_NO_TLSv1_3.patch create mode 100644 package/libressl/Config.in create mode 100644 package/libressl/libressl.hash create mode 100644 package/libressl/libressl.mk create mode 100644 package/libroxml/0001-src-roxml_mem.h-add-missing-extern.patch create mode 100644 package/libroxml/Config.in create mode 100644 package/libroxml/libroxml.hash create mode 100644 package/libroxml/libroxml.mk create mode 100644 package/librsvg/0001-gdk-pixbuf-loader-Makefile.am-set-GDK_PIXBUF_MODULED.patch create mode 100644 package/librsvg/Config.in create mode 100644 package/librsvg/librsvg.hash create mode 100644 package/librsvg/librsvg.mk create mode 100644 package/librsync/Config.in create mode 100644 package/librsync/librsync.hash create mode 100644 package/librsync/librsync.mk create mode 100644 package/librtas/0001-configure.ac-remove-LOCAL_CHECK_FLAGS.patch create mode 100644 package/librtas/Config.in create mode 100644 package/librtas/librtas.hash create mode 100644 package/librtas/librtas.mk create mode 100644 package/librtlsdr/0001-Makefile.am-respect-DESTDIR-with-install-udev-rules.patch create mode 100644 package/librtlsdr/Config.in create mode 100644 package/librtlsdr/librtlsdr.hash create mode 100644 package/librtlsdr/librtlsdr.mk create mode 100644 package/libsamplerate/Config.in create mode 100644 package/libsamplerate/libsamplerate.hash create mode 100644 package/libsamplerate/libsamplerate.mk create mode 100644 package/libscrypt/Config.in create mode 100644 package/libscrypt/libscrypt.hash create mode 100644 package/libscrypt/libscrypt.mk create mode 100644 package/libseccomp/Config.in create mode 100644 package/libseccomp/libseccomp.hash create mode 100644 package/libseccomp/libseccomp.mk create mode 100644 package/libsecret/Config.in create mode 100644 package/libsecret/libsecret.hash create mode 100644 package/libsecret/libsecret.mk create mode 100644 package/libselinux/0001-fix-musl-build.patch create mode 100644 package/libselinux/0002-Do-not-use-PYCEXT-and-rely-on-the-installed-file-nam.patch create mode 100644 package/libselinux/Config.in create mode 100644 package/libselinux/libselinux.hash create mode 100644 package/libselinux/libselinux.mk create mode 100644 package/libsemanage/Config.in create mode 100644 package/libsemanage/libsemanage.hash create mode 100644 package/libsemanage/libsemanage.mk create mode 100644 package/libsepol/0001-support-static-only.patch create mode 100644 package/libsepol/Config.in create mode 100644 package/libsepol/libsepol.hash create mode 100644 package/libsepol/libsepol.mk create mode 100644 package/libserial/0001-SerialPort.cpp-fix-build-when-size_t-is-an-unsigned-.patch create mode 100644 package/libserial/0002-SerialPort.cpp-don-t-use-high-baudrates-when-not-ava.patch create mode 100644 package/libserial/Config.in create mode 100644 package/libserial/libserial.hash create mode 100644 package/libserial/libserial.mk create mode 100644 package/libserialport/0001-uclinux-detection.patch create mode 100644 package/libserialport/Config.in create mode 100644 package/libserialport/libserialport.hash create mode 100644 package/libserialport/libserialport.mk create mode 100644 package/libsexy/Config.in create mode 100644 package/libsexy/libsexy.hash create mode 100644 package/libsexy/libsexy.mk create mode 100644 package/libsha1/Config.in create mode 100644 package/libsha1/libsha1.hash create mode 100644 package/libsha1/libsha1.mk create mode 100644 package/libshairplay/Config.in create mode 100644 package/libshairplay/libshairplay.hash create mode 100644 package/libshairplay/libshairplay.mk create mode 100644 package/libshdata/0001-backend-Add-missing-include-files.patch create mode 100644 package/libshdata/0002-examples-stress_test-Fix-build-with-musl-libc.patch create mode 100644 package/libshdata/Config.in create mode 100644 package/libshdata/libshdata.hash create mode 100644 package/libshdata/libshdata.mk create mode 100644 package/libshout/0001-configure.ac-add-an-option-to-disable-tools.patch create mode 100644 package/libshout/Config.in create mode 100644 package/libshout/libshout.hash create mode 100644 package/libshout/libshout.mk create mode 100644 package/libsidplay2/0001-sidplay2-libs-2.1.1.patch create mode 100644 package/libsidplay2/0002-pkg-config.patch create mode 100644 package/libsidplay2/0003-gcc6.patch create mode 100644 package/libsidplay2/Config.in create mode 100644 package/libsidplay2/libsidplay2.hash create mode 100644 package/libsidplay2/libsidplay2.mk create mode 100644 package/libsigc/Config.in create mode 100644 package/libsigc/libsigc.hash create mode 100644 package/libsigc/libsigc.mk create mode 100644 package/libsigrok/0001-Support-glibmm-2.68.patch create mode 100644 package/libsigrok/Config.in create mode 100644 package/libsigrok/libsigrok.hash create mode 100644 package/libsigrok/libsigrok.mk create mode 100644 package/libsigrokdecode/0001-configure-ac-Add-support-for-Python-3-9.patch create mode 100644 package/libsigrokdecode/0002-configure-Add-python-3-10-support.patch create mode 100644 package/libsigrokdecode/Config.in create mode 100644 package/libsigrokdecode/libsigrokdecode.hash create mode 100644 package/libsigrokdecode/libsigrokdecode.mk create mode 100644 package/libsigsegv/Config.in create mode 100644 package/libsigsegv/libsigsegv.hash create mode 100644 package/libsigsegv/libsigsegv.mk create mode 100644 package/libsilk/Config.in create mode 100644 package/libsilk/libsilk.hash create mode 100644 package/libsilk/libsilk.mk create mode 100644 package/libsndfile/0001-configure-ac-substitute-EXTERNAL_MPEG_LIBS-in-sndfile-pc.patch create mode 100644 package/libsndfile/Config.in create mode 100644 package/libsndfile/libsndfile.hash create mode 100644 package/libsndfile/libsndfile.mk create mode 100644 package/libsoc/Config.in create mode 100644 package/libsoc/libsoc.hash create mode 100644 package/libsoc/libsoc.mk create mode 100644 package/libsocketcan/Config.in create mode 100644 package/libsocketcan/libsocketcan.hash create mode 100644 package/libsocketcan/libsocketcan.mk create mode 100644 package/libsodium/Config.in create mode 100644 package/libsodium/libsodium.hash create mode 100644 package/libsodium/libsodium.mk create mode 100644 package/libsoundtouch/Config.in create mode 100644 package/libsoundtouch/libsoundtouch.hash create mode 100644 package/libsoundtouch/libsoundtouch.mk create mode 100644 package/libsoup/0001-meson.build-set-c_std-to-gnu99.patch create mode 100644 package/libsoup/Config.in create mode 100644 package/libsoup/libsoup.hash create mode 100644 package/libsoup/libsoup.mk create mode 100644 package/libsoxr/0001-Add-Libs.private-for-static-linking.patch create mode 100644 package/libsoxr/Config.in create mode 100644 package/libsoxr/libsoxr.hash create mode 100644 package/libsoxr/libsoxr.mk create mode 100644 package/libspatialindex/0001-allow-building-static-libs.patch create mode 100644 package/libspatialindex/0002-CMakeLists.txt-fix-CMAKE_BUILD_TYPE.patch create mode 100644 package/libspatialindex/Config.in create mode 100644 package/libspatialindex/libspatialindex.hash create mode 100644 package/libspatialindex/libspatialindex.mk create mode 100644 package/libsquish/0001-Makefile-add-f-option-for-ln-to-remove-existing-dest.patch create mode 100644 package/libsquish/Config.in create mode 100644 package/libsquish/libsquish.hash create mode 100644 package/libsquish/libsquish.mk create mode 100644 package/libsrtp/0001-Remove-compatibility-code-for-legacy-OpenSSL-to-fix-LibreSSL-build.patch create mode 100644 package/libsrtp/Config.in create mode 100644 package/libsrtp/libsrtp.hash create mode 100644 package/libsrtp/libsrtp.mk create mode 100644 package/libss7/Config.in create mode 100644 package/libss7/libss7.hash create mode 100644 package/libss7/libss7.mk create mode 100644 package/libssh/Config.in create mode 100644 package/libssh/libssh.hash create mode 100644 package/libssh/libssh.mk create mode 100644 package/libssh2/0001-Opaque-structs-in-LibreSSL-3-5.patch create mode 100644 package/libssh2/Config.in create mode 100644 package/libssh2/libssh2.hash create mode 100644 package/libssh2/libssh2.mk create mode 100644 package/libstrophe/Config.in create mode 100644 package/libstrophe/libstrophe.hash create mode 100644 package/libstrophe/libstrophe.mk create mode 100644 package/libsvg-cairo/Config.in create mode 100644 package/libsvg-cairo/libsvg-cairo.hash create mode 100644 package/libsvg-cairo/libsvg-cairo.mk create mode 100644 package/libsvg/0001-fix-expat-static-declaration.patch create mode 100644 package/libsvg/0002-Fix-undefined-symbol-png_set_gray_1_2_4_to_8.patch create mode 100644 package/libsvg/Config.in create mode 100644 package/libsvg/libsvg.hash create mode 100644 package/libsvg/libsvg.mk create mode 100644 package/libsvgtiny/0001-disable-debug-printfs.patch create mode 100644 package/libsvgtiny/0002-Remove-Werror.patch create mode 100644 package/libsvgtiny/0003-Hopefully-silence-warnings-about-inlines-and-non-inlines-calling-one.patch create mode 100644 package/libsvgtiny/0004-Build-Include-gperf-generated-code-directly.patch create mode 100644 package/libsvgtiny/Config.in create mode 100644 package/libsvgtiny/libsvgtiny.hash create mode 100644 package/libsvgtiny/libsvgtiny.mk create mode 100644 package/libsysfs/Config.in create mode 100644 package/libsysfs/libsysfs.hash create mode 100644 package/libsysfs/libsysfs.mk create mode 100644 package/libtalloc/0001-buildtools-wafsamba-add-disable-stack-protector-opti.patch create mode 100644 package/libtalloc/Config.in create mode 100644 package/libtalloc/libtalloc-cache.txt create mode 100644 package/libtalloc/libtalloc.hash create mode 100644 package/libtalloc/libtalloc.mk create mode 100644 package/libtasn1/0001-fuzz-Makefile.am-do-not-force-static.patch create mode 100644 package/libtasn1/Config.in create mode 100644 package/libtasn1/libtasn1.hash create mode 100644 package/libtasn1/libtasn1.mk create mode 100644 package/libteam/0001-revert-disregard-current-state.patch create mode 100644 package/libteam/0002-fix-build-on-openwrt-musl-libc.patch create mode 100644 package/libteam/0003-increase-wait-time-for-daemon-kill.patch create mode 100644 package/libteam/Config.in create mode 100644 package/libteam/libteam.hash create mode 100644 package/libteam/libteam.mk create mode 100644 package/libtelnet/0001-fix-compilation-without-zlib.patch create mode 100644 package/libtelnet/Config.in create mode 100644 package/libtelnet/libtelnet.hash create mode 100644 package/libtelnet/libtelnet.mk create mode 100644 package/libtextstyle/libtextstyle.hash create mode 100644 package/libtextstyle/libtextstyle.mk create mode 100644 package/libtheora/0001-link-libtheoradec.patch create mode 100644 package/libtheora/0002-fix-autoreconf.patch create mode 100644 package/libtheora/Config.in create mode 100644 package/libtheora/libtheora.hash create mode 100644 package/libtheora/libtheora.mk create mode 100644 package/libtirpc/Config.in create mode 100644 package/libtirpc/libtirpc.hash create mode 100644 package/libtirpc/libtirpc.mk create mode 100644 package/libtomcrypt/0001-fix-CVE-2019-17362.patch create mode 100644 package/libtomcrypt/Config.in create mode 100644 package/libtomcrypt/libtomcrypt.hash create mode 100644 package/libtomcrypt/libtomcrypt.mk create mode 100644 package/libtommath/0001-Build-test-bn_mp_set_double-c-on-more-platforms.patch create mode 100644 package/libtommath/Config.in create mode 100644 package/libtommath/libtommath.hash create mode 100644 package/libtommath/libtommath.mk create mode 100644 package/libtool/Config.in create mode 100644 package/libtool/libtool.hash create mode 100644 package/libtool/libtool.mk create mode 100644 package/libtorrent-rasterbar/Config.in create mode 100644 package/libtorrent-rasterbar/libtorrent-rasterbar.hash create mode 100644 package/libtorrent-rasterbar/libtorrent-rasterbar.mk create mode 100644 package/libtorrent/0001-libtorrent.pc.in-add-Libs.Private.patch create mode 100644 package/libtorrent/Config.in create mode 100644 package/libtorrent/libtorrent.hash create mode 100644 package/libtorrent/libtorrent.mk create mode 100644 package/libtpl/Config.in create mode 100644 package/libtpl/libtpl.hash create mode 100644 package/libtpl/libtpl.mk create mode 100644 package/libubootenv/0001-src-CMakeLists.txt-do-not-force-the-build-of-a-share.patch create mode 100644 package/libubootenv/Config.in create mode 100644 package/libubootenv/libubootenv.hash create mode 100644 package/libubootenv/libubootenv.mk create mode 100644 package/libubox/Config.in create mode 100644 package/libubox/libubox.hash create mode 100644 package/libubox/libubox.mk create mode 100644 package/libuci/Config.in create mode 100644 package/libuci/libuci.hash create mode 100644 package/libuci/libuci.mk create mode 100644 package/libucl/Config.in create mode 100644 package/libucl/libucl.hash create mode 100644 package/libucl/libucl.mk create mode 100644 package/libudfread/Config.in create mode 100644 package/libudfread/libudfread.hash create mode 100644 package/libudfread/libudfread.mk create mode 100644 package/libuecc/Config.in create mode 100644 package/libuecc/libuecc.hash create mode 100644 package/libuecc/libuecc.mk create mode 100644 package/libuev/Config.in create mode 100644 package/libuev/libuev.hash create mode 100644 package/libuev/libuev.mk create mode 100644 package/libuhttpd/Config.in create mode 100644 package/libuhttpd/libuhttpd.hash create mode 100644 package/libuhttpd/libuhttpd.mk create mode 100644 package/libuio/0001-configure-remove-po-Makefile.in.patch create mode 100644 package/libuio/Config.in create mode 100644 package/libuio/libuio.hash create mode 100644 package/libuio/libuio.mk create mode 100644 package/libunistring/Config.in create mode 100644 package/libunistring/libunistring.hash create mode 100644 package/libunistring/libunistring.mk create mode 100644 package/libunwind/Config.in create mode 100644 package/libunwind/libunwind.hash create mode 100644 package/libunwind/libunwind.mk create mode 100644 package/libupnp/Config.in create mode 100644 package/libupnp/libupnp.hash create mode 100644 package/libupnp/libupnp.mk create mode 100644 package/libupnpp/Config.in create mode 100644 package/libupnpp/libupnpp.hash create mode 100644 package/libupnpp/libupnpp.mk create mode 100644 package/liburcu/0001-Only-blacklist-ARM-gcc-4.8.0-and-4.8.1.patch create mode 100644 package/liburcu/0002-fix-don-t-use-C-thread_local-on-MacOs.patch create mode 100644 package/liburcu/0003-Always-use-__thread-for-Thread-local-storage-except-on-MSVC.patch create mode 100644 package/liburcu/Config.in create mode 100644 package/liburcu/liburcu.hash create mode 100644 package/liburcu/liburcu.mk create mode 100644 package/liburing/Config.in create mode 100644 package/liburing/liburing.hash create mode 100644 package/liburing/liburing.mk create mode 100644 package/liburiparser/Config.in create mode 100644 package/liburiparser/liburiparser.hash create mode 100644 package/liburiparser/liburiparser.mk create mode 100644 package/libusb-compat/0001-fix-a-build-issue-on-linux.patch create mode 100644 package/libusb-compat/Config.in create mode 100644 package/libusb-compat/libusb-compat.hash create mode 100644 package/libusb-compat/libusb-compat.mk create mode 100644 package/libusb/Config.in create mode 100644 package/libusb/libusb.hash create mode 100644 package/libusb/libusb.mk create mode 100644 package/libusbgx/0001-Add-include-of-sys-sysmacro.h.patch create mode 100644 package/libusbgx/Config.in create mode 100644 package/libusbgx/libusbgx.hash create mode 100644 package/libusbgx/libusbgx.mk create mode 100644 package/libutp/Config.in create mode 100644 package/libutp/libutp.hash create mode 100644 package/libutp/libutp.mk create mode 100644 package/libuv/Config.in create mode 100644 package/libuv/libuv.hash create mode 100644 package/libuv/libuv.mk create mode 100644 package/libuwsc/0001-CMakeLists.txt-add-BUILD_EXAMPLE.patch create mode 100644 package/libuwsc/0002-fix-bad-indentation.patch create mode 100644 package/libuwsc/Config.in create mode 100644 package/libuwsc/libuwsc.hash create mode 100644 package/libuwsc/libuwsc.mk create mode 100644 package/libv4l/Config.in create mode 100644 package/libv4l/libv4l.hash create mode 100644 package/libv4l/libv4l.mk create mode 100644 package/libva-intel-driver/Config.in create mode 100644 package/libva-intel-driver/libva-intel-driver.hash create mode 100644 package/libva-intel-driver/libva-intel-driver.mk create mode 100644 package/libva-utils/Config.in create mode 100644 package/libva-utils/libva-utils.hash create mode 100644 package/libva-utils/libva-utils.mk create mode 100644 package/libva/Config.in create mode 100644 package/libva/libva.hash create mode 100644 package/libva/libva.mk create mode 100644 package/libvdpau/Config.in create mode 100644 package/libvdpau/libvdpau.hash create mode 100644 package/libvdpau/libvdpau.mk create mode 100644 package/libvips/Config.in create mode 100644 package/libvips/libvips.hash create mode 100644 package/libvips/libvips.mk create mode 100644 package/libvirt/90-kvm.rules create mode 100644 package/libvirt/Config.in create mode 100644 package/libvirt/S91virtlogd create mode 100644 package/libvirt/S92libvirtd create mode 100644 package/libvirt/libvirt.hash create mode 100644 package/libvirt/libvirt.mk create mode 100644 package/libvncserver/0001-common-crypto_openssl.c-fix-build-with-libressl-3.5..patch create mode 100644 package/libvncserver/Config.in create mode 100644 package/libvncserver/libvncserver.hash create mode 100644 package/libvncserver/libvncserver.mk create mode 100644 package/libvorbis/Config.in create mode 100644 package/libvorbis/libvorbis.hash create mode 100644 package/libvorbis/libvorbis.mk create mode 100644 package/libvpx/0001-vpx_mem-vpx_mem.h-Fix-compilation-with-uClibc.patch create mode 100644 package/libvpx/Config.in create mode 100644 package/libvpx/libvpx.hash create mode 100644 package/libvpx/libvpx.mk create mode 100644 package/libwebsock/0001-Switch-to-use-pkg-config-to-detect-libevent-and-open.patch create mode 100644 package/libwebsock/0002-fix-ssl.patch create mode 100644 package/libwebsock/0003-fix-incorrect-inline.patch create mode 100644 package/libwebsock/Config.in create mode 100644 package/libwebsock/libwebsock.hash create mode 100644 package/libwebsock/libwebsock.mk create mode 100644 package/libwebsockets/0001-lib-tls-CMakeLists.txt-fix-build-without-threads.patch create mode 100644 package/libwebsockets/Config.in create mode 100644 package/libwebsockets/libwebsockets.hash create mode 100644 package/libwebsockets/libwebsockets.mk create mode 100644 package/libwpe/Config.in create mode 100644 package/libwpe/libwpe.hash create mode 100644 package/libwpe/libwpe.mk create mode 100644 package/libxcrypt/Config.in create mode 100644 package/libxcrypt/libxcrypt.hash create mode 100644 package/libxcrypt/libxcrypt.mk create mode 100644 package/libxkbcommon/Config.in create mode 100644 package/libxkbcommon/libxkbcommon.hash create mode 100644 package/libxkbcommon/libxkbcommon.mk create mode 100644 package/libxml-parser-perl/libxml-parser-perl.hash create mode 100644 package/libxml-parser-perl/libxml-parser-perl.mk create mode 100644 package/libxml2/Config.in create mode 100644 package/libxml2/libxml2.hash create mode 100644 package/libxml2/libxml2.mk create mode 100644 package/libxmlpp/Config.in create mode 100644 package/libxmlpp/libxmlpp.hash create mode 100644 package/libxmlpp/libxmlpp.mk create mode 100644 package/libxmlrpc/Config.in create mode 100644 package/libxmlrpc/libxmlrpc.hash create mode 100644 package/libxmlrpc/libxmlrpc.mk create mode 100644 package/libxslt/Config.in create mode 100644 package/libxslt/libxslt.hash create mode 100644 package/libxslt/libxslt.mk create mode 100644 package/libyaml/Config.in create mode 100644 package/libyaml/libyaml.hash create mode 100644 package/libyaml/libyaml.mk create mode 100644 package/libyang/Config.in create mode 100644 package/libyang/libyang.hash create mode 100644 package/libyang/libyang.mk create mode 100644 package/libyuv/0001-i386-sse2.patch create mode 100644 package/libyuv/Config.in create mode 100644 package/libyuv/libyuv.hash create mode 100644 package/libyuv/libyuv.mk create mode 100644 package/libzip/Config.in create mode 100644 package/libzip/libzip.hash create mode 100644 package/libzip/libzip.mk create mode 100644 package/libzlib/0001-Fix-configure-issue-that-discarded-provided-CC-definition.patch create mode 100644 package/libzlib/0002-fix-CVE-2022-37434.patch create mode 100644 package/libzlib/0003-fix-CVE-2022-37434-regression.patch create mode 100644 package/libzlib/libzlib.hash create mode 100644 package/libzlib/libzlib.mk create mode 100644 package/lightning/0001-include-Makefile.am-don-t-install-lightning.h-twice.patch create mode 100644 package/lightning/Config.in create mode 100644 package/lightning/lightning.hash create mode 100644 package/lightning/lightning.mk create mode 100644 package/lighttpd/0001-Modify-the-default-lighttpd-configuration-file-to-ha.patch create mode 100644 package/lighttpd/Config.in create mode 100644 package/lighttpd/S50lighttpd create mode 100644 package/lighttpd/lighttpd.hash create mode 100644 package/lighttpd/lighttpd.mk create mode 100644 package/lighttpd/lighttpd_tmpfiles.conf create mode 100644 package/lilv/Config.in create mode 100644 package/lilv/lilv.hash create mode 100644 package/lilv/lilv.mk create mode 100644 package/linenoise/Config.in create mode 100644 package/linenoise/linenoise.hash create mode 100644 package/linenoise/linenoise.mk create mode 100644 package/linknx/0001-configure-ac-tweak-CPPUNIT-conditional.patch create mode 100644 package/linknx/0002-src-Makefile.am-fix-linking-with-log4cpp.patch create mode 100644 package/linknx/Config.in create mode 100644 package/linknx/linknx.hash create mode 100644 package/linknx/linknx.mk create mode 100644 package/links/Config.in create mode 100644 package/links/links.hash create mode 100644 package/links/links.mk create mode 100644 package/linphone/0001-src-core-paths-paths.cpp-fix-powerpc-build.patch create mode 100644 package/linphone/Config.in create mode 100644 package/linphone/linphone.hash create mode 100644 package/linphone/linphone.mk create mode 100644 package/linux-backports/Config.in create mode 100644 package/linux-backports/linux-backports.hash create mode 100644 package/linux-backports/linux-backports.mk create mode 100644 package/linux-firmware/Config.in create mode 100644 package/linux-firmware/linux-firmware.hash create mode 100644 package/linux-firmware/linux-firmware.mk create mode 100644 package/linux-fusion/0001-fix-for-linux-4-and-above.patch create mode 100644 package/linux-fusion/0002-Fix-mismatched-conversion-spec-and-value-in-printk.patch create mode 100644 package/linux-fusion/0003-Fix-fusion-Unknown-symbol-tasklist_lock-err-0.patch create mode 100644 package/linux-fusion/0004-Port-one-one_udp.c-to-Linux-4.1.patch create mode 100644 package/linux-fusion/40-fusion.rules create mode 100644 package/linux-fusion/Config.in create mode 100644 package/linux-fusion/linux-fusion.hash create mode 100644 package/linux-fusion/linux-fusion.mk create mode 100644 package/linux-headers/Config.in create mode 100644 package/linux-headers/Config.in.host create mode 120000 package/linux-headers/linux-headers.hash create mode 100644 package/linux-headers/linux-headers.mk create mode 100644 package/linux-pam/Config.in create mode 100644 package/linux-pam/linux-pam.hash create mode 100644 package/linux-pam/linux-pam.mk create mode 100644 package/linux-pam/login.pam create mode 100644 package/linux-pam/other.pam create mode 100644 package/linux-serial-test/Config.in create mode 100644 package/linux-serial-test/linux-serial-test.hash create mode 100644 package/linux-serial-test/linux-serial-test.mk create mode 100644 package/linux-syscall-support/Config.in create mode 100644 package/linux-syscall-support/linux-syscall-support.hash create mode 100644 package/linux-syscall-support/linux-syscall-support.mk create mode 100644 package/linux-tools/Config.in create mode 100644 package/linux-tools/S10hyperv create mode 100644 package/linux-tools/hypervfcopyd.service create mode 100644 package/linux-tools/hypervkvpd.service create mode 100644 package/linux-tools/hypervvssd.service create mode 100644 package/linux-tools/linux-tool-cpupower.mk.in create mode 100644 package/linux-tools/linux-tool-gpio.mk.in create mode 100644 package/linux-tools/linux-tool-hv.mk.in create mode 100644 package/linux-tools/linux-tool-iio.mk.in create mode 100644 package/linux-tools/linux-tool-pci.mk.in create mode 100644 package/linux-tools/linux-tool-perf.mk.in create mode 100644 package/linux-tools/linux-tool-selftests.mk.in create mode 100644 package/linux-tools/linux-tool-tmon.mk.in create mode 100644 package/linux-tools/linux-tools.mk create mode 100644 package/linux-zigbee/0001-test-serial-Remove-test-serial.patch create mode 100644 package/linux-zigbee/0002-addrdb-coord-config-parse.y-add-missing-time.h-inclu.patch create mode 100644 package/linux-zigbee/Config.in create mode 100644 package/linux-zigbee/linux-zigbee.hash create mode 100644 package/linux-zigbee/linux-zigbee.mk create mode 100644 package/linuxconsoletools/Config.in create mode 100644 package/linuxconsoletools/linuxconsoletools.hash create mode 100644 package/linuxconsoletools/linuxconsoletools.mk create mode 100644 package/linuxptp/0001-missing.h-drop-clock_nanosleep-replacement.patch create mode 100644 package/linuxptp/Config.in create mode 100644 package/linuxptp/S65ptp4l create mode 100644 package/linuxptp/S66phc2sys create mode 100644 package/linuxptp/linuxptp.cfg create mode 100644 package/linuxptp/linuxptp.hash create mode 100644 package/linuxptp/linuxptp.mk create mode 100644 package/linuxptp/phc2sys.service create mode 100644 package/linuxptp/ptp4l.service create mode 100644 package/liquid-dsp/Config.in create mode 100644 package/liquid-dsp/liquid-dsp.hash create mode 100644 package/liquid-dsp/liquid-dsp.mk create mode 100644 package/lirc-tools/0001-Fix-build-without-Python.patch create mode 100644 package/lirc-tools/0002-Fix-python-client-cross-compile.patch create mode 100644 package/lirc-tools/0003-python-pkg-Fix-lirc-version-detection-when-cross-com.patch create mode 100644 package/lirc-tools/0004-plugins-devinput.c-fix-build-with-musl-1.2.0.patch create mode 100644 package/lirc-tools/Config.in create mode 100644 package/lirc-tools/S25lircd create mode 100644 package/lirc-tools/lirc-tools.hash create mode 100644 package/lirc-tools/lirc-tools.mk create mode 100644 package/lite/0001-dfbspy-stat.patch create mode 100644 package/lite/0002-no-tests.patch create mode 100644 package/lite/0003-pkg-config.patch create mode 100644 package/lite/Config.in create mode 100644 package/lite/lite.hash create mode 100644 package/lite/lite.mk create mode 100644 package/live555/0001-Add-a-pkg-config-file-for-the-shared-libraries.patch create mode 100644 package/live555/Config.in create mode 100644 package/live555/live555.hash create mode 100644 package/live555/live555.mk create mode 100644 package/ljlinenoise/Config.in create mode 100644 package/ljlinenoise/ljlinenoise.hash create mode 100644 package/ljlinenoise/ljlinenoise.mk create mode 100644 package/ljsyscall/Config.in create mode 100644 package/ljsyscall/ljsyscall.hash create mode 100644 package/ljsyscall/ljsyscall.mk create mode 100644 package/lksctp-tools/Config.in create mode 100644 package/lksctp-tools/lksctp-tools.hash create mode 100644 package/lksctp-tools/lksctp-tools.mk create mode 100644 package/lld/Config.in.host create mode 100644 package/lld/lld.hash create mode 100644 package/lld/lld.mk create mode 100644 package/lldpd/Config.in create mode 100644 package/lldpd/S60lldpd create mode 100644 package/lldpd/lldpd.hash create mode 100644 package/lldpd/lldpd.mk create mode 100644 package/llvm/0001-nfc-Fix-missing-include.patch create mode 100644 package/llvm/Config.in create mode 100644 package/llvm/llvm.hash create mode 100644 package/llvm/llvm.mk create mode 100644 package/lm-sensors/0001-static-build.patch create mode 100644 package/lm-sensors/0002-no-host-ldconfig.patch create mode 100644 package/lm-sensors/Config.in create mode 100644 package/lm-sensors/lm-sensors.hash create mode 100644 package/lm-sensors/lm-sensors.mk create mode 100644 package/lmbench/0001-scripts-build-use-bin-bash-as-shell.patch create mode 100644 package/lmbench/0002-src-Makefile-add-lmbench-to-list-of-executables.patch create mode 100644 package/lmbench/0003-TOO_LONG-100-usec-to-prevent-memsize-from-timingout-.patch create mode 100644 package/lmbench/0004-Fix-garbage-pointer-for-lat_rpc-S-localhost.patch create mode 100644 package/lmbench/Config.in create mode 100644 package/lmbench/lmbench.hash create mode 100644 package/lmbench/lmbench.mk create mode 100644 package/localedef/0001-HACK-only-build-and-install-localedef.patch create mode 100644 package/localedef/0002-relax-dependency-on-GCC-to-4.8-and-binutils-to-2.24.patch create mode 120000 package/localedef/localedef.hash create mode 100644 package/localedef/localedef.mk create mode 100644 package/lockdev/0001-Makefile-install-static-library-and-headers-separate.patch create mode 100644 package/lockdev/Config.in create mode 100644 package/lockdev/lockdev.hash create mode 100644 package/lockdev/lockdev.mk create mode 100644 package/lockfile-progs/0001-sus3v-legacy.patch create mode 100644 package/lockfile-progs/Config.in create mode 100644 package/lockfile-progs/lockfile-progs.hash create mode 100644 package/lockfile-progs/lockfile-progs.mk create mode 100644 package/log4cplus/Config.in create mode 100644 package/log4cplus/log4cplus.hash create mode 100644 package/log4cplus/log4cplus.mk create mode 100644 package/log4cpp/Config.in create mode 100644 package/log4cpp/log4cpp.hash create mode 100644 package/log4cpp/log4cpp.mk create mode 100644 package/log4cxx/0001-boost-fallback-only-check-for-boost-if-really-needed.patch create mode 100644 package/log4cxx/Config.in create mode 100644 package/log4cxx/log4cxx.hash create mode 100644 package/log4cxx/log4cxx.mk create mode 100644 package/log4qt/Config.in create mode 100644 package/log4qt/log4qt.hash create mode 100644 package/log4qt/log4qt.mk create mode 100644 package/logrotate/Config.in create mode 100644 package/logrotate/logrotate.conf create mode 100644 package/logrotate/logrotate.hash create mode 100644 package/logrotate/logrotate.mk create mode 100644 package/logsurfer/Config.in create mode 100644 package/logsurfer/logsurfer.hash create mode 100644 package/logsurfer/logsurfer.mk create mode 100644 package/lpc3250loader/Config.in.host create mode 100644 package/lpc3250loader/lpc3250loader.hash create mode 100644 package/lpc3250loader/lpc3250loader.mk create mode 100644 package/lpeg/Config.in create mode 100644 package/lpeg/lpeg.hash create mode 100644 package/lpeg/lpeg.mk create mode 100644 package/lpty/Config.in create mode 100644 package/lpty/lpty.hash create mode 100644 package/lpty/lpty.mk create mode 100644 package/lrandom/Config.in create mode 100644 package/lrandom/lrandom.hash create mode 100644 package/lrandom/lrandom.mk create mode 100644 package/lrzip/Config.in create mode 100644 package/lrzip/lrzip.hash create mode 100644 package/lrzip/lrzip.mk create mode 100644 package/lrzsz/Config.in create mode 100644 package/lrzsz/lrzsz.hash create mode 100644 package/lrzsz/lrzsz.mk create mode 100644 package/lshw/0001-solve-Compile-error-when-g-version-is-less-than-5.patch create mode 100644 package/lshw/Config.in create mode 100644 package/lshw/lshw.hash create mode 100644 package/lshw/lshw.mk create mode 100644 package/lsof/Config.in create mode 100644 package/lsof/lsof.hash create mode 100644 package/lsof/lsof.mk create mode 100644 package/lsqlite3/Config.in create mode 100644 package/lsqlite3/lsqlite3.hash create mode 100644 package/lsqlite3/lsqlite3.mk create mode 100644 package/lsscsi/Config.in create mode 100644 package/lsscsi/lsscsi.hash create mode 100644 package/lsscsi/lsscsi.mk create mode 100644 package/lsuio/Config.in create mode 100644 package/lsuio/lsuio.hash create mode 100644 package/lsuio/lsuio.mk create mode 100644 package/ltp-testsuite/0001-lapi-Add-sysinfo.h-to-fix-build-with-MUSL-libc.patch create mode 100644 package/ltp-testsuite/0002-kvm-Fix-compilation-on-x86.patch create mode 100644 package/ltp-testsuite/0003-kvm-Fix-undefined-reference-to-__stack_chk_fail.patch create mode 100644 package/ltp-testsuite/0004-nfs05_make_tree-Restore-5-min-timeout.patch create mode 100644 package/ltp-testsuite/0005-syscalls-migrate_pages03-restore-runtime-to-5m.patch create mode 100644 package/ltp-testsuite/0006-mountns0-1-3-wait-for-umount-completed-in-thread_b.patch create mode 100644 package/ltp-testsuite/0007-netstress-Restore-runtime-to-5m.patch create mode 100644 package/ltp-testsuite/0008-net_stress-Fix-usage-of-variables-from-tst_net.sh.patch create mode 100644 package/ltp-testsuite/0009-memcg-functional-Fix-usage-of-PAGESIZE-from-memcg_li.patch create mode 100644 package/ltp-testsuite/Config.in create mode 100644 package/ltp-testsuite/ltp-testsuite.hash create mode 100644 package/ltp-testsuite/ltp-testsuite.mk create mode 100644 package/ltrace/0001-arm-plt.patch create mode 100644 package/ltrace/0002-sparc-add-missing-library.h-include.patch create mode 100644 package/ltrace/0003-configure.ac-fix-autoreconf-with-autoconf-2.70.patch create mode 100644 package/ltrace/Config.in create mode 100644 package/ltrace/ltrace.hash create mode 100644 package/ltrace/ltrace.mk create mode 100644 package/ltris/0001-fix-build-with-gcc-4.8.patch create mode 100644 package/ltris/Config.in create mode 100644 package/ltris/ltris.hash create mode 100644 package/ltris/ltris.mk create mode 100644 package/lttng-babeltrace/0001-tests-lib-Makefile.am-remove-unneeded-static-flag.patch create mode 100644 package/lttng-babeltrace/Config.in create mode 100644 package/lttng-babeltrace/Config.in.host create mode 100644 package/lttng-babeltrace/lttng-babeltrace.hash create mode 100644 package/lttng-babeltrace/lttng-babeltrace.mk create mode 100644 package/lttng-libust/0001-configure.ac-add-disable-tests.patch create mode 100644 package/lttng-libust/Config.in create mode 100644 package/lttng-libust/lttng-libust.hash create mode 100644 package/lttng-libust/lttng-libust.mk create mode 100644 package/lttng-modules/Config.in create mode 100644 package/lttng-modules/lttng-modules.hash create mode 100644 package/lttng-modules/lttng-modules.mk create mode 100644 package/lttng-tools/0001-configure.ac-add-disable-tests.patch create mode 100644 package/lttng-tools/Config.in create mode 100644 package/lttng-tools/lttng-tools.hash create mode 100644 package/lttng-tools/lttng-tools.mk create mode 100644 package/lua-argon2/Config.in create mode 100644 package/lua-argon2/lua-argon2.hash create mode 100644 package/lua-argon2/lua-argon2.mk create mode 100644 package/lua-augeas/Config.in create mode 100644 package/lua-augeas/lua-augeas.hash create mode 100644 package/lua-augeas/lua-augeas.mk create mode 100644 package/lua-basexx/Config.in create mode 100644 package/lua-basexx/lua-basexx.hash create mode 100644 package/lua-basexx/lua-basexx.mk create mode 100644 package/lua-binaryheap/Config.in create mode 100644 package/lua-binaryheap/lua-binaryheap.hash create mode 100644 package/lua-binaryheap/lua-binaryheap.mk create mode 100644 package/lua-bit32/Config.in create mode 100644 package/lua-bit32/lua-bit32.hash create mode 100644 package/lua-bit32/lua-bit32.mk create mode 100644 package/lua-cffi/Config.in create mode 100644 package/lua-cffi/lua-cffi.hash create mode 100644 package/lua-cffi/lua-cffi.mk create mode 100644 package/lua-cjson/Config.in create mode 100644 package/lua-cjson/lua-cjson.hash create mode 100644 package/lua-cjson/lua-cjson.mk create mode 100644 package/lua-coat/Config.in create mode 100644 package/lua-coat/lua-coat.hash create mode 100644 package/lua-coat/lua-coat.mk create mode 100644 package/lua-coatpersistent/Config.in create mode 100644 package/lua-coatpersistent/lua-coatpersistent.hash create mode 100644 package/lua-coatpersistent/lua-coatpersistent.mk create mode 100644 package/lua-codegen/Config.in create mode 100644 package/lua-codegen/lua-codegen.hash create mode 100644 package/lua-codegen/lua-codegen.mk create mode 100644 package/lua-compat53/Config.in create mode 100644 package/lua-compat53/lua-compat53.hash create mode 100644 package/lua-compat53/lua-compat53.mk create mode 100644 package/lua-cqueues/Config.in create mode 100644 package/lua-cqueues/lua-cqueues.hash create mode 100644 package/lua-cqueues/lua-cqueues.mk create mode 100644 package/lua-csnappy/Config.in create mode 100644 package/lua-csnappy/lua-csnappy.hash create mode 100644 package/lua-csnappy/lua-csnappy.mk create mode 100644 package/lua-curl/Config.in create mode 100644 package/lua-curl/lua-curl.hash create mode 100644 package/lua-curl/lua-curl.mk create mode 100644 package/lua-datafile/Config.in create mode 100644 package/lua-datafile/lua-datafile.hash create mode 100644 package/lua-datafile/lua-datafile.mk create mode 100644 package/lua-ev/Config.in create mode 100644 package/lua-ev/lua-ev.hash create mode 100644 package/lua-ev/lua-ev.mk create mode 100644 package/lua-fifo/Config.in create mode 100644 package/lua-fifo/lua-fifo.hash create mode 100644 package/lua-fifo/lua-fifo.mk create mode 100644 package/lua-flu/Config.in create mode 100644 package/lua-flu/lua-flu.hash create mode 100644 package/lua-flu/lua-flu.mk create mode 100644 package/lua-gd/0001-Protect-declaration-of-LgdImageCreateFromPng-with-GD.patch create mode 100644 package/lua-gd/Config.in create mode 100644 package/lua-gd/lua-gd.hash create mode 100644 package/lua-gd/lua-gd.mk create mode 100644 package/lua-http/Config.in create mode 100644 package/lua-http/lua-http.hash create mode 100644 package/lua-http/lua-http.mk create mode 100644 package/lua-iconv/Config.in create mode 100644 package/lua-iconv/lua-iconv.hash create mode 100644 package/lua-iconv/lua-iconv.mk create mode 100644 package/lua-inotify/Config.in create mode 100644 package/lua-inotify/lua-inotify.hash create mode 100644 package/lua-inotify/lua-inotify.mk create mode 100644 package/lua-livr-extra/Config.in create mode 100644 package/lua-livr-extra/lua-livr-extra.hash create mode 100644 package/lua-livr-extra/lua-livr-extra.mk create mode 100644 package/lua-livr/Config.in create mode 100644 package/lua-livr/lua-livr.hash create mode 100644 package/lua-livr/lua-livr.mk create mode 100644 package/lua-lpeg-patterns/Config.in create mode 100644 package/lua-lpeg-patterns/lua-lpeg-patterns.hash create mode 100644 package/lua-lpeg-patterns/lua-lpeg-patterns.mk create mode 100644 package/lua-lunitx/Config.in create mode 100644 package/lua-lunitx/lua-lunitx.hash create mode 100644 package/lua-lunitx/lua-lunitx.mk create mode 100644 package/lua-lunix/0001-fix-with-uClibc.patch create mode 100644 package/lua-lunix/0002-remove-link-with-librt.patch create mode 100644 package/lua-lunix/0003-fix-sysctl-detection.patch create mode 100644 package/lua-lunix/Config.in create mode 100644 package/lua-lunix/lua-lunix.hash create mode 100644 package/lua-lunix/lua-lunix.mk create mode 100644 package/lua-lyaml/Config.in create mode 100644 package/lua-lyaml/lua-lyaml.hash create mode 100644 package/lua-lyaml/lua-lyaml.mk create mode 100644 package/lua-markdown/Config.in create mode 100644 package/lua-markdown/lua-markdown.hash create mode 100644 package/lua-markdown/lua-markdown.mk create mode 100644 package/lua-messagepack/Config.in create mode 100644 package/lua-messagepack/lua-messagepack.hash create mode 100644 package/lua-messagepack/lua-messagepack.mk create mode 100644 package/lua-msgpack-native/Config.in create mode 100644 package/lua-msgpack-native/lua-msgpack-native.hash create mode 100644 package/lua-msgpack-native/lua-msgpack-native.mk create mode 100644 package/lua-periphery/Config.in create mode 100644 package/lua-periphery/lua-periphery.hash create mode 100644 package/lua-periphery/lua-periphery.mk create mode 100644 package/lua-resty-http/Config.in create mode 100644 package/lua-resty-http/lua-resty-http.hash create mode 100644 package/lua-resty-http/lua-resty-http.mk create mode 100644 package/lua-rotas/Config.in create mode 100644 package/lua-rotas/lua-rotas.hash create mode 100644 package/lua-rotas/lua-rotas.mk create mode 100644 package/lua-sailor/Config.in create mode 100644 package/lua-sailor/lua-sailor.hash create mode 100644 package/lua-sailor/lua-sailor.mk create mode 100644 package/lua-sdl2/0001-Do-not-reference-host-directory-for-headers.patch create mode 100644 package/lua-sdl2/0002-CMakeLists-do-not-require-C.patch create mode 100644 package/lua-sdl2/Config.in create mode 100644 package/lua-sdl2/lua-sdl2.hash create mode 100644 package/lua-sdl2/lua-sdl2.mk create mode 100644 package/lua-silva/Config.in create mode 100644 package/lua-silva/lua-silva.hash create mode 100644 package/lua-silva/lua-silva.mk create mode 100644 package/lua-std-debug/Config.in create mode 100644 package/lua-std-debug/lua-std-debug.hash create mode 100644 package/lua-std-debug/lua-std-debug.mk create mode 100644 package/lua-std-normalize/Config.in create mode 100644 package/lua-std-normalize/lua-std-normalize.hash create mode 100644 package/lua-std-normalize/lua-std-normalize.mk create mode 100644 package/lua-stdlib/Config.in create mode 100644 package/lua-stdlib/lua-stdlib.hash create mode 100644 package/lua-stdlib/lua-stdlib.mk create mode 100644 package/lua-testmore/Config.in create mode 100644 package/lua-testmore/lua-testmore.hash create mode 100644 package/lua-testmore/lua-testmore.mk create mode 100644 package/lua-utf8/Config.in create mode 100644 package/lua-utf8/lua-utf8.hash create mode 100644 package/lua-utf8/lua-utf8.mk create mode 100644 package/lua-valua/Config.in create mode 100644 package/lua-valua/lua-valua.hash create mode 100644 package/lua-valua/lua-valua.mk create mode 100644 package/lua-zlib/Config.in create mode 100644 package/lua-zlib/lua-zlib.hash create mode 100644 package/lua-zlib/lua-zlib.mk create mode 100644 package/lua/5.1.5/0001-root-path.patch create mode 100644 package/lua/5.1.5/0002-shared-libs-for-lua.patch create mode 100644 package/lua/5.1.5/0011-linenoise.patch create mode 100644 package/lua/5.1.5/0012-fix-reader-at-eoz.patch create mode 100644 package/lua/5.1.5/lua.hash create mode 100644 package/lua/5.3.6/0001-root-path.patch create mode 100644 package/lua/5.3.6/0002-shared-libs-for-lua.patch create mode 100644 package/lua/5.3.6/0003-linenoise.patch create mode 100644 package/lua/5.3.6/lua.hash create mode 100644 package/lua/5.4.4/0001-root-path.patch create mode 100644 package/lua/5.4.4/0002-shared-libs-for-lua.patch create mode 100644 package/lua/5.4.4/0011-linenoise.patch create mode 100644 package/lua/5.4.4/lua.hash create mode 100644 package/lua/Config.in create mode 100644 package/lua/lua.mk create mode 100644 package/lua/lua.pc.in create mode 100644 package/luabitop/Config.in create mode 100644 package/luabitop/luabitop.hash create mode 100644 package/luabitop/luabitop.mk create mode 100644 package/luadbi-sqlite3/Config.in create mode 100644 package/luadbi-sqlite3/luadbi-sqlite3.hash create mode 100644 package/luadbi-sqlite3/luadbi-sqlite3.mk create mode 100644 package/luadbi/Config.in create mode 100644 package/luadbi/luadbi.hash create mode 100644 package/luadbi/luadbi.mk create mode 100644 package/luaexpat/Config.in create mode 100644 package/luaexpat/luaexpat.hash create mode 100644 package/luaexpat/luaexpat.mk create mode 100644 package/luaexpatutils/Config.in create mode 100644 package/luaexpatutils/luaexpatutils.hash create mode 100644 package/luaexpatutils/luaexpatutils.mk create mode 100644 package/luafilesystem/Config.in create mode 100644 package/luafilesystem/luafilesystem.hash create mode 100644 package/luafilesystem/luafilesystem.mk create mode 100644 package/luainterpreter/Config.in create mode 100644 package/luainterpreter/luainterpreter.mk create mode 100644 package/luajit/0001-no-bin-symlink.patch create mode 100644 package/luajit/0002-install-inc.patch create mode 100644 package/luajit/Config.in create mode 100644 package/luajit/luajit.hash create mode 100644 package/luajit/luajit.mk create mode 100644 package/luajson/Config.in create mode 100644 package/luajson/luajson.hash create mode 100644 package/luajson/luajson.mk create mode 100644 package/lualdap/Config.in create mode 100644 package/lualdap/lualdap.hash create mode 100644 package/lualdap/lualdap.mk create mode 100644 package/lualogging/Config.in create mode 100644 package/lualogging/lualogging.hash create mode 100644 package/lualogging/lualogging.mk create mode 100644 package/luaossl/Config.in create mode 100644 package/luaossl/luaossl.hash create mode 100644 package/luaossl/luaossl.mk create mode 100644 package/luaposix/Config.in create mode 100644 package/luaposix/luaposix.hash create mode 100644 package/luaposix/luaposix.mk create mode 100644 package/luarocks/buildroot.lua create mode 100644 package/luarocks/luarocks.hash create mode 100644 package/luarocks/luarocks.mk create mode 100644 package/luasec/Config.in create mode 100644 package/luasec/luasec.hash create mode 100644 package/luasec/luasec.mk create mode 100644 package/luasocket/Config.in create mode 100644 package/luasocket/luasocket.hash create mode 100644 package/luasocket/luasocket.mk create mode 100644 package/luasql-sqlite3/Config.in create mode 100644 package/luasql-sqlite3/luasql-sqlite3.hash create mode 100644 package/luasql-sqlite3/luasql-sqlite3.mk create mode 100644 package/luasyslog/0001-remove-AX_LUA_LIBS.patch create mode 100644 package/luasyslog/0002-build-ax_lua.m4-fix-cross-compilation.patch create mode 100644 package/luasyslog/Config.in create mode 100644 package/luasyslog/luasyslog.hash create mode 100644 package/luasyslog/luasyslog.mk create mode 100644 package/lugaru/0001-ImageIO-fix-invalid-conversion.patch create mode 100644 package/lugaru/0002-Fix-mismatched-usage-length-build-fail-on-g.patch create mode 100644 package/lugaru/Config.in create mode 100644 package/lugaru/lugaru.hash create mode 100644 package/lugaru/lugaru.mk create mode 100644 package/luksmeta/Config.in create mode 100644 package/luksmeta/luksmeta.hash create mode 100644 package/luksmeta/luksmeta.mk create mode 100644 package/lutok/Config.in create mode 100644 package/lutok/lutok.hash create mode 100644 package/lutok/lutok.mk create mode 100644 package/luv/Config.in create mode 100644 package/luv/luv.hash create mode 100644 package/luv/luv.mk create mode 100644 package/luvi/Config.in create mode 100644 package/luvi/luvi.hash create mode 100644 package/luvi/luvi.mk create mode 100644 package/lv2/Config.in create mode 100644 package/lv2/lv2.hash create mode 100644 package/lv2/lv2.mk create mode 100644 package/lvm2/Config.in create mode 100644 package/lvm2/lvm2.hash create mode 100644 package/lvm2/lvm2.mk create mode 100644 package/lxc/Config.in create mode 100644 package/lxc/lxc.hash create mode 100644 package/lxc/lxc.mk create mode 100644 package/lynx/Config.in create mode 100644 package/lynx/lynx.hash create mode 100644 package/lynx/lynx.mk create mode 100644 package/lz4/0001-Fix-potential-memory-corruption-with-negative-memmov.patch create mode 100644 package/lz4/Config.in create mode 100644 package/lz4/lz4.hash create mode 100644 package/lz4/lz4.mk create mode 100644 package/lzip/Config.in create mode 100644 package/lzip/lzip.hash create mode 100644 package/lzip/lzip.mk create mode 100644 package/lzlib/Config.in create mode 100644 package/lzlib/lzlib.hash create mode 100644 package/lzlib/lzlib.mk create mode 100644 package/lzma-alone/Config.in.host create mode 100644 package/lzma-alone/lzma-alone.hash create mode 100644 package/lzma-alone/lzma-alone.mk create mode 100644 package/lzma/0001-Remove-static-from-LDFLAGS.patch create mode 100644 package/lzma/lzma.hash create mode 100644 package/lzma/lzma.mk create mode 100644 package/lzo/Config.in create mode 100644 package/lzo/lzo.hash create mode 100644 package/lzo/lzo.mk create mode 100644 package/lzop/0001-build-with-gcc6.patch create mode 100644 package/lzop/0002-use-static-inlines-as-the-external-inline-definition.patch create mode 100644 package/lzop/Config.in create mode 100644 package/lzop/lzop.hash create mode 100644 package/lzop/lzop.mk create mode 100644 package/m4/m4.hash create mode 100644 package/m4/m4.mk create mode 100644 package/macchanger/0001-Fix-missing-include-for-caddr_t.patch create mode 100644 package/macchanger/Config.in create mode 100644 package/macchanger/macchanger.hash create mode 100644 package/macchanger/macchanger.mk create mode 100644 package/madplay/0001-switch-to-new-alsa-api.patch create mode 100644 package/madplay/0002-configure-ac-automake-foreign.patch create mode 100644 package/madplay/0003-configure-ac-use-pkg-config-to-find-id3tag.patch create mode 100644 package/madplay/0004-configure-ac-call-AM_MKINSTALLDIRS.patch create mode 100644 package/madplay/Config.in create mode 100644 package/madplay/madplay.hash create mode 100644 package/madplay/madplay.mk create mode 100644 package/make/0001-configure.ac-Support-GLIBC-glob-interface-version-2.patch create mode 100644 package/make/0001-glob-Do-not-assume-glibc-glob-internals.patch create mode 100644 package/make/Config.in create mode 100644 package/make/make.hash create mode 100644 package/make/make.mk create mode 100644 package/makedevs/README create mode 100644 package/makedevs/makedevs.c create mode 100644 package/makedevs/makedevs.mk create mode 100644 package/makedumpfile/0001-PATCH-Define-PN_XNUM-if-missing.patch create mode 100644 package/makedumpfile/Config.in create mode 100644 package/makedumpfile/makedumpfile.hash create mode 100644 package/makedumpfile/makedumpfile.mk create mode 100644 package/mali-driver/Config.in create mode 100644 package/mali-driver/mali-driver.hash create mode 100644 package/mali-driver/mali-driver.mk create mode 100644 package/mali-t76x/Config.in create mode 100644 package/mali-t76x/egl.pc create mode 100644 package/mali-t76x/glesv2.pc create mode 100644 package/mali-t76x/mali-t76x.hash create mode 100644 package/mali-t76x/mali-t76x.mk create mode 100644 package/mariadb/0001-add-extra-check-for-librt.patch create mode 100644 package/mariadb/S97mysqld create mode 100644 package/mariadb/mariadb.hash create mode 100644 package/mariadb/mariadb.mk create mode 100644 package/mariadb/mysqld.service create mode 100644 package/matchbox-common/Config.in create mode 100644 package/matchbox-common/matchbox-common.hash create mode 100644 package/matchbox-common/matchbox-common.mk create mode 100644 package/matchbox-desktop/Config.in create mode 100644 package/matchbox-desktop/matchbox-desktop.hash create mode 100644 package/matchbox-desktop/matchbox-desktop.mk create mode 100644 package/matchbox-fakekey/Config.in create mode 100644 package/matchbox-fakekey/matchbox-fakekey.hash create mode 100644 package/matchbox-fakekey/matchbox-fakekey.mk create mode 100644 package/matchbox-keyboard/Config.in create mode 100644 package/matchbox-keyboard/matchbox-keyboard.hash create mode 100644 package/matchbox-keyboard/matchbox-keyboard.mk create mode 100644 package/matchbox-keyboard/mb-applet-kbd-wrapper.sh create mode 100644 package/matchbox-lib/0001-index-is-legacy.patch create mode 100644 package/matchbox-lib/Config.in create mode 100644 package/matchbox-lib/matchbox-lib.hash create mode 100644 package/matchbox-lib/matchbox-lib.mk create mode 100644 package/matchbox-panel/0001-index-is-legacy.patch create mode 100644 package/matchbox-panel/0002-mb-applet-wireless.patch create mode 100644 package/matchbox-panel/0003-mb-applet-battery.patch create mode 100644 package/matchbox-panel/Config.in create mode 100644 package/matchbox-panel/matchbox-panel.hash create mode 100644 package/matchbox-panel/matchbox-panel.mk create mode 100644 package/matchbox-startup-monitor/0001-true-false.patch create mode 100644 package/matchbox-startup-monitor/Config.in create mode 100644 package/matchbox-startup-monitor/matchbox-startup-monitor.hash create mode 100644 package/matchbox-startup-monitor/matchbox-startup-monitor.mk create mode 100644 package/matchbox/0001-defaulttheme.patch create mode 100644 package/matchbox/0002-src-Fix-build-with-gcc-10.patch create mode 100644 package/matchbox/Config.in create mode 100644 package/matchbox/matchbox.hash create mode 100644 package/matchbox/matchbox.mk create mode 100644 package/matio/Config.in create mode 100644 package/matio/matio.hash create mode 100644 package/matio/matio.mk create mode 100644 package/mawk/Config.in create mode 100644 package/mawk/mawk.hash create mode 100644 package/mawk/mawk.mk create mode 100644 package/mbedtls/0001-bn_mul.h-fix-x86-PIC-inline-ASM-compilation-with-GCC.patch create mode 100644 package/mbedtls/Config.in create mode 100644 package/mbedtls/mbedtls.hash create mode 100644 package/mbedtls/mbedtls.mk create mode 100644 package/mbpfan/Config.in create mode 100644 package/mbpfan/mbpfan.hash create mode 100644 package/mbpfan/mbpfan.mk create mode 100644 package/mbuffer/Config.in create mode 100644 package/mbuffer/mbuffer.hash create mode 100644 package/mbuffer/mbuffer.mk create mode 100644 package/mbw/0001-CMakeLists.txt-fix-build-without-C.patch create mode 100644 package/mbw/Config.in create mode 100644 package/mbw/mbw.hash create mode 100644 package/mbw/mbw.mk create mode 100644 package/mc/Config.in create mode 100644 package/mc/mc.hash create mode 100644 package/mc/mc.mk create mode 100644 package/mcelog/Config.in create mode 100644 package/mcelog/mcelog.hash create mode 100644 package/mcelog/mcelog.mk create mode 100644 package/mdadm/Config.in create mode 100644 package/mdadm/mdadm.hash create mode 100644 package/mdadm/mdadm.mk create mode 100644 package/mdevd/Config.in create mode 100644 package/mdevd/mdevd.hash create mode 100644 package/mdevd/mdevd.mk create mode 100644 package/mediastreamer/0001-src-videofilters-nowebcam.c-fix-build-without-ffmpeg.patch create mode 100644 package/mediastreamer/0002-Use-AV_INPUT_BUFFER_PADDING_SIZE-to-determine-paddin.patch create mode 100644 package/mediastreamer/Config.in create mode 100644 package/mediastreamer/mediastreamer.hash create mode 100644 package/mediastreamer/mediastreamer.mk create mode 100644 package/memcached/0001-logger.c-initialize-rport.patch create mode 100644 package/memcached/0002-check-for-sys-auxv.h.patch create mode 100644 package/memcached/0003-configure.ac-add-disable-werror.patch create mode 100644 package/memcached/0004-configure-ac-use-pkg-config-to-retrieve-openssl.patch create mode 100644 package/memcached/Config.in create mode 100644 package/memcached/memcached.hash create mode 100644 package/memcached/memcached.mk create mode 100644 package/memstat/0001-PATH_MAX.patch create mode 100644 package/memstat/Config.in create mode 100644 package/memstat/memstat.hash create mode 100644 package/memstat/memstat.mk create mode 100644 package/memtest86/Config.in create mode 100644 package/memtest86/memtest86.hash create mode 100644 package/memtest86/memtest86.mk create mode 100644 package/memtester/Config.in create mode 100644 package/memtester/memtester.hash create mode 100644 package/memtester/memtester.mk create mode 100644 package/memtool/Config.in create mode 100644 package/memtool/memtool.hash create mode 100644 package/memtool/memtool.mk create mode 100644 package/mender-artifact/Config.in.host create mode 100644 package/mender-artifact/mender-artifact.hash create mode 100644 package/mender-artifact/mender-artifact.mk create mode 100644 package/mender-connect/Config.in create mode 100644 package/mender-connect/S43mender-connect create mode 100644 package/mender-connect/mender-connect.hash create mode 100644 package/mender-connect/mender-connect.mk create mode 100644 package/mender-grubenv/Config.in create mode 100644 package/mender-grubenv/mender-grubenv.hash create mode 100644 package/mender-grubenv/mender-grubenv.mk create mode 100644 package/mender/Config.in create mode 100644 package/mender/S42mender create mode 100644 package/mender/artifact_info create mode 100644 package/mender/device_type create mode 100644 package/mender/mender-client.service create mode 100644 package/mender/mender.conf create mode 100644 package/mender/mender.hash create mode 100644 package/mender/mender.mk create mode 100644 package/mender/readme.txt create mode 100644 package/mender/server.crt create mode 100644 package/menu-cache/0001-Support-gcc10-compilation.patch create mode 100644 package/menu-cache/Config.in create mode 100644 package/menu-cache/menu-cache.hash create mode 100644 package/menu-cache/menu-cache.mk create mode 100644 package/mesa3d-demos/0001-demos-makes-opengl-an-optional-component.patch create mode 100644 package/mesa3d-demos/Config.in create mode 100644 package/mesa3d-demos/mesa3d-demos.hash create mode 100644 package/mesa3d-demos/mesa3d-demos.mk create mode 100644 package/mesa3d-headers/Config.in create mode 100644 package/mesa3d-headers/dri.pc create mode 120000 package/mesa3d-headers/mesa3d-headers.hash create mode 100644 package/mesa3d-headers/mesa3d-headers.mk create mode 100644 package/mesa3d/0001-c99_math-import-isinf-for-uclibc-based-toolchains.patch create mode 100644 package/mesa3d/0002-meson-Set-proper-value-for-LIBCLC_INCLUDEDIR.patch create mode 100644 package/mesa3d/0003-vc4-add-meson-option-to-disable-optional-neon-suppor.patch create mode 100644 package/mesa3d/0004-src-util-rand_xor-Include-stddef.h-to-fix-build-erro.patch create mode 100644 package/mesa3d/0005-src-util-futex.h-fix-build-on-32-bit-architectures-u.patch create mode 100644 package/mesa3d/0006-util-remove-needless-c99-compat-h-includes.patch create mode 100644 package/mesa3d/0007-include-drop-c11-compat-h.patch create mode 100644 package/mesa3d/0008-Fix-uClibc-build.patch create mode 100644 package/mesa3d/Config.in create mode 100644 package/mesa3d/mesa3d.hash create mode 100644 package/mesa3d/mesa3d.mk create mode 100644 package/meson-tools/0001-amlbootenc-gxl-remove-non-std-C-convention-in-for.patch create mode 100644 package/meson-tools/Config.in.host create mode 100644 package/meson-tools/meson-tools.hash create mode 100644 package/meson-tools/meson-tools.mk create mode 100644 package/meson/0001-Prefer-ext-static-libs-when-default-library-static.patch create mode 100644 package/meson/0002-mesonbuild-dependencies-base.py-add-pkg_config_stati.patch create mode 100644 package/meson/meson.hash create mode 100644 package/meson/meson.mk create mode 100644 package/metacity/0001-add-libm-reference.patch create mode 100644 package/metacity/0002-gconf.patch create mode 100644 package/metacity/0003-mag-add-libm-reference.patch create mode 100644 package/metacity/Config.in create mode 100755 package/metacity/Xsession create mode 100644 package/metacity/metacity.hash create mode 100644 package/metacity/metacity.mk create mode 100644 package/mfgtools/0001-lnx_def.h-fix-conflicting-declaration-of-__time64_t.patch create mode 100644 package/mfgtools/Config.in.host create mode 100644 package/mfgtools/mfgtools.hash create mode 100644 package/mfgtools/mfgtools.mk create mode 100644 package/mfgtools/readme.txt create mode 100644 package/mfoc/Config.in create mode 100644 package/mfoc/mfoc.hash create mode 100644 package/mfoc/mfoc.mk create mode 100644 package/mg/Config.in create mode 100644 package/mg/mg.hash create mode 100644 package/mg/mg.mk create mode 100644 package/micropython-lib/Config.in create mode 100644 package/micropython-lib/micropython-lib.hash create mode 100644 package/micropython-lib/micropython-lib.mk create mode 100644 package/micropython/Config.in create mode 100644 package/micropython/micropython.hash create mode 100644 package/micropython/micropython.mk create mode 100644 package/midori/0001-disable-vala-fatal-warnings.patch create mode 100644 package/midori/0002-add-option-to-specify-path-to-g-ir-compiler.patch create mode 100644 package/midori/Config.in create mode 100644 package/midori/midori.hash create mode 100644 package/midori/midori.mk create mode 100644 package/mii-diag/0001-strchr.patch create mode 100644 package/mii-diag/Config.in create mode 100644 package/mii-diag/mii-diag.hash create mode 100644 package/mii-diag/mii-diag.mk create mode 100644 package/mimic/0001-Fix-linking-on-gcc-10.2.0-or-newer.patch create mode 100644 package/mimic/Config.in create mode 100644 package/mimic/mimic.hash create mode 100644 package/mimic/mimic.mk create mode 100644 package/minetest-game/Config.in create mode 100644 package/minetest-game/minetest-game.hash create mode 100644 package/minetest-game/minetest-game.mk create mode 100644 package/minetest/Config.in create mode 100644 package/minetest/minetest.hash create mode 100644 package/minetest/minetest.mk create mode 100644 package/mini-snmpd/0001-linux.c-fix-musl-build.patch create mode 100644 package/mini-snmpd/Config.in create mode 100644 package/mini-snmpd/mini-snmpd create mode 100644 package/mini-snmpd/mini-snmpd.hash create mode 100644 package/mini-snmpd/mini-snmpd.mk create mode 100644 package/minicom/Config.in create mode 100644 package/minicom/minicom.hash create mode 100644 package/minicom/minicom.mk create mode 100644 package/minidlna/Config.in create mode 100644 package/minidlna/S60minidlnad create mode 100644 package/minidlna/minidlna.hash create mode 100644 package/minidlna/minidlna.mk create mode 100644 package/minidlna/minidlnad.service create mode 100644 package/minimodem/Config.in create mode 100644 package/minimodem/minimodem.hash create mode 100644 package/minimodem/minimodem.mk create mode 100644 package/minissdpd/Config.in create mode 100644 package/minissdpd/S50minissdpd create mode 100644 package/minissdpd/minissdpd.hash create mode 100644 package/minissdpd/minissdpd.mk create mode 100644 package/minissdpd/minissdpd.service create mode 100644 package/minizip-zlib/Config.in create mode 100644 package/minizip-zlib/minizip-zlib.hash create mode 100644 package/minizip-zlib/minizip-zlib.mk create mode 100644 package/minizip/Config.in create mode 100644 package/minizip/minizip.hash create mode 100644 package/minizip/minizip.mk create mode 100644 package/miraclecast/Config.in create mode 100644 package/miraclecast/miraclecast.hash create mode 100644 package/miraclecast/miraclecast.mk create mode 100644 package/mjpegtools/Config.in create mode 100644 package/mjpegtools/mjpegtools.hash create mode 100644 package/mjpegtools/mjpegtools.mk create mode 100644 package/mjpg-streamer/Config.in create mode 100644 package/mjpg-streamer/mjpg-streamer.hash create mode 100644 package/mjpg-streamer/mjpg-streamer.mk create mode 100644 package/mkpasswd/Config.in.host create mode 100644 package/mkpasswd/config.h create mode 100644 package/mkpasswd/mkpasswd.c create mode 100644 package/mkpasswd/mkpasswd.mk create mode 100644 package/mkpasswd/utils.c create mode 100644 package/mkpasswd/utils.h create mode 100644 package/mkpimage/mkpimage.c create mode 100644 package/mkpimage/mkpimage.mk create mode 100644 package/mksh/Config.in create mode 100644 package/mksh/mksh.hash create mode 100644 package/mksh/mksh.mk create mode 100644 package/mmc-utils/0001-mmc_cmds.c-fix-build-with-gcc-4.9.patch create mode 100644 package/mmc-utils/Config.in create mode 100644 package/mmc-utils/mmc-utils.hash create mode 100644 package/mmc-utils/mmc-utils.mk create mode 100644 package/moarvm/Config.in create mode 100644 package/moarvm/moarvm.hash create mode 100644 package/moarvm/moarvm.mk create mode 100644 package/mobile-broadband-provider-info/Config.in create mode 100644 package/mobile-broadband-provider-info/mobile-broadband-provider-info.hash create mode 100644 package/mobile-broadband-provider-info/mobile-broadband-provider-info.mk create mode 100644 package/moby-buildkit/Config.in create mode 100644 package/moby-buildkit/Config.in.host create mode 100644 package/moby-buildkit/moby-buildkit.hash create mode 100644 package/moby-buildkit/moby-buildkit.mk create mode 100644 package/modem-manager/Config.in create mode 100644 package/modem-manager/S44modem-manager create mode 100644 package/modem-manager/modem-manager.hash create mode 100644 package/modem-manager/modem-manager.mk create mode 100644 package/modplugtools/Config.in create mode 100644 package/modplugtools/modplugtools.hash create mode 100644 package/modplugtools/modplugtools.mk create mode 100644 package/modsecurity2/Config.in create mode 100644 package/modsecurity2/modsecurity2.hash create mode 100644 package/modsecurity2/modsecurity2.mk create mode 100644 package/mongodb/0001-ssl_manager.cpp-fix-build-with-gcc-7-and-fpermissive.patch create mode 100644 package/mongodb/0002-src-mongo-db-exec-plan_stats.h-fix-build-with-gcc-11.patch create mode 100644 package/mongodb/Config.in create mode 100644 package/mongodb/mongodb.hash create mode 100644 package/mongodb/mongodb.mk create mode 100644 package/mongoose/Config.in create mode 100644 package/mongoose/mongoose.hash create mode 100644 package/mongoose/mongoose.mk create mode 100644 package/mongrel2/0001-Do-not-run-tests.patch create mode 100644 package/mongrel2/0002-Fix-Makefiles-for-cross-compilation.patch create mode 100644 package/mongrel2/0003-fix-build-with-gcc-4.8.patch create mode 100644 package/mongrel2/Config.in create mode 100644 package/mongrel2/mongrel2.hash create mode 100644 package/mongrel2/mongrel2.mk create mode 100644 package/monit/0001-no-force-static.patch create mode 100644 package/monit/Config.in create mode 100644 package/monit/monit.hash create mode 100644 package/monit/monit.mk create mode 100644 package/mono-gtksharp3/0001-Fixes-MONO_PROFILE_ENTER_LEAVE-undeclared.patch create mode 100644 package/mono-gtksharp3/0002-Mono-compilation-error-branch.patch create mode 100644 package/mono-gtksharp3/Config.in create mode 100644 package/mono-gtksharp3/mono-gtksharp3.hash create mode 100644 package/mono-gtksharp3/mono-gtksharp3.mk create mode 100644 package/mono/0001-Fix-linkage-with-a-system-libatomic_ops-shared-library.patch create mode 100644 package/mono/0002-Ongoing-work-on-the-cmake-build.patch create mode 100644 package/mono/Config.in create mode 100644 package/mono/mono.hash create mode 100644 package/mono/mono.mk create mode 100644 package/monolite/monolite.hash create mode 100644 package/monolite/monolite.mk create mode 100644 package/mosh/Config.in create mode 100644 package/mosh/mosh.hash create mode 100644 package/mosh/mosh.mk create mode 100644 package/mosquitto/Config.in create mode 100644 package/mosquitto/S50mosquitto create mode 100644 package/mosquitto/mosquitto.hash create mode 100644 package/mosquitto/mosquitto.mk create mode 100644 package/most/Config.in create mode 100644 package/most/most.hash create mode 100644 package/most/most.mk create mode 100644 package/motion/0001-configure.ac-remove-po-Makefile.in.patch create mode 100644 package/motion/Config.in create mode 100644 package/motion/S99motion create mode 100644 package/motion/motion.hash create mode 100644 package/motion/motion.mk create mode 100644 package/motion/motion.service create mode 100644 package/mp4v2/Config.in create mode 100644 package/mp4v2/mp4v2.hash create mode 100644 package/mp4v2/mp4v2.mk create mode 100644 package/mpc/Config.in create mode 100644 package/mpc/mpc.hash create mode 100644 package/mpc/mpc.mk create mode 100644 package/mpd-mpc/Config.in create mode 100644 package/mpd-mpc/mpd-mpc.hash create mode 100644 package/mpd-mpc/mpd-mpc.mk create mode 100644 package/mpd/0001-src-event-meson.build-add-atomic-dependency-for-spar.patch create mode 100644 package/mpd/Config.in create mode 100644 package/mpd/S95mpd create mode 100644 package/mpd/mpd.conf create mode 100644 package/mpd/mpd.hash create mode 100644 package/mpd/mpd.mk create mode 100644 package/mpdecimal/Config.in create mode 100644 package/mpdecimal/mpdecimal.hash create mode 100644 package/mpdecimal/mpdecimal.mk create mode 100644 package/mpfr/Config.in create mode 100644 package/mpfr/mpfr.hash create mode 100644 package/mpfr/mpfr.mk create mode 100644 package/mpg123/Config.in create mode 100644 package/mpg123/mpg123.hash create mode 100644 package/mpg123/mpg123.mk create mode 100644 package/mpir/0001-mpn-arm-udiv.asm-workaround-binutils-bug-14887.patch create mode 100644 package/mpir/Config.in create mode 100644 package/mpir/mpir.hash create mode 100644 package/mpir/mpir.mk create mode 100644 package/mpv/0001-fix-powerpc64-altivec.patch create mode 100644 package/mpv/Config.in create mode 100644 package/mpv/mpv.hash create mode 100644 package/mpv/mpv.mk create mode 100644 package/mraa/0001-include-Declare-gVERSION-global-as-extern.patch create mode 100644 package/mraa/Config.in create mode 100644 package/mraa/mraa.hash create mode 100644 package/mraa/mraa.mk create mode 100644 package/mrouted/Config.in create mode 100755 package/mrouted/S41mrouted create mode 100644 package/mrouted/mrouted.hash create mode 100644 package/mrouted/mrouted.mk create mode 100644 package/mrp/Config.in create mode 100644 package/mrp/S65mrp create mode 100644 package/mrp/mrp.hash create mode 100644 package/mrp/mrp.mk create mode 100644 package/mrp/mrp.service create mode 100644 package/msgpack/Config.in create mode 100644 package/msgpack/msgpack.hash create mode 100644 package/msgpack/msgpack.mk create mode 100644 package/msmtp/Config.in create mode 100644 package/msmtp/msmtp.hash create mode 100644 package/msmtp/msmtp.mk create mode 100644 package/msr-tools/Config.in create mode 100644 package/msr-tools/msr-tools.hash create mode 100644 package/msr-tools/msr-tools.mk create mode 100644 package/mstpd/0001-bridge-stp.in-support-different-versions-of-pidof-13.patch create mode 100644 package/mstpd/Config.in create mode 100644 package/mstpd/mstpd.hash create mode 100644 package/mstpd/mstpd.mk create mode 100644 package/mtd/Config.in create mode 100644 package/mtd/Config.in.host create mode 100644 package/mtd/mtd.hash create mode 100644 package/mtd/mtd.mk create mode 100644 package/mtdev/Config.in create mode 100644 package/mtdev/mtdev.hash create mode 100644 package/mtdev/mtdev.mk create mode 100644 package/mtools/Config.in create mode 100644 package/mtools/Config.in.host create mode 100644 package/mtools/mtools.hash create mode 100644 package/mtools/mtools.mk create mode 100644 package/mtr/Config.in create mode 100644 package/mtr/mtr.hash create mode 100644 package/mtr/mtr.mk create mode 100644 package/multicat/Config.in create mode 100644 package/multicat/multicat.hash create mode 100644 package/multicat/multicat.mk create mode 100644 package/multipath-tools/0001-Makefile.inc-Enable-systemd-if-ENABLE_SYSTEMD-is-def.patch create mode 100644 package/multipath-tools/Config.in create mode 100644 package/multipath-tools/S60multipathd create mode 100644 package/multipath-tools/multipath-tools.hash create mode 100644 package/multipath-tools/multipath-tools.mk create mode 100644 package/mupdf/0001-Makefile-add-an-install_libs-target.patch create mode 100644 package/mupdf/0002-Bug-703366-Fix-double-free-of-object-during-linearization.patch create mode 100644 package/mupdf/0003-Bug-703791-Stay-within-hash-table-max-key-size-in-cached-color-converter.patch create mode 100644 package/mupdf/0004-Makefile-compile-hexdump.exe-with-HOSTCC.patch create mode 100644 package/mupdf/Config.in create mode 100644 package/mupdf/mupdf.hash create mode 100644 package/mupdf/mupdf.mk create mode 100644 package/murata-cyw-fw/Config.in create mode 100644 package/murata-cyw-fw/murata-cyw-fw.hash create mode 100644 package/murata-cyw-fw/murata-cyw-fw.mk create mode 100644 package/musepack/0001-shared.patch create mode 100644 package/musepack/0002-cmake-use-the-standard-CMake-flag-to-drive-the-share.patch create mode 100644 package/musepack/0003-include-fpu-control-with-glibc-only.patch create mode 100644 package/musepack/0004-missing-sys-select.patch create mode 100644 package/musepack/0005-fix-build-with-gcc-10.patch create mode 100644 package/musepack/Config.in create mode 100644 package/musepack/musepack.hash create mode 100644 package/musepack/musepack.mk create mode 100644 package/musl-compat-headers/Config.in create mode 100644 package/musl-compat-headers/cdefs.h create mode 100644 package/musl-compat-headers/musl-compat-headers.hash create mode 100644 package/musl-compat-headers/musl-compat-headers.mk create mode 100644 package/musl-fts/Config.in create mode 100644 package/musl-fts/musl-fts.hash create mode 100644 package/musl-fts/musl-fts.mk create mode 100644 package/musl/0001-avoid-kernel-if_ether.h.patch create mode 100644 package/musl/0002-package-musl-Make-scheduler-functions-Linux-compatib.patch create mode 100644 package/musl/0003-fix-incorrect-parameter-name-in-internal-netlink.h-R.patch create mode 100644 package/musl/Config.in create mode 100644 package/musl/musl.hash create mode 100644 package/musl/musl.mk create mode 100644 package/mutt/Config.in create mode 100644 package/mutt/mutt.hash create mode 100644 package/mutt/mutt.mk create mode 100644 package/mxml/Config.in create mode 100644 package/mxml/mxml.hash create mode 100644 package/mxml/mxml.mk create mode 100644 package/mxsldr/Config.in.host create mode 100644 package/mxsldr/mxsldr.mk create mode 100644 package/mysql/Config.in create mode 100644 package/mysql/mysql.mk create mode 100644 package/nano/0001-lib-getrandom.c-fix-build-with-uclibc-1.0.35.patch create mode 100644 package/nano/Config.in create mode 100644 package/nano/nano.hash create mode 100644 package/nano/nano.mk create mode 100644 package/nanocom/0001-fix-build-with-gcc-10.patch create mode 100644 package/nanocom/Config.in create mode 100644 package/nanocom/nanocom.hash create mode 100644 package/nanocom/nanocom.mk create mode 100644 package/nanomsg/Config.in create mode 100644 package/nanomsg/nanomsg.hash create mode 100644 package/nanomsg/nanomsg.mk create mode 100644 package/nasm/nasm.hash create mode 100644 package/nasm/nasm.mk create mode 100644 package/nbd/Config.in create mode 100644 package/nbd/nbd.hash create mode 100644 package/nbd/nbd.mk create mode 100644 package/ncdu/Config.in create mode 100644 package/ncdu/ncdu.hash create mode 100644 package/ncdu/ncdu.mk create mode 100644 package/ncftp/0001-fix-gcc-10.patch create mode 100644 package/ncftp/Config.in create mode 100644 package/ncftp/ncftp.hash create mode 100644 package/ncftp/ncftp.mk create mode 100644 package/ncmpc/0001-meson.build-add-atomic-dependency-for-sparc.patch create mode 100644 package/ncmpc/Config.in create mode 100644 package/ncmpc/ncmpc.hash create mode 100644 package/ncmpc/ncmpc.mk create mode 100644 package/ncurses/0001-gcc-5.x-MKlib_gen.patch create mode 100644 package/ncurses/Config.in create mode 100644 package/ncurses/ncurses.hash create mode 100644 package/ncurses/ncurses.mk create mode 100644 package/ndisc6/Config.in create mode 100644 package/ndisc6/ndisc6.hash create mode 100644 package/ndisc6/ndisc6.mk create mode 100644 package/ne10/0001-CMakeLists-don-t-hard-code-thumb-code-generation.patch create mode 100644 package/ne10/0002-fix-build-without-C.patch create mode 100644 package/ne10/Config.in create mode 100644 package/ne10/ne10.hash create mode 100644 package/ne10/ne10.mk create mode 100644 package/neard/Config.in create mode 100644 package/neard/S53neard create mode 100644 package/neard/neard.hash create mode 100644 package/neard/neard.mk create mode 100644 package/neardal/0001-lib-neardal.h-fix-build-with-gcc-10.patch create mode 100644 package/neardal/Config.in create mode 100644 package/neardal/neardal.hash create mode 100644 package/neardal/neardal.mk create mode 100644 package/neofetch/Config.in create mode 100644 package/neofetch/neofetch.hash create mode 100644 package/neofetch/neofetch.mk create mode 100644 package/neon/0001-Revert-Advertise-TS_SSL-feature-with-OpenSSL-1.1.0.patch create mode 100644 package/neon/0002-configure.ac-fix-autoreconf.patch create mode 100644 package/neon/Config.in create mode 100644 package/neon/neon.hash create mode 100644 package/neon/neon.mk create mode 100644 package/nerdctl/Config.in create mode 100644 package/nerdctl/nerdctl.hash create mode 100644 package/nerdctl/nerdctl.mk create mode 100644 package/net-tools/Config.in create mode 100644 package/net-tools/net-tools.hash create mode 100644 package/net-tools/net-tools.mk create mode 100644 package/netatalk/0001-Fix-setting-of-LD_LIBRARY_FLAGS-shlibpath_var.patch create mode 100644 package/netatalk/0002-etc-uams-openssl_compat.h-fix-build-with-libressl-2..patch create mode 100644 package/netatalk/Config.in create mode 100644 package/netatalk/S50netatalk create mode 100644 package/netatalk/netatalk.hash create mode 100644 package/netatalk/netatalk.mk create mode 100644 package/netcalc/Config.in create mode 100644 package/netcalc/netcalc.hash create mode 100644 package/netcalc/netcalc.mk create mode 100644 package/netcat-openbsd/Config.in create mode 100644 package/netcat-openbsd/netcat-openbsd.hash create mode 100644 package/netcat-openbsd/netcat-openbsd.mk create mode 100644 package/netcat/0001-signed-bit-counting.patch create mode 100644 package/netcat/Config.in create mode 100644 package/netcat/netcat.hash create mode 100644 package/netcat/netcat.mk create mode 100644 package/netdata/Config.in create mode 100644 package/netdata/S60netdata create mode 100644 package/netdata/netdata.hash create mode 100644 package/netdata/netdata.mk create mode 100644 package/netifrc/Config.in create mode 100644 package/netifrc/netifrc.hash create mode 100644 package/netifrc/netifrc.mk create mode 100644 package/netopeer2/0001-build-BUGFIX-use-DESTDIR-when-executing-scripts.patch create mode 100644 package/netopeer2/Config.in create mode 100644 package/netopeer2/S52netopeer2 create mode 100644 package/netopeer2/netopeer2.hash create mode 100644 package/netopeer2/netopeer2.mk create mode 100644 package/netperf/0001-src-nettest_omni.c-fix-compilation-with-GCC10.patch create mode 100644 package/netperf/Config.in create mode 100644 package/netperf/netperf.hash create mode 100644 package/netperf/netperf.mk create mode 100644 package/netplug/0001-makefile-flags.patch create mode 100644 package/netplug/0002-add-missing-time-include.patch create mode 100644 package/netplug/0003-remove-assert-fail.patch create mode 100644 package/netplug/Config.in create mode 100644 package/netplug/S29netplug create mode 100755 package/netplug/netplug-script create mode 100644 package/netplug/netplug.hash create mode 100644 package/netplug/netplug.mk create mode 100644 package/netplug/netplug.service create mode 100644 package/netsniff-ng/0001-Detect-libpcap-dependencies-using-pkg-config.patch create mode 100644 package/netsniff-ng/Config.in create mode 100644 package/netsniff-ng/netsniff-ng.hash create mode 100644 package/netsniff-ng/netsniff-ng.mk create mode 100644 package/netsnmp/0001-configure-static-linking-Fix-SSL-checks.patch create mode 100644 package/netsnmp/0002-configure-Fix-lcrypto-lz-test.patch create mode 100644 package/netsnmp/0003-configure-fix-AC_CHECK_FUNCS-EVP_sha224-EVP_sha384-..patch create mode 100644 package/netsnmp/0004-configure-fix-AC_CHECK_FUNCS-TLS_method-TLSv1_method.patch create mode 100644 package/netsnmp/Config.in create mode 100644 package/netsnmp/S59snmpd create mode 100644 package/netsnmp/netsnmp.hash create mode 100644 package/netsnmp/netsnmp.mk create mode 100644 package/netstat-nat/Config.in create mode 100644 package/netstat-nat/netstat-nat.hash create mode 100644 package/netstat-nat/netstat-nat.mk create mode 100644 package/netsurf-buildsystem/netsurf-buildsystem.hash create mode 100644 package/netsurf-buildsystem/netsurf-buildsystem.mk create mode 100644 package/netsurf/0001-avoid-system-perl-dependencies.patch create mode 100644 package/netsurf/0002-do-not-cross-compile-nsgenbind.patch create mode 100644 package/netsurf/0003-fix-compilation-without-curl.patch create mode 100644 package/netsurf/0004-framebuffer-Fix-internal-font-generated-source-for-GCC-10.patch create mode 100644 package/netsurf/Config.in create mode 100644 package/netsurf/netsurf.hash create mode 100644 package/netsurf/netsurf.mk create mode 100644 package/nettle/0001-disable-testsuite-examples.patch create mode 100644 package/nettle/Config.in create mode 100644 package/nettle/nettle.hash create mode 100644 package/nettle/nettle.mk create mode 100644 package/network-manager-openvpn/Config.in create mode 100644 package/network-manager-openvpn/network-manager-openvpn.hash create mode 100644 package/network-manager-openvpn/network-manager-openvpn.mk create mode 100644 package/network-manager/Config.in create mode 100644 package/network-manager/S45network-manager create mode 100644 package/network-manager/network-manager.hash create mode 100644 package/network-manager/network-manager.mk create mode 100644 package/networkd-dispatcher/Config.in create mode 100644 package/networkd-dispatcher/networkd-dispatcher.hash create mode 100644 package/networkd-dispatcher/networkd-dispatcher.mk create mode 100644 package/newt/Config.in create mode 100644 package/newt/newt.hash create mode 100644 package/newt/newt.mk create mode 100644 package/nfacct/Config.in create mode 100644 package/nfacct/nfacct.hash create mode 100644 package/nfacct/nfacct.mk create mode 100644 package/nfs-utils/0001-nfsrahead-fix-linking-while-static-linking.patch create mode 100644 package/nfs-utils/Config.in create mode 100644 package/nfs-utils/S60nfs create mode 100644 package/nfs-utils/nfs-utils.hash create mode 100644 package/nfs-utils/nfs-utils.mk create mode 100755 package/nfs-utils/nfs-utils_env.sh create mode 100644 package/nfs-utils/nfs-utils_tmpfiles.conf create mode 100644 package/nftables/Config.in create mode 100644 package/nftables/nftables.hash create mode 100644 package/nftables/nftables.mk create mode 100644 package/nghttp2/Config.in create mode 100644 package/nghttp2/nghttp2.hash create mode 100644 package/nghttp2/nghttp2.mk create mode 100644 package/nginx-dav-ext/Config.in create mode 100644 package/nginx-dav-ext/nginx-dav-ext.hash create mode 100644 package/nginx-dav-ext/nginx-dav-ext.mk create mode 100644 package/nginx-modsecurity/0001-config-use-pkg-config.patch create mode 100644 package/nginx-modsecurity/Config.in create mode 100644 package/nginx-modsecurity/nginx-modsecurity.hash create mode 100644 package/nginx-modsecurity/nginx-modsecurity.mk create mode 100644 package/nginx-naxsi/0001-naxsi_src-naxsi_runtime.c-fix-build-without-x_forwar.patch create mode 100644 package/nginx-naxsi/Config.in create mode 100644 package/nginx-naxsi/nginx-naxsi.hash create mode 100644 package/nginx-naxsi/nginx-naxsi.mk create mode 100644 package/nginx-upload/Config.in create mode 100644 package/nginx-upload/nginx-upload.hash create mode 100644 package/nginx-upload/nginx-upload.mk create mode 100644 package/nginx/0001-auto-type-sizeof-rework-autotest-to-be-cross-compila.patch create mode 100644 package/nginx/0002-auto-feature-add-mechanism-allowing-to-force-feature.patch create mode 100644 package/nginx/0003-auto-set-ngx_feature_run_force_result-for-each-featu.patch create mode 100644 package/nginx/0004-auto-lib-libxslt-conf-use-pkg-config.patch create mode 100644 package/nginx/0005-auto-unix-make-sys_nerr-guessing-cross-friendly.patch create mode 100644 package/nginx/0006-auto-lib-openssl-conf-use-pkg-config.patch create mode 100644 package/nginx/0007-auto-lib-libgd-conf-use-pkg-config.patch create mode 100644 package/nginx/0008-src-os-unix-ngx_linux_config.h-only-include-dlfcn.h-.patch create mode 100644 package/nginx/0009-auto-os-linux-fix-build-with-libxcrypt.patch create mode 100644 package/nginx/0010-Allow-forcing-of-endianness-for-cross-compilation.patch create mode 100644 package/nginx/Config.in create mode 100644 package/nginx/S50nginx create mode 100644 package/nginx/nginx.hash create mode 100644 package/nginx/nginx.logrotate create mode 100644 package/nginx/nginx.mk create mode 100644 package/nginx/nginx.service create mode 100644 package/ngircd/Config.in create mode 100644 package/ngircd/ngircd.hash create mode 100644 package/ngircd/ngircd.mk create mode 100644 package/ngrep/0001-Fix-typo-in-configure-in-when-testing-for-use_pcre.patch create mode 100644 package/ngrep/0002-Check-for-libnet_init-in-configure-in.patch create mode 100644 package/ngrep/0003-fix-disable-tcpkill.patch create mode 100644 package/ngrep/Config.in create mode 100644 package/ngrep/ngrep.hash create mode 100644 package/ngrep/ngrep.mk create mode 100644 package/nilfs-utils/0001-nilfs_cleanerd-link-dynamically.patch create mode 100644 package/nilfs-utils/Config.in create mode 100644 package/nilfs-utils/nilfs-utils.hash create mode 100644 package/nilfs-utils/nilfs-utils.mk create mode 100644 package/ninja/ninja.hash create mode 100644 package/ninja/ninja.mk create mode 100644 package/nload/Config.in create mode 100644 package/nload/nload.hash create mode 100644 package/nload/nload.mk create mode 100644 package/nmap/0001-libdnet-wrapper-configure.patch create mode 100644 package/nmap/Config.in create mode 100644 package/nmap/nmap.hash create mode 100644 package/nmap/nmap.mk create mode 100644 package/nmon/Config.in create mode 100644 package/nmon/nmon.hash create mode 100644 package/nmon/nmon.mk create mode 100644 package/nodejs/0001-add-qemu-wrapper-support.patch create mode 100644 package/nodejs/0001-check-if-uclibc-has-backtrace-support.patch create mode 100644 package/nodejs/Config.in create mode 100644 package/nodejs/Config.in.host create mode 100644 package/nodejs/nodejs.hash create mode 100644 package/nodejs/nodejs.mk create mode 100644 package/nodejs/v8-qemu-wrapper.in create mode 100644 package/nodm/Config.in create mode 100644 package/nodm/S90nodm create mode 100644 package/nodm/nodm.hash create mode 100644 package/nodm/nodm.mk create mode 100644 package/nodm/nodm.pam create mode 100644 package/noip/Config.in create mode 100644 package/noip/noip.hash create mode 100644 package/noip/noip.mk create mode 100644 package/norm/0001-protolib-drop-linux-version-check.patch create mode 100644 package/norm/0002-Use-print-as-function-call-for-Python3-compatibility.patch create mode 100644 package/norm/0003-Fix-mixed-tabs-spaces-in-protolib-wscript.patch create mode 100644 package/norm/Config.in create mode 100644 package/norm/norm.hash create mode 100644 package/norm/norm.mk create mode 100644 package/nss-mdns/Config.in create mode 100644 package/nss-mdns/nss-mdns.hash create mode 100644 package/nss-mdns/nss-mdns.mk create mode 100644 package/nss-myhostname/Config.in create mode 100644 package/nss-myhostname/nss-myhostname.hash create mode 100644 package/nss-myhostname/nss-myhostname.mk create mode 100644 package/nss-pam-ldapd/Config.in create mode 100644 package/nss-pam-ldapd/S45nslcd create mode 100644 package/nss-pam-ldapd/nslcd.service create mode 100644 package/nss-pam-ldapd/nss-pam-ldapd.hash create mode 100644 package/nss-pam-ldapd/nss-pam-ldapd.mk create mode 100644 package/ntfs-3g/Config.in create mode 100644 package/ntfs-3g/ntfs-3g.hash create mode 100644 package/ntfs-3g/ntfs-3g.mk create mode 100644 package/ntp/0001-nano.patch create mode 100644 package/ntp/0002-ntp-syscalls-fallback.patch create mode 100644 package/ntp/0003-override-shell.patch create mode 100644 package/ntp/0004-libntp-Do-not-use-PTHREAD_STACK_MIN-on-glibc.patch create mode 100644 package/ntp/Config.in create mode 100644 package/ntp/S48sntp create mode 100644 package/ntp/S49ntp.in create mode 100644 package/ntp/ntp.hash create mode 100644 package/ntp/ntp.mk create mode 100644 package/ntp/ntpd.etc.conf create mode 100644 package/ntp/ntpd.service.in create mode 100644 package/ntpsec/0001-ntptime-fix-jfmt5-ofmt5-jfmt6-ofmt6-related-compile-.patch create mode 100644 package/ntpsec/0002-wscript-remove-checks-for-bsd-string.h-fixes-host-co.patch create mode 100644 package/ntpsec/0003-fix-build-with-libressl.patch create mode 100644 package/ntpsec/Config.in create mode 100644 package/ntpsec/S49ntpd create mode 100644 package/ntpsec/ntpd.etc.conf create mode 100644 package/ntpsec/ntpsec.hash create mode 100644 package/ntpsec/ntpsec.mk create mode 100644 package/numactl/0001-Do-not-stringify-SYMVER-symbols.patch create mode 100644 package/numactl/0002-link-with-latomic-if-needed.patch create mode 100644 package/numactl/Config.in create mode 100644 package/numactl/numactl.hash create mode 100644 package/numactl/numactl.mk create mode 100644 package/nut/Config.in create mode 100644 package/nut/nut.hash create mode 100644 package/nut/nut.mk create mode 100644 package/nuttcp/0001-susv3-legacy.patch create mode 100644 package/nuttcp/Config.in create mode 100644 package/nuttcp/nuttcp.hash create mode 100644 package/nuttcp/nuttcp.mk create mode 100644 package/nvidia-driver/0001-use-LDFLAGS.patch create mode 100644 package/nvidia-driver/Config.in create mode 100644 package/nvidia-driver/egl.pc create mode 100644 package/nvidia-driver/gl.pc create mode 100644 package/nvidia-driver/nvidia-driver.hash create mode 100644 package/nvidia-driver/nvidia-driver.mk create mode 100644 package/nvidia-modprobe/Config.in create mode 100644 package/nvidia-modprobe/nvidia-modprobe.hash create mode 100644 package/nvidia-modprobe/nvidia-modprobe.mk create mode 100644 package/nvme/Config.in create mode 100644 package/nvme/nvme.hash create mode 100644 package/nvme/nvme.mk create mode 100644 package/obsidian-cursors/Config.in create mode 100644 package/obsidian-cursors/obsidian-cursors.hash create mode 100644 package/obsidian-cursors/obsidian-cursors.mk create mode 100644 package/ocf-linux/ocf-linux.hash create mode 100644 package/ocf-linux/ocf-linux.mk create mode 100644 package/ocrad/Config.in create mode 100644 package/ocrad/ocrad.hash create mode 100644 package/ocrad/ocrad.mk create mode 100644 package/octave/0001-Fix-BLAS-library-integer-size-detection.patch create mode 100644 package/octave/Config.in create mode 100644 package/octave/octave.hash create mode 100644 package/octave/octave.mk create mode 100644 package/odb/0001-tm.h-include-in-gcc.hxx-appears-to-be-no-longer-nece.patch create mode 100644 package/odb/0002-Remove-gratuitous-classes.patch create mode 100644 package/odb/0003-Initial-work-to-make-ODB-compatible-with-GCC-6.patch create mode 100644 package/odb/0004-Make-compilable-with-GCC-6-in-C-14-mode.patch create mode 100644 package/odb/0005-Fix-bug-in-GCC-6-input_location-translation.patch create mode 100644 package/odb/0006-Adapt-to-changes-in-GCC-8.patch create mode 100644 package/odb/0007-Switch-to-C-11-get-rid-of-auto_ptr-use.patch create mode 100644 package/odb/0008-Fix-GCC-8-adaptation-to-be-compatible-with-previous-.patch create mode 100644 package/odb/0009-Handle-namespace-aliases-when-parsing-GCC-tree.patch create mode 100644 package/odb/0010-Add-initial-support-for-GCC-9.patch create mode 100644 package/odb/0011-Adjust-to-changes-in-GCC-10.patch create mode 100644 package/odb/0012-Adjust-to-changes-in-GCC-11.patch create mode 100644 package/odb/0013-Resolve-name-lookup-ambiguity-causing-error-with-GCC.patch create mode 100644 package/odb/Config.in.host create mode 100644 package/odb/odb.hash create mode 100644 package/odb/odb.mk create mode 100644 package/odhcp6c/Config.in create mode 100644 package/odhcp6c/odhcp6c.hash create mode 100644 package/odhcp6c/odhcp6c.mk create mode 100644 package/odhcploc/Config.in create mode 100644 package/odhcploc/odhcploc.hash create mode 100644 package/odhcploc/odhcploc.mk create mode 100644 package/odroidc2-firmware/Config.in create mode 100644 package/odroidc2-firmware/odroidc2-firmware.hash create mode 100644 package/odroidc2-firmware/odroidc2-firmware.mk create mode 100644 package/ofono/0001-uclibc-backtrace.patch create mode 100644 package/ofono/0002-fix-musl-compile.patch create mode 100644 package/ofono/Config.in create mode 100644 package/ofono/S46ofono create mode 100644 package/ofono/ofono.hash create mode 100644 package/ofono/ofono.mk create mode 100644 package/ogre/Config.in create mode 100644 package/ogre/ogre.hash create mode 100644 package/ogre/ogre.mk create mode 100644 package/ola/0001-ola-fix-compilation-with-musl-1-2-3.patch create mode 100644 package/ola/Config.in create mode 100644 package/ola/ola.hash create mode 100644 package/ola/ola.mk create mode 100644 package/olsr/0001-olsrd-migrate-to-using-bison-3.7.1.patch create mode 100644 package/olsr/0002-lib-pud-Makefile-fix-parallel-build.patch create mode 100644 package/olsr/0003-pud-adapt-to-API-changes-in-gpsd-3-20.patch create mode 100644 package/olsr/0004-pud-adapt-gpsdclient.c-to-new-gpsd-3.21.patch create mode 100644 package/olsr/0005-lib-pud-src-gpsdclient.c-drop-handling-of-gpsdata-fi.patch create mode 100644 package/olsr/Config.in create mode 100644 package/olsr/S50olsr create mode 100644 package/olsr/olsr.hash create mode 100644 package/olsr/olsr.mk create mode 100644 package/olsr/olsr.service create mode 100644 package/omap-u-boot-utils/Config.in.host create mode 100644 package/omap-u-boot-utils/omap-u-boot-utils.hash create mode 100644 package/omap-u-boot-utils/omap-u-boot-utils.mk create mode 100644 package/omniorb/Config.in create mode 100644 package/omniorb/omniorb.hash create mode 100644 package/omniorb/omniorb.mk create mode 100644 package/omxplayer/0001-Update-Makefile-to-be-compatible-with-buildroot.patch create mode 100644 package/omxplayer/Config.in create mode 100644 package/omxplayer/omxplayer.hash create mode 100644 package/omxplayer/omxplayer.mk create mode 100644 package/on2-8170-libs/Config.in create mode 100644 package/on2-8170-libs/on2-8170-libs.hash create mode 100644 package/on2-8170-libs/on2-8170-libs.mk create mode 100644 package/on2-8170-modules/Config.in create mode 100644 package/on2-8170-modules/on2-8170-modules.hash create mode 100644 package/on2-8170-modules/on2-8170-modules.mk create mode 100644 package/oniguruma/Config.in create mode 100644 package/oniguruma/oniguruma.hash create mode 100644 package/oniguruma/oniguruma.mk create mode 100644 package/open-lldp/Config.in create mode 100644 package/open-lldp/open-lldp.hash create mode 100644 package/open-lldp/open-lldp.mk create mode 100644 package/open-plc-utils/0001-Remove-OWNER-and-GROUPS-parameters-to-install.patch create mode 100644 package/open-plc-utils/0002-plc-plc.h-fix-build-with-gcc-10.patch create mode 100644 package/open-plc-utils/Config.in create mode 100644 package/open-plc-utils/open-plc-utils.hash create mode 100644 package/open-plc-utils/open-plc-utils.mk create mode 100644 package/open2300/0001-fix-makefile.patch create mode 100644 package/open2300/Config.in create mode 100644 package/open2300/open2300.hash create mode 100644 package/open2300/open2300.mk create mode 100644 package/open62541/Config.in create mode 100644 package/open62541/open62541.hash create mode 100644 package/open62541/open62541.mk create mode 100644 package/openal/Config.in create mode 100644 package/openal/openal.hash create mode 100644 package/openal/openal.mk create mode 100644 package/openblas/0001-Makefile.system-don-t-specify-optimization-level-bui.patch create mode 100644 package/openblas/Config.in create mode 100644 package/openblas/openblas.hash create mode 100644 package/openblas/openblas.mk create mode 100644 package/openbox/Config.in create mode 100644 package/openbox/openbox.hash create mode 100644 package/openbox/openbox.mk create mode 100644 package/opencl-clhpp/Config.in create mode 100644 package/opencl-clhpp/opencl-clhpp.hash create mode 100644 package/opencl-clhpp/opencl-clhpp.mk create mode 100644 package/opencore-amr/Config.in create mode 100644 package/opencore-amr/opencore-amr.hash create mode 100644 package/opencore-amr/opencore-amr.mk create mode 100644 package/opencv3/Config.in create mode 100644 package/opencv3/opencv3.hash create mode 100644 package/opencv3/opencv3.mk create mode 100644 package/opencv4/Config.in create mode 100644 package/opencv4/opencv4.hash create mode 100644 package/opencv4/opencv4.mk create mode 100644 package/openfpgaloader/Config.in create mode 100644 package/openfpgaloader/openfpgaloader.hash create mode 100644 package/openfpgaloader/openfpgaloader.mk create mode 100644 package/opengl/Config.in create mode 100644 package/opengl/libegl/Config.in create mode 100644 package/opengl/libegl/libegl.mk create mode 100644 package/opengl/libgbm/Config.in create mode 100644 package/opengl/libgbm/libgbm.mk create mode 100644 package/opengl/libgl/Config.in create mode 100644 package/opengl/libgl/libgl.mk create mode 100644 package/opengl/libgles/Config.in create mode 100644 package/opengl/libgles/libgles.mk create mode 100644 package/opengl/libopencl/Config.in create mode 100644 package/opengl/libopencl/libopencl.mk create mode 100644 package/opengl/libopenmax/Config.in create mode 100644 package/opengl/libopenmax/libopenmax.mk create mode 100644 package/opengl/libopenvg/Config.in create mode 100644 package/opengl/libopenvg/libopenvg.mk create mode 100644 package/opengl/opengl.mk create mode 100644 package/openipmi/0001-Avoid-searching-host-library-path.patch create mode 100644 package/openipmi/0002-configure.ac-add-without-execinfo-option.patch create mode 100644 package/openipmi/Config.in create mode 100644 package/openipmi/openipmi.hash create mode 100644 package/openipmi/openipmi.mk create mode 100644 package/openjdk-bin/openjdk-bin.hash create mode 100644 package/openjdk-bin/openjdk-bin.mk create mode 100644 package/openjdk/17.0.1+12/0001-Add-ARCv2-ISA-processors-support-to-Zero.patch create mode 100644 package/openjdk/Config.in create mode 100644 package/openjdk/openjdk.hash create mode 100644 package/openjdk/openjdk.mk create mode 100644 package/openjpeg/Config.in create mode 100644 package/openjpeg/openjpeg.hash create mode 100644 package/openjpeg/openjpeg.mk create mode 100644 package/openlayers/Config.in create mode 100644 package/openlayers/openlayers.hash create mode 100644 package/openlayers/openlayers.mk create mode 100644 package/openldap/0001-fix_cross_strip.patch create mode 100644 package/openldap/0002-fix-bignum.patch create mode 100644 package/openldap/0003-disable-docs.patch create mode 100644 package/openldap/0004-revert-ITS-3977-fix-libtool-static-behavior-to-match.patch create mode 100644 package/openldap/Config.in create mode 100644 package/openldap/openldap.hash create mode 100644 package/openldap/openldap.mk create mode 100644 package/openmpi/Config.in create mode 100644 package/openmpi/openmpi-mips32-fortran.cache create mode 100644 package/openmpi/openmpi-mips64-fortran.cache create mode 100644 package/openmpi/openmpi.hash create mode 100644 package/openmpi/openmpi.mk create mode 100644 package/openntpd/Config.in create mode 100644 package/openntpd/S49ntp create mode 100644 package/openntpd/ntpd.service create mode 100644 package/openntpd/openntpd.hash create mode 100644 package/openntpd/openntpd.mk create mode 100644 package/openobex/Config.in create mode 100644 package/openobex/openobex.hash create mode 100644 package/openobex/openobex.mk create mode 100644 package/openocd/0001-configure-enable-build-on-uclinux.patch create mode 100644 package/openocd/0002-configure.ac-fix-autoreconf-with-autoconf-2.70.patch create mode 100644 package/openocd/0003-stlink-fix-SIGSEGV-with-libusb-v1.0.24-33-g32a2206-1.patch create mode 100644 package/openocd/Config.in create mode 100644 package/openocd/Config.in.host create mode 100644 package/openocd/openocd.hash create mode 100644 package/openocd/openocd.mk create mode 100644 package/openpgm/0001-Rename-openpgm-5.2.pc.in.patch create mode 100644 package/openpgm/0002-openpgm-pgm-checksum.c-fix-build-with-32-bits-MMX.patch create mode 100644 package/openpgm/Config.in create mode 100644 package/openpgm/openpgm.hash create mode 100644 package/openpgm/openpgm.mk create mode 100644 package/openpowerlink/0001-install-the-stack-libraries-to-lib-subdirectory.patch create mode 100644 package/openpowerlink/0002-cmake-install-oplk-headers-files.patch create mode 100644 package/openpowerlink/0003-Add-top-level-CMakeLists.txt.patch create mode 100644 package/openpowerlink/Config.in create mode 100644 package/openpowerlink/openpowerlink.hash create mode 100644 package/openpowerlink/openpowerlink.mk create mode 100644 package/openrc/0001-init.d-sysctl.in-add-support-for-busybox-sysctl.patch create mode 100644 package/openrc/0002-sh-init.sh.Linux.in-change-run-lock-from-root-uucp-t.patch create mode 100644 package/openrc/0003-init.d-agetty-replace-sbin-agetty-by-sbin-getty.patch create mode 100644 package/openrc/0004-init.d-agetty-start-agetty-after-all-sevices.patch create mode 100644 package/openrc/0005-runlevels-do-not-add-agetty.tty-1-6-if-MKSYSVINIT-ye.patch create mode 100644 package/openrc/0006-Also-create-run-lock-subsys-directory.patch create mode 100644 package/openrc/Config.in create mode 100644 package/openrc/openrc.hash create mode 100644 package/openrc/openrc.mk create mode 100755 package/openrc/sysv-rcs create mode 100644 package/openresolv/Config.in create mode 100644 package/openresolv/openresolv.hash create mode 100644 package/openresolv/openresolv.mk create mode 100644 package/opensc/0001-Fix-maybe-uninitialized-errors.patch create mode 100644 package/opensc/0002-added-compatibility-with-LibreSSL.patch create mode 100644 package/opensc/0003-Fix-build-with-libressl-3.5.0.patch create mode 100644 package/opensc/Config.in create mode 100644 package/opensc/opensc.hash create mode 100644 package/opensc/opensc.mk create mode 100644 package/openssh/Config.in create mode 100644 package/openssh/S50sshd create mode 100644 package/openssh/openssh.hash create mode 100644 package/openssh/openssh.mk create mode 100644 package/openssh/sshd-sysusers.conf create mode 100644 package/openssh/sshd.service create mode 100644 package/openssl/Config.in create mode 100644 package/openssl/openssl.mk create mode 100644 package/openswan/0001-lib-libopenswan-constants.c-workaround-missing-ns_t_.patch create mode 100644 package/openswan/Config.in create mode 100644 package/openswan/openswan.hash create mode 100644 package/openswan/openswan.mk create mode 100644 package/opentracing-cpp/Config.in create mode 100644 package/opentracing-cpp/opentracing-cpp.hash create mode 100644 package/opentracing-cpp/opentracing-cpp.mk create mode 100644 package/opentyrian-data/Config.in create mode 100644 package/opentyrian-data/opentyrian-data.hash create mode 100644 package/opentyrian-data/opentyrian-data.mk create mode 100644 package/opentyrian/0001-Move-definitions-that-don-t-need-to-be-exposed-from-opl-h-to-opl-c.patch create mode 100644 package/opentyrian/Config.in create mode 100644 package/opentyrian/opentyrian.hash create mode 100644 package/opentyrian/opentyrian.mk create mode 100644 package/openvmtools/0001-no_cflags_werror.patch create mode 100644 package/openvmtools/0002-dont-force-cppflags.patch create mode 100644 package/openvmtools/0003-Rename-poll-h-into-vm_poll-h-to-fix-build-failure-on-musl.patch create mode 100644 package/openvmtools/0004-Remove-assumptions-about-glibc-being-only-libc-imple.patch create mode 100644 package/openvmtools/0005-Use-configure-test-for-struct-timespec.patch create mode 100644 package/openvmtools/0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch create mode 100644 package/openvmtools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch create mode 100644 package/openvmtools/0008-Use-configure-test-for-sys-stat.h-include.patch create mode 100644 package/openvmtools/0011-open-vm-tools-vmhgfs-fuse-fsutils.h-fix-build-on-mus.patch create mode 100644 package/openvmtools/0012-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch create mode 100644 package/openvmtools/Config.in create mode 100644 package/openvmtools/S10vmtoolsd create mode 100644 package/openvmtools/openvmtools.hash create mode 100644 package/openvmtools/openvmtools.mk create mode 100644 package/openvmtools/shutdown create mode 100644 package/openvmtools/vmtoolsd.service create mode 100644 package/openvpn/Config.in create mode 100644 package/openvpn/S60openvpn create mode 100644 package/openvpn/openvpn.hash create mode 100644 package/openvpn/openvpn.mk create mode 100644 package/openzwave/Config.in create mode 100644 package/openzwave/openzwave.hash create mode 100644 package/openzwave/openzwave.mk create mode 100644 package/opkg-utils/Config.in create mode 100644 package/opkg-utils/Config.in.host create mode 100644 package/opkg-utils/opkg-utils.hash create mode 100644 package/opkg-utils/opkg-utils.mk create mode 100644 package/opkg/Config.in create mode 100644 package/opkg/opkg.hash create mode 100644 package/opkg/opkg.mk create mode 100644 package/oprofile/0001-musl.patch create mode 100644 package/oprofile/Config.in create mode 100644 package/oprofile/oprofile.hash create mode 100644 package/oprofile/oprofile.mk create mode 100644 package/optee-benchmark/Config.in create mode 100644 package/optee-benchmark/optee-benchmark.hash create mode 100644 package/optee-benchmark/optee-benchmark.mk create mode 100644 package/optee-client/Config.in create mode 100644 package/optee-client/S30optee create mode 100644 package/optee-client/optee-client.hash create mode 100644 package/optee-client/optee-client.mk create mode 100644 package/optee-examples/Config.in create mode 100644 package/optee-examples/optee-examples.hash create mode 100644 package/optee-examples/optee-examples.mk create mode 100644 package/optee-test/Config.in create mode 100644 package/optee-test/optee-test.hash create mode 100644 package/optee-test/optee-test.mk create mode 100644 package/opus-tools/Config.in create mode 100644 package/opus-tools/opus-tools.hash create mode 100644 package/opus-tools/opus-tools.mk create mode 100644 package/opus/Config.in create mode 100644 package/opus/opus.hash create mode 100644 package/opus/opus.mk create mode 100644 package/opusfile/Config.in create mode 100644 package/opusfile/opusfile.hash create mode 100644 package/opusfile/opusfile.mk create mode 100644 package/oracle-mysql/0000-ac_cache_check.patch create mode 100644 package/oracle-mysql/0001-configure-ps-cache-check.patch create mode 100644 package/oracle-mysql/0002-use-new-readline-iface.patch create mode 100644 package/oracle-mysql/0003-ac_stack_direction-is-unset.patch create mode 100644 package/oracle-mysql/0004-Fix-gen_lex_hash-execution.patch create mode 100644 package/oracle-mysql/0005-bison_3_breaks_mysql_server_build.patch create mode 100644 package/oracle-mysql/0006-no-force-static-build.patch create mode 100644 package/oracle-mysql/0007-dont-install-in-mysql-directory.patch create mode 100644 package/oracle-mysql/0008-fix-type-conversion.patch create mode 100644 package/oracle-mysql/0009-gcc7.patch create mode 100644 package/oracle-mysql/0010-fix-build-without-zlib.patch create mode 100644 package/oracle-mysql/0011-config-ac-macros-alloca.m4-Remove-obsolete-Cray-supp.patch create mode 100644 package/oracle-mysql/S97mysqld create mode 100644 package/oracle-mysql/mysqld.service create mode 100644 package/oracle-mysql/oracle-mysql.hash create mode 100644 package/oracle-mysql/oracle-mysql.mk create mode 100644 package/orbit/Config.in create mode 100644 package/orbit/orbit.hash create mode 100644 package/orbit/orbit.mk create mode 100644 package/orc/0001-orc-orccpu-powerpc.c-fix-build-with-kernel-4.11.patch create mode 100644 package/orc/Config.in create mode 100644 package/orc/orc.hash create mode 100644 package/orc/orc.mk create mode 100644 package/ortp/Config.in create mode 100644 package/ortp/ortp.hash create mode 100644 package/ortp/ortp.mk create mode 100644 package/osm2pgsql/Config.in create mode 100644 package/osm2pgsql/osm2pgsql.hash create mode 100644 package/osm2pgsql/osm2pgsql.mk create mode 100644 package/owfs/Config.in create mode 100644 package/owfs/S55owserver create mode 100644 package/owfs/S60owfs create mode 100644 package/owfs/owfs.hash create mode 100644 package/owfs/owfs.mk create mode 100644 package/owl-linux/0001-fix-for-linux-3.3.x.patch create mode 100644 package/owl-linux/Config.in create mode 100644 package/owl-linux/owl-linux.hash create mode 100644 package/owl-linux/owl-linux.mk create mode 100644 package/p11-kit/Config.in create mode 100644 package/p11-kit/p11-kit.hash create mode 100644 package/p11-kit/p11-kit.mk create mode 100644 package/p7zip/Config.in create mode 100644 package/p7zip/p7zip.hash create mode 100644 package/p7zip/p7zip.mk create mode 100644 package/p910nd/Config.in create mode 100644 package/p910nd/p910nd.hash create mode 100644 package/p910nd/p910nd.mk create mode 100644 package/paho-mqtt-c/Config.in create mode 100644 package/paho-mqtt-c/paho-mqtt-c.hash create mode 100644 package/paho-mqtt-c/paho-mqtt-c.mk create mode 100644 package/paho-mqtt-cpp/Config.in create mode 100644 package/paho-mqtt-cpp/paho-mqtt-cpp.hash create mode 100644 package/paho-mqtt-cpp/paho-mqtt-cpp.mk create mode 100644 package/pahole/Config.in.host create mode 100644 package/pahole/pahole.hash create mode 100644 package/pahole/pahole.mk create mode 100644 package/pamtester/Config.in create mode 100644 package/pamtester/pamtester.hash create mode 100644 package/pamtester/pamtester.mk create mode 100644 package/pango/Config.in create mode 100644 package/pango/pango.hash create mode 100644 package/pango/pango.mk create mode 100644 package/pangomm/Config.in create mode 100644 package/pangomm/pangomm.hash create mode 100644 package/pangomm/pangomm.mk create mode 100644 package/parprouted/Config.in create mode 100644 package/parprouted/parprouted.hash create mode 100644 package/parprouted/parprouted.mk create mode 100644 package/parted/Config.in create mode 100644 package/parted/Config.in.host create mode 100644 package/parted/parted.hash create mode 100644 package/parted/parted.mk create mode 100644 package/patch/0001-Fix-segfault-with-mangled-rename-patch.patch create mode 100644 package/patch/0002-Allow-input-files-to-be-missing-for-ed-style-patches.patch create mode 100644 package/patch/0003-Fix-arbitrary-command-execution-in-ed-style-patches-.patch create mode 100644 package/patch/0004-Invoke-ed-directly-instead-of-using-the-shell.patch create mode 100644 package/patch/0005-Don-t-follow-symlinks-unless--follow-symlinks-is-given.patch create mode 100644 package/patch/Config.in create mode 100644 package/patch/patch.hash create mode 100644 package/patch/patch.mk create mode 100644 package/patchelf/0001-Add-option-to-make-the-rpath-relative-under-a-specif.patch create mode 100644 package/patchelf/Config.in.host create mode 100644 package/patchelf/patchelf.hash create mode 100644 package/patchelf/patchelf.mk create mode 100644 package/pax-utils/Config.in create mode 100644 package/pax-utils/pax-utils.hash create mode 100644 package/pax-utils/pax-utils.mk create mode 100644 package/paxtest/0001-genpaxtest-move-log-location.patch create mode 100644 package/paxtest/0002-paxtest-page-alignment-ARM-and-NIOS2-arch.patch create mode 100644 package/paxtest/Config.in create mode 100644 package/paxtest/paxtest.hash create mode 100644 package/paxtest/paxtest.mk create mode 100644 package/pciutils/0001-Workaround-build-failure-with-older-binutils.patch create mode 100644 package/pciutils/Config.in create mode 100644 package/pciutils/pciutils.hash create mode 100644 package/pciutils/pciutils.mk create mode 100644 package/pcm-tools/0001-pmu-query.py-fix-python3-errors-add-linux-platform-s.patch create mode 100644 package/pcm-tools/Config.in create mode 100644 package/pcm-tools/pcm-tools.hash create mode 100644 package/pcm-tools/pcm-tools.mk create mode 100644 package/pcmanfm/0001-po-de-po-fix-build-with-gettext-tiny.patch create mode 100644 package/pcmanfm/Config.in create mode 100644 package/pcmanfm/pcmanfm.hash create mode 100644 package/pcmanfm/pcmanfm.mk create mode 100644 package/pcre/0001-Kill-compatibility-bits.patch create mode 100644 package/pcre/0002-Disable-C-unit-tests.patch create mode 100644 package/pcre/Config.in create mode 100644 package/pcre/pcre.hash create mode 100644 package/pcre/pcre.mk create mode 100644 package/pcre2/Config.in create mode 100644 package/pcre2/pcre2.hash create mode 100644 package/pcre2/pcre2.mk create mode 100644 package/pcsc-lite/Config.in create mode 100644 package/pcsc-lite/pcsc-lite.hash create mode 100644 package/pcsc-lite/pcsc-lite.mk create mode 100644 package/pdbg/Config.in create mode 100644 package/pdbg/pdbg.hash create mode 100644 package/pdbg/pdbg.mk create mode 100644 package/pdmenu/0001-autoconf-makeinfo.in-link-with-INTLLIBS-if-needed.patch create mode 100644 package/pdmenu/0002-Makefile-autoconf-makeinfo.in-support-build-install-.patch create mode 100644 package/pdmenu/Config.in create mode 100644 package/pdmenu/pdmenu.hash create mode 100644 package/pdmenu/pdmenu.mk create mode 100644 package/perl-apache-logformat-compiler/Config.in create mode 100644 package/perl-apache-logformat-compiler/perl-apache-logformat-compiler.hash create mode 100644 package/perl-apache-logformat-compiler/perl-apache-logformat-compiler.mk create mode 100644 package/perl-appconfig/Config.in create mode 100644 package/perl-appconfig/perl-appconfig.hash create mode 100644 package/perl-appconfig/perl-appconfig.mk create mode 100644 package/perl-astro-suntime/Config.in create mode 100644 package/perl-astro-suntime/perl-astro-suntime.hash create mode 100644 package/perl-astro-suntime/perl-astro-suntime.mk create mode 100644 package/perl-class-inspector/Config.in create mode 100644 package/perl-class-inspector/perl-class-inspector.hash create mode 100644 package/perl-class-inspector/perl-class-inspector.mk create mode 100644 package/perl-class-load/Config.in create mode 100644 package/perl-class-load/perl-class-load.hash create mode 100644 package/perl-class-load/perl-class-load.mk create mode 100644 package/perl-class-method-modifiers/Config.in create mode 100644 package/perl-class-method-modifiers/perl-class-method-modifiers.hash create mode 100644 package/perl-class-method-modifiers/perl-class-method-modifiers.mk create mode 100644 package/perl-class-std-fast/Config.in create mode 100644 package/perl-class-std-fast/perl-class-std-fast.hash create mode 100644 package/perl-class-std-fast/perl-class-std-fast.mk create mode 100644 package/perl-class-std/Config.in create mode 100644 package/perl-class-std/perl-class-std.hash create mode 100644 package/perl-class-std/perl-class-std.mk create mode 100644 package/perl-convert-asn1/Config.in create mode 100644 package/perl-convert-asn1/perl-convert-asn1.hash create mode 100644 package/perl-convert-asn1/perl-convert-asn1.mk create mode 100644 package/perl-cookie-baker/Config.in create mode 100644 package/perl-cookie-baker/perl-cookie-baker.hash create mode 100644 package/perl-cookie-baker/perl-cookie-baker.mk create mode 100644 package/perl-crypt-blowfish/Config.in create mode 100644 package/perl-crypt-blowfish/perl-crypt-blowfish.hash create mode 100644 package/perl-crypt-blowfish/perl-crypt-blowfish.mk create mode 100644 package/perl-crypt-cbc/Config.in create mode 100644 package/perl-crypt-cbc/perl-crypt-cbc.hash create mode 100644 package/perl-crypt-cbc/perl-crypt-cbc.mk create mode 100644 package/perl-crypt-openssl-aes/Config.in create mode 100644 package/perl-crypt-openssl-aes/perl-crypt-openssl-aes.hash create mode 100644 package/perl-crypt-openssl-aes/perl-crypt-openssl-aes.mk create mode 100644 package/perl-crypt-openssl-guess/perl-crypt-openssl-guess.hash create mode 100644 package/perl-crypt-openssl-guess/perl-crypt-openssl-guess.mk create mode 100644 package/perl-crypt-openssl-random/Config.in create mode 100644 package/perl-crypt-openssl-random/perl-crypt-openssl-random.hash create mode 100644 package/perl-crypt-openssl-random/perl-crypt-openssl-random.mk create mode 100644 package/perl-crypt-openssl-rsa/Config.in create mode 100644 package/perl-crypt-openssl-rsa/perl-crypt-openssl-rsa.hash create mode 100644 package/perl-crypt-openssl-rsa/perl-crypt-openssl-rsa.mk create mode 100644 package/perl-data-dump/Config.in create mode 100644 package/perl-data-dump/perl-data-dump.hash create mode 100644 package/perl-data-dump/perl-data-dump.mk create mode 100644 package/perl-data-optlist/Config.in create mode 100644 package/perl-data-optlist/perl-data-optlist.hash create mode 100644 package/perl-data-optlist/perl-data-optlist.mk create mode 100644 package/perl-data-uuid/Config.in create mode 100644 package/perl-data-uuid/perl-data-uuid.hash create mode 100644 package/perl-data-uuid/perl-data-uuid.mk create mode 100644 package/perl-date-manip/Config.in create mode 100644 package/perl-date-manip/perl-date-manip.hash create mode 100644 package/perl-date-manip/perl-date-manip.mk create mode 100644 package/perl-datetime-tiny/Config.in create mode 100644 package/perl-datetime-tiny/perl-datetime-tiny.hash create mode 100644 package/perl-datetime-tiny/perl-datetime-tiny.mk create mode 100644 package/perl-dbd-mysql/Config.in create mode 100644 package/perl-dbd-mysql/perl-dbd-mysql.hash create mode 100644 package/perl-dbd-mysql/perl-dbd-mysql.mk create mode 100644 package/perl-dbi/Config.in create mode 100644 package/perl-dbi/perl-dbi.hash create mode 100644 package/perl-dbi/perl-dbi.mk create mode 100644 package/perl-devel-cycle/Config.in create mode 100644 package/perl-devel-cycle/perl-devel-cycle.hash create mode 100644 package/perl-devel-cycle/perl-devel-cycle.mk create mode 100644 package/perl-devel-globaldestruction/Config.in create mode 100644 package/perl-devel-globaldestruction/perl-devel-globaldestruction.hash create mode 100644 package/perl-devel-globaldestruction/perl-devel-globaldestruction.mk create mode 100644 package/perl-devel-size/Config.in create mode 100644 package/perl-devel-size/perl-devel-size.hash create mode 100644 package/perl-devel-size/perl-devel-size.mk create mode 100644 package/perl-devel-stacktrace-ashtml/Config.in create mode 100644 package/perl-devel-stacktrace-ashtml/perl-devel-stacktrace-ashtml.hash create mode 100644 package/perl-devel-stacktrace-ashtml/perl-devel-stacktrace-ashtml.mk create mode 100644 package/perl-devel-stacktrace/Config.in create mode 100644 package/perl-devel-stacktrace/perl-devel-stacktrace.hash create mode 100644 package/perl-devel-stacktrace/perl-devel-stacktrace.mk create mode 100644 package/perl-device-serialport/Config.in create mode 100644 package/perl-device-serialport/perl-device-serialport.hash create mode 100644 package/perl-device-serialport/perl-device-serialport.mk create mode 100644 package/perl-digest-hmac/Config.in create mode 100644 package/perl-digest-hmac/perl-digest-hmac.hash create mode 100644 package/perl-digest-hmac/perl-digest-hmac.mk create mode 100644 package/perl-digest-sha1/Config.in create mode 100644 package/perl-digest-sha1/perl-digest-sha1.hash create mode 100644 package/perl-digest-sha1/perl-digest-sha1.mk create mode 100644 package/perl-dist-checkconflicts/Config.in create mode 100644 package/perl-dist-checkconflicts/perl-dist-checkconflicts.hash create mode 100644 package/perl-dist-checkconflicts/perl-dist-checkconflicts.mk create mode 100644 package/perl-encode-detect/Config.in create mode 100644 package/perl-encode-detect/perl-encode-detect.hash create mode 100644 package/perl-encode-detect/perl-encode-detect.mk create mode 100644 package/perl-encode-locale/Config.in create mode 100644 package/perl-encode-locale/perl-encode-locale.hash create mode 100644 package/perl-encode-locale/perl-encode-locale.mk create mode 100644 package/perl-exporter-tiny/Config.in create mode 100644 package/perl-exporter-tiny/perl-exporter-tiny.hash create mode 100644 package/perl-exporter-tiny/perl-exporter-tiny.mk create mode 100644 package/perl-extutils-config/perl-extutils-config.hash create mode 100644 package/perl-extutils-config/perl-extutils-config.mk create mode 100644 package/perl-extutils-helpers/perl-extutils-helpers.hash create mode 100644 package/perl-extutils-helpers/perl-extutils-helpers.mk create mode 100644 package/perl-extutils-installpaths/perl-extutils-installpaths.hash create mode 100644 package/perl-extutils-installpaths/perl-extutils-installpaths.mk create mode 100644 package/perl-extutils-pkgconfig/perl-extutils-pkgconfig.hash create mode 100644 package/perl-extutils-pkgconfig/perl-extutils-pkgconfig.mk create mode 100644 package/perl-file-listing/Config.in create mode 100644 package/perl-file-listing/perl-file-listing.hash create mode 100644 package/perl-file-listing/perl-file-listing.mk create mode 100644 package/perl-file-sharedir-install/perl-file-sharedir-install.hash create mode 100644 package/perl-file-sharedir-install/perl-file-sharedir-install.mk create mode 100644 package/perl-file-sharedir/Config.in create mode 100644 package/perl-file-sharedir/perl-file-sharedir.hash create mode 100644 package/perl-file-sharedir/perl-file-sharedir.mk create mode 100644 package/perl-file-slurp/Config.in create mode 100644 package/perl-file-slurp/perl-file-slurp.hash create mode 100644 package/perl-file-slurp/perl-file-slurp.mk create mode 100644 package/perl-file-util/Config.in create mode 100644 package/perl-file-util/perl-file-util.hash create mode 100644 package/perl-file-util/perl-file-util.mk create mode 100644 package/perl-filesys-notify-simple/Config.in create mode 100644 package/perl-filesys-notify-simple/perl-filesys-notify-simple.hash create mode 100644 package/perl-filesys-notify-simple/perl-filesys-notify-simple.mk create mode 100644 package/perl-gd/Config.in create mode 100644 package/perl-gd/perl-gd.hash create mode 100644 package/perl-gd/perl-gd.mk create mode 100644 package/perl-gdgraph/Config.in create mode 100644 package/perl-gdgraph/perl-gdgraph.hash create mode 100644 package/perl-gdgraph/perl-gdgraph.mk create mode 100644 package/perl-gdtextutil/Config.in create mode 100644 package/perl-gdtextutil/perl-gdtextutil.hash create mode 100644 package/perl-gdtextutil/perl-gdtextutil.mk create mode 100644 package/perl-hash-multivalue/Config.in create mode 100644 package/perl-hash-multivalue/perl-hash-multivalue.hash create mode 100644 package/perl-hash-multivalue/perl-hash-multivalue.mk create mode 100644 package/perl-html-parser/Config.in create mode 100644 package/perl-html-parser/perl-html-parser.hash create mode 100644 package/perl-html-parser/perl-html-parser.mk create mode 100644 package/perl-html-tagset/Config.in create mode 100644 package/perl-html-tagset/perl-html-tagset.hash create mode 100644 package/perl-html-tagset/perl-html-tagset.mk create mode 100644 package/perl-http-cookies/Config.in create mode 100644 package/perl-http-cookies/perl-http-cookies.hash create mode 100644 package/perl-http-cookies/perl-http-cookies.mk create mode 100644 package/perl-http-daemon/Config.in create mode 100644 package/perl-http-daemon/perl-http-daemon.hash create mode 100644 package/perl-http-daemon/perl-http-daemon.mk create mode 100644 package/perl-http-date/Config.in create mode 100644 package/perl-http-date/perl-http-date.hash create mode 100644 package/perl-http-date/perl-http-date.mk create mode 100644 package/perl-http-entity-parser/Config.in create mode 100644 package/perl-http-entity-parser/perl-http-entity-parser.hash create mode 100644 package/perl-http-entity-parser/perl-http-entity-parser.mk create mode 100644 package/perl-http-headers-fast/Config.in create mode 100644 package/perl-http-headers-fast/perl-http-headers-fast.hash create mode 100644 package/perl-http-headers-fast/perl-http-headers-fast.mk create mode 100644 package/perl-http-message/Config.in create mode 100644 package/perl-http-message/perl-http-message.hash create mode 100644 package/perl-http-message/perl-http-message.mk create mode 100644 package/perl-http-multipartparser/Config.in create mode 100644 package/perl-http-multipartparser/perl-http-multipartparser.hash create mode 100644 package/perl-http-multipartparser/perl-http-multipartparser.mk create mode 100644 package/perl-http-negotiate/Config.in create mode 100644 package/perl-http-negotiate/perl-http-negotiate.hash create mode 100644 package/perl-http-negotiate/perl-http-negotiate.mk create mode 100644 package/perl-i18n/Config.in create mode 100644 package/perl-i18n/perl-i18n.hash create mode 100644 package/perl-i18n/perl-i18n.mk create mode 100644 package/perl-io-html/Config.in create mode 100644 package/perl-io-html/perl-io-html.hash create mode 100644 package/perl-io-html/perl-io-html.mk create mode 100644 package/perl-io-interface/Config.in create mode 100644 package/perl-io-interface/perl-io-interface.hash create mode 100644 package/perl-io-interface/perl-io-interface.mk create mode 100644 package/perl-io-socket-multicast/Config.in create mode 100644 package/perl-io-socket-multicast/perl-io-socket-multicast.hash create mode 100644 package/perl-io-socket-multicast/perl-io-socket-multicast.mk create mode 100644 package/perl-io-socket-ssl/Config.in create mode 100644 package/perl-io-socket-ssl/perl-io-socket-ssl.hash create mode 100644 package/perl-io-socket-ssl/perl-io-socket-ssl.mk create mode 100644 package/perl-json-maybexs/Config.in create mode 100644 package/perl-json-maybexs/perl-json-maybexs.hash create mode 100644 package/perl-json-maybexs/perl-json-maybexs.mk create mode 100644 package/perl-json-tiny/Config.in create mode 100644 package/perl-json-tiny/perl-json-tiny.hash create mode 100644 package/perl-json-tiny/perl-json-tiny.mk create mode 100644 package/perl-libwww-perl/Config.in create mode 100644 package/perl-libwww-perl/perl-libwww-perl.hash create mode 100644 package/perl-libwww-perl/perl-libwww-perl.mk create mode 100644 package/perl-locale-maketext-lexicon/Config.in create mode 100644 package/perl-locale-maketext-lexicon/perl-locale-maketext-lexicon.hash create mode 100644 package/perl-locale-maketext-lexicon/perl-locale-maketext-lexicon.mk create mode 100644 package/perl-lwp-mediatypes/Config.in create mode 100644 package/perl-lwp-mediatypes/perl-lwp-mediatypes.hash create mode 100644 package/perl-lwp-mediatypes/perl-lwp-mediatypes.mk create mode 100644 package/perl-lwp-protocol-https/Config.in create mode 100644 package/perl-lwp-protocol-https/perl-lwp-protocol-https.hash create mode 100644 package/perl-lwp-protocol-https/perl-lwp-protocol-https.mk create mode 100644 package/perl-mail-dkim/Config.in create mode 100644 package/perl-mail-dkim/perl-mail-dkim.hash create mode 100644 package/perl-mail-dkim/perl-mail-dkim.mk create mode 100644 package/perl-mailtools/Config.in create mode 100644 package/perl-mailtools/perl-mailtools.hash create mode 100644 package/perl-mailtools/perl-mailtools.mk create mode 100644 package/perl-math-int64/Config.in create mode 100644 package/perl-math-int64/perl-math-int64.hash create mode 100644 package/perl-math-int64/perl-math-int64.mk create mode 100644 package/perl-math-prime-util/Config.in create mode 100644 package/perl-math-prime-util/perl-math-prime-util.hash create mode 100644 package/perl-math-prime-util/perl-math-prime-util.mk create mode 100644 package/perl-mime-base64-urlsafe/Config.in create mode 100644 package/perl-mime-base64-urlsafe/perl-mime-base64-urlsafe.hash create mode 100644 package/perl-mime-base64-urlsafe/perl-mime-base64-urlsafe.mk create mode 100644 package/perl-mime-tools/Config.in create mode 100644 package/perl-mime-tools/perl-mime-tools.hash create mode 100644 package/perl-mime-tools/perl-mime-tools.mk create mode 100644 package/perl-module-build-tiny/perl-module-build-tiny.hash create mode 100644 package/perl-module-build-tiny/perl-module-build-tiny.mk create mode 100644 package/perl-module-build/perl-module-build.hash create mode 100644 package/perl-module-build/perl-module-build.mk create mode 100644 package/perl-module-implementation/Config.in create mode 100644 package/perl-module-implementation/perl-module-implementation.hash create mode 100644 package/perl-module-implementation/perl-module-implementation.mk create mode 100644 package/perl-module-runtime/Config.in create mode 100644 package/perl-module-runtime/perl-module-runtime.hash create mode 100644 package/perl-module-runtime/perl-module-runtime.mk create mode 100644 package/perl-mojolicious-plugin-authentication/Config.in create mode 100644 package/perl-mojolicious-plugin-authentication/perl-mojolicious-plugin-authentication.hash create mode 100644 package/perl-mojolicious-plugin-authentication/perl-mojolicious-plugin-authentication.mk create mode 100644 package/perl-mojolicious-plugin-authorization/Config.in create mode 100644 package/perl-mojolicious-plugin-authorization/perl-mojolicious-plugin-authorization.hash create mode 100644 package/perl-mojolicious-plugin-authorization/perl-mojolicious-plugin-authorization.mk create mode 100644 package/perl-mojolicious-plugin-cspheader/Config.in create mode 100644 package/perl-mojolicious-plugin-cspheader/perl-mojolicious-plugin-cspheader.hash create mode 100644 package/perl-mojolicious-plugin-cspheader/perl-mojolicious-plugin-cspheader.mk create mode 100644 package/perl-mojolicious-plugin-i18n/Config.in create mode 100644 package/perl-mojolicious-plugin-i18n/perl-mojolicious-plugin-i18n.hash create mode 100644 package/perl-mojolicious-plugin-i18n/perl-mojolicious-plugin-i18n.mk create mode 100644 package/perl-mojolicious-plugin-securityheader/Config.in create mode 100644 package/perl-mojolicious-plugin-securityheader/perl-mojolicious-plugin-securityheader.hash create mode 100644 package/perl-mojolicious-plugin-securityheader/perl-mojolicious-plugin-securityheader.mk create mode 100644 package/perl-mojolicious/Config.in create mode 100644 package/perl-mojolicious/perl-mojolicious.hash create mode 100644 package/perl-mojolicious/perl-mojolicious.mk create mode 100644 package/perl-moo/Config.in create mode 100644 package/perl-moo/perl-moo.hash create mode 100644 package/perl-moo/perl-moo.mk create mode 100644 package/perl-mozilla-ca/Config.in create mode 100644 package/perl-mozilla-ca/perl-mozilla-ca.hash create mode 100644 package/perl-mozilla-ca/perl-mozilla-ca.mk create mode 100644 package/perl-net-dns/Config.in create mode 100644 package/perl-net-dns/perl-net-dns.hash create mode 100644 package/perl-net-dns/perl-net-dns.mk create mode 100644 package/perl-net-http/Config.in create mode 100644 package/perl-net-http/perl-net-http.hash create mode 100644 package/perl-net-http/perl-net-http.mk create mode 100644 package/perl-net-snmp/Config.in create mode 100644 package/perl-net-snmp/perl-net-snmp.hash create mode 100644 package/perl-net-snmp/perl-net-snmp.mk create mode 100644 package/perl-net-ssh2/Config.in create mode 100644 package/perl-net-ssh2/perl-net-ssh2.hash create mode 100644 package/perl-net-ssh2/perl-net-ssh2.mk create mode 100644 package/perl-net-ssleay/0001-fix-build-system.patch create mode 100644 package/perl-net-ssleay/Config.in create mode 100644 package/perl-net-ssleay/perl-net-ssleay.hash create mode 100644 package/perl-net-ssleay/perl-net-ssleay.mk create mode 100644 package/perl-net-telnet/Config.in create mode 100644 package/perl-net-telnet/perl-net-telnet.hash create mode 100644 package/perl-net-telnet/perl-net-telnet.mk create mode 100644 package/perl-netaddr-ip/Config.in create mode 100644 package/perl-netaddr-ip/perl-netaddr-ip.hash create mode 100644 package/perl-netaddr-ip/perl-netaddr-ip.mk create mode 100644 package/perl-number-bytes-human/Config.in create mode 100644 package/perl-number-bytes-human/perl-number-bytes-human.hash create mode 100644 package/perl-number-bytes-human/perl-number-bytes-human.mk create mode 100644 package/perl-package-stash/Config.in create mode 100644 package/perl-package-stash/perl-package-stash.hash create mode 100644 package/perl-package-stash/perl-package-stash.mk create mode 100644 package/perl-params-util/Config.in create mode 100644 package/perl-params-util/perl-params-util.hash create mode 100644 package/perl-params-util/perl-params-util.mk create mode 100644 package/perl-parse-yapp/Config.in create mode 100644 package/perl-parse-yapp/perl-parse-yapp.hash create mode 100644 package/perl-parse-yapp/perl-parse-yapp.mk create mode 100644 package/perl-path-class/perl-path-class.hash create mode 100644 package/perl-path-class/perl-path-class.mk create mode 100644 package/perl-path-tiny/Config.in create mode 100644 package/perl-path-tiny/perl-path-tiny.hash create mode 100644 package/perl-path-tiny/perl-path-tiny.mk create mode 100644 package/perl-plack/Config.in create mode 100644 package/perl-plack/perl-plack.hash create mode 100644 package/perl-plack/perl-plack.mk create mode 100644 package/perl-posix-strftime-compiler/Config.in create mode 100644 package/perl-posix-strftime-compiler/perl-posix-strftime-compiler.hash create mode 100644 package/perl-posix-strftime-compiler/perl-posix-strftime-compiler.mk create mode 100644 package/perl-role-tiny/Config.in create mode 100644 package/perl-role-tiny/perl-role-tiny.hash create mode 100644 package/perl-role-tiny/perl-role-tiny.mk create mode 100644 package/perl-stream-buffered/Config.in create mode 100644 package/perl-stream-buffered/perl-stream-buffered.hash create mode 100644 package/perl-stream-buffered/perl-stream-buffered.mk create mode 100644 package/perl-sub-exporter-progressive/Config.in create mode 100644 package/perl-sub-exporter-progressive/perl-sub-exporter-progressive.hash create mode 100644 package/perl-sub-exporter-progressive/perl-sub-exporter-progressive.mk create mode 100644 package/perl-sub-install/Config.in create mode 100644 package/perl-sub-install/perl-sub-install.hash create mode 100644 package/perl-sub-install/perl-sub-install.mk create mode 100644 package/perl-sub-quote/Config.in create mode 100644 package/perl-sub-quote/perl-sub-quote.hash create mode 100644 package/perl-sub-quote/perl-sub-quote.mk create mode 100644 package/perl-sys-cpu/0001-remove-extraneous-include.patch create mode 100644 package/perl-sys-cpu/Config.in create mode 100644 package/perl-sys-cpu/perl-sys-cpu.hash create mode 100644 package/perl-sys-cpu/perl-sys-cpu.mk create mode 100644 package/perl-sys-meminfo/Config.in create mode 100644 package/perl-sys-meminfo/perl-sys-meminfo.hash create mode 100644 package/perl-sys-meminfo/perl-sys-meminfo.mk create mode 100644 package/perl-sys-mmap/Config.in create mode 100644 package/perl-sys-mmap/perl-sys-mmap.hash create mode 100644 package/perl-sys-mmap/perl-sys-mmap.mk create mode 100644 package/perl-time-parsedate/Config.in create mode 100644 package/perl-time-parsedate/perl-time-parsedate.hash create mode 100644 package/perl-time-parsedate/perl-time-parsedate.mk create mode 100644 package/perl-timedate/Config.in create mode 100644 package/perl-timedate/perl-timedate.hash create mode 100644 package/perl-timedate/perl-timedate.mk create mode 100644 package/perl-try-tiny/Config.in create mode 100644 package/perl-try-tiny/perl-try-tiny.hash create mode 100644 package/perl-try-tiny/perl-try-tiny.mk create mode 100644 package/perl-type-tiny/Config.in create mode 100644 package/perl-type-tiny/perl-type-tiny.hash create mode 100644 package/perl-type-tiny/perl-type-tiny.mk create mode 100644 package/perl-uri/Config.in create mode 100644 package/perl-uri/perl-uri.hash create mode 100644 package/perl-uri/perl-uri.mk create mode 100644 package/perl-www-form-urlencoded/Config.in create mode 100644 package/perl-www-form-urlencoded/perl-www-form-urlencoded.hash create mode 100644 package/perl-www-form-urlencoded/perl-www-form-urlencoded.mk create mode 100644 package/perl-www-robotrules/Config.in create mode 100644 package/perl-www-robotrules/perl-www-robotrules.hash create mode 100644 package/perl-www-robotrules/perl-www-robotrules.mk create mode 100644 package/perl-x10/Config.in create mode 100644 package/perl-x10/perl-x10.hash create mode 100644 package/perl-x10/perl-x10.mk create mode 100644 package/perl-xml-libxml/0001-Makefile-PL.patch create mode 100644 package/perl-xml-libxml/Config.in create mode 100644 package/perl-xml-libxml/perl-xml-libxml.hash create mode 100644 package/perl-xml-libxml/perl-xml-libxml.mk create mode 100644 package/perl-xml-namespacesupport/Config.in create mode 100644 package/perl-xml-namespacesupport/perl-xml-namespacesupport.hash create mode 100644 package/perl-xml-namespacesupport/perl-xml-namespacesupport.mk create mode 100644 package/perl-xml-sax-base/Config.in create mode 100644 package/perl-xml-sax-base/perl-xml-sax-base.hash create mode 100644 package/perl-xml-sax-base/perl-xml-sax-base.mk create mode 100644 package/perl-xml-sax/Config.in create mode 100644 package/perl-xml-sax/perl-xml-sax.hash create mode 100644 package/perl-xml-sax/perl-xml-sax.mk create mode 100644 package/perl/Config.in create mode 100644 package/perl/perl.hash create mode 100644 package/perl/perl.mk create mode 100644 package/phidgetwebservice/Config.in create mode 100644 package/phidgetwebservice/phidgetwebservice.hash create mode 100644 package/phidgetwebservice/phidgetwebservice.mk create mode 100644 package/php-amqp/0001-add-build-support-for-php-8.patch create mode 100644 package/php-amqp/0002-more-work-for-php-8.patch create mode 100644 package/php-amqp/Config.in create mode 100644 package/php-amqp/php-amqp.hash create mode 100644 package/php-amqp/php-amqp.mk create mode 100644 package/php-apcu/Config.in create mode 100644 package/php-apcu/php-apcu.hash create mode 100644 package/php-apcu/php-apcu.mk create mode 100644 package/php-geoip/0001-add-build-support-for-php8.patch create mode 100644 package/php-geoip/Config.in create mode 100644 package/php-geoip/php-geoip.hash create mode 100644 package/php-geoip/php-geoip.mk create mode 100644 package/php-gnupg/0001-Remove-inlining-_phpc_res_close.patch create mode 100644 package/php-gnupg/Config.in create mode 100644 package/php-gnupg/php-gnupg.hash create mode 100644 package/php-gnupg/php-gnupg.mk create mode 100644 package/php-imagick/Config.in create mode 100644 package/php-imagick/php-imagick.hash create mode 100644 package/php-imagick/php-imagick.mk create mode 100644 package/php-lua/0001-ZEND_ACC_ALLOW_STATIC-ZEND_ACC_STATIC-for-static-met.patch create mode 100644 package/php-lua/0002-php8-explicitly-declare-arginfo.patch create mode 100644 package/php-lua/Config.in create mode 100644 package/php-lua/php-lua.hash create mode 100644 package/php-lua/php-lua.mk create mode 100644 package/php-memcached/Config.in create mode 100644 package/php-memcached/php-memcached.hash create mode 100644 package/php-memcached/php-memcached.mk create mode 100644 package/php-pam/Config.in create mode 100644 package/php-pam/php-pam.hash create mode 100644 package/php-pam/php-pam.mk create mode 100644 package/php-pecl-dbus/0001-php8-compat.patch create mode 100644 package/php-pecl-dbus/0002-Fix-compatibility-with-php8-call_user_function_ex.patch create mode 100644 package/php-pecl-dbus/Config.in create mode 100644 package/php-pecl-dbus/php-pecl-dbus.hash create mode 100644 package/php-pecl-dbus/php-pecl-dbus.mk create mode 100644 package/php-ssh2/Config.in create mode 100644 package/php-ssh2/php-ssh2.hash create mode 100644 package/php-ssh2/php-ssh2.mk create mode 100644 package/php-xdebug/Config.in create mode 100644 package/php-xdebug/php-xdebug.hash create mode 100644 package/php-xdebug/php-xdebug.mk create mode 100644 package/php-yaml/Config.in create mode 100644 package/php-yaml/php-yaml.hash create mode 100644 package/php-yaml/php-yaml.mk create mode 100644 package/php-zmq/0001-updates-for-php7.4-and-php8.0.patch create mode 100644 package/php-zmq/0002-fix-for-php-7.3.patch create mode 100644 package/php-zmq/0003-fix-for-php-8.0.0beta2.patch create mode 100644 package/php-zmq/Config.in create mode 100644 package/php-zmq/php-zmq.hash create mode 100644 package/php-zmq/php-zmq.mk create mode 100644 package/php/0001-acinclude.m4-don-t-unset-variables.patch create mode 100644 package/php/0002-iconv-tweak-iconv-detection.patch create mode 100644 package/php/0003-configure-disable-the-phar-tool.patch create mode 100644 package/php/0004-Call-apxs-with-correct-prefix.patch create mode 100644 package/php/0005-allow-opcache-cross-compiling.patch create mode 100644 package/php/Config.ext create mode 100644 package/php/Config.in create mode 100644 package/php/php-fpm.conf create mode 100644 package/php/php.hash create mode 100644 package/php/php.mk create mode 100644 package/physfs/Config.in create mode 100644 package/physfs/physfs.hash create mode 100644 package/physfs/physfs.mk create mode 100644 package/phytool/Config.in create mode 100644 package/phytool/phytool.hash create mode 100644 package/phytool/phytool.mk create mode 100644 package/picocom/0001-Compile-with-libc-s-without-cispeed-cospeed.patch create mode 100644 package/picocom/Config.in create mode 100644 package/picocom/picocom.hash create mode 100644 package/picocom/picocom.mk create mode 100644 package/pifmrds/0001-Makefile-cross-compile-friendly.patch create mode 100644 package/pifmrds/0002-Makefile-use-LDFLAGS.patch create mode 100644 package/pifmrds/0003-Makefile-fix-static-link.patch create mode 100644 package/pifmrds/Config.in create mode 100644 package/pifmrds/pifmrds.hash create mode 100644 package/pifmrds/pifmrds.mk create mode 100644 package/piglit/Config.in create mode 100644 package/piglit/piglit.hash create mode 100644 package/piglit/piglit.mk create mode 100644 package/pigpio/Config.in create mode 100644 package/pigpio/S50pigpio create mode 100644 package/pigpio/pigpio.hash create mode 100644 package/pigpio/pigpio.mk create mode 100644 package/pigpio/pigpio.service create mode 100644 package/pigz/Config.in create mode 100644 package/pigz/Config.in.host create mode 100644 package/pigz/pigz.hash create mode 100644 package/pigz/pigz.mk create mode 100644 package/pimd/Config.in create mode 100644 package/pimd/pimd.hash create mode 100644 package/pimd/pimd.mk create mode 100644 package/pinentry/Config.in create mode 100644 package/pinentry/pinentry.hash create mode 100644 package/pinentry/pinentry.mk create mode 100644 package/pipewire-media-session/0001-meson-remove-session-managers-option-check.patch create mode 100644 package/pipewire-media-session/Config.in create mode 100644 package/pipewire-media-session/pipewire-media-session.hash create mode 100644 package/pipewire-media-session/pipewire-media-session.mk create mode 100644 package/pipewire/Config.in create mode 100644 package/pipewire/pipewire.hash create mode 100644 package/pipewire/pipewire.mk create mode 100644 package/pistache/0001-src-common-transport.cc-fallback-value-for-RUSAGE_TH.patch create mode 100644 package/pistache/Config.in create mode 100644 package/pistache/pistache.hash create mode 100644 package/pistache/pistache.mk create mode 100644 package/pixiewps/Config.in create mode 100644 package/pixiewps/pixiewps.hash create mode 100644 package/pixiewps/pixiewps.mk create mode 100644 package/pixman/0001-Disable-tests.patch create mode 100644 package/pixman/Config.in create mode 100644 package/pixman/pixman.hash create mode 100644 package/pixman/pixman.mk create mode 100644 package/pixz/Config.in create mode 100644 package/pixz/pixz.hash create mode 100644 package/pixz/pixz.mk create mode 100644 package/pkcs11-helper/0001-lib-pkcs11h-core.c-fix-build-without-slotevent.patch create mode 100644 package/pkcs11-helper/0002-openssl-libressl-3-5-0-does-not-have-DSA_meth_set1_name.patch create mode 100644 package/pkcs11-helper/Config.in create mode 100644 package/pkcs11-helper/pkcs11-helper.hash create mode 100644 package/pkcs11-helper/pkcs11-helper.mk create mode 100644 package/pkg-autotools.mk create mode 100644 package/pkg-cargo.mk create mode 100644 package/pkg-cmake.mk create mode 100644 package/pkg-download.mk create mode 100644 package/pkg-generic.mk create mode 100644 package/pkg-golang.mk create mode 100644 package/pkg-kconfig.mk create mode 100644 package/pkg-kernel-module.mk create mode 100644 package/pkg-luarocks.mk create mode 100644 package/pkg-meson.mk create mode 100644 package/pkg-perl.mk create mode 100644 package/pkg-python.mk create mode 100644 package/pkg-qmake.mk create mode 100644 package/pkg-rebar.mk create mode 100644 package/pkg-utils.mk create mode 100644 package/pkg-virtual.mk create mode 100644 package/pkg-waf.mk create mode 100644 package/pkgconf/0001-Only-prefix-with-the-sysroot-a-subset-of-variables.patch create mode 100644 package/pkgconf/0002-Revert-main-assume-modversion-insted-of-version-if-o.patch create mode 100644 package/pkgconf/Config.in create mode 100644 package/pkgconf/Config.in.host create mode 100644 package/pkgconf/pkg-config.in create mode 100644 package/pkgconf/pkgconf.hash create mode 100644 package/pkgconf/pkgconf.mk create mode 100644 package/ply/Config.in create mode 100644 package/ply/ply.hash create mode 100644 package/ply/ply.mk create mode 100644 package/pngquant/Config.in create mode 100644 package/pngquant/pngquant.hash create mode 100644 package/pngquant/pngquant.mk create mode 100644 package/poco/Config.in create mode 100644 package/poco/poco.hash create mode 100644 package/poco/poco.mk create mode 100644 package/poke/0001-configure.ac-HELP2MAN-replace-by-true-when-cross-com.patch create mode 100644 package/poke/0002-lib-getrandom.c-fix-build-with-uclibc-1.0.35.patch create mode 100644 package/poke/Config.in create mode 100644 package/poke/poke.hash create mode 100644 package/poke/poke.mk create mode 100644 package/policycoreutils/0001-Add-DESTDIR-to-all-paths-that-use-an-absolute-path.patch create mode 100644 package/policycoreutils/0002-Add-PREFIX-to-host-paths.patch create mode 100644 package/policycoreutils/Config.in create mode 100644 package/policycoreutils/policycoreutils.hash create mode 100644 package/policycoreutils/policycoreutils.mk create mode 100644 package/polkit/0001-make-netgroup-support-optional.patch create mode 100644 package/polkit/0002-Don-t-pass-positional-parameters-to-i18n.merge_file.patch create mode 100644 package/polkit/0003-fix-build-without-C.patch create mode 100644 package/polkit/Config.in create mode 100755 package/polkit/S50polkit create mode 100644 package/polkit/polkit.hash create mode 100644 package/polkit/polkit.mk create mode 100644 package/polkit/polkit.service create mode 100644 package/popperjs/Config.in create mode 100644 package/popperjs/popperjs.hash create mode 100644 package/popperjs/popperjs.mk create mode 100644 package/poppler/0001-Include-setjmp-h-when-WITH_JPEG-yes-and-WITH_PNG-no.patch create mode 100644 package/poppler/Config.in create mode 100644 package/poppler/poppler.hash create mode 100644 package/poppler/poppler.mk create mode 100644 package/popt/0001-add-libiconv-to-popt.pc.patch create mode 100644 package/popt/0002-Detect-glob_pattern_p.patch create mode 100644 package/popt/0003-configure-replace-deprecated-macros.patch create mode 100644 package/popt/0004-fix-build-without-wchar.patch create mode 100644 package/popt/0005-fix-build-without-mbstate_t.patch create mode 100644 package/popt/Config.in create mode 100644 package/popt/popt.hash create mode 100644 package/popt/popt.mk create mode 100644 package/portaudio/Config.in create mode 100644 package/portaudio/portaudio.hash create mode 100644 package/portaudio/portaudio.mk create mode 100644 package/postgis/0001-Disable-forced-static-linking-of-liblwgeom.patch create mode 100644 package/postgis/0002-raster-loader-Makefile.in-do-not-force-static-linkin.patch create mode 100644 package/postgis/Config.in create mode 100644 package/postgis/postgis.hash create mode 100644 package/postgis/postgis.mk create mode 100644 package/postgresql/Config.in create mode 100644 package/postgresql/S50postgresql create mode 100644 package/postgresql/pg_config create mode 100644 package/postgresql/postgresql.hash create mode 100644 package/postgresql/postgresql.mk create mode 100644 package/postgresql/postgresql.service create mode 100644 package/pound/0001-fix-openssl-1.0.2.patch create mode 100644 package/pound/0002-fix-openssl-1.1.0.patch create mode 100644 package/pound/0003-Support-for-libressl-coexisting-with-openssl-1.1.x.patch create mode 100644 package/pound/Config.in create mode 100644 package/pound/pound.hash create mode 100644 package/pound/pound.mk create mode 100644 package/powerpc-utils/Config.in create mode 100644 package/powerpc-utils/powerpc-utils.hash create mode 100644 package/powerpc-utils/powerpc-utils.mk create mode 100644 package/powertop/0001-dont-force-stack-smashing-protection.patch create mode 100644 package/powertop/Config.in create mode 100644 package/powertop/powertop.hash create mode 100644 package/powertop/powertop.mk create mode 100644 package/powervr/Config.in create mode 100644 package/powervr/powervr.mk create mode 100644 package/pppd/0001-pppd-Fix-compilation-with-older-glibc-or-kernel-headers.patch create mode 100644 package/pppd/0002-pppd-eap-tls.c-fix-build-with-libressl.patch create mode 100644 package/pppd/Config.in create mode 100644 package/pppd/pppd.hash create mode 100644 package/pppd/pppd.mk create mode 100644 package/pps-tools/Config.in create mode 100644 package/pps-tools/pps-tools.hash create mode 100644 package/pps-tools/pps-tools.mk create mode 100644 package/pptp-linux/0001-susv3-legacy.patch create mode 100644 package/pptp-linux/0002-fix-parallel-build.patch create mode 100644 package/pptp-linux/Config.in create mode 100644 package/pptp-linux/pptp-linux.hash create mode 100644 package/pptp-linux/pptp-linux.mk create mode 100644 package/prboom/0001-libpng-1.4.patch create mode 100644 package/prboom/0002-configure-remove-predefined-O2-optimization-flag.patch create mode 100644 package/prboom/Config.in create mode 100644 package/prboom/prboom.hash create mode 100644 package/prboom/prboom.mk create mode 100644 package/prelink-cross/0001-src-rtld-dl-tls.c-Fix-TLS-offsets-computation-for-s3.patch create mode 100644 package/prelink-cross/prelink-cross.hash create mode 100644 package/prelink-cross/prelink-cross.mk create mode 100644 package/privoxy/Config.in create mode 100644 package/privoxy/privoxy.hash create mode 100644 package/privoxy/privoxy.mk create mode 100644 package/procps-ng/0001-configure-Add--disable-w.patch create mode 100644 package/procps-ng/0002-escape-c-Fix-missing-nl_langinfo-on-certain-configs.patch create mode 100644 package/procps-ng/Config.in create mode 100644 package/procps-ng/S02sysctl create mode 100644 package/procps-ng/procps-ng.hash create mode 100644 package/procps-ng/procps-ng.mk create mode 100644 package/procrank_linux/Config.in create mode 100644 package/procrank_linux/procrank_linux.hash create mode 100644 package/procrank_linux/procrank_linux.mk create mode 100644 package/proftpd/0001-mod_quotatab-fix-build-failure-against-gcc-10.patch create mode 100644 package/proftpd/Config.in create mode 100644 package/proftpd/S50proftpd create mode 100644 package/proftpd/proftpd.hash create mode 100644 package/proftpd/proftpd.mk create mode 100644 package/proftpd/proftpd.service create mode 100644 package/proj/Config.in create mode 100644 package/proj/proj.hash create mode 100644 package/proj/proj.mk create mode 100644 package/prosody/0001-enable-syslog.patch create mode 100644 package/prosody/0002-add-pidfile.patch create mode 100644 package/prosody/Config.in create mode 100644 package/prosody/S50prosody create mode 100644 package/prosody/prosody.hash create mode 100644 package/prosody/prosody.mk create mode 100644 package/protobuf-c/Config.in create mode 100644 package/protobuf-c/protobuf-c.hash create mode 100644 package/protobuf-c/protobuf-c.mk create mode 100644 package/protobuf/Config.in create mode 100644 package/protobuf/protobuf.hash create mode 100644 package/protobuf/protobuf.mk create mode 100644 package/protozero/0001-CMakeLists.txt-protobuf-is-only-needed-for-tests.patch create mode 100644 package/protozero/Config.in create mode 100644 package/protozero/protozero.hash create mode 100644 package/protozero/protozero.mk create mode 100644 package/proxychains-ng/0001-add-configure-check-for-non-POSIX-compliant-getnameinfo-signature.patch create mode 100644 package/proxychains-ng/Config.in create mode 100644 package/proxychains-ng/proxychains-ng.hash create mode 100644 package/proxychains-ng/proxychains-ng.mk create mode 100644 package/pru-software-support/Config.in create mode 100644 package/pru-software-support/Config.in.host create mode 100644 package/pru-software-support/pru-software-support.hash create mode 100644 package/pru-software-support/pru-software-support.mk create mode 100644 package/pru-software-support/readme.txt create mode 100644 package/psmisc/Config.in create mode 100644 package/psmisc/psmisc.hash create mode 100644 package/psmisc/psmisc.mk create mode 100644 package/psplash/Config.in create mode 100644 package/psplash/psplash-start.service create mode 100644 package/psplash/psplash-systemd.service create mode 100644 package/psplash/psplash.hash create mode 100644 package/psplash/psplash.mk create mode 100644 package/ptm2human/Config.in create mode 100644 package/ptm2human/ptm2human.hash create mode 100644 package/ptm2human/ptm2human.mk create mode 100644 package/ptpd/Config.in create mode 100644 package/ptpd/S65ptpd create mode 100644 package/ptpd/ptpd.hash create mode 100644 package/ptpd/ptpd.mk create mode 100644 package/ptpd/ptpd.service create mode 100644 package/ptpd2/0001-musl.patch create mode 100644 package/ptpd2/0002-ntp_isc_md5-rename-EVP_MD_CTX-into-PTPD_EVP_MD_CTX.patch create mode 100644 package/ptpd2/0003-Solve-issue-25-Removing-type-U64-from-net-snmp-relat.patch create mode 100644 package/ptpd2/Config.in create mode 100644 package/ptpd2/S65ptpd2 create mode 100644 package/ptpd2/ptpd2.hash create mode 100644 package/ptpd2/ptpd2.mk create mode 100644 package/ptpd2/ptpd2.service create mode 100644 package/pugixml/Config.in create mode 100644 package/pugixml/pugixml.hash create mode 100644 package/pugixml/pugixml.mk create mode 100644 package/pulseaudio/0001-shm.c-use-_Static_assert-instead-of-static_assert-fo.patch create mode 100644 package/pulseaudio/0002-build-sys-Fix-atomic-support-detection.patch create mode 100644 package/pulseaudio/0003-build-sys-Add-missing-libatomic_ops-dependencies.patch create mode 100644 package/pulseaudio/0004-meson.build-fix-build-without-C.patch create mode 100644 package/pulseaudio/Config.in create mode 100644 package/pulseaudio/S50pulseaudio create mode 100644 package/pulseaudio/pulseaudio.hash create mode 100644 package/pulseaudio/pulseaudio.mk create mode 100644 package/pulseaudio/pulseaudio.service create mode 100644 package/pulseview/0001-Replace-obsolete-deprecated-Qt-methods.patch create mode 100644 package/pulseview/0002-Fix-broken-build-due-to-C-template-behind-C-linkage.patch create mode 100644 package/pulseview/0003-Support-glibmm-2.68.patch create mode 100644 package/pulseview/Config.in create mode 100644 package/pulseview/pulseview.hash create mode 100644 package/pulseview/pulseview.mk create mode 100644 package/pure-ftpd/Config.in create mode 100644 package/pure-ftpd/pure-ftpd.hash create mode 100644 package/pure-ftpd/pure-ftpd.mk create mode 100644 package/putty/0001-unix-uxutils.h-fix-build-on-uclibc.patch create mode 100644 package/putty/Config.in create mode 100644 package/putty/putty.hash create mode 100644 package/putty/putty.mk create mode 100644 package/pv/Config.in create mode 100644 package/pv/pv.hash create mode 100644 package/pv/pv.mk create mode 100644 package/pwgen/Config.in create mode 100644 package/pwgen/Config.in.host create mode 100644 package/pwgen/pwgen.hash create mode 100644 package/pwgen/pwgen.mk create mode 100644 package/python-aenum/Config.in create mode 100644 package/python-aenum/python-aenum.hash create mode 100644 package/python-aenum/python-aenum.mk create mode 100644 package/python-aexpect/Config.in create mode 100644 package/python-aexpect/python-aexpect.hash create mode 100644 package/python-aexpect/python-aexpect.mk create mode 100644 package/python-aioblescan/Config.in create mode 100644 package/python-aioblescan/python-aioblescan.hash create mode 100644 package/python-aioblescan/python-aioblescan.mk create mode 100644 package/python-aiocoap/Config.in create mode 100644 package/python-aiocoap/python-aiocoap.hash create mode 100644 package/python-aiocoap/python-aiocoap.mk create mode 100644 package/python-aioconsole/Config.in create mode 100644 package/python-aioconsole/python-aioconsole.hash create mode 100644 package/python-aioconsole/python-aioconsole.mk create mode 100644 package/python-aiodns/Config.in create mode 100644 package/python-aiodns/python-aiodns.hash create mode 100644 package/python-aiodns/python-aiodns.mk create mode 100644 package/python-aiofiles/Config.in create mode 100644 package/python-aiofiles/python-aiofiles.hash create mode 100644 package/python-aiofiles/python-aiofiles.mk create mode 100644 package/python-aiohttp-cors/Config.in create mode 100644 package/python-aiohttp-cors/python-aiohttp-cors.hash create mode 100644 package/python-aiohttp-cors/python-aiohttp-cors.mk create mode 100644 package/python-aiohttp-debugtoolbar/Config.in create mode 100644 package/python-aiohttp-debugtoolbar/python-aiohttp-debugtoolbar.hash create mode 100644 package/python-aiohttp-debugtoolbar/python-aiohttp-debugtoolbar.mk create mode 100644 package/python-aiohttp-jinja2/Config.in create mode 100644 package/python-aiohttp-jinja2/python-aiohttp-jinja2.hash create mode 100644 package/python-aiohttp-jinja2/python-aiohttp-jinja2.mk create mode 100644 package/python-aiohttp-mako/Config.in create mode 100644 package/python-aiohttp-mako/python-aiohttp-mako.hash create mode 100644 package/python-aiohttp-mako/python-aiohttp-mako.mk create mode 100644 package/python-aiohttp-remotes/Config.in create mode 100644 package/python-aiohttp-remotes/python-aiohttp-remotes.hash create mode 100644 package/python-aiohttp-remotes/python-aiohttp-remotes.mk create mode 100644 package/python-aiohttp-security/Config.in create mode 100644 package/python-aiohttp-security/python-aiohttp-security.hash create mode 100644 package/python-aiohttp-security/python-aiohttp-security.mk create mode 100644 package/python-aiohttp-session/Config.in create mode 100644 package/python-aiohttp-session/python-aiohttp-session.hash create mode 100644 package/python-aiohttp-session/python-aiohttp-session.mk create mode 100644 package/python-aiohttp-sse/Config.in create mode 100644 package/python-aiohttp-sse/python-aiohttp-sse.hash create mode 100644 package/python-aiohttp-sse/python-aiohttp-sse.mk create mode 100644 package/python-aiohttp/Config.in create mode 100644 package/python-aiohttp/python-aiohttp.hash create mode 100644 package/python-aiohttp/python-aiohttp.mk create mode 100644 package/python-aiojobs/Config.in create mode 100644 package/python-aiojobs/python-aiojobs.hash create mode 100644 package/python-aiojobs/python-aiojobs.mk create mode 100644 package/python-aiologstash/Config.in create mode 100644 package/python-aiologstash/python-aiologstash.hash create mode 100644 package/python-aiologstash/python-aiologstash.mk create mode 100644 package/python-aiomonitor/Config.in create mode 100644 package/python-aiomonitor/python-aiomonitor.hash create mode 100644 package/python-aiomonitor/python-aiomonitor.mk create mode 100644 package/python-aioprocessing/Config.in create mode 100644 package/python-aioprocessing/python-aioprocessing.hash create mode 100644 package/python-aioprocessing/python-aioprocessing.mk create mode 100644 package/python-aioredis/Config.in create mode 100644 package/python-aioredis/python-aioredis.hash create mode 100644 package/python-aioredis/python-aioredis.mk create mode 100644 package/python-aiorwlock/Config.in create mode 100644 package/python-aiorwlock/python-aiorwlock.hash create mode 100644 package/python-aiorwlock/python-aiorwlock.mk create mode 100644 package/python-aiosignal/Config.in create mode 100644 package/python-aiosignal/python-aiosignal.hash create mode 100644 package/python-aiosignal/python-aiosignal.mk create mode 100644 package/python-aiozipkin/Config.in create mode 100644 package/python-aiozipkin/python-aiozipkin.hash create mode 100644 package/python-aiozipkin/python-aiozipkin.mk create mode 100644 package/python-alembic/Config.in create mode 100644 package/python-alembic/python-alembic.hash create mode 100644 package/python-alembic/python-alembic.mk create mode 100644 package/python-alsaaudio/Config.in create mode 100644 package/python-alsaaudio/python-alsaaudio.hash create mode 100644 package/python-alsaaudio/python-alsaaudio.mk create mode 100644 package/python-ansicolors/Config.in create mode 100644 package/python-ansicolors/python-ansicolors.hash create mode 100644 package/python-ansicolors/python-ansicolors.mk create mode 100644 package/python-appdirs/Config.in create mode 100644 package/python-appdirs/python-appdirs.hash create mode 100644 package/python-appdirs/python-appdirs.mk create mode 100644 package/python-argh/Config.in create mode 100644 package/python-argh/python-argh.hash create mode 100644 package/python-argh/python-argh.mk create mode 100644 package/python-argon2-cffi-bindings/Config.in create mode 100644 package/python-argon2-cffi-bindings/python-argon2-cffi-bindings.hash create mode 100644 package/python-argon2-cffi-bindings/python-argon2-cffi-bindings.mk create mode 100644 package/python-argon2-cffi/Config.in create mode 100644 package/python-argon2-cffi/python-argon2-cffi.hash create mode 100644 package/python-argon2-cffi/python-argon2-cffi.mk create mode 100644 package/python-arrow/Config.in create mode 100644 package/python-arrow/python-arrow.hash create mode 100644 package/python-arrow/python-arrow.mk create mode 100644 package/python-asgiref/Config.in create mode 100644 package/python-asgiref/python-asgiref.hash create mode 100644 package/python-asgiref/python-asgiref.mk create mode 100644 package/python-asn1crypto/Config.in create mode 100644 package/python-asn1crypto/python-asn1crypto.hash create mode 100644 package/python-asn1crypto/python-asn1crypto.mk create mode 100644 package/python-async-lru/Config.in create mode 100644 package/python-async-lru/python-async-lru.hash create mode 100644 package/python-async-lru/python-async-lru.mk create mode 100644 package/python-async-timeout/Config.in create mode 100644 package/python-async-timeout/python-async-timeout.hash create mode 100644 package/python-async-timeout/python-async-timeout.mk create mode 100644 package/python-attrs/Config.in create mode 100644 package/python-attrs/python-attrs.hash create mode 100644 package/python-attrs/python-attrs.mk create mode 100644 package/python-augeas/0001-Use-CFFI-in-out-of-line-API-mode-49.patch create mode 100644 package/python-augeas/Config.in create mode 100644 package/python-augeas/python-augeas.hash create mode 100644 package/python-augeas/python-augeas.mk create mode 100644 package/python-autobahn/Config.in create mode 100644 package/python-autobahn/python-autobahn.hash create mode 100644 package/python-autobahn/python-autobahn.mk create mode 100644 package/python-automat/Config.in create mode 100644 package/python-automat/python-automat.hash create mode 100644 package/python-automat/python-automat.mk create mode 100644 package/python-avro/Config.in create mode 100644 package/python-avro/python-avro.hash create mode 100644 package/python-avro/python-avro.mk create mode 100644 package/python-babel/Config.in create mode 100644 package/python-babel/python-babel.hash create mode 100644 package/python-babel/python-babel.mk create mode 100644 package/python-backcall/Config.in create mode 100644 package/python-backcall/python-backcall.hash create mode 100644 package/python-backcall/python-backcall.mk create mode 100644 package/python-bcrypt/Config.in create mode 100644 package/python-bcrypt/python-bcrypt.hash create mode 100644 package/python-bcrypt/python-bcrypt.mk create mode 100644 package/python-beautifulsoup4/Config.in create mode 100644 package/python-beautifulsoup4/python-beautifulsoup4.hash create mode 100644 package/python-beautifulsoup4/python-beautifulsoup4.mk create mode 100644 package/python-beniget/python-beniget.hash create mode 100644 package/python-beniget/python-beniget.mk create mode 100644 package/python-bidict/Config.in create mode 100644 package/python-bidict/python-bidict.hash create mode 100644 package/python-bidict/python-bidict.mk create mode 100644 package/python-bitstring/Config.in create mode 100644 package/python-bitstring/python-bitstring.hash create mode 100644 package/python-bitstring/python-bitstring.mk create mode 100644 package/python-bleak/Config.in create mode 100644 package/python-bleak/python-bleak.hash create mode 100644 package/python-bleak/python-bleak.mk create mode 100644 package/python-bluezero/Config.in create mode 100644 package/python-bluezero/python-bluezero.hash create mode 100644 package/python-bluezero/python-bluezero.mk create mode 100644 package/python-boto3/Config.in create mode 100644 package/python-boto3/python-boto3.hash create mode 100644 package/python-boto3/python-boto3.mk create mode 100644 package/python-botocore/Config.in create mode 100644 package/python-botocore/python-botocore.hash create mode 100644 package/python-botocore/python-botocore.mk create mode 100644 package/python-bottle/Config.in create mode 100644 package/python-bottle/python-bottle.hash create mode 100644 package/python-bottle/python-bottle.mk create mode 100644 package/python-brotli/Config.in create mode 100644 package/python-brotli/python-brotli.hash create mode 100644 package/python-brotli/python-brotli.mk create mode 100644 package/python-bsdiff4/Config.in create mode 100644 package/python-bsdiff4/python-bsdiff4.hash create mode 100644 package/python-bsdiff4/python-bsdiff4.mk create mode 100644 package/python-bunch/Config.in create mode 100644 package/python-bunch/python-bunch.hash create mode 100644 package/python-bunch/python-bunch.mk create mode 100644 package/python-cached-property/Config.in create mode 100644 package/python-cached-property/python-cached-property.hash create mode 100644 package/python-cached-property/python-cached-property.mk create mode 100644 package/python-can/Config.in create mode 100644 package/python-can/python-can.hash create mode 100644 package/python-can/python-can.mk create mode 100644 package/python-canopen/Config.in create mode 100644 package/python-canopen/python-canopen.hash create mode 100644 package/python-canopen/python-canopen.mk create mode 100644 package/python-cbor/Config.in create mode 100644 package/python-cbor/python-cbor.hash create mode 100644 package/python-cbor/python-cbor.mk create mode 100644 package/python-cbor2/Config.in create mode 100644 package/python-cbor2/python-cbor2.hash create mode 100644 package/python-cbor2/python-cbor2.mk create mode 100644 package/python-cchardet/Config.in create mode 100644 package/python-cchardet/python-cchardet.hash create mode 100644 package/python-cchardet/python-cchardet.mk create mode 100644 package/python-certifi/Config.in create mode 100644 package/python-certifi/python-certifi.hash create mode 100644 package/python-certifi/python-certifi.mk create mode 100644 package/python-cffi/Config.in create mode 100644 package/python-cffi/python-cffi.hash create mode 100644 package/python-cffi/python-cffi.mk create mode 100644 package/python-channels-redis/Config.in create mode 100644 package/python-channels-redis/python-channels-redis.hash create mode 100644 package/python-channels-redis/python-channels-redis.mk create mode 100644 package/python-channels/Config.in create mode 100644 package/python-channels/python-channels.hash create mode 100644 package/python-channels/python-channels.mk create mode 100644 package/python-characteristic/Config.in create mode 100644 package/python-characteristic/python-characteristic.hash create mode 100644 package/python-characteristic/python-characteristic.mk create mode 100644 package/python-chardet/Config.in create mode 100644 package/python-chardet/python-chardet.hash create mode 100644 package/python-chardet/python-chardet.mk create mode 100644 package/python-charset-normalizer/Config.in create mode 100644 package/python-charset-normalizer/python-charset-normalizer.hash create mode 100644 package/python-charset-normalizer/python-charset-normalizer.mk create mode 100644 package/python-cheetah/Config.in create mode 100644 package/python-cheetah/python-cheetah.hash create mode 100644 package/python-cheetah/python-cheetah.mk create mode 100644 package/python-cheroot/Config.in create mode 100644 package/python-cheroot/python-cheroot.hash create mode 100644 package/python-cheroot/python-cheroot.mk create mode 100644 package/python-cherrypy/Config.in create mode 100644 package/python-cherrypy/python-cherrypy.hash create mode 100644 package/python-cherrypy/python-cherrypy.mk create mode 100644 package/python-click/Config.in create mode 100644 package/python-click/python-click.hash create mode 100644 package/python-click/python-click.mk create mode 100644 package/python-colorama/Config.in create mode 100644 package/python-colorama/python-colorama.hash create mode 100644 package/python-colorama/python-colorama.mk create mode 100644 package/python-colorlog/Config.in create mode 100644 package/python-colorlog/python-colorlog.hash create mode 100644 package/python-colorlog/python-colorlog.mk create mode 100644 package/python-colorzero/Config.in create mode 100644 package/python-colorzero/python-colorzero.hash create mode 100644 package/python-colorzero/python-colorzero.mk create mode 100644 package/python-configshell-fb/Config.in create mode 100644 package/python-configshell-fb/python-configshell-fb.hash create mode 100644 package/python-configshell-fb/python-configshell-fb.mk create mode 100644 package/python-constantly/Config.in create mode 100644 package/python-constantly/python-constantly.hash create mode 100644 package/python-constantly/python-constantly.mk create mode 100644 package/python-construct/Config.in create mode 100644 package/python-construct/python-construct.hash create mode 100644 package/python-construct/python-construct.mk create mode 100644 package/python-couchdb/Config.in create mode 100644 package/python-couchdb/python-couchdb.hash create mode 100644 package/python-couchdb/python-couchdb.mk create mode 100644 package/python-crayons/Config.in create mode 100644 package/python-crayons/python-crayons.hash create mode 100644 package/python-crayons/python-crayons.mk create mode 100644 package/python-crc16/Config.in create mode 100644 package/python-crc16/python-crc16.hash create mode 100644 package/python-crc16/python-crc16.mk create mode 100644 package/python-crcmod/Config.in create mode 100644 package/python-crcmod/python-crcmod.hash create mode 100644 package/python-crcmod/python-crcmod.mk create mode 100644 package/python-crontab/Config.in create mode 100644 package/python-crontab/python-crontab.hash create mode 100644 package/python-crontab/python-crontab.mk create mode 100644 package/python-crossbar/0001-Avoid-intentional-syntax-error.patch create mode 100644 package/python-crossbar/0002-requirements-min.txt-drop-indirect-dependencies.patch create mode 100644 package/python-crossbar/0003-crossbar-webservice-wap-use-markupsafe-instead-of-we.patch create mode 100644 package/python-crossbar/Config.in create mode 100644 package/python-crossbar/python-crossbar.hash create mode 100644 package/python-crossbar/python-crossbar.mk create mode 100644 package/python-cryptography/0001-Remove-invalid-OPENSSL_NO_PSK-defined-guard-7146.patch create mode 100644 package/python-cryptography/Config.in create mode 100644 package/python-cryptography/python-cryptography.hash create mode 100644 package/python-cryptography/python-cryptography.mk create mode 100644 package/python-cssselect/Config.in create mode 100644 package/python-cssselect/python-cssselect.hash create mode 100644 package/python-cssselect/python-cssselect.mk create mode 100644 package/python-cssselect2/Config.in create mode 100644 package/python-cssselect2/python-cssselect2.hash create mode 100644 package/python-cssselect2/python-cssselect2.mk create mode 100644 package/python-cssutils/Config.in create mode 100644 package/python-cssutils/python-cssutils.hash create mode 100644 package/python-cssutils/python-cssutils.mk create mode 100644 package/python-cycler/Config.in create mode 100644 package/python-cycler/python-cycler.hash create mode 100644 package/python-cycler/python-cycler.mk create mode 100644 package/python-cython/Config.in.host create mode 100644 package/python-cython/python-cython.hash create mode 100644 package/python-cython/python-cython.mk create mode 100644 package/python-daemon/Config.in create mode 100644 package/python-daemon/python-daemon.hash create mode 100644 package/python-daemon/python-daemon.mk create mode 100644 package/python-daemonize/Config.in create mode 100644 package/python-daemonize/python-daemonize.hash create mode 100644 package/python-daemonize/python-daemonize.mk create mode 100644 package/python-daphne/0001-remove-pytest-runner-requirement.patch create mode 100644 package/python-daphne/Config.in create mode 100644 package/python-daphne/python-daphne.hash create mode 100644 package/python-daphne/python-daphne.mk create mode 100644 package/python-dataproperty/Config.in create mode 100644 package/python-dataproperty/python-dataproperty.hash create mode 100644 package/python-dataproperty/python-dataproperty.mk create mode 100644 package/python-dateutil/Config.in create mode 100644 package/python-dateutil/python-dateutil.hash create mode 100644 package/python-dateutil/python-dateutil.mk create mode 100644 package/python-dbus-next/Config.in create mode 100644 package/python-dbus-next/python-dbus-next.hash create mode 100644 package/python-dbus-next/python-dbus-next.mk create mode 100644 package/python-decorator/Config.in create mode 100644 package/python-decorator/python-decorator.hash create mode 100644 package/python-decorator/python-decorator.mk create mode 100644 package/python-defusedxml/Config.in create mode 100644 package/python-defusedxml/python-defusedxml.hash create mode 100644 package/python-defusedxml/python-defusedxml.mk create mode 100644 package/python-dialog3/Config.in create mode 100644 package/python-dialog3/python-dialog3.hash create mode 100644 package/python-dialog3/python-dialog3.mk create mode 100644 package/python-dicttoxml/Config.in create mode 100644 package/python-dicttoxml/python-dicttoxml.hash create mode 100644 package/python-dicttoxml/python-dicttoxml.mk create mode 100644 package/python-distro/Config.in create mode 100644 package/python-distro/python-distro.hash create mode 100644 package/python-distro/python-distro.mk create mode 100644 package/python-django-enumfields/Config.in create mode 100644 package/python-django-enumfields/python-django-enumfields.hash create mode 100644 package/python-django-enumfields/python-django-enumfields.mk create mode 100644 package/python-django/Config.in create mode 100644 package/python-django/python-django.hash create mode 100644 package/python-django/python-django.mk create mode 100644 package/python-dnspython/Config.in create mode 100644 package/python-dnspython/python-dnspython.hash create mode 100644 package/python-dnspython/python-dnspython.mk create mode 100644 package/python-docker-pycreds/Config.in create mode 100644 package/python-docker-pycreds/python-docker-pycreds.hash create mode 100644 package/python-docker-pycreds/python-docker-pycreds.mk create mode 100644 package/python-docker/Config.in create mode 100644 package/python-docker/python-docker.hash create mode 100644 package/python-docker/python-docker.mk create mode 100644 package/python-dockerpty/Config.in create mode 100644 package/python-dockerpty/python-dockerpty.hash create mode 100644 package/python-dockerpty/python-dockerpty.mk create mode 100644 package/python-docopt/Config.in create mode 100644 package/python-docopt/python-docopt.hash create mode 100644 package/python-docopt/python-docopt.mk create mode 100644 package/python-docutils/Config.in create mode 100644 package/python-docutils/python-docutils.hash create mode 100644 package/python-docutils/python-docutils.mk create mode 100644 package/python-dominate/Config.in create mode 100644 package/python-dominate/python-dominate.hash create mode 100644 package/python-dominate/python-dominate.mk create mode 100644 package/python-dpkt/Config.in create mode 100644 package/python-dpkt/python-dpkt.hash create mode 100644 package/python-dpkt/python-dpkt.mk create mode 100644 package/python-dtschema/Config.in create mode 100644 package/python-dtschema/python-dtschema.hash create mode 100644 package/python-dtschema/python-dtschema.mk create mode 100644 package/python-ecdsa/Config.in create mode 100644 package/python-ecdsa/python-ecdsa.hash create mode 100644 package/python-ecdsa/python-ecdsa.mk create mode 100644 package/python-engineio/Config.in create mode 100644 package/python-engineio/python-engineio.hash create mode 100644 package/python-engineio/python-engineio.mk create mode 100644 package/python-entrypoints/Config.in create mode 100644 package/python-entrypoints/python-entrypoints.hash create mode 100644 package/python-entrypoints/python-entrypoints.mk create mode 100644 package/python-esptool/Config.in create mode 100644 package/python-esptool/python-esptool.hash create mode 100644 package/python-esptool/python-esptool.mk create mode 100644 package/python-falcon/Config.in create mode 100644 package/python-falcon/python-falcon.hash create mode 100644 package/python-falcon/python-falcon.mk create mode 100644 package/python-fastentrypoints/Config.in.host create mode 100644 package/python-fastentrypoints/python-fastentrypoints.hash create mode 100644 package/python-fastentrypoints/python-fastentrypoints.mk create mode 100644 package/python-filelock/Config.in create mode 100644 package/python-filelock/python-filelock.hash create mode 100644 package/python-filelock/python-filelock.mk create mode 100644 package/python-fire/Config.in create mode 100644 package/python-fire/python-fire.hash create mode 100644 package/python-fire/python-fire.mk create mode 100644 package/python-flask-babel/Config.in create mode 100644 package/python-flask-babel/python-flask-babel.hash create mode 100644 package/python-flask-babel/python-flask-babel.mk create mode 100644 package/python-flask-cors/Config.in create mode 100644 package/python-flask-cors/python-flask-cors.hash create mode 100644 package/python-flask-cors/python-flask-cors.mk create mode 100644 package/python-flask-expects-json/Config.in create mode 100644 package/python-flask-expects-json/python-flask-expects-json.hash create mode 100644 package/python-flask-expects-json/python-flask-expects-json.mk create mode 100644 package/python-flask-jsonrpc/0001-Move-pytest-runner-to-tests_require.patch create mode 100644 package/python-flask-jsonrpc/Config.in create mode 100644 package/python-flask-jsonrpc/python-flask-jsonrpc.hash create mode 100644 package/python-flask-jsonrpc/python-flask-jsonrpc.mk create mode 100644 package/python-flask-login/Config.in create mode 100644 package/python-flask-login/python-flask-login.hash create mode 100644 package/python-flask-login/python-flask-login.mk create mode 100644 package/python-flask-sqlalchemy/Config.in create mode 100644 package/python-flask-sqlalchemy/python-flask-sqlalchemy.hash create mode 100644 package/python-flask-sqlalchemy/python-flask-sqlalchemy.mk create mode 100644 package/python-flask-wtf/Config.in create mode 100644 package/python-flask-wtf/python-flask-wtf.hash create mode 100644 package/python-flask-wtf/python-flask-wtf.mk create mode 100644 package/python-flask/Config.in create mode 100644 package/python-flask/python-flask.hash create mode 100644 package/python-flask/python-flask.mk create mode 100644 package/python-flatbuffers/Config.in create mode 100644 package/python-flatbuffers/python-flatbuffers.hash create mode 100644 package/python-flatbuffers/python-flatbuffers.mk create mode 100644 package/python-flit-core/0001-Fix-ast-version-parser-for-multiple-assignments.patch create mode 100644 package/python-flit-core/python-flit-core.hash create mode 100644 package/python-flit-core/python-flit-core.mk create mode 100644 package/python-flup/Config.in create mode 100644 package/python-flup/python-flup.hash create mode 100644 package/python-flup/python-flup.mk create mode 100644 package/python-fonttools/Config.in create mode 100644 package/python-fonttools/python-fonttools.hash create mode 100644 package/python-fonttools/python-fonttools.mk create mode 100644 package/python-frozenlist/Config.in create mode 100644 package/python-frozenlist/python-frozenlist.hash create mode 100644 package/python-frozenlist/python-frozenlist.mk create mode 100644 package/python-future/Config.in create mode 100644 package/python-future/python-future.hash create mode 100644 package/python-future/python-future.mk create mode 100644 package/python-gast/python-gast.hash create mode 100644 package/python-gast/python-gast.mk create mode 100644 package/python-git/Config.in create mode 100644 package/python-git/python-git.hash create mode 100644 package/python-git/python-git.mk create mode 100644 package/python-gitdb2/Config.in create mode 100644 package/python-gitdb2/python-gitdb2.hash create mode 100644 package/python-gitdb2/python-gitdb2.mk create mode 100644 package/python-gnupg/Config.in create mode 100644 package/python-gnupg/python-gnupg.hash create mode 100644 package/python-gnupg/python-gnupg.mk create mode 100644 package/python-gobject/Config.in create mode 100644 package/python-gobject/python-gobject.hash create mode 100644 package/python-gobject/python-gobject.mk create mode 100644 package/python-gpiozero/Config.in create mode 100644 package/python-gpiozero/python-gpiozero.hash create mode 100644 package/python-gpiozero/python-gpiozero.mk create mode 100644 package/python-greenlet/Config.in create mode 100644 package/python-greenlet/Config.in.host create mode 100644 package/python-greenlet/python-greenlet.hash create mode 100644 package/python-greenlet/python-greenlet.mk create mode 100644 package/python-gunicorn/Config.in create mode 100644 package/python-gunicorn/python-gunicorn.hash create mode 100644 package/python-gunicorn/python-gunicorn.mk create mode 100644 package/python-h2/Config.in create mode 100644 package/python-h2/python-h2.hash create mode 100644 package/python-h2/python-h2.mk create mode 100644 package/python-hiredis/0001-setup.py-fix-build-with-gcc-4.8.patch create mode 100644 package/python-hiredis/Config.in create mode 100644 package/python-hiredis/python-hiredis.hash create mode 100644 package/python-hiredis/python-hiredis.mk create mode 100644 package/python-hpack/Config.in create mode 100644 package/python-hpack/python-hpack.hash create mode 100644 package/python-hpack/python-hpack.mk create mode 100644 package/python-html5lib/Config.in create mode 100644 package/python-html5lib/python-html5lib.hash create mode 100644 package/python-html5lib/python-html5lib.mk create mode 100644 package/python-httplib2/Config.in create mode 100644 package/python-httplib2/python-httplib2.hash create mode 100644 package/python-httplib2/python-httplib2.mk create mode 100644 package/python-huepy/0001-fix-import-with-python3.patch create mode 100644 package/python-huepy/Config.in create mode 100644 package/python-huepy/python-huepy.hash create mode 100644 package/python-huepy/python-huepy.mk create mode 100644 package/python-humanize/Config.in create mode 100644 package/python-humanize/python-humanize.hash create mode 100644 package/python-humanize/python-humanize.mk create mode 100644 package/python-hyperframe/Config.in create mode 100644 package/python-hyperframe/python-hyperframe.hash create mode 100644 package/python-hyperframe/python-hyperframe.mk create mode 100644 package/python-hyperlink/Config.in create mode 100644 package/python-hyperlink/python-hyperlink.hash create mode 100644 package/python-hyperlink/python-hyperlink.mk create mode 100644 package/python-ibmiotf/Config.in create mode 100644 package/python-ibmiotf/python-ibmiotf.hash create mode 100644 package/python-ibmiotf/python-ibmiotf.mk create mode 100644 package/python-idna/Config.in create mode 100644 package/python-idna/python-idna.hash create mode 100644 package/python-idna/python-idna.mk create mode 100644 package/python-ifaddr/Config.in create mode 100644 package/python-ifaddr/python-ifaddr.hash create mode 100644 package/python-ifaddr/python-ifaddr.mk create mode 100644 package/python-incremental/Config.in create mode 100644 package/python-incremental/python-incremental.hash create mode 100644 package/python-incremental/python-incremental.mk create mode 100644 package/python-inflection/Config.in create mode 100644 package/python-inflection/python-inflection.hash create mode 100644 package/python-inflection/python-inflection.mk create mode 100644 package/python-influxdb/Config.in create mode 100644 package/python-influxdb/python-influxdb.hash create mode 100644 package/python-influxdb/python-influxdb.mk create mode 100644 package/python-iniconfig/Config.in create mode 100644 package/python-iniconfig/python-iniconfig.hash create mode 100644 package/python-iniconfig/python-iniconfig.mk create mode 100644 package/python-iniparse/Config.in create mode 100644 package/python-iniparse/python-iniparse.hash create mode 100644 package/python-iniparse/python-iniparse.mk create mode 100644 package/python-installer/python-installer.hash create mode 100644 package/python-installer/python-installer.mk create mode 100644 package/python-intelhex/Config.in create mode 100644 package/python-intelhex/python-intelhex.hash create mode 100644 package/python-intelhex/python-intelhex.mk create mode 100644 package/python-iowait/Config.in create mode 100644 package/python-iowait/python-iowait.hash create mode 100644 package/python-iowait/python-iowait.mk create mode 100644 package/python-ipdb/Config.in create mode 100644 package/python-ipdb/python-ipdb.hash create mode 100644 package/python-ipdb/python-ipdb.mk create mode 100644 package/python-iptables/Config.in create mode 100644 package/python-iptables/python-iptables.hash create mode 100644 package/python-iptables/python-iptables.mk create mode 100644 package/python-ipy/Config.in create mode 100644 package/python-ipy/python-ipy.hash create mode 100644 package/python-ipy/python-ipy.mk create mode 100644 package/python-ipython-genutils/Config.in create mode 100644 package/python-ipython-genutils/python-ipython-genutils.hash create mode 100644 package/python-ipython-genutils/python-ipython-genutils.mk create mode 100644 package/python-ipython/0001-set-correct-python-executable-path.patch create mode 100644 package/python-ipython/Config.in create mode 100644 package/python-ipython/python-ipython.hash create mode 100644 package/python-ipython/python-ipython.mk create mode 100644 package/python-iso8601/Config.in create mode 100644 package/python-iso8601/python-iso8601.hash create mode 100644 package/python-iso8601/python-iso8601.mk create mode 100644 package/python-itsdangerous/Config.in create mode 100644 package/python-itsdangerous/python-itsdangerous.hash create mode 100644 package/python-itsdangerous/python-itsdangerous.mk create mode 100644 package/python-iwlib/Config.in create mode 100644 package/python-iwlib/python-iwlib.hash create mode 100644 package/python-iwlib/python-iwlib.mk create mode 100644 package/python-janus/Config.in create mode 100644 package/python-janus/python-janus.hash create mode 100644 package/python-janus/python-janus.mk create mode 100644 package/python-jaraco-classes/Config.in create mode 100644 package/python-jaraco-classes/python-jaraco-classes.hash create mode 100644 package/python-jaraco-classes/python-jaraco-classes.mk create mode 100644 package/python-jaraco-functools/Config.in create mode 100644 package/python-jaraco-functools/python-jaraco-functools.hash create mode 100644 package/python-jaraco-functools/python-jaraco-functools.mk create mode 100644 package/python-jedi/Config.in create mode 100644 package/python-jedi/python-jedi.hash create mode 100644 package/python-jedi/python-jedi.mk create mode 100644 package/python-jinja2/Config.in create mode 100644 package/python-jinja2/python-jinja2.hash create mode 100644 package/python-jinja2/python-jinja2.mk create mode 100644 package/python-jmespath/Config.in create mode 100644 package/python-jmespath/python-jmespath.hash create mode 100644 package/python-jmespath/python-jmespath.mk create mode 100644 package/python-json-schema-validator/Config.in create mode 100644 package/python-json-schema-validator/python-json-schema-validator.hash create mode 100644 package/python-json-schema-validator/python-json-schema-validator.mk create mode 100644 package/python-jsonmodels/Config.in create mode 100644 package/python-jsonmodels/python-jsonmodels.hash create mode 100644 package/python-jsonmodels/python-jsonmodels.mk create mode 100644 package/python-jsonschema/Config.in create mode 100644 package/python-jsonschema/python-jsonschema.hash create mode 100644 package/python-jsonschema/python-jsonschema.mk create mode 100644 package/python-keyring/Config.in create mode 100644 package/python-keyring/python-keyring.hash create mode 100644 package/python-keyring/python-keyring.mk create mode 100644 package/python-kflash/Config.in.host create mode 100644 package/python-kflash/python-kflash.hash create mode 100644 package/python-kflash/python-kflash.mk create mode 100644 package/python-kiwisolver/Config.in create mode 100644 package/python-kiwisolver/python-kiwisolver.hash create mode 100644 package/python-kiwisolver/python-kiwisolver.mk create mode 100644 package/python-lark/Config.in create mode 100644 package/python-lark/python-lark.hash create mode 100644 package/python-lark/python-lark.mk create mode 100644 package/python-libconfig/Config.in create mode 100644 package/python-libconfig/python-libconfig.hash create mode 100644 package/python-libconfig/python-libconfig.mk create mode 100644 package/python-libusb1/Config.in create mode 100644 package/python-libusb1/python-libusb1.hash create mode 100644 package/python-libusb1/python-libusb1.mk create mode 100644 package/python-lmdb/Config.in create mode 100644 package/python-lmdb/python-lmdb.hash create mode 100644 package/python-lmdb/python-lmdb.mk create mode 100644 package/python-lockfile/Config.in create mode 100644 package/python-lockfile/python-lockfile.hash create mode 100644 package/python-lockfile/python-lockfile.mk create mode 100644 package/python-logbook/Config.in create mode 100644 package/python-logbook/python-logbook.hash create mode 100644 package/python-logbook/python-logbook.mk create mode 100644 package/python-logstash/Config.in create mode 100644 package/python-logstash/python-logstash.hash create mode 100644 package/python-logstash/python-logstash.mk create mode 100644 package/python-lxml/Config.in create mode 100644 package/python-lxml/Config.in.host create mode 100644 package/python-lxml/python-lxml.hash create mode 100644 package/python-lxml/python-lxml.mk create mode 100644 package/python-m2crypto/Config.in create mode 100644 package/python-m2crypto/python-m2crypto.hash create mode 100644 package/python-m2crypto/python-m2crypto.mk create mode 100644 package/python-m2r/Config.in create mode 100644 package/python-m2r/python-m2r.hash create mode 100644 package/python-m2r/python-m2r.mk create mode 100644 package/python-mako/Config.in create mode 100644 package/python-mako/python-mako.hash create mode 100644 package/python-mako/python-mako.mk create mode 100644 package/python-markdown/Config.in create mode 100644 package/python-markdown/python-markdown.hash create mode 100644 package/python-markdown/python-markdown.mk create mode 100644 package/python-markdown2/Config.in create mode 100644 package/python-markdown2/python-markdown2.hash create mode 100644 package/python-markdown2/python-markdown2.mk create mode 100644 package/python-markupsafe/Config.in create mode 100644 package/python-markupsafe/python-markupsafe.hash create mode 100644 package/python-markupsafe/python-markupsafe.mk create mode 100644 package/python-matplotlib/Config.in create mode 100644 package/python-matplotlib/python-matplotlib.hash create mode 100644 package/python-matplotlib/python-matplotlib.mk create mode 100644 package/python-matplotlib/setup.cfg create mode 100644 package/python-maturin/python-maturin.hash create mode 100644 package/python-maturin/python-maturin.mk create mode 100644 package/python-mbstrdecoder/Config.in create mode 100644 package/python-mbstrdecoder/python-mbstrdecoder.hash create mode 100644 package/python-mbstrdecoder/python-mbstrdecoder.mk create mode 100644 package/python-memory-profiler/Config.in create mode 100644 package/python-memory-profiler/python-memory-profiler.hash create mode 100644 package/python-memory-profiler/python-memory-profiler.mk create mode 100644 package/python-mimeparse/Config.in create mode 100644 package/python-mimeparse/python-mimeparse.hash create mode 100644 package/python-mimeparse/python-mimeparse.mk create mode 100644 package/python-mistune/Config.in create mode 100644 package/python-mistune/python-mistune.hash create mode 100644 package/python-mistune/python-mistune.mk create mode 100644 package/python-modbus-tk/Config.in create mode 100644 package/python-modbus-tk/python-modbus-tk.hash create mode 100644 package/python-modbus-tk/python-modbus-tk.mk create mode 100644 package/python-more-itertools/Config.in create mode 100644 package/python-more-itertools/python-more-itertools.hash create mode 100644 package/python-more-itertools/python-more-itertools.mk create mode 100644 package/python-mpd2/Config.in create mode 100644 package/python-mpd2/python-mpd2.hash create mode 100644 package/python-mpd2/python-mpd2.mk create mode 100644 package/python-msgfy/Config.in create mode 100644 package/python-msgfy/python-msgfy.hash create mode 100644 package/python-msgfy/python-msgfy.mk create mode 100644 package/python-msgpack/Config.in create mode 100644 package/python-msgpack/python-msgpack.hash create mode 100644 package/python-msgpack/python-msgpack.mk create mode 100644 package/python-multidict/Config.in create mode 100644 package/python-multidict/python-multidict.hash create mode 100644 package/python-multidict/python-multidict.mk create mode 100644 package/python-mutagen/Config.in create mode 100644 package/python-mutagen/python-mutagen.hash create mode 100644 package/python-mutagen/python-mutagen.mk create mode 100644 package/python-mwclient/Config.in create mode 100644 package/python-mwclient/python-mwclient.hash create mode 100644 package/python-mwclient/python-mwclient.mk create mode 100644 package/python-mwscrape/Config.in create mode 100644 package/python-mwscrape/python-mwscrape.hash create mode 100644 package/python-mwscrape/python-mwscrape.mk create mode 100644 package/python-mwscrape2slob/Config.in create mode 100644 package/python-mwscrape2slob/python-mwscrape2slob.hash create mode 100644 package/python-mwscrape2slob/python-mwscrape2slob.mk create mode 100644 package/python-mypy-extensions/Config.in create mode 100644 package/python-mypy-extensions/python-mypy-extensions.hash create mode 100644 package/python-mypy-extensions/python-mypy-extensions.mk create mode 100644 package/python-nested-dict/Config.in create mode 100644 package/python-nested-dict/python-nested-dict.hash create mode 100644 package/python-nested-dict/python-nested-dict.mk create mode 100644 package/python-netaddr/Config.in create mode 100644 package/python-netaddr/python-netaddr.hash create mode 100644 package/python-netaddr/python-netaddr.mk create mode 100644 package/python-netifaces/Config.in create mode 100644 package/python-netifaces/python-netifaces.hash create mode 100644 package/python-netifaces/python-netifaces.mk create mode 100644 package/python-networkmanager/Config.in create mode 100644 package/python-networkmanager/python-networkmanager.hash create mode 100644 package/python-networkmanager/python-networkmanager.mk create mode 100644 package/python-networkx/Config.in create mode 100644 package/python-networkx/python-networkx.hash create mode 100644 package/python-networkx/python-networkx.mk create mode 100644 package/python-numpy/Config.in create mode 100644 package/python-numpy/python-numpy.hash create mode 100644 package/python-numpy/python-numpy.mk create mode 100644 package/python-oauthlib/Config.in create mode 100644 package/python-oauthlib/python-oauthlib.hash create mode 100644 package/python-oauthlib/python-oauthlib.mk create mode 100644 package/python-opcua-asyncio/Config.in create mode 100644 package/python-opcua-asyncio/python-opcua-asyncio.hash create mode 100644 package/python-opcua-asyncio/python-opcua-asyncio.mk create mode 100644 package/python-orjson/Config.in create mode 100644 package/python-orjson/python-orjson.hash create mode 100644 package/python-orjson/python-orjson.mk create mode 100644 package/python-packaging/Config.in create mode 100644 package/python-packaging/python-packaging.hash create mode 100644 package/python-packaging/python-packaging.mk create mode 100644 package/python-paho-mqtt/0001-fix-publish-for-python-3-10.patch create mode 100644 package/python-paho-mqtt/Config.in create mode 100644 package/python-paho-mqtt/python-paho-mqtt.hash create mode 100644 package/python-paho-mqtt/python-paho-mqtt.mk create mode 100644 package/python-paramiko/Config.in create mode 100644 package/python-paramiko/python-paramiko.hash create mode 100644 package/python-paramiko/python-paramiko.mk create mode 100644 package/python-parso/Config.in create mode 100644 package/python-parso/python-parso.hash create mode 100644 package/python-parso/python-parso.mk create mode 100644 package/python-passlib/Config.in create mode 100644 package/python-passlib/python-passlib.hash create mode 100644 package/python-passlib/python-passlib.mk create mode 100644 package/python-pathpy/Config.in create mode 100644 package/python-pathpy/python-pathpy.hash create mode 100644 package/python-pathpy/python-pathpy.mk create mode 100644 package/python-pathtools/Config.in create mode 100644 package/python-pathtools/python-pathtools.hash create mode 100644 package/python-pathtools/python-pathtools.mk create mode 100644 package/python-pathvalidate/Config.in create mode 100644 package/python-pathvalidate/python-pathvalidate.hash create mode 100644 package/python-pathvalidate/python-pathvalidate.mk create mode 100644 package/python-pbr/python-pbr.hash create mode 100644 package/python-pbr/python-pbr.mk create mode 100644 package/python-pep517/python-pep517.hash create mode 100644 package/python-pep517/python-pep517.mk create mode 100644 package/python-periphery/Config.in create mode 100644 package/python-periphery/python-periphery.hash create mode 100644 package/python-periphery/python-periphery.mk create mode 100644 package/python-pexpect/Config.in create mode 100644 package/python-pexpect/python-pexpect.hash create mode 100644 package/python-pexpect/python-pexpect.mk create mode 100644 package/python-pickleshare/Config.in create mode 100644 package/python-pickleshare/python-pickleshare.hash create mode 100644 package/python-pickleshare/python-pickleshare.mk create mode 100644 package/python-piexif/Config.in create mode 100644 package/python-piexif/python-piexif.hash create mode 100644 package/python-piexif/python-piexif.mk create mode 100644 package/python-pigpio/Config.in create mode 100644 package/python-pigpio/python-pigpio.hash create mode 100644 package/python-pigpio/python-pigpio.mk create mode 100644 package/python-pillow/Config.in create mode 100644 package/python-pillow/python-pillow.hash create mode 100644 package/python-pillow/python-pillow.mk create mode 100644 package/python-pip/Config.in create mode 100644 package/python-pip/python-pip.hash create mode 100644 package/python-pip/python-pip.mk create mode 100644 package/python-pluggy/Config.in create mode 100644 package/python-pluggy/python-pluggy.hash create mode 100644 package/python-pluggy/python-pluggy.mk create mode 100644 package/python-ply/Config.in create mode 100644 package/python-ply/python-ply.hash create mode 100644 package/python-ply/python-ply.mk create mode 100644 package/python-portend/Config.in create mode 100644 package/python-portend/python-portend.hash create mode 100644 package/python-portend/python-portend.mk create mode 100644 package/python-posix-ipc/Config.in create mode 100644 package/python-posix-ipc/python-posix-ipc.hash create mode 100644 package/python-posix-ipc/python-posix-ipc.mk create mode 100644 package/python-priority/Config.in create mode 100644 package/python-priority/python-priority.hash create mode 100644 package/python-priority/python-priority.mk create mode 100644 package/python-prompt-toolkit/Config.in create mode 100644 package/python-prompt-toolkit/python-prompt-toolkit.hash create mode 100644 package/python-prompt-toolkit/python-prompt-toolkit.mk create mode 100644 package/python-protobuf/Config.in create mode 100644 package/python-protobuf/python-protobuf.hash create mode 100644 package/python-protobuf/python-protobuf.mk create mode 100644 package/python-psutil/Config.in create mode 100644 package/python-psutil/python-psutil.hash create mode 100644 package/python-psutil/python-psutil.mk create mode 100644 package/python-psycopg2/Config.in create mode 100644 package/python-psycopg2/python-psycopg2.hash create mode 100644 package/python-psycopg2/python-psycopg2.mk create mode 100644 package/python-ptyprocess/Config.in create mode 100644 package/python-ptyprocess/python-ptyprocess.hash create mode 100644 package/python-ptyprocess/python-ptyprocess.mk create mode 100644 package/python-pudb/Config.in create mode 100644 package/python-pudb/python-pudb.hash create mode 100644 package/python-pudb/python-pudb.mk create mode 100644 package/python-py/Config.in create mode 100644 package/python-py/python-py.hash create mode 100644 package/python-py/python-py.mk create mode 100644 package/python-pyaes/Config.in create mode 100644 package/python-pyaes/python-pyaes.hash create mode 100644 package/python-pyaes/python-pyaes.mk create mode 100644 package/python-pyalsa/Config.in create mode 100644 package/python-pyalsa/python-pyalsa.hash create mode 100644 package/python-pyalsa/python-pyalsa.mk create mode 100644 package/python-pyasn1-modules/Config.in create mode 100644 package/python-pyasn1-modules/python-pyasn1-modules.hash create mode 100644 package/python-pyasn1-modules/python-pyasn1-modules.mk create mode 100644 package/python-pyasn1/Config.in create mode 100644 package/python-pyasn1/python-pyasn1.hash create mode 100644 package/python-pyasn1/python-pyasn1.mk create mode 100644 package/python-pybind/0001-pybind11-commands.py-support-STAGING_DIR.patch create mode 100644 package/python-pybind/Config.in create mode 100644 package/python-pybind/python-pybind.hash create mode 100644 package/python-pybind/python-pybind.mk create mode 100644 package/python-pycairo/Config.in create mode 100644 package/python-pycairo/python-pycairo.hash create mode 100644 package/python-pycairo/python-pycairo.mk create mode 100644 package/python-pycares/Config.in create mode 100644 package/python-pycares/python-pycares.hash create mode 100644 package/python-pycares/python-pycares.mk create mode 100644 package/python-pycparser/Config.in create mode 100644 package/python-pycparser/python-pycparser.hash create mode 100644 package/python-pycparser/python-pycparser.mk create mode 100644 package/python-pycryptodomex/Config.in create mode 100644 package/python-pycryptodomex/python-pycryptodomex.hash create mode 100644 package/python-pycryptodomex/python-pycryptodomex.mk create mode 100644 package/python-pycups/Config.in create mode 100644 package/python-pycups/python-pycups.hash create mode 100644 package/python-pycups/python-pycups.mk create mode 100644 package/python-pydal/Config.in create mode 100644 package/python-pydal/python-pydal.hash create mode 100644 package/python-pydal/python-pydal.mk create mode 100644 package/python-pydantic/Config.in create mode 100644 package/python-pydantic/python-pydantic.hash create mode 100644 package/python-pydantic/python-pydantic.mk create mode 100644 package/python-pydevmem/Config.in create mode 100644 package/python-pydevmem/python-pydevmem.hash create mode 100644 package/python-pydevmem/python-pydevmem.mk create mode 100644 package/python-pydyf/Config.in create mode 100644 package/python-pydyf/python-pydyf.hash create mode 100644 package/python-pydyf/python-pydyf.mk create mode 100644 package/python-pyelftools/Config.in create mode 100644 package/python-pyelftools/python-pyelftools.hash create mode 100644 package/python-pyelftools/python-pyelftools.mk create mode 100644 package/python-pyftpdlib/Config.in create mode 100644 package/python-pyftpdlib/python-pyftpdlib.hash create mode 100644 package/python-pyftpdlib/python-pyftpdlib.mk create mode 100644 package/python-pygame/Config.in create mode 100644 package/python-pygame/python-pygame.hash create mode 100644 package/python-pygame/python-pygame.mk create mode 100644 package/python-pygments/Config.in create mode 100644 package/python-pygments/python-pygments.hash create mode 100644 package/python-pygments/python-pygments.mk create mode 100644 package/python-pyhamcrest/Config.in create mode 100644 package/python-pyhamcrest/python-pyhamcrest.hash create mode 100644 package/python-pyhamcrest/python-pyhamcrest.mk create mode 100644 package/python-pyicu/Config.in create mode 100644 package/python-pyicu/python-pyicu.hash create mode 100644 package/python-pyicu/python-pyicu.mk create mode 100644 package/python-pyinotify/Config.in create mode 100644 package/python-pyinotify/python-pyinotify.hash create mode 100644 package/python-pyinotify/python-pyinotify.mk create mode 100644 package/python-pyjwt/Config.in create mode 100644 package/python-pyjwt/python-pyjwt.hash create mode 100644 package/python-pyjwt/python-pyjwt.mk create mode 100644 package/python-pylibfdt/Config.in create mode 100644 package/python-pylibfdt/python-pylibfdt.hash create mode 100644 package/python-pylibfdt/python-pylibfdt.mk create mode 100644 package/python-pylibftdi/0001-do-not-use-find-library.patch create mode 100644 package/python-pylibftdi/Config.in create mode 100644 package/python-pylibftdi/python-pylibftdi.hash create mode 100644 package/python-pylibftdi/python-pylibftdi.mk create mode 100644 package/python-pylru/Config.in create mode 100644 package/python-pylru/python-pylru.hash create mode 100644 package/python-pylru/python-pylru.mk create mode 100644 package/python-pymodbus/Config.in create mode 100644 package/python-pymodbus/python-pymodbus.hash create mode 100644 package/python-pymodbus/python-pymodbus.mk create mode 100644 package/python-pymupdf/Config.in create mode 100644 package/python-pymupdf/python-pymupdf.hash create mode 100644 package/python-pymupdf/python-pymupdf.mk create mode 100644 package/python-pymysql/Config.in create mode 100644 package/python-pymysql/python-pymysql.hash create mode 100644 package/python-pymysql/python-pymysql.mk create mode 100644 package/python-pynacl/Config.in create mode 100644 package/python-pynacl/python-pynacl.hash create mode 100644 package/python-pynacl/python-pynacl.mk create mode 100644 package/python-pyndiff/Config.in create mode 100644 package/python-pyndiff/python-pyndiff.hash create mode 100644 package/python-pyndiff/python-pyndiff.mk create mode 100644 package/python-pyopenssl/Config.in create mode 100644 package/python-pyopenssl/python-pyopenssl.hash create mode 100644 package/python-pyopenssl/python-pyopenssl.mk create mode 100644 package/python-pypa-build/python-pypa-build.hash create mode 100644 package/python-pypa-build/python-pypa-build.mk create mode 100644 package/python-pyparsing/Config.in create mode 100644 package/python-pyparsing/python-pyparsing.hash create mode 100644 package/python-pyparsing/python-pyparsing.mk create mode 100644 package/python-pyparted/Config.in create mode 100644 package/python-pyparted/python-pyparted.hash create mode 100644 package/python-pyparted/python-pyparted.mk create mode 100644 package/python-pyphen/Config.in create mode 100644 package/python-pyphen/python-pyphen.hash create mode 100644 package/python-pyphen/python-pyphen.mk create mode 100644 package/python-pyqrcode/Config.in create mode 100644 package/python-pyqrcode/python-pyqrcode.hash create mode 100644 package/python-pyqrcode/python-pyqrcode.mk create mode 100644 package/python-pyqt5/0001-configure-skip-qtdetail.patch create mode 100644 package/python-pyqt5/0002-fix-QtCoremod.sip-syntax-error.patch create mode 100644 package/python-pyqt5/Config.in create mode 100644 package/python-pyqt5/python-pyqt5.hash create mode 100644 package/python-pyqt5/python-pyqt5.mk create mode 100644 package/python-pyratemp/Config.in create mode 100644 package/python-pyratemp/python-pyratemp.hash create mode 100644 package/python-pyratemp/python-pyratemp.mk create mode 100644 package/python-pyroute2/Config.in create mode 100644 package/python-pyroute2/python-pyroute2.hash create mode 100644 package/python-pyroute2/python-pyroute2.mk create mode 100644 package/python-pyrsistent/Config.in create mode 100644 package/python-pyrsistent/python-pyrsistent.hash create mode 100644 package/python-pyrsistent/python-pyrsistent.mk create mode 100644 package/python-pysendfile/Config.in create mode 100644 package/python-pysendfile/python-pysendfile.hash create mode 100644 package/python-pysendfile/python-pysendfile.mk create mode 100644 package/python-pysftp/Config.in create mode 100644 package/python-pysftp/python-pysftp.hash create mode 100644 package/python-pysftp/python-pysftp.mk create mode 100644 package/python-pysmb/Config.in create mode 100644 package/python-pysmb/python-pysmb.hash create mode 100644 package/python-pysmb/python-pysmb.mk create mode 100644 package/python-pysmi/Config.in create mode 100644 package/python-pysmi/python-pysmi.hash create mode 100644 package/python-pysmi/python-pysmi.mk create mode 100644 package/python-pysnmp-mibs/Config.in create mode 100644 package/python-pysnmp-mibs/python-pysnmp-mibs.hash create mode 100644 package/python-pysnmp-mibs/python-pysnmp-mibs.mk create mode 100644 package/python-pysnmp/Config.in create mode 100644 package/python-pysnmp/python-pysnmp.hash create mode 100644 package/python-pysnmp/python-pysnmp.mk create mode 100644 package/python-pysocks/Config.in create mode 100644 package/python-pysocks/python-pysocks.hash create mode 100644 package/python-pysocks/python-pysocks.mk create mode 100644 package/python-pytablereader/Config.in create mode 100644 package/python-pytablereader/python-pytablereader.hash create mode 100644 package/python-pytablereader/python-pytablereader.mk create mode 100644 package/python-pytablewriter/Config.in create mode 100644 package/python-pytablewriter/python-pytablewriter.hash create mode 100644 package/python-pytablewriter/python-pytablewriter.mk create mode 100644 package/python-pytest-asyncio/Config.in create mode 100644 package/python-pytest-asyncio/python-pytest-asyncio.hash create mode 100644 package/python-pytest-asyncio/python-pytest-asyncio.mk create mode 100644 package/python-pytest/Config.in create mode 100644 package/python-pytest/python-pytest.hash create mode 100644 package/python-pytest/python-pytest.mk create mode 100644 package/python-pythran/python-pythran.hash create mode 100644 package/python-pythran/python-pythran.mk create mode 100644 package/python-pytrie/Config.in create mode 100644 package/python-pytrie/python-pytrie.hash create mode 100644 package/python-pytrie/python-pytrie.mk create mode 100644 package/python-pytz/Config.in create mode 100644 package/python-pytz/python-pytz.hash create mode 100644 package/python-pytz/python-pytz.mk create mode 100644 package/python-pyudev/0001-Workaround-finding-libudev-on-systems-without-ldconf.patch create mode 100644 package/python-pyudev/Config.in create mode 100644 package/python-pyudev/python-pyudev.hash create mode 100644 package/python-pyudev/python-pyudev.mk create mode 100644 package/python-pyusb/Config.in create mode 100644 package/python-pyusb/python-pyusb.hash create mode 100644 package/python-pyusb/python-pyusb.mk create mode 100644 package/python-pyxb/Config.in create mode 100644 package/python-pyxb/python-pyxb.hash create mode 100644 package/python-pyxb/python-pyxb.mk create mode 100644 package/python-pyyaml/Config.in create mode 100644 package/python-pyyaml/python-pyyaml.hash create mode 100644 package/python-pyyaml/python-pyyaml.mk create mode 100644 package/python-pyzmq/0001-use-buildroot-zmq-version-instead-of-detect.patch create mode 100644 package/python-pyzmq/Config.in create mode 100644 package/python-pyzmq/python-pyzmq.hash create mode 100644 package/python-pyzmq/python-pyzmq.mk create mode 100644 package/python-qrcode/Config.in create mode 100644 package/python-qrcode/python-qrcode.hash create mode 100644 package/python-qrcode/python-qrcode.mk create mode 100644 package/python-raven/Config.in create mode 100644 package/python-raven/python-raven.hash create mode 100644 package/python-raven/python-raven.mk create mode 100644 package/python-redis/Config.in create mode 100644 package/python-redis/python-redis.hash create mode 100644 package/python-redis/python-redis.mk create mode 100644 package/python-reentry/Config.in create mode 100644 package/python-reentry/python-reentry.hash create mode 100644 package/python-reentry/python-reentry.mk create mode 100644 package/python-regex/Config.in create mode 100644 package/python-regex/python-regex.hash create mode 100644 package/python-regex/python-regex.mk create mode 100644 package/python-remi/Config.in create mode 100644 package/python-remi/python-remi.hash create mode 100644 package/python-remi/python-remi.mk create mode 100644 package/python-request-id/Config.in create mode 100644 package/python-request-id/python-request-id.hash create mode 100644 package/python-request-id/python-request-id.mk create mode 100644 package/python-requests-oauthlib/Config.in create mode 100644 package/python-requests-oauthlib/python-requests-oauthlib.hash create mode 100644 package/python-requests-oauthlib/python-requests-oauthlib.mk create mode 100644 package/python-requests-toolbelt/Config.in create mode 100644 package/python-requests-toolbelt/python-requests-toolbelt.hash create mode 100644 package/python-requests-toolbelt/python-requests-toolbelt.mk create mode 100644 package/python-requests/Config.in create mode 100644 package/python-requests/python-requests.hash create mode 100644 package/python-requests/python-requests.mk create mode 100644 package/python-rfc3987/Config.in create mode 100644 package/python-rfc3987/python-rfc3987.hash create mode 100644 package/python-rfc3987/python-rfc3987.mk create mode 100644 package/python-rpi-gpio/0001-fix-build-with-gcc-10.x.patch create mode 100644 package/python-rpi-gpio/Config.in create mode 100644 package/python-rpi-gpio/python-rpi-gpio.hash create mode 100644 package/python-rpi-gpio/python-rpi-gpio.mk create mode 100644 package/python-rpi-ws281x/Config.in create mode 100644 package/python-rpi-ws281x/python-rpi-ws281x.hash create mode 100644 package/python-rpi-ws281x/python-rpi-ws281x.mk create mode 100644 package/python-rsa/Config.in create mode 100644 package/python-rsa/python-rsa.hash create mode 100644 package/python-rsa/python-rsa.mk create mode 100644 package/python-rtoml/Config.in create mode 100644 package/python-rtoml/python-rtoml.hash create mode 100644 package/python-rtoml/python-rtoml.mk create mode 100644 package/python-rtslib-fb/Config.in create mode 100644 package/python-rtslib-fb/python-rtslib-fb.hash create mode 100644 package/python-rtslib-fb/python-rtslib-fb.mk create mode 100644 package/python-ruamel-yaml/Config.in create mode 100644 package/python-ruamel-yaml/python-ruamel-yaml.hash create mode 100644 package/python-ruamel-yaml/python-ruamel-yaml.mk create mode 100644 package/python-s3transfer/Config.in create mode 100644 package/python-s3transfer/python-s3transfer.hash create mode 100644 package/python-s3transfer/python-s3transfer.mk create mode 100644 package/python-scandir/Config.in create mode 100644 package/python-scandir/python-scandir.hash create mode 100644 package/python-scandir/python-scandir.mk create mode 100644 package/python-scapy/Config.in create mode 100644 package/python-scapy/python-scapy.hash create mode 100644 package/python-scapy/python-scapy.mk create mode 100644 package/python-schedule/Config.in create mode 100644 package/python-schedule/python-schedule.hash create mode 100644 package/python-schedule/python-schedule.mk create mode 100644 package/python-scipy/Config.in create mode 100644 package/python-scipy/python-scipy.hash create mode 100644 package/python-scipy/python-scipy.mk create mode 100644 package/python-sdnotify/Config.in create mode 100644 package/python-sdnotify/python-sdnotify.hash create mode 100644 package/python-sdnotify/python-sdnotify.mk create mode 100644 package/python-secretstorage/Config.in create mode 100644 package/python-secretstorage/python-secretstorage.hash create mode 100644 package/python-secretstorage/python-secretstorage.mk create mode 100644 package/python-see/Config.in create mode 100644 package/python-see/python-see.hash create mode 100644 package/python-see/python-see.mk create mode 100644 package/python-semantic-version/python-semantic-version.hash create mode 100644 package/python-semantic-version/python-semantic-version.mk create mode 100644 package/python-semver/Config.in create mode 100644 package/python-semver/python-semver.hash create mode 100644 package/python-semver/python-semver.mk create mode 100644 package/python-sentry-sdk/Config.in create mode 100644 package/python-sentry-sdk/python-sentry-sdk.hash create mode 100644 package/python-sentry-sdk/python-sentry-sdk.mk create mode 100644 package/python-serial-asyncio/Config.in create mode 100644 package/python-serial-asyncio/python-serial-asyncio.hash create mode 100644 package/python-serial-asyncio/python-serial-asyncio.mk create mode 100644 package/python-serial/Config.in create mode 100644 package/python-serial/python-serial.hash create mode 100644 package/python-serial/python-serial.mk create mode 100644 package/python-service-identity/Config.in create mode 100644 package/python-service-identity/python-service-identity.hash create mode 100644 package/python-service-identity/python-service-identity.mk create mode 100644 package/python-setproctitle/Config.in create mode 100644 package/python-setproctitle/python-setproctitle.hash create mode 100644 package/python-setproctitle/python-setproctitle.mk create mode 100644 package/python-setuptools-rust/python-setuptools-rust.hash create mode 100644 package/python-setuptools-rust/python-setuptools-rust.mk create mode 100644 package/python-setuptools-scm-git-archive/python-setuptools-scm-git-archive.hash create mode 100644 package/python-setuptools-scm-git-archive/python-setuptools-scm-git-archive.mk create mode 100644 package/python-setuptools-scm/python-setuptools-scm.hash create mode 100644 package/python-setuptools-scm/python-setuptools-scm.mk create mode 100644 package/python-setuptools/0001-add-executable.patch create mode 100644 package/python-setuptools/Config.in create mode 100644 package/python-setuptools/python-setuptools.hash create mode 100644 package/python-setuptools/python-setuptools.mk create mode 100644 package/python-sh/Config.in create mode 100644 package/python-sh/python-sh.hash create mode 100644 package/python-sh/python-sh.mk create mode 100644 package/python-shutilwhich/Config.in create mode 100644 package/python-shutilwhich/python-shutilwhich.hash create mode 100644 package/python-shutilwhich/python-shutilwhich.mk create mode 100644 package/python-simpleaudio/Config.in create mode 100644 package/python-simpleaudio/python-simpleaudio.hash create mode 100644 package/python-simpleaudio/python-simpleaudio.mk create mode 100644 package/python-simplegeneric/Config.in create mode 100644 package/python-simplegeneric/python-simplegeneric.hash create mode 100644 package/python-simplegeneric/python-simplegeneric.mk create mode 100644 package/python-simplejson/Config.in create mode 100644 package/python-simplejson/python-simplejson.hash create mode 100644 package/python-simplejson/python-simplejson.mk create mode 100644 package/python-simplelogging/Config.in create mode 100644 package/python-simplelogging/python-simplelogging.hash create mode 100644 package/python-simplelogging/python-simplelogging.mk create mode 100644 package/python-simplesqlite/Config.in create mode 100644 package/python-simplesqlite/python-simplesqlite.hash create mode 100644 package/python-simplesqlite/python-simplesqlite.mk create mode 100644 package/python-sip/0001-remove-join-from-sip-h-files-string.patch create mode 100644 package/python-sip/Config.in create mode 100644 package/python-sip/python-sip.hash create mode 100644 package/python-sip/python-sip.mk create mode 100644 package/python-six/Config.in create mode 100644 package/python-six/Config.in.host create mode 100644 package/python-six/python-six.hash create mode 100644 package/python-six/python-six.mk create mode 100644 package/python-slob/Config.in create mode 100644 package/python-slob/python-slob.hash create mode 100644 package/python-slob/python-slob.mk create mode 100644 package/python-smbus-cffi/Config.in create mode 100644 package/python-smbus-cffi/python-smbus-cffi.hash create mode 100644 package/python-smbus-cffi/python-smbus-cffi.mk create mode 100644 package/python-smmap2/Config.in create mode 100644 package/python-smmap2/python-smmap2.hash create mode 100644 package/python-smmap2/python-smmap2.mk create mode 100644 package/python-snappy/Config.in create mode 100644 package/python-snappy/python-snappy.hash create mode 100644 package/python-snappy/python-snappy.mk create mode 100644 package/python-socketio/Config.in create mode 100644 package/python-socketio/python-socketio.hash create mode 100644 package/python-socketio/python-socketio.mk create mode 100644 package/python-sockjs/Config.in create mode 100644 package/python-sockjs/python-sockjs.hash create mode 100644 package/python-sockjs/python-sockjs.mk create mode 100644 package/python-sortedcontainers/Config.in create mode 100644 package/python-sortedcontainers/python-sortedcontainers.hash create mode 100644 package/python-sortedcontainers/python-sortedcontainers.mk create mode 100644 package/python-soupsieve/Config.in create mode 100644 package/python-soupsieve/python-soupsieve.hash create mode 100644 package/python-soupsieve/python-soupsieve.mk create mode 100644 package/python-spidev/Config.in create mode 100644 package/python-spidev/python-spidev.hash create mode 100644 package/python-spidev/python-spidev.mk create mode 100644 package/python-sqlalchemy/Config.in create mode 100644 package/python-sqlalchemy/python-sqlalchemy.hash create mode 100644 package/python-sqlalchemy/python-sqlalchemy.mk create mode 100644 package/python-sqliteschema/Config.in create mode 100644 package/python-sqliteschema/python-sqliteschema.hash create mode 100644 package/python-sqliteschema/python-sqliteschema.mk create mode 100644 package/python-sqlparse/Config.in create mode 100644 package/python-sqlparse/python-sqlparse.hash create mode 100644 package/python-sqlparse/python-sqlparse.mk create mode 100644 package/python-systemd/Config.in create mode 100644 package/python-systemd/python-systemd.hash create mode 100644 package/python-systemd/python-systemd.mk create mode 100644 package/python-tabledata/Config.in create mode 100644 package/python-tabledata/python-tabledata.hash create mode 100644 package/python-tabledata/python-tabledata.mk create mode 100644 package/python-tempora/Config.in create mode 100644 package/python-tempora/python-tempora.hash create mode 100644 package/python-tempora/python-tempora.mk create mode 100644 package/python-termcolor/Config.in create mode 100644 package/python-termcolor/python-termcolor.hash create mode 100644 package/python-termcolor/python-termcolor.mk create mode 100644 package/python-terminaltables/Config.in create mode 100644 package/python-terminaltables/python-terminaltables.hash create mode 100644 package/python-terminaltables/python-terminaltables.mk create mode 100644 package/python-texttable/Config.in create mode 100644 package/python-texttable/python-texttable.hash create mode 100644 package/python-texttable/python-texttable.mk create mode 100644 package/python-thrift/Config.in create mode 100644 package/python-thrift/python-thrift.hash create mode 100644 package/python-thrift/python-thrift.mk create mode 100644 package/python-tinycss2/Config.in create mode 100644 package/python-tinycss2/python-tinycss2.hash create mode 100644 package/python-tinycss2/python-tinycss2.mk create mode 100644 package/python-tinyrpc/Config.in create mode 100644 package/python-tinyrpc/python-tinyrpc.hash create mode 100644 package/python-tinyrpc/python-tinyrpc.mk create mode 100644 package/python-tomako/Config.in create mode 100644 package/python-tomako/python-tomako.hash create mode 100644 package/python-tomako/python-tomako.mk create mode 100644 package/python-toml/Config.in create mode 100644 package/python-toml/python-toml.hash create mode 100644 package/python-toml/python-toml.mk create mode 100644 package/python-tomli/Config.in create mode 100644 package/python-tomli/python-tomli.hash create mode 100644 package/python-tomli/python-tomli.mk create mode 100644 package/python-tornado/Config.in create mode 100644 package/python-tornado/python-tornado.hash create mode 100644 package/python-tornado/python-tornado.mk create mode 100644 package/python-tqdm/Config.in create mode 100644 package/python-tqdm/python-tqdm.hash create mode 100644 package/python-tqdm/python-tqdm.mk create mode 100644 package/python-traitlets/Config.in create mode 100644 package/python-traitlets/python-traitlets.hash create mode 100644 package/python-traitlets/python-traitlets.mk create mode 100644 package/python-treq/Config.in create mode 100644 package/python-treq/python-treq.hash create mode 100644 package/python-treq/python-treq.mk create mode 100644 package/python-twisted/Config.in create mode 100644 package/python-twisted/python-twisted.hash create mode 100644 package/python-twisted/python-twisted.mk create mode 100644 package/python-txaio/Config.in create mode 100644 package/python-txaio/python-txaio.hash create mode 100644 package/python-txaio/python-txaio.mk create mode 100644 package/python-txdbus/Config.in create mode 100644 package/python-txdbus/python-txdbus.hash create mode 100644 package/python-txdbus/python-txdbus.mk create mode 100644 package/python-txtorcon/Config.in create mode 100644 package/python-txtorcon/python-txtorcon.hash create mode 100644 package/python-txtorcon/python-txtorcon.mk create mode 100644 package/python-typeguard/Config.in create mode 100644 package/python-typeguard/python-typeguard.hash create mode 100644 package/python-typeguard/python-typeguard.mk create mode 100644 package/python-typepy/Config.in create mode 100644 package/python-typepy/python-typepy.hash create mode 100644 package/python-typepy/python-typepy.mk create mode 100644 package/python-typing-extensions/Config.in create mode 100644 package/python-typing-extensions/python-typing-extensions.hash create mode 100644 package/python-typing-extensions/python-typing-extensions.mk create mode 100644 package/python-typing-inspect/Config.in create mode 100644 package/python-typing-inspect/python-typing-inspect.hash create mode 100644 package/python-typing-inspect/python-typing-inspect.mk create mode 100644 package/python-u-msgpack/Config.in create mode 100644 package/python-u-msgpack/python-u-msgpack.hash create mode 100644 package/python-u-msgpack/python-u-msgpack.mk create mode 100644 package/python-ubjson/Config.in create mode 100644 package/python-ubjson/python-ubjson.hash create mode 100644 package/python-ubjson/python-ubjson.mk create mode 100644 package/python-ujson/Config.in create mode 100644 package/python-ujson/python-ujson.hash create mode 100644 package/python-ujson/python-ujson.mk create mode 100644 package/python-unittest-xml-reporting/Config.in create mode 100644 package/python-unittest-xml-reporting/python-unittest-xml-reporting.hash create mode 100644 package/python-unittest-xml-reporting/python-unittest-xml-reporting.mk create mode 100644 package/python-urllib3/Config.in create mode 100644 package/python-urllib3/python-urllib3.hash create mode 100644 package/python-urllib3/python-urllib3.mk create mode 100644 package/python-urwid/Config.in create mode 100644 package/python-urwid/python-urwid.hash create mode 100644 package/python-urwid/python-urwid.mk create mode 100644 package/python-uvloop/Config.in create mode 100644 package/python-uvloop/python-uvloop.hash create mode 100644 package/python-uvloop/python-uvloop.mk create mode 100644 package/python-validators/Config.in create mode 100644 package/python-validators/python-validators.hash create mode 100644 package/python-validators/python-validators.mk create mode 100644 package/python-vcversioner/python-vcversioner.hash create mode 100644 package/python-vcversioner/python-vcversioner.mk create mode 100644 package/python-versiontools/Config.in create mode 100644 package/python-versiontools/python-versiontools.hash create mode 100644 package/python-versiontools/python-versiontools.mk create mode 100644 package/python-visitor/Config.in create mode 100644 package/python-visitor/python-visitor.hash create mode 100644 package/python-visitor/python-visitor.mk create mode 100644 package/python-watchdog/Config.in create mode 100644 package/python-watchdog/python-watchdog.hash create mode 100644 package/python-watchdog/python-watchdog.mk create mode 100644 package/python-wcwidth/Config.in create mode 100644 package/python-wcwidth/python-wcwidth.hash create mode 100644 package/python-wcwidth/python-wcwidth.mk create mode 100644 package/python-weasyprint/Config.in create mode 100644 package/python-weasyprint/python-weasyprint.hash create mode 100644 package/python-weasyprint/python-weasyprint.mk create mode 100644 package/python-web2py/Config.in create mode 100644 package/python-web2py/S51web2py create mode 100644 package/python-web2py/python-web2py.hash create mode 100644 package/python-web2py/python-web2py.mk create mode 100644 package/python-web2py/web2py.service create mode 100644 package/python-webencodings/Config.in create mode 100644 package/python-webencodings/python-webencodings.hash create mode 100644 package/python-webencodings/python-webencodings.mk create mode 100644 package/python-webob/Config.in create mode 100644 package/python-webob/python-webob.hash create mode 100644 package/python-webob/python-webob.mk create mode 100644 package/python-webpy/Config.in create mode 100644 package/python-webpy/python-webpy.hash create mode 100644 package/python-webpy/python-webpy.mk create mode 100644 package/python-websocket-client/Config.in create mode 100644 package/python-websocket-client/python-websocket-client.hash create mode 100644 package/python-websocket-client/python-websocket-client.mk create mode 100644 package/python-websockets/Config.in create mode 100644 package/python-websockets/python-websockets.hash create mode 100644 package/python-websockets/python-websockets.mk create mode 100644 package/python-werkzeug/Config.in create mode 100644 package/python-werkzeug/python-werkzeug.hash create mode 100644 package/python-werkzeug/python-werkzeug.mk create mode 100644 package/python-whoosh/Config.in create mode 100644 package/python-whoosh/python-whoosh.hash create mode 100644 package/python-whoosh/python-whoosh.mk create mode 100644 package/python-wrapt/Config.in create mode 100644 package/python-wrapt/python-wrapt.hash create mode 100644 package/python-wrapt/python-wrapt.mk create mode 100644 package/python-ws4py/0001-Adjust-ws4py-for-Python-3.7-syntax.patch create mode 100644 package/python-ws4py/Config.in create mode 100644 package/python-ws4py/python-ws4py.hash create mode 100644 package/python-ws4py/python-ws4py.mk create mode 100644 package/python-wsaccel/Config.in create mode 100644 package/python-wsaccel/python-wsaccel.hash create mode 100644 package/python-wsaccel/python-wsaccel.mk create mode 100644 package/python-wtforms/Config.in create mode 100644 package/python-wtforms/python-wtforms.hash create mode 100644 package/python-wtforms/python-wtforms.mk create mode 100644 package/python-xlib/Config.in create mode 100644 package/python-xlib/python-xlib.hash create mode 100644 package/python-xlib/python-xlib.mk create mode 100644 package/python-xlrd/Config.in create mode 100644 package/python-xlrd/Config.in.host create mode 100644 package/python-xlrd/python-xlrd.hash create mode 100644 package/python-xlrd/python-xlrd.mk create mode 100644 package/python-xlsxwriter/Config.in create mode 100644 package/python-xlsxwriter/python-xlsxwriter.hash create mode 100644 package/python-xlsxwriter/python-xlsxwriter.mk create mode 100644 package/python-xlutils/Config.in create mode 100644 package/python-xlutils/python-xlutils.hash create mode 100644 package/python-xlutils/python-xlutils.mk create mode 100644 package/python-xlwt/Config.in create mode 100644 package/python-xlwt/python-xlwt.hash create mode 100644 package/python-xlwt/python-xlwt.mk create mode 100644 package/python-xmljson/Config.in create mode 100644 package/python-xmljson/python-xmljson.hash create mode 100644 package/python-xmljson/python-xmljson.mk create mode 100644 package/python-xmltodict/Config.in create mode 100644 package/python-xmltodict/python-xmltodict.hash create mode 100644 package/python-xmltodict/python-xmltodict.mk create mode 100644 package/python-xmodem/Config.in create mode 100644 package/python-xmodem/python-xmodem.hash create mode 100644 package/python-xmodem/python-xmodem.mk create mode 100644 package/python-yarl/Config.in create mode 100644 package/python-yarl/python-yarl.hash create mode 100644 package/python-yarl/python-yarl.mk create mode 100644 package/python-yatl/Config.in create mode 100644 package/python-yatl/python-yatl.hash create mode 100644 package/python-yatl/python-yatl.mk create mode 100644 package/python-zc-lockfile/Config.in create mode 100644 package/python-zc-lockfile/python-zc-lockfile.hash create mode 100644 package/python-zc-lockfile/python-zc-lockfile.mk create mode 100644 package/python-zeroconf/Config.in create mode 100644 package/python-zeroconf/python-zeroconf.hash create mode 100644 package/python-zeroconf/python-zeroconf.mk create mode 100644 package/python-zlmdb/Config.in create mode 100644 package/python-zlmdb/python-zlmdb.hash create mode 100644 package/python-zlmdb/python-zlmdb.mk create mode 100644 package/python-zope-interface/Config.in create mode 100644 package/python-zope-interface/python-zope-interface.hash create mode 100644 package/python-zope-interface/python-zope-interface.mk create mode 100644 package/python-zopfli/Config.in create mode 100644 package/python-zopfli/python-zopfli.hash create mode 100644 package/python-zopfli/python-zopfli.mk create mode 100644 package/python3/0001-Make-the-build-of-pyc-files-conditional.patch create mode 100644 package/python3/0002-Disable-buggy_getaddrinfo-configure-test-when-cross-.patch create mode 100644 package/python3/0003-Add-infrastructure-to-disable-the-build-of-certain-e.patch create mode 100644 package/python3/0004-Adjust-library-header-paths-for-cross-compilation.patch create mode 100644 package/python3/0005-Don-t-look-in-usr-lib-termcap-for-libraries.patch create mode 100644 package/python3/0006-Don-t-add-multiarch-paths.patch create mode 100644 package/python3/0007-Abort-on-failed-module-build.patch create mode 100644 package/python3/0008-Serial-ioctl-workaround.patch create mode 100644 package/python3/0009-Do-not-adjust-the-shebang-of-Python-scripts-for-cros.patch create mode 100644 package/python3/0010-Misc-python-config.sh.in-ensure-sed-invocations-only.patch create mode 100644 package/python3/0011-Add-an-option-to-disable-pydoc.patch create mode 100644 package/python3/0012-Add-an-option-to-disable-lib2to3.patch create mode 100644 package/python3/0013-Add-option-to-disable-the-sqlite3-module.patch create mode 100644 package/python3/0014-Add-an-option-to-disable-the-tk-module.patch create mode 100644 package/python3/0015-Add-an-option-to-disable-the-curses-module.patch create mode 100644 package/python3/0016-Add-an-option-to-disable-expat.patch create mode 100644 package/python3/0017-Add-an-option-to-disable-CJK-codecs.patch create mode 100644 package/python3/0018-Add-an-option-to-disable-NIS.patch create mode 100644 package/python3/0019-Add-an-option-to-disable-unicodedata.patch create mode 100644 package/python3/0020-Add-an-option-to-disable-IDLE.patch create mode 100644 package/python3/0021-Add-an-option-to-disable-decimal.patch create mode 100644 package/python3/0022-Add-an-option-to-disable-the-ossaudiodev-module.patch create mode 100644 package/python3/0023-Add-an-option-to-disable-openssl-support.patch create mode 100644 package/python3/0024-Add-an-option-to-disable-the-readline-module.patch create mode 100644 package/python3/0025-Add-options-to-disable-zlib-bzip2-and-xz-modules.patch create mode 100644 package/python3/0026-python-config.sh-don-t-reassign-prefix.patch create mode 100644 package/python3/0027-Fix-cross-compiling-the-uuid-module.patch create mode 100644 package/python3/0028-Add-an-option-to-disable-uuid-module.patch create mode 100644 package/python3/0029-fix-building-on-older-distributions.patch create mode 100644 package/python3/0030-configure.ac-fixup-CC-print-multiarch-output-for-mus.patch create mode 100644 package/python3/0031-Add-an-option-to-disable-the-berkeleydb-module.patch create mode 100644 package/python3/0032-lib-crypt-uClibc-ng-doesn-t-set-errno-when-encryptio.patch create mode 100644 package/python3/Config.in create mode 100644 package/python3/Config.in.host create mode 100644 package/python3/python3.hash create mode 100644 package/python3/python3.mk create mode 100644 package/qcom-db410c-firmware/Config.in create mode 100644 package/qcom-db410c-firmware/qcom-db410c-firmware.hash create mode 100644 package/qcom-db410c-firmware/qcom-db410c-firmware.mk create mode 100644 package/qdecoder/Config.in create mode 100644 package/qdecoder/qdecoder.hash create mode 100644 package/qdecoder/qdecoder.mk create mode 100644 package/qemu/0001-tests-fp-disable-fp-bench-build-by-default.patch create mode 100644 package/qemu/0002-softmmu-qemu-seccomp.c-add-missing-header-for-CLONE_.patch create mode 100644 package/qemu/0003-linux-user-syscall.c-fix-build-without-RLIMIT_RTTIME.patch create mode 100644 package/qemu/Config.in create mode 100644 package/qemu/Config.in.host create mode 100644 package/qemu/qemu.hash create mode 100644 package/qemu/qemu.mk create mode 100644 package/qextserialport/0001-Create-a-main-include-file-QExtSerialPort.patch create mode 100644 package/qextserialport/0002-Tell-qmake-to-add-a-pkgconfig-file-to-ease-usage-wit.patch create mode 100644 package/qextserialport/Config.in create mode 100644 package/qextserialport/qextserialport.hash create mode 100644 package/qextserialport/qextserialport.mk create mode 100644 package/qhull/Config.in create mode 100644 package/qhull/qhull.hash create mode 100644 package/qhull/qhull.mk create mode 100644 package/qjson/Config.in create mode 100644 package/qjson/qjson.hash create mode 100644 package/qjson/qjson.mk create mode 100644 package/qlibc/Config.in create mode 100644 package/qlibc/qlibc.hash create mode 100644 package/qlibc/qlibc.mk create mode 100644 package/qoriq-cadence-dp-firmware/Config.in create mode 100644 package/qoriq-cadence-dp-firmware/qoriq-cadence-dp-firmware.hash create mode 100644 package/qoriq-cadence-dp-firmware/qoriq-cadence-dp-firmware.mk create mode 100644 package/qoriq-rcw/Config.in.host create mode 100644 package/qoriq-rcw/qoriq-rcw.hash create mode 100644 package/qoriq-rcw/qoriq-rcw.mk create mode 100644 package/qpdf/Config.in create mode 100644 package/qpdf/qpdf.hash create mode 100644 package/qpdf/qpdf.mk create mode 100644 package/qpid-proton/Config.in create mode 100644 package/qpid-proton/qpid-proton.hash create mode 100644 package/qpid-proton/qpid-proton.mk create mode 100644 package/qprint/Config.in create mode 100644 package/qprint/qprint.hash create mode 100644 package/qprint/qprint.mk create mode 100644 package/qt-webkit-kiosk/Config.in create mode 100644 package/qt-webkit-kiosk/qt-webkit-kiosk.hash create mode 100644 package/qt-webkit-kiosk/qt-webkit-kiosk.mk create mode 100644 package/qt5/Config.in create mode 100644 package/qt5/qt5.mk create mode 100644 package/qt5/qt53d/Config.in create mode 100644 package/qt5/qt53d/qt53d.hash create mode 100644 package/qt5/qt53d/qt53d.mk create mode 100644 package/qt5/qt5base/0001-qtbase-Fix-build-error-when-using-EGL.patch create mode 100644 package/qt5/qt5base/0002-double-conversion-enable-for-microblaze.patch create mode 100644 package/qt5/qt5base/0003-double-conversion-enable-for-nios2.patch create mode 100644 package/qt5/qt5base/0004-double-conversion-enable-for-xtensa.patch create mode 100644 package/qt5/qt5base/0005-eglfs-avoid-breaking-compilation-for-obscure-EGLNativeDisplayType-types.patch create mode 100644 package/qt5/qt5base/0006-Fix-build-on-riscv32.patch create mode 100644 package/qt5/qt5base/0007-src-corelib-configure.json-fix-atomicfptr-detection.patch create mode 100644 package/qt5/qt5base/0008-eglconvenience-add-missing-QList-include.patch create mode 100644 package/qt5/qt5base/Config.in create mode 100644 package/qt5/qt5base/qmake.conf.in create mode 100644 package/qt5/qt5base/qplatformdefs.h create mode 100644 package/qt5/qt5base/qt.conf.in create mode 100644 package/qt5/qt5base/qt5base.hash create mode 100644 package/qt5/qt5base/qt5base.mk create mode 100644 package/qt5/qt5charts/Config.in create mode 100644 package/qt5/qt5charts/qt5charts.hash create mode 100644 package/qt5/qt5charts/qt5charts.mk create mode 100644 package/qt5/qt5coap/Config.in create mode 100644 package/qt5/qt5coap/qt5coap.hash create mode 100644 package/qt5/qt5coap/qt5coap.mk create mode 100644 package/qt5/qt5connectivity/Config.in create mode 100644 package/qt5/qt5connectivity/qt5connectivity.hash create mode 100644 package/qt5/qt5connectivity/qt5connectivity.mk create mode 100644 package/qt5/qt5declarative/0001-qsgtexture-fix-debug-build-with-uclibc.patch create mode 100644 package/qt5/qt5declarative/0002-qv4regexp_p-needs-c-limits-include-instead-of-plain-.patch create mode 100644 package/qt5/qt5declarative/Config.in create mode 100644 package/qt5/qt5declarative/qt5declarative.hash create mode 100644 package/qt5/qt5declarative/qt5declarative.mk create mode 100644 package/qt5/qt5doc/Config.in create mode 100644 package/qt5/qt5doc/qt5doc.hash create mode 100644 package/qt5/qt5doc/qt5doc.mk create mode 100644 package/qt5/qt5enginio/0001-Do-not-use-deprecated-QLinkedList.patch create mode 100644 package/qt5/qt5enginio/Config.in create mode 100644 package/qt5/qt5enginio/qt5enginio.hash create mode 100644 package/qt5/qt5enginio/qt5enginio.mk create mode 100644 package/qt5/qt5graphicaleffects/Config.in create mode 100644 package/qt5/qt5graphicaleffects/qt5graphicaleffects.hash create mode 100644 package/qt5/qt5graphicaleffects/qt5graphicaleffects.mk create mode 100644 package/qt5/qt5imageformats/Config.in create mode 100644 package/qt5/qt5imageformats/qt5imageformats.hash create mode 100644 package/qt5/qt5imageformats/qt5imageformats.mk create mode 100644 package/qt5/qt5knx/Config.in create mode 100644 package/qt5/qt5knx/qt5knx.hash create mode 100644 package/qt5/qt5knx/qt5knx.mk create mode 100644 package/qt5/qt5location/0001-3rdparty-mapbox-gl-native-fix-musl-compile-pthread_g.patch create mode 100644 package/qt5/qt5location/Config.in create mode 100644 package/qt5/qt5location/qt5location.hash create mode 100644 package/qt5/qt5location/qt5location.mk create mode 100644 package/qt5/qt5lottie/Config.in create mode 100644 package/qt5/qt5lottie/qt5lottie.hash create mode 100644 package/qt5/qt5lottie/qt5lottie.mk create mode 100644 package/qt5/qt5mqtt/Config.in create mode 100644 package/qt5/qt5mqtt/qt5mqtt.hash create mode 100644 package/qt5/qt5mqtt/qt5mqtt.mk create mode 100644 package/qt5/qt5multimedia/Config.in create mode 100644 package/qt5/qt5multimedia/qt5multimedia.hash create mode 100644 package/qt5/qt5multimedia/qt5multimedia.mk create mode 100644 package/qt5/qt5opcua/Config.in create mode 100644 package/qt5/qt5opcua/qt5opcua.hash create mode 100644 package/qt5/qt5opcua/qt5opcua.mk create mode 100644 package/qt5/qt5quickcontrols/Config.in create mode 100644 package/qt5/qt5quickcontrols/qt5quickcontrols.hash create mode 100644 package/qt5/qt5quickcontrols/qt5quickcontrols.mk create mode 100644 package/qt5/qt5quickcontrols2/Config.in create mode 100644 package/qt5/qt5quickcontrols2/qt5quickcontrols2.hash create mode 100644 package/qt5/qt5quickcontrols2/qt5quickcontrols2.mk create mode 100644 package/qt5/qt5quicktimeline/Config.in create mode 100644 package/qt5/qt5quicktimeline/qt5quicktimeline.hash create mode 100644 package/qt5/qt5quicktimeline/qt5quicktimeline.mk create mode 100644 package/qt5/qt5remoteobjects/Config.in create mode 100644 package/qt5/qt5remoteobjects/qt5remoteobjects.hash create mode 100644 package/qt5/qt5remoteobjects/qt5remoteobjects.mk create mode 100644 package/qt5/qt5script/0001-Detect-32-bits-armv8-a-architecture.patch create mode 100644 package/qt5/qt5script/Config.in create mode 100644 package/qt5/qt5script/qt5script.hash create mode 100644 package/qt5/qt5script/qt5script.mk create mode 100644 package/qt5/qt5scxml/Config.in create mode 100644 package/qt5/qt5scxml/qt5scxml.hash create mode 100644 package/qt5/qt5scxml/qt5scxml.mk create mode 100644 package/qt5/qt5sensors/Config.in create mode 100644 package/qt5/qt5sensors/qt5sensors.hash create mode 100644 package/qt5/qt5sensors/qt5sensors.mk create mode 100644 package/qt5/qt5serialbus/Config.in create mode 100644 package/qt5/qt5serialbus/qt5serialbus.hash create mode 100644 package/qt5/qt5serialbus/qt5serialbus.mk create mode 100644 package/qt5/qt5serialport/Config.in create mode 100644 package/qt5/qt5serialport/qt5serialport.hash create mode 100644 package/qt5/qt5serialport/qt5serialport.mk create mode 100644 package/qt5/qt5svg/Config.in create mode 100644 package/qt5/qt5svg/qt5svg.hash create mode 100644 package/qt5/qt5svg/qt5svg.mk create mode 100644 package/qt5/qt5tools/0001-Disable-designer-tool-fixes-configure-error.patch create mode 100644 package/qt5/qt5tools/Config.in create mode 100644 package/qt5/qt5tools/qt5tools.hash create mode 100644 package/qt5/qt5tools/qt5tools.mk create mode 100644 package/qt5/qt5virtualkeyboard/Config.in create mode 100644 package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.hash create mode 100644 package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk create mode 100644 package/qt5/qt5wayland/0001-Add-missing-define-guards.patch create mode 100644 package/qt5/qt5wayland/Config.in create mode 100644 package/qt5/qt5wayland/qt5wayland.hash create mode 100644 package/qt5/qt5wayland/qt5wayland.mk create mode 100644 package/qt5/qt5webchannel/Config.in create mode 100644 package/qt5/qt5webchannel/qt5webchannel.hash create mode 100644 package/qt5/qt5webchannel/qt5webchannel.mk create mode 100644 package/qt5/qt5webengine-chromium-catapult/Config.in create mode 100644 package/qt5/qt5webengine-chromium-catapult/qt5webengine-chromium-catapult.hash create mode 100644 package/qt5/qt5webengine-chromium-catapult/qt5webengine-chromium-catapult.mk create mode 100644 package/qt5/qt5webengine-chromium/0001-Add-python3-build-support.patch create mode 100644 package/qt5/qt5webengine-chromium/0002-Don-t-rebase-sysroot-path.patch create mode 100644 package/qt5/qt5webengine-chromium/Config.in create mode 100644 package/qt5/qt5webengine-chromium/chromium-latest.inc create mode 100644 package/qt5/qt5webengine-chromium/qt5webengine-chromium.hash create mode 100644 package/qt5/qt5webengine-chromium/qt5webengine-chromium.mk create mode 100644 package/qt5/qt5webengine/0001-gn.pro-don-t-link-statically-with-libstc.patch create mode 100644 package/qt5/qt5webengine/0002-Add-python3-build-support.patch create mode 100644 package/qt5/qt5webengine/Config.in create mode 100644 package/qt5/qt5webengine/chromium-latest.inc create mode 100644 package/qt5/qt5webengine/host-pkg-config.in create mode 100644 package/qt5/qt5webengine/host-python-wrapper.in create mode 100644 package/qt5/qt5webengine/qt5webengine.hash create mode 100644 package/qt5/qt5webengine/qt5webengine.mk create mode 100644 package/qt5/qt5webkit/0001-WinCairo-PlayStation-ICU-68.1-no-longer-exposes-FALS.patch create mode 100644 package/qt5/qt5webkit/0002-Fix-compilation-with-Python-3.9-avoid-passing-encodi.patch create mode 100644 package/qt5/qt5webkit/0003-Let-Bison-generate-the-header-directly-to-fix-build-.patch create mode 100644 package/qt5/qt5webkit/0004-Remove-invalid-g_object-declarations-to-fix-build-wi.patch create mode 100644 package/qt5/qt5webkit/0005-Add-support-for-ARC-processors.patch create mode 100644 package/qt5/qt5webkit/0006-Warnings-due-to-AppSinkCallbacks-struct-growth-https.patch create mode 100644 package/qt5/qt5webkit/Config.in create mode 100644 package/qt5/qt5webkit/qt5webkit.hash create mode 100644 package/qt5/qt5webkit/qt5webkit.mk create mode 100644 package/qt5/qt5websockets/Config.in create mode 100644 package/qt5/qt5websockets/qt5websockets.hash create mode 100644 package/qt5/qt5websockets/qt5websockets.mk create mode 100644 package/qt5/qt5webview/Config.in create mode 100644 package/qt5/qt5webview/qt5webview.hash create mode 100644 package/qt5/qt5webview/qt5webview.mk create mode 100644 package/qt5/qt5x11extras/Config.in create mode 100644 package/qt5/qt5x11extras/qt5x11extras.hash create mode 100644 package/qt5/qt5x11extras/qt5x11extras.mk create mode 100644 package/qt5/qt5xmlpatterns/Config.in create mode 100644 package/qt5/qt5xmlpatterns/qt5xmlpatterns.hash create mode 100644 package/qt5/qt5xmlpatterns/qt5xmlpatterns.mk create mode 100644 package/qt5cinex/0001-Fix-execution-problem-with-Qt5.3.patch create mode 100755 package/qt5cinex/CinematicExperience-demo create mode 100644 package/qt5cinex/Config.in create mode 100644 package/qt5cinex/qt5cinex.hash create mode 100644 package/qt5cinex/qt5cinex.mk create mode 100644 package/qt6/Config.in create mode 100644 package/qt6/qt6.mk create mode 100644 package/qt6/qt6base/0001-src-corelib-global-qsimd_p.h-fix-build-on-ARM-v7-due.patch create mode 100644 package/qt6/qt6base/Config.in create mode 100644 package/qt6/qt6base/qt6base.hash create mode 100644 package/qt6/qt6base/qt6base.mk create mode 100644 package/quagga/0001-fix-ipctl-forwarding.patch create mode 100644 package/quagga/0002-lib-prefix.h-fix-build-with-gcc-10.patch create mode 100644 package/quagga/0003-Fix-build-with-gcc-10.patch create mode 100644 package/quagga/Config.in create mode 100644 package/quagga/quagga.hash create mode 100644 package/quagga/quagga.mk create mode 100644 package/quagga/quagga@.service create mode 100644 package/quagga/quagga_tmpfiles.conf create mode 100644 package/quazip/Config.in create mode 100644 package/quazip/quazip.hash create mode 100644 package/quazip/quazip.mk create mode 100644 package/quickjs/Config.in create mode 100644 package/quickjs/quickjs.hash create mode 100644 package/quickjs/quickjs.mk create mode 100644 package/quota/0001-quota-Use-realloc-3-instead-of-reallocarray-3.patch create mode 100644 package/quota/Config.in create mode 100644 package/quota/quota.hash create mode 100644 package/quota/quota.mk create mode 100644 package/quotatool/0001-fix-missing-__P-definition-for-musl-compile.patch create mode 100644 package/quotatool/Config.in create mode 100644 package/quotatool/quotatool.hash create mode 100644 package/quotatool/quotatool.mk create mode 100644 package/qwt/Config.in create mode 100644 package/qwt/qwt.hash create mode 100644 package/qwt/qwt.mk create mode 100644 package/rabbitmq-c/Config.in create mode 100644 package/rabbitmq-c/rabbitmq-c.hash create mode 100644 package/rabbitmq-c/rabbitmq-c.mk create mode 100644 package/rabbitmq-server/Config.in create mode 100644 package/rabbitmq-server/S50rabbitmq-server create mode 100644 package/rabbitmq-server/rabbitmq-server.hash create mode 100644 package/rabbitmq-server/rabbitmq-server.mk create mode 100644 package/rabbitmq-server/rabbitmq-server.service create mode 100644 package/racehound/0001-Fix-module-install-path-lib-instead-of-usr-lib-prefi.patch create mode 100644 package/racehound/Config.in create mode 100644 package/racehound/racehound.hash create mode 100644 package/racehound/racehound.mk create mode 100644 package/radvd/50-radvd.preset create mode 100644 package/radvd/Config.in create mode 100644 package/radvd/S50radvd create mode 100644 package/radvd/radvd.hash create mode 100644 package/radvd/radvd.mk create mode 100644 package/ragel/ragel.hash create mode 100644 package/ragel/ragel.mk create mode 100644 package/ramsmp/Config.in create mode 100644 package/ramsmp/Makefile create mode 100644 package/ramsmp/ramsmp.hash create mode 100644 package/ramsmp/ramsmp.mk create mode 100644 package/ramspeed/Config.in create mode 100644 package/ramspeed/Makefile create mode 100644 package/ramspeed/ramspeed.hash create mode 100644 package/ramspeed/ramspeed.mk create mode 100644 package/ranger/0001-colorscheme-check-for-compiled-python-files.patch create mode 100644 package/ranger/Config.in create mode 100644 package/ranger/ranger.hash create mode 100644 package/ranger/ranger.mk create mode 100644 package/rapidjson/Config.in create mode 100644 package/rapidjson/rapidjson.hash create mode 100644 package/rapidjson/rapidjson.mk create mode 100644 package/rapidxml/0001-ensure-internal-print-operations-are-declared-before.patch create mode 100644 package/rapidxml/Config.in create mode 100644 package/rapidxml/rapidxml.hash create mode 100644 package/rapidxml/rapidxml.mk create mode 100644 package/raptor/0001-configure.ac-remove-conditional-lib-inclusion.patch create mode 100644 package/raptor/0002-Calcualte-max-nspace-declarations-correctly-for-XML-.patch create mode 100644 package/raptor/0003-XML-Writer-compare-namespace-declarations-correctly.patch create mode 100644 package/raptor/Config.in create mode 100644 package/raptor/raptor.hash create mode 100644 package/raptor/raptor.mk create mode 100644 package/raspberrypi-usbboot/0001-Makefile-allow-passing-CFLAGS-LDFLAGS.patch create mode 100644 package/raspberrypi-usbboot/Config.in.host create mode 100644 package/raspberrypi-usbboot/raspberrypi-usbboot.hash create mode 100644 package/raspberrypi-usbboot/raspberrypi-usbboot.mk create mode 100644 package/raspi-gpio/Config.in create mode 100644 package/raspi-gpio/raspi-gpio.hash create mode 100644 package/raspi-gpio/raspi-gpio.mk create mode 100644 package/ratpoison/Config.in create mode 100644 package/ratpoison/ratpoison.hash create mode 100644 package/ratpoison/ratpoison.mk create mode 100644 package/rauc/Config.in create mode 100644 package/rauc/Config.in.host create mode 100644 package/rauc/rauc.hash create mode 100644 package/rauc/rauc.mk create mode 100644 package/rcw-smarc-sal28/Config.in create mode 100644 package/rcw-smarc-sal28/rcw-smarc-sal28.hash create mode 100644 package/rcw-smarc-sal28/rcw-smarc-sal28.mk create mode 100644 package/rdesktop/0001-8bit-colors.patch create mode 100644 package/rdesktop/Config.in create mode 100644 package/rdesktop/rdesktop.hash create mode 100644 package/rdesktop/rdesktop.mk create mode 100644 package/re2/Config.in create mode 100644 package/re2/re2.hash create mode 100644 package/re2/re2.mk create mode 100644 package/read-edid/0001-Fix-install-file-list.patch create mode 100644 package/read-edid/0002-Fix-compiler-check.patch create mode 100644 package/read-edid/0003-fix-build-with-gcc-10.patch create mode 100644 package/read-edid/Config.in create mode 100644 package/read-edid/read-edid.hash create mode 100644 package/read-edid/read-edid.mk create mode 100644 package/readline/0001-curses-link.patch create mode 100644 package/readline/Config.in create mode 100644 package/readline/inputrc create mode 100644 package/readline/readline.hash create mode 100644 package/readline/readline.mk create mode 100644 package/reaver/Config.in create mode 100644 package/reaver/reaver.hash create mode 100644 package/reaver/reaver.mk create mode 100644 package/redir/Config.in create mode 100644 package/redir/redir.hash create mode 100644 package/redir/redir.mk create mode 100644 package/redis/0001-uclibc.patch create mode 100644 package/redis/0002-largefile-conditional-define.patch create mode 100644 package/redis/0003-redis.conf-adjust-defauts-for-buildroot.patch create mode 100644 package/redis/Config.in create mode 100644 package/redis/S50redis create mode 100644 package/redis/redis.hash create mode 100644 package/redis/redis.mk create mode 100644 package/redis/redis.service create mode 100644 package/refpolicy/Config.in create mode 100644 package/refpolicy/config create mode 100644 package/refpolicy/refpolicy.hash create mode 100644 package/refpolicy/refpolicy.mk create mode 100644 package/resiprocate/0001-Fix-some-issue-compiling-with-Visual-Studio.patch create mode 100644 package/resiprocate/Config.in create mode 100644 package/resiprocate/resiprocate.hash create mode 100644 package/resiprocate/resiprocate.mk create mode 100644 package/restclient-cpp/Config.in create mode 100644 package/restclient-cpp/restclient-cpp.hash create mode 100644 package/restclient-cpp/restclient-cpp.mk create mode 100644 package/restorecond/Config.in create mode 100644 package/restorecond/S02restorecond create mode 100644 package/restorecond/restorecond.hash create mode 100644 package/restorecond/restorecond.mk create mode 100644 package/rhash/Config.in create mode 100644 package/rhash/rhash.hash create mode 100644 package/rhash/rhash.mk create mode 100644 package/riemann-c-client/Config.in create mode 100644 package/riemann-c-client/riemann-c-client.hash create mode 100644 package/riemann-c-client/riemann-c-client.mk create mode 100644 package/rings/Config.in create mode 100644 package/rings/rings.hash create mode 100644 package/rings/rings.mk create mode 100644 package/ripgrep/0001-puts-jemalloc-allocator-behind-a-cargo-feature-flag.patch create mode 100644 package/ripgrep/Config.in create mode 100644 package/ripgrep/ripgrep.hash create mode 100644 package/ripgrep/ripgrep.mk create mode 100644 package/riscv-isa-sim/0001-riscv-disable-precompiled-headers.patch create mode 100644 package/riscv-isa-sim/Config.in.host create mode 100644 package/riscv-isa-sim/riscv-isa-sim.hash create mode 100644 package/riscv-isa-sim/riscv-isa-sim.mk create mode 100644 package/riscv64-elf-toolchain/riscv64-elf-toolchain.mk create mode 100644 package/rng-tools/0001-configure.ac-fix-build-without-sys-auxv.h.patch create mode 100644 package/rng-tools/Config.in create mode 100644 package/rng-tools/S21rngd create mode 100644 package/rng-tools/rng-tools.hash create mode 100644 package/rng-tools/rng-tools.mk create mode 100644 package/rng-tools/rngd.service create mode 100644 package/rockchip-mali/Config.in create mode 100644 package/rockchip-mali/rockchip-mali.hash create mode 100644 package/rockchip-mali/rockchip-mali.mk create mode 100644 package/rocksdb/0001-build_tools-build_detect_platform-fix-C-tests.patch create mode 100644 package/rocksdb/Config.in create mode 100644 package/rocksdb/rocksdb.hash create mode 100644 package/rocksdb/rocksdb.mk create mode 100644 package/rp-pppoe/0001-src-pppoe.h-fix-build-with-musl-libc.patch create mode 100644 package/rp-pppoe/Config.in create mode 100644 package/rp-pppoe/rp-pppoe.hash create mode 100644 package/rp-pppoe/rp-pppoe.mk create mode 100644 package/rpcbind/0001-Remove-yellow-pages-support.patch create mode 100644 package/rpcbind/Config.in create mode 100644 package/rpcbind/S30rpcbind create mode 100644 package/rpcbind/rpcbind.hash create mode 100644 package/rpcbind/rpcbind.mk create mode 100644 package/rpi-firmware/Config.in create mode 100644 package/rpi-firmware/cmdline.txt create mode 100644 package/rpi-firmware/rpi-firmware.hash create mode 100644 package/rpi-firmware/rpi-firmware.mk create mode 100644 package/rpi-rgb-led-matrix/Config.in create mode 100644 package/rpi-rgb-led-matrix/rpi-rgb-led-matrix.hash create mode 100644 package/rpi-rgb-led-matrix/rpi-rgb-led-matrix.mk create mode 100644 package/rpi-userland/0001-Add-.pc-files-for-the-OpenGLESv2-EGL-and-bcm_host-li.patch create mode 100644 package/rpi-userland/0002-interface-remove-faulty-assert-to-make-weston-happy-.patch create mode 100644 package/rpi-userland/0003-Disable-Werror-everywhere.patch create mode 100644 package/rpi-userland/0004-host-applications-disable-missing-applications.patch create mode 100644 package/rpi-userland/0005-dtmerge-add-missing-include-for-va_list.patch create mode 100644 package/rpi-userland/0006-interface-vcos-pthreads-CMakeLists.txt-fix-build-wit.patch create mode 100644 package/rpi-userland/0007-GLES2-gl2ext.h-add-GLint64-GLuint64-and-GLsync-typed.patch create mode 100644 package/rpi-userland/Config.in create mode 100644 package/rpi-userland/rpi-userland.hash create mode 100644 package/rpi-userland/rpi-userland.mk create mode 100644 package/rpm/Config.in create mode 100644 package/rpm/rpm.hash create mode 100644 package/rpm/rpm.mk create mode 100644 package/rrdtool/Config.in create mode 100644 package/rrdtool/rrdtool.hash create mode 100644 package/rrdtool/rrdtool.mk create mode 100644 package/rs485conf/Config.in create mode 100644 package/rs485conf/rs485conf.hash create mode 100644 package/rs485conf/rs485conf.mk create mode 100644 package/rsh-redone/Config.in create mode 100644 package/rsh-redone/rsh-redone.hash create mode 100644 package/rsh-redone/rsh-redone.mk create mode 100644 package/rsync/Config.in create mode 100644 package/rsync/rsync.hash create mode 100644 package/rsync/rsync.mk create mode 100644 package/rsyslog/Config.in create mode 100644 package/rsyslog/S01rsyslogd create mode 100644 package/rsyslog/rsyslog.hash create mode 100644 package/rsyslog/rsyslog.mk create mode 100644 package/rsyslog/rsyslog.service create mode 100644 package/rt-tests/0001-Fix-a-build-issue-with-uClibc-ng.patch create mode 100644 package/rt-tests/0002-Makefile-drop-explicit-undefine-PYLIB-for-compatibil.patch create mode 100644 package/rt-tests/Config.in create mode 100644 package/rt-tests/rt-tests.hash create mode 100644 package/rt-tests/rt-tests.mk create mode 100644 package/rtai/Config.in create mode 100644 package/rtai/rtai.hash create mode 100644 package/rtai/rtai.mk create mode 100644 package/rtc-tools/Config.in create mode 100644 package/rtc-tools/rtc-tools.hash create mode 100644 package/rtc-tools/rtc-tools.mk create mode 100644 package/rtl8188eu/Config.in create mode 100644 package/rtl8188eu/rtl8188eu.hash create mode 100644 package/rtl8188eu/rtl8188eu.mk create mode 100644 package/rtl8189es/Config.in create mode 100644 package/rtl8189es/rtl8189es.hash create mode 100644 package/rtl8189es/rtl8189es.mk create mode 100644 package/rtl8189fs/0001-Makefile-remove-default-endianness.patch create mode 100644 package/rtl8189fs/Config.in create mode 100644 package/rtl8189fs/rtl8189fs.hash create mode 100644 package/rtl8189fs/rtl8189fs.mk create mode 100644 package/rtl8723bu/Config.in create mode 100644 package/rtl8723bu/rtl8723bu.hash create mode 100644 package/rtl8723bu/rtl8723bu.mk create mode 100644 package/rtl8723ds/Config.in create mode 100644 package/rtl8723ds/rtl8723ds.hash create mode 100644 package/rtl8723ds/rtl8723ds.mk create mode 100644 package/rtl8812au-aircrack-ng/Config.in create mode 100644 package/rtl8812au-aircrack-ng/rtl8812au-aircrack-ng.hash create mode 100644 package/rtl8812au-aircrack-ng/rtl8812au-aircrack-ng.mk create mode 100644 package/rtl8821au/0001-Fix-implicit-fallthrough-comments-for-kernel-5.3.patch create mode 100644 package/rtl8821au/0002-Fix-kernel-5.3-driver-crashes-from-aircrack-ng-rtl88.patch create mode 100644 package/rtl8821au/0003-Fix-using-sprintf-for-extending-string-which-causes-.patch create mode 100644 package/rtl8821au/0004-rename-sha256_state-to-rtl_sha256_state-to-avoid-nam.patch create mode 100644 package/rtl8821au/0005-disable-rtw_mgmt_frame_register-on-kernel-5.8.0.patch create mode 100644 package/rtl8821au/0006-rtw_proc-convert-file_operations-to-proc_ops-for-5.6.patch create mode 100644 package/rtl8821au/Config.in create mode 100644 package/rtl8821au/rtl8821au.hash create mode 100644 package/rtl8821au/rtl8821au.mk create mode 100644 package/rtl_433/0001-minor-Fix-a-compiler-flag-needs-GCC-7.patch create mode 100644 package/rtl_433/0002-src-optparse.c-fix-build-without-__has_attribute.patch create mode 100644 package/rtl_433/0003-minor-Fix-overflow-in-Clipsal-CMR113-and-Somfy-IOHC.patch create mode 100644 package/rtl_433/0004-Fix-overflow-in-Acurite-00275rm.patch create mode 100644 package/rtl_433/Config.in create mode 100644 package/rtl_433/rtl_433.hash create mode 100644 package/rtl_433/rtl_433.mk create mode 100644 package/rtmpdump/0001-include-limits.h.patch create mode 100644 package/rtmpdump/Config.in create mode 100644 package/rtmpdump/rtmpdump.hash create mode 100644 package/rtmpdump/rtmpdump.mk create mode 100644 package/rtorrent/0001-Added--disable-execinfo-option-to-configure.patch create mode 100644 package/rtorrent/Config.in create mode 100644 package/rtorrent/rtorrent.hash create mode 100644 package/rtorrent/rtorrent.mk create mode 100644 package/rtptools/Config.in create mode 100644 package/rtptools/rtptools.hash create mode 100644 package/rtptools/rtptools.mk create mode 100644 package/rtty/Config.in create mode 100644 package/rtty/rtty.hash create mode 100644 package/rtty/rtty.mk create mode 100644 package/rubix/0001-dont-use-legacy-functions.patch create mode 100644 package/rubix/0002-misc-fixes.patch create mode 100644 package/rubix/Config.in create mode 100644 package/rubix/rubix.hash create mode 100644 package/rubix/rubix.mk create mode 100644 package/ruby/0001-Fix-build-with-LibreSSL-3-5.patch create mode 100644 package/ruby/Config.in create mode 100644 package/ruby/ruby.hash create mode 100644 package/ruby/ruby.mk create mode 100644 package/runc/Config.in create mode 100644 package/runc/Config.in.host create mode 100644 package/runc/runc.hash create mode 100644 package/runc/runc.mk create mode 100644 package/rust-bin/rust-bin.hash create mode 100644 package/rust-bin/rust-bin.mk create mode 100644 package/rust/rust.hash create mode 100644 package/rust/rust.mk create mode 100644 package/rustc/Config.in.host create mode 100644 package/rustc/rustc.mk create mode 100644 package/rwmem/Config.in create mode 100644 package/rwmem/rwmem.hash create mode 100644 package/rwmem/rwmem.mk create mode 100644 package/rygel/0001-build-Add-man_pages-build-options.patch create mode 100644 package/rygel/0002-meson.build-fix-g_ir_compiler-calls.patch create mode 100644 package/rygel/Config.in create mode 100644 package/rygel/S99rygel create mode 100644 package/rygel/rygel.hash create mode 100644 package/rygel/rygel.mk create mode 100644 package/rygel/rygel.service create mode 100644 package/s390-tools/Config.in create mode 100644 package/s390-tools/s390-tools.hash create mode 100644 package/s390-tools/s390-tools.mk create mode 100644 package/s6-dns/Config.in create mode 100644 package/s6-dns/s6-dns.hash create mode 100644 package/s6-dns/s6-dns.mk create mode 100644 package/s6-linux-init/0001-configure-add-D_GNU_SOURCE.patch create mode 100644 package/s6-linux-init/Config.in create mode 100644 package/s6-linux-init/s6-linux-init.hash create mode 100644 package/s6-linux-init/s6-linux-init.mk create mode 100644 package/s6-linux-utils/Config.in create mode 100644 package/s6-linux-utils/s6-linux-utils.hash create mode 100644 package/s6-linux-utils/s6-linux-utils.mk create mode 100644 package/s6-networking/Config.in create mode 100644 package/s6-networking/s6-networking.hash create mode 100644 package/s6-networking/s6-networking.mk create mode 100644 package/s6-portable-utils/Config.in create mode 100644 package/s6-portable-utils/s6-portable-utils.hash create mode 100644 package/s6-portable-utils/s6-portable-utils.mk create mode 100644 package/s6-rc/Config.in create mode 100644 package/s6-rc/Config.in.host create mode 100644 package/s6-rc/s6-rc.hash create mode 100644 package/s6-rc/s6-rc.mk create mode 100644 package/s6/Config.in create mode 100644 package/s6/s6.hash create mode 100644 package/s6/s6.mk create mode 100644 package/safeclib/0001-fix-armv7-asm-inline-error-GH-115.patch create mode 100644 package/safeclib/Config.in create mode 100644 package/safeclib/safeclib.hash create mode 100644 package/safeclib/safeclib.mk create mode 100644 package/sam-ba/Config.in.host create mode 100644 package/sam-ba/sam-ba.hash create mode 100644 package/sam-ba/sam-ba.mk create mode 100644 package/samba4/0001-libreplace-disable-libbsd-support.patch create mode 100644 package/samba4/0002-build-find-pre-built-heimdal-build-tools-in-case-of-.patch create mode 100644 package/samba4/0003-ldap_message_test.c-include-stdint.h-before-cmoka.h.patch create mode 100644 package/samba4/0004-lib-util-Add-signal.h-include.patch create mode 100644 package/samba4/Config.in create mode 100644 package/samba4/S91smb create mode 100644 package/samba4/samba4-cache.txt create mode 100644 package/samba4/samba4.hash create mode 100644 package/samba4/samba4.mk create mode 100644 package/sane-backends/0001-sane_backend-add-missing-config.h.patch create mode 100644 package/sane-backends/0002-genesys-fix-gcc-4.8-compile.patch create mode 100644 package/sane-backends/0003-genesys-use-usleep-instead-of-std-this_thread-sleep_.patch create mode 100644 package/sane-backends/0004-backend-microtek-fix-uclibc-compile-include-stdarg.h.patch create mode 100644 package/sane-backends/0005-backend-sm3600-scanutil-fix-uclibc-compile-include-s.patch create mode 100644 package/sane-backends/Config.in create mode 100644 package/sane-backends/sane-backends.hash create mode 100644 package/sane-backends/sane-backends.mk create mode 100644 package/sane-backends/saned.socket create mode 100644 package/sane-backends/saned@.service create mode 100644 package/sbc/Config.in create mode 100644 package/sbc/sbc.hash create mode 100644 package/sbc/sbc.mk create mode 100644 package/sconeserver/Config.in create mode 100644 package/sconeserver/sconeserver.hash create mode 100644 package/sconeserver/sconeserver.mk create mode 100644 package/scons/scons.hash create mode 100644 package/scons/scons.mk create mode 100644 package/screen/0001-no-memcpy-fallback.patch create mode 100644 package/screen/0002-install-no-backup-binary.patch create mode 100644 package/screen/0003-install-always-chmod.patch create mode 100644 package/screen/0004-install-nonversioned-binary.patch create mode 100644 package/screen/0005-rename-sched_h.patch create mode 100644 package/screen/0006-comm-h-now-depends-on-term-h.patch create mode 100644 package/screen/0007-comm.h-needed-for-list_-display-generic-.o.patch create mode 100644 package/screen/Config.in create mode 100644 package/screen/screen.hash create mode 100644 package/screen/screen.mk create mode 100644 package/screenfetch/Config.in create mode 100644 package/screenfetch/screenfetch.hash create mode 100644 package/screenfetch/screenfetch.mk create mode 100644 package/scrub/0001-configure-ac-make-sure-m4-macros-are-included-in-the-build.patch create mode 100644 package/scrub/Config.in create mode 100644 package/scrub/scrub.hash create mode 100644 package/scrub/scrub.mk create mode 100644 package/scrypt/Config.in create mode 100644 package/scrypt/scrypt.hash create mode 100644 package/scrypt/scrypt.mk create mode 100644 package/sdbus-cpp/Config.in create mode 100644 package/sdbus-cpp/sdbus-cpp.hash create mode 100644 package/sdbus-cpp/sdbus-cpp.mk create mode 100644 package/sdbusplus/Config.in create mode 100644 package/sdbusplus/Config.in.host create mode 100644 package/sdbusplus/sdbusplus.hash create mode 100644 package/sdbusplus/sdbusplus.mk create mode 100644 package/sdl/0001-use-correct-directfb-config.patch create mode 100644 package/sdl/0002-fix-compilation-with-libx11.patch create mode 100644 package/sdl/Config.in create mode 100644 package/sdl/sdl.hash create mode 100644 package/sdl/sdl.mk create mode 100644 package/sdl2/Config.in create mode 100644 package/sdl2/sdl2.hash create mode 100644 package/sdl2/sdl2.mk create mode 100644 package/sdl2_gfx/Config.in create mode 100644 package/sdl2_gfx/sdl2_gfx.hash create mode 100644 package/sdl2_gfx/sdl2_gfx.mk create mode 100644 package/sdl2_image/Config.in create mode 100644 package/sdl2_image/sdl2_image.hash create mode 100644 package/sdl2_image/sdl2_image.mk create mode 100644 package/sdl2_mixer/Config.in create mode 100644 package/sdl2_mixer/sdl2_mixer.hash create mode 100644 package/sdl2_mixer/sdl2_mixer.mk create mode 100644 package/sdl2_net/Config.in create mode 100644 package/sdl2_net/sdl2_net.hash create mode 100644 package/sdl2_net/sdl2_net.mk create mode 100644 package/sdl2_ttf/Config.in create mode 100644 package/sdl2_ttf/sdl2_ttf.hash create mode 100644 package/sdl2_ttf/sdl2_ttf.mk create mode 100644 package/sdl_gfx/Config.in create mode 100644 package/sdl_gfx/sdl_gfx.hash create mode 100644 package/sdl_gfx/sdl_gfx.mk create mode 100644 package/sdl_image/Config.in create mode 100644 package/sdl_image/sdl_image.hash create mode 100644 package/sdl_image/sdl_image.mk create mode 100644 package/sdl_mixer/0001-Add-Libs.private-field-to-pkg-config-file.patch create mode 100644 package/sdl_mixer/0002-configure__set_macro_directory.patch create mode 100644 package/sdl_mixer/0003-configure.ac-fix-static-linking-with-tremor.patch create mode 100644 package/sdl_mixer/Config.in create mode 100644 package/sdl_mixer/sdl_mixer.hash create mode 100644 package/sdl_mixer/sdl_mixer.mk create mode 100644 package/sdl_net/Config.in create mode 100644 package/sdl_net/sdl_net.hash create mode 100644 package/sdl_net/sdl_net.mk create mode 100644 package/sdl_sound/0001-fix-constness.patch create mode 100644 package/sdl_sound/0002-remove-werror.patch create mode 100644 package/sdl_sound/0003-renamed-physfs-export.patch create mode 100644 package/sdl_sound/Config.in create mode 100644 package/sdl_sound/sdl_sound.hash create mode 100644 package/sdl_sound/sdl_sound.mk create mode 100644 package/sdl_ttf/Config.in create mode 100644 package/sdl_ttf/sdl_ttf.hash create mode 100644 package/sdl_ttf/sdl_ttf.mk create mode 100644 package/sdparm/Config.in create mode 100644 package/sdparm/sdparm.hash create mode 100644 package/sdparm/sdparm.mk create mode 100644 package/seatd/Config.in create mode 100755 package/seatd/S70seatd create mode 100644 package/seatd/seatd.hash create mode 100644 package/seatd/seatd.mk create mode 100644 package/sed/Config.in create mode 100644 package/sed/sed.hash create mode 100644 package/sed/sed.mk create mode 100644 package/sedutil/0001-Common-log.h-time-2-needs-time.h.patch create mode 100644 package/sedutil/Config.in create mode 100644 package/sedutil/sedutil.hash create mode 100644 package/sedutil/sedutil.mk create mode 100644 package/selinux-python/Config.in create mode 100644 package/selinux-python/selinux-python.hash create mode 100644 package/selinux-python/selinux-python.mk create mode 100644 package/semodule-utils/Config.in create mode 100644 package/semodule-utils/semodule-utils.hash create mode 100644 package/semodule-utils/semodule-utils.mk create mode 100644 package/sentry-cli/Config.in.host create mode 100644 package/sentry-cli/sentry-cli.hash create mode 100644 package/sentry-cli/sentry-cli.mk create mode 100644 package/sentry-native/0001-sentry.h-include-ucontext.h.patch create mode 100644 package/sentry-native/Config.in create mode 100644 package/sentry-native/sentry-native.hash create mode 100644 package/sentry-native/sentry-native.mk create mode 100644 package/ser2net/Config.in create mode 100644 package/ser2net/S50ser2net create mode 100644 package/ser2net/ser2net.hash create mode 100644 package/ser2net/ser2net.mk create mode 100644 package/serd/Config.in create mode 100644 package/serd/serd.hash create mode 100644 package/serd/serd.mk create mode 100644 package/setools/0001-Do-not-export-use-setools.InfoFlowAnalysis-and-setoo.patch create mode 100644 package/setools/Config.in create mode 100644 package/setools/setools.hash create mode 100644 package/setools/setools.mk create mode 100644 package/setserial/0001-build-system-fix.patch create mode 100644 package/setserial/0002-tiocghayesesp-build-fix.patch create mode 100644 package/setserial/Config.in create mode 100644 package/setserial/setserial.hash create mode 100644 package/setserial/setserial.mk create mode 100644 package/sg3_utils/0001-src-sg_dd.c-fix-musl-build.patch create mode 100644 package/sg3_utils/0002-configure.ac-fix-uclibc-ng-build.patch create mode 100644 package/sg3_utils/Config.in create mode 100644 package/sg3_utils/sg3_utils.hash create mode 100644 package/sg3_utils/sg3_utils.mk create mode 100644 package/shadowsocks-libev/0001-configure.ac-use-pkg-config-to-find-netfilter_conntr.patch create mode 100644 package/shadowsocks-libev/0002-fix-maybe-uninitialized-errors.patch create mode 100644 package/shadowsocks-libev/0003-lib-Makefile.am-remove-static-from-LDFLAGS.patch create mode 100644 package/shadowsocks-libev/Config.in create mode 100644 package/shadowsocks-libev/shadowsocks-libev.hash create mode 100644 package/shadowsocks-libev/shadowsocks-libev.mk create mode 100644 package/shairport-sync/0001-configure.ac-find-sndfile-through-pkg-config.patch create mode 100644 package/shairport-sync/Config.in create mode 100644 package/shairport-sync/S99shairport-sync create mode 100644 package/shairport-sync/shairport-sync.hash create mode 100644 package/shairport-sync/shairport-sync.mk create mode 100644 package/shapelib/Config.in create mode 100644 package/shapelib/shapelib.hash create mode 100644 package/shapelib/shapelib.mk create mode 100644 package/shared-mime-info/0001-Remove-incorrect-dependency-from-install-data-hook.patch create mode 100644 package/shared-mime-info/Config.in create mode 100644 package/shared-mime-info/shared-mime-info.hash create mode 100644 package/shared-mime-info/shared-mime-info.mk create mode 100644 package/shellinabox/0001-Makefile-disable-always-building-statically.patch create mode 100644 package/shellinabox/0002-CVE-2018-16789-fix-for-broken-multipart-form-data.patch create mode 100644 package/shellinabox/Config.in create mode 100644 package/shellinabox/shellinabox.hash create mode 100644 package/shellinabox/shellinabox.mk create mode 100644 package/sigrok-cli/Config.in create mode 100644 package/sigrok-cli/sigrok-cli.hash create mode 100644 package/sigrok-cli/sigrok-cli.mk create mode 100644 package/simple-mail/Config.in create mode 100644 package/simple-mail/simple-mail.hash create mode 100644 package/simple-mail/simple-mail.mk create mode 100644 package/siproxd/Config.in create mode 100644 package/siproxd/siproxd.hash create mode 100644 package/siproxd/siproxd.mk create mode 100644 package/sispmctl/Config.in create mode 100644 package/sispmctl/sispmctl.hash create mode 100644 package/sispmctl/sispmctl.mk create mode 100644 package/skalibs/Config.in create mode 100644 package/skalibs/skalibs.hash create mode 100644 package/skalibs/skalibs.mk create mode 100644 package/skeleton-custom/Config.in create mode 100644 package/skeleton-custom/skeleton-custom.mk create mode 100644 package/skeleton-init-common/Config.in create mode 100644 package/skeleton-init-common/skeleton-init-common.mk create mode 100644 package/skeleton-init-none/Config.in create mode 100644 package/skeleton-init-none/skeleton-init-none.mk create mode 100644 package/skeleton-init-openrc/Config.in create mode 100644 package/skeleton-init-openrc/skeleton-init-openrc.mk create mode 120000 package/skeleton-init-openrc/skeleton/dev/log create mode 100644 package/skeleton-init-openrc/skeleton/etc/conf.d/.empty create mode 100644 package/skeleton-init-openrc/skeleton/etc/fstab create mode 100644 package/skeleton-init-openrc/skeleton/etc/runlevels/default/.empty create mode 120000 package/skeleton-init-openrc/skeleton/etc/runlevels/default/sysv-rcs create mode 120000 package/skeleton-init-openrc/skeleton/var/cache create mode 120000 package/skeleton-init-openrc/skeleton/var/lib/misc create mode 120000 package/skeleton-init-openrc/skeleton/var/lock create mode 120000 package/skeleton-init-openrc/skeleton/var/log create mode 120000 package/skeleton-init-openrc/skeleton/var/run create mode 120000 package/skeleton-init-openrc/skeleton/var/spool create mode 120000 package/skeleton-init-openrc/skeleton/var/tmp create mode 100644 package/skeleton-init-systemd/Config.in create mode 100644 package/skeleton-init-systemd/legacy.conf create mode 100644 package/skeleton-init-systemd/skeleton-init-systemd.mk create mode 100644 package/skeleton-init-sysv/Config.in create mode 100644 package/skeleton-init-sysv/skeleton-init-sysv.mk create mode 120000 package/skeleton-init-sysv/skeleton/dev/log create mode 100644 package/skeleton-init-sysv/skeleton/dev/pts/.empty create mode 100644 package/skeleton-init-sysv/skeleton/dev/shm/.empty create mode 100644 package/skeleton-init-sysv/skeleton/etc/fstab create mode 120000 package/skeleton-init-sysv/skeleton/var/cache create mode 120000 package/skeleton-init-sysv/skeleton/var/lib/misc create mode 120000 package/skeleton-init-sysv/skeleton/var/lock create mode 120000 package/skeleton-init-sysv/skeleton/var/log create mode 120000 package/skeleton-init-sysv/skeleton/var/run create mode 120000 package/skeleton-init-sysv/skeleton/var/spool create mode 120000 package/skeleton-init-sysv/skeleton/var/tmp create mode 100644 package/skeleton/Config.in create mode 100644 package/skeleton/skeleton.mk create mode 100644 package/sl/Config.in create mode 100644 package/sl/sl.hash create mode 100644 package/sl/sl.mk create mode 100644 package/slang/0001-slsh-libs.patch create mode 100644 package/slang/Config.in create mode 100644 package/slang/slang.hash create mode 100644 package/slang/slang.mk create mode 100644 package/slirp/Config.in create mode 100644 package/slirp/slirp.hash create mode 100644 package/slirp/slirp.mk create mode 100644 package/sloci-image/Config.in.host create mode 100644 package/sloci-image/sloci-image.hash create mode 100644 package/sloci-image/sloci-image.mk create mode 100644 package/smack/Config.in create mode 100644 package/smack/smack.hash create mode 100644 package/smack/smack.mk create mode 100644 package/smartmontools/Config.in create mode 100644 package/smartmontools/smartmontools.hash create mode 100644 package/smartmontools/smartmontools.mk create mode 100644 package/smcroute/Config.in create mode 100755 package/smcroute/S41smcroute create mode 100644 package/smcroute/smcroute.hash create mode 100644 package/smcroute/smcroute.mk create mode 100644 package/smstools3/0001-fix-Makefile.patch create mode 100644 package/smstools3/0002-fix-build-with-gcc-10.x.patch create mode 100644 package/smstools3/Config.in create mode 100644 package/smstools3/S50smsd create mode 100644 package/smstools3/smstools3.hash create mode 100644 package/smstools3/smstools3.mk create mode 100644 package/snappy/0001-Add-inline-with-SNAPPY_ATTRIBUTE_ALWAYS_INLINE.patch create mode 100644 package/snappy/Config.in create mode 100644 package/snappy/snappy.hash create mode 100644 package/snappy/snappy.mk create mode 100644 package/sngrep/0001-src-capture_openssl.h-fix-build-with-libressl-3.5.0.patch create mode 100644 package/sngrep/Config.in create mode 100644 package/sngrep/sngrep.hash create mode 100644 package/sngrep/sngrep.mk create mode 100644 package/snmpclitools/Config.in create mode 100644 package/snmpclitools/snmpclitools.hash create mode 100644 package/snmpclitools/snmpclitools.mk create mode 100644 package/snmppp/0001-fix-build-with-libressl-3-5-0.patch create mode 100644 package/snmppp/Config.in create mode 100644 package/snmppp/snmppp.hash create mode 100644 package/snmppp/snmppp.mk create mode 100644 package/snort/0001-configure.in-Avoid-path-poisoning-with-libpcap.patch create mode 100644 package/snort/0002-configure.in-Allow-to-override-the-INADDR_NONE-check.patch create mode 100644 package/snort/0003-configure.in-convert-AC_RUN_IFELSE-to-AC_CHECK_MEMBE.patch create mode 100644 package/snort/0004-configure.in-convert-AC_RUN_IFELSE-to-AC_COMPILE_IFE.patch create mode 100644 package/snort/0005-fix-sparc.patch create mode 100644 package/snort/0006-Fix-compile-error-when-building-against-uclibc-or-mu.patch create mode 100644 package/snort/0007-Fix-error-when-building-on-a-Fedora-host-machine.patch create mode 100644 package/snort/0008-Fix-NO-OPTIMIZE.patch create mode 100644 package/snort/Config.in create mode 100644 package/snort/snort.hash create mode 100644 package/snort/snort.mk create mode 100644 package/snort3/Config.in create mode 100644 package/snort3/snort3.hash create mode 100644 package/snort3/snort3.mk create mode 100644 package/socat/0001-no-documentation.patch create mode 100644 package/socat/0002-compat-set-NETDB_INTERNAL.patch create mode 100644 package/socat/0003-configure.ac-correct-the-getprotobynumber_r-test.patch create mode 100644 package/socat/Config.in create mode 100644 package/socat/socat.hash create mode 100644 package/socat/socat.mk create mode 100644 package/socketcand/0001-Fix-GCC10-build-failure.patch create mode 100644 package/socketcand/Config.in create mode 100644 package/socketcand/socketcand.hash create mode 100644 package/socketcand/socketcand.mk create mode 100644 package/sofia-sip/Config.in create mode 100644 package/sofia-sip/sofia-sip.hash create mode 100644 package/sofia-sip/sofia-sip.mk create mode 100644 package/softether/0001-Create-autotools-plumbing-for-SoftEther.patch create mode 100644 package/softether/0002-Create-libsoftether.so-and-dynamically-link.patch create mode 100644 package/softether/0003-use-fhs-install-directories.patch create mode 100644 package/softether/0004-create-non-forking-softetherd-for-upstart-and-systemd.patch create mode 100644 package/softether/0005-change-GetExeDir-to-GetStateDir-in-Cedar-and-Mayaqua.patch create mode 100644 package/softether/0006-cross-compile.patch create mode 100644 package/softether/0007-iconv.patch create mode 100644 package/softether/0008-librt.patch create mode 100644 package/softether/0009-uclibc-ai-addrconfig.patch create mode 100644 package/softether/Config.in create mode 100644 package/softether/softether.hash create mode 100644 package/softether/softether.mk create mode 100644 package/softhsm2/Config.in create mode 100644 package/softhsm2/softhsm2.hash create mode 100644 package/softhsm2/softhsm2.mk create mode 100644 package/solarus/0001-cmake-remove-Werror.patch create mode 100644 package/solarus/0002-Add-a-basic-FindOpenGLES2.cmake.patch create mode 100644 package/solarus/Config.in create mode 100644 package/solarus/solarus.hash create mode 100644 package/solarus/solarus.mk create mode 100644 package/sord/0001-wscript-add-no-threads-option.patch create mode 100644 package/sord/Config.in create mode 100644 package/sord/sord.hash create mode 100644 package/sord/sord.mk create mode 100644 package/sound-theme-borealis/Config.in create mode 100644 package/sound-theme-borealis/sound-theme-borealis.hash create mode 100644 package/sound-theme-borealis/sound-theme-borealis.mk create mode 100644 package/sound-theme-freedesktop/Config.in create mode 100644 package/sound-theme-freedesktop/sound-theme-freedesktop.hash create mode 100644 package/sound-theme-freedesktop/sound-theme-freedesktop.mk create mode 100644 package/sox/0001-uclibc.patch create mode 100644 package/sox/0002-configure.ac-put-back-disable-stack-protector.patch create mode 100644 package/sox/0003-configure.ac-fix-static-linking-with-id3tag.patch create mode 100644 package/sox/0004-configure.ac-fix-static-linking-with-magic.patch create mode 100644 package/sox/0005-configure.ac-fix-static-linking-with-sndfile.patch create mode 100644 package/sox/Config.in create mode 100644 package/sox/sox.hash create mode 100644 package/sox/sox.mk create mode 100644 package/sp-oops-extract/0001-Make-the-Makefile-more-cross-compiler-friendly.patch create mode 100644 package/sp-oops-extract/0002-stdint-cleanup.patch create mode 100644 package/sp-oops-extract/Config.in create mode 100644 package/sp-oops-extract/sp-oops-extract.hash create mode 100644 package/sp-oops-extract/sp-oops-extract.mk create mode 100644 package/spandsp/0001-configure.ac-fix-AVX-SSE-and-MMX-options.patch create mode 100644 package/spandsp/Config.in create mode 100644 package/spandsp/spandsp.hash create mode 100644 package/spandsp/spandsp.mk create mode 100644 package/spawn-fcgi/Config.in create mode 100644 package/spawn-fcgi/spawn-fcgi.hash create mode 100644 package/spawn-fcgi/spawn-fcgi.mk create mode 100644 package/spdlog/Config.in create mode 100644 package/spdlog/spdlog.hash create mode 100644 package/spdlog/spdlog.mk create mode 100644 package/speex/0001-thumb2-support.patch create mode 100644 package/speex/Config.in create mode 100644 package/speex/speex.hash create mode 100644 package/speex/speex.mk create mode 100644 package/speexdsp/Config.in create mode 100644 package/speexdsp/speexdsp.hash create mode 100644 package/speexdsp/speexdsp.mk create mode 100644 package/sphinxbase/Config.in create mode 100644 package/sphinxbase/sphinxbase.hash create mode 100644 package/sphinxbase/sphinxbase.mk create mode 100644 package/spi-tools/Config.in create mode 100644 package/spi-tools/spi-tools.hash create mode 100644 package/spi-tools/spi-tools.mk create mode 100644 package/spice-protocol/Config.in create mode 100644 package/spice-protocol/spice-protocol.hash create mode 100644 package/spice-protocol/spice-protocol.mk create mode 100644 package/spice/Config.in create mode 100644 package/spice/spice.hash create mode 100644 package/spice/spice.mk create mode 100644 package/spidev_test/Config.in create mode 100644 package/spidev_test/spidev_test.hash create mode 100644 package/spidev_test/spidev_test.mk create mode 100644 package/spirv-llvm-translator/spirv-llvm-translator.hash create mode 100644 package/spirv-llvm-translator/spirv-llvm-translator.mk create mode 100644 package/sqlcipher/Config.in create mode 100644 package/sqlcipher/sqlcipher.hash create mode 100644 package/sqlcipher/sqlcipher.mk create mode 100644 package/sqlite/Config.in create mode 100644 package/sqlite/sqlite.hash create mode 100644 package/sqlite/sqlite.mk create mode 100644 package/squashfs/0001-Avoid-use-of-INSTALL_DIR-for-symlink-targets.patch create mode 100644 package/squashfs/Config.in create mode 100644 package/squashfs/Config.in.host create mode 100644 package/squashfs/squashfs.hash create mode 100644 package/squashfs/squashfs.mk create mode 100644 package/squeezelite/Config.in create mode 100644 package/squeezelite/squeezelite.hash create mode 100644 package/squeezelite/squeezelite.mk create mode 100644 package/squid/Config.in create mode 100644 package/squid/S97squid create mode 100644 package/squid/squid.hash create mode 100644 package/squid/squid.mk create mode 100644 package/sratom/Config.in create mode 100644 package/sratom/sratom.hash create mode 100644 package/sratom/sratom.mk create mode 100644 package/sredird/0001-termio.patch create mode 100644 package/sredird/Config.in create mode 100644 package/sredird/sredird.hash create mode 100644 package/sredird/sredird.mk create mode 100644 package/ssdp-responder/Config.in create mode 100755 package/ssdp-responder/S50ssdpd create mode 100644 package/ssdp-responder/ssdp-responder.hash create mode 100644 package/ssdp-responder/ssdp-responder.mk create mode 100644 package/sshfs/Config.in create mode 100644 package/sshfs/sshfs.hash create mode 100644 package/sshfs/sshfs.mk create mode 100644 package/sshguard/Config.in create mode 100644 package/sshguard/S49sshguard create mode 100644 package/sshguard/sshguard.hash create mode 100644 package/sshguard/sshguard.mk create mode 100644 package/sshpass/Config.in create mode 100644 package/sshpass/sshpass.hash create mode 100644 package/sshpass/sshpass.mk create mode 100644 package/sslh/Config.in create mode 100644 package/sslh/S35sslh create mode 100644 package/sslh/sslh.hash create mode 100644 package/sslh/sslh.mk create mode 100644 package/start-stop-daemon/0001-add-uclibc-alias-and-musl.patch create mode 100644 package/start-stop-daemon/0002-just-warn-on-missing-arch.patch create mode 100644 package/start-stop-daemon/Config.in create mode 100644 package/start-stop-daemon/start-stop-daemon.hash create mode 100644 package/start-stop-daemon/start-stop-daemon.mk create mode 100644 package/startup-notification/Config.in create mode 100644 package/startup-notification/startup-notification.hash create mode 100644 package/startup-notification/startup-notification.mk create mode 100644 package/statserial/0001-ncurses-link.patch create mode 100644 package/statserial/Config.in create mode 100644 package/statserial/statserial.hash create mode 100644 package/statserial/statserial.mk create mode 100644 package/stella/0001-configure-add-CC.patch create mode 100644 package/stella/Config.in create mode 100644 package/stella/stella.hash create mode 100644 package/stella/stella.mk create mode 100644 package/stellarium/Config.in create mode 100644 package/stellarium/stellarium.hash create mode 100644 package/stellarium/stellarium.mk create mode 100644 package/stm32flash/Config.in create mode 100644 package/stm32flash/stm32flash.hash create mode 100644 package/stm32flash/stm32flash.mk create mode 100644 package/strace/Config.in create mode 100644 package/strace/strace.hash create mode 100644 package/strace/strace.mk create mode 100644 package/stress-ng/0001-Makefile-fix-build-with-kernel-5.6.patch create mode 100644 package/stress-ng/Config.in create mode 100644 package/stress-ng/stress-ng.hash create mode 100644 package/stress-ng/stress-ng.mk create mode 100644 package/stress/Config.in create mode 100644 package/stress/stress.hash create mode 100644 package/stress/stress.mk create mode 100644 package/strongswan/0001-src-libstrongswan-plugins-wolfssl-rename-encrypt.patch create mode 100644 package/strongswan/Config.in create mode 100644 package/strongswan/strongswan.hash create mode 100644 package/strongswan/strongswan.mk create mode 100644 package/stunnel/Config.in create mode 100644 package/stunnel/S50stunnel create mode 100644 package/stunnel/stunnel.hash create mode 100644 package/stunnel/stunnel.mk create mode 100644 package/subversion/Config.in create mode 100644 package/subversion/subversion.hash create mode 100644 package/subversion/subversion.mk create mode 100644 package/sudo/Config.in create mode 100644 package/sudo/sudo.hash create mode 100644 package/sudo/sudo.mk create mode 100644 package/sudo/sudo.pam create mode 100644 package/sunwait/Config.in create mode 100644 package/sunwait/sunwait.hash create mode 100644 package/sunwait/sunwait.mk create mode 100644 package/sunxi-boards/Config.in create mode 100644 package/sunxi-boards/sunxi-boards.hash create mode 100644 package/sunxi-boards/sunxi-boards.mk create mode 100644 package/sunxi-cedarx/Config.in create mode 100644 package/sunxi-cedarx/sunxi-cedarx.hash create mode 100644 package/sunxi-cedarx/sunxi-cedarx.mk create mode 100644 package/sunxi-mali-utgard-driver/Config.in create mode 100644 package/sunxi-mali-utgard-driver/sunxi-mali-utgard-driver.hash create mode 100644 package/sunxi-mali-utgard-driver/sunxi-mali-utgard-driver.mk create mode 100644 package/sunxi-mali-utgard/Config.in create mode 100644 package/sunxi-mali-utgard/egl.pc create mode 100644 package/sunxi-mali-utgard/glesv2.pc create mode 100644 package/sunxi-mali-utgard/sunxi-mali-utgard.hash create mode 100644 package/sunxi-mali-utgard/sunxi-mali-utgard.mk create mode 100644 package/sunxi-tools/0001-meminfo-Access-to-io-memory-via-pointers.patch create mode 100644 package/sunxi-tools/Config.in create mode 100644 package/sunxi-tools/Config.in.host create mode 100644 package/sunxi-tools/sunxi-tools.hash create mode 100644 package/sunxi-tools/sunxi-tools.mk create mode 100644 package/supertux/Config.in create mode 100644 package/supertux/supertux.hash create mode 100644 package/supertux/supertux.mk create mode 100644 package/supertuxkart/Config.in create mode 100644 package/supertuxkart/supertuxkart.hash create mode 100644 package/supertuxkart/supertuxkart.mk create mode 100644 package/supervisor/Config.in create mode 100644 package/supervisor/S99supervisord create mode 100644 package/supervisor/supervisor.hash create mode 100644 package/supervisor/supervisor.mk create mode 100644 package/supervisor/supervisord.conf create mode 100644 package/supervisor/supervisord.service create mode 100644 package/suricata/0001-python-ensure-proper-shabang-on-python-scripts.patch create mode 100644 package/suricata/0002-configure.ac-allow-the-user-to-override-RUST_TARGET.patch create mode 100644 package/suricata/Config.in create mode 100644 package/suricata/S99suricata create mode 100644 package/suricata/suricata.hash create mode 100644 package/suricata/suricata.mk create mode 100644 package/suricata/suricata.service create mode 100644 package/swig/Config.in.host create mode 100644 package/swig/swig.hash create mode 100644 package/swig/swig.mk create mode 100644 package/swupdate/0001-swupdate-core-bootloader.c-fix-build-without-reallocarray.patch create mode 100644 package/swupdate/10-mongoose-args create mode 100644 package/swupdate/90-start-progress create mode 100644 package/swupdate/Config.in create mode 100644 package/swupdate/S80swupdate create mode 100644 package/swupdate/swupdate-progress.service create mode 100644 package/swupdate/swupdate-usb.rules create mode 100644 package/swupdate/swupdate-usb@.service create mode 100644 package/swupdate/swupdate.config create mode 100644 package/swupdate/swupdate.hash create mode 100644 package/swupdate/swupdate.mk create mode 100644 package/swupdate/swupdate.service create mode 100644 package/swupdate/swupdate.sh create mode 100644 package/swupdate/swupdate.socket create mode 100644 package/swupdate/tmpfiles-swupdate.conf create mode 100644 package/sylpheed/0001-harden-link-checker-before-accepting-click.patch create mode 100644 package/sylpheed/Config.in create mode 100644 package/sylpheed/sylpheed.hash create mode 100644 package/sylpheed/sylpheed.mk create mode 100644 package/synergy/Config.in create mode 100644 package/synergy/synergy.hash create mode 100644 package/synergy/synergy.mk create mode 100644 package/sysdig/0001-cmake-Check-USE_BUNDLED_DEPS-before-getting-nlohmann.patch create mode 100644 package/sysdig/Config.in create mode 100644 package/sysdig/sysdig.hash create mode 100644 package/sysdig/sysdig.mk create mode 100644 package/sysklogd/Config.in create mode 100644 package/sysklogd/S01syslogd create mode 100644 package/sysklogd/sysklogd.hash create mode 100644 package/sysklogd/sysklogd.mk create mode 100644 package/sysklogd/syslogd.service create mode 100644 package/syslog-ng/0001-fix-build-on-uclibc.patch create mode 100644 package/syslog-ng/0002-lib-tlscontext.c-fix-libressl-build.patch create mode 100644 package/syslog-ng/Config.in create mode 100644 package/syslog-ng/S01syslog-ng create mode 100644 package/syslog-ng/syslog-ng.conf create mode 100644 package/syslog-ng/syslog-ng.hash create mode 100644 package/syslog-ng/syslog-ng.mk create mode 100644 package/sysprof/0001-define-NT_GNU_BUILD_ID.patch create mode 100644 package/sysprof/Config.in create mode 100644 package/sysprof/sysprof.hash create mode 100644 package/sysprof/sysprof.mk create mode 100644 package/sysrepo/Config.in create mode 100644 package/sysrepo/S51sysrepo-plugind create mode 100644 package/sysrepo/sysrepo.hash create mode 100644 package/sysrepo/sysrepo.mk create mode 100644 package/sysstat/Config.in create mode 100644 package/sysstat/sysstat.hash create mode 100644 package/sysstat/sysstat.mk create mode 100644 package/system-config-printer/0001-Add-option-to-disable-xmlto-manual-generation.patch create mode 100644 package/system-config-printer/0002-configure-accept-non-system-cups-config.patch create mode 100644 package/system-config-printer/Config.in create mode 100644 package/system-config-printer/system-config-printer.hash create mode 100644 package/system-config-printer/system-config-printer.mk create mode 100644 package/systemd-bootchart/Config.in create mode 100644 package/systemd-bootchart/systemd-bootchart.hash create mode 100644 package/systemd-bootchart/systemd-bootchart.mk create mode 100644 package/systemd/0001-missing-syscall-define-MOVE_MOUNT_T_EMPTY_PATH-if-mi.patch create mode 100644 package/systemd/80-buildroot.preset create mode 100644 package/systemd/Config.in create mode 100644 package/systemd/Config.in.host create mode 100644 package/systemd/boot-files/buildroot.conf create mode 100644 package/systemd/boot-files/loader.conf create mode 100644 package/systemd/dhcp.network create mode 100755 package/systemd/fakeroot_tmpfiles.sh create mode 100644 package/systemd/systemd.hash create mode 100644 package/systemd/systemd.mk create mode 100644 package/sysvinit/0001-Makefile-disable-stack-protector-strong.patch create mode 100644 package/sysvinit/Config.in create mode 100644 package/sysvinit/inittab create mode 100644 package/sysvinit/sysvinit.hash create mode 100644 package/sysvinit/sysvinit.mk create mode 100644 package/szip/Config.in create mode 100644 package/szip/szip.hash create mode 100644 package/szip/szip.mk create mode 100644 package/taglib/0001-Fix-error-duplicate-volatile-on-systems-without-HAVE_GCC_ATOMIC.patch create mode 100644 package/taglib/Config.in create mode 100644 package/taglib/taglib.hash create mode 100644 package/taglib/taglib.mk create mode 100644 package/tar/0001-lib-getrandom.c-fix-build-with-uclibc-1.0.35.patch create mode 100644 package/tar/Config.in create mode 100644 package/tar/tar.hash create mode 100644 package/tar/tar.mk create mode 100644 package/targetcli-fb/Config.in create mode 100644 package/targetcli-fb/S50target create mode 100644 package/targetcli-fb/target.service create mode 100644 package/targetcli-fb/targetcli-fb.hash create mode 100644 package/targetcli-fb/targetcli-fb.mk create mode 100644 package/taskd/0001-Fix-missing-cmakedefine-HAVE_GET_CURRENT_DIR_NAME.patch create mode 100644 package/taskd/0002-Use-correct-variables-for-GnuTLS-detection.patch create mode 100644 package/taskd/0003-CMakeLists-use-pkg-config-uuid-detection.patch create mode 100644 package/taskd/Config.in create mode 100644 package/taskd/taskd.hash create mode 100644 package/taskd/taskd.mk create mode 100644 package/tbb/0001-Musl-linux-can-not-use-RTLD_DEEPBIND.patch create mode 100644 package/tbb/0002-mallinfo-is-only-defined-on-glibc-and-android.patch create mode 100644 package/tbb/0003-Define-ITT_ARCH_IA64-when-undefiend.patch create mode 100644 package/tbb/Config.in create mode 100644 package/tbb/tbb.hash create mode 100644 package/tbb/tbb.mk create mode 100644 package/tcf-agent/Config.in create mode 100644 package/tcf-agent/S55tcf-agent create mode 100644 package/tcf-agent/tcf-agent.hash create mode 100644 package/tcf-agent/tcf-agent.mk create mode 100644 package/tcf-agent/tcf-agent.service create mode 100644 package/tcl/0001-dont-build-compat.patch create mode 100644 package/tcl/Config.in create mode 100644 package/tcl/tcl.hash create mode 100644 package/tcl/tcl.mk create mode 100644 package/tclap/Config.in create mode 100644 package/tclap/tclap.hash create mode 100644 package/tclap/tclap.mk create mode 100644 package/tcllib/Config.in create mode 100644 package/tcllib/tcllib.hash create mode 100644 package/tcllib/tcllib.mk create mode 100644 package/tcpdump/Config.in create mode 100644 package/tcpdump/tcpdump.hash create mode 100644 package/tcpdump/tcpdump.mk create mode 100644 package/tcping/Config.in create mode 100644 package/tcping/tcping.hash create mode 100644 package/tcping/tcping.mk create mode 100644 package/tcpreplay/Config.in create mode 100644 package/tcpreplay/tcpreplay.hash create mode 100644 package/tcpreplay/tcpreplay.mk create mode 100644 package/tealdeer/Config.in create mode 100644 package/tealdeer/tealdeer.hash create mode 100644 package/tealdeer/tealdeer.mk create mode 100644 package/tegrarcm/Config.in.host create mode 100644 package/tegrarcm/tegrarcm.hash create mode 100644 package/tegrarcm/tegrarcm.mk create mode 100644 package/tekui/Config.in create mode 100644 package/tekui/tekui.hash create mode 100644 package/tekui/tekui.mk create mode 100644 package/terminology/Config.in create mode 100644 package/terminology/terminology.hash create mode 100644 package/terminology/terminology.mk create mode 100644 package/tesseract-ocr/0001-Check-if-platform-supports-feenableexcept.patch create mode 100644 package/tesseract-ocr/0002-configure.ac-fix-build-on-aarch64_be.patch create mode 100644 package/tesseract-ocr/Config.in create mode 100644 package/tesseract-ocr/tesseract-ocr.hash create mode 100644 package/tesseract-ocr/tesseract-ocr.mk create mode 100644 package/tftpd/0001-Use-extern-qualifier-to-fix-gcc-10.x-build.patch create mode 100644 package/tftpd/Config.in create mode 100644 package/tftpd/S80tftpd-hpa create mode 100644 package/tftpd/tftpd.hash create mode 100644 package/tftpd/tftpd.mk create mode 100644 package/thermald/Config.in create mode 100644 package/thermald/thermald.hash create mode 100644 package/thermald/thermald.mk create mode 100644 package/thrift/Config.in create mode 100644 package/thrift/thrift.hash create mode 100644 package/thrift/thrift.mk create mode 100644 package/thttpd/Config.in create mode 100644 package/thttpd/S90thttpd create mode 100644 package/thttpd/thttpd.hash create mode 100644 package/thttpd/thttpd.mk create mode 100644 package/thttpd/thttpd.service create mode 100644 package/ti-cgt-pru/Config.in.host create mode 100644 package/ti-cgt-pru/ti-cgt-pru.hash create mode 100644 package/ti-cgt-pru/ti-cgt-pru.mk create mode 100644 package/ti-gfx/0001-newclkapi.patch create mode 100644 package/ti-gfx/0002-fix-build-omaplfb-linux.patch create mode 100644 package/ti-gfx/0003-km_install_modules.patch create mode 100644 package/ti-gfx/Config.in create mode 100644 package/ti-gfx/S80ti-gfx create mode 100644 package/ti-gfx/egl.pc create mode 100644 package/ti-gfx/esrev.sh create mode 100644 package/ti-gfx/glesv2.pc create mode 100644 package/ti-gfx/powervr.ini create mode 100644 package/ti-gfx/ti-gfx.hash create mode 100644 package/ti-gfx/ti-gfx.mk create mode 100644 package/ti-gfx/ti-gfx.service create mode 100644 package/ti-sgx-demos/Config.in create mode 100644 package/ti-sgx-demos/ti-sgx-demos.hash create mode 100644 package/ti-sgx-demos/ti-sgx-demos.mk create mode 100644 package/ti-sgx-km/Config.in create mode 100644 package/ti-sgx-km/ti-sgx-km.hash create mode 100644 package/ti-sgx-km/ti-sgx-km.mk create mode 100644 package/ti-sgx-um/0001-Makefile-do-not-install-init-script.patch create mode 100644 package/ti-sgx-um/Config.in create mode 100644 package/ti-sgx-um/S80ti-sgx create mode 100644 package/ti-sgx-um/ti-sgx-um.hash create mode 100644 package/ti-sgx-um/ti-sgx-um.mk create mode 100644 package/ti-uim/Config.in create mode 100644 package/ti-uim/ti-uim.hash create mode 100644 package/ti-uim/ti-uim.mk create mode 100644 package/ti-utils/0001-plt.h-fix-build-with-gcc-10.patch create mode 100644 package/ti-utils/Config.in create mode 100644 package/ti-utils/ti-utils.hash create mode 100644 package/ti-utils/ti-utils.mk create mode 100644 package/tiff/Config.in create mode 100644 package/tiff/tiff.hash create mode 100644 package/tiff/tiff.mk create mode 100644 package/time/Config.in create mode 100644 package/time/time.hash create mode 100644 package/time/time.mk create mode 100644 package/timescaledb/Config.in create mode 100644 package/timescaledb/timescaledb.hash create mode 100644 package/timescaledb/timescaledb.mk create mode 100644 package/tinc/Config.in create mode 100644 package/tinc/tinc.hash create mode 100644 package/tinc/tinc.mk create mode 100644 package/tini/Config.in create mode 100644 package/tini/tini.hash create mode 100644 package/tini/tini.mk create mode 100644 package/tinifier/Config.in create mode 100644 package/tinifier/tinifier.hash create mode 100644 package/tinifier/tinifier.mk create mode 100644 package/tinyalsa/0001-include-time.h-before-asound.h.patch create mode 100644 package/tinyalsa/Config.in create mode 100644 package/tinyalsa/tinyalsa.hash create mode 100644 package/tinyalsa/tinyalsa.mk create mode 100644 package/tinycbor/0001-Makefile-add-DISABLE_WERROR.patch create mode 100644 package/tinycbor/Config.in create mode 100644 package/tinycbor/tinycbor.hash create mode 100644 package/tinycbor/tinycbor.mk create mode 100644 package/tinydtls/0001-sha2-sha2.c-fix-build-on-big-endian.patch create mode 100644 package/tinydtls/Config.in create mode 100644 package/tinydtls/tinydtls.hash create mode 100644 package/tinydtls/tinydtls.mk create mode 100644 package/tinymembench/0001-arm-fix-build-on-Thumb-only-architectures.patch create mode 100644 package/tinymembench/Config.in create mode 100644 package/tinymembench/tinymembench.hash create mode 100644 package/tinymembench/tinymembench.mk create mode 100644 package/tinyproxy/0001-prevent-junk-from-showing-up-in-error-page-in-invalid-requests.patch create mode 100644 package/tinyproxy/Config.in create mode 100644 package/tinyproxy/tinyproxy.hash create mode 100644 package/tinyproxy/tinyproxy.mk create mode 100644 package/tinyssh/Config.in create mode 100644 package/tinyssh/tinyssh.hash create mode 100644 package/tinyssh/tinyssh.mk create mode 100644 package/tinyxml/0001-In-stamp-always-advance-the-pointer-if-p-0xef.patch create mode 100644 package/tinyxml/Config.in create mode 100644 package/tinyxml/tinyxml.hash create mode 100644 package/tinyxml/tinyxml.mk create mode 100644 package/tinyxml2/Config.in create mode 100644 package/tinyxml2/tinyxml2.hash create mode 100644 package/tinyxml2/tinyxml2.mk create mode 100644 package/tio/Config.in create mode 100644 package/tio/tio.hash create mode 100644 package/tio/tio.mk create mode 100644 package/tk/Config.in create mode 100644 package/tk/tk.hash create mode 100644 package/tk/tk.mk create mode 100644 package/tmux/Config.in create mode 100644 package/tmux/tmux.hash create mode 100644 package/tmux/tmux.mk create mode 100644 package/tor/0001-patch-src_lib_crypt_ops_crypto_dh_openssl_c.patch create mode 100644 package/tor/0002-patch-src_lib_crypt_ops_crypto_rsa_openssl_c.patch create mode 100644 package/tor/0003-patch-src_lib_tls_x509_openssl_c.patch create mode 100644 package/tor/Config.in create mode 100644 package/tor/tor.hash create mode 100644 package/tor/tor.mk create mode 100644 package/tovid/0001-manpage.patch create mode 100644 package/tovid/Config.in create mode 100644 package/tovid/tovid.hash create mode 100644 package/tovid/tovid.mk create mode 100644 package/tpm-tools/Config.in create mode 100644 package/tpm-tools/tpm-tools.hash create mode 100644 package/tpm-tools/tpm-tools.mk create mode 100644 package/tpm2-abrmd/Config.in create mode 100644 package/tpm2-abrmd/S80tpm2-abrmd create mode 100644 package/tpm2-abrmd/tpm2-abrmd.hash create mode 100644 package/tpm2-abrmd/tpm2-abrmd.mk create mode 100644 package/tpm2-pkcs11/Config.in create mode 100644 package/tpm2-pkcs11/tpm2-pkcs11.hash create mode 100644 package/tpm2-pkcs11/tpm2-pkcs11.mk create mode 100644 package/tpm2-tools/Config.in create mode 100644 package/tpm2-tools/tpm2-tools.hash create mode 100644 package/tpm2-tools/tpm2-tools.mk create mode 100644 package/tpm2-totp/Config.in create mode 100644 package/tpm2-totp/tpm2-totp.hash create mode 100644 package/tpm2-totp/tpm2-totp.mk create mode 100644 package/tpm2-tss/0001-Temporary-fix-for-build-without-C.patch create mode 100644 package/tpm2-tss/Config.in create mode 100644 package/tpm2-tss/tpm2-tss.hash create mode 100644 package/tpm2-tss/tpm2-tss.mk create mode 100644 package/trace-cmd/Config.in create mode 100644 package/trace-cmd/trace-cmd.hash create mode 100644 package/trace-cmd/trace-cmd.mk create mode 100644 package/traceroute/Config.in create mode 100644 package/traceroute/traceroute.hash create mode 100644 package/traceroute/traceroute.mk create mode 100644 package/transmission/0001-fix-utypes.patch create mode 100644 package/transmission/0002-fix-utp-include.patch create mode 100644 package/transmission/0003-configure.ac-fix-autoreconf-with-autoconf-2.70.patch create mode 100644 package/transmission/Config.in create mode 100644 package/transmission/S92transmission create mode 100644 package/transmission/transmission.hash create mode 100644 package/transmission/transmission.mk create mode 100644 package/tree/Config.in create mode 100644 package/tree/tree.hash create mode 100644 package/tree/tree.mk create mode 100644 package/tremor/Config.in create mode 100644 package/tremor/tremor.hash create mode 100644 package/tremor/tremor.mk create mode 100644 package/triggerhappy/Config.in create mode 100644 package/triggerhappy/S10triggerhappy create mode 100644 package/triggerhappy/triggerhappy.hash create mode 100644 package/triggerhappy/triggerhappy.mk create mode 100644 package/triggerhappy/triggerhappy.service create mode 100644 package/trinity/0001-Fix-build-with-GCC-10.patch create mode 100644 package/trinity/0002-net-proto-ip-raw.c-fix-build-with-kernel-5.13.patch create mode 100644 package/trinity/0003-Use-fcntl-h-for-dev_t-mode_t.patch create mode 100644 package/trinity/Config.in create mode 100644 package/trinity/trinity.hash create mode 100644 package/trinity/trinity.mk create mode 100644 package/trousers/0001-Check-if-the-compiler-understands-pie-and-relro-options.patch create mode 100644 package/trousers/0002-Check-that-getpwent_r-is-available-before-using-it.patch create mode 100644 package/trousers/0003-Fix-build-with-LibreSSL-2-7.patch create mode 100644 package/trousers/Config.in create mode 100644 package/trousers/trousers.hash create mode 100644 package/trousers/trousers.mk create mode 100644 package/ts4900-fpga/Config.in create mode 100644 package/ts4900-fpga/ts4900-fpga.hash create mode 100644 package/ts4900-fpga/ts4900-fpga.mk create mode 100644 package/tslib/Config.in create mode 100644 package/tslib/tslib.hash create mode 100644 package/tslib/tslib.mk create mode 100644 package/tstools/0001-build-get-along-with-buildroot.patch create mode 100644 package/tstools/Config.in create mode 100644 package/tstools/tstools.hash create mode 100644 package/tstools/tstools.mk create mode 100644 package/ttyd/Config.in create mode 100644 package/ttyd/ttyd.hash create mode 100644 package/ttyd/ttyd.mk create mode 100644 package/tunctl/Config.in create mode 100644 package/tunctl/tunctl.hash create mode 100644 package/tunctl/tunctl.mk create mode 100644 package/turbolua/Config.in create mode 100644 package/turbolua/turbolua.hash create mode 100644 package/turbolua/turbolua.mk create mode 100644 package/tvheadend/0001-no-check_config.patch create mode 100644 package/tvheadend/Config.in create mode 100644 package/tvheadend/S99tvheadend create mode 100644 package/tvheadend/etc.default.tvheadend create mode 100644 package/tvheadend/tvheadend.hash create mode 100644 package/tvheadend/tvheadend.mk create mode 100644 package/twolame/Config.in create mode 100644 package/twolame/twolame.hash create mode 100644 package/twolame/twolame.mk create mode 100644 package/tz/Config.in create mode 100644 package/tz/tz.mk create mode 100644 package/tzdata/Config.in create mode 100644 package/tzdata/tzdata.hash create mode 100644 package/tzdata/tzdata.mk create mode 100644 package/tzdump/tzdump.hash create mode 100644 package/tzdump/tzdump.mk create mode 100644 package/uacme/Config.in create mode 100644 package/uacme/uacme.hash create mode 100644 package/uacme/uacme.mk create mode 100644 package/uboot-tools/0001-drop-configh-from-tools.patch create mode 100644 package/uboot-tools/0002-tools-only-in-no-dot-config-targets.patch create mode 100644 package/uboot-tools/0003-tools-Makefile-fix-C-LD-FLAGS-with-CROSS_BUILD_TOOLS.patch create mode 100644 package/uboot-tools/Config.in create mode 100644 package/uboot-tools/Config.in.host create mode 100644 package/uboot-tools/uboot-tools.hash create mode 100644 package/uboot-tools/uboot-tools.mk create mode 100644 package/ubus/0001-Install-server-and-client-examples.patch create mode 100644 package/ubus/Config.in create mode 100644 package/ubus/ubus.hash create mode 100644 package/ubus/ubus.mk create mode 100644 package/uccp420wlan/Config.in create mode 100644 package/uccp420wlan/uccp420wlan.hash create mode 100644 package/uccp420wlan/uccp420wlan.mk create mode 100644 package/ucl/ucl.hash create mode 100644 package/ucl/ucl.mk create mode 100644 package/uclibc-ng-test/Config.in create mode 100644 package/uclibc-ng-test/uclibc-ng-test.hash create mode 100644 package/uclibc-ng-test/uclibc-ng-test.mk create mode 100644 package/uclibc/Config.in create mode 100644 package/uclibc/uClibc-ng.config create mode 100644 package/uclibc/uclibc.hash create mode 100644 package/uclibc/uclibc.mk create mode 100644 package/udev-gentoo-scripts/Config.in create mode 100644 package/udev-gentoo-scripts/udev-gentoo-scripts.hash create mode 100644 package/udev-gentoo-scripts/udev-gentoo-scripts.mk create mode 100644 package/udev/Config.in create mode 100644 package/udev/udev.mk create mode 100644 package/udftools/Config.in create mode 100644 package/udftools/udftools.hash create mode 100644 package/udftools/udftools.mk create mode 100644 package/udisks/Config.in create mode 100644 package/udisks/udisks.hash create mode 100644 package/udisks/udisks.mk create mode 100644 package/udpcast/0001-fix-musl-build.patch create mode 100644 package/udpcast/Config.in create mode 100644 package/udpcast/udpcast.hash create mode 100644 package/udpcast/udpcast.mk create mode 100644 package/udpxy/Config.in create mode 100644 package/udpxy/udpxy.hash create mode 100644 package/udpxy/udpxy.mk create mode 100644 package/uemacs/01-clear-ixon-termios-flag.patch create mode 100644 package/uemacs/Config.in create mode 100644 package/uemacs/uemacs.hash create mode 100644 package/uemacs/uemacs.mk create mode 100644 package/uftp/Config.in create mode 100644 package/uftp/uftp.hash create mode 100644 package/uftp/uftp.mk create mode 100644 package/uftrace/0001-cmds-records-replace-ADDR_NO_RANDOMIZE-by-its-value.patch create mode 100644 package/uftrace/0002-arch-arm-mcount-support.c-define-EF_ARM_VFP_FLOAT-wh.patch create mode 100644 package/uftrace/Config.in create mode 100644 package/uftrace/uftrace.hash create mode 100644 package/uftrace/uftrace.mk create mode 100644 package/uhd/0001-host-CMakeLists-add-boost-unit_test_framework-requir.patch create mode 100644 package/uhd/0002-host-fix-build-boost-173.patch create mode 100644 package/uhd/0003-add-RISC-V-endian-detection.patch create mode 100644 package/uhd/0004-lib-Fix-missing-includes-in-rpc-hpp.patch create mode 100644 package/uhd/0005-core-remove-boost-math-in-favor-of-std-cmath.patch create mode 100644 package/uhd/0006-usrp2-Replace-boost-math-iround-math-sign-with-std-l.patch create mode 100644 package/uhd/0007-usrp2-Use-explicit-template-type-for-std-min-T.patch create mode 100644 package/uhd/Config.in create mode 100644 package/uhd/uhd.hash create mode 100644 package/uhd/uhd.mk create mode 100644 package/uhttpd/0001-Remove-Werror.patch create mode 100644 package/uhttpd/0002-Fix-TCP_FASTOPEN-related-compile-error.patch create mode 100644 package/uhttpd/Config.in create mode 100644 package/uhttpd/uhttpd.hash create mode 100644 package/uhttpd/uhttpd.mk create mode 100644 package/uhubctl/Config.in create mode 100644 package/uhubctl/uhubctl.hash create mode 100644 package/uhubctl/uhubctl.mk create mode 100644 package/ulog/Config.in create mode 100644 package/ulog/ulog.hash create mode 100644 package/ulog/ulog.mk create mode 100644 package/ulogd/0001-ulogd-fix-build-with-musl-libc.patch create mode 100644 package/ulogd/Config.in create mode 100644 package/ulogd/ulogd.hash create mode 100644 package/ulogd/ulogd.mk create mode 100644 package/umtprd/Config.in create mode 100644 package/umtprd/umtprd.hash create mode 100644 package/umtprd/umtprd.mk create mode 100644 package/unbound/Config.in create mode 100644 package/unbound/S70unbound create mode 100644 package/unbound/unbound.hash create mode 100644 package/unbound/unbound.mk create mode 100644 package/unclutter-xfixes/Config.in create mode 100644 package/unclutter-xfixes/unclutter-xfixes.hash create mode 100644 package/unclutter-xfixes/unclutter-xfixes.mk create mode 100644 package/unionfs/Config.in create mode 100644 package/unionfs/unionfs.hash create mode 100644 package/unionfs/unionfs.mk create mode 100644 package/unixodbc/0001-DriverManager-drivermanager.h-fix-build-without-thre.patch create mode 100644 package/unixodbc/Config.in create mode 100644 package/unixodbc/unixodbc.hash create mode 100644 package/unixodbc/unixodbc.mk create mode 100644 package/unrar/Config.in create mode 100644 package/unrar/unrar.hash create mode 100644 package/unrar/unrar.mk create mode 100644 package/unscd/Config.in create mode 100644 package/unscd/S46unscd create mode 100644 package/unscd/nscd.conf create mode 100644 package/unscd/unscd.hash create mode 100644 package/unscd/unscd.mk create mode 100644 package/unzip/0001-Add-a-CMakeFile.txt-to-ease-cross-compilation.patch create mode 100644 package/unzip/Config.in create mode 100644 package/unzip/unzip.hash create mode 100644 package/unzip/unzip.mk create mode 100644 package/upmpdcli/Config.in create mode 100644 package/upmpdcli/S99upmpdcli create mode 100644 package/upmpdcli/upmpdcli.hash create mode 100644 package/upmpdcli/upmpdcli.mk create mode 100644 package/upower/Config.in create mode 100644 package/upower/upower.hash create mode 100644 package/upower/upower.mk create mode 100644 package/upx/0001-Check-DT_REL-DT_RELA-DT_RELSZ-DT_RELASZ.patch create mode 100644 package/upx/upx.hash create mode 100644 package/upx/upx.mk create mode 100644 package/uqmi/Config.in create mode 100644 package/uqmi/uqmi.hash create mode 100644 package/uqmi/uqmi.mk create mode 100644 package/urandom-scripts/Config.in create mode 100644 package/urandom-scripts/S20urandom create mode 100644 package/urandom-scripts/urandom-scripts.mk create mode 100644 package/uredir/Config.in create mode 100644 package/uredir/uredir.hash create mode 100644 package/uredir/uredir.mk create mode 100644 package/urg/0001-select-h.patch create mode 100644 package/urg/0002-urg-gcc6-fix-narrowing-conversion.patch create mode 100644 package/urg/Config.in create mode 100644 package/urg/urg.hash create mode 100644 package/urg/urg.mk create mode 100644 package/usb_modeswitch/0001-fix-systemd-detection.patch create mode 100644 package/usb_modeswitch/Config.in create mode 100644 package/usb_modeswitch/usb_modeswitch.hash create mode 100644 package/usb_modeswitch/usb_modeswitch.mk create mode 100644 package/usb_modeswitch_data/Config.in create mode 100644 package/usb_modeswitch_data/usb_modeswitch_data.hash create mode 100644 package/usb_modeswitch_data/usb_modeswitch_data.mk create mode 100644 package/usbguard/Config.in create mode 100644 package/usbguard/S20usbguard create mode 100644 package/usbguard/usbguard.hash create mode 100644 package/usbguard/usbguard.mk create mode 100644 package/usbmount/0001-rules-fix.patch create mode 100644 package/usbmount/0002-use-udev-environment-instead-of-blkid.patch create mode 100644 package/usbmount/Config.in create mode 100644 package/usbmount/usbmount.hash create mode 100644 package/usbmount/usbmount.mk create mode 100644 package/usbredir/Config.in create mode 100644 package/usbredir/usbredir.hash create mode 100644 package/usbredir/usbredir.mk create mode 100644 package/usbutils/Config.in create mode 100644 package/usbutils/usbutils.hash create mode 100644 package/usbutils/usbutils.mk create mode 100644 package/ushare/0001-Don-t-build-po-files-if-NLS-is-disabled.patch create mode 100644 package/ushare/Config.in create mode 100644 package/ushare/ushare.hash create mode 100644 package/ushare/ushare.mk create mode 100644 package/ussp-push/0001-fix-build-against-bluez-4.patch create mode 100644 package/ussp-push/0002-fix-build-again-obex-bluez.patch create mode 100644 package/ussp-push/0003-add-OBEX_CharToUnicode.patch create mode 100644 package/ussp-push/Config.in create mode 100644 package/ussp-push/ussp-push.hash create mode 100644 package/ussp-push/ussp-push.mk create mode 100644 package/ustream-ssl/Config.in create mode 100644 package/ustream-ssl/ustream-ssl.hash create mode 100644 package/ustream-ssl/ustream-ssl.mk create mode 100644 package/utf8proc/Config.in create mode 100644 package/utf8proc/utf8proc.hash create mode 100644 package/utf8proc/utf8proc.mk create mode 100644 package/util-linux/0001-lsns-improve-dependence-on-NS_GET_-ioctls.patch create mode 100644 package/util-linux/Config.in create mode 100644 package/util-linux/Config.in.host create mode 100644 package/util-linux/su.pam create mode 120000 package/util-linux/util-linux-libs/util-linux-libs.hash create mode 100644 package/util-linux/util-linux-libs/util-linux-libs.mk create mode 100644 package/util-linux/util-linux.hash create mode 100644 package/util-linux/util-linux.mk create mode 100644 package/utp_com/Config.in.host create mode 100644 package/utp_com/utp_com.hash create mode 100644 package/utp_com/utp_com.mk create mode 100644 package/uuu/Config.in.host create mode 100644 package/uuu/readme.txt create mode 100644 package/uuu/uuu.hash create mode 100644 package/uuu/uuu.mk create mode 100644 package/uvw/Config.in create mode 100644 package/uvw/uvw.hash create mode 100644 package/uvw/uvw.mk create mode 100644 package/ux500-firmware/Config.in create mode 100644 package/ux500-firmware/ux500-firmware.hash create mode 100644 package/ux500-firmware/ux500-firmware.mk create mode 100644 package/v4l2grab/Config.in create mode 100644 package/v4l2grab/v4l2grab.hash create mode 100644 package/v4l2grab/v4l2grab.mk create mode 100644 package/v4l2loopback/Config.in create mode 100644 package/v4l2loopback/v4l2loopback.hash create mode 100644 package/v4l2loopback/v4l2loopback.mk create mode 100644 package/vala/0001-dont-add-dirty-to-valac-version.patch create mode 100644 package/vala/vala-wrapper create mode 100644 package/vala/vala.hash create mode 100644 package/vala/vala.mk create mode 100644 package/valgrind/0001-workaround-SIGSEGV-on-PPC.patch create mode 100644 package/valgrind/0002-Define-PTRACE_GETSIGINFO-on-PowerPC-when-not-availab.patch create mode 100644 package/valgrind/0003-coregrind-fix-compilation-for-uclibc.patch create mode 100644 package/valgrind/Config.in create mode 100644 package/valgrind/uclibc.supp create mode 100644 package/valgrind/valgrind.hash create mode 100644 package/valgrind/valgrind.mk create mode 100644 package/valijson/Config.in create mode 100644 package/valijson/valijson.hash create mode 100644 package/valijson/valijson.mk create mode 100644 package/vboot-utils/0001-Add-missing-definition-of-MTD_CHAR_MAJOR.patch create mode 100644 package/vboot-utils/0002-Add-missing-header-include-for-ssize_t.patch create mode 100644 package/vboot-utils/0003-Avoid-RSA-type-redefinition.patch create mode 100644 package/vboot-utils/0004-Disable-static-futility.patch create mode 100644 package/vboot-utils/0005-include-sys-sysmacros.h-for-major.patch create mode 100644 package/vboot-utils/0006-Update-for-openssl-1.1.patch create mode 100644 package/vboot-utils/0007-Make-vboot_version-extern-in-header.patch create mode 100644 package/vboot-utils/Config.in.host create mode 100644 package/vboot-utils/vboot-utils.hash create mode 100644 package/vboot-utils/vboot-utils.mk create mode 100644 package/vde2/0001-no-cxx.patch create mode 100644 package/vde2/0002-fstp-Add-static-to-inline-functions.patch create mode 100644 package/vde2/0003-vde_l3-Add-static-to-inline-functions.patch create mode 100644 package/vde2/Config.in create mode 100644 package/vde2/vde2.hash create mode 100644 package/vde2/vde2.mk create mode 100644 package/vdr-plugin-vnsiserver/Config.in create mode 100644 package/vdr-plugin-vnsiserver/vdr-plugin-vnsiserver.hash create mode 100644 package/vdr-plugin-vnsiserver/vdr-plugin-vnsiserver.mk create mode 100644 package/vdr/0001-getloadavg.patch create mode 100644 package/vdr/0002-musl-compat.patch create mode 100644 package/vdr/0003-include-missing-limits.patch create mode 100644 package/vdr/0004-i18n.c-_nl_msg_cat_cntr-is-an-internal-symbol-of-som.patch create mode 100644 package/vdr/Config.in create mode 100644 package/vdr/vdr.hash create mode 100644 package/vdr/vdr.mk create mode 100644 package/vim/Config.in create mode 100644 package/vim/vim.hash create mode 100644 package/vim/vim.mk create mode 100644 package/vis-network/Config.in create mode 100644 package/vis-network/vis-network.hash create mode 100644 package/vis-network/vis-network.mk create mode 100644 package/vlc/0001-Disable-building-of-statically-linked-vlc-binary.patch create mode 100644 package/vlc/0002-automake-add-subdir-objects-option.patch create mode 100644 package/vlc/0003-build-use-pkg-config-to-get-tremor-libs.patch create mode 100644 package/vlc/0004-Fix-build-error-using-uClibc-by-adding-sys-types.h.patch create mode 100644 package/vlc/0005-Don-t-assume-strerror_l-is-available.patch create mode 100644 package/vlc/0006-posix-remove-ancient-run-time-fallback-to-real-time-.patch create mode 100644 package/vlc/0007-Add-support-for-freerdp2.patch create mode 100644 package/vlc/0008-configure.ac-also-use-AC_PATH_PROG-to-check-for-wayl.patch create mode 100644 package/vlc/0009-modules-video_filter-opencv_example.cpp-fix-build-wi.patch create mode 100644 package/vlc/0010-modules-access-live555.cpp-fix-build-with-live555-20.patch create mode 100644 package/vlc/0011-dav1d-fix-compilation-with-upcoming-dav1d.patch create mode 100644 package/vlc/Config.in create mode 100644 package/vlc/vlc.hash create mode 100644 package/vlc/vlc.mk create mode 100644 package/vmtouch/Config.in create mode 100644 package/vmtouch/vmtouch.hash create mode 100644 package/vmtouch/vmtouch.mk create mode 100644 package/vnstat/Config.in create mode 100644 package/vnstat/vnstat.hash create mode 100644 package/vnstat/vnstat.mk create mode 100644 package/vo-aacenc/Config.in create mode 100644 package/vo-aacenc/vo-aacenc.hash create mode 100644 package/vo-aacenc/vo-aacenc.mk create mode 100644 package/volk/Config.in create mode 100644 package/volk/volk.hash create mode 100644 package/volk/volk.mk create mode 100644 package/vorbis-tools/Config.in create mode 100644 package/vorbis-tools/vorbis-tools.hash create mode 100644 package/vorbis-tools/vorbis-tools.mk create mode 100644 package/vpnc/0001-Makefile-allow-to-override-the-PREFIX-variable.patch create mode 100644 package/vpnc/0002-Makefile-allow-to-override-the-version.patch create mode 100644 package/vpnc/0003-Makefile-allow-passing-custom-CFLAGS-CPPFLAGS.patch create mode 100644 package/vpnc/0004-Makefile-provide-an-option-to-not-build-manpages.patch create mode 100644 package/vpnc/0005-Makefile-allow-passing-a-custom-path-to-libgcrypt-co.patch create mode 100644 package/vpnc/0006-config.c-Replace-deprecated-SUSv3-functions-with-POS.patch create mode 100644 package/vpnc/0007-sysdep.h-don-t-assume-error.h-is-available-on-all-Li.patch create mode 100644 package/vpnc/0008-sysdep.c-don-t-include-linux-if_tun.h-on-Linux.patch create mode 100644 package/vpnc/0009-config.c-add-missing-sys-ttydefaults.h-include.patch create mode 100644 package/vpnc/Config.in create mode 100644 package/vpnc/vpnc.hash create mode 100644 package/vpnc/vpnc.mk create mode 100644 package/vsftpd/0001-utmpx-builddef.patch create mode 100644 package/vsftpd/0002-fix-CVE-2015-1419.patch create mode 100644 package/vsftpd/0003-Prevent-hang-in-SIGCHLD-handler.patch create mode 100644 package/vsftpd/Config.in create mode 100644 package/vsftpd/S70vsftpd create mode 100644 package/vsftpd/vsftpd.hash create mode 100644 package/vsftpd/vsftpd.mk create mode 100644 package/vsftpd/vsftpd.service create mode 100644 package/vte/0001-build-Fix-build-with-kernel-headers-from-linux-4-13.patch create mode 100644 package/vte/0002-build-Fix-check-for-fstack-protector-compiler-support.patch create mode 100644 package/vte/Config.in create mode 100644 package/vte/vte.hash create mode 100644 package/vte/vte.mk create mode 100644 package/vtun/0001-fix-installation.patch create mode 100644 package/vtun/0002-fix-ssl-headers-checks.patch create mode 100644 package/vtun/0003-openssl11.patch create mode 100644 package/vtun/Config.in create mode 100644 package/vtun/vtun.hash create mode 100644 package/vtun/vtun.mk create mode 100644 package/vuejs-router/Config.in create mode 100644 package/vuejs-router/vuejs-router.hash create mode 100644 package/vuejs-router/vuejs-router.mk create mode 100644 package/vuejs/Config.in create mode 100644 package/vuejs/vuejs.hash create mode 100644 package/vuejs/vuejs.mk create mode 100644 package/vulkan-headers/Config.in create mode 100644 package/vulkan-headers/vulkan-headers.hash create mode 100644 package/vulkan-headers/vulkan-headers.mk create mode 100644 package/w_scan/0001-musl.patch create mode 100644 package/w_scan/0002-si_types-h-fix-build-with-gcc-10.patch create mode 100644 package/w_scan/Config.in create mode 100644 package/w_scan/w_scan.hash create mode 100644 package/w_scan/w_scan.mk create mode 100644 package/waf/waf.hash create mode 100644 package/waf/waf.mk create mode 100644 package/waffle/0001-cmake-forward-cflags-from-.pc-files-to-waffle-cflags.patch create mode 100644 package/waffle/0002-wayland-fix-build-against-version-1-20.patch create mode 100644 package/waffle/0003-drop-C-dependency.patch create mode 100644 package/waffle/Config.in create mode 100644 package/waffle/waffle.hash create mode 100644 package/waffle/waffle.mk create mode 100644 package/wampcc/0001-Add-RISC-V-endian-detection.patch create mode 100644 package/wampcc/0002-include-wampcc-platform.h-fix-build-with-musl-1.2.0.patch create mode 100644 package/wampcc/0003-Broken-build-on-Windows.patch create mode 100644 package/wampcc/Config.in create mode 100644 package/wampcc/wampcc.hash create mode 100644 package/wampcc/wampcc.mk create mode 100644 package/watchdog/Config.in create mode 100644 package/watchdog/watchdog.hash create mode 100644 package/watchdog/watchdog.mk create mode 100644 package/watchdogd/Config.in create mode 100755 package/watchdogd/S01watchdogd create mode 100644 package/watchdogd/watchdogd.hash create mode 100644 package/watchdogd/watchdogd.mk create mode 100644 package/wavemon/Config.in create mode 100644 package/wavemon/wavemon.hash create mode 100644 package/wavemon/wavemon.mk create mode 100644 package/wavpack/Config.in create mode 100644 package/wavpack/wavpack.hash create mode 100644 package/wavpack/wavpack.mk create mode 100644 package/wayland-protocols/Config.in create mode 100644 package/wayland-protocols/wayland-protocols.hash create mode 100644 package/wayland-protocols/wayland-protocols.mk create mode 100644 package/wayland-utils/Config.in create mode 100644 package/wayland-utils/wayland-utils.hash create mode 100644 package/wayland-utils/wayland-utils.mk create mode 100644 package/wayland/0001-build-set-c_std-c99.patch create mode 100644 package/wayland/0002-build-don-t-rely-on-implicit-GNU-extensions.patch create mode 100644 package/wayland/Config.in create mode 100644 package/wayland/wayland.hash create mode 100644 package/wayland/wayland.mk create mode 100644 package/waylandpp/Config.in create mode 100644 package/waylandpp/waylandpp.hash create mode 100644 package/waylandpp/waylandpp.mk create mode 100644 package/webkitgtk/Config.in create mode 100644 package/webkitgtk/webkitgtk.hash create mode 100644 package/webkitgtk/webkitgtk.mk create mode 100644 package/webp/Config.in create mode 100644 package/webp/webp.hash create mode 100644 package/webp/webp.mk create mode 100644 package/webrtc-audio-processing/0001-Proper-detection-of-cxxabi.h-and-execinfo.h.patch create mode 100644 package/webrtc-audio-processing/Config.in create mode 100644 package/webrtc-audio-processing/webrtc-audio-processing.hash create mode 100644 package/webrtc-audio-processing/webrtc-audio-processing.mk create mode 100644 package/websocketpp/Config.in create mode 100644 package/websocketpp/websocketpp.hash create mode 100644 package/websocketpp/websocketpp.mk create mode 100644 package/weston/0001-tests-Add-dependency-on-screenshooter-client-protocol.patch create mode 100644 package/weston/Config.in create mode 100644 package/weston/weston.hash create mode 100644 package/weston/weston.mk create mode 100644 package/wf111/Config.in create mode 100644 package/wf111/wf111.hash create mode 100644 package/wf111/wf111.mk create mode 100644 package/wget/0001-lib-getrandom.c-fix-build-with-uclibc-1.0.35.patch create mode 100644 package/wget/Config.in create mode 100644 package/wget/wget.hash create mode 100644 package/wget/wget.mk create mode 100644 package/whetstone/Config.in create mode 100644 package/whetstone/whetstone.hash create mode 100644 package/whetstone/whetstone.mk create mode 100644 package/which/Config.in create mode 100644 package/which/which.hash create mode 100644 package/which/which.mk create mode 100644 package/whois/Config.in create mode 100644 package/whois/whois.hash create mode 100644 package/whois/whois.mk create mode 100644 package/wilc-driver/Config.in create mode 100644 package/wilc-driver/wilc-driver.hash create mode 100644 package/wilc-driver/wilc-driver.mk create mode 100644 package/wilc-firmware/Config.in create mode 100644 package/wilc-firmware/wilc-firmware.hash create mode 100644 package/wilc-firmware/wilc-firmware.mk create mode 100644 package/wilink-bt-firmware/Config.in create mode 100644 package/wilink-bt-firmware/wilink-bt-firmware.hash create mode 100644 package/wilink-bt-firmware/wilink-bt-firmware.mk create mode 100644 package/wine/0001-l3codeca-avoid-mpg123-functions-with-suffix.patch create mode 100644 package/wine/0002-mp3dmod-avoid-mpg123-functions-with-suffix.patch create mode 100644 package/wine/Config.in create mode 100644 package/wine/wine.hash create mode 100644 package/wine/wine.mk create mode 100644 package/wipe/0001-musl.patch create mode 100644 package/wipe/Config.in create mode 100644 package/wipe/wipe.hash create mode 100644 package/wipe/wipe.mk create mode 100644 package/wireguard-linux-compat/Config.in create mode 100644 package/wireguard-linux-compat/wireguard-linux-compat.hash create mode 100644 package/wireguard-linux-compat/wireguard-linux-compat.mk create mode 100644 package/wireguard-tools/Config.in create mode 100644 package/wireguard-tools/wireguard-tools.hash create mode 100644 package/wireguard-tools/wireguard-tools.mk create mode 100644 package/wireless-regdb/Config.in create mode 100644 package/wireless-regdb/wireless-regdb.hash create mode 100644 package/wireless-regdb/wireless-regdb.mk create mode 100644 package/wireless_tools/0001-remove-bzero.patch create mode 100644 package/wireless_tools/Config.in create mode 100644 package/wireless_tools/wireless_tools.hash create mode 100644 package/wireless_tools/wireless_tools.mk create mode 100644 package/wireplumber/0001-fix-non-x86_64-architectures.patch create mode 100644 package/wireplumber/Config.in create mode 100644 package/wireplumber/wireplumber.hash create mode 100644 package/wireplumber/wireplumber.mk create mode 100644 package/wireshark/0001-cmake-lemon-wipe-CMAKE_-EXE_LINKER_FLAGS-SYSROOT-if-.patch create mode 100644 package/wireshark/Config.in create mode 100644 package/wireshark/wireshark.hash create mode 100644 package/wireshark/wireshark.mk create mode 100644 package/wlroots/0001-Add-feature-macros-to-more-C-files-.patch create mode 100644 package/wlroots/Config.in create mode 100644 package/wlroots/wlroots.hash create mode 100644 package/wlroots/wlroots.mk create mode 100644 package/wmctrl/Config.in create mode 100644 package/wmctrl/wmctrl.hash create mode 100644 package/wmctrl/wmctrl.mk create mode 100644 package/woff2/0001-CMake-Handle-multiple-libraries-being-returned-for-B.patch create mode 100644 package/woff2/Config.in create mode 100644 package/woff2/woff2.hash create mode 100644 package/woff2/woff2.mk create mode 100644 package/wolfssl/Config.in create mode 100644 package/wolfssl/wolfssl.hash create mode 100644 package/wolfssl/wolfssl.mk create mode 100644 package/wolftpm/Config.in create mode 100644 package/wolftpm/wolftpm.hash create mode 100644 package/wolftpm/wolftpm.mk create mode 100644 package/wpa_supplicant/0001-build-re-enable-options-for-libwpa_client.so-and-.patch create mode 100644 package/wpa_supplicant/50-wpa_supplicant.preset create mode 100644 package/wpa_supplicant/Config.in create mode 100755 package/wpa_supplicant/ifupdown.sh create mode 100644 package/wpa_supplicant/wpa_supplicant.conf create mode 100644 package/wpa_supplicant/wpa_supplicant.hash create mode 100644 package/wpa_supplicant/wpa_supplicant.mk create mode 100644 package/wpan-tools/Config.in create mode 100644 package/wpan-tools/wpan-tools.hash create mode 100644 package/wpan-tools/wpan-tools.mk create mode 100644 package/wpebackend-fdo/Config.in create mode 100644 package/wpebackend-fdo/wpebackend-fdo.hash create mode 100644 package/wpebackend-fdo/wpebackend-fdo.mk create mode 100644 package/wpewebkit/Config.in create mode 100644 package/wpewebkit/wpewebkit.hash create mode 100644 package/wpewebkit/wpewebkit.mk create mode 100644 package/wqy-zenhei/Config.in create mode 100644 package/wqy-zenhei/wqy-zenhei.hash create mode 100644 package/wqy-zenhei/wqy-zenhei.mk create mode 100644 package/wsapi-fcgi/Config.in create mode 100644 package/wsapi-fcgi/wsapi-fcgi.hash create mode 100644 package/wsapi-fcgi/wsapi-fcgi.mk create mode 100644 package/wsapi-xavante/Config.in create mode 100644 package/wsapi-xavante/wsapi-xavante.hash create mode 100644 package/wsapi-xavante/wsapi-xavante.mk create mode 100644 package/wsapi/Config.in create mode 100644 package/wsapi/wsapi.hash create mode 100644 package/wsapi/wsapi.mk create mode 100644 package/wtfutil/Config.in create mode 100644 package/wtfutil/wtfutil.hash create mode 100644 package/wtfutil/wtfutil.mk create mode 100644 package/x11r7/Config.in create mode 100644 package/x11r7/libxcb/Config.in create mode 100644 package/x11r7/libxcb/libxcb.hash create mode 100644 package/x11r7/libxcb/libxcb.mk create mode 100644 package/x11r7/mcookie/Config.in create mode 100644 package/x11r7/mcookie/mcookie.c create mode 100644 package/x11r7/mcookie/mcookie.mk create mode 100644 package/x11r7/x11r7.mk create mode 100644 package/x11r7/xapp_appres/Config.in create mode 100644 package/x11r7/xapp_appres/xapp_appres.hash create mode 100644 package/x11r7/xapp_appres/xapp_appres.mk create mode 100644 package/x11r7/xapp_bdftopcf/Config.in create mode 100644 package/x11r7/xapp_bdftopcf/xapp_bdftopcf.hash create mode 100644 package/x11r7/xapp_bdftopcf/xapp_bdftopcf.mk create mode 100644 package/x11r7/xapp_beforelight/Config.in create mode 100644 package/x11r7/xapp_beforelight/xapp_beforelight.hash create mode 100644 package/x11r7/xapp_beforelight/xapp_beforelight.mk create mode 100644 package/x11r7/xapp_bitmap/Config.in create mode 100644 package/x11r7/xapp_bitmap/xapp_bitmap.hash create mode 100644 package/x11r7/xapp_bitmap/xapp_bitmap.mk create mode 100644 package/x11r7/xapp_editres/Config.in create mode 100644 package/x11r7/xapp_editres/xapp_editres.hash create mode 100644 package/x11r7/xapp_editres/xapp_editres.mk create mode 100644 package/x11r7/xapp_fonttosfnt/Config.in create mode 100644 package/x11r7/xapp_fonttosfnt/xapp_fonttosfnt.hash create mode 100644 package/x11r7/xapp_fonttosfnt/xapp_fonttosfnt.mk create mode 100644 package/x11r7/xapp_fslsfonts/Config.in create mode 100644 package/x11r7/xapp_fslsfonts/xapp_fslsfonts.hash create mode 100644 package/x11r7/xapp_fslsfonts/xapp_fslsfonts.mk create mode 100644 package/x11r7/xapp_fstobdf/Config.in create mode 100644 package/x11r7/xapp_fstobdf/xapp_fstobdf.hash create mode 100644 package/x11r7/xapp_fstobdf/xapp_fstobdf.mk create mode 100644 package/x11r7/xapp_iceauth/Config.in create mode 100644 package/x11r7/xapp_iceauth/xapp_iceauth.hash create mode 100644 package/x11r7/xapp_iceauth/xapp_iceauth.mk create mode 100644 package/x11r7/xapp_ico/Config.in create mode 100644 package/x11r7/xapp_ico/xapp_ico.hash create mode 100644 package/x11r7/xapp_ico/xapp_ico.mk create mode 100644 package/x11r7/xapp_listres/Config.in create mode 100644 package/x11r7/xapp_listres/xapp_listres.hash create mode 100644 package/x11r7/xapp_listres/xapp_listres.mk create mode 100644 package/x11r7/xapp_luit/0001-posix-openpt.patch create mode 100644 package/x11r7/xapp_luit/Config.in create mode 100644 package/x11r7/xapp_luit/xapp_luit.hash create mode 100644 package/x11r7/xapp_luit/xapp_luit.mk create mode 100644 package/x11r7/xapp_mkfontscale/Config.in create mode 100644 package/x11r7/xapp_mkfontscale/xapp_mkfontscale.hash create mode 100644 package/x11r7/xapp_mkfontscale/xapp_mkfontscale.mk create mode 100644 package/x11r7/xapp_oclock/Config.in create mode 100644 package/x11r7/xapp_oclock/xapp_oclock.hash create mode 100644 package/x11r7/xapp_oclock/xapp_oclock.mk create mode 100644 package/x11r7/xapp_rgb/Config.in create mode 100644 package/x11r7/xapp_rgb/xapp_rgb.hash create mode 100644 package/x11r7/xapp_rgb/xapp_rgb.mk create mode 100644 package/x11r7/xapp_rstart/Config.in create mode 100644 package/x11r7/xapp_rstart/xapp_rstart.hash create mode 100644 package/x11r7/xapp_rstart/xapp_rstart.mk create mode 100644 package/x11r7/xapp_scripts/Config.in create mode 100644 package/x11r7/xapp_scripts/xapp_scripts.hash create mode 100644 package/x11r7/xapp_scripts/xapp_scripts.mk create mode 100644 package/x11r7/xapp_sessreg/Config.in create mode 100644 package/x11r7/xapp_sessreg/xapp_sessreg.hash create mode 100644 package/x11r7/xapp_sessreg/xapp_sessreg.mk create mode 100644 package/x11r7/xapp_setxkbmap/Config.in create mode 100644 package/x11r7/xapp_setxkbmap/xapp_setxkbmap.hash create mode 100644 package/x11r7/xapp_setxkbmap/xapp_setxkbmap.mk create mode 100644 package/x11r7/xapp_showfont/Config.in create mode 100644 package/x11r7/xapp_showfont/xapp_showfont.hash create mode 100644 package/x11r7/xapp_showfont/xapp_showfont.mk create mode 100644 package/x11r7/xapp_smproxy/Config.in create mode 100644 package/x11r7/xapp_smproxy/xapp_smproxy.hash create mode 100644 package/x11r7/xapp_smproxy/xapp_smproxy.mk create mode 100644 package/x11r7/xapp_twm/Config.in create mode 100644 package/x11r7/xapp_twm/xapp_twm.hash create mode 100644 package/x11r7/xapp_twm/xapp_twm.mk create mode 100644 package/x11r7/xapp_viewres/Config.in create mode 100644 package/x11r7/xapp_viewres/xapp_viewres.hash create mode 100644 package/x11r7/xapp_viewres/xapp_viewres.mk create mode 100644 package/x11r7/xapp_x11perf/Config.in create mode 100644 package/x11r7/xapp_x11perf/xapp_x11perf.hash create mode 100644 package/x11r7/xapp_x11perf/xapp_x11perf.mk create mode 100644 package/x11r7/xapp_xauth/Config.in create mode 100644 package/x11r7/xapp_xauth/xapp_xauth.hash create mode 100644 package/x11r7/xapp_xauth/xapp_xauth.mk create mode 100644 package/x11r7/xapp_xbacklight/Config.in create mode 100644 package/x11r7/xapp_xbacklight/xapp_xbacklight.hash create mode 100644 package/x11r7/xapp_xbacklight/xapp_xbacklight.mk create mode 100644 package/x11r7/xapp_xbiff/Config.in create mode 100644 package/x11r7/xapp_xbiff/xapp_xbiff.hash create mode 100644 package/x11r7/xapp_xbiff/xapp_xbiff.mk create mode 100644 package/x11r7/xapp_xcalc/Config.in create mode 100644 package/x11r7/xapp_xcalc/xapp_xcalc.hash create mode 100644 package/x11r7/xapp_xcalc/xapp_xcalc.mk create mode 100644 package/x11r7/xapp_xclipboard/Config.in create mode 100644 package/x11r7/xapp_xclipboard/xapp_xclipboard.hash create mode 100644 package/x11r7/xapp_xclipboard/xapp_xclipboard.mk create mode 100644 package/x11r7/xapp_xclock/Config.in create mode 100644 package/x11r7/xapp_xclock/xapp_xclock.hash create mode 100644 package/x11r7/xapp_xclock/xapp_xclock.mk create mode 100644 package/x11r7/xapp_xcmsdb/Config.in create mode 100644 package/x11r7/xapp_xcmsdb/xapp_xcmsdb.hash create mode 100644 package/x11r7/xapp_xcmsdb/xapp_xcmsdb.mk create mode 100644 package/x11r7/xapp_xcompmgr/Config.in create mode 100644 package/x11r7/xapp_xcompmgr/xapp_xcompmgr.hash create mode 100644 package/x11r7/xapp_xcompmgr/xapp_xcompmgr.mk create mode 100644 package/x11r7/xapp_xconsole/Config.in create mode 100644 package/x11r7/xapp_xconsole/xapp_xconsole.hash create mode 100644 package/x11r7/xapp_xconsole/xapp_xconsole.mk create mode 100644 package/x11r7/xapp_xcursorgen/Config.in create mode 100644 package/x11r7/xapp_xcursorgen/xapp_xcursorgen.hash create mode 100644 package/x11r7/xapp_xcursorgen/xapp_xcursorgen.mk create mode 100644 package/x11r7/xapp_xdbedizzy/Config.in create mode 100644 package/x11r7/xapp_xdbedizzy/xapp_xdbedizzy.hash create mode 100644 package/x11r7/xapp_xdbedizzy/xapp_xdbedizzy.mk create mode 100644 package/x11r7/xapp_xditview/Config.in create mode 100644 package/x11r7/xapp_xditview/xapp_xditview.hash create mode 100644 package/x11r7/xapp_xditview/xapp_xditview.mk create mode 100644 package/x11r7/xapp_xdm/Config.in create mode 100644 package/x11r7/xapp_xdm/S99xdm create mode 100644 package/x11r7/xapp_xdm/xapp_xdm.hash create mode 100644 package/x11r7/xapp_xdm/xapp_xdm.mk create mode 100644 package/x11r7/xapp_xdpyinfo/Config.in create mode 100644 package/x11r7/xapp_xdpyinfo/xapp_xdpyinfo.hash create mode 100644 package/x11r7/xapp_xdpyinfo/xapp_xdpyinfo.mk create mode 100644 package/x11r7/xapp_xdriinfo/Config.in create mode 100644 package/x11r7/xapp_xdriinfo/xapp_xdriinfo.hash create mode 100644 package/x11r7/xapp_xdriinfo/xapp_xdriinfo.mk create mode 100644 package/x11r7/xapp_xedit/Config.in create mode 100644 package/x11r7/xapp_xedit/xapp_xedit.hash create mode 100644 package/x11r7/xapp_xedit/xapp_xedit.mk create mode 100644 package/x11r7/xapp_xev/Config.in create mode 100644 package/x11r7/xapp_xev/xapp_xev.hash create mode 100644 package/x11r7/xapp_xev/xapp_xev.mk create mode 100644 package/x11r7/xapp_xeyes/Config.in create mode 100644 package/x11r7/xapp_xeyes/xapp_xeyes.hash create mode 100644 package/x11r7/xapp_xeyes/xapp_xeyes.mk create mode 100644 package/x11r7/xapp_xf86dga/Config.in create mode 100644 package/x11r7/xapp_xf86dga/xapp_xf86dga.hash create mode 100644 package/x11r7/xapp_xf86dga/xapp_xf86dga.mk create mode 100644 package/x11r7/xapp_xfd/Config.in create mode 100644 package/x11r7/xapp_xfd/xapp_xfd.hash create mode 100644 package/x11r7/xapp_xfd/xapp_xfd.mk create mode 100644 package/x11r7/xapp_xfindproxy/Config.in create mode 100644 package/x11r7/xapp_xfindproxy/xapp_xfindproxy.hash create mode 100644 package/x11r7/xapp_xfindproxy/xapp_xfindproxy.mk create mode 100644 package/x11r7/xapp_xfontsel/Config.in create mode 100644 package/x11r7/xapp_xfontsel/xapp_xfontsel.hash create mode 100644 package/x11r7/xapp_xfontsel/xapp_xfontsel.mk create mode 100644 package/x11r7/xapp_xfs/Config.in create mode 100644 package/x11r7/xapp_xfs/xapp_xfs.hash create mode 100644 package/x11r7/xapp_xfs/xapp_xfs.mk create mode 100644 package/x11r7/xapp_xfsinfo/Config.in create mode 100644 package/x11r7/xapp_xfsinfo/xapp_xfsinfo.hash create mode 100644 package/x11r7/xapp_xfsinfo/xapp_xfsinfo.mk create mode 100644 package/x11r7/xapp_xgamma/Config.in create mode 100644 package/x11r7/xapp_xgamma/xapp_xgamma.hash create mode 100644 package/x11r7/xapp_xgamma/xapp_xgamma.mk create mode 100644 package/x11r7/xapp_xgc/Config.in create mode 100644 package/x11r7/xapp_xgc/xapp_xgc.hash create mode 100644 package/x11r7/xapp_xgc/xapp_xgc.mk create mode 100644 package/x11r7/xapp_xhost/Config.in create mode 100644 package/x11r7/xapp_xhost/xapp_xhost.hash create mode 100644 package/x11r7/xapp_xhost/xapp_xhost.mk create mode 100644 package/x11r7/xapp_xinit/Config.in create mode 100644 package/x11r7/xapp_xinit/xapp_xinit.hash create mode 100644 package/x11r7/xapp_xinit/xapp_xinit.mk create mode 100644 package/x11r7/xapp_xinput-calibrator/Config.in create mode 100644 package/x11r7/xapp_xinput-calibrator/xapp_xinput-calibrator.hash create mode 100644 package/x11r7/xapp_xinput-calibrator/xapp_xinput-calibrator.mk create mode 100644 package/x11r7/xapp_xinput/Config.in create mode 100644 package/x11r7/xapp_xinput/xapp_xinput.hash create mode 100644 package/x11r7/xapp_xinput/xapp_xinput.mk create mode 100644 package/x11r7/xapp_xkbcomp/Config.in create mode 100644 package/x11r7/xapp_xkbcomp/xapp_xkbcomp.hash create mode 100644 package/x11r7/xapp_xkbcomp/xapp_xkbcomp.mk create mode 100644 package/x11r7/xapp_xkbevd/Config.in create mode 100644 package/x11r7/xapp_xkbevd/xapp_xkbevd.hash create mode 100644 package/x11r7/xapp_xkbevd/xapp_xkbevd.mk create mode 100644 package/x11r7/xapp_xkbprint/Config.in create mode 100644 package/x11r7/xapp_xkbprint/xapp_xkbprint.hash create mode 100644 package/x11r7/xapp_xkbprint/xapp_xkbprint.mk create mode 100644 package/x11r7/xapp_xkbutils/Config.in create mode 100644 package/x11r7/xapp_xkbutils/xapp_xkbutils.hash create mode 100644 package/x11r7/xapp_xkbutils/xapp_xkbutils.mk create mode 100644 package/x11r7/xapp_xkill/Config.in create mode 100644 package/x11r7/xapp_xkill/xapp_xkill.hash create mode 100644 package/x11r7/xapp_xkill/xapp_xkill.mk create mode 100644 package/x11r7/xapp_xload/Config.in create mode 100644 package/x11r7/xapp_xload/xapp_xload.hash create mode 100644 package/x11r7/xapp_xload/xapp_xload.mk create mode 100644 package/x11r7/xapp_xlogo/Config.in create mode 100644 package/x11r7/xapp_xlogo/xapp_xlogo.hash create mode 100644 package/x11r7/xapp_xlogo/xapp_xlogo.mk create mode 100644 package/x11r7/xapp_xlsatoms/Config.in create mode 100644 package/x11r7/xapp_xlsatoms/xapp_xlsatoms.hash create mode 100644 package/x11r7/xapp_xlsatoms/xapp_xlsatoms.mk create mode 100644 package/x11r7/xapp_xlsclients/Config.in create mode 100644 package/x11r7/xapp_xlsclients/xapp_xlsclients.hash create mode 100644 package/x11r7/xapp_xlsclients/xapp_xlsclients.mk create mode 100644 package/x11r7/xapp_xlsfonts/Config.in create mode 100644 package/x11r7/xapp_xlsfonts/xapp_xlsfonts.hash create mode 100644 package/x11r7/xapp_xlsfonts/xapp_xlsfonts.mk create mode 100644 package/x11r7/xapp_xmag/Config.in create mode 100644 package/x11r7/xapp_xmag/xapp_xmag.hash create mode 100644 package/x11r7/xapp_xmag/xapp_xmag.mk create mode 100644 package/x11r7/xapp_xman/Config.in create mode 100644 package/x11r7/xapp_xman/xapp_xman.hash create mode 100644 package/x11r7/xapp_xman/xapp_xman.mk create mode 100644 package/x11r7/xapp_xmessage/Config.in create mode 100644 package/x11r7/xapp_xmessage/xapp_xmessage.hash create mode 100644 package/x11r7/xapp_xmessage/xapp_xmessage.mk create mode 100644 package/x11r7/xapp_xmh/Config.in create mode 100644 package/x11r7/xapp_xmh/xapp_xmh.hash create mode 100644 package/x11r7/xapp_xmh/xapp_xmh.mk create mode 100644 package/x11r7/xapp_xmodmap/Config.in create mode 100644 package/x11r7/xapp_xmodmap/xapp_xmodmap.hash create mode 100644 package/x11r7/xapp_xmodmap/xapp_xmodmap.mk create mode 100644 package/x11r7/xapp_xmore/Config.in create mode 100644 package/x11r7/xapp_xmore/xapp_xmore.hash create mode 100644 package/x11r7/xapp_xmore/xapp_xmore.mk create mode 100644 package/x11r7/xapp_xpr/Config.in create mode 100644 package/x11r7/xapp_xpr/xapp_xpr.hash create mode 100644 package/x11r7/xapp_xpr/xapp_xpr.mk create mode 100644 package/x11r7/xapp_xprop/Config.in create mode 100644 package/x11r7/xapp_xprop/xapp_xprop.hash create mode 100644 package/x11r7/xapp_xprop/xapp_xprop.mk create mode 100644 package/x11r7/xapp_xrandr/Config.in create mode 100644 package/x11r7/xapp_xrandr/xapp_xrandr.hash create mode 100644 package/x11r7/xapp_xrandr/xapp_xrandr.mk create mode 100644 package/x11r7/xapp_xrdb/Config.in create mode 100644 package/x11r7/xapp_xrdb/xapp_xrdb.hash create mode 100644 package/x11r7/xapp_xrdb/xapp_xrdb.mk create mode 100644 package/x11r7/xapp_xrefresh/Config.in create mode 100644 package/x11r7/xapp_xrefresh/xapp_xrefresh.hash create mode 100644 package/x11r7/xapp_xrefresh/xapp_xrefresh.mk create mode 100644 package/x11r7/xapp_xset/Config.in create mode 100644 package/x11r7/xapp_xset/xapp_xset.hash create mode 100644 package/x11r7/xapp_xset/xapp_xset.mk create mode 100644 package/x11r7/xapp_xsetmode/Config.in create mode 100644 package/x11r7/xapp_xsetmode/xapp_xsetmode.hash create mode 100644 package/x11r7/xapp_xsetmode/xapp_xsetmode.mk create mode 100644 package/x11r7/xapp_xsetpointer/Config.in create mode 100644 package/x11r7/xapp_xsetpointer/xapp_xsetpointer.hash create mode 100644 package/x11r7/xapp_xsetpointer/xapp_xsetpointer.mk create mode 100644 package/x11r7/xapp_xsetroot/Config.in create mode 100644 package/x11r7/xapp_xsetroot/xapp_xsetroot.hash create mode 100644 package/x11r7/xapp_xsetroot/xapp_xsetroot.mk create mode 100644 package/x11r7/xapp_xsm/Config.in create mode 100644 package/x11r7/xapp_xsm/xapp_xsm.hash create mode 100644 package/x11r7/xapp_xsm/xapp_xsm.mk create mode 100644 package/x11r7/xapp_xstdcmap/Config.in create mode 100644 package/x11r7/xapp_xstdcmap/xapp_xstdcmap.hash create mode 100644 package/x11r7/xapp_xstdcmap/xapp_xstdcmap.mk create mode 100644 package/x11r7/xapp_xvidtune/Config.in create mode 100644 package/x11r7/xapp_xvidtune/xapp_xvidtune.hash create mode 100644 package/x11r7/xapp_xvidtune/xapp_xvidtune.mk create mode 100644 package/x11r7/xapp_xvinfo/Config.in create mode 100644 package/x11r7/xapp_xvinfo/xapp_xvinfo.hash create mode 100644 package/x11r7/xapp_xvinfo/xapp_xvinfo.mk create mode 100644 package/x11r7/xapp_xwd/Config.in create mode 100644 package/x11r7/xapp_xwd/xapp_xwd.hash create mode 100644 package/x11r7/xapp_xwd/xapp_xwd.mk create mode 100644 package/x11r7/xapp_xwininfo/Config.in create mode 100644 package/x11r7/xapp_xwininfo/xapp_xwininfo.hash create mode 100644 package/x11r7/xapp_xwininfo/xapp_xwininfo.mk create mode 100644 package/x11r7/xapp_xwud/Config.in create mode 100644 package/x11r7/xapp_xwud/xapp_xwud.hash create mode 100644 package/x11r7/xapp_xwud/xapp_xwud.mk create mode 100644 package/x11r7/xcb-proto/Config.in create mode 100644 package/x11r7/xcb-proto/xcb-proto.hash create mode 100644 package/x11r7/xcb-proto/xcb-proto.mk create mode 100644 package/x11r7/xcb-util-cursor/Config.in create mode 100644 package/x11r7/xcb-util-cursor/xcb-util-cursor.hash create mode 100644 package/x11r7/xcb-util-cursor/xcb-util-cursor.mk create mode 100644 package/x11r7/xcb-util-image/Config.in create mode 100644 package/x11r7/xcb-util-image/xcb-util-image.hash create mode 100644 package/x11r7/xcb-util-image/xcb-util-image.mk create mode 100644 package/x11r7/xcb-util-keysyms/Config.in create mode 100644 package/x11r7/xcb-util-keysyms/xcb-util-keysyms.hash create mode 100644 package/x11r7/xcb-util-keysyms/xcb-util-keysyms.mk create mode 100644 package/x11r7/xcb-util-renderutil/Config.in create mode 100644 package/x11r7/xcb-util-renderutil/xcb-util-renderutil.hash create mode 100644 package/x11r7/xcb-util-renderutil/xcb-util-renderutil.mk create mode 100644 package/x11r7/xcb-util-wm/Config.in create mode 100644 package/x11r7/xcb-util-wm/xcb-util-wm.hash create mode 100644 package/x11r7/xcb-util-wm/xcb-util-wm.mk create mode 100644 package/x11r7/xcb-util/Config.in create mode 100644 package/x11r7/xcb-util/xcb-util.hash create mode 100644 package/x11r7/xcb-util/xcb-util.mk create mode 100644 package/x11r7/xcursor-transparent-theme/0001-fix-symlink.patch create mode 100644 package/x11r7/xcursor-transparent-theme/Config.in create mode 100644 package/x11r7/xcursor-transparent-theme/index.theme create mode 100644 package/x11r7/xcursor-transparent-theme/xcursor-transparent-theme.hash create mode 100644 package/x11r7/xcursor-transparent-theme/xcursor-transparent-theme.mk create mode 100644 package/x11r7/xdata_xbitmaps/Config.in create mode 100644 package/x11r7/xdata_xbitmaps/xdata_xbitmaps.hash create mode 100644 package/x11r7/xdata_xbitmaps/xdata_xbitmaps.mk create mode 100644 package/x11r7/xdata_xcursor-themes/Config.in create mode 100644 package/x11r7/xdata_xcursor-themes/xdata_xcursor-themes.hash create mode 100644 package/x11r7/xdata_xcursor-themes/xdata_xcursor-themes.mk create mode 100644 package/x11r7/xdriver_xf86-input-evdev/0001-build-get-rid-of-sdkdir.patch create mode 100644 package/x11r7/xdriver_xf86-input-evdev/Config.in create mode 100644 package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev.hash create mode 100644 package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev.mk create mode 100644 package/x11r7/xdriver_xf86-input-joystick/0001-build-get-rid-of-sdkdir.patch create mode 100644 package/x11r7/xdriver_xf86-input-joystick/50-joystick.conf create mode 100644 package/x11r7/xdriver_xf86-input-joystick/Config.in create mode 100644 package/x11r7/xdriver_xf86-input-joystick/xdriver_xf86-input-joystick.hash create mode 100644 package/x11r7/xdriver_xf86-input-joystick/xdriver_xf86-input-joystick.mk create mode 100644 package/x11r7/xdriver_xf86-input-keyboard/Config.in create mode 100644 package/x11r7/xdriver_xf86-input-keyboard/xdriver_xf86-input-keyboard.hash create mode 100644 package/x11r7/xdriver_xf86-input-keyboard/xdriver_xf86-input-keyboard.mk create mode 100644 package/x11r7/xdriver_xf86-input-libinput/0001-build-get-rid-of-sdkdir.patch create mode 100644 package/x11r7/xdriver_xf86-input-libinput/Config.in create mode 100644 package/x11r7/xdriver_xf86-input-libinput/xdriver_xf86-input-libinput.hash create mode 100644 package/x11r7/xdriver_xf86-input-libinput/xdriver_xf86-input-libinput.mk create mode 100644 package/x11r7/xdriver_xf86-input-mouse/0001-build-get-rid-of-sdkdir.patch create mode 100644 package/x11r7/xdriver_xf86-input-mouse/Config.in create mode 100644 package/x11r7/xdriver_xf86-input-mouse/xdriver_xf86-input-mouse.hash create mode 100644 package/x11r7/xdriver_xf86-input-mouse/xdriver_xf86-input-mouse.mk create mode 100644 package/x11r7/xdriver_xf86-input-synaptics/0001-build-get-rid-of-sdkdir.patch create mode 100644 package/x11r7/xdriver_xf86-input-synaptics/Config.in create mode 100644 package/x11r7/xdriver_xf86-input-synaptics/xdriver_xf86-input-synaptics.hash create mode 100644 package/x11r7/xdriver_xf86-input-synaptics/xdriver_xf86-input-synaptics.mk create mode 100644 package/x11r7/xdriver_xf86-input-tslib/Config.in create mode 100644 package/x11r7/xdriver_xf86-input-tslib/xdriver_xf86-input-tslib.hash create mode 100644 package/x11r7/xdriver_xf86-input-tslib/xdriver_xf86-input-tslib.mk create mode 100644 package/x11r7/xdriver_xf86-input-vmmouse/Config.in create mode 100644 package/x11r7/xdriver_xf86-input-vmmouse/xdriver_xf86-input-vmmouse.hash create mode 100644 package/x11r7/xdriver_xf86-input-vmmouse/xdriver_xf86-input-vmmouse.mk create mode 100644 package/x11r7/xdriver_xf86-video-amdgpu/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-amdgpu/xdriver_xf86-video-amdgpu.hash create mode 100644 package/x11r7/xdriver_xf86-video-amdgpu/xdriver_xf86-video-amdgpu.mk create mode 100644 package/x11r7/xdriver_xf86-video-ark/0001-mibstore.patch create mode 100644 package/x11r7/xdriver_xf86-video-ark/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-ark/xdriver_xf86-video-ark.hash create mode 100644 package/x11r7/xdriver_xf86-video-ark/xdriver_xf86-video-ark.mk create mode 100644 package/x11r7/xdriver_xf86-video-ast/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-ast/xdriver_xf86-video-ast.hash create mode 100644 package/x11r7/xdriver_xf86-video-ast/xdriver_xf86-video-ast.mk create mode 100644 package/x11r7/xdriver_xf86-video-ati/0001-Fix-link-failure-with-gcc-10.patch create mode 100644 package/x11r7/xdriver_xf86-video-ati/0002-ati-cleanup-terminology-to-use-primary-secondary.patch create mode 100644 package/x11r7/xdriver_xf86-video-ati/0003-Guard-local-variable-priv-only-used-with-glamor.patch create mode 100644 package/x11r7/xdriver_xf86-video-ati/0004-Only-include-dri-h-with-older-versions-of-xserver.patch create mode 100644 package/x11r7/xdriver_xf86-video-ati/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-ati/xdriver_xf86-video-ati.hash create mode 100644 package/x11r7/xdriver_xf86-video-ati/xdriver_xf86-video-ati.mk create mode 100644 package/x11r7/xdriver_xf86-video-cirrus/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-cirrus/xdriver_xf86-video-cirrus.hash create mode 100644 package/x11r7/xdriver_xf86-video-cirrus/xdriver_xf86-video-cirrus.mk create mode 100644 package/x11r7/xdriver_xf86-video-dummy/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-dummy/xdriver_xf86-video-dummy.hash create mode 100644 package/x11r7/xdriver_xf86-video-dummy/xdriver_xf86-video-dummy.mk create mode 100644 package/x11r7/xdriver_xf86-video-fbdev/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-fbdev/xdriver_xf86-video-fbdev.hash create mode 100644 package/x11r7/xdriver_xf86-video-fbdev/xdriver_xf86-video-fbdev.mk create mode 100644 package/x11r7/xdriver_xf86-video-fbturbo/0001-sunxi_x_g2d-drop-unused-dri2-include.patch create mode 100644 package/x11r7/xdriver_xf86-video-fbturbo/0002-Use-own-thunk-functions-instead-of-fbdevHW-Weak.patch create mode 100644 package/x11r7/xdriver_xf86-video-fbturbo/0003-Update-for-1.20-ABI.patch create mode 100644 package/x11r7/xdriver_xf86-video-fbturbo/0004-xorg.conf-add-mandatory-modules-fb-shadow-fbdevhw.patch create mode 100644 package/x11r7/xdriver_xf86-video-fbturbo/0005-backing_store_tuner-struct-_Window-backStorage-is-go.patch create mode 100644 package/x11r7/xdriver_xf86-video-fbturbo/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-fbturbo/xdriver_xf86-video-fbturbo.hash create mode 100644 package/x11r7/xdriver_xf86-video-fbturbo/xdriver_xf86-video-fbturbo.mk create mode 100644 package/x11r7/xdriver_xf86-video-geode/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-geode/xdriver_xf86-video-geode.hash create mode 100644 package/x11r7/xdriver_xf86-video-geode/xdriver_xf86-video-geode.mk create mode 100644 package/x11r7/xdriver_xf86-video-glint/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-glint/xdriver_xf86-video-glint.hash create mode 100644 package/x11r7/xdriver_xf86-video-glint/xdriver_xf86-video-glint.mk create mode 100644 package/x11r7/xdriver_xf86-video-i128/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-i128/xdriver_xf86-video-i128.hash create mode 100644 package/x11r7/xdriver_xf86-video-i128/xdriver_xf86-video-i128.mk create mode 100644 package/x11r7/xdriver_xf86-video-imx-viv/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.hash create mode 100644 package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk create mode 100644 package/x11r7/xdriver_xf86-video-imx/0001-Update-to-newer-swap-macros.patch create mode 100644 package/x11r7/xdriver_xf86-video-imx/0002-Fix-error-unknown-type-name-uint.patch create mode 100644 package/x11r7/xdriver_xf86-video-imx/0003-support-glibc-2.20.patch create mode 100644 package/x11r7/xdriver_xf86-video-imx/0004-Make-video-API-forward-and-backward-compatible.patch create mode 100644 package/x11r7/xdriver_xf86-video-imx/0005-xf86-video-imxfb-fix-m4-hardcodded-paths.patch create mode 100644 package/x11r7/xdriver_xf86-video-imx/0006-xserver-1.14-compat.patch create mode 100644 package/x11r7/xdriver_xf86-video-imx/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-imx/xdriver_xf86-video-imx.hash create mode 100644 package/x11r7/xdriver_xf86-video-imx/xdriver_xf86-video-imx.mk create mode 100644 package/x11r7/xdriver_xf86-video-intel/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-intel/xdriver_xf86-video-intel.hash create mode 100644 package/x11r7/xdriver_xf86-video-intel/xdriver_xf86-video-intel.mk create mode 100644 package/x11r7/xdriver_xf86-video-mach64/0001-cross-compile.patch create mode 100644 package/x11r7/xdriver_xf86-video-mach64/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-mach64/xdriver_xf86-video-mach64.hash create mode 100644 package/x11r7/xdriver_xf86-video-mach64/xdriver_xf86-video-mach64.mk create mode 100644 package/x11r7/xdriver_xf86-video-mga/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-mga/xdriver_xf86-video-mga.hash create mode 100644 package/x11r7/xdriver_xf86-video-mga/xdriver_xf86-video-mga.mk create mode 100644 package/x11r7/xdriver_xf86-video-neomagic/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-neomagic/xdriver_xf86-video-neomagic.hash create mode 100644 package/x11r7/xdriver_xf86-video-neomagic/xdriver_xf86-video-neomagic.mk create mode 100644 package/x11r7/xdriver_xf86-video-nouveau/0001-nouveau-fixup-driver-for-new-X-server-ABI.patch create mode 100644 package/x11r7/xdriver_xf86-video-nouveau/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-nouveau/xdriver_xf86-video-nouveau.hash create mode 100644 package/x11r7/xdriver_xf86-video-nouveau/xdriver_xf86-video-nouveau.mk create mode 100644 package/x11r7/xdriver_xf86-video-nv/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-nv/xdriver_xf86-video-nv.hash create mode 100644 package/x11r7/xdriver_xf86-video-nv/xdriver_xf86-video-nv.mk create mode 100644 package/x11r7/xdriver_xf86-video-openchrome/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-openchrome/xdriver_xf86-video-openchrome.hash create mode 100644 package/x11r7/xdriver_xf86-video-openchrome/xdriver_xf86-video-openchrome.mk create mode 100644 package/x11r7/xdriver_xf86-video-qxl/0001-Fix-a-build-error-with-Xorg-master.patch create mode 100644 package/x11r7/xdriver_xf86-video-qxl/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-qxl/xdriver_xf86-video-qxl.hash create mode 100644 package/x11r7/xdriver_xf86-video-qxl/xdriver_xf86-video-qxl.mk create mode 100644 package/x11r7/xdriver_xf86-video-r128/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-r128/xdriver_xf86-video-r128.hash create mode 100644 package/x11r7/xdriver_xf86-video-r128/xdriver_xf86-video-r128.mk create mode 100644 package/x11r7/xdriver_xf86-video-savage/0001-cross-compile.patch create mode 100644 package/x11r7/xdriver_xf86-video-savage/0002-xorg-xserver120.patch create mode 100644 package/x11r7/xdriver_xf86-video-savage/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-savage/xdriver_xf86-video-savage.hash create mode 100644 package/x11r7/xdriver_xf86-video-savage/xdriver_xf86-video-savage.mk create mode 100644 package/x11r7/xdriver_xf86-video-siliconmotion/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-siliconmotion/xdriver_xf86-video-siliconmotion.hash create mode 100644 package/x11r7/xdriver_xf86-video-siliconmotion/xdriver_xf86-video-siliconmotion.mk create mode 100644 package/x11r7/xdriver_xf86-video-sis/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-sis/xdriver_xf86-video-sis.hash create mode 100644 package/x11r7/xdriver_xf86-video-sis/xdriver_xf86-video-sis.mk create mode 100644 package/x11r7/xdriver_xf86-video-tdfx/0001-cross.patch create mode 100644 package/x11r7/xdriver_xf86-video-tdfx/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-tdfx/xdriver_xf86-video-tdfx.hash create mode 100644 package/x11r7/xdriver_xf86-video-tdfx/xdriver_xf86-video-tdfx.mk create mode 100644 package/x11r7/xdriver_xf86-video-tga/0001-mibstore.patch create mode 100644 package/x11r7/xdriver_xf86-video-tga/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-tga/xdriver_xf86-video-tga.hash create mode 100644 package/x11r7/xdriver_xf86-video-tga/xdriver_xf86-video-tga.mk create mode 100644 package/x11r7/xdriver_xf86-video-trident/0001-Remove-ramdac.patch create mode 100644 package/x11r7/xdriver_xf86-video-trident/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-trident/xdriver_xf86-video-trident.hash create mode 100644 package/x11r7/xdriver_xf86-video-trident/xdriver_xf86-video-trident.mk create mode 100644 package/x11r7/xdriver_xf86-video-vesa/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-vesa/xdriver_xf86-video-vesa.hash create mode 100644 package/x11r7/xdriver_xf86-video-vesa/xdriver_xf86-video-vesa.mk create mode 100644 package/x11r7/xdriver_xf86-video-vmware/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-vmware/xdriver_xf86-video-vmware.hash create mode 100644 package/x11r7/xdriver_xf86-video-vmware/xdriver_xf86-video-vmware.mk create mode 100644 package/x11r7/xdriver_xf86-video-voodoo/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-voodoo/xdriver_xf86-video-voodoo.mk create mode 100644 package/x11r7/xfont_encodings/Config.in create mode 100644 package/x11r7/xfont_encodings/xfont_encodings.hash create mode 100644 package/x11r7/xfont_encodings/xfont_encodings.mk create mode 100644 package/x11r7/xfont_font-adobe-100dpi/Config.in create mode 100644 package/x11r7/xfont_font-adobe-100dpi/xfont_font-adobe-100dpi.hash create mode 100644 package/x11r7/xfont_font-adobe-100dpi/xfont_font-adobe-100dpi.mk create mode 100644 package/x11r7/xfont_font-adobe-75dpi/Config.in create mode 100644 package/x11r7/xfont_font-adobe-75dpi/xfont_font-adobe-75dpi.hash create mode 100644 package/x11r7/xfont_font-adobe-75dpi/xfont_font-adobe-75dpi.mk create mode 100644 package/x11r7/xfont_font-adobe-utopia-100dpi/Config.in create mode 100644 package/x11r7/xfont_font-adobe-utopia-100dpi/xfont_font-adobe-utopia-100dpi.hash create mode 100644 package/x11r7/xfont_font-adobe-utopia-100dpi/xfont_font-adobe-utopia-100dpi.mk create mode 100644 package/x11r7/xfont_font-adobe-utopia-75dpi/Config.in create mode 100644 package/x11r7/xfont_font-adobe-utopia-75dpi/xfont_font-adobe-utopia-75dpi.hash create mode 100644 package/x11r7/xfont_font-adobe-utopia-75dpi/xfont_font-adobe-utopia-75dpi.mk create mode 100644 package/x11r7/xfont_font-adobe-utopia-type1/Config.in create mode 100644 package/x11r7/xfont_font-adobe-utopia-type1/xfont_font-adobe-utopia-type1.hash create mode 100644 package/x11r7/xfont_font-adobe-utopia-type1/xfont_font-adobe-utopia-type1.mk create mode 100644 package/x11r7/xfont_font-alias/Config.in create mode 100644 package/x11r7/xfont_font-alias/xfont_font-alias.hash create mode 100644 package/x11r7/xfont_font-alias/xfont_font-alias.mk create mode 100644 package/x11r7/xfont_font-arabic-misc/Config.in create mode 100644 package/x11r7/xfont_font-arabic-misc/xfont_font-arabic-misc.hash create mode 100644 package/x11r7/xfont_font-arabic-misc/xfont_font-arabic-misc.mk create mode 100644 package/x11r7/xfont_font-bh-100dpi/Config.in create mode 100644 package/x11r7/xfont_font-bh-100dpi/xfont_font-bh-100dpi.hash create mode 100644 package/x11r7/xfont_font-bh-100dpi/xfont_font-bh-100dpi.mk create mode 100644 package/x11r7/xfont_font-bh-75dpi/Config.in create mode 100644 package/x11r7/xfont_font-bh-75dpi/xfont_font-bh-75dpi.hash create mode 100644 package/x11r7/xfont_font-bh-75dpi/xfont_font-bh-75dpi.mk create mode 100644 package/x11r7/xfont_font-bh-lucidatypewriter-100dpi/Config.in create mode 100644 package/x11r7/xfont_font-bh-lucidatypewriter-100dpi/xfont_font-bh-lucidatypewriter-100dpi.hash create mode 100644 package/x11r7/xfont_font-bh-lucidatypewriter-100dpi/xfont_font-bh-lucidatypewriter-100dpi.mk create mode 100644 package/x11r7/xfont_font-bh-lucidatypewriter-75dpi/Config.in create mode 100644 package/x11r7/xfont_font-bh-lucidatypewriter-75dpi/xfont_font-bh-lucidatypewriter-75dpi.hash create mode 100644 package/x11r7/xfont_font-bh-lucidatypewriter-75dpi/xfont_font-bh-lucidatypewriter-75dpi.mk create mode 100644 package/x11r7/xfont_font-bh-ttf/Config.in create mode 100644 package/x11r7/xfont_font-bh-ttf/xfont_font-bh-ttf.hash create mode 100644 package/x11r7/xfont_font-bh-ttf/xfont_font-bh-ttf.mk create mode 100644 package/x11r7/xfont_font-bh-type1/Config.in create mode 100644 package/x11r7/xfont_font-bh-type1/xfont_font-bh-type1.hash create mode 100644 package/x11r7/xfont_font-bh-type1/xfont_font-bh-type1.mk create mode 100644 package/x11r7/xfont_font-bitstream-100dpi/Config.in create mode 100644 package/x11r7/xfont_font-bitstream-100dpi/xfont_font-bitstream-100dpi.hash create mode 100644 package/x11r7/xfont_font-bitstream-100dpi/xfont_font-bitstream-100dpi.mk create mode 100644 package/x11r7/xfont_font-bitstream-75dpi/Config.in create mode 100644 package/x11r7/xfont_font-bitstream-75dpi/xfont_font-bitstream-75dpi.hash create mode 100644 package/x11r7/xfont_font-bitstream-75dpi/xfont_font-bitstream-75dpi.mk create mode 100644 package/x11r7/xfont_font-bitstream-type1/Config.in create mode 100644 package/x11r7/xfont_font-bitstream-type1/xfont_font-bitstream-type1.hash create mode 100644 package/x11r7/xfont_font-bitstream-type1/xfont_font-bitstream-type1.mk create mode 100644 package/x11r7/xfont_font-cronyx-cyrillic/Config.in create mode 100644 package/x11r7/xfont_font-cronyx-cyrillic/xfont_font-cronyx-cyrillic.hash create mode 100644 package/x11r7/xfont_font-cronyx-cyrillic/xfont_font-cronyx-cyrillic.mk create mode 100644 package/x11r7/xfont_font-cursor-misc/Config.in create mode 100644 package/x11r7/xfont_font-cursor-misc/xfont_font-cursor-misc.hash create mode 100644 package/x11r7/xfont_font-cursor-misc/xfont_font-cursor-misc.mk create mode 100644 package/x11r7/xfont_font-daewoo-misc/Config.in create mode 100644 package/x11r7/xfont_font-daewoo-misc/xfont_font-daewoo-misc.hash create mode 100644 package/x11r7/xfont_font-daewoo-misc/xfont_font-daewoo-misc.mk create mode 100644 package/x11r7/xfont_font-dec-misc/Config.in create mode 100644 package/x11r7/xfont_font-dec-misc/xfont_font-dec-misc.hash create mode 100644 package/x11r7/xfont_font-dec-misc/xfont_font-dec-misc.mk create mode 100644 package/x11r7/xfont_font-ibm-type1/Config.in create mode 100644 package/x11r7/xfont_font-ibm-type1/xfont_font-ibm-type1.hash create mode 100644 package/x11r7/xfont_font-ibm-type1/xfont_font-ibm-type1.mk create mode 100644 package/x11r7/xfont_font-isas-misc/Config.in create mode 100644 package/x11r7/xfont_font-isas-misc/xfont_font-isas-misc.hash create mode 100644 package/x11r7/xfont_font-isas-misc/xfont_font-isas-misc.mk create mode 100644 package/x11r7/xfont_font-jis-misc/Config.in create mode 100644 package/x11r7/xfont_font-jis-misc/xfont_font-jis-misc.hash create mode 100644 package/x11r7/xfont_font-jis-misc/xfont_font-jis-misc.mk create mode 100644 package/x11r7/xfont_font-micro-misc/Config.in create mode 100644 package/x11r7/xfont_font-micro-misc/xfont_font-micro-misc.hash create mode 100644 package/x11r7/xfont_font-micro-misc/xfont_font-micro-misc.mk create mode 100644 package/x11r7/xfont_font-misc-cyrillic/Config.in create mode 100644 package/x11r7/xfont_font-misc-cyrillic/xfont_font-misc-cyrillic.hash create mode 100644 package/x11r7/xfont_font-misc-cyrillic/xfont_font-misc-cyrillic.mk create mode 100644 package/x11r7/xfont_font-misc-ethiopic/Config.in create mode 100644 package/x11r7/xfont_font-misc-ethiopic/xfont_font-misc-ethiopic.hash create mode 100644 package/x11r7/xfont_font-misc-ethiopic/xfont_font-misc-ethiopic.mk create mode 100644 package/x11r7/xfont_font-misc-meltho/Config.in create mode 100644 package/x11r7/xfont_font-misc-meltho/xfont_font-misc-meltho.hash create mode 100644 package/x11r7/xfont_font-misc-meltho/xfont_font-misc-meltho.mk create mode 100644 package/x11r7/xfont_font-misc-misc/Config.in create mode 100644 package/x11r7/xfont_font-misc-misc/xfont_font-misc-misc.hash create mode 100644 package/x11r7/xfont_font-misc-misc/xfont_font-misc-misc.mk create mode 100644 package/x11r7/xfont_font-mutt-misc/Config.in create mode 100644 package/x11r7/xfont_font-mutt-misc/xfont_font-mutt-misc.hash create mode 100644 package/x11r7/xfont_font-mutt-misc/xfont_font-mutt-misc.mk create mode 100644 package/x11r7/xfont_font-schumacher-misc/Config.in create mode 100644 package/x11r7/xfont_font-schumacher-misc/xfont_font-schumacher-misc.hash create mode 100644 package/x11r7/xfont_font-schumacher-misc/xfont_font-schumacher-misc.mk create mode 100644 package/x11r7/xfont_font-screen-cyrillic/Config.in create mode 100644 package/x11r7/xfont_font-screen-cyrillic/xfont_font-screen-cyrillic.hash create mode 100644 package/x11r7/xfont_font-screen-cyrillic/xfont_font-screen-cyrillic.mk create mode 100644 package/x11r7/xfont_font-sony-misc/Config.in create mode 100644 package/x11r7/xfont_font-sony-misc/xfont_font-sony-misc.hash create mode 100644 package/x11r7/xfont_font-sony-misc/xfont_font-sony-misc.mk create mode 100644 package/x11r7/xfont_font-sun-misc/Config.in create mode 100644 package/x11r7/xfont_font-sun-misc/xfont_font-sun-misc.hash create mode 100644 package/x11r7/xfont_font-sun-misc/xfont_font-sun-misc.mk create mode 100644 package/x11r7/xfont_font-util/Config.in create mode 100644 package/x11r7/xfont_font-util/xfont_font-util.hash create mode 100644 package/x11r7/xfont_font-util/xfont_font-util.mk create mode 100644 package/x11r7/xfont_font-winitzki-cyrillic/Config.in create mode 100644 package/x11r7/xfont_font-winitzki-cyrillic/xfont_font-winitzki-cyrillic.hash create mode 100644 package/x11r7/xfont_font-winitzki-cyrillic/xfont_font-winitzki-cyrillic.mk create mode 100644 package/x11r7/xfont_font-xfree86-type1/Config.in create mode 100644 package/x11r7/xfont_font-xfree86-type1/xfont_font-xfree86-type1.hash create mode 100644 package/x11r7/xfont_font-xfree86-type1/xfont_font-xfree86-type1.mk create mode 100644 package/x11r7/xkeyboard-config/Config.in create mode 100644 package/x11r7/xkeyboard-config/xkeyboard-config.hash create mode 100644 package/x11r7/xkeyboard-config/xkeyboard-config.mk create mode 100644 package/x11r7/xlib_libFS/Config.in create mode 100644 package/x11r7/xlib_libFS/xlib_libFS.hash create mode 100644 package/x11r7/xlib_libFS/xlib_libFS.mk create mode 100644 package/x11r7/xlib_libICE/Config.in create mode 100644 package/x11r7/xlib_libICE/xlib_libICE.hash create mode 100644 package/x11r7/xlib_libICE/xlib_libICE.mk create mode 100644 package/x11r7/xlib_libSM/Config.in create mode 100644 package/x11r7/xlib_libSM/xlib_libSM.hash create mode 100644 package/x11r7/xlib_libSM/xlib_libSM.mk create mode 100644 package/x11r7/xlib_libX11/Config.in create mode 100644 package/x11r7/xlib_libX11/xlib_libX11.hash create mode 100644 package/x11r7/xlib_libX11/xlib_libX11.mk create mode 100644 package/x11r7/xlib_libXScrnSaver/Config.in create mode 100644 package/x11r7/xlib_libXScrnSaver/xlib_libXScrnSaver.hash create mode 100644 package/x11r7/xlib_libXScrnSaver/xlib_libXScrnSaver.mk create mode 100644 package/x11r7/xlib_libXau/Config.in create mode 100644 package/x11r7/xlib_libXau/xlib_libXau.hash create mode 100644 package/x11r7/xlib_libXau/xlib_libXau.mk create mode 100644 package/x11r7/xlib_libXaw/Config.in create mode 100644 package/x11r7/xlib_libXaw/xlib_libXaw.hash create mode 100644 package/x11r7/xlib_libXaw/xlib_libXaw.mk create mode 100644 package/x11r7/xlib_libXcomposite/Config.in create mode 100644 package/x11r7/xlib_libXcomposite/xlib_libXcomposite.hash create mode 100644 package/x11r7/xlib_libXcomposite/xlib_libXcomposite.mk create mode 100644 package/x11r7/xlib_libXcursor/Config.in create mode 100644 package/x11r7/xlib_libXcursor/xlib_libXcursor.hash create mode 100644 package/x11r7/xlib_libXcursor/xlib_libXcursor.mk create mode 100644 package/x11r7/xlib_libXdamage/Config.in create mode 100644 package/x11r7/xlib_libXdamage/xlib_libXdamage.hash create mode 100644 package/x11r7/xlib_libXdamage/xlib_libXdamage.mk create mode 100644 package/x11r7/xlib_libXdmcp/Config.in create mode 100644 package/x11r7/xlib_libXdmcp/xlib_libXdmcp.hash create mode 100644 package/x11r7/xlib_libXdmcp/xlib_libXdmcp.mk create mode 100644 package/x11r7/xlib_libXext/Config.in create mode 100644 package/x11r7/xlib_libXext/xlib_libXext.hash create mode 100644 package/x11r7/xlib_libXext/xlib_libXext.mk create mode 100644 package/x11r7/xlib_libXfixes/Config.in create mode 100644 package/x11r7/xlib_libXfixes/xlib_libXfixes.hash create mode 100644 package/x11r7/xlib_libXfixes/xlib_libXfixes.mk create mode 100644 package/x11r7/xlib_libXfont/Config.in create mode 100644 package/x11r7/xlib_libXfont/xlib_libXfont.hash create mode 100644 package/x11r7/xlib_libXfont/xlib_libXfont.mk create mode 100644 package/x11r7/xlib_libXfont2/Config.in create mode 100644 package/x11r7/xlib_libXfont2/xlib_libXfont2.hash create mode 100644 package/x11r7/xlib_libXfont2/xlib_libXfont2.mk create mode 100644 package/x11r7/xlib_libXft/Config.in create mode 100644 package/x11r7/xlib_libXft/xlib_libXft.hash create mode 100644 package/x11r7/xlib_libXft/xlib_libXft.mk create mode 100644 package/x11r7/xlib_libXi/Config.in create mode 100644 package/x11r7/xlib_libXi/xlib_libXi.hash create mode 100644 package/x11r7/xlib_libXi/xlib_libXi.mk create mode 100644 package/x11r7/xlib_libXinerama/Config.in create mode 100644 package/x11r7/xlib_libXinerama/xlib_libXinerama.hash create mode 100644 package/x11r7/xlib_libXinerama/xlib_libXinerama.mk create mode 100644 package/x11r7/xlib_libXmu/Config.in create mode 100644 package/x11r7/xlib_libXmu/xlib_libXmu.hash create mode 100644 package/x11r7/xlib_libXmu/xlib_libXmu.mk create mode 100644 package/x11r7/xlib_libXpm/Config.in create mode 100644 package/x11r7/xlib_libXpm/xlib_libXpm.hash create mode 100644 package/x11r7/xlib_libXpm/xlib_libXpm.mk create mode 100644 package/x11r7/xlib_libXrandr/Config.in create mode 100644 package/x11r7/xlib_libXrandr/xlib_libXrandr.hash create mode 100644 package/x11r7/xlib_libXrandr/xlib_libXrandr.mk create mode 100644 package/x11r7/xlib_libXrender/Config.in create mode 100644 package/x11r7/xlib_libXrender/xlib_libXrender.hash create mode 100644 package/x11r7/xlib_libXrender/xlib_libXrender.mk create mode 100644 package/x11r7/xlib_libXres/Config.in create mode 100644 package/x11r7/xlib_libXres/xlib_libXres.hash create mode 100644 package/x11r7/xlib_libXres/xlib_libXres.mk create mode 100644 package/x11r7/xlib_libXt/Config.in create mode 100644 package/x11r7/xlib_libXt/xlib_libXt.hash create mode 100644 package/x11r7/xlib_libXt/xlib_libXt.mk create mode 100644 package/x11r7/xlib_libXtst/Config.in create mode 100644 package/x11r7/xlib_libXtst/xlib_libXtst.hash create mode 100644 package/x11r7/xlib_libXtst/xlib_libXtst.mk create mode 100644 package/x11r7/xlib_libXv/Config.in create mode 100644 package/x11r7/xlib_libXv/xlib_libXv.hash create mode 100644 package/x11r7/xlib_libXv/xlib_libXv.mk create mode 100644 package/x11r7/xlib_libXvMC/Config.in create mode 100644 package/x11r7/xlib_libXvMC/xlib_libXvMC.hash create mode 100644 package/x11r7/xlib_libXvMC/xlib_libXvMC.mk create mode 100644 package/x11r7/xlib_libXxf86dga/Config.in create mode 100644 package/x11r7/xlib_libXxf86dga/xlib_libXxf86dga.hash create mode 100644 package/x11r7/xlib_libXxf86dga/xlib_libXxf86dga.mk create mode 100644 package/x11r7/xlib_libXxf86vm/Config.in create mode 100644 package/x11r7/xlib_libXxf86vm/xlib_libXxf86vm.hash create mode 100644 package/x11r7/xlib_libXxf86vm/xlib_libXxf86vm.mk create mode 100644 package/x11r7/xlib_libdmx/Config.in create mode 100644 package/x11r7/xlib_libdmx/xlib_libdmx.hash create mode 100644 package/x11r7/xlib_libdmx/xlib_libdmx.mk create mode 100644 package/x11r7/xlib_libfontenc/Config.in create mode 100644 package/x11r7/xlib_libfontenc/xlib_libfontenc.hash create mode 100644 package/x11r7/xlib_libfontenc/xlib_libfontenc.mk create mode 100644 package/x11r7/xlib_libxcvt/Config.in create mode 100644 package/x11r7/xlib_libxcvt/xlib_libxcvt.hash create mode 100644 package/x11r7/xlib_libxcvt/xlib_libxcvt.mk create mode 100644 package/x11r7/xlib_libxkbfile/Config.in create mode 100644 package/x11r7/xlib_libxkbfile/xlib_libxkbfile.hash create mode 100644 package/x11r7/xlib_libxkbfile/xlib_libxkbfile.mk create mode 100644 package/x11r7/xlib_libxshmfence/Config.in create mode 100644 package/x11r7/xlib_libxshmfence/xlib_libxshmfence.hash create mode 100644 package/x11r7/xlib_libxshmfence/xlib_libxshmfence.mk create mode 100644 package/x11r7/xlib_xtrans/Config.in create mode 100644 package/x11r7/xlib_xtrans/xlib_xtrans.hash create mode 100644 package/x11r7/xlib_xtrans/xlib_xtrans.mk create mode 100644 package/x11r7/xorgproto/Config.in create mode 100644 package/x11r7/xorgproto/xorgproto.hash create mode 100644 package/x11r7/xorgproto/xorgproto.mk create mode 100644 package/x11r7/xserver_xorg-server/0001-include-misc.h-fix-uClibc-build.patch create mode 100644 package/x11r7/xserver_xorg-server/Config.in create mode 100644 package/x11r7/xserver_xorg-server/S40xorg create mode 100644 package/x11r7/xserver_xorg-server/xorg.service create mode 100644 package/x11r7/xserver_xorg-server/xserver_xorg-server.hash create mode 100644 package/x11r7/xserver_xorg-server/xserver_xorg-server.mk create mode 100644 package/x11r7/xutil_makedepend/Config.in create mode 100644 package/x11r7/xutil_makedepend/xutil_makedepend.hash create mode 100644 package/x11r7/xutil_makedepend/xutil_makedepend.mk create mode 100644 package/x11vnc/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch create mode 100644 package/x11vnc/0002-scan-limit-access-to-shared-memory-segments-to-current-user.patch create mode 100644 package/x11vnc/Config.in create mode 100644 package/x11vnc/x11vnc.hash create mode 100644 package/x11vnc/x11vnc.mk create mode 100644 package/x264/Config.in create mode 100644 package/x264/x264.hash create mode 100644 package/x264/x264.mk create mode 100644 package/x265/0001-fix-gcc-options.patch create mode 100644 package/x265/Config.in create mode 100644 package/x265/x265.hash create mode 100644 package/x265/x265.mk create mode 100644 package/xapian/Config.in create mode 100644 package/xapian/xapian.hash create mode 100644 package/xapian/xapian.mk create mode 100644 package/xavante/Config.in create mode 100644 package/xavante/xavante.hash create mode 100644 package/xavante/xavante.mk create mode 100644 package/xdg-dbus-proxy/Config.in create mode 100644 package/xdg-dbus-proxy/xdg-dbus-proxy.hash create mode 100644 package/xdg-dbus-proxy/xdg-dbus-proxy.mk create mode 100644 package/xdotool/Config.in create mode 100644 package/xdotool/xdotool.hash create mode 100644 package/xdotool/xdotool.mk create mode 100644 package/xen/0001-9pfs-include-linux-limits.h-for-XATTR_SIZE_MAX.patch create mode 100644 package/xen/0002-Fix-build-with-64-bits-time_t.patch create mode 100644 package/xen/0003-libs-light-fix-tv_sec-printf-format.patch create mode 100644 package/xen/0004-libs-light-fix-tv_sec-fprintf-format.patch create mode 100644 package/xen/Config.in create mode 100644 package/xen/xen.hash create mode 100644 package/xen/xen.mk create mode 100644 package/xenomai/3.0.10/0001-lib-boilerplate-iniparser-Allow-building-with-GCC-10-2-2020101.patch create mode 100644 package/xenomai/3.0.10/0002-Add-disable-demo-testsuite-options.patch create mode 100644 package/xenomai/3.0.10/0003-lib-cobalt-copperplate-Use-valid-addresses-for-pthread_setspecific.patch create mode 100644 package/xenomai/Config.in create mode 100644 package/xenomai/xenomai.hash create mode 100644 package/xenomai/xenomai.mk create mode 100644 package/xerces/0001-fix-static-linking-with-curl.patch create mode 100644 package/xerces/0002-InMemMsgLoader-loadMsg-fix-memory-leak-when-transcod.patch create mode 100644 package/xerces/Config.in create mode 100644 package/xerces/xerces.hash create mode 100644 package/xerces/xerces.mk create mode 100644 package/xfsprogs/0001-mdrestore-do-not-do-dynamic-linking-of-libtool-libra.patch create mode 100644 package/xfsprogs/0002-libxfs-do-not-try-to-run-the-crc32selftest.patch create mode 100644 package/xfsprogs/0003-libxfs-stop-overriding-MAP_SYNC-in-publicly-exported.patch create mode 100644 package/xfsprogs/Config.in create mode 100644 package/xfsprogs/xfsprogs.hash create mode 100644 package/xfsprogs/xfsprogs.mk create mode 100644 package/xinetd/0001-ar.patch create mode 100644 package/xinetd/0002-destdir.patch create mode 100644 package/xinetd/0003-rpc-fix.patch create mode 100644 package/xinetd/0004-configure-rlim_t.patch create mode 100644 package/xinetd/0005-CVE-2013-4342-xinetd-ignores-user-and-group-directiv.patch create mode 100644 package/xinetd/Config.in create mode 100644 package/xinetd/xinetd.hash create mode 100644 package/xinetd/xinetd.mk create mode 100644 package/xl2tp/Config.in create mode 100644 package/xl2tp/xl2tp.hash create mode 100644 package/xl2tp/xl2tp.mk create mode 100755 package/xl2tp/xl2tpd create mode 100644 package/xml-security-c/0001-fix-build-with-libressl-3.5.0.patch create mode 100644 package/xml-security-c/Config.in create mode 100644 package/xml-security-c/xml-security-c.hash create mode 100644 package/xml-security-c/xml-security-c.mk create mode 100644 package/xmlstarlet/Config.in create mode 100644 package/xmlstarlet/xmlstarlet.hash create mode 100644 package/xmlstarlet/xmlstarlet.mk create mode 100644 package/xmrig/Config.in create mode 100644 package/xmrig/xmrig.hash create mode 100644 package/xmrig/xmrig.mk create mode 100644 package/xorcurses/Config.in create mode 100644 package/xorcurses/xorcurses.hash create mode 100644 package/xorcurses/xorcurses.mk create mode 100644 package/xorriso/Config.in create mode 100644 package/xorriso/Config.in.host create mode 100644 package/xorriso/xorriso.hash create mode 100644 package/xorriso/xorriso.mk create mode 100644 package/xr819-xradio/Config.in create mode 100644 package/xr819-xradio/xr819-xradio.hash create mode 100644 package/xr819-xradio/xr819-xradio.mk create mode 100644 package/xscreensaver/Config.in create mode 100644 package/xscreensaver/xscreensaver.hash create mode 100644 package/xscreensaver/xscreensaver.mk create mode 100644 package/xtables-addons/Config.in create mode 100644 package/xtables-addons/xtables-addons.hash create mode 100644 package/xtables-addons/xtables-addons.mk create mode 100644 package/xterm/Config.in create mode 100644 package/xterm/xterm.hash create mode 100644 package/xterm/xterm.mk create mode 100644 package/xutil_util-macros/Config.in create mode 100644 package/xutil_util-macros/xutil_util-macros.hash create mode 100644 package/xutil_util-macros/xutil_util-macros.mk create mode 100644 package/xvisor/0001-psmouse-back.c-fix-build-with-gcc-11.patch create mode 100644 package/xvisor/Config.in create mode 100644 package/xvisor/xvisor.hash create mode 100644 package/xvisor/xvisor.mk create mode 100644 package/xvkbd/Config.in create mode 100644 package/xvkbd/xvkbd.hash create mode 100644 package/xvkbd/xvkbd.mk create mode 100644 package/xxhash/0001-fix-man-page-installation.patch create mode 100644 package/xxhash/0002-Makefile-add-dedicated-install-targets.patch create mode 100644 package/xxhash/0003-do-no-longer-depend-on-assert-h-for-XXH_STATIC_ASSERT.patch create mode 100644 package/xxhash/Config.in create mode 100644 package/xxhash/xxhash.hash create mode 100644 package/xxhash/xxhash.mk create mode 100644 package/xz/Config.in create mode 100644 package/xz/xz.hash create mode 100644 package/xz/xz.mk create mode 100644 package/yad/Config.in create mode 100644 package/yad/yad.hash create mode 100644 package/yad/yad.mk create mode 100644 package/yaffs2utils/yaffs2utils.hash create mode 100644 package/yaffs2utils/yaffs2utils.mk create mode 100644 package/yajl/0001-Let-the-shared-and-the-static-library-have-the-same-.patch create mode 100644 package/yajl/0002-cmake-disable-shared-library-build-when-BUILD_SHARED.patch create mode 100644 package/yajl/0003-Link-with-shared-libyajl-in-a-shared-build.patch create mode 100644 package/yajl/0004-Link-libyajl-_s-with-libm-when-isnan-is-not-brought-.patch create mode 100644 package/yajl/Config.in create mode 100644 package/yajl/yajl.hash create mode 100644 package/yajl/yajl.mk create mode 100644 package/yaml-cpp/Config.in create mode 100644 package/yaml-cpp/yaml-cpp.hash create mode 100644 package/yaml-cpp/yaml-cpp.mk create mode 100644 package/yasm/Config.in create mode 100644 package/yasm/yasm.hash create mode 100644 package/yasm/yasm.mk create mode 100644 package/yavta/Config.in create mode 100644 package/yavta/yavta.hash create mode 100644 package/yavta/yavta.mk create mode 100644 package/ympd/0001-only-c-language.patch create mode 100644 package/ympd/0002-added-forward-declarations.patch create mode 100644 package/ympd/Config.in create mode 100644 package/ympd/ympd.hash create mode 100644 package/ympd/ympd.mk create mode 100644 package/ytree/0001-fix-musl.patch create mode 100644 package/ytree/Config.in create mode 100644 package/ytree/ytree.hash create mode 100644 package/ytree/ytree.mk create mode 100644 package/zabbix/0001-m4-netsnmp.m4-fix-shared-netsnmp-build.patch create mode 100644 package/zabbix/Config.in create mode 100644 package/zabbix/zabbix-agent.service create mode 100644 package/zabbix/zabbix-server.service create mode 100644 package/zabbix/zabbix.hash create mode 100644 package/zabbix/zabbix.mk create mode 100644 package/zbar/Config.in create mode 100644 package/zbar/zbar.hash create mode 100644 package/zbar/zbar.mk create mode 100644 package/zchunk/0001-meson-fix-argp-standalone-wrap-and-find_library.patch create mode 100644 package/zchunk/0002-zck-declare-write_data-as-static.patch create mode 100644 package/zchunk/Config.in create mode 100644 package/zchunk/zchunk.hash create mode 100644 package/zchunk/zchunk.mk create mode 100644 package/zd1211-firmware/Config.in create mode 100644 package/zd1211-firmware/zd1211-firmware.hash create mode 100644 package/zd1211-firmware/zd1211-firmware.mk create mode 100644 package/zeek/Config.in create mode 100644 package/zeek/zeek.hash create mode 100644 package/zeek/zeek.mk create mode 100644 package/zerofree/Config.in create mode 100644 package/zerofree/zerofree.hash create mode 100644 package/zerofree/zerofree.mk create mode 100644 package/zeromq/Config.in create mode 100644 package/zeromq/zeromq.hash create mode 100644 package/zeromq/zeromq.mk create mode 100644 package/zfs/Config.in create mode 100644 package/zfs/zfs.hash create mode 100644 package/zfs/zfs.mk create mode 100644 package/zic/0001-remove-dependency-check-on-version-file.patch create mode 100644 package/zic/zic.hash create mode 100644 package/zic/zic.mk create mode 100644 package/zip/0001-configure-Remove-Check-C-compiler-type-optimization-.patch create mode 100644 package/zip/0002-configure-Don-t-use-host-CPP.patch create mode 100644 package/zip/0003-Makefile-Use-CFLAGS-from-command-line.patch create mode 100644 package/zip/0004-configure-use-LDFLAGS-from-command-line.patch create mode 100644 package/zip/0005-unix-configure-remove-GID-UID-size-check.patch create mode 100644 package/zip/0006-unix-configure-borrow-the-LFS-test-from-autotools.patch create mode 100644 package/zip/0007-timezone.c-needs-time.h-fixes-musl-compile.patch create mode 100644 package/zip/0008-fix-musl-static-build.patch create mode 100644 package/zip/Config.in create mode 100644 package/zip/Config.in.host create mode 100644 package/zip/zip.hash create mode 100644 package/zip/zip.mk create mode 100644 package/zisofs-tools/zisofs-tools.hash create mode 100644 package/zisofs-tools/zisofs-tools.mk create mode 100644 package/zlib-ng/0001-Use-static-keyword-for-vec_sumsu-to-prevent-undefine.patch create mode 100644 package/zlib-ng/0002-CMakeLists.txt-fix-version-in-zlib.pc-when-building-.patch create mode 100644 package/zlib-ng/0003-zlib-ng-check-that-sys-auxv.h-exists-at-configure-time.patch create mode 100644 package/zlib-ng/zlib-ng.hash create mode 100644 package/zlib-ng/zlib-ng.mk create mode 100644 package/zlib/Config.in create mode 100644 package/zlib/zlib.mk create mode 100644 package/zlog/0001-Fix-stack-buffer-overflow-at-zlog_conf_build_with_file.patch create mode 100644 package/zlog/Config.in create mode 100644 package/zlog/zlog.hash create mode 100644 package/zlog/zlog.mk create mode 100644 package/zmqpp/0001-Allow-building-shared-or-static-library-only.patch create mode 100644 package/zmqpp/Config.in create mode 100644 package/zmqpp/zmqpp.hash create mode 100644 package/zmqpp/zmqpp.mk create mode 100644 package/znc/Config.in create mode 100644 package/znc/znc.hash create mode 100644 package/znc/znc.mk create mode 100644 package/zsh/Config.in create mode 100644 package/zsh/zsh.hash create mode 100644 package/zsh/zsh.mk create mode 100644 package/zstd/Config.in create mode 100644 package/zstd/Config.in.host create mode 100644 package/zstd/zstd.hash create mode 100644 package/zstd/zstd.mk create mode 100644 package/zxing-cpp/0001-Link-library-with-OpenCV-make-libs-private-not-exported-to-the-users.patch create mode 100644 package/zxing-cpp/0002-CMakeLists-txt-add-BUILD_OPENCV-option.patch create mode 100644 package/zxing-cpp/Config.in create mode 100644 package/zxing-cpp/zxing-cpp.hash create mode 100644 package/zxing-cpp/zxing-cpp.mk create mode 100644 package/zynaddsubfx/Config.in create mode 100644 package/zynaddsubfx/zynaddsubfx.hash create mode 100644 package/zynaddsubfx/zynaddsubfx.mk create mode 100644 package/zyre/Config.in create mode 100644 package/zyre/zyre.hash create mode 100644 package/zyre/zyre.mk create mode 100644 package/zziplib/0001-implant-ZZIP_LIBLATEST-for-zzip_lib.patch create mode 100644 package/zziplib/0002-ZZIP_LIBLATEST-create-symlinks-only-if-target-is-mis.patch create mode 100644 package/zziplib/Config.in create mode 100644 package/zziplib/zziplib.hash create mode 100644 package/zziplib/zziplib.mk create mode 100644 support/config-fragments/autobuild/arm-aarch64.config create mode 100644 support/config-fragments/autobuild/bootlin-aarch64-glibc.config create mode 100644 support/config-fragments/autobuild/bootlin-arcle-hs38-uclibc.config create mode 100644 support/config-fragments/autobuild/bootlin-armv5-uclibc.config create mode 100644 support/config-fragments/autobuild/bootlin-armv7-glibc.config create mode 100644 support/config-fragments/autobuild/bootlin-armv7-musl.config create mode 100644 support/config-fragments/autobuild/bootlin-armv7m-uclibc.config create mode 100644 support/config-fragments/autobuild/bootlin-m68k-5208-uclibc.config create mode 100644 support/config-fragments/autobuild/bootlin-m68k-68040-uclibc.config create mode 100644 support/config-fragments/autobuild/bootlin-microblazeel-uclibc.config create mode 100644 support/config-fragments/autobuild/bootlin-mipsel-uclibc.config create mode 100644 support/config-fragments/autobuild/bootlin-mipsel32r6-glibc.config create mode 100644 support/config-fragments/autobuild/bootlin-nios2-glibc.config create mode 100644 support/config-fragments/autobuild/bootlin-openrisc-uclibc.config create mode 100644 support/config-fragments/autobuild/bootlin-powerpc-e500mc-uclibc.config create mode 100644 support/config-fragments/autobuild/bootlin-powerpc64le-power8-glibc.config create mode 100644 support/config-fragments/autobuild/bootlin-riscv32-glibc.config create mode 100644 support/config-fragments/autobuild/bootlin-riscv64-glibc.config create mode 100644 support/config-fragments/autobuild/bootlin-riscv64-musl.config create mode 100644 support/config-fragments/autobuild/bootlin-sh4-uclibc.config create mode 100644 support/config-fragments/autobuild/bootlin-sparc-uclibc.config create mode 100644 support/config-fragments/autobuild/bootlin-sparc64-glibc.config create mode 100644 support/config-fragments/autobuild/bootlin-x86-64-glibc.config create mode 100644 support/config-fragments/autobuild/bootlin-x86-64-musl.config create mode 100644 support/config-fragments/autobuild/bootlin-x86-64-uclibc.config create mode 100644 support/config-fragments/autobuild/bootlin-xtensa-uclibc.config create mode 100644 support/config-fragments/autobuild/br-arc-full-internal.config create mode 100644 support/config-fragments/autobuild/br-arc-internal-glibc.config create mode 100644 support/config-fragments/autobuild/br-arm-basic.config create mode 100644 support/config-fragments/autobuild/br-arm-full-nothread.config create mode 100644 support/config-fragments/autobuild/br-arm-full-static.config create mode 100644 support/config-fragments/autobuild/br-arm-internal-full.config create mode 100644 support/config-fragments/autobuild/br-arm-internal-glibc.config create mode 100644 support/config-fragments/autobuild/br-arm-internal-musl.config create mode 100644 support/config-fragments/autobuild/br-i386-pentium-mmx-musl.config create mode 100644 support/config-fragments/autobuild/br-i386-pentium4-full.config create mode 100644 support/config-fragments/autobuild/br-microblazeel-full-internal.config create mode 100644 support/config-fragments/autobuild/br-mips64-n64-full.config create mode 100644 support/config-fragments/autobuild/br-mips64r6-el-hf-glibc.config create mode 100644 support/config-fragments/autobuild/br-powerpc-603e-basic-cpp.config create mode 100644 support/config-fragments/autobuild/br-powerpc-internal-full.config create mode 100644 support/config-fragments/autobuild/br-powerpc64-power7-glibc.config create mode 100644 support/config-fragments/autobuild/br-riscv64-full-internal.config create mode 100644 support/config-fragments/autobuild/br-s390x-z13-internal-glibc.config create mode 100644 support/config-fragments/autobuild/br-xtensa-full-internal.config create mode 100644 support/config-fragments/autobuild/linaro-aarch64-be.config create mode 100644 support/config-fragments/autobuild/linaro-aarch64.config create mode 100644 support/config-fragments/autobuild/linaro-arm.config create mode 100644 support/config-fragments/autobuild/sourcery-arm-armv4t.config create mode 100644 support/config-fragments/autobuild/sourcery-arm-thumb2.config create mode 100644 support/config-fragments/autobuild/sourcery-arm.config create mode 100644 support/config-fragments/autobuild/sourcery-mips.config create mode 100644 support/config-fragments/autobuild/sourcery-mips64.config create mode 100644 support/config-fragments/autobuild/sourcery-nios2.config create mode 100644 support/config-fragments/autobuild/toolchain-configs.csv create mode 100644 support/config-fragments/minimal.config create mode 100755 support/dependencies/check-host-asciidoc.sh create mode 100644 support/dependencies/check-host-bison-flex.mk create mode 100644 support/dependencies/check-host-cmake.mk create mode 100755 support/dependencies/check-host-cmake.sh create mode 100644 support/dependencies/check-host-coreutils.mk create mode 100755 support/dependencies/check-host-coreutils.sh create mode 100644 support/dependencies/check-host-gzip.mk create mode 100755 support/dependencies/check-host-gzip.sh create mode 100644 support/dependencies/check-host-lzip.mk create mode 100755 support/dependencies/check-host-lzip.sh create mode 100644 support/dependencies/check-host-make.mk create mode 100755 support/dependencies/check-host-make.sh create mode 100644 support/dependencies/check-host-python3.mk create mode 100755 support/dependencies/check-host-python3.sh create mode 100644 support/dependencies/check-host-tar.mk create mode 100755 support/dependencies/check-host-tar.sh create mode 100644 support/dependencies/check-host-xzcat.mk create mode 100755 support/dependencies/check-host-xzcat.sh create mode 100644 support/dependencies/dependencies.mk create mode 100755 support/dependencies/dependencies.sh create mode 100644 support/docker/Dockerfile create mode 100644 support/docker/apt-sources.list create mode 100755 support/download/bzr create mode 100755 support/download/cargo-post-process create mode 100755 support/download/check-hash create mode 100755 support/download/cvs create mode 100755 support/download/dl-wrapper create mode 100755 support/download/file create mode 100755 support/download/git create mode 100755 support/download/go-post-process create mode 100755 support/download/helpers create mode 100755 support/download/hg create mode 100755 support/download/scp create mode 100755 support/download/sftp create mode 100755 support/download/svn create mode 100755 support/download/wget create mode 100644 support/gnuconfig/README.buildroot create mode 100755 support/gnuconfig/config.guess create mode 100755 support/gnuconfig/config.sub create mode 100755 support/gnuconfig/update create mode 100644 support/kconfig/.gitignore create mode 100644 support/kconfig/Makefile create mode 100644 support/kconfig/Makefile.br create mode 100644 support/kconfig/POTFILES.in create mode 100644 support/kconfig/README.buildroot create mode 100755 support/kconfig/check.sh create mode 100644 support/kconfig/conf.c create mode 100644 support/kconfig/confdata.c create mode 100644 support/kconfig/expr.c create mode 100644 support/kconfig/expr.h create mode 100644 support/kconfig/foo.h create mode 100644 support/kconfig/gconf.c create mode 100644 support/kconfig/gconf.glade create mode 100644 support/kconfig/images.c create mode 100644 support/kconfig/kconf_id.c create mode 100644 support/kconfig/kxgettext.c create mode 100644 support/kconfig/list.h create mode 100644 support/kconfig/lkc.h create mode 100644 support/kconfig/lkc_proto.h create mode 100644 support/kconfig/lxdialog/.gitignore create mode 100644 support/kconfig/lxdialog/BIG.FAT.WARNING create mode 100755 support/kconfig/lxdialog/check-lxdialog.sh create mode 100644 support/kconfig/lxdialog/checklist.c create mode 100644 support/kconfig/lxdialog/dialog.h create mode 100644 support/kconfig/lxdialog/inputbox.c create mode 100644 support/kconfig/lxdialog/menubox.c create mode 100644 support/kconfig/lxdialog/textbox.c create mode 100644 support/kconfig/lxdialog/util.c create mode 100644 support/kconfig/lxdialog/yesno.c create mode 100644 support/kconfig/mconf.c create mode 100644 support/kconfig/menu.c create mode 100755 support/kconfig/merge_config.sh create mode 100644 support/kconfig/nconf.c create mode 100644 support/kconfig/nconf.gui.c create mode 100644 support/kconfig/nconf.h create mode 100644 support/kconfig/patches/01-kconfig-kernel-to-buildroot.patch create mode 100644 support/kconfig/patches/06-br-build-system-integration.patch create mode 100644 support/kconfig/patches/10-br-build-system.patch create mode 100644 support/kconfig/patches/11-use-mktemp-for-lxdialog.patch create mode 100644 support/kconfig/patches/12-fix-glade-file-path.patch create mode 100644 support/kconfig/patches/14-support-out-of-tree-config.patch create mode 100644 support/kconfig/patches/16-fix-space-to-de-select-options.patch create mode 100644 support/kconfig/patches/17-backport-kecho.patch create mode 100644 support/kconfig/patches/18-merge-config.sh-create-temporary-files-in-tmp.patch create mode 100644 support/kconfig/patches/19-merge_config.sh-add-br2-external-support.patch create mode 100644 support/kconfig/patches/20-merge_config.sh-Allow-to-define-config-prefix.patch create mode 100644 support/kconfig/patches/21-Avoid-false-positive-matches-from-comment-lines.patch create mode 100644 support/kconfig/patches/series create mode 100644 support/kconfig/qconf.cc create mode 100644 support/kconfig/qconf.h create mode 100755 support/kconfig/streamline_config.pl create mode 100644 support/kconfig/symbol.c create mode 100644 support/kconfig/util.c create mode 100644 support/kconfig/zconf.l create mode 100644 support/kconfig/zconf.lex.c_shipped create mode 100644 support/kconfig/zconf.tab.c_shipped create mode 100644 support/kconfig/zconf.y create mode 100644 support/legal-info/README.header create mode 100644 support/legal-info/README.warnings-header create mode 100644 support/legal-info/buildroot.hash create mode 100644 support/libtool/buildroot-libtool-v1.5.patch create mode 100644 support/libtool/buildroot-libtool-v2.2.patch create mode 100644 support/libtool/buildroot-libtool-v2.4.4.patch create mode 100644 support/libtool/buildroot-libtool-v2.4.patch create mode 100644 support/misc/Buildroot.cmake create mode 100644 support/misc/Vagrantfile create mode 100644 support/misc/cross-compilation.conf.in create mode 100644 support/misc/gen-glibc-locales.mk create mode 100644 support/misc/gitlab-ci.yml.in create mode 100755 support/misc/relocate-sdk.sh create mode 100644 support/misc/target-dir-warning.txt create mode 100644 support/misc/toolchainfile.cmake.in create mode 100644 support/misc/utils.mk create mode 100755 support/scripts/apply-patches.sh create mode 100755 support/scripts/boot-qemu-image.py create mode 100755 support/scripts/br2-external create mode 100644 support/scripts/brpkgutil.py create mode 100755 support/scripts/check-bin-arch create mode 100755 support/scripts/check-dotconfig.py create mode 100755 support/scripts/check-host-rpath create mode 100755 support/scripts/check-kernel-headers.sh create mode 100755 support/scripts/check-merged-usr.sh create mode 100644 support/scripts/cpedb.py create mode 100755 support/scripts/cve.py create mode 100755 support/scripts/expunge-gconv-modules create mode 100755 support/scripts/fix-configure-powerpc64.sh create mode 100755 support/scripts/fix-rpath create mode 100755 support/scripts/gen-bootlin-toolchains create mode 100755 support/scripts/gen-missing-cpe create mode 100755 support/scripts/generate-gitlab-ci-yml create mode 100755 support/scripts/genimage.sh create mode 100755 support/scripts/graph-build-time create mode 100755 support/scripts/graph-depends create mode 100755 support/scripts/hardlink-or-copy create mode 100755 support/scripts/mkmakefile create mode 100755 support/scripts/mkusers create mode 100755 support/scripts/pkg-stats create mode 100644 support/scripts/pyinstaller.py create mode 100755 support/scripts/setlocalversion create mode 100755 support/scripts/size-stats create mode 100644 support/testing/conf/binfmt-misc-kernel-fragment.config create mode 100644 support/testing/conf/docker-compose-kernel.config create mode 100644 support/testing/conf/docker-compose.yml create mode 100644 support/testing/conf/f2fs-kernel-fragment.config create mode 100644 support/testing/conf/grub2-efi.cfg create mode 100644 support/testing/conf/grub2.cfg create mode 100644 support/testing/conf/isolinux.cfg create mode 100644 support/testing/conf/minimal-x86-qemu-kernel.config create mode 100644 support/testing/conf/unittest.cfg create mode 100644 support/testing/infra/__init__.py create mode 100644 support/testing/infra/basetest.py create mode 100644 support/testing/infra/builder.py create mode 100644 support/testing/infra/emulator.py create mode 100755 support/testing/run-tests create mode 100644 support/testing/tests/__init__.py create mode 100644 support/testing/tests/boot/__init__.py create mode 100644 support/testing/tests/boot/test_atf.py create mode 100644 support/testing/tests/boot/test_edk2.py create mode 100644 support/testing/tests/boot/test_grub.py create mode 100644 support/testing/tests/boot/test_grub/genimage-aarch64-efi.cfg create mode 100644 support/testing/tests/boot/test_grub/grub-aarch64-efi.cfg create mode 100644 support/testing/tests/boot/test_grub/linux-aarch64-efi.config create mode 100755 support/testing/tests/boot/test_grub/post-build.sh create mode 100755 support/testing/tests/boot/test_grub/post-image-aarch64-efi.sh create mode 100644 support/testing/tests/boot/test_syslinux.py create mode 100644 support/testing/tests/core/__init__.py create mode 100644 support/testing/tests/core/br2-external/detect-bad-arch/Config.in create mode 100644 support/testing/tests/core/br2-external/detect-bad-arch/external.desc create mode 100644 support/testing/tests/core/br2-external/detect-bad-arch/external.mk create mode 100644 support/testing/tests/core/br2-external/detect-bad-arch/package/detect-bad-arch/Config.in create mode 100644 support/testing/tests/core/br2-external/detect-bad-arch/package/detect-bad-arch/detect-bad-arch.mk create mode 100644 support/testing/tests/core/cpeid-br2-external/Config.in create mode 100644 support/testing/tests/core/cpeid-br2-external/external.desc create mode 100644 support/testing/tests/core/cpeid-br2-external/external.mk create mode 100644 support/testing/tests/core/cpeid-br2-external/package/cpe-id-pkg1/cpe-id-pkg1.mk create mode 100644 support/testing/tests/core/cpeid-br2-external/package/cpe-id-pkg2/cpe-id-pkg2.mk create mode 100644 support/testing/tests/core/cpeid-br2-external/package/cpe-id-pkg3/cpe-id-pkg3.mk create mode 100644 support/testing/tests/core/cpeid-br2-external/package/cpe-id-pkg4/cpe-id-pkg4.mk create mode 100644 support/testing/tests/core/cpeid-br2-external/package/cpe-id-pkg5/cpe-id-pkg5.mk create mode 100644 support/testing/tests/core/device_table2.txt create mode 100755 support/testing/tests/core/post-build.sh create mode 120000 support/testing/tests/core/post-fakeroot.sh create mode 120000 support/testing/tests/core/post-image.sh create mode 100644 support/testing/tests/core/rootfs-overlay1/test-file1 create mode 100644 support/testing/tests/core/rootfs-overlay2/etc/test-file2 create mode 100644 support/testing/tests/core/squashfs-xattr-kernel.config create mode 100644 support/testing/tests/core/test_bad_arch.py create mode 100644 support/testing/tests/core/test_cpeid.py create mode 100644 support/testing/tests/core/test_file_capabilities.py create mode 100644 support/testing/tests/core/test_hardening.py create mode 100644 support/testing/tests/core/test_post_scripts.py create mode 100644 support/testing/tests/core/test_root_password.py create mode 100644 support/testing/tests/core/test_rootfs_overlay.py create mode 100644 support/testing/tests/core/test_selinux.py create mode 100644 support/testing/tests/core/test_selinux/br2_external/Config.in create mode 100644 support/testing/tests/core/test_selinux/br2_external/external.desc create mode 100644 support/testing/tests/core/test_selinux/br2_external/external.mk create mode 100644 support/testing/tests/core/test_selinux/br2_external/package/selinux-test/Config.in create mode 100644 support/testing/tests/core/test_selinux/br2_external/package/selinux-test/selinux-test.mk create mode 100644 support/testing/tests/core/test_selinux/br2_external/package/selinux-test/selinux/buildroot.fc create mode 100644 support/testing/tests/core/test_selinux/br2_external/package/selinux-test/selinux/buildroot.if create mode 100644 support/testing/tests/core/test_selinux/br2_external/package/selinux-test/selinux/buildroot.te create mode 100644 support/testing/tests/core/test_selinux/extra_modules/buildroot.fc create mode 100644 support/testing/tests/core/test_selinux/extra_modules/buildroot.if create mode 100644 support/testing/tests/core/test_selinux/extra_modules/buildroot.te create mode 100644 support/testing/tests/core/test_timezone.py create mode 100644 support/testing/tests/download/__init__.py create mode 100644 support/testing/tests/download/br2-external/git-hash/Config.in create mode 100644 support/testing/tests/download/br2-external/git-hash/external.desc create mode 100644 support/testing/tests/download/br2-external/git-hash/external.mk create mode 100644 support/testing/tests/download/br2-external/git-hash/package/bad/bad.hash create mode 100644 support/testing/tests/download/br2-external/git-hash/package/bad/bad.mk create mode 100644 support/testing/tests/download/br2-external/git-hash/package/good/good.hash create mode 100644 support/testing/tests/download/br2-external/git-hash/package/good/good.mk create mode 100644 support/testing/tests/download/br2-external/git-hash/package/nohash/nohash.mk create mode 100644 support/testing/tests/download/br2-external/git-refs/Config.in create mode 100644 support/testing/tests/download/br2-external/git-refs/external.desc create mode 100644 support/testing/tests/download/br2-external/git-refs/external.mk create mode 100644 support/testing/tests/download/br2-external/git-refs/package/git-partial-sha1-branch-head/git-partial-sha1-branch-head.hash create mode 100644 support/testing/tests/download/br2-external/git-refs/package/git-partial-sha1-branch-head/git-partial-sha1-branch-head.mk create mode 100644 support/testing/tests/download/br2-external/git-refs/package/git-partial-sha1-reachable-by-branch/git-partial-sha1-reachable-by-branch.hash create mode 100644 support/testing/tests/download/br2-external/git-refs/package/git-partial-sha1-reachable-by-branch/git-partial-sha1-reachable-by-branch.mk create mode 100644 support/testing/tests/download/br2-external/git-refs/package/git-partial-sha1-reachable-by-tag/git-partial-sha1-reachable-by-tag.hash create mode 100644 support/testing/tests/download/br2-external/git-refs/package/git-partial-sha1-reachable-by-tag/git-partial-sha1-reachable-by-tag.mk create mode 100644 support/testing/tests/download/br2-external/git-refs/package/git-partial-sha1-tag-itself/git-partial-sha1-tag-itself.hash create mode 100644 support/testing/tests/download/br2-external/git-refs/package/git-partial-sha1-tag-itself/git-partial-sha1-tag-itself.mk create mode 100644 support/testing/tests/download/br2-external/git-refs/package/git-partial-sha1-tag-points-to/git-partial-sha1-tag-points-to.hash create mode 100644 support/testing/tests/download/br2-external/git-refs/package/git-partial-sha1-tag-points-to/git-partial-sha1-tag-points-to.mk create mode 100644 support/testing/tests/download/br2-external/git-refs/package/git-sha1-branch-head/git-sha1-branch-head.hash create mode 100644 support/testing/tests/download/br2-external/git-refs/package/git-sha1-branch-head/git-sha1-branch-head.mk create mode 100644 support/testing/tests/download/br2-external/git-refs/package/git-sha1-reachable-by-branch/git-sha1-reachable-by-branch.hash create mode 100644 support/testing/tests/download/br2-external/git-refs/package/git-sha1-reachable-by-branch/git-sha1-reachable-by-branch.mk create mode 100644 support/testing/tests/download/br2-external/git-refs/package/git-sha1-reachable-by-tag/git-sha1-reachable-by-tag.hash create mode 100644 support/testing/tests/download/br2-external/git-refs/package/git-sha1-reachable-by-tag/git-sha1-reachable-by-tag.mk create mode 100644 support/testing/tests/download/br2-external/git-refs/package/git-sha1-tag-itself/git-sha1-tag-itself.hash create mode 100644 support/testing/tests/download/br2-external/git-refs/package/git-sha1-tag-itself/git-sha1-tag-itself.mk create mode 100644 support/testing/tests/download/br2-external/git-refs/package/git-sha1-tag-points-to/git-sha1-tag-points-to.hash create mode 100644 support/testing/tests/download/br2-external/git-refs/package/git-sha1-tag-points-to/git-sha1-tag-points-to.mk create mode 100644 support/testing/tests/download/br2-external/git-refs/package/git-submodule-disabled/git-submodule-disabled.hash create mode 100644 support/testing/tests/download/br2-external/git-refs/package/git-submodule-disabled/git-submodule-disabled.mk create mode 100644 support/testing/tests/download/br2-external/git-refs/package/git-submodule-enabled/git-submodule-enabled.hash create mode 100644 support/testing/tests/download/br2-external/git-refs/package/git-submodule-enabled/git-submodule-enabled.mk create mode 100644 support/testing/tests/download/br2-external/git-refs/package/git-tag/git-tag.hash create mode 100644 support/testing/tests/download/br2-external/git-refs/package/git-tag/git-tag.mk create mode 100644 support/testing/tests/download/br2-external/git-refs/package/git-wrong-content/git-wrong-content.hash create mode 100644 support/testing/tests/download/br2-external/git-refs/package/git-wrong-content/git-wrong-content.mk create mode 100644 support/testing/tests/download/br2-external/git-refs/package/git-wrong-sha1/git-wrong-sha1.mk create mode 100644 support/testing/tests/download/br2-external/github/Config.in create mode 100644 support/testing/tests/download/br2-external/github/external.desc create mode 100644 support/testing/tests/download/br2-external/github/external.mk create mode 100644 support/testing/tests/download/br2-external/github/package/github-helper-hash/github-helper-hash.hash create mode 100644 support/testing/tests/download/br2-external/github/package/github-helper-hash/github-helper-hash.mk create mode 100644 support/testing/tests/download/br2-external/github/package/github-helper-tag/github-helper-tag.hash create mode 100644 support/testing/tests/download/br2-external/github/package/github-helper-tag/github-helper-tag.mk create mode 100644 support/testing/tests/download/br2-external/github/package/github-release/github-release.hash create mode 100644 support/testing/tests/download/br2-external/github/package/github-release/github-release.mk create mode 100644 support/testing/tests/download/br2-external/gitlab/Config.in create mode 100644 support/testing/tests/download/br2-external/gitlab/external.desc create mode 100644 support/testing/tests/download/br2-external/gitlab/external.mk create mode 100644 support/testing/tests/download/br2-external/gitlab/package/gitlab-helper-hash/gitlab-helper-hash.hash create mode 100644 support/testing/tests/download/br2-external/gitlab/package/gitlab-helper-hash/gitlab-helper-hash.mk create mode 100644 support/testing/tests/download/br2-external/gitlab/package/gitlab-helper-tag/gitlab-helper-tag.hash create mode 100644 support/testing/tests/download/br2-external/gitlab/package/gitlab-helper-tag/gitlab-helper-tag.mk create mode 100644 support/testing/tests/download/br2-external/gitlab/package/gitlab-release/gitlab-release.hash create mode 100644 support/testing/tests/download/br2-external/gitlab/package/gitlab-release/gitlab-release.mk create mode 100644 support/testing/tests/download/br2-external/ssh/Config.in create mode 100644 support/testing/tests/download/br2-external/ssh/external.desc create mode 100644 support/testing/tests/download/br2-external/ssh/external.mk create mode 100644 support/testing/tests/download/br2-external/ssh/package/scp/scp.hash create mode 100644 support/testing/tests/download/br2-external/ssh/package/scp/scp.mk create mode 100644 support/testing/tests/download/br2-external/ssh/package/sftp/sftp.hash create mode 100644 support/testing/tests/download/br2-external/ssh/package/sftp/sftp.mk create mode 100644 support/testing/tests/download/git-remote/refs-sub1.git/.gitattributes create mode 100644 support/testing/tests/download/git-remote/refs-sub1.git/HEAD create mode 100644 support/testing/tests/download/git-remote/refs-sub1.git/config create mode 100644 support/testing/tests/download/git-remote/refs-sub1.git/objects/07/cabc655213bdf7087d8dd50fda95124e935570 create mode 100644 support/testing/tests/download/git-remote/refs-sub1.git/objects/1d/f823cb8a6d1866148ae50a8009762a9c4c777f create mode 100644 support/testing/tests/download/git-remote/refs-sub1.git/objects/7d/52f458bdb0f9f5a4beb46fa82824421b8b988e create mode 100644 support/testing/tests/download/git-remote/refs-sub1.git/objects/99/f2e3e1cb15f9b52fa29f66d380dda061d917ab create mode 100644 support/testing/tests/download/git-remote/refs-sub1.git/objects/a1/30af1626bbadd64841b2cbcb6ac4ed0638ba1a create mode 100644 support/testing/tests/download/git-remote/refs-sub1.git/objects/bc/c81ba6e5bd8bf52c95688ae8d3e697e131fa23 create mode 100644 support/testing/tests/download/git-remote/refs-sub1.git/objects/cb/545facf77bbc5f24f95b6d503c338d10b7b717 create mode 100644 support/testing/tests/download/git-remote/refs-sub1.git/objects/dd/130f6f4629514adaf2e03407f3ed9344eb6cd6 create mode 100644 support/testing/tests/download/git-remote/refs-sub1.git/objects/e7/9c5e8f964493290a409888d5413a737e8e5dd5 create mode 100644 support/testing/tests/download/git-remote/refs-sub1.git/objects/f8/001e5780100962a5e30a25cbc4c9609cfc7bf3 create mode 100644 support/testing/tests/download/git-remote/refs-sub1.git/refs/heads/submodule create mode 100644 support/testing/tests/download/git-remote/refs-sub2.git/.gitattributes create mode 100644 support/testing/tests/download/git-remote/refs-sub2.git/HEAD create mode 100644 support/testing/tests/download/git-remote/refs-sub2.git/config create mode 100644 support/testing/tests/download/git-remote/refs-sub2.git/objects/0a/846af45c3e455789435f49f80d70e86b65b9d7 create mode 100644 support/testing/tests/download/git-remote/refs-sub2.git/objects/0b/32ebd8fc52cec991f18c94be980e85a8341585 create mode 100644 support/testing/tests/download/git-remote/refs-sub2.git/objects/32/d61bae693af7879da63b89a60d3ae67f851e56 create mode 100644 support/testing/tests/download/git-remote/refs-sub2.git/objects/3e/9b0a5198c64cea9c00f820433411e3b4d50c1c create mode 100644 support/testing/tests/download/git-remote/refs-sub2.git/objects/85/8f666af75b7c0dfba6b8be7eac5f196e7a1221 create mode 100644 support/testing/tests/download/git-remote/refs-sub2.git/objects/99/f2e3e1cb15f9b52fa29f66d380dda061d917ab create mode 100644 support/testing/tests/download/git-remote/refs-sub2.git/objects/cd/4d62ff218ab7b4a04f5bfdf800ace087af3ceb create mode 100644 support/testing/tests/download/git-remote/refs-sub2.git/objects/e7/9c5e8f964493290a409888d5413a737e8e5dd5 create mode 100644 support/testing/tests/download/git-remote/refs-sub2.git/objects/e8/3f6f805bd016b90acafc8702c52d778eb57310 create mode 100644 support/testing/tests/download/git-remote/refs-sub2.git/refs/heads/submodule create mode 100644 support/testing/tests/download/git-remote/repo.git/.gitattributes create mode 100644 support/testing/tests/download/git-remote/repo.git/HEAD create mode 100644 support/testing/tests/download/git-remote/repo.git/config create mode 100644 support/testing/tests/download/git-remote/repo.git/objects/0b/d8ceb961c3b2b210f64a67d57f4b5cd669d343 create mode 100644 support/testing/tests/download/git-remote/repo.git/objects/11/93ff46343f4f6a0522e2b28b871e905178c1f0 create mode 100644 support/testing/tests/download/git-remote/repo.git/objects/25/59d83bfe937fc0412d96ed664663c9e8a99055 create mode 100644 support/testing/tests/download/git-remote/repo.git/objects/2b/0e0d98a49c97da6a618ab36337e2058eb733a2 create mode 100644 support/testing/tests/download/git-remote/repo.git/objects/2f/a37f6885d7eb746df75eccaddbacf3ac82799d create mode 100644 support/testing/tests/download/git-remote/repo.git/objects/31/7406308d9259e2231bd0d6ddad3de3832bce08 create mode 100644 support/testing/tests/download/git-remote/repo.git/objects/34/d1da713bf7de1c535e1d7d3ca985afd84bc7e5 create mode 100644 support/testing/tests/download/git-remote/repo.git/objects/46/bae5b639e5a18e2cc4dc508f080d566baeff59 create mode 100644 support/testing/tests/download/git-remote/repo.git/objects/51/6c9c5f64ec66534d4d069c2e408d9ae4dce023 create mode 100644 support/testing/tests/download/git-remote/repo.git/objects/68/c197d0879d485f4f6cee85544722b79e68e59f create mode 100644 support/testing/tests/download/git-remote/repo.git/objects/8b/8a7e885a041da72b1ee9a47c5b9300b172a9e7 create mode 100644 support/testing/tests/download/git-remote/repo.git/objects/92/ef85be57d627f280d8ce3724452ac21c9a6452 create mode 100644 support/testing/tests/download/git-remote/repo.git/objects/99/f2e3e1cb15f9b52fa29f66d380dda061d917ab create mode 100644 support/testing/tests/download/git-remote/repo.git/objects/a2/38b1dfcd825d47d834af3c5223417c8411d90d create mode 100644 support/testing/tests/download/git-remote/repo.git/objects/a9/dbc1e23c45e8e1b88c0448763f54d714eb6f8f create mode 100644 support/testing/tests/download/git-remote/repo.git/objects/b2/4b387624edc78d0292a127c43cad9ba97c6232 create mode 100644 support/testing/tests/download/git-remote/repo.git/objects/cf/0f4f85d7a1237e377a2d25b996518a877ea001 create mode 100644 support/testing/tests/download/git-remote/repo.git/objects/d4/e2941d18a63535400476324ddeb7f40164be41 create mode 100644 support/testing/tests/download/git-remote/repo.git/objects/e2/2695cbf976fed1f543ad7486a531c0af473482 create mode 100644 support/testing/tests/download/git-remote/repo.git/objects/e2/cfe068f7e5bf4de32ffe1241da53abce9fa89e create mode 100644 support/testing/tests/download/git-remote/repo.git/objects/e7/9c5e8f964493290a409888d5413a737e8e5dd5 create mode 100644 support/testing/tests/download/git-remote/repo.git/objects/f6/476b879f65e956d7dedd5b08736369e9a24acc create mode 100644 support/testing/tests/download/git-remote/repo.git/objects/fe/74231105841041d5f441e70399d37f0e600aa5 create mode 100644 support/testing/tests/download/git-remote/repo.git/refs/heads/master create mode 100644 support/testing/tests/download/git-remote/repo.git/refs/heads/mybranch create mode 100644 support/testing/tests/download/git-remote/repo.git/refs/heads/submodule create mode 100644 support/testing/tests/download/git-remote/repo.git/refs/tags/mytag create mode 100644 support/testing/tests/download/gitremote.py create mode 100644 support/testing/tests/download/sshd.py create mode 100644 support/testing/tests/download/sshd/ssh-test-1.0.tar.xz create mode 100644 support/testing/tests/download/test_git.py create mode 100644 support/testing/tests/download/test_gitforge.py create mode 100644 support/testing/tests/download/test_ssh.py create mode 100644 support/testing/tests/fs/__init__.py create mode 100644 support/testing/tests/fs/test_ext.py create mode 100644 support/testing/tests/fs/test_f2fs.py create mode 100644 support/testing/tests/fs/test_iso9660.py create mode 100644 support/testing/tests/fs/test_jffs2.py create mode 100644 support/testing/tests/fs/test_oci.py create mode 100644 support/testing/tests/fs/test_squashfs.py create mode 100644 support/testing/tests/fs/test_ubi.py create mode 100644 support/testing/tests/fs/test_ubi/ubinize_qemu_pflash_cfi01.cfg create mode 100644 support/testing/tests/fs/test_yaffs2.py create mode 100644 support/testing/tests/init/__init__.py create mode 100644 support/testing/tests/init/base.py create mode 100644 support/testing/tests/init/systemd-factory/var/foo/bar create mode 100644 support/testing/tests/init/test_busybox.py create mode 100644 support/testing/tests/init/test_none.py create mode 100644 support/testing/tests/init/test_openrc.py create mode 100644 support/testing/tests/init/test_systemd.py create mode 100644 support/testing/tests/init/test_systemd_selinux.py create mode 100644 support/testing/tests/init/test_systemd_selinux/linux-squashfs.fragment create mode 100644 support/testing/tests/package/__init__.py create mode 100644 support/testing/tests/package/br2-external/clang-compiler-rt/Config.in create mode 100644 support/testing/tests/package/br2-external/clang-compiler-rt/external.desc create mode 100644 support/testing/tests/package/br2-external/clang-compiler-rt/external.mk create mode 100644 support/testing/tests/package/br2-external/clang-compiler-rt/package/libfuzzer/Config.in create mode 100644 support/testing/tests/package/br2-external/clang-compiler-rt/package/libfuzzer/libfuzzer.hash create mode 100644 support/testing/tests/package/br2-external/clang-compiler-rt/package/libfuzzer/libfuzzer.mk create mode 100644 support/testing/tests/package/br2-external/openjdk/Config.in create mode 100644 support/testing/tests/package/br2-external/openjdk/external.desc create mode 100644 support/testing/tests/package/br2-external/openjdk/external.mk create mode 100644 support/testing/tests/package/br2-external/openjdk/package/openjdk-hello-world/Config.in create mode 100644 support/testing/tests/package/br2-external/openjdk/package/openjdk-hello-world/HelloWorld.java create mode 100644 support/testing/tests/package/br2-external/openjdk/package/openjdk-hello-world/openjdk-hello-world.mk create mode 100644 support/testing/tests/package/br2-external/openjdk/package/openjdk-jni-test/Config.in create mode 100644 support/testing/tests/package/br2-external/openjdk/package/openjdk-jni-test/JniHelper.java create mode 100644 support/testing/tests/package/br2-external/openjdk/package/openjdk-jni-test/JniTest.java create mode 100644 support/testing/tests/package/br2-external/openjdk/package/openjdk-jni-test/JniWrapper.c create mode 100644 support/testing/tests/package/br2-external/openjdk/package/openjdk-jni-test/JniWrapper.java create mode 100644 support/testing/tests/package/br2-external/openjdk/package/openjdk-jni-test/jni_helper.c create mode 100644 support/testing/tests/package/br2-external/openjdk/package/openjdk-jni-test/jni_helper.h create mode 100644 support/testing/tests/package/br2-external/openjdk/package/openjdk-jni-test/native.c create mode 100644 support/testing/tests/package/br2-external/openjdk/package/openjdk-jni-test/native.h create mode 100644 support/testing/tests/package/br2-external/openjdk/package/openjdk-jni-test/openjdk-jni-test.mk create mode 100644 support/testing/tests/package/br2-external/polkit/Config.in create mode 100644 support/testing/tests/package/br2-external/polkit/external.desc create mode 100644 support/testing/tests/package/br2-external/polkit/external.mk create mode 100644 support/testing/tests/package/br2-external/polkit/package/polkit-rules-test/Config.in create mode 100644 support/testing/tests/package/br2-external/polkit/package/polkit-rules-test/initd/hello-polkit.c create mode 100644 support/testing/tests/package/br2-external/polkit/package/polkit-rules-test/initd/hello-polkit.policy create mode 100644 support/testing/tests/package/br2-external/polkit/package/polkit-rules-test/initd/hello-polkit.rules create mode 100644 support/testing/tests/package/br2-external/polkit/package/polkit-rules-test/polkit-rules-test.mk create mode 100644 support/testing/tests/package/br2-external/polkit/package/polkit-rules-test/systemd/systemd-timesyncd-restart.rules create mode 100644 support/testing/tests/package/br2-external/python-pybind/Config.in create mode 100644 support/testing/tests/package/br2-external/python-pybind/external.desc create mode 100644 support/testing/tests/package/br2-external/python-pybind/external.mk create mode 100644 support/testing/tests/package/br2-external/python-pybind/package/python-pybind-example/Config.in create mode 100644 support/testing/tests/package/br2-external/python-pybind/package/python-pybind-example/example.cpp create mode 100644 support/testing/tests/package/br2-external/python-pybind/package/python-pybind-example/python-pybind-example.mk create mode 100755 support/testing/tests/package/copy-sample-script-to-target.sh create mode 100755 support/testing/tests/package/sample_bmap_tools.sh create mode 100644 support/testing/tests/package/sample_gst1_python.py create mode 100644 support/testing/tests/package/sample_libftdi1.py create mode 100644 support/testing/tests/package/sample_python_aexpect.py create mode 100644 support/testing/tests/package/sample_python_argh.py create mode 100644 support/testing/tests/package/sample_python_attrs.py create mode 100644 support/testing/tests/package/sample_python_augeas.py create mode 100644 support/testing/tests/package/sample_python_autobahn.py create mode 100644 support/testing/tests/package/sample_python_automat.py create mode 100644 support/testing/tests/package/sample_python_avro.py create mode 100644 support/testing/tests/package/sample_python_bitstring.py create mode 100644 support/testing/tests/package/sample_python_boto3.py create mode 100644 support/testing/tests/package/sample_python_botocore.py create mode 100644 support/testing/tests/package/sample_python_can.py create mode 100644 support/testing/tests/package/sample_python_cbor_dec.py create mode 100644 support/testing/tests/package/sample_python_cbor_enc.py create mode 100644 support/testing/tests/package/sample_python_click.py create mode 100644 support/testing/tests/package/sample_python_colorzero.py create mode 100644 support/testing/tests/package/sample_python_constantly.py create mode 100644 support/testing/tests/package/sample_python_construct.py create mode 100644 support/testing/tests/package/sample_python_crossbar.py create mode 100644 support/testing/tests/package/sample_python_cryptography.py create mode 100644 support/testing/tests/package/sample_python_dbus_next.py create mode 100644 support/testing/tests/package/sample_python_distro.py create mode 100644 support/testing/tests/package/sample_python_django.py create mode 100644 support/testing/tests/package/sample_python_dtschema.py create mode 100644 support/testing/tests/package/sample_python_flask.py create mode 100644 support/testing/tests/package/sample_python_flask_expects_json.py create mode 100644 support/testing/tests/package/sample_python_git.py create mode 100644 support/testing/tests/package/sample_python_gitdb2.py create mode 100644 support/testing/tests/package/sample_python_gnupg.py create mode 100644 support/testing/tests/package/sample_python_gobject.py create mode 100644 support/testing/tests/package/sample_python_gpiozero.py create mode 100644 support/testing/tests/package/sample_python_incremental.py create mode 100644 support/testing/tests/package/sample_python_iptables.py create mode 100644 support/testing/tests/package/sample_python_jmespath.py create mode 100644 support/testing/tests/package/sample_python_paho_mqtt.py create mode 100644 support/testing/tests/package/sample_python_passlib.py create mode 100644 support/testing/tests/package/sample_python_pexpect.py create mode 100644 support/testing/tests/package/sample_python_pyalsa.py create mode 100644 support/testing/tests/package/sample_python_pybind.py create mode 100644 support/testing/tests/package/sample_python_pynacl.py create mode 100644 support/testing/tests/package/sample_python_pytest.py create mode 100644 support/testing/tests/package/sample_python_pytest_asyncio.py create mode 100644 support/testing/tests/package/sample_python_pyyaml_dec.py create mode 100644 support/testing/tests/package/sample_python_pyyaml_enc.py create mode 100644 support/testing/tests/package/sample_python_qrcode.py create mode 100644 support/testing/tests/package/sample_python_rpi_gpio.py create mode 100644 support/testing/tests/package/sample_python_rsa.py create mode 100644 support/testing/tests/package/sample_python_rtoml.py create mode 100644 support/testing/tests/package/sample_python_s3transfer.py create mode 100644 support/testing/tests/package/sample_python_scipy.py create mode 100644 support/testing/tests/package/sample_python_service_identity.py create mode 100644 support/testing/tests/package/sample_python_smmap2.py create mode 100644 support/testing/tests/package/sample_python_treq.py create mode 100644 support/testing/tests/package/sample_python_twisted.py create mode 100644 support/testing/tests/package/sample_python_txaio_asyncio.py create mode 100644 support/testing/tests/package/sample_python_txaio_twisted.py create mode 100644 support/testing/tests/package/sample_python_txtorcon.py create mode 100644 support/testing/tests/package/sample_python_ubjson_dec.py create mode 100644 support/testing/tests/package/sample_python_ubjson_enc.py create mode 100644 support/testing/tests/package/sample_python_unittest_xml_reporting.py create mode 100644 support/testing/tests/package/test_atop.py create mode 100644 support/testing/tests/package/test_avocado.py create mode 100644 support/testing/tests/package/test_bmap_tools.py create mode 100644 support/testing/tests/package/test_clang.py create mode 100644 support/testing/tests/package/test_crudini.py create mode 100644 support/testing/tests/package/test_docker_compose.py create mode 100644 support/testing/tests/package/test_dropbear.py create mode 100644 support/testing/tests/package/test_dtbocfg.py create mode 100644 support/testing/tests/package/test_execline.py create mode 100644 support/testing/tests/package/test_gdb.py create mode 100644 support/testing/tests/package/test_glxinfo.py create mode 100644 support/testing/tests/package/test_glxinfo/rootfs-overlay/etc/X11/xorg.conf.d/01-modules.conf create mode 100644 support/testing/tests/package/test_gst1_python.py create mode 100644 support/testing/tests/package/test_ipython.py create mode 100644 support/testing/tests/package/test_libftdi1.py create mode 100644 support/testing/tests/package/test_libshdata.py create mode 100644 support/testing/tests/package/test_lpeg.py create mode 100644 support/testing/tests/package/test_lsqlite3.py create mode 100644 support/testing/tests/package/test_lua.py create mode 100644 support/testing/tests/package/test_lua_argon2.py create mode 100644 support/testing/tests/package/test_lua_augeas.py create mode 100644 support/testing/tests/package/test_lua_cffi.py create mode 100644 support/testing/tests/package/test_lua_cqueues.py create mode 100644 support/testing/tests/package/test_lua_curl.py create mode 100644 support/testing/tests/package/test_lua_gd.py create mode 100644 support/testing/tests/package/test_lua_http.py create mode 100644 support/testing/tests/package/test_lua_inotify.py create mode 100644 support/testing/tests/package/test_lua_lunix.py create mode 100644 support/testing/tests/package/test_lua_lyaml.py create mode 100644 support/testing/tests/package/test_lua_sdl2.py create mode 100644 support/testing/tests/package/test_lua_utf8.py create mode 100644 support/testing/tests/package/test_lua_zlib.py create mode 100644 support/testing/tests/package/test_luaexpat.py create mode 100644 support/testing/tests/package/test_luafilesystem.py create mode 100644 support/testing/tests/package/test_lualdap.py create mode 100644 support/testing/tests/package/test_luaossl.py create mode 100644 support/testing/tests/package/test_luaposix.py create mode 100644 support/testing/tests/package/test_luasec.py create mode 100644 support/testing/tests/package/test_luasocket.py create mode 100644 support/testing/tests/package/test_luasyslog.py create mode 100644 support/testing/tests/package/test_luvi.py create mode 100644 support/testing/tests/package/test_lxc.py create mode 100644 support/testing/tests/package/test_lxc/lxc-kernel.config create mode 100755 support/testing/tests/package/test_lxc/rootfs-overlay/usr/bin/iperf3.sh create mode 100644 support/testing/tests/package/test_lxc/rootfs-overlay/usr/share/lxc/config/minimal-iperf3.conf create mode 100644 support/testing/tests/package/test_lxc/rootfs-overlay/usr/share/lxc/config/minimal.conf create mode 100644 support/testing/tests/package/test_lzlib.py create mode 100644 support/testing/tests/package/test_mender.py create mode 100644 support/testing/tests/package/test_mender/rootfs-overlay/etc/mender/artifact_info create mode 100755 support/testing/tests/package/test_mender/rootfs-overlay/usr/bin/fw_printenv create mode 100644 support/testing/tests/package/test_msr_tools.py create mode 100644 support/testing/tests/package/test_msr_tools/linux.config create mode 100644 support/testing/tests/package/test_netdata.py create mode 100644 support/testing/tests/package/test_octave.py create mode 100644 support/testing/tests/package/test_ola.py create mode 100755 support/testing/tests/package/test_ola/rootfs-overlay/usr/bin/sample_ola_rdm_discovery.py create mode 100644 support/testing/tests/package/test_openjdk.py create mode 100644 support/testing/tests/package/test_openssh.py create mode 100755 support/testing/tests/package/test_openssh/post-build.sh create mode 100644 support/testing/tests/package/test_opkg.py create mode 100755 support/testing/tests/package/test_opkg/post-build.sh create mode 100644 support/testing/tests/package/test_perl.py create mode 100644 support/testing/tests/package/test_perl_class_load.py create mode 100644 support/testing/tests/package/test_perl_dbd_mysql.py create mode 100644 support/testing/tests/package/test_perl_encode_detect.py create mode 100644 support/testing/tests/package/test_perl_gdgraph.py create mode 100644 support/testing/tests/package/test_perl_html_parser.py create mode 100644 support/testing/tests/package/test_perl_io_socket_multicast.py create mode 100644 support/testing/tests/package/test_perl_io_socket_ssl.py create mode 100644 support/testing/tests/package/test_perl_libwww_perl.py create mode 100644 support/testing/tests/package/test_perl_lwp_protocol_https.py create mode 100644 support/testing/tests/package/test_perl_mail_dkim.py create mode 100644 support/testing/tests/package/test_perl_x10.py create mode 100644 support/testing/tests/package/test_perl_xml_libxml.py create mode 100644 support/testing/tests/package/test_php_apcu.py create mode 100644 support/testing/tests/package/test_php_lua.py create mode 100644 support/testing/tests/package/test_php_pam.py create mode 100644 support/testing/tests/package/test_php_pecl_dbus.py create mode 100644 support/testing/tests/package/test_pixz.py create mode 100644 support/testing/tests/package/test_polkit.py create mode 100644 support/testing/tests/package/test_prosody.py create mode 100644 support/testing/tests/package/test_python.py create mode 100644 support/testing/tests/package/test_python_aexpect.py create mode 100644 support/testing/tests/package/test_python_argh.py create mode 100644 support/testing/tests/package/test_python_attrs.py create mode 100644 support/testing/tests/package/test_python_augeas.py create mode 100644 support/testing/tests/package/test_python_autobahn.py create mode 100644 support/testing/tests/package/test_python_automat.py create mode 100644 support/testing/tests/package/test_python_avro.py create mode 100644 support/testing/tests/package/test_python_bitstring.py create mode 100644 support/testing/tests/package/test_python_boto3.py create mode 100644 support/testing/tests/package/test_python_botocore.py create mode 100644 support/testing/tests/package/test_python_can.py create mode 100644 support/testing/tests/package/test_python_cbor.py create mode 100644 support/testing/tests/package/test_python_click.py create mode 100644 support/testing/tests/package/test_python_colorzero.py create mode 100644 support/testing/tests/package/test_python_constantly.py create mode 100644 support/testing/tests/package/test_python_construct.py create mode 100644 support/testing/tests/package/test_python_crossbar.py create mode 100644 support/testing/tests/package/test_python_cryptography.py create mode 100644 support/testing/tests/package/test_python_dbus_next.py create mode 100644 support/testing/tests/package/test_python_distro.py create mode 100644 support/testing/tests/package/test_python_django.py create mode 100644 support/testing/tests/package/test_python_dtschema.py create mode 100644 support/testing/tests/package/test_python_flask.py create mode 100644 support/testing/tests/package/test_python_flask_expects_json.py create mode 100644 support/testing/tests/package/test_python_git.py create mode 100644 support/testing/tests/package/test_python_gitdb2.py create mode 100644 support/testing/tests/package/test_python_gnupg.py create mode 100644 support/testing/tests/package/test_python_gobject.py create mode 100644 support/testing/tests/package/test_python_gpiozero.py create mode 100644 support/testing/tests/package/test_python_incremental.py create mode 100644 support/testing/tests/package/test_python_iptables.py create mode 100644 support/testing/tests/package/test_python_jmespath.py create mode 100644 support/testing/tests/package/test_python_paho_mqtt.py create mode 100644 support/testing/tests/package/test_python_passlib.py create mode 100644 support/testing/tests/package/test_python_pexpect.py create mode 100644 support/testing/tests/package/test_python_pyalsa.py create mode 100644 support/testing/tests/package/test_python_pybind.py create mode 100644 support/testing/tests/package/test_python_pynacl.py create mode 100644 support/testing/tests/package/test_python_pyndiff.py create mode 100644 support/testing/tests/package/test_python_pytest.py create mode 100644 support/testing/tests/package/test_python_pytest_asyncio.py create mode 100644 support/testing/tests/package/test_python_pyyaml.py create mode 100644 support/testing/tests/package/test_python_qrcode.py create mode 100644 support/testing/tests/package/test_python_rpi_gpio.py create mode 100644 support/testing/tests/package/test_python_rsa.py create mode 100644 support/testing/tests/package/test_python_rtoml.py create mode 100644 support/testing/tests/package/test_python_s3transfer.py create mode 100644 support/testing/tests/package/test_python_scipy.py create mode 100644 support/testing/tests/package/test_python_service_identity.py create mode 100644 support/testing/tests/package/test_python_smmap2.py create mode 100644 support/testing/tests/package/test_python_treq.py create mode 100644 support/testing/tests/package/test_python_twisted.py create mode 100644 support/testing/tests/package/test_python_txaio.py create mode 100644 support/testing/tests/package/test_python_txtorcon.py create mode 100644 support/testing/tests/package/test_python_ubjson.py create mode 100644 support/testing/tests/package/test_python_unittest_xml_reporting.py create mode 100644 support/testing/tests/package/test_redis.py create mode 100644 support/testing/tests/package/test_rings.py create mode 100644 support/testing/tests/package/test_rust.py create mode 100644 support/testing/tests/package/test_s6.py create mode 100644 support/testing/tests/package/test_s6_networking.py create mode 100644 support/testing/tests/package/test_s6_portable_utils.py create mode 100644 support/testing/tests/package/test_s6_rc.py create mode 100644 support/testing/tests/package/test_sudo.py create mode 100644 support/testing/tests/package/test_syslog_ng.py create mode 100644 support/testing/tests/package/test_tmux.py create mode 100644 support/testing/tests/package/test_turbolua.py create mode 100644 support/testing/tests/package/test_uboot_openssl_pkgconfig.py create mode 100644 support/testing/tests/package/test_zerofree.py create mode 100644 support/testing/tests/package/test_zfs.py create mode 100644 support/testing/tests/toolchain/__init__.py create mode 100644 support/testing/tests/toolchain/test_aarch64_64k.py create mode 100644 support/testing/tests/toolchain/test_external.py create mode 100644 support/testing/tests/toolchain/test_external_bootlin.py create mode 100644 support/testing/tests/utils/__init__.py create mode 100644 support/testing/tests/utils/br2-external/Config.in create mode 100644 support/testing/tests/utils/br2-external/external.desc create mode 100644 support/testing/tests/utils/br2-external/external.mk create mode 100644 support/testing/tests/utils/br2-external/package/external/external.mk create mode 100644 support/testing/tests/utils/test_check_package.py create mode 100644 support/testing/tests/utils/test_get_developers.py create mode 100644 support/testing/tests/utils/test_get_developers/0001-package-binutils-change-.mk.patch create mode 100644 system/Config.in create mode 100644 system/device_table.txt create mode 100644 system/device_table_dev.txt create mode 100644 system/skeleton/dev/.empty create mode 120000 system/skeleton/dev/fd create mode 120000 system/skeleton/dev/stderr create mode 120000 system/skeleton/dev/stdin create mode 120000 system/skeleton/dev/stdout create mode 100644 system/skeleton/etc/group create mode 100644 system/skeleton/etc/hosts create mode 120000 system/skeleton/etc/mtab create mode 100644 system/skeleton/etc/passwd create mode 100644 system/skeleton/etc/profile create mode 100644 system/skeleton/etc/profile.d/umask.sh create mode 100644 system/skeleton/etc/protocols create mode 120000 system/skeleton/etc/resolv.conf create mode 100644 system/skeleton/etc/services create mode 100644 system/skeleton/etc/shadow create mode 100644 system/skeleton/media/.empty create mode 100644 system/skeleton/mnt/.empty create mode 100644 system/skeleton/opt/.empty create mode 100644 system/skeleton/proc/.empty create mode 100644 system/skeleton/root/.empty create mode 100644 system/skeleton/run/lock/.empty create mode 100644 system/skeleton/sys/.empty create mode 100644 system/skeleton/tmp/.empty create mode 100644 system/skeleton/usr/bin/.empty create mode 100644 system/skeleton/usr/lib/.empty create mode 100644 system/skeleton/usr/sbin/.empty create mode 100644 system/system.mk create mode 100644 toolchain/Config.in create mode 100644 toolchain/helpers.mk create mode 100644 toolchain/toolchain-buildroot/Config.in create mode 100644 toolchain/toolchain-buildroot/toolchain-buildroot.mk create mode 100644 toolchain/toolchain-external/Config.in create mode 100644 toolchain/toolchain-external/pkg-toolchain-external.mk create mode 100644 toolchain/toolchain-external/toolchain-external-arm-aarch64-be/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-arm-aarch64-be/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-arm-aarch64-be/toolchain-external-arm-aarch64-be.hash create mode 100644 toolchain/toolchain-external/toolchain-external-arm-aarch64-be/toolchain-external-arm-aarch64-be.mk create mode 100644 toolchain/toolchain-external/toolchain-external-arm-aarch64/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-arm-aarch64/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-arm-aarch64/toolchain-external-arm-aarch64.hash create mode 100644 toolchain/toolchain-external/toolchain-external-arm-aarch64/toolchain-external-arm-aarch64.mk create mode 100644 toolchain/toolchain-external/toolchain-external-arm-arm/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-arm-arm/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-arm-arm/toolchain-external-arm-arm.hash create mode 100644 toolchain/toolchain-external/toolchain-external-arm-arm/toolchain-external-arm-arm.mk create mode 100644 toolchain/toolchain-external/toolchain-external-bootlin/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-bootlin/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-bootlin/toolchain-external-bootlin.hash create mode 100644 toolchain/toolchain-external/toolchain-external-bootlin/toolchain-external-bootlin.mk create mode 100644 toolchain/toolchain-external/toolchain-external-codescape-img-mips/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-codescape-img-mips/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-codescape-img-mips/toolchain-external-codescape-img-mips.hash create mode 100644 toolchain/toolchain-external/toolchain-external-codescape-img-mips/toolchain-external-codescape-img-mips.mk create mode 100644 toolchain/toolchain-external/toolchain-external-codescape-mti-mips/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-codescape-mti-mips/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-codescape-mti-mips/toolchain-external-codescape-mti-mips.hash create mode 100644 toolchain/toolchain-external/toolchain-external-codescape-mti-mips/toolchain-external-codescape-mti-mips.mk create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/toolchain-external-codesourcery-aarch64.hash create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/toolchain-external-codesourcery-aarch64.mk create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-arm/toolchain-external-codesourcery-arm.hash create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-arm/toolchain-external-codesourcery-arm.mk create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-mips/toolchain-external-codesourcery-mips.hash create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-mips/toolchain-external-codesourcery-mips.mk create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-niosII/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-niosII/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-niosII/toolchain-external-codesourcery-niosII.hash create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-niosII/toolchain-external-codesourcery-niosII.mk create mode 100644 toolchain/toolchain-external/toolchain-external-custom/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-custom/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-custom/toolchain-external-custom.mk create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-aarch64-be/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-aarch64-be/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-aarch64-be/toolchain-external-linaro-aarch64-be.hash create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-aarch64-be/toolchain-external-linaro-aarch64-be.mk create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-aarch64/toolchain-external-linaro-aarch64.hash create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-aarch64/toolchain-external-linaro-aarch64.mk create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-arm/toolchain-external-linaro-arm.hash create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-arm/toolchain-external-linaro-arm.mk create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-armeb/toolchain-external-linaro-armeb.hash create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-armeb/toolchain-external-linaro-armeb.mk create mode 100644 toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-synopsys-arc/toolchain-external-synopsys-arc.hash create mode 100644 toolchain/toolchain-external/toolchain-external-synopsys-arc/toolchain-external-synopsys-arc.mk create mode 100644 toolchain/toolchain-external/toolchain-external.mk create mode 100644 toolchain/toolchain-wrapper.c create mode 100644 toolchain/toolchain-wrapper.mk create mode 100644 toolchain/toolchain.mk create mode 100644 toolchain/toolchain/toolchain.mk create mode 100755 utils/brmake create mode 100755 utils/check-package create mode 100644 utils/checkpackagelib/__init__.py create mode 100644 utils/checkpackagelib/base.py create mode 100644 utils/checkpackagelib/lib.py create mode 100644 utils/checkpackagelib/lib_config.py create mode 100644 utils/checkpackagelib/lib_hash.py create mode 100644 utils/checkpackagelib/lib_mk.py create mode 100644 utils/checkpackagelib/lib_patch.py create mode 100644 utils/checkpackagelib/lib_sysv.py create mode 100644 utils/checkpackagelib/readme.txt create mode 100644 utils/checkpackagelib/test_lib.py create mode 100644 utils/checkpackagelib/test_lib_config.py create mode 100644 utils/checkpackagelib/test_lib_hash.py create mode 100644 utils/checkpackagelib/test_lib_mk.py create mode 100644 utils/checkpackagelib/test_lib_patch.py create mode 100644 utils/checkpackagelib/test_lib_sysv.py create mode 100644 utils/checkpackagelib/test_tool.py create mode 100644 utils/checkpackagelib/test_util.py create mode 100644 utils/checkpackagelib/tool.py create mode 100755 utils/config create mode 100755 utils/diffconfig create mode 100755 utils/docker-run create mode 100755 utils/genrandconfig create mode 100755 utils/get-developers create mode 100644 utils/getdeveloperlib.py create mode 100644 utils/readme.txt create mode 100755 utils/scancpan create mode 100755 utils/scanpypi create mode 100755 utils/size-stats-compare create mode 100755 utils/test-pkg diff --git a/.clang-format b/.clang-format new file mode 100644 index 000000000..1758a23f3 --- /dev/null +++ b/.clang-format @@ -0,0 +1,567 @@ +# SPDX-License-Identifier: GPL-2.0 +# +# clang-format configuration file. Intended for clang-format >= 4. +# +# For more information, see: +# +# Documentation/process/clang-format.rst +# https://clang.llvm.org/docs/ClangFormat.html +# https://clang.llvm.org/docs/ClangFormatStyleOptions.html +# + +# Buildroot: imported from Linux 5.15.6, with minimal modifications. +# Please note, this is not enforced at the moment. Intended +# as an aid when working with in-tree C files, like +# makedevs.c +# +--- +AccessModifierOffset: -4 +AlignAfterOpenBracket: Align +AlignConsecutiveAssignments: false +AlignConsecutiveDeclarations: false +#AlignEscapedNewlines: Left # Unknown to clang-format-4.0 +AlignOperands: true +AlignTrailingComments: false +AllowAllParametersOfDeclarationOnNextLine: false +AllowShortBlocksOnASingleLine: false +AllowShortCaseLabelsOnASingleLine: false +AllowShortFunctionsOnASingleLine: None +AllowShortIfStatementsOnASingleLine: false +AllowShortLoopsOnASingleLine: false +AlwaysBreakAfterDefinitionReturnType: None +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: false +AlwaysBreakTemplateDeclarations: false +BinPackArguments: true +BinPackParameters: true +BraceWrapping: + AfterClass: false + AfterControlStatement: false + AfterEnum: false + AfterFunction: true + AfterNamespace: true + AfterObjCDeclaration: false + AfterStruct: false + AfterUnion: false + #AfterExternBlock: false # Unknown to clang-format-5.0 + BeforeCatch: false + BeforeElse: false + IndentBraces: false + #SplitEmptyFunction: true # Unknown to clang-format-4.0 + #SplitEmptyRecord: true # Unknown to clang-format-4.0 + #SplitEmptyNamespace: true # Unknown to clang-format-4.0 +BreakBeforeBinaryOperators: None +BreakBeforeBraces: Custom +#BreakBeforeInheritanceComma: false # Unknown to clang-format-4.0 +BreakBeforeTernaryOperators: false +BreakConstructorInitializersBeforeComma: false +#BreakConstructorInitializers: BeforeComma # Unknown to clang-format-4.0 +BreakAfterJavaFieldAnnotations: false +BreakStringLiterals: false +ColumnLimit: 132 # Specially for Buildroot +CommentPragmas: '^ IWYU pragma:' +#CompactNamespaces: false # Unknown to clang-format-4.0 +ConstructorInitializerAllOnOneLineOrOnePerLine: false +ConstructorInitializerIndentWidth: 8 +ContinuationIndentWidth: 8 +Cpp11BracedListStyle: false +DerivePointerAlignment: false +DisableFormat: false +ExperimentalAutoDetectBinPacking: false +#FixNamespaceComments: false # Unknown to clang-format-4.0 + +# Taken from: +# git grep -h '^#define [^[:space:]]*for_each[^[:space:]]*(' include/ \ +# | sed "s,^#define \([^[:space:]]*for_each[^[:space:]]*\)(.*$, - '\1'," \ +# | sort | uniq +ForEachMacros: + - 'apei_estatus_for_each_section' + - 'ata_for_each_dev' + - 'ata_for_each_link' + - '__ata_qc_for_each' + - 'ata_qc_for_each' + - 'ata_qc_for_each_raw' + - 'ata_qc_for_each_with_internal' + - 'ax25_for_each' + - 'ax25_uid_for_each' + - '__bio_for_each_bvec' + - 'bio_for_each_bvec' + - 'bio_for_each_bvec_all' + - 'bio_for_each_integrity_vec' + - '__bio_for_each_segment' + - 'bio_for_each_segment' + - 'bio_for_each_segment_all' + - 'bio_list_for_each' + - 'bip_for_each_vec' + - 'bitmap_for_each_clear_region' + - 'bitmap_for_each_set_region' + - 'blkg_for_each_descendant_post' + - 'blkg_for_each_descendant_pre' + - 'blk_queue_for_each_rl' + - 'bond_for_each_slave' + - 'bond_for_each_slave_rcu' + - 'bpf_for_each_spilled_reg' + - 'btree_for_each_safe128' + - 'btree_for_each_safe32' + - 'btree_for_each_safe64' + - 'btree_for_each_safel' + - 'card_for_each_dev' + - 'cgroup_taskset_for_each' + - 'cgroup_taskset_for_each_leader' + - 'cpufreq_for_each_entry' + - 'cpufreq_for_each_entry_idx' + - 'cpufreq_for_each_valid_entry' + - 'cpufreq_for_each_valid_entry_idx' + - 'css_for_each_child' + - 'css_for_each_descendant_post' + - 'css_for_each_descendant_pre' + - 'device_for_each_child_node' + - 'displayid_iter_for_each' + - 'dma_fence_chain_for_each' + - 'do_for_each_ftrace_op' + - 'drm_atomic_crtc_for_each_plane' + - 'drm_atomic_crtc_state_for_each_plane' + - 'drm_atomic_crtc_state_for_each_plane_state' + - 'drm_atomic_for_each_plane_damage' + - 'drm_client_for_each_connector_iter' + - 'drm_client_for_each_modeset' + - 'drm_connector_for_each_possible_encoder' + - 'drm_for_each_bridge_in_chain' + - 'drm_for_each_connector_iter' + - 'drm_for_each_crtc' + - 'drm_for_each_crtc_reverse' + - 'drm_for_each_encoder' + - 'drm_for_each_encoder_mask' + - 'drm_for_each_fb' + - 'drm_for_each_legacy_plane' + - 'drm_for_each_plane' + - 'drm_for_each_plane_mask' + - 'drm_for_each_privobj' + - 'drm_mm_for_each_hole' + - 'drm_mm_for_each_node' + - 'drm_mm_for_each_node_in_range' + - 'drm_mm_for_each_node_safe' + - 'flow_action_for_each' + - 'for_each_acpi_dev_match' + - 'for_each_active_dev_scope' + - 'for_each_active_drhd_unit' + - 'for_each_active_iommu' + - 'for_each_aggr_pgid' + - 'for_each_available_child_of_node' + - 'for_each_bio' + - 'for_each_board_func_rsrc' + - 'for_each_bvec' + - 'for_each_card_auxs' + - 'for_each_card_auxs_safe' + - 'for_each_card_components' + - 'for_each_card_dapms' + - 'for_each_card_pre_auxs' + - 'for_each_card_prelinks' + - 'for_each_card_rtds' + - 'for_each_card_rtds_safe' + - 'for_each_card_widgets' + - 'for_each_card_widgets_safe' + - 'for_each_cgroup_storage_type' + - 'for_each_child_of_node' + - 'for_each_clear_bit' + - 'for_each_clear_bit_from' + - 'for_each_cmsghdr' + - 'for_each_compatible_node' + - 'for_each_component_dais' + - 'for_each_component_dais_safe' + - 'for_each_comp_order' + - 'for_each_console' + - 'for_each_cpu' + - 'for_each_cpu_and' + - 'for_each_cpu_not' + - 'for_each_cpu_wrap' + - 'for_each_dapm_widgets' + - 'for_each_dev_addr' + - 'for_each_dev_scope' + - 'for_each_dma_cap_mask' + - 'for_each_dpcm_be' + - 'for_each_dpcm_be_rollback' + - 'for_each_dpcm_be_safe' + - 'for_each_dpcm_fe' + - 'for_each_drhd_unit' + - 'for_each_dss_dev' + - 'for_each_dtpm_table' + - 'for_each_efi_memory_desc' + - 'for_each_efi_memory_desc_in_map' + - 'for_each_element' + - 'for_each_element_extid' + - 'for_each_element_id' + - 'for_each_endpoint_of_node' + - 'for_each_evictable_lru' + - 'for_each_fib6_node_rt_rcu' + - 'for_each_fib6_walker_rt' + - 'for_each_free_mem_pfn_range_in_zone' + - 'for_each_free_mem_pfn_range_in_zone_from' + - 'for_each_free_mem_range' + - 'for_each_free_mem_range_reverse' + - 'for_each_func_rsrc' + - 'for_each_hstate' + - 'for_each_if' + - 'for_each_iommu' + - 'for_each_ip_tunnel_rcu' + - 'for_each_irq_nr' + - 'for_each_link_codecs' + - 'for_each_link_cpus' + - 'for_each_link_platforms' + - 'for_each_lru' + - 'for_each_matching_node' + - 'for_each_matching_node_and_match' + - 'for_each_member' + - 'for_each_memcg_cache_index' + - 'for_each_mem_pfn_range' + - '__for_each_mem_range' + - 'for_each_mem_range' + - '__for_each_mem_range_rev' + - 'for_each_mem_range_rev' + - 'for_each_mem_region' + - 'for_each_migratetype_order' + - 'for_each_msi_entry' + - 'for_each_msi_entry_safe' + - 'for_each_msi_vector' + - 'for_each_net' + - 'for_each_net_continue_reverse' + - 'for_each_netdev' + - 'for_each_netdev_continue' + - 'for_each_netdev_continue_rcu' + - 'for_each_netdev_continue_reverse' + - 'for_each_netdev_feature' + - 'for_each_netdev_in_bond_rcu' + - 'for_each_netdev_rcu' + - 'for_each_netdev_reverse' + - 'for_each_netdev_safe' + - 'for_each_net_rcu' + - 'for_each_new_connector_in_state' + - 'for_each_new_crtc_in_state' + - 'for_each_new_mst_mgr_in_state' + - 'for_each_new_plane_in_state' + - 'for_each_new_private_obj_in_state' + - 'for_each_node' + - 'for_each_node_by_name' + - 'for_each_node_by_type' + - 'for_each_node_mask' + - 'for_each_node_state' + - 'for_each_node_with_cpus' + - 'for_each_node_with_property' + - 'for_each_nonreserved_multicast_dest_pgid' + - 'for_each_of_allnodes' + - 'for_each_of_allnodes_from' + - 'for_each_of_cpu_node' + - 'for_each_of_pci_range' + - 'for_each_old_connector_in_state' + - 'for_each_old_crtc_in_state' + - 'for_each_old_mst_mgr_in_state' + - 'for_each_oldnew_connector_in_state' + - 'for_each_oldnew_crtc_in_state' + - 'for_each_oldnew_mst_mgr_in_state' + - 'for_each_oldnew_plane_in_state' + - 'for_each_oldnew_plane_in_state_reverse' + - 'for_each_oldnew_private_obj_in_state' + - 'for_each_old_plane_in_state' + - 'for_each_old_private_obj_in_state' + - 'for_each_online_cpu' + - 'for_each_online_node' + - 'for_each_online_pgdat' + - 'for_each_pci_bridge' + - 'for_each_pci_dev' + - 'for_each_pci_msi_entry' + - 'for_each_pcm_streams' + - 'for_each_physmem_range' + - 'for_each_populated_zone' + - 'for_each_possible_cpu' + - 'for_each_present_cpu' + - 'for_each_prime_number' + - 'for_each_prime_number_from' + - 'for_each_process' + - 'for_each_process_thread' + - 'for_each_prop_codec_conf' + - 'for_each_prop_dai_codec' + - 'for_each_prop_dai_cpu' + - 'for_each_prop_dlc_codecs' + - 'for_each_prop_dlc_cpus' + - 'for_each_prop_dlc_platforms' + - 'for_each_property_of_node' + - 'for_each_registered_fb' + - 'for_each_requested_gpio' + - 'for_each_requested_gpio_in_range' + - 'for_each_reserved_mem_range' + - 'for_each_reserved_mem_region' + - 'for_each_rtd_codec_dais' + - 'for_each_rtd_components' + - 'for_each_rtd_cpu_dais' + - 'for_each_rtd_dais' + - 'for_each_set_bit' + - 'for_each_set_bit_from' + - 'for_each_set_clump8' + - 'for_each_sg' + - 'for_each_sg_dma_page' + - 'for_each_sg_page' + - 'for_each_sgtable_dma_page' + - 'for_each_sgtable_dma_sg' + - 'for_each_sgtable_page' + - 'for_each_sgtable_sg' + - 'for_each_sibling_event' + - 'for_each_subelement' + - 'for_each_subelement_extid' + - 'for_each_subelement_id' + - '__for_each_thread' + - 'for_each_thread' + - 'for_each_unicast_dest_pgid' + - 'for_each_vsi' + - 'for_each_wakeup_source' + - 'for_each_zone' + - 'for_each_zone_zonelist' + - 'for_each_zone_zonelist_nodemask' + - 'fwnode_for_each_available_child_node' + - 'fwnode_for_each_child_node' + - 'fwnode_graph_for_each_endpoint' + - 'gadget_for_each_ep' + - 'genradix_for_each' + - 'genradix_for_each_from' + - 'hash_for_each' + - 'hash_for_each_possible' + - 'hash_for_each_possible_rcu' + - 'hash_for_each_possible_rcu_notrace' + - 'hash_for_each_possible_safe' + - 'hash_for_each_rcu' + - 'hash_for_each_safe' + - 'hctx_for_each_ctx' + - 'hlist_bl_for_each_entry' + - 'hlist_bl_for_each_entry_rcu' + - 'hlist_bl_for_each_entry_safe' + - 'hlist_for_each' + - 'hlist_for_each_entry' + - 'hlist_for_each_entry_continue' + - 'hlist_for_each_entry_continue_rcu' + - 'hlist_for_each_entry_continue_rcu_bh' + - 'hlist_for_each_entry_from' + - 'hlist_for_each_entry_from_rcu' + - 'hlist_for_each_entry_rcu' + - 'hlist_for_each_entry_rcu_bh' + - 'hlist_for_each_entry_rcu_notrace' + - 'hlist_for_each_entry_safe' + - 'hlist_for_each_entry_srcu' + - '__hlist_for_each_rcu' + - 'hlist_for_each_safe' + - 'hlist_nulls_for_each_entry' + - 'hlist_nulls_for_each_entry_from' + - 'hlist_nulls_for_each_entry_rcu' + - 'hlist_nulls_for_each_entry_safe' + - 'i3c_bus_for_each_i2cdev' + - 'i3c_bus_for_each_i3cdev' + - 'ide_host_for_each_port' + - 'ide_port_for_each_dev' + - 'ide_port_for_each_present_dev' + - 'idr_for_each_entry' + - 'idr_for_each_entry_continue' + - 'idr_for_each_entry_continue_ul' + - 'idr_for_each_entry_ul' + - 'in_dev_for_each_ifa_rcu' + - 'in_dev_for_each_ifa_rtnl' + - 'inet_bind_bucket_for_each' + - 'inet_lhash2_for_each_icsk_rcu' + - 'key_for_each' + - 'key_for_each_safe' + - 'klp_for_each_func' + - 'klp_for_each_func_safe' + - 'klp_for_each_func_static' + - 'klp_for_each_object' + - 'klp_for_each_object_safe' + - 'klp_for_each_object_static' + - 'kunit_suite_for_each_test_case' + - 'kvm_for_each_memslot' + - 'kvm_for_each_vcpu' + - 'list_for_each' + - 'list_for_each_codec' + - 'list_for_each_codec_safe' + - 'list_for_each_continue' + - 'list_for_each_entry' + - 'list_for_each_entry_continue' + - 'list_for_each_entry_continue_rcu' + - 'list_for_each_entry_continue_reverse' + - 'list_for_each_entry_from' + - 'list_for_each_entry_from_rcu' + - 'list_for_each_entry_from_reverse' + - 'list_for_each_entry_lockless' + - 'list_for_each_entry_rcu' + - 'list_for_each_entry_reverse' + - 'list_for_each_entry_safe' + - 'list_for_each_entry_safe_continue' + - 'list_for_each_entry_safe_from' + - 'list_for_each_entry_safe_reverse' + - 'list_for_each_entry_srcu' + - 'list_for_each_prev' + - 'list_for_each_prev_safe' + - 'list_for_each_safe' + - 'llist_for_each' + - 'llist_for_each_entry' + - 'llist_for_each_entry_safe' + - 'llist_for_each_safe' + - 'mci_for_each_dimm' + - 'media_device_for_each_entity' + - 'media_device_for_each_intf' + - 'media_device_for_each_link' + - 'media_device_for_each_pad' + - 'nanddev_io_for_each_page' + - 'netdev_for_each_lower_dev' + - 'netdev_for_each_lower_private' + - 'netdev_for_each_lower_private_rcu' + - 'netdev_for_each_mc_addr' + - 'netdev_for_each_uc_addr' + - 'netdev_for_each_upper_dev_rcu' + - 'netdev_hw_addr_list_for_each' + - 'nft_rule_for_each_expr' + - 'nla_for_each_attr' + - 'nla_for_each_nested' + - 'nlmsg_for_each_attr' + - 'nlmsg_for_each_msg' + - 'nr_neigh_for_each' + - 'nr_neigh_for_each_safe' + - 'nr_node_for_each' + - 'nr_node_for_each_safe' + - 'of_for_each_phandle' + - 'of_property_for_each_string' + - 'of_property_for_each_u32' + - 'pci_bus_for_each_resource' + - 'pcl_for_each_chunk' + - 'pcl_for_each_segment' + - 'pcm_for_each_format' + - 'ping_portaddr_for_each_entry' + - 'plist_for_each' + - 'plist_for_each_continue' + - 'plist_for_each_entry' + - 'plist_for_each_entry_continue' + - 'plist_for_each_entry_safe' + - 'plist_for_each_safe' + - 'pnp_for_each_card' + - 'pnp_for_each_dev' + - 'protocol_for_each_card' + - 'protocol_for_each_dev' + - 'queue_for_each_hw_ctx' + - 'radix_tree_for_each_slot' + - 'radix_tree_for_each_tagged' + - 'rb_for_each' + - 'rbtree_postorder_for_each_entry_safe' + - 'rdma_for_each_block' + - 'rdma_for_each_port' + - 'rdma_umem_for_each_dma_block' + - 'resource_list_for_each_entry' + - 'resource_list_for_each_entry_safe' + - 'rhl_for_each_entry_rcu' + - 'rhl_for_each_rcu' + - 'rht_for_each' + - 'rht_for_each_entry' + - 'rht_for_each_entry_from' + - 'rht_for_each_entry_rcu' + - 'rht_for_each_entry_rcu_from' + - 'rht_for_each_entry_safe' + - 'rht_for_each_from' + - 'rht_for_each_rcu' + - 'rht_for_each_rcu_from' + - '__rq_for_each_bio' + - 'rq_for_each_bvec' + - 'rq_for_each_segment' + - 'scsi_for_each_prot_sg' + - 'scsi_for_each_sg' + - 'sctp_for_each_hentry' + - 'sctp_skb_for_each' + - 'shdma_for_each_chan' + - '__shost_for_each_device' + - 'shost_for_each_device' + - 'sk_for_each' + - 'sk_for_each_bound' + - 'sk_for_each_entry_offset_rcu' + - 'sk_for_each_from' + - 'sk_for_each_rcu' + - 'sk_for_each_safe' + - 'sk_nulls_for_each' + - 'sk_nulls_for_each_from' + - 'sk_nulls_for_each_rcu' + - 'snd_array_for_each' + - 'snd_pcm_group_for_each_entry' + - 'snd_soc_dapm_widget_for_each_path' + - 'snd_soc_dapm_widget_for_each_path_safe' + - 'snd_soc_dapm_widget_for_each_sink_path' + - 'snd_soc_dapm_widget_for_each_source_path' + - 'tb_property_for_each' + - 'tcf_exts_for_each_action' + - 'udp_portaddr_for_each_entry' + - 'udp_portaddr_for_each_entry_rcu' + - 'usb_hub_for_each_child' + - 'v4l2_device_for_each_subdev' + - 'v4l2_m2m_for_each_dst_buf' + - 'v4l2_m2m_for_each_dst_buf_safe' + - 'v4l2_m2m_for_each_src_buf' + - 'v4l2_m2m_for_each_src_buf_safe' + - 'virtio_device_for_each_vq' + - 'while_for_each_ftrace_op' + - 'xa_for_each' + - 'xa_for_each_marked' + - 'xa_for_each_range' + - 'xa_for_each_start' + - 'xas_for_each' + - 'xas_for_each_conflict' + - 'xas_for_each_marked' + - 'xbc_array_for_each_value' + - 'xbc_for_each_key_value' + - 'xbc_node_for_each_array_value' + - 'xbc_node_for_each_child' + - 'xbc_node_for_each_key_value' + - 'zorro_for_each_dev' + +#IncludeBlocks: Preserve # Unknown to clang-format-5.0 +IncludeCategories: + - Regex: '.*' + Priority: 1 +IncludeIsMainRegex: '(Test)?$' +IndentCaseLabels: false +#IndentPPDirectives: None # Unknown to clang-format-5.0 +IndentWidth: 8 +IndentWrappedFunctionNames: false +JavaScriptQuotes: Leave +JavaScriptWrapImports: true +KeepEmptyLinesAtTheStartOfBlocks: false +MacroBlockBegin: '' +MacroBlockEnd: '' +MaxEmptyLinesToKeep: 1 +NamespaceIndentation: None +#ObjCBinPackProtocolList: Auto # Unknown to clang-format-5.0 +ObjCBlockIndentWidth: 8 +ObjCSpaceAfterProperty: true +ObjCSpaceBeforeProtocolList: true + +# Taken from git's rules +#PenaltyBreakAssignment: 10 # Unknown to clang-format-4.0 +PenaltyBreakBeforeFirstCallParameter: 30 +PenaltyBreakComment: 10 +PenaltyBreakFirstLessLess: 0 +PenaltyBreakString: 10 +PenaltyExcessCharacter: 100 +PenaltyReturnTypeOnItsOwnLine: 60 + +PointerAlignment: Right +ReflowComments: false +SortIncludes: false +#SortUsingDeclarations: false # Unknown to clang-format-4.0 +SpaceAfterCStyleCast: false +SpaceAfterTemplateKeyword: true +SpaceBeforeAssignmentOperators: true +#SpaceBeforeCtorInitializerColon: true # Unknown to clang-format-5.0 +#SpaceBeforeInheritanceColon: true # Unknown to clang-format-5.0 +SpaceBeforeParens: ControlStatements +#SpaceBeforeRangeBasedForLoopColon: true # Unknown to clang-format-5.0 +SpaceInEmptyParentheses: false +SpacesBeforeTrailingComments: 1 +SpacesInAngles: false +SpacesInContainerLiterals: false +SpacesInCStyleCastParentheses: false +SpacesInParentheses: false +SpacesInSquareBrackets: false +Standard: Cpp03 +TabWidth: 8 +UseTab: Always +... diff --git a/.defconfig b/.defconfig new file mode 100644 index 000000000..7ab0c3fbf --- /dev/null +++ b/.defconfig @@ -0,0 +1,51 @@ +# +# Automatically generated make config: don't edit +# Mon Feb 18 09:11:56 2008 +# +BR2_HAVE_DOT_CONFIG=y +# BR2_alpha is not set +# BR2_arm is not set +# BR2_armeb is not set +# BR2_cris is not set +# BR2_ia64 is not set +BR2_i386=y +# BR2_m68k is not set +# BR2_mips is not set +# BR2_mipsel is not set +# BR2_nios2 is not set +# BR2_powerpc is not set +# BR2_sh is not set +# BR2_sparc is not set +# BR2_sparc64 is not set +# BR2_x86_64 is not set +# BR2_x86_i486 is not set +# BR2_x86_i586 is not set +BR2_x86_i686=y +# BR2_x86_pentiumpro is not set +# BR2_x86_pentium_mmx is not set +# BR2_x86_pentium_m is not set +# BR2_x86_pentium2 is not set +# BR2_x86_pentium3 is not set +# BR2_x86_pentium4 is not set +# BR2_x86_prescott is not set +# BR2_x86_nocona is not set +# BR2_x86_core2 is not set +# BR2_x86_k6 is not set +# BR2_x86_k6_2 is not set +# BR2_x86_athlon is not set +# BR2_x86_athlon_4 is not set +# BR2_x86_opteron is not set +# BR2_x86_opteron_sse3 is not set +# BR2_x86_barcelona is not set +# BR2_x86_geode is not set +# BR2_x86_c3 is not set +# BR2_x86_winchip_c6 is not set +# BR2_x86_winchip2 is not set +BR2_ARCH="i686" +BR2_ENDIAN="LITTLE" +BR2_GCC_TARGET_TUNE="i686" +BR2_GCC_TARGET_ARCH="i686" + +# +# Target options +# diff --git a/.flake8 b/.flake8 new file mode 100644 index 000000000..7dd7b541c --- /dev/null +++ b/.flake8 @@ -0,0 +1,5 @@ +[flake8] +exclude= + # copied from the kernel sources + utils/diffconfig +max-line-length=132 diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..bb02d9f57 --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +/output +/dl +/.auto.deps +/.config.cmd +/.config.old +/..config.tmp +/.config +*.depend +*.o +/*.patch +/*.diff +*.orig +*.rej +*~ +*.pyc diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 000000000..cad35c96b --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,28 @@ +# Configuration for Gitlab-CI. +# Builds appear on https://gitlab.com/buildroot.org/buildroot/pipelines + +image: $CI_REGISTRY/buildroot.org/buildroot/base:20220206.1756 + +stages: + - generate-gitlab-ci + - build + +generate-gitlab-ci-yml: + stage: generate-gitlab-ci + script: ./support/scripts/generate-gitlab-ci-yml support/misc/gitlab-ci.yml.in > generated-gitlab-ci.yml + artifacts: + when: always + paths: + - generated-gitlab-ci.yml + - br-test-pkg/*/.config + - br-test-pkg/*/missing.config + +buildroot-pipeline: + stage: build + trigger: + include: + - artifact: generated-gitlab-ci.yml + job: generate-gitlab-ci-yml + strategy: depend + variables: + PARENT_PIPELINE_ID: $CI_PIPELINE_ID diff --git a/.shellcheckrc b/.shellcheckrc new file mode 100644 index 000000000..e69de29bb diff --git a/CHANGES b/CHANGES new file mode 100644 index 000000000..11b33a135 --- /dev/null +++ b/CHANGES @@ -0,0 +1,12143 @@ +2022.08.1, released October 2nd, 2022 + + Important / security related fixes. + + Updated/fixed packages: botan, busybox, docker-cli, + docker-engine, expat, git, haproxy, heirloom-mailx, icu, + imx-gpu-viv, libconfuse, libmdbx, libupnp, libxml2, + ltp-testsuite, m4, makedevs, mariadb, mesa3d, meson, + mosquitto, ncurses, openssh, pango, python3, qlibc, + qt5xmlpatterns, rtl8189es, rtl8723bu, rt8723ds, + rtl8812au-aircrack-ng, runc, sox, tinyproxy, uacme, unbound, + unzip, vim, xtables-addons + + Issues resolved (http://bugs.uclibc.org): + + #14796: 64 bit time and seccomp conflict (OpenSSH server crash) + #14921: wpewebkit build fails because of internal build order + +2022.08, released September 10th, 2022 + + Fixes all over the tree. + + Autotools: Drop --runstatedir=/run as it causes build issues + with older packages + + Defconfigs: rockpro64: Change to mainline ATF to fix build issue + + Updated/fixed packages: dhcpd, fwup, gcc, gdb, go, linux-tools, + minidlna, mosquitto, mv-ddr-mervell, networkd-dispatcher, + optee-os, polkit, python-pillow, python3, sconeserver, uuu, + wolfssl + +2022.08-rc2, released September 1st, 2022 + + Fixes all over the tree. + + dependencies: Ensure 'find' and 'xargs' are available on the + build host. + + A large number of typo fixes. + + Defconfigs: bananapi m1, olimex a20/a33/lime: Use standard FPU + configuration, pine64_sopine: Use mainline ATF to fix build + + Updated/fixed packages: ace, alsa-utils, busybox, cups, + dbus-broker, directfb, domoticz, drbd-utils, edk2, + edk2-platforms, ffmpeg, freeradius-server, freeswitch, gauche, + gcc, gdb, glibc, gnutls, gst1-plugins-bad, gst1-plugins-good, + hawktracer, igd-ethercat, imagemagick, intel-mediadriver, + jack2, jose, jpeg, jquery-ui-themes, kodi, libcamera, libdill, + libgit2, libglvnd, libgpg-error, libgpgme, libinput, libp11, + libsepol, libtirpc, libvirtd, libvncserver, libwpe, libzlib, + linux, linux-tools-perf, llvm, lshw, makedumpfile, + mali-driver, memcached, minetest, mutt, ne10, netsniff-ng, + ntpsec, ocrad, ola, opencv4, openocd, opensc, optee-os, + pcsc-lite, postgresql, protobuf, pulseaudio, python-autobahn, + python-paho-mqtt, python-protobuf, python-pygame, python3, qemu, + qoriq-cadence-dp-firmware, qt5doc, qt6base, ranger, rng-tools, + rsync, rustc, sconeserver, sdl2, snort, sqlite, squid, + stress-ng, strongswan, sunxi-mali-utgard-driver, sysdig, + sysklogd, syslinux, syslog-ng, tcf-agent, tcpreplay, + tesseract-ocr, uacme, uboot-tools, uclibc, udpcast, usbguard, + v4l2loopback, vim, webkitgtk, wolftpm, wpewebkit, xenomai, + xserver_xorg-server, zeek, zerofree + +2022.08-rc1, released August 12th, 2022 + + Fixes all over the tree and new features. + + Architecture + + - Support for NDS32 removed + - Support for C-SKY removed + - Support for configurable page size on ARM64 added + - Architecture menu re-organized: the MMU selection now + appears in this architecture menu. + + Toolchain: + + - GCC 12.x support added, GCC 11.x is now the default + compiler, and support for building a GCC 9.x toolchain has + been removed. + - glibc bumped to 2.35-134-gb6aade18a7e5719c942aa2da6cf3157aca993fa4 + - uclibc bumped to 1.0.42 + - BR2_GCC_ENABLE_LTO option removed, the toolchain is now + always built with LTO support. The new option BR2_ENABLE_LTO + enables the use of LTO in a subset of packages that have + explicit handling for LTO. + - GDB enabled on OpenRISC. + - Toolchain menu now appears before "Build options". The + selection of the C library now determines whether static + library (BR2_STATIC_LIBS) will be available or not, instead + of the other way around. + + Filesystem: + + - genimage.cfg files now use shortcuts from genimage for the + GUID of well-known GPT partitions. + + Bootloaders: + + - U-Boot can now be built with host-gnutls as a dependency, + needed for some configurations + - OP-TEE can now be built with host-python-pillow as a + dependency, needed for some configurations. + - OP-TEE source can now be retrieved from a custom tarball + URL. + - Grub has been bumped to 2.06. + + Over 390 packages updated. + + New defconfigs: aspeed_ast2500evb, aspeed_ast2600evb, + broadcom_northstar, canaan_kd233, qemu_riscv64_nommu_virt, + sipeed_maix_bit, sipeed_maix_bit_sdcard, sipeed_maix_dock, + sipeed_maix_dock_sdcard, sipeed_maix_go, + sipeed_maix_go_sdcard, sipeed_maixduino, + sipeed_maixduino_sdcard + + Removed defconfigs: andes_ae300, csky_gx6605s, + friendlyarm_nanopi_neo, minnowboard_max-graphical + + New packages: clpeak, compiler-rt, crucible, dbus-broker, dht, + double-conversion, dust, freeradius-server, gdal, hawktracer, + hyperfine, libb2, libdeflate, libdill, mbw, mender-connect, + minizip-zlib, nerdctl, ntpsec, opencl-hpp, opensc, + python-alembic, python-appdirs, python-beniget, + python-construct, python-dtschema, python-gast, python-kflash, + python-lark, python-maturin, python-mypy-extensions, + python-pylibfdt, python-pythran, python-pyrsistent, + python-qrcode, python-rfc3987, python-rtoml, + python-ruamel-yaml, python-scipy, python-typeguard, + python-typing-inspect, python-zlmdb, qt6base, rtl8723ds, + spirv-llvm-translator, tealdeer, uuu, vis-network, volk, + wolftpm, zeek, zerofree + + Removed packages: rtl8723bs + + Issues resolved: + + #14556: python-crossbar fails to build + #14951: boost compile error when running make silently + #14646: OpenSSH 8.9p1 compiler error under mipsel + #14841: support/download/git fails with "fatal: No such remote + 'origin'" due to incorrect check for origin remote + #13356: libabseil-cpp: not building for raspberry pi + #14911: host-python3 build needs python3 on the host + #13831: mesa3d - kmsro driver requires dri3 + #13816: xstart failed since update the x11 libraries + #13796: Problems compiling package gst-plugins-good + #14191: patchelf v0.9 corrupt Nvidia shared libraries + #14891: sudo: group setup fails since commit 9b7f8da96b + #14881: Watchdogd Package missing INSTALL_STAGING + #14876: arm-trusted-firmware can no longer be compiled with fPIE + +2022.05.2, released August 31st, 2022 + + Important / security related fixes. + + dependencies: Ensure 'cmp' is available on the build host. + + pkg-utils: The KCONFIG_ENABLE_OPT macro used to enforce a specific + Kconfig option to be enabled (E.G. for kernel options needed by + packages) no longer changes a =m (modular) with =y (built in). + + check-host-rpath: Silence readelf warnings when clang is used + + GCC 10.x updated to 10.4.0 + + Defconfigs: Kria kv260: Fix u-boot configuration + + Updated/fixed packages: apg, arm-trusted-firmware, assimp, + bayer2rgb-neon, bind, bird, cog, cwiid, diffutils, freerdp, + fluidsynth, gcc, gdk-pixbuf, glibc, glslsandbox-player, + gnupg2, gtest, i2pd, jack2, jquery-validation, jszip, + kvm-unit-tests, libbsd, libcamera, libcurl, libest, libiio, + libkrb5, libopenssl, libp11, libpsl, libwebsockets, localedef, + luasyslog, lxc, mbedtls, mstpd, mutt, netdata, netsniff-ng, + nodejs, nvidia-driver, ola, openssl, opkg-utils, paho-mqtt-c, + pango, pcsc-lite, perl, perl-crypt-openssl-rsa, pimd, poppler, + postgis, powerpc-utils, pppd, protobuf-c, pulseaudio, + python-bottle, python-django, python-lxml, python3, qt5webkit, + redis, rpi-userland, rsyslog, runc, rustc, sconeserver, + sg3_utils, shadowsocks-libev, stellarium, suricata, swupdate, + tcpreplay, uacme, uclibc, v4l2loopback, webkitgtk, + wilc-driver, wine, wpewebkit, xdg-dbus-proxy, + xserver_xorg-server, zeromq, zfs, zlib-ng + + Issues resolved (http://bugs.uclibc.org): + + #13796: Problems compiling package gst-plugins-good + +2022.05.1, released July 24th, 2022 + + Important / security related fixes. + + Disable big endian no-mmu on ARM as it is not supported by + elf2flt. + + Tighten dependencies for external Bootlin toolchains to ensure + they can only be selected in compatible configurations. + + Support external toolchains without gdbserver. + + Updated/fixed packages: apache, avahi, bdwgc, bind, bpftool, + cups, darkhttpd, dmalloc, ecryptfs-utils, fxload, ghostscript, + gnutls, gst-omx, gst1-devtools, gst1-libav, gst1-plugins-base, + gst1-plugins-bad, gst1-plugins-good, gst1-plugins-ugly, + gst1-python, gst1-rtsp-server, gst1-vaapi, gstreamer1, + gstreamer1-editing-services, gtest, iptables, keyutils, lcms2, + libabseil-cpp, libcamera, libcurl, libeastl, libgpgme, + libgtk3, libmdbx, libmediaart, libmodsecurity, libnetconf2, + libopenssl, libpjsip, libsamplerate, libsndfile, libtalloc, + logrotate, luajit, nginx, noip, paxtest, php, postgresql, + procrank_linux, pure-ftpd, python-pillow, qdecoder, + rabbitmq-server, rpi-userland, ruby, rustc, sofia-sip, + systemd, tcpreplay, tinyproxy, tor, uacme, uboot-tools, vim, + watchdogd, webkitgtk, weston, wireguard-linux-compat, + wpa_supplicant, wpewebkit, zstd + + Issues resolved (http://bugs.uclibc.org): + + #14881: Watchdogd Package missing INSTALL_STAGING + +2022.05, released June 6th, 2022 + + Fixes all over the tree. + + Rework BR2_STATIC_LIBS handling to ensure it can only be + enabled if a suitable C library is available. + + Updated/fixed packages: arm-trusted-firmware, at91bootstap, + boinc, boost, cpulimit, diffutils, edk2, eigen, fbv, gcr, + gensio, glibc, go, gtest, iucode-tool, kvm-unit-tests, libcec, + libcurl, libks, linux, linux-tools, lttng-modules, mariadb, + memcached, mono, musl, mutt, netdata, network-manager, nginx, + ogre, openjpeg, openvpn, pipewire, python-crossbar, qemu, + qpid-proton, rauc, rockchip-mali, rsyslog, + rtl8812au-aircrack-ng, ruby, runc, rustc, samba4, tiff, + uclibc, unrar, vim, webkitgtk, wpewebkit, + xdriver_xf86-video-ati, xml-security-c, zchunk, zlib-ng + + Issues resolved (http://bugs.uclibc.org): + + #14821: Samba server is failing to compile + #14826: make qemu_x86_64_defconfig stopped working + +2022.05-rc2, released May 30th, 2022 + + Fixes all over the tree. + + Defconfigs: qemu_ppc64*: Use binutils 2.36.1 to fix build + issue, qemu_arm_vexpress_tz: Fix optee-os build issue, + qemu_arm_versatile_nommu: Drop now that nommu for ARMv5 is no + longer available + + Updated/fixed packages: dhcp, edk2, gcr, glibc, i2pd, janet, + janus-gateway, libfreeimage, libnftnl, libnss, libodb-boost, + libostree, libwebsockets, linux-tools, midori, ntfs-3g, ola, + optee-client, pcsc-lite, pipewire, python-flask, + python-service-identity, python-werkzeug, qemu, rng-tools, + rockchip-mali, strace, xdriver_xf86-video-amdgpu + + Removed packages: ktap + +2022.05-rc1, released May 18th, 2022 + + Fixes all over the tree and new features. + + Toolchain: + - glibc update to 2.35, musl updated to 1.2.3 + - gcc 11.x updated to 11.3, support for external gcc 12.x + - binutils 2.38 added, 2.32/2.35.2 removed, default changed to 2.37 + - s390x Bootlin external toolchain added + - 5.17.x kernel headers support added + + Filesystem: + - Rework OCI entrypoint/command logic to handle command arguments + - Squashfs block size is now configurable + + Graphs: Also generate a build time timeline graph (for top + level parallel builds). + + scripts/pkg-stats: Optimize memory consumption for CPE parsing + + Fix compatibility issue with the fakeroot script logic and + modern versions of dash. + + Change git:// URLs pointing to Github to https://, now that + Github has turned off support for git:// + + New defconfigs: Octavo osd32mp1_brk / osd32mp1_red + + New packages: falcosecurity-libs, lzma-alone, octave, + python-flit-core, python-orjson, python-pydevmem, + qt5webengine-chromium, qt5webengine-chromium-catapult, ragel, + tbb, wilc-driver, wtfutil + + Wilc1000-firmware renamed to wilc-firmware + + Issues resolved (http://bugs.uclibc.org): + + #14596: package dialog is outdated and contains a bug + #14651: OpenSSH 8.9p1 compiler error under ARM + #14656: Adding dependencies from an external tree does not work + #14661: Fakeroot script relies on bash-isms, does not work with.. + #14681: QT5WEBENGINE not building + #14686: genimage.cfg have a hard-coded .ext4 extension which.. + #14701: Multiple unresolved symbols while building kernel .. + #14706: nodjs build problem + #14711: nodjs build problem missing bzip + #14721: python-argon2_cffi no longer works + #14731: BR2_PACKAGE_IOSTAT + #14751: LVM2 Outdated Link + +2022.02.5, released August 31st, 2022 + + Important / security related fixes. + + dependencies: Ensure 'cmp' is available on the build host. + + pkg-utils: The KCONFIG_ENABLE_OPT macro used to enforce a specific + Kconfig option to be enabled (E.G. for kernel options needed by + packages) no longer changes a =m (modular) with =y (built in). + + check-host-rpath: Silence readelf warnings when clang is used + + GCC 10.x updated to 10.4.0 + + Updated/fixed packages: apg, arm-trusted-firmware, assimp, + bayer2rgb-neon, bind, bird, cog, cwiid, diffutils, fluidsynth, + freerdp, gcc, glibc, glslsandbox-player, gdk-pixbuf, gnupg2, + gtest, i2pd, jack2, jquery-validation, jszip, libbsd, libcamera, + libcurl, libest, libiio, libkrb5, libopenssl, libpsl, + luasyslog, lxc, mbedtls, mstpd, mutt, netdata, netsniff-ng, + nodejs, nvidia-driver, openssl, opkg-utils, paho-mqtt-c, + pango, pcsc-lite, perl, pimd, poppler, postgis, powerpc-utils, + pppd, protobuf-c, pulseaudio, python-bottle, python-django, + python-lxml, python3, qt5webkit, rpi-userland, rsyslog, runc, + rustc, sconeserver, sg3_utils, shadowsocks-libev, suricata, + tcpreplay, uacme, uclibc, v4l2loopback,, webkitgtk, wine, + wpewebkit, xdg-dbus-proxy, xserver_xorg-server, zeromq, zfs, + zlib-ng + + Issues resolved (http://bugs.uclibc.org): + + #13796: Problems compiling package gst-plugins-good + #14926: package/nodejs: build for host fails with GTEST errors + +2022.02.4, released July 28th, 2022 + + Important / security related fixes. + + Disable big endian no-mmu on ARM as it is not supported by + elf2flt. + + Tighten dependencies for external Bootlin toolchains to ensure + they can only be selected in compatible configurations. + + Support external toolchains without gdbserver. + + Updated/fixed packages: apache, avahi, bdwgc, bind, bpftool, + cups, darkhttpd, dmalloc, ecryptfs-utils, fxload, ghostscript, + gnutls, gst-omx, gst1-devtools, gst1-libav, gst1-plugins-base, + gst1-plugins-bad, gst1-plugins-good, gst1-plugins-ugly, + gst1-python, gst1-rtsp-server, gst1-vaapi, gstreamer1, + gstreamer1-editing-services, gtest, iptables, keyutils, lcms2, + libabseil-cpp, libcamera, libcurl, libeastl, libgpgme, + libgtk3, libmdbx, libmediaart, libmodsecurity, libnetconf2, + libopenssl, libpjsip, libsamplerate, libsndfile, libtalloc, + logrotate, luajit, nginx, noip, paxtest, php, postgresql, + procrank_linux, pure-ftpd, python-pillow, qdecoder, + rabbitmq-server, rpi-userland, rustc, sofia-sip, systemd, + tcpreplay, tinyproxy, tor, uacme, uboot-tools, vim, watchdogd, + webkitgtk, wireguard-linux-compat, wpa_supplicant, wpewebkit, + zstd + + Issues resolved (http://bugs.uclibc.org): + + #14881: Watchdogd Package missing INSTALL_STAGING + +2022.02.3, released June 19th, 2022 + + Important / security related fixes. + + Infrastructure: Fix building under paths containing regex + characters (E.G. '+') + + Toolchain: Only allow ppc64le variants for which a + glibc/musl/uclibc toolchain is supported. + Mark codescape mti/img mips toolchains as shared library only + (glibc). + + Updated/fixed packages: arm-trusted-firmware, + at91dataflashboot, boinc, dhcp, diffutils, edk2, fbv, gensio, + glibc, go, gtest, iucode-tool, janet, libcec, libcurl, + libfreeimage, libnftnl, libodb-boost, linux, linux-tools, + lttng-modules, mariadb, memcached, mono, mutt, + network-manager, nginx, ntfs-3g, ogre, openjpeg, openvpn, + qemu, qpid-proton, qt5webengine, rauc, rockchip-mali, rsyslog, + ruby, runc, rustc, samba4, strace, tiff, uclibc, unrar, vim, + webkitgtk, wpewebkit, xdriver_xf86-video-amdgpu, + xdriver_xf86-video-ati, zlib-ng + + New packages: qt5webengine-chromium, + qt5webengine-chromium-catapult + + Issues resolved (http://bugs.uclibc.org): + + #14766: package dhcp on buildroot 2022.02.1 failed + #14821: Samba server is failing to compile + #14826: make qemu_x86_64_defconfig stopped working + +2022.02.2, released May 29th, 2022 + + Important / security related fixes. + + Archictures: Drop sh2a, correct x86 Bonnell variant + + Toolchain: Bump GCC 11.x to 11.3, correct pre-installed + external toolchain logic when toolchain is available in path. + + Rework OCI filesystem entrypoint/command logic to handle + command arguments + + Defconfigs: Update Zynqmp zcu102/106 to final 2022.1 release, + fix zcu106 PLL config + + Updated/fixed packages: adwaita-icon-theme, afboot-stm32, + aircrack-ng, alchemy, alsa-lib, arptables, assimp, asterisk, + aubio, avrdude, azure-iot-sdk-c, batman-adv, binutils, + bpftool, brotli, cairo, cifs-utils, clamav, cryptodev-linux, + dhcp, diffutils, dmalloc, duktape, e2fsprogs, elf2flt, espeak, + expat, ffmpeg, fluidsynth, freerdp, gcc, git, glorytun, + glslsandbox-player, gnutls, go, gst1-imx, gst1-plugins-good, + gzip, imagemagick, janus-gateway, keepalived, kompexsqlite, + kvm-unit-tests, libarchive, libcgi, libcurl, libevdev, + libeXosip2, libhtp, libinput, libkcapi, libkrb5, libks, + libmdbx, libmnl, libnpupnp, libnspr, libopenssl, liboping, + libpjsip, libpri, libselinux, libsigsegv, libv4l, + libwebsockets, libxml2, linux, linux-tools, ltp-testsuite, + luajit, lvm2, mali-driver, mariadb, mc, minizip, mpd, mutt, + netatalk, netsurf, network-manager, nodejs, numactl, nut, + omniorb, openbox, opencv4, openjdk, openjdk-bin, openocd, + pamtester, pango, pcre2, php, php-apcu, pinentry, pixman, + polkit, postgis, postgresql, pure-ftpd, python-aenum, + python-avro, python-django, python-pillow, python-simplejson, + python-urllib3, python-zopfli, python3, qemu, qpdf, quazip, + redis, rockchip-mali, rsync, rt-tests, rust, rtl8818eu, + rtl8189es, rtl8189fs, rtl_433, sam-ba, samba4, sdl2_ttf, + shadowsocks-libev, shim, subversion, sun20i-d1-spl, suricata, + systemd, tftpd, trinity, tvheadend, udev, uftrace, + urandom-scripts, usb_modeswitch, valgrind, vde2, vim, + wireplumber, wolfssl, wpa_supplicant, xlib_libXfont2, xz, + zlib, zlog + + Issues resolved (http://bugs.uclibc.org): + + #14751: LVM2 Outdated Link + +2022.02.1, released April 11th, 2022 + + Important / security related fixes. + + Graphs: Also generate a build time timeline graph (for top + level parallel builds). + + scripts/pkg-stats: Optimize memory consumption for CPE parsing + + Fix compatibility issue with the fakeroot script logic and + modern versions of dash. + + Change git:// URLs pointing to Github to https://, now that + Github has turned off support for git:// + + Updated/fixed packages: ace, apache, apr, apr-util, belr, + bind, bluez5_utils, boinc, bpftool, busybox, cloop, cog, + containerd, cppcms, dav1d, dhcp, dieharder, dnsmasq, + docker-cli, docker-engine, efl, ell, fakeroot, flac, + fluidsynth, gdk-pixbuf, glib-networking, gnutls, gst-omx, + gst1-devtools, gst1-libav, gst1-plugins-bad, + gst1-plugins-base, gst1-plugins-good, gst1-plugins-ugly, + gst1-python, gst1-rtsp-server, gst1-vaapi, gstreamer1, + gstreamer1-editing-services, haproxy, htop, intel-gmmlib, + ipmiutil, iwd, jack1, jack2, lftp, libabseil-cpp, libbluray, + libcamera-apps, libcoap, libcurl, libest, libgee, libglib2, + libgtk3, libiec61850, libkrb5, libminiupnpc, libodb, + libodb-boost, libopenssl, libp11, libpsl, libressl, librstp, + librtlsdr, liburing, libyang, libzlib, luasec, lxc, matio, + meson, minidlna, minizip, mpd, mtools, netatalk, nbd, odb, + openblas, openssh, openvpn, optee-os, opus, paho-mqtt-c, + pango, php, pipewire, pkcs11-helper, postgresql, ppp, + protozero, python-aioconsole, python-avro, python-brotli, + python-greenlet, python-paramiko, python-pillow, + python-rpi-gpio, python-treq, python-twisted, python-ujson, + python-weasyprint, qt5base, qt5wayland, raptor, rpi-firmware, + rpi-userland, rtl_433, runc, rust, rygel, samba4, + shairport-sync, spice, spidev_test, stunnel, systemd, + timescaledb, trace-cmd, trousers, ts4900-fpga, tvheadend, + udpcast, unbound, upower, urandom-scripts, usbguard, valgrind, + valijson, vim, wavpack, wget, wireplumber, wireshark, woff2, + xmrig, zabbix, zlib-ng, zynaddsubfx, zziplib + + Issues resolved (http://bugs.uclibc.org): + + #13971: ip6tables-nft build does not include MASQUERADE target.. + #14651: OpenSSH 8.9p1 compiler error under ARM + #14656: Adding dependencies from an external tree does not work + #14661: Fakeroot script relies on bash-isms, does not work .. + #14686: genimage.cfg have a hard-coded .ext4 extension which.. + #14701: Multiple unresolved symbols while building kernel .. + #14711: nodjs build problem missing bzip + #14731: BR2_PACKAGE_IOSTAT + +2022.02, released March 8th, 2022 + + Various fixes. + + Fixes to cargo and golang packaging infrastructure. + + Defconfigs: OrangePi RK3399: Fix genimage format + + Updated/fixed packages: azure-iot-sdk-c, bpftool, cog, + directfb, directfb-examples, dnsmasq, docker-engine, expat, + freerdp, frr, gdb, ghostscript, glib-networking, go, haproxy, + hostapd, kf5-extra-cmake-modules, kf5-kcoreaddons, + kf5-modemmanager-qt, kf5-networkmanager-qt, libcamera-apps, + libgee, libglfw, librstp, libtorrent, libvirt, libxslt, linux, + mariadb, oprofile, osm2pgsql, pulseview, python-cryptography, + python-gnupg, python-treq, qt5base, qt5webkit, rauc, re2, + rygel, safeclib, sconeserver, seatd, sord, upmpdcli, + util-linux, weston, wpa_supplicant, xdriver_xf86-video-mach64, + xdriver_xf86-video-nouveau, xdriver_xf86-video-qxl, + xscreensaver, zabbix + + New packages: gdk-pixbuf-xlib + + Removed packages: python-pycli + + Issues resolved (http://bugs.uclibc.org): + + #13126: make fails - bzip2-1.0.6.tar.gz and DirectFB-1.7.7.tar.. + #14611: 2022.02-rc2: Build of BR2_x86_64 with BR2_LINUX_KERNEL_.. + #14631: host-go-bootstrap: go not being built for package in .. + #14636: azure-iot-sdk-c: Installed headers do not compile + #14641: oprofile can not find the events files + +2022.02-rc3, released February 28th, 2022 + + Fixes all over the tree. + + Defconfigs: Xilinx zynqmp zcu102/zcu106: Fix U-Boot DTS config + + Updated/fixed packages: bluez5_utils, bpftool, dbus, exempi, + flac, freerdp, frr, gnutls, libpjsip, libxml2, mariadb, + openssh, python-twisted, qt5webkit, samba4, vim, weston, + wireshark, wolfssl, xdg-dbus-proxy, xterm, + +2022.02-rc2, released February 20th, 2022 + + Fixes all over the tree. + + Defconfigs: Friendlyarm Nanopi R2S: Fix U-Boot build, Kontron + BL i.MX8M Mini: Fix U-Boot build, PC Engines APU2: Fix Linux + build, ROC-RK3399-PC: Bump rootfs size to fix build + + Updated/fixed packages: apache, apparmor, apr-util, arp-scan, + binutils, bluez5_utils, connman, cryptsetup, dnsmasq, + dovecot-pigeonhole, expat, gdk-pixbuf, gst1-plugins-base, + guile, keepalived, kodi, libbpf, libglvnd, libgsasl, libiconv, + librsvg, libuhttpd, libusb, libv4l, luasyslog, mongrel2, neon, + pcre, perl-netaddr-ip, php, psmisc, python-ipython, + python-pycli, python-pygame, python-regex, python-twisted, + qt5location, qt5webkit, resiprocate, rygel, safeclib, + sdl2_ttf, socketcand, strongswan, sudo, systemd, toolchain, + urg, webkitgtk, wireless-regdb, wpewebkit, + xdriver_xf86-video-{ati,mach64,mga,r128,savage,tdfx}, xz, zfs, + zsh + +2022.02-rc1, released February 13th, 2022 + + Numerous package updates and many (80) new packages. + + Toolchain: + - glibc: Optional support for compatibility shims for running + on older kernels than what glibc has been built against + - uClibc: Use uClibc-ng 1.0.40 + - External toolchains: Update Bootlin toolchains to 2021.11-1 + version + + Python 2.7 and python 2.x specific packages removed as python + 2.x is EOL since April 2020. Likewise a number of python3 + specific host packages has been renamed (host-python-foo + instead of host-python3-foo) now host-python is always python + 3.x. + + Cargo (Rust) package infrastructure added. Vendoring support + added to golang package infrastructure. + + New defconfigs: FriendlyARM NanoPi R2S, Kontron BL i.MX8M + Mini, Microchip Sama7g7ek, Olimex STMP157 OlinuXino LIME2, + QEMU PPC Bamboo, PPC64 PowerNV, Raspberry Pi Zero 2W, Spike + Riscv64, Xilinx zcu102 + + Removed defconfigs: Synopsys arch38 VDK, aarch64 VDK + + New packages: ace, alchemy, alfred, bat, bento4, bmx7, + bpftool, brcmfmac_sdio-firmware-rpi, cfm, cups-pk-helper, + davinci-bootcount, dbus-cxx, embiggen-disk, freeipmi, + gocryptfs, kodi-pvr-plutotv, kodi-pvr-waipu, ksmbd-tools, + libcamera-apps, libest, libexecinfo, libfutils, libglvnd, + libks, libmd, libopenaptx, libpeas, libshdata, liburing, lilv, + lua-argon2, lua-cffi, lua-inotify, lv2, mali-driver, + moby-buildkit, modsecurity2, networkd-dispatcher, pahole, + php-apcu, php-lua, php-pam, python-argon2-cffi-bindings, + python-cssselect2, python-distro, python-fonttools, + python-gnupg, python-installer, python-memory-profiler, + python-mpd2, python-pep517, python-pydyf, python-pypa-build, + python-pyphen, python-tinycss2, python-tomli, + python-weasyprint, python-zopfli, qoriq-cadence-dp-firmware, + riscv-isa-sim, rockchip-mali, rpi-rgb-led-matrix, sdbus-cpp, + sentry-cli, serd, simple-mail, sord, sratom, + sunxi-mali-utgard, sunxi-mali-utgard-driver, tinifier, ulog, + vulkan-headers, xlib_libxcvt, zabbix, zchunk, zynaddsubfx + + Removed packages: gstreamer1-mm, python, python-backports-abc, + python-backports-functools-lru-cache, + python-backports-shutil-get-terminal-size, + python-backports-ssl-match-hostname, python-configobj, + python-dialog, python-enum, python-enum34, python-functools32, + python-futures, python-id3, python-ipaddr, python-ipaddress, + python-mad, python-nfc, python-pam, python-pathlib2, + python-pycap, python-pyro, python-singledispatch, + python-subprocess32, python-typing, python-yieldfrom, + qt5webkit-examples, rpi-bt-firmware, rpi-wifi-firmware, + sunxi-mali-mainline, sunxi-mali-mainline-driver, zynq-boot-bin + + Issues resolved (http://bugs.uclibc.org): + + #12271: python-iptables runtime dependencies + #13436: PPP 2.4.9 is out + #14351: needs to mount sysfs before mount -a + #14451: nodejs won't build on Fedora 35 + #14471: alsa_utils wrong deployment + #14501: lttng-modules v2.11 package fails to build + #14531: Package EFL - build error + +2021.11.3, released March 24th, 2022 + + Important / security related fixes. + + Updated/fixed packages: apache, azure-iot-sdk-c, boinc, dbus, + directfb, docker-engine, exempi, expat, flac, gdb, gdk-pixbuf, + gnutls, go, haproxy, libcurl, libiec61850, libminiupnpc, + libodb, libodb-boost, libopenssl, libpjsip, libressl, librsvg, + libsrtp, libvirt, libxml2, libxslt, lxc, mariadb, minidlna, + odb, openblas, openvpn, oprofile, php, pppd, python-ipython, + python-twisted, raptor, rpi-firmware, samba4, seatd, + timescaledb, usbguard, util-linux, vim, wavpack, + wireless-regdb, wireplumber, wireshark, wolfssl, xscreensaver, + xterm, zsh + + New packages: gdk-pixbuf-xlib + + Issues resolved (http://bugs.uclibc.org): + + #13126: make fails - bzip2-1.0.6.tar.gz and DirectFB-1.7.7.tar.. + #14636: azure-iot-sdk-c: Installed headers do not compile + #14641: oprofile can not find the events files + +2021.11.2, released February 28th, 2022 + + Important / security related fixes. + + Defconfigs: Andes ae3xx, Intel galileo: Fix build with host + gcc >= 10, ROC-RK3399-PC: Bump rootfs size to fix build issue. + + Add conditional patching logic to fix build issues for older + U-Boot / Linux kernel versions when built with a host gcc >= + 10. + + Updated/fixed packages: apitrace, binutils, casync, cgilua, + connman, expat, gauche, gdb, gensio, glibc, go, gst-omx, + gst1-devtools, gst1-libav, gst1-plugins-bad, + gst1-plugins-base, gst1-plugins-good, gst1-plugins-ugly, + gst1-python, gst1-rtsp-server, gst1-vaapi, gstreamer1, + gstreamer1-editing-services, kf5-extra-cmake-modules, kodi, + libarchive, linux, lm-sensors, localedef, log4cxx, mpd, + nfs-utils, php, pistache, pkcs11-helper, prosody, + python-django, python-pyzmq, python-regex, + python-sqliteschema, resiprocate, rtl8723bu, thermald, tiff, + tor, util-linux, vim, xen + +2021.11.1, released January 29th, 2022 + + Important / security related fixes. + + check-package: Improve variable override check + + pkg-stats: List CVEs where the version info cannot be parsed + as unsure rather than completely ignoring them. + + Defconfigs: Beaglebone: Support BeagleBone black wireless, + stm32f469_xip_disco: Fix kernel boot + + Updated/fixed packages: alsa-utils, apache, binutils, cage, + capnproto, civetweb, clamav, collectd, connman, containerd, + coreutils, dav1d, docker-cli, docker-engine, erlang, + erlang-rebar, expat, findutils, flare-engine, flare-game, + font-awesome, freeswitch, gcc, ghostscript, glibc, gnuchess, + go, grpc, gst1-interpipe, gst1-rtsp-server, gupnp-tools, + hackrf, icu, imagemagick, janus-gateway, json-for-modern-cpp, + keepalived, lapack, libdbi, libiio, libjpeg, libmbim, libnss, + libopenssl, libpjsip, libqmi, liburiparser, libvirt, + linux-pam, lxc, mbedtls, mender, mongodb, mpd-mpc, mutt, + nodejs, openblas, pcre2, php, pipewire, polkit, privoxy, + prosody, python-charset-normalizer, python-django, + python-idna, python-lxml, python-pyqt5, python-requests, + python-urllib3, python3, qt5base, qt5location, rhash, + rng-tools, ruby, runc, rustc, samba4, sofia-sip, targetcli-fb, + tcpreplay, tinyxml, tor, tpm2-tss, util-linux-libs, vim, vlc, + wireshark, xapp_xauth, xapp_xinput-calibrator, xen, xenomai, + xlib_libX11, xserver_xorg-server + + Issues resolved (http://bugs.uclibc.org): + + #14451: nodejs won't build on Fedora 35 + #14471: alsa_utils wrong deployment + +2021.11, released December 5th, 2021 + + Various fixes. + + Defconfigs: Grinn chiliboard/liteboard, PC x86-64 bios: Fix + build + + Updated/fixed packages: apr, coreutils, diffutils, e2fsprogs, + exfat, freeswitch, gnupg, grub2, gstreamer1, guile, heimdal, + hiawatha, hplip, icu, janus-gateway, + kodi-screensaver-asterwave, kodi-screensaver-cpblobs, + kodi-screensaver-matrixtrails, libatomic_ops, libbson, libffi, + libgdiplus, libgee, libhtp, libite, libnspr, libnss, + libunwind, lynx, mender-grubenv, mkpasswd, motion, mxml, + netdata, qemu, samba4, speex, stress-ng, tinydtls, unixodbc, + unrar, util-linux, util-linux-libs, watchdogd, wireshark + + Issues resolved (http://bugs.uclibc.org): + + #14351: needs to mount sysfs before mount -a + #14411: 2021.11-rc2: Samba doesn't compile + +2021.11-rc3, released November 30th, 2021 + + Fixes all over the tree. + + Defconfigs: Nitrogen8mp: Fix Linux build, Zynqmp-zxu106: Fix + ATF build + + Updated/fixed packages: asterisk, automake, gdb, glorytun, + gmp, hackrf, libgee, libglib2, libmodsecurity, libosmium, + libressl, lighttpd, linux, micropython, mosquitto, mtd, + nfs-utils, nss-myhostname, pcre, php, poco, pure-ftpd, + python-cycler, qemu, qdecoder, smack, smcroute, spidev_test, + strace, syslinux, toolchain, uboot, uhd, vim, websocketpp, + wireshark, xcursor-transparent-theme, xscreensaver, + xtables-addons + + Issues resolved (http://bugs.uclibc.org): + + #14346: BR2_PACKAGE_NFS_UTILS_RPC_NFSD does not patch CONFIG_NFSD.. + +2021.11-rc2, released November 19th, 2021 + + Fixes all over the tree. + + Coding style fixes for a large number of board genimage + configuration files for clarity and consistency. + + Defconfigs: Acmesystems Aria/Arietta g25, Armadeus + apf28/apf51, beagleboneai, Olimx a64, rock64, sheevaplug: Fix + build with hostcc >= 10, Nezha: Correct U-Boot dependencies + + Updated/fixed packages: alsa-lib, apparmor, binutils, + bluez5_utils, botan, diffutils, firmware-utils, gdb, glmark2, + glog, gpu-amd-bin-mx51, gst1-interpipe, imx-vpuwrap, iperf, + isl, janet, libdnet, libglib2, libhtp, liburcu, log4cxx, + luajit, luvi, meson, mksh, mongodb, mosquitto, mpd, mupdf, + opencv4, oracle-mysql, pipewire, postgresql, python-aiohttp, + python-pudb, python-ujson, qhull, samba4, seatd, sg3_utils, + suricata, tpm2-tss, uboot, vim, xserver_xorg-server + + New packages: pipewire-media-session + + Issues resolved (http://bugs.uclibc.org): + + 14311: Cannot compile dahdi (part of Asterisk) for x86 (P1mmx) + +2021.11-rc1, released November 8th, 2021 + + Numerous package updates. Notable updates including numerous + Python modules, Kodi add-ons, nodejs, OpenJDK. + + Toolchain: + - glibc update to 2.34 + - support for gdb 11.x added, gdb 10.x now the default + - external toolchains provided by ARM updated + - remove support for internal toolchain on the CSKY + architecture, as it was broken and unmaintained + + Many packages updated to enable the appropriate SELinux + refpolicy module when SELinux support is enabled. + + Support was added in the test-pkg package testing utility for + using Gitlab CI to run the builds. + + New libgbm virtual package to better support OpenGL + implementations that provide a libgbm library. + + Bootloaders/firmware: grub2 extended to be able to support + multiple platforms in the same build. + + Filesystems: + - new OCI filesystem type, to build container images + compatible with the Open Container Initiative standard + - support for hybrid ISO9660 images added, which work on + legacy and EFI BIOS machines + + New defconfigs: Allwinner nezha, stm32mp157c_odyssey + + Removed defconfigs: qemu_csky + + New packages: dtbocfg, firmware-utils, gstd, libdbi, + libdbi-drivers, libteam, lua-augeas, mstpd, php-pecl-dbus, + python-aioprocessing, python-bidict, + python-charset-normalizer, python-flask-expects-json, + python-git, python-pyndiff, python-rsa, + python-unitest-xml-reporting, python-xmljson, + python3-cryptography, python3-pip, qt5opcua, rwmem, + sloci-image, softhsm2, sun20i-d1-spl, uqmi, vuejs-router, + watchdogd, wireplumber + + Removed packages: canfestival, python-meld3 + + Work toward the removal of python 2 has progressed: many + python modules and packages have been updated to a version + supporting python 3. + + Issues resolved (http://bugs.uclibc.org): + + #14271: compilation error with rsync command for permission + #14276: Unable to get login prompt + #14196: when using raspberrypicm4io_64_defconfig, make fails + with mkfs.ext4: No such file or directory while trying + to determine filesystem size + +2021.08.3, released December 13th, 2021 + + Important / security related fixes. + + Defconfigs: Various fixes for building with gcc >= 10 host or + target compilers. + + Updated/fixed packages: alsa-lib, apparmor, apr, asterisk, + binutils, bluez5_utils, coreutils, e2fsprogs, exfat, + freeswitch, gdb, glmark2, glog, glorytun, gmp, + gpu-amd-bin-mx51, gst1-interpipe, gstreamer1, guile, gupnp, + hackrf, heimdal, hiawatha, hplip, icu, imx-vpuwrap, isl, + janus-gateway, libatomic_ops, libbson, libdnet, libffi, + libgdiplus, libgee, libglib2, libhtp, libmodsecurity, libnspr, + libnss, libosmium, libunwind, linux, lynx, meson, micropython, + mkpasswd, mksh, mosquitto, motion, mupdf, mxml, netdata, + nfs-utils, opencv4, oracle-mysql, pcre, php, postgresql, + pure-ftpd, python-cycler, qdecoder, rcw-smarc-sal28, samba4, + smack, speex, stress-ng, suricata, syslinux, uboot, unixodbc, + unrar, vim, websocketpp, wireshark + + Issues resolved (http://bugs.uclibc.org): + + #14346: BR2_PACKAGE_NFS_UTILS_RPC_NFSD does not patch CONFIG_NFSD.. + +2021.08.2, released November 10th, 2021 + + Important / security related fixes. + + Updated/fixed packages: asterisk, audit, bind, bitcoin, + containerd, cryptsetup, dahdi-linux, dbus-python, dfu-util, + docker-cli, docker-engine, earlyoom, edk2-platforms, exiv2, + ffmpeg, freerdp, gdb, gensio, gnupg2, go, gpsd, + gst1-plugins-bad, gst1-plugins-ugly, gst1-vaapi, gtest, + hiredis, lftp, libps1, libva, libva-utils, lightning, + log4cplus, lrzip, netdata, nodejs, olsr, openjdk, openjdk-bin, + pango, php, python3-cffi, qemu, refpolicy, rng-tools, samba4, + snort, strongswan, sunxi-mali-mainline-driver, suricata, + systemd, tor, vim, weston, wf111, wireguard-linux-compat, + xerces + + Issues resolved (http://bugs.uclibc.org): + + #14311: Cannot compile dahdi (part of Asterisk) for x86 (P1mmx) + +2021.08.1, released October 11, 2021 + + Important / security related fixes. + + gdbinit: Mark the sysroot as a "safe path" before configuring + it, so pretty printers work correctly without having to pass + -ix to gdb + + Updated/fixed packages: alsa-lib, apache, + arm-trusted-firmware, atftp, bind, botan, cog, containerd, + cryptopp, docker-cli, dash, dc3dd, docker-engine, dovecot, + environment-setup, erlang, fetchmail, ffmpeg, fio, gcc, gd, + gdb, ghostscript, gnuradio, gnutils, go, + gobject-introspection, google-breakpad, gst-omx, + gst1-devtools, gst1-interpipe, gst1-libav, gst1-plugins-bad, + gst1-plugins-base, gst1-plugins-good, gst1-plugins-ugly, + gst1-python, gst1-rtsp-server, gst1-vaapi, gstreamer1, + gstreamer1-editing-services, gupnp, haproxy, imlib2, kodi, + kodi-pvr-octonet, kodi-visualisation-fishbmc, libcurl, + libexif, libgcrypt, libglib2, libkrb5, libressl, librsvg, + libsndfile, libssh, libvirt, libxcrypt, libyang, links, lvm2, + lynx, lxc, mc, mesa3d, micropython, minicom, mono, mosquitto, + mtr, mupdf, mv-ddr-marvell, net-tools, nginx-dav-ext, nmap, + nodejs, ntfs-3g, openjdk, openjdk-bin, openldap, openssh, + pcre2, php, php-gnupg, pipewire, postgis, python-aioconsole, + python-cbor2, python-cffi, python-cython, python-dateutil, + python-django, python-pillow, python-pip, python-texttable, + python-urllib3, python-webob, qemu, qt5location, redis, + refpolicy, ripgrep, ruby, runc, sispmctl, sox, squid, + strongswan, supervisor, swupdate, syslinux, systemd, tinycbor, + trace-cmd, uboot-tools, uclibc, udisks, uhd, vim, vsftpd, + wavemon, webkitgtk, wget, wireless-regdb, wpewebkit, + xapp_xrdb, xapp_xwd, xen, xlib_libXfont2, xlib_libXft, + xserver_xorg-server, zip + + Issues resolved (http://bugs.uclibc.org): + + #14206: Kodi: even when not enabled, forcefully selects libevdev.. + #14211: libffi-3.3.tar.gz repacked + #14221: mv-ddr-marvell fails license validation + +2021.08, released September 4th, 2021 + + Various fixes. + + Updated/fixed packages: gstreamer1-mm, netsniff-ng, nginx, + openmpi, python-pyudev, python3, qt5base, wlroots, xvisor + +2021.08-rc3, released August 31st, 2021 + + Fixes all over the tree. + + Toolchain: Disable fortify support for Microblaze as it is not + currently working. + + Defconfigs: Acmesystems aria/ariette g25: Fix build issue + after at91bootstrap bump, BeagleV: Correct kernel headers + version, PC x86-64: Bump kernel to 4.19.204 to fix build issue + with GCC 10.x. + + Updated/fixed packages: alsa-utils, at91bootstrap3, belle-sip, + bullet, c-ares, cjson, coreutils, cpio, eigen, fetchmail, gdb, + haproxy, heirloom-mailx, ipmiutil, kvm-unit-tests, libarchive, + libffi, libmodsecurity, libopenssl, libressl, libshout, + libvirt, linux-pam, lmbench, localedef, lua-lunix, mesa3d, + mpv, mtd, nodejs, nvidia-driver, openvmtools, php, polkit, + python-requests, python3-requests, rust-bin, rustc, samba4, + sdl2, snort3, ushare, xen + + Removed packages: libmcrypt, mcrypt, sentry-cli + +2021.08-rc2, released August 18th, 2021 + + Fixes all over the tree. + + Defconfigs: Acmesystems acqua a5: Bump at91bootstrap version + to fix build issue with binutils >= 2.35, Microchip sam9x60ek + mmc_dev: Add missing toolchain/system options, sama5d2-icp + mmc: Correct at91bootstrap options + + Updated/fixed packages: arm-trusted-firmware, at91bootstrap3, + azure-iot-sdk-c, bluez5_utils, bullet, busybox, cegui, efl, + erlang, ffmpeg, flatbuffers, fontconfig, gcc, gd, glibc, go, + gobject-introspection, gpsd, guile, harfbuzz, iozone, iputils, + jszip, libargtable2, libbpf, libebml, libepoxy, libesmtp, + libfuse3, libgeos, libnss, libodb-boost, libodb-mysql, + libodb-pgsql, libqmi, libqrtr-glib, libuhttpd, libuwsc, + libvirt, ltp-testsuite, luaossl, mongodb, mpd, mupdf, mutt, + network-manager, nginx-naxsi, nodejs, ogre, openzwave, + optee-os, osm2pgsql, pdbg, perl-net-ssh2, php, pipewire, + pistache, pixman, poke, polkit, poppler, postgresql, postkit, + prelink-cross, prosody, protobuf, pulseview, + python-cryptography, python-keyring, python-matplotlib, + python-pymupdf, python-pyopenssl, python-secretstorage, + python-treq, python-txtorcon, python3, qemu, qpdf, qt5base, + refpolicy, ruby, rust-bin, s390-tools, sconeserver, seatd, + shairport-sync, sox, sqlite, sylpheed, sysdig, syslog-ng, + system-config-printer, tar, terminology, tor, tpm2-tools, uhd, + unbound, usbguard, wireshark, xen, xenomai, xlib_libxshmfence, + zstd + + New packages: desktop-file-utils + + Issues resolved (http://bugs.uclibc.org): + + #13586: grub failure with BR2_OPTIMIZE_3 + #13671: openSSH server closes connection before authentication.. + +2021.08-rc1, released August 3rd, 2021 + + Numerous package updates. + + Toolchain: + + - add support for gcc 11.x, gcc 10.x is now the default, gcc + 9.x updated to 9.4.0, removed gcc 8.x support except for + PowerPC SPE + + - add support for binutils 2.37, binutils 2.36.x is now the + default, binutils 2.34 removed. + + - glibc updated to 2.33 + + - gdb enabled on NIOS II, gdbserver enabled on RISC-V. + + Bootloaders/firmware: support for building the EDK II UEFI + firmware, support for building AT91Bootstrap 4.x. + + New BR2_ENABLE_RUNTIME_DEBUG option, that controls whether + packages should be compiled with runtime debugging + information (which is different than debugging symbols). + + Many features of the bluez5_utils package have been made + optional, and default to disabled. Users of bluez5_utils are + encouraged to review their configuration. + + Many packages (over 70) updated to enable the appropriate + SELinux refpolicy module when SELinux support is enabled. + + Many packages updated to select the appropriate OpenSSL + features after many OpenSSL ciphers/features have been made + optional. + + New defconfigs: kontron_pitx_imx8m, microchip_sama5d2_icp, + qemu_aarch64_sbsa, raspberrypicm4io, raspberrypicm4io_64, + terasic_de10nano_cyclone5, uevm5432. + + New packages: alsa-plugins, apg, bmap-tools, daq3, edk2, + edk2-platforms, gumbo-parser, libbpf, libosmium, libpsl, + libqb, libtalloc, libvirt, lua-linux, lua-zlib, mupdf, + opencv4, osm2pgsql, poke, python-augeas, python-dbus-next, + python-pymupdf, rtl_433, rtl8812au-aircrack-ng, seatd, snort3, + system-config-printer, usbguard, xml-security-c, xmrig. + + Removed packages: clapack, libsoil. + + Issues resolved (http://bugs.uclibc.org): + + #13326: regarding dtc error in buildroot source code + #13661: host-python2 build fails on aarch64 + #13836: package build failure when target install set to no on + pkg-generic pkg types + #13846: BR2_PACKAGE_LVM2_STANDARD_INSTALL should be default to + y as before + +2021.05.3, released October 11, 2021 + + Important / security related fixes. + + gdbinit: Mark the sysroot as a "safe path" before configuring + it, so pretty printers work correctly without having to pass + -ix to gdb + + Updated/fixed packages: alsa-lib, apache, + arm-trusted-firmware, atftp, bind, botan, containerd, + cryptopp, dash, dc3dd, docker-cli, docker-engine, dovecot, + erlang, fetchmail, ffmpeg, gdb, ghostscript, go, gst-omx, + gst1-devtools, gst1-interpipe, gst1-libav, gst1-plugins-bad, + gst1-plugins-base, gst1-plugins-good, gst1-plugins-ugly, + gst1-python, gst1-rtsp-server, gst1-vaapi, gstreamer1, + gstreamer1-editing-services, kodi, kodi-pvr-octonet, + kodi-visualisation-fishbmc, libcurl, libkrb5, libressl, + libsndfile, libxcrypt, libyang, lxc, lynx, mesa3d, + micropython, minicom, mono, mtr, mv-ddr-marvell, net-tools, + nmap, nodejs, ntfs-3g, openjdk, openjdk-bin, openldap, + openssh, pcre2, php, python-aioconsole, python-cffi, + python-dateutil, python-django, python-pip, python-texttable, + python-urllib, python-webob, qt5location, redis, refpolicy, + ripgrep, runc, sispmctl, squid, strongswan, supervisor, + syslinux, tinycbor, trace-cmd, uboot-tools, uclibc, wavemon, + wget, wireless-regdb, xen, xserver_xorg-server + + Issues resolved (http://bugs.uclibc.org): + + #14206: Kodi: even when not enabled, forcefully selects libevdev.. + #14211: libffi-3.3.tar.gz repacked + #14221: mv-ddr-marvell fails license validation + +2021.05.2, released September 15th, 2021 + + Important / security related fixes. + + Toolchain: Disable fortify support for Microblaze as it is not + currently working. + + Updated/fixed packages: alsa-utils, arm-trusted-firmware, + bayer2rgb-neon, belle-sip, bullet, busybox, c-ares, cjson, + coreutils, cpio, eigen, environment-setup, fetchmail, ffmpeg, + fontconfig, gd, gdb, gnuradio, gnutls, go, haproxy, ipmiutil, + iputils, jszip, kvm-unit-tests, libarchive, libargtable2, + libexif, libgcrypt, libmodsecurity, libopenssl, librsvg, + libshout, libssh, libxcrypt, linux, linux-pam, localedef, mc, + mesa3d, mosquitto, netsniff-ng, nginx, nodejs, ogre, openjdk, + openmpi, openvmtools, perl-net-ssh2, php, pipewire, + postgresql, prelink-cross, prosody, protobuf, python-keyring, + python-matplotlib, python-pillow, python-pyudev, + python-secretstorage, python3, qt5base, samba4, sdl2, sox, + swupdate, sylpheed, tar, terminology, tor, uboot-tools, uhd, + unbound, ushare, vim, wlroots, xapp_xrdb, xapp_xwd, xen, + xenomai, xlib_libXfont2, xlib_libXft, zip + +2021.05.1, released August 10, 2021 + + Important / security related fixes. + + Toolchain: Disable PIC/PIE for Microblaze (like for NIOS II) + as it is not currently working. + + binutils: fix linker assert failure on OpenRisc, or1k build + issue with gcc < 5 + + gdb: Enable on NIOS II + + utils/scanpypi: Various improvements + + Defconfigs: stm32f469_disco: Fix kernel boot issue, Microchip + sam9x60ek mmc_dev: Add missing toolchain/system options + + Updated/fixed packages: arm-trusted-firmware, apache, audit, + avahi, bind, binutils, bird, bluez5_utils, boinc, busybox, + chrony, clamav, connman, cryptsetup, dnsmasq, docker-cli, + docker-engine, dovecot, dovecot-pigeonhole, e2fsprogs, exiv2, + fail2ban, fb-test-app, feh, fetchmail, ffmpeg, flac, fluxbox, + gawk, gcc, gcr, gdb, gdk-pixbuf, gesftpserver, glibc, go, + gptfdisk, gqrx, granite, grub2, guile, hdparm, heirloom-mailx, + htop, ibrcommon, ibrdtn, ibrdtn-tools, ibrdtnd, + intel-microcode, iodine, irqbalance, keepalived, kexec-tools, + libass, libconfig, libcurl, libfreeimage, libfuse3, libgcrypt, + libgudev, libhtp, libinput, libjson, libgtk3, libkrb5, + libloki, libmodsecurity, libndp, libnetfilter-log, + libnfnetlink, libnice, libodb, libodb-boost, libodb-mysql, + libodb-pgsql, libpcap, libqmi, libqrtr-glib, libressl, + librsvg, libtasn1, libtirpc, libuci, libxmlrpc, + linux-firmware, linuxptp, lrzsz, lvm2, mariadb, mesa3d, + mbedtls, monit, mono, mosquitto, mpd, mpg123, mpv, nbd, + netsnmp, nettle, nmap, nodejs, ntp, openntpd, openpgm, + openswan, pango, pcre2, perl-crypt-openssl-rsa, php, pixman, + postgresql, proxychains-ng, putty, python, + python-dataproperty, python-django, python-pysftp, + python-urllib3, python3, qpdf, redis, ripgrep, rsync, ruby, + samba4, sane-backends, slirp, spice, squid, suricata, tcpdump, + tftpd, thrift, tor, tpm2-tools, trinity, uboot, uboot-tools, + uclibc, vlc, wireless-regdb, wireshark, wolfssl, + xapp_fonttosfnt, xlib_libX11, xlib_libxshmfence, + xserver_xorg-server + + Issues resolved (http://bugs.uclibc.org): + + #13586: grub failure with BR2_OPTIMIZE_3 + #13661: host-python2 build fails on aarch64 + #13836: package build failure when target install set to no.. + #13846: BR2_PACKAGE_LVM2_STANDARD_INSTALL should be default to.. + +2021.05, released June 6th, 2021 + + Various fixes. + + Disable PIC/PIE support for Nios2 because of glibc issues + + Defconfigs: Minnowboard max: Fix X11 and mesa3d configuration + + Updated/fixed packages: apache, beaglev-ddrinit, + beaglev-secondboot, capnproto, dc3dd, directfb, efibootmgr, + ffmpeg, gptfdisk, go, gupnp, hostapd, iftop, + intel-mediadriver, libcamera, libcutl, libesmtp, libkcapi, + libraw, lttng-tools, lvm2, mimic, mono-gtksharp3, mpv, + netperf, odb, qt5base, uclibc, uftrace, unscd, vlc, + xdriver_xf86-video-fbturbo + + New packages: python3-cffi, python3-cryptography, python3-pip, + python3-pycparser, python3-six + +2021.05-rc3, released May 31th, 2021 + + Fixes all over the tree. + + meson: Explicitly disable PIE support (b_pie) as it is handled + by the toolchain wrapper. + + Updated/fixed packages: boost, dhcp, expat, gdb, hwloc, imagemagick, + libcurl, libopenh264, llvm, lz4, mpv, nginx, paho-mqtt-c, pifmrds, + pipewire, python-bluezero, python-pillow, qemu, strace, uhd, vlc, + webkitgtk + + Issues resolved (http://bugs.uclibc.org): + + #13821: Wrong url for libnfsidmap package + +2021.05-rc2, released May 22th, 2021 + + Fixes all over the tree. + + support/scripts/gen-missing-cpe: A script to query the list of + CPE IDs for the packages enabled in the current configuration and: + + - for CPE IDs that do not have any matching entry in the CPE + database, it emits a warning + + - for CPE IDs that do have a matching entry, but not with the same + version, it generates a snippet of XML that can be used to propose + an updated version to NIST. + + CPE meta data has been added for a large number of packages + + Updated/fixed packages: assimp, binutils, bitcoin, bullet, + cutelyst, dhcp, dmalloc, docker-engine, ebtables, + environment-setup, flatcc, gcc, gd, gerbera, hostapd, + imx-gpu-viv, intel-microcode, jquery-validation, libdrm, + libgeos, libraw, libtirpc, libxml2, libxslt, live555, lmbench, + localedef, lvm2, mender, mender-grubenv, modem-manager, mutt, + opensbi, openssh, opentyrian, pipewire, postgis, postgresql, + prosody, python-bluezero, python-falcon, redis, rocksdb, + rt-tests, runc, vlc, waylandpp, webkitgtk, wireshark, + wpa_supplicant, wpewebkit, xlib_libX11, xterm + + New packages: jh71xx-tools + + Issues resolved (http://bugs.uclibc.org): + + #13781: isc dhcp-server package don't create file /usr/bin/dhcpd + #13801: toolchainfile.cmake CMAKE_BUILD_TYPE + #13806: Building host-localedef fails on fedora 34/gcc 11 + +2021.05-rc1, released May 12th, 2021 + + Fixes all over the tree and new features. + + FORTIFY_SOURCE, PIC/PIE, RELRO and SSP security hardening + options are now enabled by default. + + Dependencies: Explicitly detect and bail out if PATH contains + spaces or tabs. A number of packages fail to build in such + setups, so explicitly inform about this. + + Infrastructure: Expose CONFIG_DIR to post-build/post-image + scripts, so they can call the Buildroot Makefile in the + correct directory for both in-tree / out-of-tree builds. + + CMake infrastructure: Use CMAKE_EXE_LINKER_FLAGS rather than + CMAKE_CXX_FLAGS to link with libatomic to fix an compatibility + issue with poppler. Bump minimal host cmake version to 3.16 + (from 3.15) to fix a compatibility issue with domoticz. + + Meson: Use correct C++ host compiler (rather than C compiler) + + utils/scanpypi: Explicitly use python3 for compatibility with + packages using python3 syntax in setup.py + + support/download: Fix tarball generation (from git/svn repos) + including symlinks pointing to ./. Fix svn download + for <1.9 clients or repos using CVS-style keywords. + + support/scripts/cve.py: Use the (significantly) faster yajl2 + ijson backend for older (< 2.5) ijson versions rather than the + slow python default, speeding up pkg-stats by ~2x. + + Toolchain: Add logic to work around binutils bug 21464 + (affecting OpenRISC), bug 27597 (affecting Nios II) and drop + the now longer applicable bug 19615 / 20006 handling. + + Python{,3}: Fix byte compiling python files with short (single + character before .py) file names. + + CPE meta data has been added for a large number of packages + + New defconfigs: Acme Systems Acqua A5 (256/512MB), Beagleboard + BeagleV, Boundary devices Nitrogen8M Plus SOM, NXP i.MX 8M + Plus EVK, QEMU PPC e500mc + + New packages: beaglev-ddrinit, beaglev-secondboot, janet, + kodi-inputstream-ffmpegdirect, kodi-vfs-libarchive, + kodi-visualisation-matrix, libxcrypt, libqrtr-glib, log4qt, + mawk, perl-parse-yapp, postgis, protozero, python-flask-wtf, + python-iwlib, python-semantic-version, python-setuptools-rust, + python-toml, riscv64-elf-toolchain, siproxyd, uftrace, zfs + + Removed packages: iostat, kodi-platform, + kodi-screensaver-crystalmorph, monkey + + Issues resolved (http://bugs.uclibc.org): + + #13271: systemd-resolved: /etc/resolv.conf link broken on per-pa.. + #13516: utils/scanpypi: Failure when parsing diffoscope + #13551: 2021.02.rc2: Unicode not work on qt 5.15.2 + #13576: Issues compiling buildroot for 5x86 + #13601: Gen image :Iappropriate ioctl error + #13616: tar file from git repository generation issue + #13631: Commit 54d3d94b6e breaks packages with git download method + #13641: glibc on raspberrypi + #13646: Gen image version 14 error : no sub -section title/.. + #13651: pkg-golang cannot build when main.go is in the root + #13661: host-python2 build fails on aarch64 + #13671: openSSH server closes connection before authentication.. + #13721: c-stack.c:55:26: error: missing binary operator before .. + #13731: Readline Patch is missing Author Information + #13741: genext2fs does not allow to set perms of root node + #13751: libopenssl (static): huge drop in performance in newer .. + #13771: package htop has undeclared dependency on host python + +2021.02.12, released April 6th, 2022 + + Important / security related fixes. + + pkg-stats: Limit memory use for CPE matching + + Updated/fixed packages: gdk-pixbuf, jack2, libzlib, matio, + nbd, netatalk, opus, python-paramiko, python-treq, + python-twisted, spidev_test, unbound, urandom-scripts, vim, + wireshark, zlib-ng, zziplib + +2021.02.11, released March 25th, 2022 + + Important / security related fixes. + + Updated/fixed packages: apache, azure-iot-sdk-c, dbus, + directfb, docker-engine, exempi, expat, flac, gdk-pixbuf, + gnutls, go, haproxy, libcurl, libiec61850, libminiupnpc, + libodb, libodb-boost, libopenssl, libpjsip, libressl, librsvg, + libsrtp, libxml2, libxslt, lxc, mariadb, odbm openblas, + openvpn, oprofile, php, pppd, python-ipython, python-treq, + python-twisted, python-txbus, python-txtorcon, raptor, + rpi-firmware, samba4, timescaledb, util-linux, vim, wavpack, + wireless-regdb, wireshark, wolfssl, xscreensaver, xterm, zsh + + New packages: gdk-pixbuf-xlib + + Removed packages: python-coherence + + Issues resolved (http://bugs.uclibc.org): + + #13126: make fails - bzip2-1.0.6.tar.gz and DirectFB-1.7.7.tar.. + #14636: azure-iot-sdk-c: Installed headers do not compile + #14641: oprofile can not find the events files + +2021.02.10, released February 28th, 2022 + + Important / security related fixes. + + Defconfigs: Andes ae3xx, Intel galileo: Fix build with host + gcc >= 10, ROC-RK3399-PC: Bump rootfs size to fix build issue. + + Add conditional patching logic to fix build issues for older + U-Boot / Linux kernel versions when built with a host gcc >= + 10. + + Updated/fixed packages: casync, cgilua, connman, expat, + gauche, gensio, go, gst-omx, gst1-devtools, gst1-libav, + gst1-plugins-bad, gst1-plugins-base, gst1-plugins-good, + gst1-plugins-ugly, gst1-python, gst1-rtsp-server, gst1-vaapi, + gstreamer1, gstreamer1-editing-services, + kf5-extra-cmake-modules, kodi, libarchive, linux, lm-sensors, + log4cxx, mpd, nfs-utils, pistache, prosody, python-django, + python-pyzmq, rtl8723bu, thermald, tiff, util-linux, vim, xen + +2021.02.9, released January 29th, 2022 + + Important / security related fixes. + + check-package: Improve variable override check + + pkg-stats: List CVEs where the version info cannot be parsed + as unsure rather than completely ignoring them. + + Defconfigs: Beaglebone: Support BeagleBone black wireless + + Updated/fixed packages: alsa-utils, apache, cage, capnproto, + civetweb, clamav, collectd, connman, coreutils, dav1d, + docker-cli, docker-containerd, docker-engine, expat, + findutils, flare-engine, flare-game, font-awesome, freeswitch, + gcc, ghostscript, gnuchess, go, grpc, gst1-interpipe, + gst1-plugins-bad, gst-rtsp-sever, gupnp-tools, hackrf, icu, + imagemagick, janus-gateway, keepalived, lapack, libjpeg, + libopenssl, libpjsip, liburiparser, linux-pam, lxc, mbedtls, + mongodb, mpd-mpc, nodejs, openblas, pcre2, polkit, poppler, + privoxy, prosody, python-django, python-lxml, python-pyqt5, + python3, qt5base, qt5location, rhash, ruby, runc, samba4, + sofia-sip, targetcli-fb, tcpreplay, tinyxml, vim, vlc, + wireshark, xapp_xauth, xen, xlib_libX11, xserver_xorg-server + + Issues resolved (http://bugs.uclibc.org): + + #14471: alsa_utils wrong deployment + +2021.02.8, released December 14th, 2021 + + Important / security related fixes. + + Defconfigs: Various fixes for building with gcc >= 10 host or + target compilers. + + Updated/fixed packages: alsa-lib, apparmor, apr, asterisk, + binutils, bluez5_utils, busybox, coreutils, e2fsprogs, ell, + exfat, freeswitch, gdb, glmark2, glog, glorytun, gmp, + gpu-amd-bin-mx51, gst1-interpipe, gstreamer1, guile, gupnp, + hackrf, heimdal, hiawatha, hplip, icu, imx-vpuwrap, isl, iwd, + janus-gateway, libatomic_ops, libbson, libdnet, libffi, + libgdiplus, libgee, libhtp, libmodsecurity, libnspr, libnss, + libunwind, linux, lynx, meson, micropython, mkpasswd, mksh, + mosquitto, motion, mxml, netdata, nfs-utils, oracle-mysql, + pcre, pkcs11-helper, postgresql, pure-ftpd, python-cycler, + qdecoder, rcw-smarc-sal28, samba4, smack, speex, stress-ng, + suricata, syslinux, uboot, unixodbc, unrar, vim, websocketpp, + wireshark + + Issues resolved (http://bugs.uclibc.org): + + #14346: BR2_PACKAGE_NFS_UTILS_RPC_NFSD does not patch CONFIG_NFSD.. + +2021.02.7, released November 10th, 2021 + + Important / security related fixes. + + OpenJDK 16.x moved to 17.x as 16.x is EOL. + + Updated/fixed packages: asterisk, audit, bind, bitcoin, + cryptsetup, dahdi-linux, dbus-python, dfu-util, docker-cli, + docker-containerd, docker-engine, earlyoom, exiv2, ffmpeg, + freerdp, gdb, gensio, gnupg2, go, gpsd, gst1-plugins-bad, + gst1-plugins-ugly, gst1-vaapi, hiredis, lftp, lightning, + lrzip, netdata, nodejs, olsr, openjdk, openjdk-bin, pango, + qemu, samba4, snort, strongswan, suricata, systemd, vim, + wf111, wireguard-linux-compat, xerces + + Issues resolved (http://bugs.uclibc.org): + + #14311: Cannot compile dahdi (part of Asterisk) for x86 (P1mmx) + +2021.02.6, released October 11, 2021 + + Important / security related fixes. + + gdbinit: Mark the sysroot as a "safe path" before configuring + it, so pretty printers work correctly without having to pass + -ix to gdb + + Updated/fixed packages: alsa-lib, apache, + arm-trusted-firmware, atftp, bind, botan, cryptopp, dash, + dc3dd, docker-cli, docker-containerd, docker-engine, dovecot, + erlang, fetchmail, gdb, ghostscript, go, gst-omx, + gst1-devtools, gst1-interpipe, gst1-libav, gst1-plugins-bad, + gst1-plugins-base, gst1-plugins-good, gst1-plugins-ugly, + gst1-python, gst1-rtsp-server, gst1-vaapi, gstreamer1, + gstreamer1-editing-services, kodi-pvr-octonet, libcurl, + libkrb5, libressl, libsndfile, libyang, lxc, lynx, mesa3d, + micropython, minicom, mono, mtr, mv-ddr-marvell, net-tools, + nmap, nodejs, ntfs-3g, openjdk, openjdk-bin, openldap, + openssh, php, python-aioconsole, python-cffi, python-dateutil, + python-django, python-pip, python-texttable, python-urllib3, + python-webob, qt5location, redis, refpolicy, ripgrep, runc, + sispmctl, squid, strongswan, supervisor, syslinux, tinycbor, + trace-cmd, uboot-tools, uclibc, wavemon, wireless-regdb, xen, + xserver_xorg-server + + Issues resolved (http://bugs.uclibc.org): + + #14206: Kodi: even when not enabled, forcefully selects libevdev.. + #14211: libffi-3.3.tar.gz repacked + #14221: mv-ddr-marvell fails license validation + +2021.02.5, released September 15th, 2021 + + Important / security related fixes. + + Toolchain: Disable fortify support for Microblaze as it is not + currently working. + + Updated/fixed packages: alsa-utils, arm-trusted-firmware, + bayer2rgb-neon, belle-sip, busybox, c-ares, cjson, coreutils, + cpio, eigen, environt-setup, fetchmail, fluidsynth, + fontconfig, gd, gdb, gnuradio, gnutls, go, haproxy, ipmiutil, + iputils, jszip, kvm-unit-tests, libarchive, libexif, + libgcrypt, libmodsecurity, libopenssl, librsvg, libshout, + libssh, linux, localedef, mc, mesa3d, mosquitto, netsniff-ng, + nginx, nodejs, ogre, openmpi, openvmtools, php, postgresql, + prelink-cross, prosody, protobuf, python-keyring, + python-matplotlib, python-pillow, python-pyudev, + python-secretstorage, python3, qt5base, samba4, sdl2, sox, + swupdate, sylpheed, tor, uboot-tools, uhd, unbound, vim, + wlroots, xapp_xrdb, xapp_xwd, xen, xenomai, xlib_libXfont2, + xlib_libXft, zip + +2021.02.4, released August 10th, 2021 + + Important / security related fixes. + + Toolchain: Disable PIC/PIE for Microblaze (like for NIOS II) + as it is not currently working. + + binutils: fix linker assert failure on OpenRisc, or1k build + issue with gcc < 5 + + gdb: Enable on NIOS II + + utils/scanpypi: Various improvements + + Defconfigs: stm32f469_disco: Fix kernel boot issue, Microchip + sam9x60ek mmc_dev: Add missing toolchain/system options + + Updated/fixed packages: apache, arm-trusted-firmware, audit, + avahi, bind, binutils, bird, bluez5_utils, boinc, busybox, + chrony, clamav, cryptsetup, cwiid, dnsmasq, docker-cli, + docker-engine, dovecot, dovecot-pigeonhole, e2fsprogs, exiv2, + fail2ban, fb-test-app, feh, fetchmail, flac, fluxbox, gawk, + gcc, gcr, gdb, gdk-pixbuf, gesftpserver, glibc, go, gptfdisk, + granite, grub2, gqrx, guile, hdparm, heirloom-mailx, + ibrcommon, ibrdtn, ibrdtn-tools, ibrdtnd, intel-microcode, + iodine, irqbalance, keepalived, libass, libconfig, libcurl, + libfreeimage, libfuse3, libgcrypt, libgtk3, libgudev, libhtp, + libjson, libkrb5, libloki, libmodsecurity, libndp, + libnetfilter-log, libnfnetlink, libnice, libodb, libodb-boost, + libodb-mysql, libodb-pgsql, libpcap, libqmi, libressl, + librsvg, libtasn1, libtirpc, libuci, libxmlrpc, + linux-firmware, linuxptp, lrzsz, ltp-testsuite, lvm2, mariadb, + mbedtls, monit, mono, mosquitto, mpd, mpg123, mpv, nbd, neard, + netsnmp, nettle, nginx-modsecurity, nmap, nodejs, ntp, + openntpd, openpgm, openswan, pango, pcre2, + perl-crypt-openssl-rsa, php, pixman, polkit, postgresql, + proxychains-ng, putty, python, python-django, + python-dataproperty, python-pysftp, python-urllib3, python3, + qpdf, redis, ripgrep, ruby, samba4, spice, slirp, suricata, + sysdig, tcpdump, tftpd, thrift, tor, tpm2-tools, trinity, + uboot, uboot-tools, uclibc, util-linux, vlc, wireless-regdb, + wireshark, wolfssl, xapp_fonttosfnt, xlib_libX11, + xlib_libxshmfence, xserver_xorg-server + + Issues resolved (http://bugs.uclibc.org): + + #13586: grub failure with BR2_OPTIMIZE_3 + #13661: host-python2 build fails on aarch64 + #13836: package build failure when target install set to no.. + #13846: BR2_PACKAGE_LVM2_STANDARD_INSTALL should be default to.. + +2021.02.3, released June 12th, 2021 + + Important / security related fixes. + + CPE meta data has been added for a large number of packages + + Updated/fixed packages: acpid, apache, apcupsd, assimp, bird, + bitcoin, blktrace, boost, capnproto, chrony, dc3dd, dhcp, + directfb, dmalloc, docker-engine, ebtables, efibootmgr, + enlightenment, enscript, environment-setup, exempi, expat, + findutils, flatcc, fluidsynth, frr, gdb, go, gptfdisk, grpc, + gst1-plugins-bad, gst1-rtsp-server, gstreamer1, gupnp, + hostapd, hwloc, i2c-tools, iftop, imagemagick, imx-gpu-viv, + intel-mediadriver, intel-microcode, jquery-validation, + keepalived, kodi, less, libcamera, libcurl, libcutl, libesmtp, + libeXosip2, libffi, libfuse, libfuse3, libgeos, libgtk2, + libgtk3, libical, libidn, libidn2, libkcapi, libldns, libmms, + libmodbus, libmspack, libnids, libopenh264, liboping, libraw, + librelp, libsamplerate, libtirpc, libusb, libuv, libxcb, + libxml2, libxslt, live555, llvm, lmbench, localedef, + lttng-tools, lvm2, lz4, mesa3d, mimic, mini-snmpd, minidlna, + minissdpd, minizip, mono-gtksharp3, mpg123, mpv, msmtp, musl, + mutt, nasm, nbd, netperf, netsurf, nginx, odb, opencv3, + openssh, opentyrian, oprofile, p7zip, paho-mqtt-c, perl, + php-imagick, pifmrds, picocom, pigz, pngquant, poco, + postgresql, prosody, proxychains-ng, pulseaudio, putty, pwgen, + python-autobahn, python-bluezero, python-engineio, + python-keyring, python-pillow, python-requests, python-tqdm, + qemu, qpdf, qt5base, redis, refpolicy, rt-tests, runc, + shellinabox, squid, strace, supervisor, synergy, taglib, + tclap, terminology, thermald, tini, tinyproxy, tinyxml2, + tpm2-tss, uclibc, udisks, uhd, unscd, vlc, waylandpp, + webkitgtk, weston, wireshark, wpa_supplicant, wpewebkit, + xlib_libdmx, xlib_libFS, xlib_libICE, xlib_libX11, + xlib_libXcursor, xlib_libXdmcp, xlib_libXext, xlib_libXfixes, + xlib_libXfont2, xlib_libXinerama, xlib_libXpm, xlib_libXres, + xlib_libXt, xlib_libXtst, xlib_libXxf86dga, xlib_libXxf86vm, + xterm + + Issues resolved (http://bugs.uclibc.org): + + #13781: isc dhcp-server package don't create file /usr/bin/dhcpd + #13801: toolchainfile.cmake CMAKE_BUILD_TYPE + #13806: Building host-localedef fails on fedora 34/gcc 11 + +2021.02.2, released May 12th, 2021 + + Important / security related fixes. + + Toolchain: Add logic to mark toolchains affected by binutils + bug 27597 (Nios II). + + support/scripts/cve.py: Use the (significantly) faster yajl2 + ijson backend for older (< 2.5) ijson versions rather than the + slow python default, speeding up pkg-stats by ~2x. + + CMake infrastructure: Use CMAKE_EXE_LINKER_FLAGS rather than + CMAKE_CXX_FLAGS to link with libatomic to fix an compatibility + issue with poppler. + + Infrastructure: Expose CONFIG_DIR to post-build/post-image + scripts, so they can call the Buildroot Makefile in the + correct directory for both in-tree / out-of-tree builds. + + Updated/fixed packages: at91bootstrap, avahi, bash, bind, + bridge-utils, boost, cegui, cifs-utils, clamav, cmake, + coremark-pro, coreutils, cryptsetup, dmalloc, dnsmasq, + docker-cli, docker-engine, domoticz, efl, exim, ffmpeg, flex, + gcc, genext2fs, go, gst1-interpipe, haproxy, hostapd, + i2c-tools, imx-vpu, kexec, kf5-kcoreaddons, kismet, libcamera, + libcurl, libdrm, libfreefare, libfuse3, libgeos, libgpiod, + libnpupnp, libopenssl, libp11, librsync, libtomcrypt, libupnp, + localedef, lvm2, lxc, m4, makedevs, mender, mesa3d, + mesa3d-headers, mkpasswd, mkpimage, modem-manager, monkey, + mpd, ncurses, nettle, network-manager, nginx, numactl, + openjdk, openjdk-bin, openldap, openvpn, php, pipewire, + python-aioconsole, python-asgiref, python-botocore, + python-django, python-dnspython, python-flup, python-httplib2, + python-markdown2, python-mbrstrdecoder, python3, quickjs, + readline, rsyslog, ruby, rust, samba4, sconeserver, snort, + sox, systemd, tar, timescaledb, tio, tor, usb_modeswitch, + wpa_supplicant, xdriver_xf86-video-ati, xen, xlib_libXaw, + xserver_xorg-server + + Issues resolved (http://bugs.uclibc.org): + + #13271: systemd-resolved: /etc/resolv.conf link broken on per-pa.. + #13551: 2021.02.rc2: Unicode not work on qt 5.15.2 + #13651: pkg-golang cannot build when main.go is in the root + #13661: host-python2 build fails on aarch64 + #13721: c-stack.c:55:26: error: missing binary operator before .. + #13731: Readline Patch is missing Author Information + #13741: genext2fs does not allow to set perms of root node + #13751: libopenssl (static): huge drop in performance in newer .. + #13771: package htop has undeclared dependency on host python + +2021.02.1, released April 7, 2021 + + Important / security related fixes. + + Dependencies: Explicitly detect and bail out if PATH contains + spaces or tabs. A number of packages fail to build in such + setups, so explicitly inform about this. + + utils/scanpypi: Explicitly use python3 for compatibility with + packages using python3 syntax in setup.py + + support/download: Fix tarball generation (from git/svn repos) + including symlinks pointing to ./. Fix svn download + for <1.9 clients or repos using CVS-style keywords. + + Meson: Use correct C++ host compiler (rather than C compiler) + + Toolchain: Add logic to work around binutils bug 21464, + affecting OpenRISC, and drop the now longer applicable bug + 19615 / 20006 handling. + + Python{,3}: Fix byte compiling python files with short (single + character before .py) file names. + + CPE meta data has been added for a large number of packages + + Defconfigs: Correct Beaglebone QT file system overlay + + Updated/fixed packages: alsa-utils, at91bootstrap3, + batman-adv, binutils, botan, bridge-utils, busybox, + ca-certificates, cog, coreutils, diffutils, dmidecode, + docker-cli, docker-containerd, docker-engine, efivar, + fetchmail, frr, genimage, git, gnutls, go, grub2, gst-omx, + gst1-devtools, gst1-libav, gst1-plugins-bad, + gst1-plugins-base, gst1-plugins-good, gst1-plugins-ugly, + gst1-python, gst1-rtsp-server, gst1-vaapi, gstreamer1, + gstreamer1-editing-services, haproxy, haserl, hwloc, + irqbalance, jasper, kexec, kexec-lite, kismet, kodi, libcurl, + libfreeglut, libgcrypt, libgeos, libglib2, libopenssl, libqmi, + libressl, libupnp, libvips, libvpx, libwebsockets, linux, + lldpd, logrotate, lttng-libust, lttng-tools, mariadb, mbedtls, + mcelog, mender, micropython, mongoose, mosquitto, mpd, + netsnmp, nodejs, openmpi, openssh, openvpn, opkg-utils, + optee-client, optee-test, perl, php, proftpd, protobuf, + python-django, python-jinja2, python-lxml, python-paramiko, + python-py, python-pygments, python-rpi-ws281x, python-urllib3, + python3, qt5webkit, qwt, rpm, samba4, sconeserver, sdl2, shim, + sqlcipher, squid, sysklogd, syslinux, sysvinit, tor, + transmission, tzdata, uboot, uclibc, upx, webkitgtk, + wireshark, wpebackend-fdo, wpewebkit, xen, zstd + + New packages: perl-parse-yapp + + Issues resolved (http://bugs.uclibc.org): + + #13516: utils/scanpypi: Failure when parsing diffoscope + #13576: Issues compiling buildroot for 5x86 + #13601: Gen image :Iappropriate ioctl error + #13616: tar file from git repository generation issue + #13641: glibc on raspberrypi + #13646: Gen image version 14 error : no sub -section title/.. + #13671: openSSH server closes connection before authentication.. + +2021.02, released March 6th, 2021 + + Various fixes. + + Toolchain: Correct Bootlin xtensa-lx60 dependencies + + Updated/fixed packages: asterisk, belle-sip, bustle, dhcpcd, + dovecot, dovecot-pigeonhole, gnuchess, gnuradio, + gst1-plugins-bad, haproxy, jasper, kismet, libebml, + libeXosip2, libgeos, libhtp, libjpeg, libopenssl, libshout, + libstrophe, mosquitto, openblas, openssh, perl, privoxy, + prosody, python-pyyaml, python3-pyyaml, quagga, redis, + rust-bin, sox, suricata, tpm2-pkcs11, uclibc-ng-test, ushare, + util-linux, wolfssl, wpa_supplicant + + Issues resolved (http://bugs.uclibc.org): + + #13501: 2021.02.rc2: Unicode not work on qt 5.15.2 + #13581: jpegsrc.v9d.tar.gz has changed hash + +2021.02-rc3, released February 27th, 2021 + + Fixes all over the tree. + + utils/scanpypi: Explicitly use python3 to ensure compatiblity + with packages having python3-only code in setup.py + + support/download: Ensure sub-second timestamp precision is + dropped when creating a tarball from a (subversion) repo, as + that is not representable in the PAX tar format + + Updated/fixed packages: babeltrace2, bind, botan, brltty, + cegui, elfutils, fakeroot, imagemagick, intel-mediasdk, + irqbalance, libglib2, libselinux, libusb, libuwsc, nodejs, + open62541, openldap, ply, python-aiohttp, python-django, + python3, qemu, readline, rust, screen, taglib, unbound, xterm + + Issues resolved (http://bugs.uclibc.org): + + #13516: utils/scanpypi: Failure when parsing diffoscope + #13541: 2021.02.rc2: irqbalance: Daemon couldn't be bound to... + #13561: Create a new user defining users-table.txt not working.. + +2021.02-rc2, released February 16th, 2021 + + Fixes all over the tree. + + Vulnerability scanning: cpedb.py: Drop CPE XML database + caching, as it did not speed up processing much and uses a lot + of additional memory. + pkg-stats: include information about ignored CVEs in JSON + output + + Fakeroot: Fix compatibility issue with glibc 2.33 + + Updated/fixed packages: can-utils, collectd, dnsmaqs, + docker-cli, docker-engine, ebtables, fakeroot, flashrom, + gdk-pixbuf, go, gst1-python, jasper, kodi, + kodi-inputstream-adaptive, lcms2, libgeos, libgpg-error, + libopenssl, mongoose, mpd, ne10, netopeer2, openblas, orc, + perl-gd, ply, postgresql, protobuf, subversion, tcpdump, + tzdate, uboot-tools, wireshark, webkitgtk, wpewebkit, xterm + + New packages: perl-extutils-pkgconfig + + Issues resolved (http://bugs.uclibc.org): + + #11706: binman (U-boot tool) cannot find libfdt "binman: No mod.. + +2021.02-rc1, released February 9th, 2021 + + Fixes all over the tree and new features. + + Toolchain: Default to binutils 2.35.2, add 2.36.1, drop + 2.33.x. Fix GCC 10.x ARC adc/sbc pattern handling, Update ARM + toolchains to 10.2-2020.11 release. + + Architectures: ARC: add support for generic HS48 processor, + PPC: drop PPC601 support, which was removed from Linux 5.10. + + Vulnerability scanning: The CVE checking logic has been + extended to match packages based on CPE (Common Platform + Enumeration) IDs for more accurate matching, and CPE + identifiers have been added for a large amount of packages. + + Download: Rework the tarball creation logic (E.G. when a + package is fetched from a git/svn repo) to no longer require a + host-tar <= 1.29. To differ between the old and the new + format, the new tarballs have gained a -br1 suffix + (--br1.tar.gz). + + SELinux support: A significant number of packages now pull in + the relevant refpolicy modules when enabled. + + New defconfigs: arrow avenger96, bananapi M1+, microchip + sam9x60ek, pine64 rock64 + + Removed defconfigs: QEMU ppc virtex-ml507 + + New packages: balena-engine, casync, coremark, coremark-pro, + datatables, datatables-buttons, datatables-fixedcolumns, + datatables-responsive, delve, frotz, gkrellm, inih, jszip, + libgeos, libiec61850, libmdbx, lualdap, neofetch, + nvidia-modprobe, open62541, perl-devel-cycle, perl-devel-size, + perl-math-int64, ply, popperjs, python-bleak, + python-defusedxml, python-pycups, python-pytest-asyncio, + python-typing-extensions, qcom-db410c-firmware, qt5coap, + qt5knx, qt5mqtt, quickjs, rcw-smarc-sal28, screenfetch, + ssdp-responder, tpm2-pkcs11, wqy-zenhei, xorcurses + + Removed packages: audiofile, boa, ipsec-tools, libupnp18, + ti-sgx-libgdbm + + Renamed rcw package to qoriq-rcw + + Issues resolved (http://bugs.uclibc.org): + + #13316: beaglebone_qt5_defconfig: PowerVR fails to start + #13416: dhcpcd start warning message: no such user dhcpcd + #13456: ccache prevents build + #13471: package/mpd/mpd.conf make use of path not created + #13506: BR2_PACKAGE_DHCPCD missing directory creation + +2020.11.4, released April 5th, 2021 + + Important / security related fixes. + + Dependencies: Explicitly detect and bail out if PATH contains + spaces or tabs. A number of packages fail to build in such + setups, so explicitly inform about this. + + utils/scanpypi: Explicitly use python3 for compatibility with + packages using python3 syntax in setup.py + + support/download: Fix tarball generation (from git/svn repos) + including symlinks pointing to ./ + + Meson: Use correct C++ host compiler (rather than C compiler) + + Updated/fixed packages: asterisk, at91bootstrap3, babeltrace2, + batman-adv, bind, ca-certificates, cegui, cog, diffutils, + docker-containerd, dovecot, dovecot-pigeonhole, efivar, + elfutils, fakeroot, git, gnuchess, gnuradio, gnutls, go, + grub2, haserl, i7z, imagemagick, intel-mediasdk, irqbalance, + jasper, kodi, libcurl, libebml, libeXosip2, libglib2, libhtp, + libjpeg, libopenssl, libqmi, libressl, libupnp, libuwsc, + libvips, lldpd, mariadb, mbedtls, mender, micropython, + mosquitto, netsnmp, nodejs, openblas, openldap, openmpi, + openssh, opkg-utils, optee-client, optee-test, perl, php, + privoxy, proftpd, prosody, protobuf, python-aiohttp, + python-django, python-lxml, python-pyyaml, python-rpi-ws281x, + python-typing-extensions, python3, quagga, qwt, redis, rpm, + sconeserver, screen, sox, sqlcipher, squid, suricata, + syslinux, sysvinit, tor, transmission, tzdata, uboot, unbound, + upx, util-linux, webkitgtk, wireshark, wolfssl, + wpebackend-fdo, wpewebkit, wpa_supplicant, zstd + + Issues resolved (http://bugs.uclibc.org): + + #13516: utils/scanpypi: Failure when parsing diffoscope + #13541: 2021.02.rc2: irqbalance: Daemon couldn't be bound to.. + #13576: Issues compiling buildroot for 5x86 + #13581: jpegsrc.v9d.tar.gz has changed hash + #13616: tar file from git repository generation issue + +2020.11.3, released February 17th, 2021 + + meson: Fix ccache detection handling when per-package builds + are used. + + Fakeroot: Fix compatibility issue with glibc 2.33 + + Updated/fixed packages: atftp, binutils, busybox, cereal, + chartjs, connman, dhcpcd, dnsmasq, docker-cli, docker-engine, + ebtables, fakeroot, flashrom, go, gst1-python, guile, + intel-mediadriver, intel-microcode, jasper, + kodi-inputstream-adaptive, lcms2, libbsd, libopenssl, + makedumpfile, memtester, mosquitto, ne10, openblas, orc, php, + postgresql, privoxy, pugixml, python-bottle, python-django, + python3, rauc, sox, stress-ng, subversion, tzdata, + uboot-tools, uclibc, webkitgtk, wireguard-linux-compat, + wireshark, wpa_supplicant, wpewebkit, xenomai, + xserver_xorg-server, xterm + + Issues resolved (http://bugs.uclibc.org): + + #11706: binman (U-boot tool) cannot find libfdt "binman: No mod.. + #13506: BR2_PACKAGE_DHCPCD missing directory creation + +2020.11.2, released January 31st, 2021 + + Important / security related fixes. + + Download: Ensure git submodules are correctly fetched if + enabled for a package with _GIT_SUBMODULES = YES and the + host variant is downloaded first. + + Toolchain: Mark CodeSourcery Aarch64 2014.11 toolchain as not + having libatomic. Bootlin PowerPC-440 FP toolchain updated for + SecurePLT fix. + + pkg-stats: Fix python 3.8+ deprecation warning. + + meson: Ensure ccache is not detected and used, as it may + conflict with the ccache handling in Buildroot. + + Updated/fixed packages: barebox, boost, brltty, dbus, + docker-containerd, dovecot, dovecot-pigeonhole, + environment-setup, firmware-imx, gcc, gerbera, glibc, + gmrender-resurrect, igd2-for-linux, kodi-pvr-zattoo, libclc, + libfuse3, libllcp, libodb-mysql, libtorrent-rasterbar, + libupnp, lpc32xxcdl, luarocks, mpd, multipath-tools, mutt, + nfs-utils, nodejs, openjpeg, openldap, opentracing-cpp, + openvpn, p11-kit, paho-mqtt-c, php, poppler, postgresql, + python3, redis, resiprocate, rpm, runc, socat, sslh, sudo, + sunxi-mali-mainline-driver, syslog-ng, systemd, tini, + tpm2-tss, trace-cmd, tzdata, uboot-tools, uhd, ushare, + util-linux, vlc, wavpack, wireguard-linux-compat, wolfssl, + xapp_xload, xorriso, zic + + Removed packages: libupnp18 + + Issues resolved (http://bugs.uclibc.org): + + #13471: package/mpd/mpd.conf make use of path not created + +2020.11.1, released December 27th, 2020 + + Important / security related fixes. + + Infrastructure: + - cmake: fix host ccache handling for CMake 3.19 + - meson: Forcibly disable binary stripping for + target builds, enable for host builds + - golang: Fix HOST / TARGET directories for per-package builds + + Defconfigs: Beaglebone Qt5: Fix ti-sgx related issues + + Updated/fixed packages: apitrace, arm-trusted-firmware, + ca-certificates, cryptopp, dhcpcd, dtv-scan-tables, + flare-engine, ghostscript, go, haproxy, imagemagick, + imx-gpu-viv, jasper, kismet, libcurl, libglib2, libhtp, + libopenssl, libressl, libuv, libuvw, lua, mbedtls, mongodb, + mutt, ncurses, netsnmp, nodejs, opencv3, openldap, opkg-utils, + paho-mqtt-c, python-crc16, python-lxml, python-pyparsing, + python-pyqt5, qt5base, rauc, shadowsocks-libev, sqlcipher, + suricata, ti-sgx-demos, tinycbor, uclibc-ng-test, unbound, + webkitgtk, wpewebkit, wireshark, x11vnc, xen, + xserver_xorg-server + + Issues resolved (http://bugs.uclibc.org): + + #13316: beaglebone_qt5_defconfig: PowerVR fails to start + #13416: dhcpcd start warning message: no such user dhcpcd + +2020.11, released December 2nd, 2020 + + Various fixes. + + Updated/fixed packages: bustle, docker-containerd, gnuplot, + gst1-plugins-good, jemalloc, kmsxx, libcap, libplist, + libuhttpd, libxkbcommon, lynx, mariadb, netsurf, privoxy, + s390-tools, setserial, xserver_xorg-server + + Issues resolved (http://bugs.uclibc.org): + + #13276: libcap builds libcap.pc incorrectly + +2020.11-rc3, released November 28th, 2020 + + Fixes all over the tree. + + Updated/fixed packages: c-ares, cage, cdrkit, + dovecot-pigeonhole, efl, gvfs, harfbuzz, jpeg-turbo, + libcamera, libkrb5, libpam-tacplus, libxkbcommon, minidlna, + modem-manager, monkey, musl, ncurses, numactl, openntpd, + openrc, postgresql, proftpd, python-flask-cors, python-pip, + qemu, raptor, redis, slirp, spandsp, thermald, uhd, vsftpd, + webkitgtk, wireless-regdb, wlroots, wpewebkit, xen, xinetd, + xorriso + + Issues resolved (http://bugs.uclibc.org): + + #13296: host-libcap failed to build + #13331: openrc-0.42.1 compilation failure on gcc-10 + #13336: thermald-1.9.1 compilation failure with musl 1.2.1 + #13341: Mistake in /etc/init.d/S70vsftpd + +2020.11-rc2, released November 14th, 2020 + + Fixes all over the tree. + + cve-checker script dropped. Instead the pkg-stats logic has + been extended to be able to only generate stats for the + configured packages using 'make pkg-stats' + + Removed defconfigs: rock64 + + Updated/fixed packages: apparmor, asterisk, bitcoin, busybox, + cups-filters, cryptsetup, davfs2, domoticz, elf2flt, freetype, + ghostscript, glmark2, go, gst1-plugins-bad, guile, jsoncpp, + libcap, libexif, libnetfilter_conntrack, libpam-tacplus, + libsigrokdecode, linux-backports, linux-firmware, mesa3d, + modem-manager, mp4v2, oniguruma, openntpd, python3, + python-lmdb, python-m2crypto, rauc, s390-tools, slirp, + stress-ng, suricata, systemd, tcpdump, tmux, tor, webkitgtk, + wireguard-linux-compat, wpewebkit, xen + + Issues resolved (http://bugs.uclibc.org): + + #13281: Raspberry Pi 2: overlays folder missing in genimage-ra.. + #13291: BR2_DL_DIR is ignored when creating defconfig + #13306: wpewebkit build problem in 2020-11-rc1 + +2020.11-rc1, released November 4th, 2020 + + Fixes all over the tree and new features. + + Architectures: Support for IBM s390x + + Toolchain: use Secure-PLT rather than BSS-PLT for PowerPC + 32. Binutils 2.35.1 added, now defaulting to 2.34. ARC + 2020.09-release toolchain. GCC 7.x dropped. RISC-V support for + uclibc-ng. Support for Bootlin external toolchains. + + SELinux support improvements: File security contexts are now + set when the file systems are created, so there is no need to + run restorecon on first boot / read only rootfs is supported. + An optimized / stripped refpolicy SELinux policy is now + used. Packages can enable additional refpolicy modules using + _SELINUX_MODULES. + + support/scripts/cve-checker: Utility script to check for known + CVEs in just the packages enabled in a Buildroot configuration + rather than all packages, by passing the output of 'make + show-info' to it. + + Go: Modules handling. The module name must be specified using + _GOMOD. + + BR2_EXTERNAL: Support for defining skeleton and init system + packages in external trees. + + meson: Correct SDK cross-compilation.conf file when + per-package builds were used to build SDK. + + systemd: Use /run rather than /var/run for PID files in units. + + Fakeroot scripts (BR2_ROOTFS_POST_FAKEROOT_SCRIPT) are now run + after all finalization hooks (including pre-rootfs) to ensure + they can override any late configuration done by packages. + + support/script/pycompile: Rework logic to ensure .pyc files + contain absolute target paths, fixing code inspection at + runtime when executed with cwd != '/'. + + support/scripts/setlocalversion: Correct Mercurial output to + match behaviour with Git. + + support/scripts/apply-patches.sh: Use patch + --no-backup-if-mismatch, so we no longer blindly have to + remove *.orig files after patching, fixing issues with + packages containing such files. + + New defconfigs: Acer chromebook elm, Friendlyarm nanopc-t4 and + nanopi-m4, Hardkernel odroid-c2, Kontron SMARC-sAL28, NXP + imx8mqevk, Orangepi RK3399 and zero+, PCengines APU2, Pine64 + rockpro64, QEMU s390x, Raxda rockpi-n8, + + New packages: altera-stapl, asn1c, babeltrace2, cukinia, + easyframes, environment-setup, frr, graphicsmagick, htpdate, + ipcalc, libbacktrace, libblockdev, libbytesize, librelp, + libuev, makedumpfile, meson-tools, mg, mrp, multipath-tools, + netcalc, odroidc2-firmware, php-xdebug, python-aiofiles, + python-ansicolors, python-boto3, python-botocore, + python-bsdiff4, python-crayons, python-iniconfig, + python-intelhex, python-ipdb, python-jmespath, + python-m2crypto, python-opcua-asyncio, python-packaging, + python-piexif, python-pluggy, python-pytest, + python-s3transfer, python-xmodem, qprint, qt5lottie, + qt5remoteobjects, re2, redir, s390-tools, sentry-cli, + sentry-native, timescaledb, tinyhttpd, uhd, uredir, watchdog, + wayland-utils, weston-imx + + Removed packages: amd-catalyst, bellagio, gqview, libcroco, + nvidia-tegra23, opencv + + Issues resolved (http://bugs.uclibc.org): + + #11811: lsblk (util-linux) should depend on libudev if available + #11931: Bugs in support/scripts/apply-patches.sh + #12301: systemd-journal-gatewayd: config options broken + #12911: usb_modeswitch installation race condition + #13236: Can't compile linux 5.4.8 (with gcc 10 on host) + #13286: The system hangs in vmware workstation on the line.. + +2020.08.3, released December 27th, 2020 + + Important / security related fixes. + + Infrastructure: + - cmake: fix host ccache handling for CMake 3.19 + - meson: Forcibly disable binary stripping for + target builds, enable for host builds + - golang: Fix HOST / TARGET directories for per-package builds + + Defconfigs: Beaglebone Qt5: Fix ti-sgx related issues + + Updated/fixed packages: apitrace, arm-trusted-firmware, + bustle, c-ares, ca-certificates, cage, cdrkit, cryptopp, + dhcpcd, docker-containerd, dtv-scan-tables, flare-engine, + ghostscript, gvfs, haproxy, imagemagick, imx-gpu-viv, jasper, + jemalloc, jpeg-turbo, libcamera, libcap, libcurl, libglib2, + libgpiod, libkrb5, libopenssl, libplist, libressl, libuv, + libuvw, lynx, mariadb, mbedtls, minidlna, mongodb, monkey, + musl, mutt, ncurses, netsnmp, netsurf, nodejs, opencv3, + openldap, openrc, opkg-utils, paho-mqtt-c, php, privoxy, + proftpd, python-crc16, python-flask-cors, python-lxml, + python-pip, python-pyparsing, python-pyqt5, qemu, qt5base, + raptor, rauc, ruby, setserial, shadowsocks-libev, slirp, + sqlcipher, thermald, ti-sgx-demos, tinycbor, unbound, vsftpd, + wireless-regdb, wireshark, wlroots, x11vnc, xen, xinetd, + xserver_xorg-server + + Issues resolved (http://bugs.uclibc.org): + + #13276: libcap builds libcap.pc incorrectly + #13316: beaglebone_qt5_defconfig: PowerVR fails to start + #13336: thermald-1.9.1 compilation failure with musl 1.2.1 + #13341: Mistake in /etc/init.d/S70vsftpd + #13416: dhcpcd start warning message: no such user dhcpcd + +2020.08.2, released November 16th, 2020 + + Important / security related fixes. + + Toolchain-wrapper: Pass -fno-tree-loop-distribute-patterns to + fix kernel build on microblaze with gcc 10.x when + optimizations are enabled. + + Updated/fixed packages: apparmor, argp-standalone, asterisk, + bandwidthd, binutils, bitcoin, busybox, collectd, cryptsetup, + cups-filters, darkhttpd, davfs2, docker-cli, + docker-containerd, docker-engine, dovecot-pigeonhole, + dvb-apps, elf2flt, fastd, fbset, fbtft, freetype, gcc, + ghostscript, grpc, gst1-plugins-bad, jsoncpp, + kernel-module-imx-gpu-viv, keepalived, kmscube, libass, + libexif, libiqrf, libnetfilter_conntrack, libpam-tacplus, + libraw, linux-backports, linux-firmware, lzlib, mp4v2, + netsnmp, nginx, numactl, oniguruma, opencv3, openntpd, + patchelf, php, pistache, postgresql, python-pyqt5, qemu, + qt5base, rauc, redis, samba4, slirp, systemd, tcpdump, + tinyproxy, tmux, tor, waf, webkitgtk, wine, + wireguard-linux-compat, wireshark, wpewebkit, xen, xorriso, + xvisor, zeromq, zxing-cpp + + Issues resolved (http://bugs.uclibc.org): + + #11931: Bugs in support/scripts/apply-patches.sh + +2020.08.1, released October 12th, 2020 + + Important / security related fixes. + + Fixes for various compilation issues with GCC 10.x. + + meson: Correct SDK cross-compilation.conf file when + per-package builds were used to build SDK. + + systemd: Use /run rather than /var/run for PID files in units. + + Toolchain: use Secure-PLT rather than BSS-PLT for PowerPC 32. + + Fakeroot scripts (BR2_ROOTFS_POST_FAKEROOT_SCRIPT) are now run + after all finalization hooks (including pre-rootfs) to ensure + they can override any late configuration done by packages. + + support/script/pycompile: Rework logic to ensure .pyc files + contain absolute target paths, fixing code inspection at + runtime when executed with cwd != '/'. + + support/scripts/setlocalversion: Correct Mercurial output to + match behaviour with Git. + + support/scripts/apply-patches.sh: Use patch + --no-backup-if-mismatch, so we no longer blindly have to + remove *.orig files after patching, fixing issues with + packages containing such files. + + fs/jffs2: Now correctly handles xattrs + + Updated/fixed packages: acpica, afboot-stm32, alsa-utils, + apparmor, bandwidthd, barebox, bash, bison, brotli, + cifs-utils, cups, dhcpcd, dhcpdump, docker-cli, docker-engine, + ecryptfs-utils, efl, fail2ban, fbterm, ffmpeg, fontconfig, + freetype, gcc, gdb, ghostscript, gnupg2, gnutls, go, gqview, + gst1-plugins-base, gst1-plugins-ugly, ipmitool, jbig2dec, + kexec, lcdproc, libcamera, libhtp, libnetconf2, libraw, + libssh, libxml2, libxml-parser-perl, libzip, linux-headers, + live555, localedef, ltp-testsuite, lua, matchbox, memcached, + memtester, mesa3d, meson, minidlna, mongodb, mongrel2, motion, + mraa, mtd, musepack, neardal, netatalk, netperf, netsniff-ng, + nginx, nodejs, nss-pam-ldapd, open-plc-utils, openswan, + opentyrian, openvmtools, php, postgresql, python, + python-aenum, python-cycler, python-engineio, python-fire, + python-pymodbus, python-scapy, python-semver, + python-sentry-sdk, python-socketio, python-texttable, + python-tinyrpc, python-txtorcon, python3, qt5base, quagga, + read-edid, redis, rsh-redone, runc, samba4, socketcand, + strace, supertux, suricata, systemd, ti-utils, trinity, + uclibc, usb_modeswitch, vlc, vsftpd, wampcc, + wayland-protocols, wireguard-linux-compat, wireshark, wlroots, + wolfssl, w_scan, xerces, xfsprogs, xdriver-xf86-video-ati, + xserver_xorg-server, ympd, zeromq, zlib-ng, zstd + + Issues resolved (http://bugs.uclibc.org): + + #12911: usb_modeswitch installation race condition + #13236: Can't compile linux 5.4.8 (with gcc 10 on host) + +2020.08, released September 1st, 2020 + + Various fixes. + + Updated/fixed packages: am33x-cm3, avahi, bluez-tools, + busybox, chocolate-doom, collectd, dhcp, docker-cli, domoticz, + gobject-introspection, graphite2, haproxy, ibm-sw-tpm2, + imagemagick, libeXosip2, libressl, lxc, mbedtls, menu-cache, + mongodb, mosquitto, nvidia-driver, paho-mqtt-c, pixz, + postgresql, python-django, rtty, squid, stress-ng, systemd, + trousers, uclibc, wireshark, wolfssl, zbar + +2020.08-rc3, released August 28th, 2020 + + Fixes all over the tree. + + Infrastructure: Ensure RPATH entries that may be needed for + dlopen() are not dropped by patchelf. + + Toolchain: Drop old GCC 6 based external Sourcery AMD64 + toolchain. + + Updated/fixed packages: assimp, davfs2, dillo, glibc, + gnuradio, hostapd, ibm-sw-tpm2, ipmitool, json-c, libroxml, + linux, mender, netopeer2, openal, openjpeg, python-matplotlib, + ripgrep, shadowsocks-libev, trousers, xlib_libX11, + xserver_xorg-server + + Issues resolved (http://bugs.uclibc.org): + + #13141: Target-finalize fail with "depmod: ERROR: Bad version passed" + +2020.08-rc2, released August 24th, 2020 + + Fixes all over the tree, including a number of fixes for + compilation with GCC-10. + + Toolchain: Disallow building uClibc-ng for RISC-V 64-bit, + because of issues with a missing __riscv_flush_icache() + implementation. + + Defconfigs: CI20: Use mainline Linux and U-boot. Update + Microchip sama5d27_wlsom1_ek_mmc_dev to use bluez5-utils + instead of (the removed) legacy bluez-utils + + Updated/fixed packages: 18xx-ti-utils, aircrack-ng, apache, + atest, bandwidthd, bellagio, bind, bird, bluez-alsa, boost, + c-periphery, capnproto, chrony, collectd, cpio, cvs, + dieharder, domoticz, dovecot, dovecot-pigeonhole, drbd-utils, + dump1090, efl, elixir, f2fs-tools, feh, fluidsynth, fping, + gdbm, gdk-pixbuf, ghostscript, gst1-plugins-bad, + gstreamer1-editing-services, htop, ibm-sw-tpm2, ifplugd, + iftop, igd2-for-linux, ima-evm-utils, iprutils, iputils, + keepalived, kmsxx, libabseil-cpp, libcamera, libcurl, + libfuse3, libnss, librtlsdr, libubox, libunwind, live555, + lttng-tools, luabitop, mender-artifact, minizip, + mjpg-streamer, mpd, mpv, mtd, ncftp, open-lldp, openal, + opencv, opencv3, openfpgaloader, optee-os, owfs, php, + pistache, prosody, pulseview, python-decorator, + python-gunicorn, python-rpi-gpio, python-spidev, + python3-decorator, python3-mako, python3-pyselftools, qt5, + qt5webengine, rauc, redis, ripgrep, rtl8188eu, rtl8821au, + setools, smstools3, supertux, tftpd, tpm2-abrmd, + wpa_supplicant, xen, xlib_libX11, xserver_xorg-server + + New packages: python3-cython, python3-pycryptodomex + + Issues resolved (http://bugs.uclibc.org): + + #12876: nodejs fails to build when host-icu has been built before + #13111: python-gunicorn: missing dependency on python-setuptools + #13121: wpa_supplicant fails to build without libopenssl enabled + #13146: raspberrypi3_defconfig: "Inappropriate ioctl for device".. + #13156: package live555 new license + #13166: python-rpi-gpio: does not work against aarch64, unint.. + +2020.08-rc1, released August 6th, 2020 + + Toolchain: + + - GCC 10.x added, GCC 9.x is the default + - binutils 2.34 added, binutils 2.33 is the default, binutils + 2.31 removed + - glibc updated to 2.31 + - ARC toolchain components updated to 2020.03-release. + - Enable uClibc-ng usage for RISC-V 64-bit + + Infrastructure: + + - qmake-package was fixed to be compatible with + BR2_PER_PACKAGE_DIRECTORIES + - complete rewrite of the Gitlab CI Yaml configuration file, + now generated directly by the Gitlab CI pipeline itselfs + + Misc: + + - cargo and cargo-bin packages removed, as cargo is now part + of Rust itself + + Filesystem: ubinize configuration files can now use + BINARIES_DIR to refer to the $(O)/images directory. + + New packages: bitwise, earlyoom, fuse-overlayfs, gloox, + kodi-pvr-octonet, kodi-pvr-zattoo, libabseil-cpp, libcutl, + libnids, libnpupnp, libodb, libodb-boost, libodb-mysql, + libodb-pgsql, mbpfan, netopeer2, odb, parprouted, + python-colorzero, python-gpiozero, python-pybind, python-yatl, + python3-decorator, qt5quicktimeline, resiprocate, ttyd, + unclutter-xfixes, urandom-scripts, + + New defconfigs: bananapi_m2_zero, freescale_imx8mnevk, + globalscale_espressobin, imx6ullevk, + microchip_sama5d27_wlsom1_ek, rock_pi_4, rock_pi_n10 + + Removed packages: cargo, cargo-bin, + kodi-peripheral-steamcontroller + + Issues resolved (http://bugs.uclibc.org): + + #12941: Python GObject fails to build when using BR2_PER_PACKAGE_DIRECTORIES + #12946: Grub: Decompressor is too big. + #12986: Mtools: Error converting to codepage 850 + #13001: openjdk-bin replaces libfreetype.so from host-freetype + #13011: Incorrect selection of gcc version + #13021: Minor code error when building granite-0.4.1 + #13026: rpi-firmware: must not rename start files + #13046: Optimize for fast -Ofast is not compliant + #13081: host-e2fsprogs attempts to create udev rules.d on build host if not exists + #13101: BR audit2allow support + +2020.05.3, released October 12th, 2020 + + Important / security related fixes. + + meson: Correct SDK cross-compilation.conf file when + per-package builds were used to build SDK. + + systemd: Use /run rather than /var/run for PID files in units. + + Toolchain: use Secure-PLT rather than BSS-PLT for PowerPC 32. + + Fakeroot scripts (BR2_ROOTFS_POST_FAKEROOT_SCRIPT) are now run + after all finalization hooks (including pre-rootfs) to ensure + they can override any late configuration done by packages. + + support/script/pycompile: Rework logic to ensure .pyc files + contain absolute target paths, fixing code inspection at + runtime when executed with cwd != '/'. + + support/scripts/setlocalversion: Correct Mercurial output to + match behaviour with Git. + + support/scripts/apply-patches.sh: Use patch + --no-backup-if-mismatch, so we no longer blindly have to + remove *.orig files after patching, fixing issues with + packages containing such files. + + Updated/fixed packages: alsa-utils, apparmor, avahi, + bandwidthd, barebox, bash, bison, brotli, busybox, cifs-utils, + cryptsetup, cups, dhcpcd, dhcpdump, docker-cli, docker-engine, + ecryptfs-utils, efl, fail2ban, freetype, gcc, gdb, + ghostscript, gnutls, go, graphite2, gst1-plugins-base, + gst1-plugins-ugly, imagemagick, ipmitool, jbig2dec, libhtp, + libraw, libssh, libxml2, libxml-parser-perl, linux-headers, + localedef, lua, mbedtls, memcached, mesa3d, meson, minidlna, + mongodb, nginx, nodejs, nss-pam-ldapd, openvmtools, + paho-mqtt-c, php, postgresql, python, python-aenum, + python-django, python-engineio, python-fire, python-pymodbus, + python-scapy, python-semver, python-sentry-sdk, + python-socketio, python-texttable, python-tinyrpc, + python-txtorcon, python3, qt5base, rsh-redone, runc, samba4, + strace, supertux, suricata, systemd, uclibc, usb_modeswitch, + vlc, vsftpd, wayland-protocols, wireguard-linux-compat, + wireshark, wlroots, wolfssl, xserver_xorg-server, ympd, + zeromq, zstd + + Issues resolved (http://bugs.uclibc.org): + + #12911: usb_modeswitch installation race condition + #13251: cryptsetup does not work on branch 2020.02 following.. + +2020.05.2, released August 29th, 2020 + + Important / security related fixes. + + Infrastructure: Ensure RPATH entries that may be needed for + dlopen() are not dropped by patchelf. + + BR_VERSION_FULL/setlocalversion (used by make print-version + and /etc/os-release): Properly handle local git tags + + Updated/fixed packages: apache, assimp, at91bootstrap3, bind, + boost, busybox, capnproto, cegui, chrony, collectd, cpio, + cryptsetup, cups, cvs, dbus, docker-engine, domoticz, dovecot, + dovecot-pigeonhole, dropbear, efl, elixir, f2fs-tools, ffmpeg, + gd, gdk-pixbuf, ghostscript, glibc, gnuradio, grub2, + gst1-plugins-bad, gstreamer1-editing-services, hostapd, + ibm-sw-tpm2, iputils, jasper, json-c, libcurl, libressl, + libwebsockets, linux, live555, mesa3d, mongodb, mosquitto, + mpv, nodejs, opencv, opencv3, openfpgaloader, openjpeg, + patchelf, perl, php, postgresql, prosody, python-django, + python-gunicorn, python-matplotlib, ripgrep, rtl8188eu, + rtl8821au, ruby, shadowsocks-libev, squid, systemd, + tpm2-abrmd, tpm2-tools, trousers, uboot, webkitgtk, wireshark, + wolfssl, wpa_supplicant, wpewebkit, xen, xlib_libX11, + xserver_xorg-server + + Issues resolved (http://bugs.uclibc.org): + + #12876: nodejs fails to build when host-icu has been built before + #13111: python-gunicorn: missing dependency on python-setuptools + #13121: wpa_supplicant fails to build without libopenssl enabled + #13141: Target-finalize fail with "depmod: ERROR: Bad version passed" + #13156: package live555 new license + +2020.05.1, released July 25th, 2020 + + Important / security related fixes. + + Toolchain: + - Make external toolchain version check also work for + toolchains configured with --with-gcc-major-version-only + + - Do not handle SOURCE_DATE_EPOCH in toolchain wrapper if the + compiler supports it, fixing an issue with precompiled + headers + + - Ensure debug libs from external toolchains are not installed + into target if debugging is disabled + + Download: + - Correct reproducibility issue in handling of git submodules + for older git versions. + + - Fix file locking over NFS + + fs: Ensure cpio archive element order is reproducible + + Br2-external: Fix error reporting for invalid br2-external trees + + Per-package: + - Fix an issue with python3 sysconfig data not getting + correctly expanded + + - Fix per-package building for packages using the qmake + infrastructure + + Updated/fixed packages: a10disp, asterisk, bind, brltty, + cdrkit, clamav, cryptodev-linux, dbus, docker-cli, + docker-engine, dvb-apps, e2fsprogs, exim, exiv2, freerdp, gdb, + gdk-pixbuf, gerbera, gnutls, go, granite, grub2, gssdp, + gst1-plugins-good, gst1-plugins-ugly, gupnp, intel-microcode, + iproute2, irrlicht, iwd, jq, kodi, libcamera, libcec, + libconfuse, libcurl, libevdev, libhttpserver, libmicrohttpd, + libnss, libressl, libvncserver, libxml2, libxmlrpc, lxc, + mbedtls, mediastreamer, mesa3d, meson, minizip, mongodb, + mtools, mutt, nano, network-manager, nghttp2, ngircd, nodejs, + ntp, open-plc-utils, open2300, openjdk-bin, openssh, + oracle-mysql, paho-mqtt-c, pango, php, poco, prosody, putty, + python-greenlet, python-urllib3, python-validators, python3, + readline, redis, rpi-firmware, rtl8821au, samba4, sdl2, + sqlite, squid, strace, sunxi-mali-mainline-driver, syslog-ng, + systemd, tcpreplay, tinydtls, upmpdcli, upx, vlc, webkitgtk, + wireguard-linux-compat, wireshark, wpebackend-fdo, wpewebkit, + x11vnc, znc, zstd + + Issues resolved (http://bugs.uclibc.org): + + #12941: Python GObject fails to build when using BR2_PER_PACKAGE_.. + #12946: Grub: Decompressor is too big. + #12986: Mtools: Error converting to codepage 850 + #13001: openjdk-bin replaces libfreetype.so from host-freetype + #13011: Incorrect selection of gcc version + #13021: Minor code error when building granite-0.4.1 + #13026: rpi-firmware: must not rename start files + #13031: nodejs: RangeError at new ArrayBuffer() + #13046: Optimize for fast -Ofast is not compliant + +2020.05, released June 1st, 2020 + + Various fixes. + + Updated/fixed packages: arm-trusted-firmware, gcc, mp4v2, fmc, + fmlib, glib-networking, libusb-compat, linux, qt5webengine, + sysrepo, wampcc, xen + +2020.05-rc3, released May 29th, 2020 + + Fixes all over the tree. + + Infrastructure: Support checking download hashes for packages + coming from Subversion. + + Defconfigs: Increase boot partition size to 64MB for Freescale + boards to allow space for bigger kernels. + + Updated/fixed packages: audit, bind, dovecot, efl, erlang, + ffmpeg, fio, gerbera, gnupg, leveldb, lrzip, ltrace, matio, + mesa3d, mp4v2, prosody, qemu, qt5declarative, speexdsp, + systemd, tremor, uboot-tools, unbound, wireshark + + Removed packages: wiringpi + + Issues resolved (http://bugs.uclibc.org): + + #12361: Init system (systemd) kills login on Raspberry Pi Zero + #12686: recipe for target 'install_dev' failed (libcrypto.so..) + +2020.05-rc2, released May 22nd 2020 + + Fixes all over the tree. + + U-Boot: Support building with Python 3.x instead of Python + 2.x. Since U-Boot 2020.01, various U-Boot build scripts use + Python 3.x instead of Python 2.x, so add an option to pull in + host-python3 rather than host-python. Also fix a number of + defconfigs to use this new option. + + Updated/fixed packages: apparmor, binutils, bison, brltty, + c-icap, cegui, checkpolicy, clamav, crda, cvs, docker-cli, + docker-engine, domoticz, elf2flt, exfatprogs, fakeroot, + ffmpeg, freerdp, gcc, glibc, gnuconfig, irrlicht, kmod, + libexif, libpam-tacplus, libssh2, libv4l, libvncserver, + localedef, lrzip, mariadb, matchbox, mbuffer, mesa3d, + mesa3d-headers, meson, netsniff-ng, openldap, openocd, + optee-os, p7zip, paho-mqtt-c, php, piglit, pigz, + python-argon2-cffi, python-attrs, python-future, + python-markdown, python-pycryptodomex, python-pyqt5, qt5base, + rpi-firmware, rustc, squashfs, squid, stella, suricata, + systemd, uacme, uclibc, util-linux, vboot-utils + + New packages: python3-pyelftools + + Removed packages: ezxml, mtdev2tuio, python-pycrypto + + Issues resolved (http://bugs.uclibc.org): + + #10551: PowerPC SPE and Musl + #12256: package tar is outdated (1.29 is 3 years old) + #12271: python-iptables runtime dependencies + #12321: host-generic-package: PKG_DL_OPTS not used for host package + #12391: CMake-based host package fails to include output/host/include + #12431: ethernet no detected on nanopi neo 2 + #12521: RISCV RV32IA selected, RV64GC output + #12586: avahi failure + #12596: host-e2fsprogs: tune2fs incompatibility on older glibc.. + #12611: ntp hash is not matching with upstream 4.2.8p13 + #12626: PHP missing header files within 2020.02 + #12631: glibc support Power-PC SPE + #12656: bison fails to relocate with relocate-sdk.sh + #12661: cups problems in buildroot + #12686: recipe for target 'install_dev' failed (libcrypto.so:.. + #12691: host-rust build fails + #12761: Buildroot fails when building GCNano binaries for the STM.. + #12786: Systemd spawns two getty processes when the getty port.. + #12806: There are multiple issues in buildroot that faults cups.. + #12826: nodejs-12.16.1: error: 'uv_sleep' was not declared in.. + #12831: RPI-firmware package: DTB-overlay dependency + #12836: libunwind: package does not show up in menuconfig for.. + #12841: util-linux/sfdisk 2.35.1 fails on sector-size header + #12866: should we be disabling bash executable path caching? + #12886: GMP built in wrong order (?) + #12891: QEMU, libvirt-bin, qemu-kvm Package Support required + #12901: GStreamer doesn't build on 2020-05 rc1 with GObject.. + #12906: qt PrefixPath is wrong on 2020.05-rc1 + #12921: nodejs-12.16.1: error: overriding 'virtual icu_65::.. + +2020.05-rc1, released May 7th 2020 + + Addition of support for gobject-introspection: both the + gobject-introspection package itself, but also introspection + support was enabled in a number of other packages. + + Support for Qt 5.6 was dropped as its support was dropped + upstream, only one version of Qt is supported at the moment: + Qt 5.14.2. + + Addition of support for the apparmor Linux security module, by + adding the necessary user-space packages. + + Addition of a qmake package infrastructure, now used by most + Qt-related packages. + + The Luarocks package infrastructure has been extended to + support build host packages. + + The package infrastructure was improved to allow each package + to indicate the Linux kernel configuration options it needs. + + Addition of support for generating filesystem images using the + EROFS filesystem. + + The logic that calculates the list of files installed by each + package was reworked to be compatible with the top-level + parallel build functionality. + + Addition of a package for a pre-compiled ARM32 bare-metal + toolchain, which can be used to build ARM32 code in ARM64 + configurations, such as firmware/bootloader code. + + The Qemu defconfigs are now boot-tested in Qemu as part of the + Gitlab continuous integration. + + Toolchain: gcc 9.x bumped to 9.3.0, gcc 8.x bumped to 8.4.0, + gdb bumped to 8.3.1. + + New packages: apcupsd, apparmor, arm-gnu-a-toolchain, bearssl, + belle-sip, belr, cage, chartjs, erofs-utils, exfatprogs, + gobject-introspection, ibm-sw-tpm2, imx-seco, jbig2dec, + libapparmor, libiberty, libfuse3, libtextstyle, libudfread, + libuhttpd, libuwsc, lua-lyaml, matio, mbuffer, netdata, + openfpgaloader, perl-i18n, perl-locale-maketext-lexicon, + perl-lwp-protocol-https, + perl-mojolicious-plugin-authorization, + perl-mojolicious-plugin-cspheader, + perl-mojolicious-plugin-i18n, + perl-mojolicious-plugin-securityheader, perl-mozilla-ca, + perl-path-class, pistache, pkcs11-helper, prelink-cross, + python-argon2-cffi, python-canopen, python-cbor2, + python-filelock, python-flatbuffers, python-greenlet, + python-modbus-tk, python-pyalsa, python-pysftp, python-regex, + python-snappy, rtty, tinyproxy, udev-gentoo-scripts, unbound, + vuejs, wlroots. + + New defconfigs: freescale_imx6ullevk, freescale_imx8qmmek, + nanopi_neo4, nanopi_r1, nitrogen8mm, nitrogen8mn, olpc_xo1, + olpc_xo175, roc_rk3399_pc, stm32mp157a_dk1, zynq_qmtech + + Issues resolved (http://bugs.uclibc.org): + + #10386: Add an option to put all compiled executables that + show up on target/ in staging/ as well + #11866: iniramfs file system fails to boot using Grub on EFI x86_64 + #12666: Doesn't pick up a custom bash profile + #12696: Uboot 2020.01 Problem loading Linux kernel on Nano PI NEO + #12701: [patch] wpa_supplicant must depend on openssl + #12711: host-localedef 2.30-20 fails to compile on fedora 32 (gcc 10.0.1) + #12716: bio.h not found + #12726: systemctl preset-all failed for ctrl-alt-del.target + #12731: rtl8188eu not buildung for banana pi M1 (glib, systemd, 4.18.12) + #12746: "sysdig" package description points to + http://sysdig.org, which bounces to malware site + #12751: OpenJdk package installation issues on target + #12796: Update OpenSSL to Version 1.1.1g to patch CVE-2020-1967 + #12811: bootstrap stuck and no login prompt + +2020.02.12, released April 5, 2021 + + Important / security related fixes. + + Dependencies: Explicitly detect and bail out if PATH contains + spaces or tabs. A number of packages fail to build in such + setups, so explicitly inform about this. + + utils/scanpypi: Explicitly use python3 for compatibility with + packages using python3 syntax in setup.py + + support/download: Fix tarball generation (from git/svn repos) + including symlinks pointing to ./ + + Meson: Use correct C++ host compiler (rather than C compiler) + + Updated/fixed packages: asterisk, batman-adv, bind, + ca-certificates, docker-containerd, dovecot, + dovecot-pigeonhole, diffutils, efivar, git, gnuchess, gnutls, + grub2, fakeroot, haserl, imagemagick, irqbalance, jasper, + kodi, libcurl, libebml, libglib2, libjpeg, libopenssl, + libupnp, libvips, lldpd, mariadb, mbedtls, mosquitto, nodejs, + netsnmp, nettle, openldap, openmpi, openssh, opkg-utils, perl, + php, privoxy, prosody, protobuf, python-aiohttp, + python-django, python-lxml, python-pyyaml, python-rpi-ws281x, + python3, redis, rpm, sconeserver, screen, sox, sqlcipher, + squid, sysvinit, tor, transmission, tzdata, uboot, upx, + util-linux, wireshark, wolfssl, wpa_supplicant, zstd + + Issues resolved (http://bugs.uclibc.org): + + #13516: utils/scanpypi: Failure when parsing diffoscope + #13541: 2021.02.rc2: irqbalance: Daemon couldn't be bound to.. + #13576: Issues compiling buildroot for 5x86 + #13581: jpegsrc.v9d.tar.gz has changed hash + #13616: tar file from git repository generation issue + +2020.02.11, released February 17, 2021 + + Important / security related fixes. + + meson: Fix ccache detection handling when per-package builds + are used. + + Fakeroot: Fix compatibility issue with glibc 2.33 + + Updated/fixed packages: atftp, busybox, cereal, connman, + dhcpcd, dnsmasq, docker-cli, docker-engine, fakeroot, + intel-mediadriver, intel-microcode, jasper, + kodi-inputstream-adaptive, libbsd, libopenssl, linux-headers, + mosquitto, orc, php, postgresql, privoxy, pugixml, + python-bottle, python-django, python3, rauc, sox, subversion, + tzdata, wireguard-linux-compat, wpa_supplicant, xenomai, xterm + + Issues resolved (http://bugs.uclibc.org): + + #13506: BR2_PACKAGE_DHCPCD missing directory creation + +2020.02.10, released January 31st, 2021 + + Important / security related fixes. + + Download: Ensure git submodules are correctly fetched if + enabled for a package with _GIT_SUBMODULES = YES and the + host variant is downloaded first. + + Toolchain: Mark CodeSourcery Aarch64 2014.11 toolchain as not + having libatomic. + + pkg-stats: Fix python 3.8+ deprecation warning. + + meson: Ensure ccache is not detected and used, as it may + conflict with the ccache handling in Buildroot. + + New packages: libnpupnp + + Updated/fixed packages: bctoolbox, brltty, dbus, dovecot, + dovecot-pigeonhole, gcc, gerbera, gmrender-resurrect, gst-omx, + gst1-plugins-bad, gst1-plugins-base, gst1-plugins-good, + gst1-plugins-ugly, gst1-rtsp-server, gst1-vaapi, + gst1-validate, gstreamer1, gstreamer1-editing-services, + igd2-for-linux, libclc, libllcp, libtorrent-rasterbar, + libupnp, libupnpp, lpc32xxcdl, luarocks, mpd, nfs-utils, + nodejs, openjpeg, openldap, opentracing-cpp, openvpn, p11-kit, + paho-mqtt-c, php, poppler, postgresql, python3, runc, sudo, + syslog-ng, systemd, tini, trace-cmd, tzdata, ushare, vlc, + wavpack, wireguard-linux-compat, wolfssl, xapp_xload, xorriso, + zic + + Removed packages: libupnp18 + + Issues resolved (http://bugs.uclibc.org): + + #13471: package/mpd/mpd.conf make use of path not created + +2020.02.9, released December 27th, 2020 + + Important / security related fixes. + + Infrastructure: + - cmake: fix host ccache handling for CMake 3.19 + - meson: Forcibly disable binary stripping for + target builds, enable for host builds + - golang: Fix HOST / TARGET directories for per-package builds + + Defconfigs: Beaglebone Qt5: Fix ti-sgx related issues + + Updated/fixed packages: apitrace, arm-trusted-firmware, + bustle, c-ares, ca-certificates, cdrkit, cryptopp, dhcpcd, + docker-containerd, dtv-scan-tables, flare-engine, ghostscript, + haproxy, imagemagick, imx-gpu-viv, jasper, jemalloc, + jpeg-turbo, libcap, libcurl, libglib2, libgpiod, libkrb5, + libopenssl, libplist, libressl, libuv, libuvw, lynx, mariadb, + mbedtls, minidlna, monkey, musl, mutt, ncurses, netsnmp, + nodejs, opencv3, openldap, openrc, opkg-utils, paho-mqtt-c, + php, privoxy, proftpd, python-crc16, python-flask-cors, + python-lxml, python-pip, python-pyparsing, python-pyqt5, qemu, + qt5base, raptor, rauc, ruby, setserial, shadowsocks-libev, + slirp, sqlcipher, ti-sgx-demos, tinycbor, vsftpd, + wireless-regdb, wireshark, x11vnc, xen, xinetd, + xserver_xorg-server + + Issues resolved (http://bugs.uclibc.org): + + #13276: libcap builds libcap.pc incorrectly + #13316: beaglebone_qt5_defconfig: PowerVR fails to start + #13341: Mistake in /etc/init.d/S70vsftpd + +2020.02.8, released November 16th, 2020 + + Important / security related fixes. + + Updated/fixed packages: angularjs, argp-standalone, asterisk, + bandwidthd, bitcoin, busybox, cryptsetup, darkhttpd, davfs2, + docker-cli, docker-containerd, docker-engine, + dovecot-pigeonhole, fastd, fbset, fbtft, freetype, gcc, + ghostscript, gnuradio, grpc, gst1-plugins-bad, jsoncpp, + keepalived, libass, libexif, libiqrf, libpam-tacplus, libraw, + linux-backports, linux-firmware, lzlib, netsnmp, nginx, + oniguruma, opencv3, openntpd, patchelf, php, postgresql, + python-pyqt5, qt5base, rauc, redis, samba4, slirp, systemd, + tcpdump, tmux, tor, webkitgtk, wireguard-linux-compat, + wireshark, wpewebkit, xen, xorriso, zeromq, zxing-cpp + + Issues resolved (http://bugs.uclibc.org): + + #11931: Bugs in support/scripts/apply-patches.sh + +2020.02.7, released October 12th, 2020 + + Important / security related fixes. + + meson: Correct SDK cross-compilation.conf file when + per-package builds were used to build SDK. + + systemd: Use /run rather than /var/run for PID files in units. + + Toolchain: use Secure-PLT rather than BSS-PLT for PowerPC 32. + + support/script/pycompile: Rework logic to ensure .pyc files + contain absolute target paths, fixing code inspection at + runtime when executed with cwd != '/'. + + support/scripts/setlocalversion: Correct Mercurial output to + match behaviour with Git. + + support/scripts/apply-patches.sh: Use patch + --no-backup-if-mismatch, so we no longer blindly have to + remove *.orig files after patching, fixing issues with + packages containing such files. + + Updated/fixed packages: bandwidthd, barebox, bash, bison, + brotli, cifs-utils, cryptsetup, dhcpcd, dhcpdump, docker-cli, + docker-engine, ecryptfs-utils, efl, fail2ban, freetype, gcc, + gdb, ghostscript, gnutls, go, gst1-plugins-base, + gst1-plugins-ugly, ipmitool, libhtp, libraw, libssh, libxml2, + libxml-parser-perl, localedef, lua, memcached, mesa3d, meson, + minidlna, nginx, nodejs, nss-pam-ldapd, openvmtools, php, + postgresql, python, python-aenum, python-autobahn, + python-engineio, python-fire, python-pymodbus, python-scapy, + python-semver, python-sentry-sdk, python-socketio, + python-texttable, python-tinyrpc, python-txtorcon, python3, + qt5base, runc, samba4, strace, supertux, suricata, systemd, + vlc, wayland-protocols, wireguard-linux-compat, wireshark, + xserver_xorg-server, zeromq, zstd + + Issues resolved (http://bugs.uclibc.org): + + #12911: usb_modeswitch installation race condition + #13251: cryptsetup does not work on branch 2020.02 following.. + +2020.02.6, released September 5th, 2020 + + Important / security related fixes. + + Fix a 2020.02.5 build regression in busybox when systemd (and + not less) are enabled because of missing infrastructure. + + Updated/fixed packages: alsa-utils, avahi, busybox, cups, + docker-cli, graphite2, imagemagick, libeXosip2, mbedtls, + nvidia-driver, paho-mqtt-c, python-django, systemd, uclibc, + usb_modeswitch, wolfssl + + Issues resolved (http://bugs.uclibc.org): + + #12911: usb_modeswitch installation race condition + +2020.02.5, released August 29th, 2020 + + Important / security related fixes. + + Infrastructure: Ensure RPATH entries that may be needed for + dlopen() are not dropped by patchelf. + + BR_VERSION_FULL/setlocalversion (used by make print-version + and /etc/os-release): Properly handle local git tags + + Updated/fixed packages: apache, at91bootstrap3, bind, boost, + busybox, capnproto, chrony, collectd, cpio, cryptsetup, cups, + cvs, dbus, docker-engine, domoticz, dovecot, + dovecot-pigeonhole, dropbear, efl, elixir, f2fs-tools, ffmpeg, + gd, gdk-pixbuf, ghostscript, glibc, grub2, gst1-plugins-bad, + hostapd, iputils, jasper, json-c, libcurl, libwebsockets, + linux, live555, mesa3d, mosquitto, mpv, nodejs, opencv, + opencv3, openjpeg, patchelf, perl, php, postgresql, + python-django, python-gunicorn, python-matplotlib, ripgrep, + rtl8188eu, rtl8821au, ruby, shadowsocks-libev, squid, + tpm2-abrmd, tpm2-tools, trousers, uacme, webkitgtk, wireshark, + wolfssl, wpa_supplicant, wpewebkit, xen, xlib_libX11, + xserver_xorg-server + + Issues resolved (http://bugs.uclibc.org): + + #12876: nodejs fails to build when host-icu has been built before + #13111: python-gunicorn: missing dependency on python-setuptools + #13121: wpa_supplicant fails to build without libopenssl enabled + #13141: Target-finalize fail with "depmod: ERROR: Bad version passed" + #13156: package live555 new license + +2020.02.4, released July 26th, 2020 + + Important / security related fixes. + + Toolchain: + - Make external toolchain version check also work for + toolchains configured with --with-gcc-major-version-only + + - Do not handle SOURCE_DATE_EPOCH in toolchain wrapper if the + compiler supports it, fixing an issue with precompiled + headers + + - Ensure debug libs from external toolchains are not installed + into target if debugging is disabled + + Download: + - Correct reproducibility issue in handling of git submodules + for older git versions. + + - Fix file locking over NFS + + fs: Ensure cpio archive element order is reproducible + + Br2-external: Fix error reporting for invalid br2-external trees + + Per-package: + - Fix an issue with python3 sysconfig data not getting + correctly expanded + + - Fix per-package building for packages using the qmake + infrastructure + + Updated/fixed packages: a10disp, asterisk, bind, cdrkit, + checkpolicy, clamav, dbus, docker-cli, docker-engine, + dvb-apps, e2fsprogs, exim, exiv2, freerdp, gnutls, go, grub2, + gssdp, gst1-plugins-good, gst1-plugins-ugly, gupnp, + intel-microcode, iproute2, irrlicht, iwd, jq, kodi, libcamera, + libconfuse, libcurl, libglib2, libhttpserver, libmicrohttpd, + libopenssl, libvncserver, libxml2, libxmlrpc, lxc, mbedtls, + mesa3d, meson, mongodb, mtools, mutt, nghttp2, ngircd, nodejs, + ntp, open-plc-utils, open2300, openjdk-bin, openssh, + oracle-mysql, paho-mqtt-c, pcre, php, poco, prosody, putty, + python-twisted, python-urllib3, python-validators, python3, + qt5xmlpatterns, redis, rpi-firmware, rtl8821au, samba4, sdl2, + sqlite, squid, syslog-ng, systemd, tcpreplay, tinydtls, + upmpdcli, upx, vlc, webkitgtk, wireguard-linux-compat, + wireshark, wpebackend-fdo, wpewebkit, zstd + + Issues resolved (http://bugs.uclibc.org): + + #12941: Python GObject fails to build when using BR2_PER_PACKAGE_.. + #12946: Grub: Decompressor is too big. + #12986: Mtools: Error converting to codepage 850 + #13001: openjdk-bin replaces libfreetype.so from host-freetype + #13011: Incorrect selection of gcc version + #13026: rpi-firmware: must not rename start files + #13031: nodejs: RangeError at new ArrayBuffer() + #13046: Optimize for fast -Ofast is not compliant + +2020.02.3, released June 3rd, 2020 + + Important / security related fixes. + + Fix various build issues of host packages on hosts using GCC + 10. + + Updated/fixed packages: arm-trusted-firmware, audit, bind, + binutils, bison, clamav, crda, dovecot, dtc, efl, elf2flt, + erlang, fakeroot, ffmpeg, fmc, fmlib, freerdp, gcc, git, + glib-networking, gnupg, leveldb, libexif, libssh2, + libusb-compat, linux-headers, lrzip, ltrace, mariadb, mesa3d, + mp4v2, openldap, openocd, perl, php, prosody, + python-pycryptodomex, python-pyqt5, qemu, rpi-firmware, rustc, + speexdsp, sysrepo, systemd, tremor, vboot-utils, wireshark, + xen + + Removed packages: python-pycrypto + + Issues resolved (http://bugs.uclibc.org): + + #12361: Init system (systemd) kills login on Raspberry Pi Zero + #12656: bison fails to relocate with relocate-sdk.sh + #12671: leveldb won't detect that snappy is present (static.. + #12691: host-rust build fails + #12831: RPI-firmware package: DTB-overlay dependency + +2020.02.2, released May 12th, 2020 + + Important / security related fixes. + + Musl: Disallow on PPC64 cores without AltiVec support + (E.G. e5500). + + fs/cpio: Correctly handle booting with 'console=' + + release: Ensure temporary .br2-external.* files are not + included in the release tarball + + Defconfigs: Fix various mistyped config options, or config + options where the dependencies were no longer met. + + Updated/fixed packages: apache, azure-iot-sdk-c, binutils, + boinc, c-ares, cvs, docker-cli, docker-containerd, + docker-engine, domoticz, e2fsprogs, efl, evtest, exim, ffmpeg, + freerdp, gcc, gflags, glibc, gnuconfig, haproxy, imx-gpu-2d, + irrlicht, jpeg kodi-pvr-vuplus, libarchive, libcoap, + libfpm-extra, libglib2, libhtp, libid3tag, libinput, libmad, + libopenssl, libsepol, libssh, libv4l, libvncserver, libwpe, + localedef, mariadb, matchbox, mbedtls, mc, mesa3d-headers, + meson, midori, msgpack, netsnmp, nginx, ogre, openjdk, + openldap, openvpn, p7zip, paho-mqtt-c, php, polkit, python, + python-attrs, python-crossbar, python-dpkt, python-flask, + python-future, python-iptables, python-jedi, python-markdown2, + python3, qemu, qpdf, qt5, samba4, squashfs, squid, strongswan, + suricata, tzdata, util-linux, vlc, wget, webkitgtk, + wireguard-linux-compat, wireshark, wpebackend-fdo, wpewebkit, + zic + + Issues resolved (http://bugs.uclibc.org): + + #11866: initramfs file system fails to boot using Grub on EFI x86_64 + #12271: python-iptables runtime dependencies + #12726: systemctl preset-all failed for ctrl-alt-del.target + #12751: OpenJdk package installation issues on target + #12796: Update OpenSSL to Version 1.1.1g to patch CVE-2020-1967 + #12811: bootstrap stuck and no login prompt + #12841: util-linux/sfdisk 2.35.1 fails on sector-size header + +2020.02.1, released April 10th, 2020 + + Important / security related fixes. + + core: Also fixup /lib references in libtool .la files, similar + to how it is done for /usr/*. + + Various fixes for builds with per-package target/host + directories. + + toolchain: Fix kernel headers validation check for external + toolchains. Fix make 4.3+ compatibility in external toolchain + logic. + + fs/initramfs: fix show-info so it also shows the usual + rootfs-related variables. + + Updated/fixed packages: arm-trusted-firmware, barebox-aux, + bluez5_utils, bubblewrap, busybox, civetweb, cog, collectd, + ffmpeg, gcc, gnutls, gssdp, gvfs, haproxy, hiredis, hostapd, + kmscube, kodi-screensaver-rsxs, libical, libinput, libexif, + libopenssl, libsndfile, linux, linux-tools, llvm, localedef, + mcrypt, mesa3d, meson, monit, nftables, ntp, opencv3, + oprofile, php, pinentry, polkit, pure-ftpd, python-pyyaml, + qt5, quagga, radvd, rcw, redis, rocksdb, samba4, screen, + sdbusplus, swupdate, sysdig, sysklogd, syslinux, syslog-ng, + tor, tslib, uacme, util-linux, vala, vlc, + wireguard-linux-compat, wireguard-tools, wireshark, + wpa_supplicant, xserver_xorg-server + + Issues resolved (http://bugs.uclibc.org): + + #12711: host-localedef 2.30-20 fails to compile on fedora 32 + #12746: "sysdig" package description points to http://sysdig.org, .. + +2020.02, released March 8th, 2020 + + Various fixes. + + br2-external: Fix compatibility with make 4.3+ + + Updated/fixed packages: bash, bcm2835, binutils, cups, + erlang-p1-acme, fbgrab, gr-osmosdr, gst1-plugins-base, + gst1-validate, gstreamer1, guile, jhead, libdrm, libevdev, + libinput, libnss, libsndfile, libvncserver, linux-firmware, + mesa3d, nodejs, openjdk-bin, openvmtools, optee-test, patch, + php, piglit, pppd, python-django, qemu, qt5base, ruby, + ser2net, swupdate, thrift, zziplib + + Removed packages: classpath, jamvm + + Issues resolved (http://bugs.uclibc.org): + + #12606: fbgrab location has changed + +2020.02-rc3, released March 2nd, 2020 + + Fixes all over the tree. + + Infrastructure: Rework file list handling to fix race + conditions when building with per-package target and host + directories and top-level parallel builds. + + Updated/fixed packages: aufs, binutils, blktrace, brltty, + cairo, dnsmasq, docker-compose, elf2flt, exim, exiv2, git, + kodi-inputstream-adaptive, libarchive, libcgroup, libgdiplus, + libssh2, libvncserver, libvorbis, linknx, linux-firmware, lxc, + lz4, mosquitto, openjpeg, openrc, poco, proftpd, pure-ftpd, + python3, python-multidict, python-setuptools-scm-git-archive, + qpdf, qt5tools, rdesktop, rocksdb, shellinabox, squid, + suricata, swig, systemd, taglib, util-linux, wireshark, zsh + + Issues resolved (http://bugs.uclibc.org): + + #12571: ltp-testsuite : Build failure + #12576: 2020.02-RC1: error while loading shared libraries: ... + #12581: 2020.02-rc1 glibc failing to build on fedora 31 + +2020.02-rc2, released February 26th, 2020 + + Fixes all over the tree. + + Toolchain: Ensure strong SSP can only be enabled if the + (external) toolchain supports it. + + Fix a race condition related to creating the output/staging + symlink on systems with coreutils < 8.27. + + Drop support for the (end of life) Qt 5.6 variant. + + Updated/fixed packages: at, armadillo, audiofile, bash, + busybox, erlang, fail2ban, fluidsynth, ipsec-tools, jpeg-turbo, + kvm-unit-tests, libftdi1, libinput, libsvgtiny, libtomcrypt, + libupnpp, libxml2, linux-tools, luv, mbedtls, mesa3d, minicom, + openvmtools, php, qt5, qt5webengine, qwt, radvd, rcw, + sdbusplus, systemd, tpm2-tss, vorbis-tools + + Issues resolved (http://bugs.uclibc.org): + + #12581: 2020.02-rc1 glibc failing to build on fedora 31 + +2020.02-rc1, released February 18th, 2020 + + Fixes all over the tree and new features. + + Add experimental support for building with a per-package + target and host directory. This still has some rough edges, + but brings a number of advantages: + + - Packages will only be able to access the explicitly listed + dependencies and not any other packages that happen to be + built before, ensuring correct dependency information in + Buildroot. + + - Possibility for top-level parallel builds, speeding up + builds on multicore machines. + + Core: Ensure package-file-lists data is correct after + incremental builds as well. + + Architecture: Add support for ARC-HS38 with 64bit multiplier + variant, allow building glibc for big endian ARC, handle 16KB + MMU page size for ARC in toolchain wrapper. + + Toolchain: Add binutils 2.33.1, GCC 7.5.0, Arm 9.2-2019.12 + toolchains, ARC 2019.09 toolchain. Allow using custom kernel + headers newer than what is known by Buildroot. + + pkg-stats: Support for CVE vulnerability reporting by + comparing to NVD database. + + Reproducible builds: The go -trimpath option is now used to + get rid of absolute build paths, __FILE__ and __BASE_FILE__ + defines are now handled in the toolchain wrapper. + + Systemd: Build host variant and use systemctl to automatically + enable unit files rather than manually managing symlinks. + + Util-linux: Ensure that hwclock is built without GPLv3 + code. Notice that builds with hwclock has contained + GPLv3-licensed code since util-linux 2.30 (Buildroot 2017.08+) + + New defconfigs: Beelink GS1, Raspberrypi4 64bit + + New packages: alura, avro-c, bubblewrap, cctz, cereal, + cpuburn-arm, elixir, erlang-base64url, erlang-idna, + erlang-jose, erlang-p1-acme, erlang-p1-mqtree, + erlang-p1-yconf, fluid-soundfont, fluidsynth, gcnano-binaries, + gensio, glslsandbox-player, libargon2, libmodsecurity, + libpam-nfc, libtelnet, lua-codegen, lua-livr, lua-livr-extra, + lua-rotas, lua-silva, mfoc, network-manager-openvpn, + nginx-modsecurity, perl-crypt-openssl-aes, + perl-math-prime-util, pipewire, ptm2human, python-aenum, + python-aiohttp-debugtoolbar, python-aiohttp-mako, + python-aiologstash, python-aiosignal, python-aiozipkin, + python-async-lru, python-avro, python-bunch, python-crontab, + python-dnspython, python-entrypoints, python-esptool, + python-frozenlist, python-future, python-gitdb, python-janus, + python-lockfile, python-logstash, python-nested-dict, + python-pbr, python-pyaes, python-pydantic, python-smmap2, + python-sockjs, python-zc-lockfile, raspi-gpio, rocksdb, + sdbusplus, spidermonkey, thermald, ti-sgx-libgbm, tinyssh, + tio, umtprd, weston-imx, wireguard-linux-compat, + wireguard-tools, xdg-dbus-proxy + + Removed packages: bluez_utils, celt051, erlang-p1-iconv, fis, + gadgetfs-test, libplayer, gstreamer, gst-ffmpeg, + gst-fsl-plugins, gst-omapfb, gst-plugins-bad, + gst-plugins-base, gst-plugins-good, gst-plugins-ugly, + perl-digest-md5, perl-mime-base64, perl-net-ping, + python-scapy3k, wireguard + + Issues resolved (http://bugs.uclibc.org): + + #11906: the new version of mesa3d cannot support etnaviv when.. + #11996: opencv3 SIGILL on Cortex-A5 with VFPv4-D16 + #12121: PyQt5.QtSerialPort and other modules not being built + #12256: package tar is outdated (1.29 is 3 years old + #12286: Can't import gobject in python 3.8 + #12376: python-scapy3k is deprecated + #12386: carriage return issue when "make menuconfig" + #12441: qt5webengine build error: asm/errno.h: No such file or.. + #12446: Buildroot fails to finish installing packages + #12456: qtvirtualkeyboard: No such file or directory + #12461: libglib2 build files with deep directory structure + #12481: minicom fails when output directory path contains "m4" + #12501: libnss-3.49.1: ld error: multiple definition of `gcm_.. + #12526: host-nodejs 12.14.1: configure fail: AttributeError: .. + #12536: Linux-Headers extracting failure + #12546: Ninja 1.10 build Error + +2019.11.3, released April 10th, 2020 + + Important / security related fixes. + + core: Fix compatibility with make 4.3+. Also fixup /lib + references in libtool .la files, similar to how it is done for + /usr/*. + + toolchain: Fix kernel headers validation check for external + toolchains. + + fs/initramfs: fix show-info so it also shows the usual + rootfs-related variables. + + Updated/fixed packages: barebox-aux, bluez5_utils, busybox, + civetweb, cog, collectd, ffmpeg, gcc, gnutls, gssdp, gvfs, haproxy, + hiredis, hostapd, kmscube, libical, libopenssl, libsndfile, + linux-tools, llvm, monit, ntp, php, pure-ftpd, radvd, redis, + samba4, screen, sysdig, syslinux, syslog-ng, tor, uacme, + util-linux, vala, vlc, wpa_supplicant, xserver_xorg-server + + Issues resolved (http://bugs.uclibc.org): + + #12746: "sysdig" package description points to http://sysdig.org, .. + +2019.11.2, released March 16th, 2020 + + Important / security related fixes. + + Core: Ensure package-file-lists data is correct after + incremental builds as well. + + Fix a race condition related to creating the output/staging + symlink on systems with coreutils < 8.27. + + Toolchain: ARC tools bumped to arc-2019.09. + + Br2-external: Fix patch handling when external linux-extension + packages are used. Fix compatibility with make 4.3+ + + Util-linux: Ensure that hwclock is built without GPLv3 + code. Notice that builds with hwclock has contained + GPLv3-licensed code since util-linux 2.30 (Buildroot 2017.08+) + + Updated/fixed packages: armadillo, at, bcm2835, binutils, + blktrace, bluez-alsa, bootstrap, brltty, busybox, cairo, + clamav, cog, cups, czmq, dnsmasq, docker-containerd, dovecot, + dovecot-pigeonhole, e2fsprogs, elf2flt, eudev, exim, exiv2, + fbgrab, gettext-tiny, glibc, go, grep, gst1-validate, guile, + imagemagick, jhead, jpeg-turbo, kvm-unit-tests, lapack, + libarchive, libcgroup, libdrm, libevent, libexif, libftdi1, + libgdiplus, libjpeg, libsigrok, libsndfile, libssh2, + libsvgtiny, libvncserver, libvorbis, libxml2, libxslt, linknx, + lxc, lz4, mariadb, mbedtls, meson, mongoose, mosquitto, musl, + ncurses, nodejs, ntfs-3g, ogre, opencv3, openjdk, openjpeg, + openrc, openswan, openvmtools, optee-test, patch, php, piglet, + postgresql, pppd, proftpd, pure-ftpd, python-django, + python-pyqt5, python-setuptools-scm-git-archive, python3, + qemu, qt5base, qt5tools, qt5virtualkeyboard, qt5webengine, + qwt, rdesktop, ruby, runc, samba4, shellinabox, + skeleton-init-openrc, smartmontools, spdlog, sqlcipher, squid, + suricata, swig, swupdate, sysklogd, taglib, thrift, + ti-cgt-pru, uclibc, util-linux, vorbis-tools, webkitgtk, + wireshark, wpebackend-fdo, wpewebkit, xen, + xserver_xorg-server, zeromq, zsh, zziplib + + Issues resolved (http://bugs.uclibc.org): + + #11996: opencv3 SIGILL on Cortex-A5 with VFPv4-D16 + #12331: meson issue + #12456: qtvirtualkeyboard: No such file or directory + #12461: libglib2 build files with deep directory structure + #12481: minicom fails when output directory path contains "m4" + #12606: fbgrab location has changed + +2019.11.1, released January 12th, 2020 + + Important / security related fixes. + + Infrastructure: kconfig: Fix reconfigure logic, python: Ensure + correct compiler and linker flags are used for compiled code + + utils/scanpypi: Remind users to update DEVELOPERS + + Defconfigs: imx6-sabresd: Fix the Qt5 display names, + imx8: Drop extra copy of U-Boot DTB + + Updated/fixed packages: acsccid, bitcoin, boost, busybox, + cc-tool, cmocka, cpio, cups, dante, dialog, dillo, docker-cli, + docker-containerd, docker-engine, easy-rsa, ebtables, + ecryptfs-utils, efl, ffmpeg, gdb, git, glibc, gnupg2, go, + gpsd, grpc, gst1-plugins-bad, iputils, jasper, + kf5-kcoreaddons, leveldb, libarchive, libfribi, libgit2, + libkrb5, libp11, librsvg, libssh, libtomcrypt, libuio, libv4l, + lirc-tools, log4cplus, lrzip, lvm2, mali-t76x, + matchbox-desktop, mender-grubenv, mmc-utils, mosquitto, + nodejs, ntp, openipmi, opencv3, openpowerlink, openrc, pango, + perl-sys-cpu, pimd, postgresql, pulseaudio, python-brotli, + python-coherence, python-crc16, python-django, python-dpkt, + python-gobject, python-pyasn-modules, python-pypcap, + python-pyqt5, python-subprocess32, python3, qpdf, + qt-webkit-kiosk, qt5virtualkeyboard, qt5webengine, quota, + rabbitmq-c, rauc, rpcbind, rtl8821au, runc, rygel, samba4, + sdl2, setserial, snort, spidev_test, + sunxi-mali-mainline-driver, syslog-ng, sysrepo, tcllib, tftpd, + usbmount, w_scan, wavpack, wsapi, wsapi-fcgi, wsapi-xavante, + x265, xserver_xorg-server, ytree, zip + + Issues resolved (http://bugs.uclibc.org): + + #12121: PyQt5.QtSerialPort and other modules not being built + #12286: Can't import gobject in python 3.8 + +2019.11, released December 1st, 2019 + + Various fixes. + + Infrastructure: Make HOST__DL_OPTS inherit from + _DL_OPTS by default, just like it is done for a number of + other package variables. + + Add _KEEP_PY_FILES to exclude specific python .py files + from the removal done by BR2_PACKAGE_PYTHON{,3}_PYC_ONLY for + the (rare) case where the .py files are needed at runtime + rather than .pyc. + + Updated/fixed packages: am33x-cm3, bind, collectd, go, gob2, + gst1-plugins-bad, haproxy, jasper, jpeg-turbo, libdrm, + libftdi, libftdi1, libnss, libselinux, libstrophe, lzma, + minicom, network-manager, nodejs, oniguruma, opencv3, + openvmtools, perl-gdgraph, perl-gdtextutil, prosody, + python-cchardet, systemd, tiff, wolfssl, + + Issues resolved (http://bugs.uclibc.org): + + #11416: check-uniq-files staging issue + #12146: Oprofile runtime issue + #12166: Compiling nodejs for SAMA5D3 always crash with illegal inst.. + #12171: Python-opencv needs config.py and config-3.7.py to run.. + #12196: duma package + #12211: host-nodejs 10.15.3 package fail to build + #12316: tzdata fails to install with empty "default local time" + #12326: network-manager build fails with missing glib error + #12366: Gstreamer1 gst1-plugins-bad do not compile with RPI-Userland + +2019.11-rc3, released November 24th, 2019 + + Fixes all over the tree. + + Updated/fixed packages: asterisk, clamav, domoticz, faifa, + gerbera, kmod, kvm-unit-tests, libupnp18, linux-serial-test, + lsof, ltp-testsuite, lxc, mesa3d, mesa3d-headers, perl, php, + postgresql, qemu, rauc, redis, rpcbind, spice, spice-protocol, + systemd, tftpd, waylandpp, webkitgtk, zip + +2019.11-rc2, released November 16th, 2019 + + Fixes all over the tree. + + Toolchain: ARC tools bumped to arc-2019.09-rc1, ensure + external toolchain kernel headers version check correctly stop + the build on mismatch + + Meson: Fix generation of global cross-compilation.conf + + Download: Also use the package download method for extra + downloads from the same site, so it does not get confused by + URLs containing '+' + + Defconfigs: Fix boot issue for beaglebone + + Updated/fixed packages: bird, chrony, connman, dhcp, domoticz, + dropwatch, dtc, elf2flt, gettext-tiny, glog, intel-microcode, + ipsec-tools, jailhouse, kodi, libfribi, libmbim, libressl, + libsigrokdecode, libsvgtiny, linux-serial-test, ltp-testsuite, + lvm2, lxc, mariadb, mesa3d, minizip, ndisc6, neardal, ninja, + ofono, openvmtools, oracle-mysql, qt5wayland, safeclib, socat, + sudo, systemd, wpewebkit, xserver_xorg-server + +2019.11-rc1, released November 5th, 2019 + + Fixes all over the tree and new features. + + Dependencies: Gcc/g++ 4.8 or newer is now required on the + build host. + Ensure host has JSON::PP perl module installed if + webkitgtk/wpewebkit packages are enabled as it is needed + during their build process. + + Toolchain: Add support for the D programming language (GCC + 9.x, Glibc). + GCC 9.x updated to 9.2.0, Glibc updated to 2.30, Musl updated + to 1.1.24, uClibc-ng updated to 1.0.32, ARC toolchain updated + to arc-2019.09-eng002. + Musl: Add a patch to add support for + sched_{get,set}scheduler() and sched_{get,set}param() for + compatibility. + Generate check-headers program under BUILD_DIR rather than + /tmp to fix issues with distributions mounting /tmp noexec. + Also copy libssp.so for external toolchains if SSP + to handle toolchains providing SSP support in libssp rather + than in the C library + + New defconfigs: Beaglebone AI, FriendlyARM Nanopi NEO Plus2, + Libre Computer "La Frite", QEMU Armv7-A with trustzone/OP-TEE, + STM32MP157 Discovery Kit + + Arch: RISC-V: Default to a sensible floating point ABI based + on the selected ISA extensions rather than always defaulting + to ILP32/64 + + Graph-size: Package sizes are now shown in human readable form + (Kib/Mib/Gib) rather than always in Kib. Binary (KB/MB/GB) + format can be selected using the --binary option. The cut-off + limit for classifying packages as "other" is now configurable + using the --size-limit option. + + Br2-external: Linux kernel extensions can now also be provided + in an external tree by adding packages under + linux/linux-ext-*.mk. See the manual for details. + + Fakeroot now works correctly under Microsoft Windows 10 + Services for Linux, which does not provide SYSV IPC support + + The check-uniq-files logic which would complain if multiple + packages would touch the same files has been removed as it + causes issues in certain situations (when packages are + rebuilt) and the issue is no longer considered a problem for + toplevel parallel builds as those will use a per-package + staging/target directory. + With this removed, Python is no longer required for a basic + build (only for optional scripts). + + support/scripts/genimage.sh will no longer make a copy of + TARGET_DIR, speeding up post-build/image scripts. + + The runtime test logic now uses Python 3.x. + + A 'v' prefix has been dropped from the _SOURCE variable + for a number of packages to match the version numbers used by + https://release-monitoring.org + + New packages: caps, collectl, dav1d, fstrcmp, ima-evm-utils, + jitterentropy-library, kodi-vfs-rar, kodi-vfs-sftp, libavl, + libhttpserver, libmspack, libnetconf2, libolm, libyang, + linux-serial-test, lrzip, mdevd, minimodem, musl-fts, netifrc, + ogre, openlayers, python-aioredis, python-asgiref, + python-backports-functools-lru-cache, python-bluezero, + python-brotli, python-channels, python-channels-redis, + python-colorlog, python-daphne, python-django-enumfields, + python-jaraco-functools, python-kiwisolver, python-msgfy, + python-rpi-ws281x, python-setuptools-scm-git-archive, + python-simplelogging, python-soupsieve, python-sqliteschema, + python-sqlparse, python-tqdm, python-webencodings, qt5webview, + restclient-cpp, ripgrep, snmpclitools, sunwait, sysrepo, + uacme, utf8proc, uvw, ytree + + Removed packages: alljoyn, alljoyn-base, alljoyn-tcl-base, + devmem2, eventlog, kodi-audiodecoder-opus, + kodi-screensaver-planestate, kodi-visualisation-waveforhue, + python-pysnmp-apps, riscv-pk, ustr + + Issues resolved (http://bugs.uclibc.org): + + #9881: systemd-resolved not setting resolv.conf link + #10171: devmem2 w (word) is 8 bytes in x86 64 systems + #10586: musl gcc has ifunc enabled when musl doesn't support it + #10806: Allow nfs-utils to use ipv6 + #11366: [2018.08] SysV IPC not available for fakeroot on WSL + #11411: check-uniq-files target issue + #11766: Console (getty) issues with systemd + #11781: mariadb build error + #12031: Build of cups-filters fails while linking, apparently due.. + #12116: console prompt does not appear after login + #12141: eudev package is missing "render" and "kvm" groups + #12181: dropbear: norootlogin (-w) no longer works when PAM is enabled + #12186: Raspberry Pi Zero-W build fails on newer kernel versions + #12191: cmake BUILDDIR + #12241: Permission denied while running "make" + #12261: sudo versions prior to 1.8.28 are affected. + #12276: make clean/distclean does not remove BR2_DL_DIR and BR2_HOST_DIR + #12281: Custom configuration fails to build (based on raspberrypi3_.. + +2019.08.3, released December 7th, 2019 + + Important / security related fixes. + + Infrastructure: Make HOST__DL_OPTS inherit from + _DL_OPTS by default, just like it is done for a number of + other package variables + + Add _KEEP_PY_FILES to exclude specific python .py files + from the removal done by BR2_PACKAGE_PYTHON{,3}_PYC_ONLY for + the (rare) case where the .py files are needed at runtime + rather than .pyc. + + Fix -reconfigure handling for packages using the kconfig + infrastructure. + + Toolchain: ensure external toolchain kernel headers version + check correctly stop the build on mismatch + + Deconfigs: beaglebone: fix boot issue + + Updated/fixed packages: am33x-cm3, asterisk, bind, chrony, + clamav, cmocka, collectd, connman, dhcp, dropwatch, faifa, + gettext-tiny, gob2, haproxy, intel-microcode, ipsec-tools, + jailhouse, jasper, jpeg-turbo, kodi, kvm-unit-tests, libftdi, + libftdi1, libnss, libressl, libstrophe, libsvgtiny, lvm2, + lzma, mariadb, minicom, mosquitto, neardal, ninja, nodejs, + oniguruma, openvmtools, oracle-mysql, perl-gdgraph, + perl-gdtextutil, php, postgresql, prosody, python-cchardet, + python-django, qt5wayland, rabbitmq, rauc, redis, rpcbind, + socat, spice, spice-protocol, tftpd, tiff, webkitgtk + + New packages: libmspack + + Issues resolved (http://bugs.uclibc.org): + + #12166: Compiling nodejs for SAMA5D3 always crash with illegal inst.. + #12171: Python-opencv needs config.py and config-3.7.py to run.. + #12211: host-nodejs 10.15.3 package fail to build + #12316: tzdata fails to install with empty "default local time" + +2019.08.2, released November 9th, 2019 + + Important / security related fixes. + + Toolchain: Also copy libssp.so for external toolchains if SSP + to handle toolchains providing SSP support in libssp rather + than in the C library + + Download: Also use the package download method for extra + downloads from the same site, so it does not get confused by + URLs containing '+' + + Fakeroot now works correctly under Microsoft Windows 10 + Services for Linux, which does not provide SYSV IPC support + + utils/test-pkg: ensure to exit with an error upon failure + + Updated/fixed packages: asterisk, azmq, binutils, + cups-filters, domoticz, dtc, duma, elf2flt, eudev, exfat, + exfat-utils, fakeroot, fdk-aac, file, freerdp, gcc, gd, + ghostscript, go, gpsd, grpc, gst1-plugins-base, gvfs, icu, + intel-microcode, kvm-unit-tests, libfribidi, libnspr, libnss, + libopenssl, libpcap, libpciaccess, librsvg, libseccomp, + libsigrok, libtorrent, libunwind, libva, linux-tools, + lua-sdl2, lxc, minizip, mjpegtools, mongoose, mono, nbd, + nfs-utils, php, piglit, python, python-autobahn, + python-pysnmp-apps, python-tornado, python3, qemu, qt5base, + ruby, safeclib, samba4, sdl_mixer, sox, sudo, suricata, + systemd, tcpdump, unscd, util-linux, vdr-plugin-vnsiserver, + vtun, wireshark, xvisor, yaffs2utils + + Issues resolved (http://bugs.uclibc.org): + + #11366: [2018.08] SysV IPC not available for fakeroot on WSL + #12261: sudo versions prior to 1.8.28 are affected + +2019.08.1, released October 3rd, 2019 + + Important / security related fixes. + + Defconfigs: AArch64-efi: Fix grub configuration, Beaglebone: + Use default console settings + + Dependencies: Ensure host has JSON::PP perl module installed + if webkitgtk/wpewebkit packages are enabled as it is needed + during their build process. + + Toolchain: Generate check-headers program under BUILD_DIR + rather than /tmp to fix issues with distributions mounting + /tmp noexec. + + Updated/fixed packages: asterisk, augeas, axel, bind, bwm-ng, + cups, cups-filters, docker-cli, docker-engine, docker-proxy, + e2fsprogs, eudev, exim, expat, gcc, go, haveged, ifplugd, joe, + kf5-extra-cmake-modules, kf5-modemmanager-qt, + kf5-networkmanager-qt, libcamera, libcurl, libgcrypt, + libglib2, libgpg-error, libnspr, libnss, libopenssl, + logrotate, luksmeta, mariadb, mbedtls, mongodb, mosquitto, + ncurses, nfs-utils, nghttp2, nodejs, openvmtools, php, + protobuf, putty, qemu, samba4, snort, swupdate, + systemd-bootchart, thttpd, uclibc, unzip, util-linux, + wireshark + + Issues resolved (http://bugs.uclibc.org): + + #10806: Allow nfs-utils to use ipv6 + #11781: mariadb build error + #12031: Build of cups-filters fails while linking, apparently due.. + #12141: eudev package is missing "render" and "kvm" groups + #12241: Permission denied while running "make" + +2019.08, released September 1st, 2019 + + Various fixes. + + Defconfigs: Removed nanopc t4, nanopi m4 and neo4, pine64 + rockpro64 and raxda rock pi4 as they rely on a ARM32 toolchain + on the build host to build ATF. These defconfigs will be added + back once a package providing such toolchain is + available. Also dropped ts4800 defconfig as it does not build + with GCC >= 8.x. + + Updated/fixed packages: libxcb, php, python-numpy, webkitgtk, + wpewebkit, xfont_font-util + + Issues resolved (http://bugs.uclibc.org): + + #12156: buildroot-2019.08-rc3 does not build for Pi Zero W + +2019.08-rc3, released August 28th, 2019 + + Fixes all over the tree. + + Updated/fixed packages: clamav, dovecot, dovecot-pigeonhole, + gcc, intel-microcode, libmicrohttpd, libmodplug, mpg123, + nginx, openldap, python, qemu, samba4, squid, strace, vlc + + Issues resolved (http://bugs.uclibc.org): + + #11686: fbdev_drv.so: undefined symbol: shadowUpdatePackedWeak,.. + +2019.08-rc2, released August 20th, 2019 + + Fixes all over the tree. + + Compile fixes for a number of defconfigs. + + Updated/fixed packages: apache, autofs, batctl, batman-adv, + bind, collectd, cwiid, dahdi-linux, dahdi-tools, daq, + dehydrated, dhcp, dtc, efl, enlightenment, evtest, giflib, + gnutls, go, gst-plugins-bad, gst-plugins-base, + gst1-plugins-bad, gst1-plugins-base, gst1-rtsp-server, gtkmm3, + gupnp, harfbuzz, imagemagick, lftp, libbsd, libcpprestsdk, + libdnet, libfm, libgit2, libgtk2, libgtk3, libpri, librsvg, + libss7, libssh2, libwpe, lua-cqueues, metacity, micropython, + mpd, mpg123, musl, mpv, openblas, openbox, opencv, pango, + pcmanfm, piglit, pigpio, pinentry, postgresql, qemu, qt5base, + qt5enginio, qt5multimedia, qt5serialbus, quagga, quazip, + rrdtool, rygel, samba4, stellarium, tcpreplay, ti-gfx, vte, + wampcc, wilink-bt-firmware, wireless-regdb, wpebackend-fdo, + xscreensaver + + Removed packages: libamcodec, odroid-mali, odroid-scripts + + Issues resolved (http://bugs.uclibc.org): + + #9481: NetworkManager/Ping unable to resolve domains + #10566: php.mk is missing option --with-pgsql + #10861: Package batman_adv Makefile is missing include header direct.. + #11641: linux kernel .config timestamp always out of date fixed with.. + #11671: russian locale ru_RU:145: LC_TIME: syntax error + #11701: recuuring of usr and in bin shortcuts are created + #11741: pigpio does not build host-pigpio + #11876: automount using host mount/umount + #11881: Build breaks with lftp package enabled and libexpat1-dev inst.. + #11921: dahdi fails to build + #11936: libcpprestsdk should install to staging + #11946: wilink-bt-firmware: moved from github to http://git.ti.com/ti-bt + #11961: libpri build failure + #12086: dhcp shared libraries not installed to target + #12096: tcpreplay: build fails if libdumbnet-dev is installed in the.. + #12106: daq: build fails if libdumbnet-dev is installed in the host + #12126: vc4 has neon as hard dependency + +2019.08-rc1, released August 9th, 2019 + + Fixes all over the tree and new features. + + toolchain: ARC toolchain updated to 2019.03 (binutils 2.32.51 + / GCC 8.3.1 / glibc 2.29), ARM AAarch64/ARM toolchains updated + to 2019.03. Add GCC 9.1.0, remove GCC 4.9 and 6.5, add GDB + 8.3, remove GDB 7.12 and 8.0.1, default to GDB 8.2, GCC + 8.3.0. Musl updated to 1.1.23, bringing support for RISC-V 64. + + Architectures: Internal toolchain support for C-SKY, support + for ARC HS48 v3.1 and HS38 with Quad MAC & FPU, support for + ARM A76, A76/A55 big.LITTLE, emag, neoverse-N1, phecda and + tsv110. + + Filesystems: Pass extra pax options to tar for binary + reproducibility. Build host-cpio for the --reproducible option + support when BR2_REPRODUCIBLE is enabled. Genimage updated to + version 11, bringing GPT support. + + Br2-external: Add support for injecting additional options to + the list of preconfigured external toolchains and libjpeg and + openssl providers using files under provides/. See the manual + for details. + + Ensure custom _OVERRIDE_SRCDIR_RSYNC_EXCLUSIONS are + passed before the standard exclusions so they are not ignored + by rsync when using override-srcdir. + + Gnuconfig updated to 2019-05-28, adding C-SKY support. + + test-pkg: Correct long option handling and clean output dir + after a successful build to save disk space. + + support/testing: Emulate a machine with 256MB RAM to fix + issues with certain tests running out of memory, use + virtio-rng to provide needed entrophy. + + pkg-stats: support outputting in JSON format with --json for + easier post processing. The classic HTML output is still + available with --html. Parallelize access to + release-monitoring.org to speed up runtime. + + Drop non-conventional version prefix/suffix/separators for + packages for better compatibility with release-monitoring.org + + Packages: + Init systems: Add basic openrc support and + _INSTALL_INIT_OPENRC variable in the infrastructure to + install openrc service scripts if enabled. + + busybox: Build each applet as a separate binary when SELinux + is enabled for more finegrained policy control. Use daemon + mode for mdev rather than legacy hotplug. + + linux: Workaround -Werror related build failure on powerpc, + by forcing CONFIG_PPC_DISABLE_WERROR on. + + Defconfigs: QEMU: use 'rootwait' kernel option to ensure root + partition is available before mounting. + + New defconfigs: HiFive Unleashed, I.MX8MM EVK and Pico, Nanopi + m4 and neo4, Nanopc t4, Olimex A33 olinuxino, Pine64 + Rockpro64, PowerPC mac99, QEMU C-SKY 610/807/810/860 virt, + Raspberry Pi 4, Raxda rock pi4, Solidrun Clearfog GT-8K + + Removed defconfigs: Odroid C2 + + New packages: bitcoin, c-capnproto, fatcat, ifmetric, jack1, + jailhouse, libubootenv, luasyslog, mender-grubenv, + murata-cyw-fw, openrc, piglit, python-colorama, python-cycler, + python-hiredis, python-ifaddr, python-inflection, + python-iptables, python-matplotlib, python-periphery, + python-pycairo, python-redis, python-termcolor, + python-tinyrpc, python-txdbus, skeleton-init-openrc, spdlog, + sshguard, stellarium, zziplib + + Removed packages: xapp_mkfontdir + + Issues resolved (http://bugs.uclibc.org): + + #11096: Upgrade from glibc 2.26 to 2.27 broke some locales... + #11271: utils/check-package fails with exception depending on.. + #11991: [numpy] segfault when compiling for RPi3 64bits + #12016: Grub fails to boot bzImage after upgrade to 2019.05 + #12046: Can’t login as root user after upgrading to buildroot.. + #12051: package/dhcp installs libtool wrapper scripts on tar... + #12076: Patchelf can link against an incompatible libc++ ver... + +2019.05.3, Released October 3rd, 2019 + + Important / security related fixes. + + Defconfigs: AArch64-efi: Fix grub configuration, Beaglebone: + Use default console settings + + Dependencies: Ensure host has JSON::PP perl module installed + if webkitgtk/wpewebkit packages are enabled as it is needed + during their build process. + + Toolchain: Generate check-headers program under BUILD_DIR + rather than /tmp to fix issues with distributions mounting + /tmp noexec. + + Updated/fixed packages: asterisk, augeas, bind, bwm-ng, cups, + cups-filters, docker-cli, docker-engine, docker-proxy, + e2fsprogs, eudev, exim, expat, gcc, go, haveged, ifplugd, + iptables, joe, kf5-extra-cmake-modules, kf5-modemmanager-qt, + kf5-networkmanager-qtlibcamera, libcurl, libgcrypt, + libgpg-error, libnftl, libnspr, libnss, libopenssl, + libtorrent-rasterbar, luksmeta, mariadb, mbedtls, mongodb, + mosquitto, ncurses, nfs-utils, nghttp2, nodejs, openvmtools, + php, protobuf, putty, qemu, samba4, swupdate, + systemd-bootchart, thttpd, uclibc, unzip, util-linux, + wireshark + + Issues resolved (http://bugs.uclibc.org): + + #10806: Allow nfs-utils to use ipv6 + #11781: mariadb build error + #12031: Build of cups-filters fails while linking, apparently due.. + #12141: eudev package is missing "render" and "kvm" groups + #12241: Permission denied while running "make" + +2019.05.2, Released September 3rd, 2019 + + Important / security related fixes. + + Filesystems: Pass extra pax options to tar for binary + reproducibility. + + Updated/fixed packages: apache, arm-trusted-firmware, + asterisk, atk, autofs, batctl, batman-adv, berkeleydb, + busybox, bzip2, clamav, cloop, cmake, collectd, connman-gtk, + dahdi-linux, dahdi-tools, daq, dehydrated, dhcp, dovecot, + dovecot-pigeonhole,, elfutils, evtest, exim, expect, giflib, + git, glib-networking, glibc, gnupg2, gnutls, go, + gst1-rtsp-server, gtkperf, gupnp-tools, gvfs, imagemagick, + imx-uuc, intel-microcode, json-glib, lftp, libbsd, libcurl, + libgit2, libgtk2, libgtk3, libmodplug, libnss, libpri, + libshout, libss7, libssh2, libvips, libxcb, linux-headers, + mdadm, mesa3d, metacity, mpg123, mosquitto, musl, nginx, + oniguruma, openblas, opencv3, openjdk, openjdk-bin, openldap, + openvmtools, pcmanfm, php, pigpio, postgresql, prboom, + proftpd, proj, python, python-django, python-idna, + python-numpy, python-urllib3, python3, qemu, qt5, qt5base, + qt5enginio, quagga, rygel, squid, subversion, tcpreplay, + unzip, vlc, vte, webkitgtk, wireless-regdb, xen, + xfont_font-util, xlib_libICE, xlib_libXfont, xlib_libXfont2, + yad, zeromq + + Issues resolved (http://bugs.uclibc.org): + + #11741: pigpio does not build host-pigpio + #11876: automount using host mount/umount + #11881: Build breaks with lftp package enabled and libexpat1-dev inst.. + #11921: dahdi fails to build + #11961: libpri build failure + #12086: (dhcpd-missing-libs) - dhcp shared libraries not installed to.. + #12096: tcpreplay: build fails if libdumbnet-dev is installed in the.. + #12106: daq: build fails if libdumbnet-dev is installed in the host + #12126: vc4 has neon as hard dependency + +2019.05.1, Released July 7th, 2019 + + Important / security related fixes. + + arch: x86: Fix typo breaking 'core-avx2' variant + + linux: Workaround -Werror related build failure on powerpc, + by forcing CONFIG_PPC_DISABLE_WERROR on. + + support/testing: Emulate a machine with 256MB RAM to fix + issues with certain tests running out of memory. + + test-pkg: Correct long option handling and clean output dir + after a successful build to save disk space. + + Defconfigs: QEMU: use 'rootwait' kernel option to ensure root + partition is available before mounting. + + Updated/fixed packages: barebox, busybox, bzip2, davfs2, + dialog, docker-cli, docker-engine, exim, expat, faad2, + haveged, irssi, libcamera, libcdaudio, libcurl, libglib2, + libressl, libsecret, lmbench, meson, monit, php, postgresql, + psplash, python-django, qt5base, tvheadend, webkitgtk, + xserver_xorg-server, znc + +2019.05, released June 2nd, 2019 + + Various fixes. + + Toolchain: Ensure pre-built Andes toolchains can only be + selected when x86 32bit support is available on the host. + Disallow PowerPC SPE ABI for GCC >= 8.x, as it is no longer + supported. + + Infra: pkg-config: Use a dedicated timestamp file rather than + .config as that gets touched by linux-4.19+, causing repeated + builds. + + Add C-SKY support to our config.sub (gnuconfig) + + Updated/fixed packages: dosfstools, botan, brotli, dropbear, + flare-engine, gst1-plugins-bad, libhtp, libnss, libopenssl, + linuxptp, matchbox-panel, mender, mutt, netsurf, + network-manager, opencv3, openjdk, openmpi, php, + python-cython, qt5multimedia, qtwayland, qt5webkit-examples, + supertux, suricata, tpm2-totp, v4l2loopback, wireshark, + wpewebkit + +2019.05-rc3, released May 25th, 2019 + + Fixes all over the tree. + + check-bin-arch: Ignore /usr/lib/grub, similar to how /lib/grub + is ignored. + + check-package: Warn about utf-8 characters in .mk files + + Linux: Default to 5.1.x series + + Updated/fixed packages: assimp, atop, chocolate-doom, cjson, + ddrescue, dhcp, ffmpeg, gerbera, glibmm, gpsd, gst-ffmpeg, + intel-microcode, jasper, keepalived, kismet, libcpprestsdk, + libcurl, libssh2, libupnp18, luarocks, mono-gtksharp3, opus, + postgresql, pcsc-lite, python, tslib, webkitgtk, + wpebackend-fdo, wpewebkit + +2019.05-rc2, released May 15th, 2019 + + Fixes all over the tree. + + Updated/fixed packages: bind, bullet, ca-certificates, + collectd, cracklib, dhcp, gdb, libinput, libtorrent-rasterbar, + linknx, lynx, mono, netsurf, optee-os, postgresql, qt5enginio, + qt5multimedia, rpm, samba4, sqlite, strace, uclibc, woff2 + + Issues resolved (http://bugs.uclibc.org): + + #11841: grub-efi.cfg not used when building EFI disk image + +2019.05-rc1, Released May 8th, 2019 + + Fixes all over the tree and new features. + + Architecture: Andes 32-bit (nds32) support added. + + Only build host-lzip / host-xz when really needed by packages, + not just when not available on the build host. + + Toolchain: Glibc bumped to 2.29, musl bumped to 1.1.22, + binutils 2.32 added, 2.28/2.29 removed, default changed to + 2.31.1. + + fs: Set FAKEROOTDONTTRYCHOWN environment variable to not + forward {f,l,}chown calls to libc when running under fakeroot + to fix issues when building in restricted environments + (E.G. user namespace with bubblewrap). + + Linux: Also build default make target to ensure extra files + like the gdb scripts enabled by CONFIG_GDB_SCRIPTS are also + built. Notice: This may mean that extra host utilities like + uboot-mkimage are needed. + + Infrastructure: show-info and -show-info make targets + added to output package metadata in JSON format for external + use. + + pkg-generic: Only tweak .la files needing it to ensure they + are not included in subsequent package file lists. + + test-pkg: Generate a basic package config if none is + specified. + + Gettext-tiny package added as an lightweight replacement for + GNU gettext for situations where NLS support is not needed. + + New defconfigs: Andes AE3XX, Freescale imx8mpico / imx8qxpmek + / T2080 QDS RDB, Licheepi zero, Orangepi R1 + + Removed defconfigs: Olimx A20 Olinuxino Lime legacy + + New packages: bats-core, bayer2rgb-neon, brickd, cog, dacapo, + enet, gettext-tiny, gli, gst1-plugins-bayer2rgb-neon, + imx-sc-firmware, intel-mediadriver, intel-mediasdk, libcamera, + libhtp, libp11, libwpe, lua-binaryheap, lua-gd, lua-lunitx, + mender-artifact, most, oniguruma, openjdk, openjdk-bin, + opensbi, optee-benchmark, optee-client, optee-examples, + optee-os, optee-test, paho-mqtt-cpp, python-aioblescan, + python-aioconsole, python-aiohttp-cors, python-aiomonitor, + python-backcall, python-jedi, python-parso, python-pyjwt, + python-terminaltables, suricata, tpm2-totp, uftp, + wpebackend-fdo, wpewebkit + + Removed packages: libump, lunit, sunxi-mali + + Issues resolved (http://bugs.uclibc.org): + + #11716: Typo on website, saying latest release is 2018.2.11 + #11756: package/syslinux: MBR's don't fit because of binutils.. + #11761: Building custom kernel 5.1-rc3 or later breaks on objtool + #11816: Only selected coreutils binaries are installed + +2019.02.11, released April 9th, 2020 + + Important / security related fixes. + + core: Fix compatibility with make 4.3+. Also fixup /lib + references in libtool .la files, similar to how it is done for + /usr/*. + + toolchain: Fix kernel headers validation check for external + toolchains. + + Updated/fixed packages: barebox-aux, bluez5_utils, busybox, + civetweb, collectd, ffmpeg, gcc, gnutls, gvfs, haproxy, + hiredis, kmscube, libical, libopenssl, libsndfile, + linux-tools, ntp, php, pure-ftpd, screen, sysdig, tor, + util-linux, vala, vlc, xserver_xorg-server + + Issues resolved (http://bugs.uclibc.org): + + #12746: "sysdig" package description points to http://sysdig.org, .. + +2019.02.10, released March 16th, 2020 + + Important / security related fixes. + + Core: Ensure package-file-lists data is correct after + incremental builds as well. + + Fix a race condition related to creating the output/staging + symlink on systems with coreutils < 8.27. + + Br2-external: Fix compatibility with make 4.3+ + + Util-linux: Ensure that hwclock is built without GPLv3 + code. Notice that builds with hwclock has contained + GPLv3-licensed code since util-linux 2.30 (Buildroot 2017.08+) + + Updated/fixed packages: armadillo, at, binutils, blktrace, + bootstrap, busybox, cairo, cups, czmq, dnsmasq, + docker-containerd, dovecot, dovecot-pigeonhole, e2fsprogs, + eudev, exim, exiv2, fbgrab, grep, gst1-validate, guile, + imagemagick, jhead, kvm-unit-tests, lapack, libcgroup, + libftdi1, libjpeg, libsigrok, libsndfile, libssh2, libsvgtiny, + libvncserver, libvorbis, libxml2, libxslt, linux, lz4, + mariadb, mbedtls, meson, mfgtools, mongoose, ncurses, ntfs-3g, + opencv3, openjpeg, openswan, openvmtools, patch, php, + postgresql, pppd, proftpd, pure-ftpd, python-django, + python-pyqt5, python3, qemu, qt5base, qt5webengine, qwt, + rdesktop, ruby, runc, samba4, shellinabox, smartmontools, + sqlcipher, squid, swupdate, sysklogd, taglib, thrift, + ti-cgt-pru, uboot, util-linux, vorbis-tools, webkitgtk, + wireshark, xen, xserver_xorg-server, zeromq, zsh + + Issues resolved (http://bugs.uclibc.org): + + #11996: opencv3 SIGILL on Cortex-A5 with VFPv4-D16 + #12331: meson issue + #12461: libglib2 build files with deep directory structure + #12606: fbgrab location has changed + +2019.02.9, released January 12th, 2020 + + Important / security related fixes. + + pkg-python infrastructure: Ensure correct compiler and linker + flags are used for compiled code + + utils/scanpypi: Remind users to update DEVELOPERS + + Updated/fixed packages: busybox, cc-tool, cpio, cups, dante, + dillo, docker-cli, docker-containerd, docker-engine, easy-rsa, + ecryptfs-utils, efl, git, glibc, gnupg2, gst1-plugins-bad, + kf5-kcoreaddons, libarchive, libgit2, libkrb5, librsvg, + libssh, libtomcrypt, libuio, lirc-tools, lvm2, + matchbox-desktop, nodejs, ntp, opencv3, openpowerlink, + python-django, python-ecdsa, python-pyasn-modules, + python-pyqt5, python-subprocess32, python3, qpdf, runc, rygel, + samba4, sdl2, wavpack, xserver_xorg-server, zip + + Issues resolved (http://bugs.uclibc.org): + + #12121: PyQt5.QtSerialPort and other modules not being built + +2019.02.8, released December 7th, 2019 + + Important / security related fixes. + + Infrastructure: Make HOST__DL_OPTS inherit from + _DL_OPTS by default, just like it is done for a number of + other package variables + + Add _KEEP_PY_FILES to exclude specific python .py files + from the removal done by BR2_PACKAGE_PYTHON{,3}_PYC_ONLY for + the (rare) case where the .py files are needed at runtime + rather than .pyc. + + Fix -reconfigure handling for packages using the kconfig + infrastructure. + + Toolchain: ensure external toolchain kernel headers version + check correctly stop the build on mismatch + + Deconfigs: beaglebone: fix boot issue + + Updated/fixed packages: am33x-cm3, asterisk, bind, chrony, + clamav, collectd, connman, faifa, gob2, haproxy, + intel-microcode, ipsec-tools, jasper, jpeg-turbo, kodi, + kvm-unit-tests, libftdi, libftdi1, libnss, libstrophe, + libsvgtiny, lvm2, lzma, mariadb, minicom, neardal, nodejs, + opencv3, openvmtools, oracle-mysql, perl-gdgraph, + perl-gdtextutil, php, postgresql, prosody, python-django, + rabbitmq-c, rauc, redis, rpcbind, socat, spice, + spice-protocol, tftpd, tiff, webkitgtk + + New packages: libmspack + + Issues resolved (http://bugs.uclibc.org): + + #12166: Compiling nodejs for SAMA5D3 always crash with illegal inst.. + #12171: Python-opencv needs config.py and config-3.7.py to run.. + #12211: host-nodejs 10.15.3 package fail to build + #12316: tzdata fails to install with empty "default local time" + +2019.02.7, Released November 10th, 2019 + + Important / security related fixes. + + support/testing: use a kernel with HW_RANDOM_VIRTIO to work + around issues with lack of entrophy + + Toolchain: Also copy libssp.so for external toolchains if SSP + is enabled to handle toolchains providing SSP support in + libssp rather than in the C library + + Download: Also use the package download method for extra + downloads from the same site, so it does not get confused by + URLs containing '+' + + Fakeroot now works correctly under Microsoft Windows 10 + Services for Linux, which does not provide SYSV IPC support + + utils/test-pkg: ensure to exit with an error upon failure + + Updated/fixed packages: asterisk, azmq, cups-filters, + domoticz, duma, elf2flt, eudev, exfat, exfat-utils, fakeroot, + file, freerdp, gd, ghostscript, go, gvfs, intel-microcode, + kvm-unit-tests, libarchive, libnspr, libnss, libopenssl, + libpcap, libpciaccess, librsvg, libseccomp, libsigrok, + libtorrent, libunwind, linux-tools, lua-sdl2, lxc, minizip, + mjpegtools, mongoose, php, python, python-pysnmp-apps, + python3, qemu, qt5base, ruby, safeclib, samba4, sdl_mixer, + sox, sudo, systemd, tcpdump, unscd, util-lkinux, vtun, xvisor, + yaffs2utils + + Issues resolved (http://bugs.uclibc.org): + + #11366: [2018.08] SysV IPC not available for fakeroot on WSL + #12261: sudo versions prior to 1.8.28 are affected + +2019.02.6, Released October 3rd, 2019 + + Important / security related fixes. + + Defconfigs: AArch64-efi: Fix grub configuration, Beaglebone: + Use default console settings + + Dependencies: Ensure host has JSON::PP perl module installed + if webkitgtk/wpewebkit packages are enabled as it is needed + during their build process. + + Toolchain: Generate check-headers program under BUILD_DIR + rather than /tmp to fix issues with distributions mounting + /tmp noexec. + + Updated/fixed packages: asterisk, augeas, bind, bwm-ng, cups, + cups-filters, docker-cli, docker-engine, docker-proxy, + dropbear, e2fsprogs, eudev, exim, expat, gcc, go, ifplugd, + haveged, iptables, joe, kf5-extra-cmake-modules, + kf5-modemmanager-qt, kf5-networkmanager-qt, libcurl, + libgcrypt, libgpg-error, libnftl, libnspr, libnss, libopenssl, + luksmeta, mariadb, mbedtls, mongodb, mosquitto, ncurses, + nfs-utils, nghttp2, nodejs, openvmtools, php, protobuf, putty, + qemu, qt5base, samba4, swupdate, systemd-bootchart, thttpd, + uclibc, unzip, util-linux, wireshark + + Issues resolved (http://bugs.uclibc.org): + + #10806: Allow nfs-utils to use ipv6 + #11781: mariadb build error + #12031: Build of cups-filters fails while linking, apparently due.. + #12141: eudev package is missing "render" and "kvm" groups + #12181: dropbear: norootlogin (-w) no longer works when PAM is enabled + #12241: Permission denied while running "make" + +2019.02.5, Released September 2nd, 2019 + + Important / security related fixes. + + Filesystems: Pass extra pax options to tar for binary + reproducibility. + + Updated/fixed packages: apache, arm-trusted-firmware, + asterisk, atk, autofs, batctl, batman-adv, berkeleydb, brotli, + busybox, bzip2, clamav, cloop, cmake, collectd, connman-gtk, + cryptopp, dahdi-linux, dahdi-tools, daq, dehydrated, dovecot, + dovecot-pigeonhole,, elfutils, evtest, exim, expect, giflib, + git, glib-networking, glibc, gnupg2, gnutls, go, + gst1-rtsp-server, gtkperf, gupnp-tools, gvfs, imagemagick, + imx-uuc, intel-microcode, json-glib, lftp, libbsd, libcurl, + libgit2, libgtk3, libmodplug, libnss, libpri, libshout, + libss7, libssh2, libvips, libxcb, linux-headers, mdadm, + mesa3d, metacity, mpg123, mosquitto, musl, nginx, openblas, + opencv3, openldap, openvmtools, pcmanfm, php, pigpio, + postgresql, prboom, proftpd, proj, python, python-django, + python-idna, python-numpy, python-urllib3, python3, qemu, qt5, + qt5base, qt5enginio, quagga, rygel, squid, subversion, + tcpreplay, unzip, vlc, vte, webkitgtk, weston, wireless-regdb, + xen, xfont_font-util, xlib_libICE, xlib_libXfont, + xlib_libXfont2, yad, zeromq + + Issues resolved (http://bugs.uclibc.org): + + #11741: pigpio does not build host-pigpio + #11876: automount using host mount/umount + #11881: Build breaks with lftp package enabled and libexpat1-dev inst.. + #11921: dahdi fails to build + #11961: libpri build failure + #12096: tcpreplay: build fails if libdumbnet-dev is installed in the.. + #12106: daq: build fails if libdumbnet-dev is installed in the host + #12126: vc4 has neon as hard dependency + +2019.02.4, Released July 10th, 2019 + + Important / security related fixes. + + arch: x86: Fix typo breaking 'core-avx2' variant, add Westmere + variant. + + linux: Workaround -Werror related build failure on powerpc, + by forcing CONFIG_PPC_DISABLE_WERROR on. + + support/testing: Emulate a machine with 256MB RAM to fix + issues with certain tests running out of memory. + + test-pkg: Correct long option handling and clean output dir + after a successful build to save disk space. + + Ensure custom _OVERRIDE_SRCDIR_RSYNC_EXCLUSIONS are + passed before the standard exclusions so they are not ignored + by rsync when using override-srcdir. + + Defconfigs: QEMU: use 'rootwait' kernel option to ensure root + partition is available before mounting. + + Updated/fixed packages: barebox, bzip2, davfs2, dbus, dialog, + docker-cli, docker-engine, expat, faad2, ffmpeg, freeswitch, + gerbera, haveged, irssi, libcdadio, libgit2, libglib2, + libsecret, libvncserver, lmbench, logrotate, mariadb, meson, + mongoose, monit, mpd, openblas, php, postgresql, psplash, + python, python-django, python3, qt5base, samba4, taglib, + tvheadend, vlc, webkitgtk, xserver_xorg-server, znc + +2019.02.3, Released June 7th, 2019 + + Important / security related fixes. + + Infra: pkg-config: Use a dedicated timestamp file rather than + .config as that gets touched by linux-4.19+, causing repeated + builds. + + check-bin-arch: Also ignore /usr/lib/grub to support merged + /usr setups, similar to how /lib/grub is ignored. + + gnuconfig/config.sub: Add C-SKY architecture support. + + Updated/fixed packages: assimp, atftp, atop, botan, busybox, + ca-certificates, chocolate-doom, cjson, coreutils, cracklib, + ddrescue, dhcp, docker-cli, docker-containerd, docker-engine, + dosfstools, dovecot, dovecot-pigeonhole, dropbear, exim, + ffmpeg, flare-engine, gcc, gdb, gerbera, glibmm, go, gpsd, + gst-ffmpeg, gst1-plugins-bad, gst1-plugins-base, imagemagick, + intel-microcode, jasper, kf5-kcoreaddons, kismet, libcurl, + libglib2, libnss, libopenssl, libsigrok, libssh2, libupnp18, + linuxptp, luajit, lynx, matchbox-panel, mender, + netcat-openbsd, netsurf, nfs-utils, opus, orc, owfs, + pcsc-lite, php, popt, postgresql, python, python-cython, + python-django, python-ply, qt5enginio, rpm, runc, samba4, + sqlite, subversion, supertux, systemd, tslib, uclibc, + v4l2loopback, webkitgtk, woff2 + + Issues resolved (http://bugs.uclibc.org): + + #11816: Only selected coreutils binaries are installed + #11841: grub-efi.cfg not used when building EFI disk image + #11911: systemd v240 memory leak in systemd-journald + +2019.02.2, Released April 29th, 2019 + + Important / security related fixes. + + Only build host-lzip / host-xz when really needed by packages, + not just when not available on the build host. + + fs: Set FAKEROOTDONTTRYCHOWN environment variable to not + forward {f,l,}chown calls to libc when running under fakeroot + to fix issues when building in restricted environments + (E.G. user namespace with bubblewrap). + + Linux: Also build default make target to ensure extra files + like the gdb scripts enabled by CONFIG_GDB_SCRIPTS are also + built. Notice: This may mean that extra host utilities like + uboot-mkimage are needed. + + Defconfigs: ASUS tinker and Amarula vyasa rk3822: Support + larger kernel images, Atmel SAM5D27, SAM5D2,3,4 xplained: + Increase rootfs size to fit utilities, Raspberry Pi 64bit: + Include overlays in sdcard image + + Updated/fixed packages: android-tools, apache, bind, binutils, + busybox, civetweb, cjson, copas, davfs2, docker-cli, + docker-containerd, docker-engine, dovecot, dovecot-pigeonhole, + freerdp, gerbera, ghostscript, git, gnutls, go, gst-omx, + gst1-plugins-base, gst1-plugins-ugly, haproxy, hostapd, + ipsec-tools, libfreefare, libfuse, libkrb5, libpng, libxml2, + libxslt, linknx, linux, linux-firmware, linux-tools, live555, + lldp, lrzsz, lynx, madplay, make, minicom, mongodb, msmtp, + musl, mutt, neon, netsnmp, numactl, opus, perl, php, + postgresql, pure-ftpd, python-urllib3, python3, qt5base, + rapidxml, rpm, rsyslog, ruby, runc, samba4, sane-backends, + softether, stunnel, sysklogd, syslinux, syslog-ng, + systemd-bootchart, thttpd, thrift, tiff, tor, tpm2-tools, + tpm2-tss, webkitgtk, yaffs2utils, wget, wpa_supplicant, wsapi, + xapp_xfd, xapp_xload, xlib_libXpm, xserver_xorg-server, xz, + znc + + Issues resolved (http://bugs.uclibc.org): + + #11756: package/syslinux: MBR's don't fit because of binutils.. + #11761: Building custom kernel 5.1-rc3 or later breaks on objtool + +2019.02.1, Released March 29th, 2019 + + Important / security related fixes. + + pkg-generic: Only tweak .la files needing it to ensure they + are not included in subsequent package file lists. + + test-pkg: Generate a basic package config if none is + specified. + + Updated/fixed packages: asterisk, avahi, bash, beecrypt, + binutils, busybox, clamav, cups, efl, eigen, fetchmail, file, + flashrom, fltk, gerbera, git, glibc, gnuradio, go, + gst-plugins-bad, intel-gmmlib, jq, kexec, kf5-modemmanager-qt, + leveldb, libcurl, libdrm, libftdi1, libglib2, libiio, libpcap, + libseccomp, libssh2, log4cplus, lvm2, mariadb, mender, + mongodb, mosquitto, musl, nodejs, ntp, openjpeg, owfs, php, + pure-ftpd, putty, python-aiojobs, qt5webkit, rdesktop, samba4, + sunxi-tools, supertux, swupdate, tpm2-abrmd, tpm2-tss, + wavemon, wireshark, vsftpd, xapp_xdm, xen, + xdriver_xf86-video-fbdev, xlib_libXdmcp + + Issues resolved (http://bugs.uclibc.org): + + #11716: Typo on website, saying latest release is 2018.2.11 + +2019.02, released March 4th, 2019 + + Minor fixes. + + Libressl support added for Qt 5.6 as a replacement for + openssl, as 5.6 is not compatible with openssl 1.1.x. + + Updated/fixed packages: cutelyst, devmem2, gqrx, + gst-plugins-bad, libraw, libsoxr, qt5base, runc, systemd, tor + +2019.02-rc3, released March 1st, 2019 + + Fixes all over the tree. + + Openssl support dropped from Qt 5.6, as it isn't compatible + with openssl 1.1.x. + + Toolchain: GCC 8.x updated to 8.3.0, fixing a number of + issues. + + Dependencies: Require CMake 3.8 or newer to fix compilation + issue with certain packages. If not available, host-cmake will + instead be built. + + Printvars: Fix performance regression since 2018.02 + + Scanypi: Correctly handle underscores in python package names. + + Updated/fixed packages: botan, clamav, cryptopp, i2pd, + ibrcommon, iproute2, libcpprestsdk, libssh, lua-curl, + luaexpat, qt5base, runc, stress-ng, syslinux, systemd, + upmpdcli, zbar + + Issues resolved (http://bugs.uclibc.org): + + #9966: util-linux-2.30/.stamp_built' failed + #11696: possible typo in board/pc/post-build.sh + +2019.02-rc2, released February 23th, 2019 + + Fixes all over the tree. + + Removed zynq_zybo defconfig, as it hasn't seen any update + since it was added in 2016, and uses a U-Boot version not + compatible with openssl-1.1.x. + + Linux: Ignore user supplied downloadable hashes, as no hash + checksums are available for those. + + Updated/fixed packages: bind, cryptopp, docker-containerd, + dtc, efivar, gdb, imagemagick, ipmiutil, libcpprestsdk, + libcurl, libgpiod, libid3tag, libv4l, log4cplus, luvi, + madplay, mender, mosquitto, poco, postgresql, proftpd, + pulseaudio, python-django, qemu, qt5base, qwt, rabbitmq-c, + reaver, safeclip, stress-ng, swupdate, syslog-ng, systemd, + tor, unzip, xenomai + + Issues resolved (http://bugs.uclibc.org): + + #11501: compile sdl2 with enable wayland + #11681: .. unable to initialize decompress status for section.. + +2019.02-rc1, released February 13th, 2019 + + Fixes all over the tree and new features. + + + Dependencies: + + Require Python >= 2.7 as it is needed for E.G. building + libglib2. + + Ensure GNU gzip is used for reproducible tarballs (instead of + pigz) + + + Infrastucture: + + Ensure the PLATFORM and OS environment variables are not set, + as they cause build issues for some packages. + + The package list infrastructure now correctly handles packages + installing files with old mtime. + + Add a config option to force all optional host utilities to be + built, even if suitable versions are available on the build + machine. + + graph-build-time: Also show time spent downloading + + Download: fixes for SSH/SCP support + + Ensure user provided permissions override permissions from + packages. + + SDK: Fix handling of relative symlinks (targets starting with + '.' or '..') + + BR2_SYSTEM_DEFAULT_PATH setting to customize the default path + for processes. + + The custom skeleton logic will now populate the needed /bin, + /lib, /sbin directories/symlinks if not present. Merged /usr + can now be used with a custom skeleton. + + Rootfs overlays can now override symbolic links from + packages. This was disabled to ensure the correct symbolic + links are present when merged /usr is used. Instead validate + that the rootfs overlays do not include invalid /bin, /sbin + and /lib entries. + + The waf infrastructure now support the _SUBDIR variable, + similar to the other package types. + + cmake: Also set CMAKE_SYSTEM_VERSION in toolchainfile.cmake + + Various improvements to the meson infrastructure. + + Luarocks: A Buildroot addon has been added to automate + creating a Buildroot package from luarocks, similar to + scancpan and scanpypi. + + scanpypi: protect against zip-slip vulnerability in zip/tar + handling + + check-package: fix Python 3 support + + get-developers: Fix behaviour when called from elsewhere than + the toplevel directory. + + pkg-stats: Show latest upstream version of each package, based + on data from release-monitoring.org + + kconfig: Fix for make linux-menuconfig / uboot-menuconfig from + a clean tree when ccache is enabled. + + Default to sha256 password encoding, drop md5 support. + + + Architecture: + + Support for RISC-V 32bit architecture, ARM A55, 75 and Saphira + variants, MIPS support for mips32r3, mips64r3 and Marvell + Octeon II/III variants. + + + Toolchain: + + ARC toolchain 2018.09, ARM 8.2-2018.11, Codescape IMG/MTI MIPS + 2018.09-02, MUSL 1.1.21, GCC 6.5.0 / 7.4.0, GDB 8.2.1 + + + Packages: + + openssl: Bump to 1.1.1x series, bringing TLSv1.3 support and + long term support. + + fftw: Split into fftw-{single,double,long-double,quad} + packages for the different data precision options. + + libcurl: Now has explicit TLS backend selection options. + + linux: Support building device tree blobs with the -@ option + for device tree overlays. + + weston: The weston-imx i.MX variant is now used when + imx-gpu-viv is enabled + + pkgconf: Update to 1.5.3, which brings support for + --define-prefix (used by GStreamer) + + Add host-python3-setuptools package to handle host python + packages needing python3 with setuptools support. + + + New defconfigs: Aarch64 EFI, Orangepi one plus, Orangepi lite + 2, QEMU RISC-V 32bit virt, Rock64 + + + New packages: brcm-patchram-plus, clinfo, cunit, docker-cli, + erlang-p1-eimp, exempi, fail2ban, fftw-double, + fftw-double-long, fftw-quad, fftw-single, gerbera, grpc, + gst1-shark, intel-gmmlib, iwd, kf5-kcoreaddons, libeastl, + libpackagekite, libtorrent-rasterbar, lua-std-debug, + lua-std-normalize, mini-snmpd, netsurf, pamtester, pcm-tools, + python-aiodns, python-aiohttp, python-aiohttp-jinja2, + python-aiohttp-remotes, python-aiohttp-security, + python-aiohttp-session, python-aiohttpd-sse, python-aiojobs, + python-cchardet, python-pycares, python-sentry-sdk, + python-wtforms, python3-setuptools, rcw, rtc-tools, shim, + utp_com, vmtouch, websocketpp + + Removed packages: fftw, lua 5.2.x, luacrypto, perl-time-hires, + python-pyqt, qt, qtuio, tn5250 + + Issues resolved (http://bugs.uclibc.org): + + #10851: Patch to handle numpad Enter key properly + #11066: x11r7 X11 S40xorg leads to a black screen on QEMU x86.. + #11126: Bash Shell Programming using Buildroot + #11426: pps-tools bash dependency + #11476: stdio2.h error invalid use of __builtin_va_arg_pack + #11536: dt-utils building fails with glibc 2.28 + #11546: open-vm-tools with glibc 2.28 + #11566: Fix init script + #11576: Unable to start apache with event MPM on raspberry pi 3 + #11591: [pkgconf 1.5.3] xserver OpenGL support is missing + #11606: libjpeg has no Config.in + #11616: 2018.02.09 fails to build libzlib with full RELRO.. + #11656: Custom device tree and u-boot boot.scr not integrated.. + #11666: Touchscreen with (Py)Qt5 should use tslib instead of evdev + +2018.11.4, Released March 28th, 2019 + + Important / security related fixes. + + Updated/fixed packages: avahi, beecrypt, binutils, botan, + busybox, clamav, cups, devmem2, efl, fetchmail, file, fltk, + gcc, gdb, git, go, gst-plugins-bad, iproute2, jq, + kf5-modemmanager-qt, leveldb, libopenssl, libraw, libseccomp, + libsoxr, libssh2, mariadb, mosquitto, nodejs, ntp, openjpeg, + perl, php, putty, qt5webkit, rdesktop, runc, samba4, swupdate, + systemd, tor, vsftpd, wireshark, xapp_xdm, xen, xlib_libXdmcp + +2018.11.3, Released February 23th, 2019 + + Important / security related fixes. + + Ensure the PLATFORM and OS environment variables are not set, + as they cause build issues for some packages. + + The package list infrastructure now correctly handles packages + installing files with old mtime. + + Linux: Skip hash checks for user supplied downloadable + patches, as no hash checksums are available for those. + + scanpypi: protect against zip-slip vulnerability in zip/tar + handling + + Download: fixes for SSH/SCP support + + SDK: Fix handling of relative symlinks (targets starting with + '.' or '..') + + Updated/fixed packages: bind, dhcpcd, docker-compose, + docker-containerd, docker-engine, dovecot, dovecot-pigeonhole, + dtc, efivar, ghostscript, gnuradio, imagemagick, jpeg-turbo, + libarchive, libb64, libcurl, libgeotiff, libgpiod, libid3tag, + libupnp18, log4cplus, madplay, meson, mosquitto, openssh, php, + poco, postgresql, proftpd, pulseaudio, python, python-django, + python3, qt5base, reaver, runc, sg3_utils, sqlcipher, + swupdate, systemd, unzip, webkitgtk, xenomai + +2018.11.2, Released January 30th, 2019 + + Important / security related fixes. + + Defconfigs: Fixes for imx6slevk, imx7dsabresd, imx8mqevk, Lego + EV3, QEMU AArch64-virt + + Download: Fix scp download handling + + check-package: fix Python 3 support + + get-developers: Fix behaviour when called from elsewhere than + the toplevel directory. + + kconfig: Fix for make linux-menuconfig / uboot-menuconfig from + a clean tree when ccache is enabled. + + cmake: Also set CMAKE_SYSTEM_VERSION in toolchainfile.cmake + + Updated/fixed packages: acpica, apache, apr, avrdude, cargo, + cc-tool, dash, dhcpdump, dmalloc, docker-containerd, efivar, + fwts, glibc, gnuchess, gnupg2, go, leveldb, libarchive, + libassuan, libftdi1, libgpg-error, libhttpparser, libkcapi, + libmad, libsndfile, libsquish, liburiparser, libwebsock, + libxml2, lighttpd, llvm, lm-sensors, lua-msgpack-native, lxc, + mariadb, mbedtls, meson, mosquitto, netatalk, nodejs, odhcp6c, + openresolv, openssh, pango, patchelf, php, python-django, + python-numpy, python-pyyaml, rauc, rp-pppoe, s6-networking, + samba4, sdl_sound, shairport-sync, sqlite, subversion, + sunxi-cedarx, swupdate, systemd, tcpreplay, tekui, tmp2-abrmd, + tpm2-tools, tpm2-tss, udisks, unixodbc, usb_modeswitch, + webkitgtk, wireshark, wolfssl, xapp_rgb, xenomai, xerces + + Issues resolved (http://bugs.uclibc.org): + + #11576: Unable to start apache with event MPM on raspberry pi 3 + +2018.11.1, Released December 20th, 2018 + + Important / security related fixes. + + defconfigs: Fixes for bananapi m2 ultra, ci20 + + Download wrapper: Fix for urlencode handling + + Updated/fixed packages: asterisk, docker-compose, + docker-engine, dt-utils, gnutls, go, grub, libbsd, libcurl, + libpgpme, libiscsi, liblo, libmpd, libopenssl, liboping, + libpam-tacplus, libpjsip, linux-firmware, liquid-dsp, + lua-cqueue, luvi, lxc, lynx, nginx, nodejs, openzwave, php, + pps-tools, proftpd, prosody, sdl2_net, squashfs, swupdate, + uclibc, vtu, webkitgtk, wine, xen + + New packages: docker-cli + + Issues resolved (http://bugs.uclibc.org): + + #11426: pps-tools bash dependency + #11536: dt-utils building fails with glibc 2.28 + +2018.11, Released December 1st, 2018 + + Minor fixes. + + Updated/fixed packages: c-ares, quagga, squid + +2018.11-rc3, released November 30th, 2018 + + Fixes all over the tree. + + Defconfigs: Fixes for Armadeus APF27, imx6sabre, Olimex A20 + olinuxino lime legacy, Orangepi zero plus 2, PC, Riotboard. + + graph-depends: Fix for package names starting with a non-alpha + character. + + Updated/fixed packages: alsa-utils, botan, dante, domoticz, + dtc, freetype, gauche, gcc, gdb, ghostscript, glibc, + imx-usb-loader, libbsd, libid3tag, libkrb5, libmicrohttpd, + libopenssl, libsoxr, linux, motion, msgpack, mtd, + perl-net-ssleay, php, popt, python-numpy, qt5declarative, + samba4, shadowsocks-libev, stress-ng, systemd, usb_modeswitch, + webkitgtk, valgrind, weston, xfsprogs + +2018.11-rc2, released November 21th, 2018 + + Fixes all over the tree. + + fs: Drop intermediate tarball from the filesystem handling to + fix an issue with xattrs handling related to fakeroot. Ensure + tarball target includes xattrs. + + download: Fix confusion in git submodule handling if dl/ is a + symlink. + + genrandconfig: Fix missing newline in BR2_WGET handling, + causing the following line to be ignored. This would affect + BR2_ENABLE_DEBUG, BR2_INIT_BUSYBOX, BR2_INIT_SYSTEMD, + BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV, BR2_STATIC_LIBS or + BR2_PACKAGE_PYTHON_PY_ONLY depending on the randomization. + + show-build-order: Also include the dependencies of + rootfs-common. + + Fix a number of build issues in packages for the recently + merged RISC-V architecture support. + + Updated/fixed packages: dt-utils, easydbus, elfutils, + flare-engine, flatcc, glibc, gstreamer, gstreamer1, imx-uuc, + libassuan, libcorrect, libiscsi, libkrb5, libmicrohttpd, + libnftnl, libnspr, libnss, libsemanage, libsigsegv, libv4l, + ltp-testsuite, luv, luvi, make, ncmpc, netplug, openocd, + prosody, qemu, rpm, sconeserver, shadowsocks-libev, + supertuxcart, syslinux, systemd, trace-cmd, uclibc, + uclibc-ng-test, vtun, webkitgtk, weston, wireshark, xen, + xlib_libfontenc + + Issues resolved (http://bugs.uclibc.org): + + #11086: download/git submodule breaks on symlinked dl folder + #11216: Capabilities not applied to filesystem + +2018.11-rc1, released November 9th, 2018 + + Fixes all over the tree and new features. + + Architecture: RISC-V support (64bit) added. + + Toolchain: Glibc bumped to 2.28. Fortran support for external + toolchains. ARM (Linaro) toolchains updated to 8.2-2018.08. + + Hardening flags (RELRO) are now handled by the toolchain + wrapper instead of explicitly through CFLAGS/LDFLAGS, fixing a + number of issues. + + Filesystems: Support for creating btrfs and f2fs filesystems + added. + + Add a number of patches to fix build errors for host utilities + on modern distributions using glibc-2.28. + + mkusers: Ensure existing group members are preserved when a + group is reprocessed. + + printvars: Fix issue with exceeding shell command line length + limits for certain setups. + + Workaround added for incompatibility issues between host-dtc + and older U-Boot and Linux kernel versions. + + Detect and reject build paths containing '@', as this confuses + a number of packages, including GCC. + + utils/diffconfig: Make it work for (non-Buildroot) config + files not using the BR2_ prefix. + + New defconfigs: Amarula a64-relic, Bananapi m2 ultra, Embest + riotboard, Hardkernel Odroid XU-4, QEMU riscv64-virt. + olimex_a20_olinuxion_lime_mali is renamed to _legacy. + + OpenCL infrastructure support added, similar to how OpenGL is + handled. + + Linux-headers: Support for kernel headers from a custom + tarball / git repo added. + + New packages: bird, bluez5_utils-headers, btrfs-progs, + checksec, davici, duktape, ell, haproxy, libclc, libcorrect, + libopencl, libopenresolv, nss-myhostname, + perl-apache-logformat-compiler, perl-appconfig, + perl-astro-suntime, perl-class-inspector, perl-class-load, + perl-class-method-modifiers, perl-class-std, + perl-class-std-fast, perl-cookie-baker, perl-data-dump, + perl-data-optlist, perl-data-uuid, perl-data-manip, + perl-dbd-mysql, perl-dbi, perl-devel-globaldestruction, + perl-devel-stacktrace, perl-devel-stacktrace-ashtml, + perl-device-serialport, perl-dist-checkconflicts, + perl-exporter-tiny, perl-file-sharedir, perl-file-slurp, + perl-filesys-notify-simple, perl-hash-multivalue, + perl-http-entity-parser, perl-http-headers-fast, + perl-http-multipartparser, perl-io-interface, + perl-io-socket-multicast, perl-json-maybexs, perl-mime-tools, + perl-module-implementation, perl-module-runtime, perl-moo, + perl-number-bytes-human, perl-package-stash, perl-params-util, + perl-plack, perl-posix-strftime-compiler, perl-role-tiny, + perl-streams-buffered, perl-sub-exporter-progressive, + perl-sub-install, perl-sub-quote, perl-sys-cpu, + perl-sys-meminfo, perl-sys-mmap, perl-time-parsedate, + perl-type-tiny, perl-www-form-urlencoded, perl-x10, pigpio, + python-async-timeout, python-falcon, python-fire, + python-mimeparse, python-multidict, python-passlib, + python-pigpio, python-pip, python-ply, python-py, + python-pyasn1, python-pyasn1-modules, python-pycryptodomex, + python-pyhamcrest, python-pysmi, python-scapy, python-semver, + python-serial-asyncio, python-typing, python-uvloop, + pythonwrapt, python-yarl, python-zeroconf, riscv-pk, sedutil, + spandsp, tini, waffle, xapian + + Removed packages: bootutils, dsp-tools, expedite, gst-dsp, + xloader + + Issues resolved (http://bugs.uclibc.org): + + #11116: Buildroot should set PYTHON_EGG_CACHE instead of writing .. + #11156: In python3 module 'socket' has no attribute 'AF_BLUETOOTH' + #11166: Erlang bad argument on valid uint64 when crosscompiled on.. + #11206: zlib: fails to build with Linaro toolchain, BR2_RELRO_FULL.. + #11241: ACPID shouldn't depend on BR2_x86_64 || BR2_i386 + #11251: Util scanpypi failes when package change - to _ in tar file + #11266: qt5base-5.11.1 does not compile with musl, complains about.. + #11286: python-rpi-gpio only should depend on BR2_arm || BR2_aarch64 + #11321: Latest master fails to build readline with RELRO FULL + #11326: sysvinit fails to build in latest GIT master + #11331: Internal application no longer builds with latest GIT master + #11336: nfs-utils fails to build in latest GIT master + #11351: build root-2018-08, linaro aarch64 compile error + #11376: mdmon binary missing + #11391: Valgind availability on ARM + #11396: uboot environment image checksum invalid if target is big endian + #11421: GCC error message for ARM Cortex-A9/ARM.V7 + #11451: Can't find libmpfr.so.4 when using external toolchain on ubuntu.. + #11481: Docs: Is external.desc required? + +2018.08.4, Released December 20th, 2018 + + Important / security related fixes. + + Defconfigs: Fixes for ci20, orangepi zero plus 2 + + Download wrapper: Fix for urlencode handling + + Updated/fixed packages: c-ares, dante, docker-compose, + domoticz, freetype, ghostscript, gnutls, libcurl, libgpgme, + libid3tag, libiscsi, libmpd, libopenssl, liboping, libpjsip, + linux-firmware, liquid-dsp, luvi, lynx, msgpack, nginx, + nodejs, php, popt, pps-tools, prosody, python-numpy, + python-requests, samba4, sdl2_net, squashfs, swupdate, + systemd, uclibc, vte, webkitgtk, wine, xfsprogs + + Issues resolved (http://bugs.uclibc.org): + + #11426: pps-tools bash dependency + +2018.08.3, Released November 26th, 2018 + + Important / security related fixes. + + fs: Drop intermediate tarball from the filesystem handling to + fix an issue with xattrs handling related to fakeroot. Ensure + tarball target includes xattrs. + + download: Fix confusion in git submodule handling if dl/ is a + symlink. + + toolchain: Only allow enabling stack protection on + architectures with control flow integrity (CFI) support. Only + allow FORTIFY_SOURCE support on gcc >= 6. + + genrandconfig: Fix missing newline in BR2_WGET handling, + causing the following line to be ignored. This would affect + BR2_ENABLE_DEBUG, BR2_INIT_BUSYBOX, BR2_INIT_SYSTEMD, + BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV, BR2_STATIC_LIBS or + BR2_PACKAGE_PYTHON_PY_ONLY depending on the randomization. + + show-build-order: Also include the dependencies of + rootfs-common. + + Defconfigs: Fixes for Armadeus APF27, imx6sabre, Olimex A20 + olinuxino lime legacy, Orangepi zero plus 2. + + graph-depends: Fix for package names starting with a non-alpha + character. + + Updated/fixed packages: attr, audit, bind, brotli, busybox, + dtc, easydbus, elfutils, flare-engine, flatcc, gauche, gcc, + giflib, gpsd, lcdproc, libcurl, libiscsi, libkcapi, libnfs, + libnspr, libnss, libsemanage, liburiparser, lighttpd, + lua-curl, mariadb, mmc, mosquitto, mysql, ncmpc, neardal, + netplug, network-manager, nfs-utils, nginx, openocd, openswan, + p11-kit, postgresql, prosody, qemu, qt, rpm, ruby, samba4, + squid, supertuxkart, systemd, tar, trace-cmd, traceroute, + twolame, uclibc, usb_modeswitch, vtun, webkitgtk, weston, + xdriver_xf86-video-geode, xlib_libfontenc, xserver_xorg-server + + Issues resolved (http://bugs.uclibc.org): + + #11086: download/git submodule breaks on symlinked dl folder + #11481: Docs: Is external.desc required? + +2018.08.2, Released October 25th, 2018 + + Important / security related fixes. + + Workaround added for incompatibility issues between host-dtc + and older U-Boot and Linux kernel versions. + + Detect and reject build paths containing '@', as this confuses + a number of packages, including GCC. + + utils/get-developers: Add -e option for use with git + send-email. + + utils/diffconfig: Make it work for (non-Buildroot) config + files not using the BR2_ prefix. + + u-boot: Fix for environment image handling on big endian + systems. + + Updated/fixed packages: binutils, ca-certificates, + cups-filters, dtc, erlang, file, freetype, gcc, git, gvfs, + jasper, leveldb, libarchive, libssh, live555, ljlinenoise, + mariadb, mongoose, netsnmp, nmap, nodejs, ntp, open-plc-utils, + poco, psmisc, ptpd2, python-enum34, qemu, qt, qt5base, + setools, spice, spice-protocol, tinc, ustr, wireshark, + + Issues resolved (http://bugs.uclibc.org): + + #11396: uboot environment image checksum invalid if target is big endian + +2018.08.1, Released October 7th, 2018 + + Important / security related fixes. + + Add a number of patches to fix build errors for host utilities + on modern distributions using glibc-2.28. + + mkusers: Ensure existing group members are preserved when a + group is reprocessed. + + printvars: Fix issue with exceeding shell command line length + limits for certain setups. + + Updated/fixed packages: acpid, android-tools, apache, + arp-scan, bandwidthd, bind, brltty, clamav, connman, cppcms, + domoticz, dtc, fio, gcc, gdb, ghostscript, gnupg, httpping, + igmpproxy, imlib2, ipsec-tools, libesmtp, libnfs, libxslt, + links, lua, mosquitto, nilfs-utils, ocrad, parted, php, + python-django, screen, shairport-sync, strongswan, + vboot-utils, webkitgtk, wireguard, x265 xen, xlib_libXdmcp, + xlib_libXfont, xlib_libXft, xlib_libxshmfence, + xutil_makedepend, zeromq + +2018.08, Released September 6th, 2018 + + Minor fixes. + + Known issues: + + - Glibc 2.28 on the build host breaks compilation of a number + of host packages. 2018.08 contains fixes for some of these + packages, but not all. Consider building on hosts (or in + containers) using older Glibc versions. + + - host-dtc 1.4.7 breaks compilation of older U-Boot and Linux + kernel configurations using FDT/DTC. Consider updating the + Linux kernel to >= 4.17 and U-Boot to >= 2018.07 or + backporting commit 9130ba8846 (scripts/dtc: Update to + upstream version v1.4.6-9-gaadd0b65c987) for the Linux + kernel / commit db405d1980 for U-Boot. + Alternatively revert commit 7b929ddcf0 (dtc: bump version to + 1.4.7) and ensure your build host does not have the libfdt + development headers installed. + + Updated/fixed packages: busybox, chipmunk, cutelyst, + domoticz, gcc, imagemagick, lcms2, libcurl, mediastreamer, + moarvm, php, qt, qt5virtualkeyboard, qt5webengine, screen, + sdl2, squashfs, uboot, xen + + Issues resolved (http://bugs.uclibc.org): + + #11261: ccache using wrong cached objects + #11276: Understanding the patch for kernel-4.9 and other.. + +2018.08-rc3, Released August 31th, 2018 + + Fixes all over the tree. + + linux: additional improvements to the flex / bison dependency + handling, use system provided variant if available. Ensure + toolchain is available when configuring for 4.18+ support. + + Download: Fix handling of primary sites using file:// + + Toolchain: Correct external toolchain musl detection for + static toolchains. + + Updated/fixed packages: aircrack-ng, bison, brltty, busybox, + cutelyst, dropbear, gr-osmosdr, i2c-tools, json-c, libconfuse, + libkcapi, libsoup, libssh, liburiparser, mbedtls, mender, + mesa3d, minicom, mjpegtools, mutt, openpowerlink, openssh, + oracle-mysql, php, postgresql, pv, qt5base, qt5quickcontrols, + rauc, shairport-sync, systemd, xlib_libX11, zeromq, + + Issues resolved (http://bugs.uclibc.org): + + #11091: BR2_PRIMARY_SITE doesn't work (wget is selected... + #11141: WF111 package no longer available + #11211: Internal compiler error: Killed (program cc1plus).. + #11236: util-linux fails to build on Travis CI when python.. + #11246: Glibc 2.28 - fails to build host-bison and host-m4 + #11256: Add python-falcon and python-mimeparse packages + +2018.08-rc2, Released August 20th, 2018 + + Fixes all over the tree. + + pkg-kconfig: Support dependencies needed to run the + configurator, E.G. recent Linux kernel versions needing flex + and bison. + + Defconfigs: ARM Juno: Bump ATF to fix a build + issue. Raspberrypi2: Bump rootfs size. Snps_archs38_vdk: + Correct /etc/inittab. Technologic ts7680: Correct genimage + configuration. Orange PI PC / Zero, Sheevaplug: Bump U-boot to + 2018.07 to fix build issue. Ensure host-openssl is pulled in + for kernel builds where needed. + + Updated/fixed packages: aircrack-ng, bind, boost, + boot-wrapper-aarch64, bzip2, busybox, chrony, cryptsetup, + dahdi-tools, dbus, domoticz, eigen, ipsec-tools, libarchive, + libfuse, libgit2, libopenssl, libselinux, lighttpd, lvm2, m4, + makedevs, mariadb, mesa3d-headers, mono, ncmpc, ncurses, + nodejs, php, python-django, python-pyqt5, qt5base, + qt5serialbus, ruby, samba4, uboot-tools, uclibc, vlc, + waylandpp, wireless_tools, wireshark, wpa_supplicant, mtd, + xdriver_xf86-video-ati, xserver_xorg-server + + Issues resolved (http://bugs.uclibc.org): + + #10781: cryptsetup luksOpen container_file container causes.. + #10996: bogus musl ARM toolchain + #11191: xattr and check-package issue + +2018.08-rc1, Released August 5th, 2018 + + Toolchain: + + - add support for gcc 8.x, switch to gcc 7.x as the default + version + - add support for gdb 8.1, switch to gdb 8.0 as the default + and remove gdb 7.10/7.11 + - add support for binutils 2.31 + - NIOSII CodeSourcery toolchain updated + - Linaro AArch64 BE toolchain added, and other Linaro + toolchains updated + - Synopsys ARC pre-built toolchain updated + + Architecture: add support for ARM Cortex-M7 + + Major updates: + + - systemd bumped to 239 + - Qt5 bumped to 5.11.1 + - Rust bumped to 1.27 + - GStreamer stack bumped to 1.14.2 + - X.org server bumped to 1.20, and all X.org proto packages + replaced by the single xorgproto package + - i.MX6 support packages bumped to 6.2.4 + - i.MX Vivante graphics version bumped to 6.2.4.p1.2, + adding support for Wayland and i.MX8MQ platforms + + Linux: bumped to 4.17 by default. + + Infrastructure: new package infrastructure added for packages + using the Meson build system + + New packages: at-spi2-atk, at-spi2-core, capnproto, cmocka, + corkscrew, cutelyst, davfs2, flatcc, libidn2, libgit2, + libopusenc, mender, nghttp2, perl-convert-asn1, perl-crypt-blowfish, + perl-crypt-cbc, perl-digest-md5, perl-mime-base64-urlsafe, + perl-mojolicious-plugin-authentication, perl-net-ping, + perl-net-snmp, perl-net-ssh2, perl-net-telnet, pigz, + python-reentry, python-request-id, python-validators, + python-webob, shadowsocks-libev, speexdsp, xorgproto, wampcc + + New defconfigs: NXP i.MX7D SDB, Boundary Devices Nitrogen 8M, + Olimex A10 OLinuxino, ZynqMP ZCU106 + + Removed packages: all xproto_* have been removed and replaced + by xorgproto + + Issues resolved (http://bugs.uclibc.org): + + #9411: MUSL build with RT Error relocating /lib/libgcc_s.so.1: + __cpu_indicator_init: symbol not found + #9921: lockfile module within python-daemon not available + #10341: gdb install of py files when using buildroot toolchain + includes build path + #10661: /etc/init.d/S29netplug starts multiple instances of netplugd + #10751: Missing dependency in pulseaudio package + #10811: kodi-17.6-Krypton does not compile for freescale_* devices + #10856: openblas on qemu_x86_64_defconfig fails with + "sgemm_kernel.o: No such file or directory" + #11056: Compiling a file that uses libdrm headers fails with: + fatal error: drm.h: No such file or directory + #11061: support/download: git version=master broken + #11071: Building postgresql package on Debian 9.4 x64 for armel target fails + #11076: Docker containerd installed to incorrect path + #11101: host-patchelf Endian Issue with relative RPATH + #11111: raspberry pi 3 b+: missing BSP for 64-bit kernel + #11121: statfs call corrupts memory struct statfs too small + #11181: Switching toolchain does not work + +2018.05.3, Released October 6th, 2018 + + Important / security related fixes. + + Add a number of patches to fix build errors for host utilities + on modern distributions using glibc-2.28. + + mkusers: Ensure existing group members are preserved when a + group is reprocessed. + + printvars: Fix issue with exceeding shell command line length + limits for certain setups. + + Updated/fixed packages: acpid, android-tools, apache, + arp-scan, bandwidthd, bind, bison, brltty, chipmunk, connman, + cppcms, fio, gcc, ghostscript, gnupg, httping, igmpproxy, + imagemagick, imlib2, ipsec-tools, lcm2, libcurl, libesmtp, + libnfs, libssh, libxslt, links, mediastreamer, minicom, + moarvm, nilfs-utils, ocrad, parted, php, postgresql, pv, + python-django, qt, qt5quickcontrols, qt5webengine, screen, + sdl2, shairport-sync, squashfs, strongswan, vboot-utils, + webkitgtk, wireguard, x265, xen, xlib_libXfont, xlib_libXft, + xlib_libxshmfence, zeromq + +2018.05.2, Released August 28th, 2018 + + Important / security related fixes. + + Defconfigs: Raspberrypi2: Bump rootfs size, T7680: Fix + genimage.cfg issue, ARM Juno: Bump ATF to v1.3 to fix build + issue. + + Updated/fixed packages: acl, attr, apache, bind, + boot-wrapper-aarch64, brltty, bzip2, chrony, crda, cryptsetup, + dahdi-tools, dmidecode, dropbear, eigen, ffmpeg, gawk, gcc, + ghostscript, gnutls, imx-gpu-viv, ipsec-tools, libarchive, + libfuse, libglib2, libopenssl, libselinux, libsoup, lighttpd, + linuxptp, lttng-modules, lttng-tools, lua-flu, lvm2, m4, + makedevs, mariadb, mbedtls, mesa3d-heders, mtd, ncurses, + nodejs, openssh, php, python-django, rauc, ruby, samba4, + stress-ng, ti-utils, uboot-tools, uclibc, vim, waylandpp, + wireless_tools, wireless-regdb, wireshark, wpa_supplicant, + xorriso, znc + + Issues resolved (http://bugs.uclibc.org): + + #10781: cryptsetup luksOpen container_file container causes.. + #10986: Installing package attr when already supplied by.. + #11191: xattr and check-package issue + +2018.05.1, Released July 20th, 2018 + + Important / security related fixes. + + U-Boot: Ensure host version of ncurses is picked up and not + host-ncurses built by buildroot, as that otherwise causes + widechar/non-widechar conflicts and corrupted menuconfig + menus. + + Linux: Enable CONFIG_PERF_EVENTS when perf is enabled. + + Toolchain: ARC tools updated to arc-2018.03. + + pkg-stats: Fix python 3.x compatibility. + + dl-wrapper: Fix support for URIs containing '+', fix + no-check-hash for inferred site method. + + Defconfigs: Raspberrypi3: Bump rootfs size, Minnowboard-max: + Support ethernet on Turbot variant. + + Updated/fixed packages: audit, bind, btrfs-progs, cifs-utils, + clamav, collectd, coreutils, docker-containerd, dos2unix, + edid-decode, file, gcc, gdb, gnupg, gnupg2, heimdal, hidapi, + imagemagick, libcurl, libgcrypt, libglib2, liblogging, + libostree, libressl, libsoup, libv4l, libvncserver, libvorbis, + libwebsockets, libxslt, lm-sensors, mariadb, mpg123, ncurses, + network-manager, nodejs, patchelf, perl, php-amqp, pinentry, + pixiewps, qpdf, qt53d, qt5base, qt5charts, qt5script, redis, + systemd, triggerhappy, uboot, wireguard, wireless-regdb, + wireshark + +2018.05, Released June 1st, 2018 + + Minor fixes. + + Download: Work around for hanging connections for packages + from CVS, by adding a 10 minute max timeout. + + Updated/fixed packages: binutils, clang, dash, expect, git, + glibc, jpeg-turbo, libjpeg, log4cplus, openvmtools, xen, + + Issues resolved (http://bugs.uclibc.org): + + #11051: runtime issue on STM32 with usage of binutils 2.29.x + +2018.05-rc3, Released May 28th, 2018 + + Fixes all over the tree. + + Toolchain: ARC tools updated to arc-2018.03-rc2. + + Fs: Ensure hard links in TARGET_DIR are correctly copied for + filesystem input. With the recent changes to the file system + generation logic, hard links were "expanded" in file system + images leading to bloated rootfs images for setups with hard + links. + + Infrastructure: Error out for packages using the 'local' + method but forgetting to specify _SITE. + + Build rpcgen for the host when needed to support distributions + no longer shipping rpcgen with glibc (E.G. recent Fedora). + + Updated/fixed packages: autofs, bash-completion, binutils, + busybox, cjson, elf2flt, libcoap, libcurl, libtirpc, lrzsz, + poppler, procps-ng, qt-webkit-kiosk, quota, samba4, xfsprogs + + Issues resolved (http://bugs.uclibc.org): + + #11031: ld-elf2flt: host/bin/ld.real': execvp: No such file.. + #11036: C compiler cannot create executables + #11046: Git package binaries are ~180MB (compared to ~20MB in.. + +2018.05-rc2, Released May 22nd, 2018 + + Fixes all over the tree. + + Dependencies: Check that the current working directory (.) + isn't listed in PATH as that causes various build issues. + + Manual: Clarify that git branch names may not be used as + version identifiers. This has never been supported, but was + kind of working (with some limitations) before the git + download rework - Now it does not work at all. + + Linux: Ensure host version of ncurses is picked up and not + host-ncurses built by buildroot, as that otherwise causes + widechar/non-widechar conflicts and corrupted menuconfig + menus. + + Packages: Renamed a number of package options not prefixed + with BR2_PACKAGE_ for consstency. + + Download infrastructure: Fix file:// protocol handling after + download rework. + + Updated/fixed packages: acl, apr-util, asterisk, attr, + bluez5_utils, cifs-utils, clamav, clang, cups-filters, + dahdi-linux, exim, faketime, gdb, go, gst1-plugins-bad, + imx-mkimage, ipsec-tools, jamvm, janus-gateway, + jquery-ui-themes, libcap, libcurl, libftdi, libkcapi, libkrb5, + libmediaart, libmodbus, libmodplug, libmpd, + libnetfilter_cthelper, libnetfilter_cttimeout, libnfc, + libnfnetlink, libnss, liboauth, libogg, libosip2, + libpam-radius-auth, libpcap, libpciaccess, llvm, log4cplus, + ltrace, lynx, mbedtls, modem-manager, nfs-utils, + python-cython, python-websockets, qt5cinex, qt5wayland, rauc, + snort, strace, ti-sgx-km, transmission, wavpack, wget, woff2, + xen, zmqpp, znc, zstd + + Issues resolved (http://bugs.uclibc.org): + + #10986: Installing package attr when already supplied by... + #11011: BUildroot for Raspberry Pi 2 + #11016: Wrong compiler used for external user host packages + +2018.05-rc1, Released May 9th, 2018 + + Toolchain: glibc bumped to 2.27, musl bumped to 1.1.19, + uClibc-ng 1.0.30, Linux kernel headers bumped to 4.16.x. + + Architecture: support for the Blackfin architecture has been + removed, as it was removed from Linux upstream, poorly + maintained in binutils/gdb, and abandoned by Analog Devices. + + Numerous packages updated to have hashes for their license + files. + + Systemd can now be built with uClibc toolchains. + + Linux: addition of BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF and + BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL to support building Linux + kernel configurations that need libelf on the host or openssl + on the host. + + Coding style: + - all Python scripts are now verified with flake8 + - check-package extended to check all Config.in and .mk files + in tree, not only the ones in package/ + + Infrastructure: + + - The download infrastructure has seen a major overhaul, with + the main visible new feature being Git caching: a package + fetched from Git no longer needs to be re-cloned entirely + everytime its version is changed. Anoter visible change is + that the download folder now has subfolders per package. See + http://lists.busybox.net/pipermail/buildroot/2018-April/217923.html + for more details about those changes. + + - The logic that generates the root filesystem images has been + reworked, with the main goal of allowing several filesystem + images to be produced in parallel, also a requirement for + top-level parallel build. Now, a .tar filesystem image is + always created, and re-extracted in a private directory to + create each format-specific filesystem image. + + - A new package infrastructure was introduced for Go-based + packages: golang-package. + + - Dependencies on extraction tools are now handled as proper + per-package dependencies, using + _EXTRACT_DEPENDENCIES. Beyond a cleanup, this is also a + preparation step for top-level parallel build support. + + - When a file being downloaded is part of a package with a + .hash file, but there is no hash listed for this file, the + file is now preserved in the download directory rather than + removed. This helps when updating a package, as it gives the + ability to easily calculate the hash of the file. + + - Addition of '-show-recursive-depends' and + '-show-recursive-rdepends' make targets, to + respectively display the recursive list of dependencies and + the recursive list of reverse dependencies of a given + package. + + - The /etc/shells file is now automatically generated with the + list of shell programs installed on the system. + + - Addition of -Ofast optimization level as an available + option. + + Major updates: Go updated to 1.10, Erlang bumped to 20.3, Qt5 + bumped to 5.10.1. + + New packages: 18xx-ti-utils, abootimg, bluez-alsa, brotli, + chipmunk, clang, docker-compose, docker-proxy, flare-engine, + flare-game, gst1-interpipe, gstreamer1-editing-services, + hackrf, i2pd, imx-alsa-plugins, imx-mkimage, libcdio-paranoia, + libkrb5, llvm, pixiewps, python-backports-ssl-match-hostname, + python-cached-property, python-cython, python-docker, + python-dockerpty, python-docker-pycreds, + python-flask-sqlalchemy, python-functools32, python-influxdb, + python-json-models, python-libusb1, python-networkx, + python-psycopg2, python-pymodbus, python-sqlalchemy, + python-subprocess32, python-texttable, + python-websocket-client, python-yieldfrom, quotatool, reaver, + snort, sunxi-mali-mainline, sunxi-mali-mainline-driver, tk, + tpm2-abrmd, tpm2-tools, tpm2-tss, udftools, vte, woff2. + + New defconfigs: ARC HS Development Kit, Arcturus ucls1012a, + Freescale i.MX6UL EVK (with vendor kernel), Freescale i.MX6 + SoloLite EVK (with vendor kernel), Freescale i.MX31 3Stack, + Freescale i.MX8Q EVK Freescale p1025twr, Freescale t1040d4rdb, + Qemu PPC64 E5500, SolidRun ClearFog Base, Tinker RK3288, Vyasa + RK3288, + + Removed packages: iqvlinux, kodi-adsp-*, mplayer + + Removed defconfigs: ci40, firefly_rk3288, + freescale_p1010rdb_pa, freescale_mpc8315erdb, riotboard, + teliv_evk_pro3 + + Issues resolved (http://bugs.uclibc.org): + + #10151: toolchain eclipse register : fails with a custom + BR2_HOST_DIR + #10511: Packages get downloaded uncompressed with wget + #10531: QtWebengine doesn't build if the host hasn't a 32 bits + C++ compiler working + #10846: error in compiling gnutls + #10886: openssl-1.0.2n fails to build + #10896: /bin/sh not in /etc/shells + #10961: Grub2 fails to build for x86_64 when BR2_SSP_ALL is + enabled + +2018.02.12, Released March 29th, 2019 + + Important / security related fixes. + + Updated/fixed packages: avahi, beecrypt, busybox, clamav, + cups, devmem2, fetchmail, file, fltk, gcc, gdb, git, jq, + leveldb, libopenssl, libraw, libseccomp, libssh2, + libunistring, mariadb, mosquitto, nodejs, ntp, openjpeg, perl, + php, putty, qt5webkit, rdesktop, systemd, wireshark, vsftpd, + xapp_xdm, xlib_libXdmcp + +2018.02.11, Released February 23th, 2019 + + Important / security related fixes. + + Ensure the PLATFORM and OS environment variables are not set, + as they cause build issues for some packages. + + The package list infrastructure now correctly handles packages + installing files with old mtime. + + Linux: Skip hash checks for user supplied downloadable + patches, as no hash checksums are available for those. + + scanpypi: protect against zip-slip vulnerability in zip/tar + handling + + Updated/fixed packages: bind, dhcpcd, dovecot, ghostscript, + gnuradio, imagemagick, jpeg-turbo, libarchive, libb64, + libcurl, libid3tag, madplay, mosquitto, openssh, php, + postgresql, proftpd, python, python-django, python3, qt5base, + sqlcipher, swupdate, systemd, unzip, webkitgtk + +2018.02.10, Released January 31th, 2019 + + Important / security related fixes. + + Defconfigs: Fixes for Lego EV3, QEMU AArch64-virt + + check-package: fix Python 3 support + + get-developers: Fix behaviour when called from elsewhere than + the toplevel directory. + + cmake: Also set CMAKE_SYSTEM_VERSION in toolchainfile.cmake + + Updated/fixed packages: acpica, apache, apr, asterisk, + avrdude, cargo, cc-tool, dash, dhcpdump, dmalloc, gnuchess, + gnupg2, leveldb, libarchive, libassuan, libftdi1, + libgpg-error, libhttpparser, libmad, libsndfile, libsquish, + liburiparser, libwebsock, libxml2, lighttpd, lm-sensors, + lua-msgpack-native, mbedtls, mosquitto, netatalk, nodejs, + openssh, pango, patchelf, php, python-django, python-pyyaml, + rauc, rp-pppoe, s6-networking, samba4, sdl_sound, + shairport-sync, sqlite, subversion, sunxi-cedarx, tcpreplay, + tekui, usb_modeswitch, webkitgtk, wireshark, wolfssl, + xapp_rgb, xenomai, xerces + + Issues resolved (http://bugs.uclibc.org): + + #11576: Unable to start apache with event MPM on raspberry pi 3 + +2018.02.9, Released December 20th, 2018 + + Important / security related fixes. + + defconfigs: Fixes for ci20 + + Updated/fixed packages: c-ares, dante, freetype, ghostscript, + glibc, gnutls, go, libcurl, libgpgme, libid3tag, libiscsi, + libmpd, libopenssl, libpjsip, linux, liquid-dsp, luvi, lynx, + msgpack, nginx, nodejs, php, popt, pps-tools, python-numpy, + python-requests, samba4, sdl2_net, squashfs, swupdate, uclibc, + wine, webkitgtk, xfsprogs + + Issues resolved (http://bugs.uclibc.org): + + #11426: pps-tools bash dependency + +2018.02.8, Released November 26th, 2018 + + Important / security related fixes. + + fs: Drop intermediate tarball from the filesystem handling to + fix an issue with xattrs handling related to fakeroot. Ensure + tarball target includes xattrs. + + download: Fix confusion in git submodule handling if dl/ is a + symlink. + + toolchain: Only allow enabling stack protection on + architectures with control flow integrity (CFI) support. Only + allow FORTIFY_SOURCE support on gcc >= 6. + + genrandconfig: Fix missing newline in BR2_WGET handling, + causing the following line to be ignored. This would affect + BR2_ENABLE_DEBUG, BR2_INIT_BUSYBOX, BR2_INIT_SYSTEMD, + BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV, BR2_STATIC_LIBS or + BR2_PACKAGE_PYTHON_PY_ONLY depending on the randomization. + + show-build-order: Also include the dependencies of + rootfs-common. + + Defconfigs: Fixes for Armadeus APF27, imx6sabre. + + graph-depends: Fix for package names starting with a non-alpha + character. + + Updated/fixed packages: attr, audit, bind, brotli, easydbus, + elfutils, gauche, gcc, giflib, gpsd, lcdproc, libcurl, + libiscsi, libnfs, libnspr, libnss, libkcapi, libsemanage, + liburiparser, lighttpd, linux, lua-curl, mariadb, mmc-utils, + mosquitto, mysql, neardal, netplug, network-manager, + nfs-utils, nginx, openocd, openswan, p11-kit, postgresql, + prosody, qemu, qt, rpm, ruby, samba4, squid, supertuxkart, + systemd, tar, trace-cmd, traceroute, twolame, uclibc, + usb_modeswitch, vtun, webkitgtk, xdriver_xf86-video-geode, + xlib_libfontenc, xproto_inputproto, xserver_xorg-server + + Issues resolved (http://bugs.uclibc.org): + + #11086: download/git submodule breaks on symlinked dl folder + #11251: Util scanpypi failes when package change - to _ in.. + #11476: stdio2.h error invalid use of __builtin_va_arg_pack + #11481: Docs: Is external.desc required? + +2018.02.7, Released October 25th, 2018 + + Important / security related fixes. + + Detect and reject build paths containing '@', as this confuses + a number of packages, including GCC. + + utils/get-developers: Add -e option for use with git + send-email. + + utils/diffconfig: Make it work for (non-Buildroot) config + files not using the BR2_ prefix. + + u-boot: Fix for environment image handling on big endian + systems. + + Updated/fixed packages: binutils, ca-certificates, + cups-filters, erlang, file, freetype, gcc, git, gvfs, leveldb, + libarchive, libcurl, libssh, live555, ljlinenoise, mariadb, + mongoose, netsnmp, nmap, nodejs, ntp, open-plc-utils, poco, + psmisc, ptpd2, python-enum34, qemu, qt, qt5base, setools, + spice, spice-protocol, tinc, ustr, wireshark + + Issues resolved (http://bugs.uclibc.org): + + #11396: uboot environment image checksum invalid if target is big endian + +2018.02.6, Released October 7th, 2018 + + Important / security related fixes. + + Add a number of patches to fix build errors for host utilities + on modern distributions using glibc-2.28. + + mkusers: Ensure existing group members are preserved when a + group is reprocessed. + + printvars: Fix issue with exceeding shell command line length + limits for certain setups. + + Updated/fixes packages: acpid, android-tools, apache, + arp-scan, bandwidthd, bind, bison, clamav, connman, cppcms, + cramfs, fio, gcc, ghostscript, glibc, gnupg, httping, + igmpproxy, imagemagick, imlib2, ipsec-tools, lcms2, libcurl, + libesmtp, libnfs, libssh, libxslt, links, linuxptp, + mediastreamer, minicom, moarvm, nilfs-utils, ocrad, parted, + php, pv, python-django, qt, qt5quickcontrols, qt5webengine, + screen, sdl2, shairport-sync, squashfs, strongswan, + vboot-utils, webkitgtk, wireguard, x265, xen, xlib_libXfont, + xlib_libXft + + New packages: brotli, woff2 + +2018.02.5, Released August 29th, 2018 + + Important / security related fixes. + + Defconfigs: Raspberrypi2: Bump rootfs size, T7680: Fix + genimage.cfg issue, ARM Juno: Bump ATF to v1.3 to fix build + issue. + + Updated/fixed packages: acl, apache, attr, bind, + boot-wrapper-aarch64, brltty, bzip2, chrony, crda, cryptsetup, + dahdi-tools, dmidecode, dropbear, eigen, erlang, ffmpeg, gawk, + gcc, ghostscript, gnutls, ipsec-tools, libarchive, libfuse, + libopenssl, libselinux, libsoup, lighttpd, linuxptp, + lttng-modules, lttng-tools, lua-flu, lvm2, m4, makedevs, + mariadb, mbedtls, mesa3d-headers, mtd, ncurses, nodejs, + openssh, php, postgresql, python-django, qt5xmlpatterns, ruby, + samba4, shairport-sync, stress-ng, ti-utils, uboot-tools, vim, + waylandpp, wireless_tools, wireshark, wpa_supplicant, xorriso, + znc + + Issues resolved (http://bugs.uclibc.org): + + #10781: cryptsetup luksOpen container_file container causes.. + #10986: Installing package attr when already supplied by.. + #11191: xattr and check-package issue + +2018.02.4, Released July 21th, 2018 + + Important / security related fixes. + + U-Boot: Ensure host version of ncurses is picked up and not + host-ncurses built by buildroot, as that otherwise causes + widechar/non-widechar conflicts and corrupted menuconfig + menus. + + Linux: Enable CONFIG_PERF_EVENTS when perf is enabled. + + Defconfigs: Raspberrypi3: Bump rootfs size, Minnowboard-max: + Support ethernet on Turbot variant. + + Updated/fixed packages: bind, clamav, collectd, dos2unix, + edid-decode, gcc, gdb, heimdal, hidapi, imx-gpu-viv, libcurl, + libglib2, liblogging, libostree, libsoup, libv4l, lm-sensors, + ncurses, network-manager, patchelf, pinentry, procps-ng, qpdf, + qt5, qt53d, qt5base, qt5charts, qt5script, qt5serialport, + systemd, wireguard, wireless-regdb + + Issues resolved (http://bugs.uclibc.org): + + #11101: host-patchelf Endian Issue with relative RPATH + +2018.02.3, Released June 18th, 2018 + + Important / security related fixes. + + Various fixes for building on modern distributions (GCC 8.x, + no rpcgen utility). + + ARM: Default to binutils 2.28 and warn about newer binutils + versions, which are known to cause boot failures for Linux + kernels built in thumb mode. + + Busybox/mdev: Fix module autoloading. + + Busybox/sysvinit: inittab: Add /dev/{stdin,stdout,stderr} + symlinks, call swapon -a to activate any configured swap + devices. + + Dependencies: Check that PATH does not contain current working + directory, which triggers a number of build failures. + + Infrastructure: Error out for packages erroneously using the + 'local' site method but not defining a _SITE. + + Linux: Fix cuImage. / simpleImage. handling. Ensure + kconfig uses ncurses from the host to fix a ncurses/ncursesw + mixup, causing menuconfig display corruption. + + Toolchain: Workarounds for fix-rpath issues with binutils and + elf2flt. + + Util-linux: Fix blocking on getrandom() issue with recent + kernels. + + Remove broken freescale_imx31_3stack, + freescale_imx6sololiteevk and freescale_imx6ulevk defconfigs. + + Updated/fixed packages: apr-util, asterisk, attr, audit, + autofs, binutils, busybox, cifs-utils, cups-filters, dash, + ebtables, exim, expect, f2fs-tools, faketime, file, gdb, git, + glibc, gnupg, gnupg2, gst1-plugins-bad, imagemagick, jamvm, + jpeg-turbo, libcap, libcoap, libcurl, libgcrypt, libjpeg, + libnss, libressl, libtirpc, libvncserver, libvorbis, libxslt, + log4cplus, lrzsz, ltrace, lynx, mariadb, mbedtls, mpg123, + nasm, netplug, network-manager, nfs-utils, nodejs, + openvmtools, patch, perl, php-amqp, poppler, procps-ng, + python, python-websockets, quota, redis, samba4, sysvinit, + transmission, triggerhappy, util-linux, wavpack, wget, + wireshark, xen, zmqpp + + Issues resolved (http://bugs.uclibc.org): + + #10986: Installing package attr when already supplied by busybox.. + #11031: ld-elf2flt: host/bin/ld.real': execvp: No such file or.. + +2018.02.2, Released May 4th, 2018 + + Important / security related fixes. + + Tweak package size/file instrumentation to better handle + package rebuilds. + + Revert /etc/shells creation when bash is enabled. + + Exclude /lib/firmware from the rpath fixup logic, as it may + contain non-native ELF files. + + Scanpypi: Support the new PyPi infrastructure. + + Handle GCC 8.x on the host. + + Ensure timestamp of /usr is updated to support the systemd + ConditionNeedsUpdate option. + + Updated/fixed packages: bluez5_utils, flann, gdb, gnupg2, + grub2, libcec, libcgi, libglib2, libgpg-error, libgpgme, + libtomcrypt, mbedtls, mkpasswd, php, python, python-requests, + python-watchdog, qt53d, qt5websockets, sdl2, sdl2_image, + syslog-ng, systemd, tcl, tcllib, uclibc, usb_modeswitch, + wireguard, wmctrl + + Issues resolved (http://bugs.uclibc.org): + + #10896: /bin/sh not in /etc/shells + #10961: Grub2 fails to build for x86_64 when BR2_SSP_ALL is enabled + +2018.02.1, Released April 9th, 2018 + + Important / security related fixes. + + Removed unmaintained defconfigs: Creator Ci40, Firefly rk3288, + Freescale mpc8315erdb / p1010rdb_pa, Riotboard, Teliv EVK + Pro3. + + Infrastructure: Speed up instrumentation for package size by + comparing timestamps instead of md5 checksums, as doing + checksums could lead to up to 25% longer build time for big + configurations. + + Rename the internal _BASE_NAME variable to _NASENAME + to avoid name clashes with packages ending on '-base'. + + Add a better fix for build issues for autotools based packages + checking for C++ support on toolchains without C++ support. + + Build host-tar if tar is older than 1.27 on the build machine + to work around reproducibility issues with git archives + containing long paths. + + check-unique-files: Fix for filenames not representable in the + users' locale. + + Check-bin-arch: Add support for per-package ignore paths + (_BIN_ARCH_EXCLUDE). + + Toolchain: Fix SSP support detection for external toolchains. + + linux: Add _NEEDS_HOST_OPENSSL / LIBELF options to ensure + these dependencies are available for Linux configurations + needed these dependencies, similar to how it is done for + U-Boot. + + Support custom (not in tree) device tree files in addition to + in-tree ones. + + U-Boot / uboot-tools: Fix header conflict with libfdt-devel + installed on host. + + Updated/fixed packages: apache, busybox, c-ares, cmake, + docker-engine, enlightenment, eudev, fbgrab, freescale-imx, + gtest, imagemagick, intel-microcode, irssi, jimtcl, kmod, + kodi, ktap, libcoap, libcurl, libfcgi, libhttpparser, + libminiupnpc, libopenssl, libpjsip, libss7, libssh2, libupnp + libupnpp, libuv, libvorbis, memcached, motion, musl, nodejs, + ntp, openblas, opencv3, openocd, opus-tools, patch, php, + pkgconf, postgresql, powerpc-utils, python-jsonschema, + python-webpy, qemu, qt5bsae, qt5script, qt5webkit, rapidjson, + rauc, sam-ba, samba4, sngrep, systemd, tremor, uboot-tools, + uclibc-ng-test, upmpdcli, wireshark, xerces, xterm, zstd + + New packages: docker-proxy, python-functools32 + + Issues resolved (http://bugs.uclibc.org): + + #10766: upmpdcli: Segmentation fault + #10776: ktap fails to build + #10846: error in compiling gnutls + #10856: openblas on qemu_x86_64_defconfig fails with "sgemm_.. + +2018.02, Released March 4th, 2018 + + Fixes all over the tree. + + Issues with systemd with a readonly rootfs and DBus fixed. + + Instructure: + - check-uniq-files: fix Python 2.6 compatibility. + - dependencies.sh: check for external argparse module for + Python 2.6. + - Add infrastructure to detect and use a UTF-8 locale on the + host, needed by systemd. + + Update/fixed packages: clamav, dash, dhcp, dovecot, efl, + ffmpeg, libv4l, mono, mosquitto, php, postgresql, qt, + scanpypi, sdl2, systemd, tor, tvheadend, uboot, wavpack + + Issues resolved (http://bugs.uclibc.org): + + #10831: qemu_x86_64_defconfig build fails on linux-headers.. + +2018.02-rc3, Released February 27th, 2018 + + Fixes all over the tree. + + check-bin-arch: skip /lib/modules to allow 32-bit userland + with 64bit kernel. + + dependencies: Blacklist tar 1.30+ and build our own host-tar + if needed as tar 1.30+ changed the --numeric-owner output for + long path names. Build host-tar before other host-dependencies + as they need it to extract their source tarballs. + + Update/fixed packages: asterisk, azmq, bluez5_utils, domoticz, + e2fsprogs, erlang, exim, glibc, gpsd, jq, libglib2, libvorbis, + mariadb, mbedtls, mesa3d, mesa3d-headers, mpv, patch, pcre2, + php, qt5, qt5multimedia, qt5wayland, qt5webengine, qt5webkit, + systemd, quagga, rustc, uboot, wireguard, zic, zlib-ng + + Issues resolved (http://bugs.uclibc.org): + + #10726: Current libglib2.mk creates broken libglib2 binary... + #10786: Linux fails to build unless make linux-menuconfig... + #10796: Cannot generate cpio image without selecting CON... + +2018.02-rc2, Released February 15th, 2018 + + Fixes all over the tree. + + Dependencies: Ensure C++ support is available like for C + support for packages needing 32bit host support. + + utils/genrandconfig: Check host dependencies for config. + + Updated/fixed packages: busybox, dnsmasq, dropbear, ffmpeg, + glibc, keepalived, libcpprestsdk, libgpiod, libmaxminddb, + librsvg, libtasn1, libv4l, libxml2, lightning, ltp-testsuite, + mesa3d, mesa3d-demos, mesa3d-headers, nftables, open-lldp, + php, postgresql, python-crossbar, qt5, qt53d, qt5enginio, + qt5tools, qt5webengine, qt5webkit, rsync, rust-bin, rustc, + systemd + + Issues resolved (http://bugs.uclibc.org): + + #9781: ti-sgx-km build on kernel >4.1 + #10141: Squashfs extended attribute failures + +2018.02-rc1, Released February 5th, 2018 + + The global source-check and per-package -source-check + targets have been removed. + + Architecture: Add x86 Silvermont variant. Add several new ARM + variants, rework MIPS NaN logic. Support mainline binutils/gcc + for ARC. + + Toolchains: Linaro toolchains upgraded to 2017.11 release, ARC + external toolchains upgraded to arc-2017.09. Libatomic is now + also copied for external musl based toolchains. + Add binutils 2.30.x and switch to binutils 2.29.x by default. + + Added hardening options to build with RELRO and FORTITY. + + New defconfigs: Bananapi M64, FriendlyARM Nanopi A64 & NEO2, + imx6slevk, imx6sx-sdb, imx6ulevk, Olimex A64-OLinuXino, + Orangepi lite / pc plus / pc / prime / win / win plus / zero + plus2, Pine64, Solidrun MacchiatoBin. Sopine. + + Add utils/diffconfig, a simple utility for comparing + configuration files - Adapted from the version in the + Linux kernel. + + Infrastructure: Check that the same file is not touched by + multiple packages, as a preparation for toplevel parallel + builds. + + Hashes for the license files for a large number of packages + have been added, ensuring that license changes will not be + missed when packages are bumped. + + Fix build issue for autotools based packages checking for C++ + support on toolchains without C++ support and on a distro + lacking /lib/cpp (E.G. Arch Linux). + + Support for the meson build system. + + Pie charts generated by 'graph-build' or 'graph-size' are now + sorted according to the size of each piece. + + System: Only show getty options when busybox init or sysvinit + are used. + + ARM-trusted-firmware: Support ATF bundled in U-Boot as + well as U-Boot bundled in ATF. + + Zlib is now a virtual package, provided by either libzlib or + zlib-ng, similar to openssl. + + Support for the Rust programming language. + + New packages: aoetools, armbian-firmware, binaries-marvell, + brltty, cargo, cargo-bin, cups-filters, curlpp, daq, + flatbuffers, gconf, glorytun, gstreamer1-mm, imx-m4fwloader, + imx-gpu-g2d, json-for-modern-cpp, libcpprestsdk, libgta, + libostree, libupnp18, luadbi, luadbi-sqlite3, lua-utf8, lynx, + meson, mv-ddr-marvell, nilfs-utils, opentracing-cpp, + open-lldp, pimd, proj, python-flask-cors, + python-jaraco-classes, python-more-itertools, python-oauthlib, + python-raven, python-remi, python-requests-oauthlib, + python-schedule, python-secretstorage, python-see, + python-tabledata, python-txtorcon, python-xlib, qt5charts, + rtl8189fs, rtl8723bu, rust, rustc, rust-bin, rygel, safeclib, + solatus, tcf-agent, traceroute, waylandpp, wolfssl, + zisofs-tools, zlib-ng + + Removed packages: eeprog + +2017.11.2, Released January 21st, 2018 + + Important / security related fixes. + + External toolchain: libatomic is now also copied for musl + based toolchains. + + nconfig: Fix for ncurses/ncursesw linking issue causing crashes. + + System: Only show getty options when busybox init or sysvinit + are used. + + Infrastructure: Fix build issue for autotools based packages + checking for C++ support on toolchains without C++ support and + on a distro lacking /lib/cpp (E.G. Arch Linux). + + Pie charts generated by 'graph-build' or 'graph-size' are now + sorted according to the size of each piece. + + Updated/fixed packages: asterisk, avahi, bind, busybox, + coreutils, eeprog, intel-microcode, iputils, irssi, kmsxx, + libiio, linux-firmware, lz4, mariadb, matchbox-lib, mcookie, + ntp, php, pound, rpcbind, tar, ti-cgt-pru, webkitgtk, xen, + xlib_libXpm + + Issues resolved (http://bugs.buildroot.org): + + #9996: lz4 package does not install lz4 binaries in target + #10176: Rsyslog's S01logging is deleted by Busybox.mk from... + #10216: package/x11r7/mcookie/mcookie.c:207: bad size ? + #10301: systemd/getty unused options + #10331: kmsxx, host installation fails with BR2_SHARED_... + #10556: Building ntp package with SSL library libressl... + #10641: avahi-autoipd not starting when using systemd-tmpfiles + +2017.11.1, Released December 31th, 2017 + + Important / security related fixes. + + Updated/fixed packages: asterisk, checkpolicy, dhcp, flann, + gdb, glibc, heimdal, kodi-pvr-mediaportal-tvserver, + kodi-pvr-stalker, libcue, libopenssl, libpqxx, libsoxr, + linknx, linux-tools, lldpd, ltp-testsuite, mariadb, mfgtools, + nodejs, nut, pulseaudio, python-cffi, qemu, rsync, tor, uboot, + uboot-tools, vlc, webkitgtk, weston, wireguard, wireshark, + xenomai, xfsprogs + +2017.11, Released November 30, 2017 + + Fixes all over the tree. + + Toolchain: Use github mirror for Glibc. + + Defconfigs: Correct boot.cmd for bananapi-m1. + + Makefiles: Workaround include order issues for certain make + versions by explicitly sorting the result of wildcard where it + matters. + + Download: Ensure subversion runs in non-interactive mode. + + Updated/fixed packages: asterisk, boost, chrony, dovecot, + dvb-apps, exim, feh, freerdp, fwup, google-breakpad, jose, + kvm-unit-test, lftp, libcurl, libevent, libfastjson, libpjsip, + libupnp, linphone, localedef, lttng-tools, mp4v2, mtools, + ndisc6, oracle-mysql, parted, pdbg, qt, qt5connectivity, + qt5declarative, qt5webkit, rauc, runc, samba4, shairport-sync, + systemd-bootchart, webkitgtk, wireguard, xlib_libXcursor, + xlib_libXfont, xlib_libXfont2, + + Issues resolved (http://bugs.buildroot.org): + + 10501: host-localedef fails to compile on Ubuntu 17.10 + 10506: Changed kernel image type (e.g. zImage to uImage)... + +2017.11-rc2, Released November 13th, 2017 + + Fixes all over the tree. + + Updated/fixed packages: collectd, ffmpeg, freerdp, + go-bootstrap, imagemagick, jimtcl, libpjsip, libplist, libuv, + mesa3d, nodejs, ntp, openjpeg, postgresql, python-numpy, ruby, + snmp++, usb_modeswitch, util-linux, vboot-utils, webkitgtk, + wireshark, wpa_supplicant, xapp_xdriinfo + + Issues resolved (http://bugs.buildroot.org): + + #10326: mesa3d package fails to build when BR2_SHARED_STATIC_LIBS=y + #10491: Cannot output security warning when compiled with buildroot.. + +2017.11-rc1, Released November 6th, 2017 + + Fixes all over the tree and new features. + + Openssl is now a virtual package, which may be provided by + OpenSSL (now renamed to libopenssl) or LibreSSL. + + libssh2: there is now an explicit choice of the backend to use + (mbedtls, gnutls or openssl). Previously, the choice was implicit + based on the TLS library that was selected. Now, it is possible to + choose the backend, which is important if several TLS libraries are + selected. + + netsnmp: all MIB files are now installed, making the target filesystem a + bit bigger than before. To remove unneeded MIBS, you should use a + post-build script. + + Toolchain: Linaro toolchains updated to 2017.08, ARC toolchain + updated to 2017.09, Glibc updated to 2.26, Glibc support for + ARCv2. The toolchain wrapper now handles SOURCE_DATE_EPOCH for + older (pre-gcc7.x) toolchains for BR2_REPRODUCIBLE. + + New defconfigs: Atmel SAM45D27, Bananapi M1 and M2 Plus, + Engicam i.CoreM6 Qt5 configuration, i.MX6 sabreauto (mainline + kernel/u-boot), i.MX6Q sabresd Qt5 configuration, i.MX7d-pico, + QEMU ppc64le, Raspberry pi3 Qt5 webengine configuration, + Technologic TS-7680. + + New packages: asterisk, azmq, bcg729, boinc, dahdi-linux, + dahdi-tools, freeswitch-mod-bcg729, fscryptctl, libb64, + libpri, libss7, lua-basexx, lua-compat53, lua-cqueues, + lua-curl, lua-datafile, lua-fifo, lua-httpd, + lua-lpeg-patterns, lua-markdown, lua-sailor, lua-value, + luksmeta, minetest, minetest-game, pdmenu, prosody, + python-aiocoap, python-automat, python-ibmiotf, + python-iso8601, python-m2r, python-simplesqlite, + python-websockets, python-xmltodict, qt5wayland, qt5webengine, + restorecond, selinux-python, semodule-utils, uhubctl, + wireguard, wsapi-fcgi, wsapi-xavante + + Removed packages: aiccu, rfkill, sepolgen + + Issues resolved (http://bugs.buildroot.org): + + #10281: lsblk does not compile for util-linux + #10336: lttng compilation fails : linking error + #10351: glibc missing in rootfs + #10356: nfs-utils missing header + #10361: python3 python-config script generates invalid includes + #10366: dropbear download url has changed + #10391: WiringPi retrieves wrong (old) version + #10406: Beaglebone black: Buggy SGX driver version, swapped... + #10426: uboot-tools' fw_setenv does not update the redundant... + #10451: libpcap 1.8.x and 1.7x does not compile on PPC + +2017.08.2, Released November 28th, 2017 + + Important / security related fixes. + + Qt: 5.6 version updated to 5.6.3. + + Reproducible: Do not override SOURCE_DATE_EPOCH if already set + in the environment. + + Makefiles: Workaround include order issues for certain make + versions by explicitly sorting the result of wildcard where it + matters. + + Updated/fixed packages: apr, apr-util, arqp-standalone, + azure-iot-sdk-c, collectd, dvb-apps, ffmpeg, go-bootstrap, + google-breakpad, gstreamer, imagemagick, irssi, jimtcl, + kvm-unit-test, libcurl, libfastjson, libglib2, libidn, + libpjsip, libplist, localedef, lttng-tools, luajit, mesa3d, + moarvm, mp4v2, openssh, openssl, oracle-mysql, postgresql, + python3, python-pyqt5, qt, qt5base, qt5canvas3d, + qt5connectivity, qt5declarative, qt5engineio, + qt5graphicaleffects, qt5imageformats, qt5location, + qt5multimedia, qt5quickcontrols, qt5quickcontrols2, qt5script, + qt5sensors, qt5serialbus, qt5serialport, qt5svg, qt5tools, + qt5webchannel, qt5webkit, qt5websockets, qt5x11extras, + qt5xmlpatterns, quagga, redis, ruby, samba4, sdl2, snmppp, + swupdate, ti-gfx, uboot-tools, usb_modeswitch, vboot-utils, + webkitgtk, wget, wireshark, xapp_xdriinfo. + + Issues resolved (http://bugs.buildroot.org): + + 10326: mesa3d package fails to build when BR2_SHARED_STATIC_LIBS=y + 10361: python3 python-config script generates invalid includes + 10501: host-localedef fails to compile on Ubuntu 17.10 + +2017.08.1, Released October 23rd, 2017 + + Important / security related fixes. + + Webkitgtk bumped to the 2.18.x series, fixing a large number + of security issues. + + Defconfigs: galileo: fix ext4 related kernel config, bump + kernel for gcc 6.x compatibility, enable wchar support for + grub2. wandboard: correct rootfs offset + + support: Ensure gzip compression level 6 is used for git + tarballs. check-bin-arch: Correctly handle (ignore) symbolic + links. check-rpath: Also handle PIE binaries + + External toolchain: Correctly handle glibc Buildroot + toolchains built with merged /usr + + musl: fix ARMv4 build with binutils 2.27.51+, fix for + CVE-2017-15650 + + Updated/fixed packages: apache, augeas, bind, bluez5_utils, + busybox, bzip2, cmake, dnsmasq, ejabberd, gcc, git, go, ffmpeg, file, + flashrom, gd, gdk-pixbug, gnupg2, hostapd, ifupdown-scripts, + imagemagick, iucode-tool, kernel-module-imx-gpu-viv, lame, + libarchive, libcurl, libffi, libidn, libmbim, libnspr, libnss, + libressl, librsync, libsoup, libxml2, libzip, mbedtls, musl, + netplug, nginx, openvpn, pkgconf, poppler, proxychains-ng, + qemu, qt, rpi-userland, syslog, ruby, samba4, softether, + sqlite, strongswan, subversion, supertuxkart, supervisor, tcpdump, + tor, unrar, urq, vboot-utils, webkitgtk, wpa_supplicant, xen, + xmlstarlet, xlib_libXfont, xlib_libXfont2, + xserver_xorg-server, zsh + +2017.08, Released September 1st, 2017 + + Minor fixes. + + Toolchain: Don't allow internal toolchain builds for MIPS + M6201/P6600, as support for these are not yet in mainline GCC. + + Updated/fixed packages: bcusdk, connman, dialog, dnsmasq, + gnupg, grub2, iostat, iucode-tool, libgcrypt, libkcapi, + libphidget, libv4l, linux-tools, mediastreamer, minidlna, + nss-pam-ldapd, nvidia-driver, qt-webkit-kiosk, rpcbind, squid, + transmission, vde2, vim + + Updated/fixed defconfigs: + + Removed packages: simicfs. + + Issues resolved (http://bugs.buildroot.org): + + #10261: Grub2 fails to build for x86_64 + +2017.08-rc3, Released August 23rd, 2017 + + Fixes all over the tree. + + Updated/fixed packages: alsa-lib, alsa-utils, cc-tool, + dbus-cpp, e2fsprogs, elf2flt, faad2, fakeroot, gcc, git, gpsd, + gst1-validate, kvmtool, libconfuse, libepoxy, librsync, + libspatialindex, libunwind, linux, linux-headers, lua, + mariadb, mesa3d, mtd, openocd, python3, syslinux, sysvinit, + whois, xen, zmqpp. + + Updated/fixed defconfigs: ci20, socrates_cyclone5, + toradex_apalis_imx6. + + Removed defconfig: Armadeus APF9328. + + skeleton-* packages introduced in -rc1 have been renamed to + skeleton-init-* instead. + + Issues resolved (http://bugs.buildroot.org): + + #10141: Squashfs extended attribute failures + +2017.08-rc2, Released August 11th, 2017 + + Fixes all over the tree. + + Updated/fixed packages: bind, dbus, erlang-p1-xml, faad2, + ficl, gcc, gdb, glibc, jack2, libcurl, linux, linux-headers, + lua, mutt, nvme, qt5base, skeleton-common, snappy, stella, + swupdate, uclibc, valgrind, webkitgtk. + + Updated/fixed defconfigs: beaglebone_qt5, minnowboard_max, + nanopi_m1{, _plus}, olimex_a20_olinuxino_lime, qemu_sparc, + qemu_sparc64. + + The cmake-package infrastructure for host packages has been + fixed to not incorrectly detect target packages through + pkg-config. + + Issues resolved (http://bugs.buildroot.org): + + #9926: systemd-resolved.service: Failed at step NAMESPACE (systemd 233) + #10021: libqeglfs-viv-integration.so file is missing for qt5 on armv7 + #10026: lua-5.3.4: fix lua linker error in swupdate + #10146: package/skeleton-common fix recursive variable + #10156: glibc compilation fails for X86 32bits (i386) + #10201: toolchain-wrapper.c:192: (error) Memory leak: + #10221: Buildroot Support + +2017.08-rc1, Released August 2nd, 2017 + + Infrastructure: + + - The skeleton package has been split into multiple packages: + skeleton-sysv (when Busybox or SysV init are used), + skeleton-systemd (when systemd is used), skeleton-none (when + no init system is used) and skeleton-custom (when a custom + skeleton is used). Those packages, except skeleton-custom, + share common logic and data in a new package called + skeleton-common. The skeleton package becomes a virtual + package. This change allows to generate a filesystem that is + compliant with systemd expectations. + + - Support for using a read-only filesystem with systemd has + been fixed. + + - Major revamp of the gettext handling, with user-visible + effect: + + - prior to this revamp, when BR2_ENABLE_LOCALE=y, each + package could decide to enable or not NLS support. When + BR2_ENABLE_LOCALE was disabled, NLS support was forced off + by passing --disable-nls to packages. + + - after this revamp, a new BR2_SYSTEM_ENABLE_NLS option + controls whether NLS support should be enabled or not in + packages. This option defaults to disabled, which means + that now, NLS support is by default disabled in all + packages. + + Therefore, if you need NLS support in packages, you must now + explicitly enable the BR2_SYSTEM_ENABLE_NLS option. + + - The host directory no longer has a usr/ component. This + makes it much more natural to use that directory as an + externally used toolchain. For compatibility with existing + scripts, a usr -> . link is still added. + + - Hashes are now checked on tarballs by Buildroot when a + package is sourced from a Git repository. + + - Patches are no longer being downloaded from Github, since + auto-generated patches could change over time, and break + hashes. All patches that were downloaded from Github are now + stored in their respective package directories. + + - Hash files in packages can now contain hashes for the + license files contained in the package source code. This + allows to detect changes in such license files. + + - Binaries in $(TARGET_DIR) are now cleaned up from invalid + RPATHs at the end of the build. + + - A new "make sdk" target prepares $(HOST_DIR) to be + relocatable: turns RPATHs in host binaries into relocatable + ones, removes bogus RPATHs from staging binaries/libraries, + and provides a relocate-sdk script that can be executed to + relocate the SDK after installation. + + - Addition of utils/genrandconfig which generates a random + configuration based on a set of pre-defined toolchain + configurations (support/config-fragments/autobuild/) and a + random selection of packages. It is now used by the + autobuilders to generate the random configurations. + + Filesystems: + + - ext2/3/4 filesystems are now generated using mkfs.ext from + e2fsprogs instead of using genext2fs. + + Architecture: + + - Addition of support for ARM big.LITTLE variants + - Improved MIPS support, with options to select NaN encoding + and FP32 mode. + + Toolchain: + + - Switch to gcc 6.x as the default gcc version, add support + for gcc 7.x, remove support for gcc 4.8 + - Switch to binutils 2.28 as the default binutils version, add + support for binutils 2.29, remove support for binutils 2.26 + - Support added for gdb 8.0 + - uClibc-ng bumped to 1.0.26 + - CodeSourcery toolchains for x86 and SuperH have been + removed, they were using a too old glibc version + (2.17). External toolchains with glibc 2.17 or earlier are + no longer supported. + - The version selection in the glibc package has been + removed. Like musl and uClibc-ng, we now use the latest + glibc version. + - Improved support for Xtensa toolchain overlays, which can + now be downloaded. + + Tools: + + - Numerous improvements to the runtime test infrastructure + - Tests are now executed by Gitlab CI on a regular basis + - Tools that are directly useful to the user have been moved + from support/scripts/ to utils/: brmake, check-package, + get-developers, scancpan, scanpipy, size-stats-compare, + test-pkg. + + New defconfigs: A13 Olinuxino, Engicam platforms (i.CoreM6 + Solo/Dual/DualLite/Quad, RQS SOM, GEAM6UL SOM, Is.IoT MX6UL + SOM), Nano Pi M1 (Plus), OrangePi Zero and Plus. + + New packages: azure-iot-sdk-c, cracklib, dt-utils, easy-rsa, + erlang-jiffy, erlang-p1-oauth2, erlang-p1-xmpp, + ifupdown-scripts, irrlicht, kodi-inputstream-adaptive, + kodi-inputstream-rtmp, kvazaar, let-me-create, libloki, + libpwquality, libressl, libspatialindex, libva-utils, + linuxconsoletools, linuxptp, luaossl, lua-sdl2, lua-stdlib, + lsscsi, paxtest, pcre2, pixz, python-asn1crypto, + python-backports-shutil-get-terminal-size, python-bcrypt, + python-cheroot, python-h2, python-hpack, python-hyperframe, + python-hyperlink, python-ipython-genutils, python-pathlib2, + python-pickleshare, python-priority, python-portend, + python-scandir, python-systemd, python-tempora, + python-traitlets, python-typepy, qt5virtualkeyboard, + ratpoison, rauc, refpolicy, rhash, sdl2_mixer, sdl2_net, + xr819-xradio, zstd + + Removed packages: cloog, input-tools, mke2img + + Issues resolved (http://bugs.buildroot.org): + + #7892: systemd-journald is broken + #9341: avahi-utils does not compile with uClibc + libglib2 + #9441: Link BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY to + BR2_ENABLE_DEBUG + #9746: ext4 image generated by Buildroot is not working + properly with U-Boot + #9886: Build fails with "unexpected EOF while looking for + matching `"'" if PATH contains a newline + #9891: parted 3.1 => 3.2? + #9911: qt5 does not build on sparc + #9916: qt5 does not build on + arm-buildroot-linux-uclibcgnueabihf for ARMv8 cores + #9936: Host QEMU does not build with SDL support because of + pkg-config + #9941: nodejs option disappears for arm + #9951: SCANCPAN failure + #9966: util-linux-2.30/.stamp_built' failed + #9976: License file for package 'rtl8821au' incorrect + #9991: SGX Error implicit declaration of function + ‘dmac_map_area’ + #10011: wget does not work from Buildroot + #10036: Buildroot builds Raspbian Jessie headless image + presenting incorrect prompt + #10051: make: *** No rule to make target + 'raspberrpi3_defconfig'. Stop reported with Buildroot + v2017.05.1 + #10056: No .config file was produced in /buildroot folder + #10061: gcc5.4 buildroot toolchain for powerpc libsanitizer + failure + #10071: fakeroot: replace hard-coded paths in post install + #10076: Makefile:4113: recipe for target 'all-gcc' failed + #10091: gcc7.1 does not build with graphite support due to old + isl + #10121: webkit without the multimedia option causes build + error + +2017.05.2, Released July 27th, 2017 + + Important / security related fixes. + + Webkitgtk bumped to the 2.16.x series, fixing a large number + of security issues. + + host-aespipe compile fix for Debian/Gentoo/Ubuntu toolchains + which default to PIE mode. + + Updated/fixed packages: aespipe, apache, bind, binutils, + busybox, ccache, collectd, dieharder, efibootmgr, efivar, + expat, ffmpeg, gcc, heimdal, iproute2, irssi, libglib2, + libmemcached, libosip2, libtirpc, libxml-parser-perl, + linux-fusion, linux-zigbee, mpg123, orc, pcre, php, protobuf, + pulseaudio, python-setproctitle, qt5base, rpi-firmware, + samba4, syslinux, systemd, spice, tcpdump, tiff, uboot-tools, + webkitgtk, x265, xserver_xorg-server, xvisor + + Issues resolved (http://bugs.buildroot.org): + + #10061: gcc5.4 buildroot toolchain for powerpc libsanitizer... + +2017.05.1, Released July 4th, 2017 + + Important / security related fixes. + + Update support/scripts/scancpan to use METACPAN v1 API as v0 + has been shutdown. + + Update support/scripts/mkusers to handle setups where + /etc/shadow is a symlink. + + External toolchain: Don't create musl dynamic loader symlink + for static builds. + + Setlocalversion: Correct detection of mercurial revisions for + non-tagged versions. + + Defconfigs: at91sam9x5ek_mmc: workaround boot rom issue. + + Updated/fixed packages: apache, automake, bind, botan, c-ares, + dhcp, expat, fcgiwrap, gcc, gdb, gesftpserver, glibc, glmark2, + gnutls, gst1-plugins-bad, imagemagick, imx-uuc, intltool, + iperf, ipsec-tools, irssi, kmod, libcurl, libgcrypt, libmad, + libnl, lugaro, mosquitto, mpg123, ncurses, nodejs, ntp, + openssh, openvpn, pngquant, python-simplegeneric, qt5base, + qt5multimedia, rtl8821au, socat, spice, systemd, tor, trinity, + tslib, vlc, x264, xen, xlib_libxshmfenc, xserver_xorg-server + + Issues resolved (http://bugs.buildroot.org): + + #9976: License file for package 'rtl8821au' incorrect + +2017.05, Released May 31st, 2017 + + Minor fixes. + + External toolchain: musl dynamic linker symlink for mips-sf + corrected. + + Updated/fixed packages: agentpp, bash, exim, hans, madplay, + qpid-proton, rtl8188eu, snmppp, stm32flash, strongswan, sudo, + xen + + Issues resolved (http://bugs.buildroot.org): + + #9906: genimage: Disk full + +2017.05-rc3, Released May 30th, 2017 + + Fixes all over the tree. + + ARC toolchain bumped to 2017.03 + + Runtime testing improvements and cleanups. + + Updated/fixed packages: acpica, armadillo, audiofile, c-icap, + cppcms, dhcp, docker-engine, dropbear, elfutils, erlang, + fbgrab, ffmpeg, flashrom, ftop, gnutls, google-breakpad, + keepalived, kodi, libcdio, libepoxy, libev, libminiupnpc, + libqmi, libtasn1, libv4l, mariadb, mono, mosh, mosquitto, + mxml, ntp, opencv, openpowerlink, oracle-mysql, popt, + pulseview, python-enum34, rabbitmq-c, redis, samba4, stella, + xen + + Removed packages: firejail, ola + + Issues resolved (http://bugs.buildroot.org): + + #9871: fbgrab 1.3 won't build with BR2_REPRODUCIBLE set + #9876: aarch64 support with gcc 4.8 toolchain + #9896: host-gcc-initial error downloading because incorrect URL + +2017.05-rc2, Released May 17th, 2017 + + Fixes all over the tree. + + ARC toolchain bumped to 2017.03-rc2 + + Updated/fixed packages: bluez_utils, boost, clamav, daemon, + efibootmgr, efl, espeak, expedite, faketime, ffmpeg, fxload, + git, gpsd, kvm-unit-tests, libcdio, libv4l, lua, mke2img, + mpir, mpv, odroid-scripts, openblas, opencv3, openvpn, php, + postgresql, protobuf, qt5declarative, qwt, radvd, rpcbind, + rtmpdump, strongswan, sudo, ltp-testsuite, uclibc-ng-test, + vlc, x11vnc, xfsprogs + + Issues resolved (http://bugs.buildroot.org): + + #9796: source-check broken for Git downloads + #9866: BASE_DIR usage + +2017.05-rc1, Released May 8th, 2017 + + Fixes all over the tree and new features. + + Infrastructure: + + - Installed binaries are now checked for correct architecture + to catch natively built binaries or binaries built for other + architecture variants. + + - Luarocks infrastructure improvements to extraction handling, + support for upstream name != Buildroot package name. + + - 'make printvars' output format has changed to make it easier + to use in scripts. It now has options to quote the variables + and to show the expanded/unexpanded values. + + - Automatic ext2 rootfs size calculation has been removed. The + logic was not working working reliable in all setups as it + depends on the host filesystem behaviour, so instead now the + size has to be specified explicitly (defaults to 60MB). + + - The git download infrastructure now ensures that GNU format + tar files are created. + + - Fixed a variable clashing issue in the mkusers script with + internal bash variables. + + - Fakeroot now links against libacl to fix issues on + distributions using acls. + + - Correct permissions for /dev/pts/ptmx when systemd is used + with recent glibc versions. + + - br2-external: Improve error reporting. + + - A wrapper script for genimage has been added in + support/scripts/genimage.sh for easy use of genimage from + post-image scripts. + + - A script to check for common style issues in new packages + before submitting has been added in support/scripts/check-package + + - Defconfigs are now tested by gitlab-CI instead of Travis: + https://gitlab.com/buildroot.org/buildroot + + - Infrastructure for runtime testing has been added to + support/testing + + Toolchain: + + - External linaro toolchains updated to 2017.02, ARC toolchain + updated to 2017.03-rc1, NIOSII CodeSourcery to 2017.05 + + - A number of fixes and improvements to the external toolchain + handling, including C library detection, multilib and ld.so + handling + + - Glibc 2.25 and uClibc-ng 1.0.24 added, wordexp support enabled + for uClibc-ng + + - Binutils 2.28 added and default changed to 2.27 + + + Architectures: + + - Support for the C-SKY architecture has been added. + + + License handling: + + - The package license markings for legal info now uses the + SPDX short identifiers for the license string where possible. + + - License info has been improved / added for a number of packages. + + + Misc: + + - Cmake 3.7.x installed on the host is no longer ignored as a + workaround for the RPATH issues has been implemented. + + - Docker-engine can now be built statically on an otherwise + dynamic linked build for docker-in-docker setups. + + - U-Boot now supports out-of-tree device trees, similar to + Linux + + - Nodejs 0.10.x support (and with it, support for -source-check fixed for packages from git. + + External toolchain: musl dynamic linker symlink for mips-sf + corrected. + + Updated/fixed packages: armadillo, audiofile, bash, + bluez_utils, cppcms, dbus, dhcp, dropbear, efibootmgr, efl, + elfutils, faketime, fbgrab, flashrom, ftop, gdb, git, + google-breakpad, gpsd, hans, kvm-unit-tests, kyua, libev, + libmicrohttpd, libminiupnpc, libtasn1, libubox, ltp-testsuite, + lua, madplay, mariadb, mono, mosquitto, mxml, ntp, + nvidia-driver, openblas, openvpn, oracle-mysql, picocom, popt, + postgresql, pulseview, qt5base, qwt, rabbitmq-c, redis, + rpcbind, rtmpdump, samba4, strongswan, sudo, vlc + + Issues resolved (http://bugs.buildroot.org): + + #9796: source-check broken for Git downloads + #9871: fbgrab 1.3 won't build with BR2_REPRODUCIBLE set + +2017.02.2, Released May 1st, 2017 + + Important / security related fixes. + + Use HTTPS for the Codesourcery external toolchains as the HTTP + URLs no longer work. + + Updated/fixed packages: bind, busybox, dovecot, freetype, + ghostscript, glibc, granite, hiredis, icu, imagemagick, + gst-plugins-base, gst1-plugins-base, libcroco, libcurl, libnl, + libnspr, libnss, libsamplerate, libsndfile, libunwind, + minicom, mplayer, mpv, nodejs, python-django, python-pyyaml, + python-web2py, samba4, syslinux, systemd, tiff, trinity, + uboot, wireshark, xen + + Issues resolved (http://bugs.buildroot.org): + + #9791: Python searches for packages in the user site directory + +2017.02.1, Released April 4th, 2017 + + Important / security related fixes. + + Fix a variable clashing issue in the mkusers script with + internal bash variables. + + Improve external toolchain version detection. + + Correct permissions for /dev/pts/ptmx when systemd is used + with recent glibc versions. + + Fix python module name clash for graph-depends. + + Fakeroot now links against libacl to fix issues on + distributions using acls. + + Ensure that the git download infrastructure creates GNU format + tar files. + + br2-external: Improve error reporting. + + Updated/fixed packages: acl, apr, audiofile, busybox, cairo, + dbus-cpp, dbus-glib, dbus-triggerd, domoticz, elfutils, + fakeroot, filemq, fmc, gdb, git, gnutls, gst-ffmpeg, + gst1-plygins-bad, harfbuzz, htop, imagemagick, jasper, libcec, + libiio, libplatform, librsvg, libselinux, libsidplay2, libsoc, + libwebsockets, libxkbcommon, linux-firmware, logrotate, + lpt-testsuite, lttng-libust, mariadb, mbedtls, memcached, + mesa3d, mpd, mplayer, nbd, ncftp, ntp, openssh, opentyrian, + pcre, perl-gd, python, qt5base, rpi-userland, rpm, samba4, + skalibs, slang, sngrep, squashfs, syslog-ng, taglib, + tcpreplay, tor, upmpdcli, wget, wireshark, + xdriver_xf86-video-vmware, xlib_libXv, zmqpp + + Issues resolved (http://bugs.buildroot.org): + + #9456: mkusers script bash errors + +2017.02, Released February 28th, 2017 + + Minor fixes, mainly fixing autobuilder issues. + + Don't use cmake 3.7.x from the build host as it is also + affected by the RPATH handling issues, and instead build our + own if needed. + + Updated/fixed packages: assimp, classpath, genimage, mplayer, + mpv, openocd, python-libconfig, qt5base, qt5quickcontrols, + vlc, xterm + +2017.02-rc3, Released February 26th, 2017 + + Fixes all over the tree. + + Cmake reverted to version 3.6.3 to workaround regressions + related to RPATH handling. + + Updated/fixed packages: bctoolbox, berkeleydb, binutils, + btrfs-progs, classpath, directfb, glibc, gstreamer1, + gst1-plugins-{base,good,bad,ugly}, gst1-libav, + gst1-rtsp-server, gst1-validate, gst-omx, htop, libcurl, + libepoxy, libimxvpuapi, libpcap, libuv, ncurses, openssh, + oracle-mysql, poco, python, qt5base, qt5webkit, sslh, synergy, + trousers, uclibc-ng-test, util-linux, vlc, xfsprogs + + Issues resolved (http://bugs.buildroot.org): + + #9251: Shared C++ libraries for Microblaze results in Segmentation... + #9456: mkusers script bash errors + #9506: Collectd 5.7.0 fails to build with libcrypt + #9581: VagrantFile provisioning step fails due to issue with grub-pc + #9586: usbmount: usbmount slows down the system... to a state of... + #9616: CMake host packages cannot provide CONF_ENV + #9641: Need raptor package installed in staging + #9671: stunnel build error + +2017.02-rc2, Released February 20th, 2017 + + Fixes all over the tree. + + Support for SOURCE_DATE_EPOCH in the toolchain wrapper for + older gcc versions for reproducible builds has been + (temporarily) reverted because of licensing compatiblity + concerns. + + Defconfigs: SD card generation fix for the Udoo Neo board + + Infrastructure to handle .lz compressed tarballs added, and + affected packages updated to use it. + + Updated/fixed packages: bctoolbox, bind, canelloni, + cbootimage, ccache, classpath, cups, dbus, ddrescue, directfb, + ed, erlang, gcc, gdb, glmark2, gstreamer, gstreamer1, hiredis, + kmod, kmsxx, lcdapi, libasplib, libgpiod, libnss, libraw, + libv4l, mesa3d-headers, mosquitto, mpd, mpv, musl, ntfs-3g, + ocrad, openswan, postgresql, qt5base, qt5quickcontrols, redis, + riemann-c-client, samba4, sunxi-mali, tcping, trousers, + uclibc, util-linux, vim, wavpack, wget, wiringpi, xfsprogs, + xserver_xorg-server + + Issues resolved (http://bugs.buildroot.org): + + #8941: Valgrind fails to build with stack protection turned on + #9291: perl: SysV message queues not configured, even if available + #9651: libxcb-1.12 built Error + #9656: util-linux: schedutils doesn't build on target w/o enabl... + #9666: qt5quickcontrols install fails + +2017.02-rc1, Released February 11th, 2017 + + Fixes all over the tree and new features. + + Infrastructure: + + - numerous improvements to support reproducible builds + + - new waf-package package infrastructure to support packages + that use the Waf build system. 6 packages converted to + this infrastructure. + + - add option _PREFER_INSTALLER to the perl package + infrastructure + + Architecture: + + - add support for the OpenRISC CPU architecture + + - merge description of the ARM and ARM64 options, and add + support for selecting a specific ARM64 core + + Toolchain: + + - major rework of the external toolchain support. It is now + split into several packages, one per external toolchain, + and a common infrastructure. + + - important fix for musl to prevent a conflict between musl + and kernel headers (fixes the build of numerous packages + with musl) + + - uClibc-ng bumped to 1.0.22, and therefore enable uClibc + for ARM64, mips32r6 and mips64r6 + + - add gdb 7.12.1, and switch to gdb 7.11 as the default + + - Linaro toolchains updated to 2016.11, ARC toolchain + components updated to arc-2016.09, MIPS Codescape + toolchains bumped to 2016.05-06, CodeSourcery AMD64 and + NIOS2 toolchains bumped + + - remove Analog Devices toolchain for the Blackfin + architecture, remove pre-built musl toolchains from + musl.codu.org + + New defconfigs: Freescale i.MX23EVK, Qemu OpenRISC emulation, + Qemu NIOS2 emulation, Grinn chiliBoard, Freescale i.MX6Q + SabreSD, BeagleBoard X15, OrangePi One, ARC HS38 HAPS + + New packages: angular-websocket, aubio, bctoolbox, darkhttpd, + ddrescue, easydbus, fakedate, git-crypt, hiredis, ifenslave, + jsmn, libgpiod, libgsm, linux-syscall-support, mariadb, mimic, + nginx-dav-ext, nmon, opkg-utils, policycoreutils, + pru-software-support, python-arrow, python-attrs, + python-babel, python-bitstring, python-chardet, + python-constantly, python-flask-babel, python-gunicorn, + python-incremental, python-jsonschema, python-logbook, + python-markdown2, python-mbstrdecoder, python-mutagen, + python-pathpy, python-pudb, python-pyqrcode, + python-pytablereader, python-setuptools-scm, python-sh, + python-toml, python-vcversioner, python-whoosh, + raspberrypi-usbboot, riemann-c-client, rtl8723bs, skalibs, + sslh, sngrep, ti-cgt-pru, uclibc-ng-test, udpxy, uhttpd, + upower, ustream-ssl, waf, xlib_libXfont2 + + Removed packages: perl-db-file, snowball-hdmiservice, + snowball-init + + Tooling: addition of a test-pkg script to help contributors + build test their package. + + Issues resolved (http://bugs.buildroot.org): + + #8946: Valgrind fails to build with stack protection turned on + #9461: odroidc2 - toolchain Linaro AArch64 2016.11 compile error + #9466: VIM_REMOVE_DOCS removes rgb.txt + #9486: xorg-server 1.19 fails to compile for glibc with systemd init (x86_64) + #9501: eudev fails to build with older kernel headers + #9526: Embedded NPM fails to start with "no such file or directory" error + #9541: Platform drivers autoloading from info in device tree does not work + #9546: seems BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTB_OVERLAYS do nothing + #9551: Coreutils fails to build target src/src_libsinglebin_pinky_a-pinky.o + #9566: [kmod] Compilation fails with uclibc + #9571: buildroot fails while building opencv for arm64 platform + #9576: External tree with BR 2016.11 does not work anymore + #9606: xorg-server cannot build for ARM target + +2016.11.3, Released March 9th, 2017 + + Important / security related fixes. + + Updated/fixed packages: bind, dbus, gnutls, imagemagick, + lcms2, libcurl, ntfs-3g, ntp, openssl, php, quagga, redis, + squid, stunnel, tcpdump, vim, wavpack, wireshark, xlib_libXpm + +2016.11.2, Released January 25th, 2017 + + Important / security related fixes. + + A fix for BR2_EXTERNAL trees referenced using relative paths, + which broke in 2016.11. + + Updated/fixed packages: bind, docker-engine, gd, gnutls, go, + imagemagick, irssi, libpng, libvncserver, musl, opus, php, + php-imagick, rabbitmq-server, runc, wireshark, + + Issues resolved (http://bugs.buildroot.org): + + #9576: External tree with BR 2016.11 does not work anymore + +2016.11.1, Released December 29th, 2016 + + Important / security related fixes. + + Updated/fixed packages: apache, cryptopp, docker-engine, + dovecot, exim, gdk-pixbuf, libcurl, libupnp, links, monit, + nodejs, openssh, php, python, python-bottle, samba4, squid, + uboot, vim, wireshark, xorg-server uboot + + Issues resolved (http://bugs.buildroot.org): + + #9466: VIM_REMOVE_DOCS removes rgb.txt + +2016.11, Released November 30th, 2016 + + Minor fixes. + + Updated/fixed packages: bzip2, gcc, jasper, sane-backends, + uboot, uclibc + + Issues resolved (http://bugs.buildroot.org): + + #9451: packages/postgresql/postgresql.mk contains wrong POST... + +2016.11-rc3, Released November 28th, 2016 + + Fixes all over the tree, including a number of security fixes. + + The move from fakeroot to pseudo unfortunately brought a + number of issues. The SELinux issue described in #9386 which + triggered the move to pseudo has been investigated further and + a workaround implemented and the pseudo changes reverted. + + Linux kernel: update default to 4.8.11. + + Defconfigs: Updates/fixes for imx28ek, mx6udoo, imx6ulpico, + olimex a20 olinuxino lime mali, roseapplepi, synopsis aarch64 + vdk, axs101, axs103 and hs38 smd vdk. + + Updated/fixed packages: autossh, chrony, dosfstools, + dtv-scan-tables, e2fsprogs, gcc, gdb, gnuchess, gnuradio, + gpsd, gst1-plugins-bad, gst1-plugins-good, imagemagick, + kvm-unit-tests, libfribi, libuv, mesa3d, mpfr, mplayer, mpv, + ntp, ola, olsr, openblas, openjpeg, openssh, postgresql, + ptpd2python3, qemu, qextserialport, qt5base, quagga, xqwt, + taskd, tiff, tremor, trousers, udisks, uclibc, wireshark, + xapp_xload, xenomai, xmlstarlet + + Issues resolved (http://bugs.buildroot.org): + + #9386: ubinize fails with or without custom config + #9431: A misspelling + #9446: make raspberrypi3_defconfig compilation failure + +2016.11-rc2, Released November 13th, 2016 + + Fixes all over the tree. + + Architecture: add support for MIPS XBurst cores; remove MIPS + support for M5100 cores. + + Updated/fixed packages: mesa3d, lttng-babeltrace, tinyalsa, pseudo, + czmq, libxml2, makedevs, binutils, kvm-unit-tests, libnss, privoxy, + qemu, ser2net, net-tools, ffmpeg, assimp, libmpeg2, ccache, mpv, + libxslt, python, python3, php, valgrind, guile, domoticz, efl, + jasper, kvmtool, go, wget, sane-backends, weston, tinymembench, + strace, openjpeg, lcms2, quota. + + Linux kernel: update default to 4.8.7. + + CMake support: fix cmake wrapper to properly pass NDEBUG flag. + + Filesystems: use a wrapper to pseudo, to better mimick the behaviour + of fakeroot; makedevs no longer breaks of the destination already + exists and is of the correct type/major/minor. + + Defconfigs: a few legacy and broken defconfigs have been removed + because they now fail to build: kb9202_defconfig, mini2440_defconfig, + freescale_p2020ds, qmx6, calao*, atmel_sama5d4ek. Other defconfigs + have been updated: nanopi-neo, olimex_a20_olinuxino_lime_mali, + armadeus_apf51, armadeus_apf28, freescale_imx31_3stack, ci20, + olimex_a20_olinuxino_lime2, atmel_at91sam9260eknf, + atmel_at91sam9rlek, atmel_at91sam9g20dfc, atmel_at91sam9g45m10ek, + atmel_sama5d3xek. + +2016.11-rc1, Released November 3rd, 2016 + + Fixes all over the tree and new features. + + It is now possible to specify multiple BR2_EXTERNAL + directories. The required files in a BR2_EXTERNAL directory + have changed to accomodate this feature. Refer to the + documentation for details of how to update them. External + trees now have a name and a description. Also, it is possible + to override a defconfig in the external tree. + + The default skeleton now uses UID 65534 for the "nobody" + user instead of UID 99, like most distros do. See + https://lwn.net/Articles/695478/ for a complete discussion. + Programs and configuration files that explicitly refer to UID + 99 will have to be updated. + + When the build environment already has a suitable cmake version + (3.1 or later), that one will be used instead of building + host-cmake. This can speed up the build significantly. + + The ExtUtils::MakeMaker perl module is now required in the + build environment. + + An additional check is done during the build that files are + not installed in the output directory within the output + directory. This happens e.g. when the target directory is + contained both in --prefix and in DESTDIR. The build will + terminate with an error message that specifies which package + and which file caused the failure. + + The concept of "deprecated packages" and the BR2_DEPRECATED + option have been removed. Instead, packages are removed + immediately. Packages are only removed when they don't work + for some reason. If you still need a removed package and + you have a solution for the problem(s) that caused the + removal, please contribute it. + + Architecture: support for sh64 removed, improved support for + MIPS core selection. + + Toolchain: support for musl powerpc64le, mips64 and mipsr6 + toolchains, ARC toolchain components updates, gcc 6.x series + bumped to 6.2.0, default binutils version switched to 2.26, + default gcc version switched to gcc 5.x, Linaro toolchains + updated, uclibc-ng bumped to 1.0.19. GCC is now always built + with TLS support. Checking of unsafe compiler options (that + point to host directories) has been extended with -isystem, + -idirafter and -iquote. + + Package infrastructure: new variable $(PKG)_DL_OPTS, addition + of -show-rdepends to list reverse dependencies, and + -graph-rdepends to graph reverse dependencies. Linux tools + are now in a separate linux-tools package instead of in the + kernel build. Fakeroot has been replaced by pseudo. + + CMake support: the toolchainfile.cmake file now provides a + definition of the CMAKE_BUILD_TYPE variable. The + toolchainfile.cmake also no longer forces the compiler/linker + flags defined by Buildroot. + + New defconfigs: WaRP7, Solidrun's MX6 Cubox/Hummingboard, + TS-4900, Grinn's liteBoard, Udoo MX6Q/DL, Qemu ARM noMMU, + BeagleBone Qt5 demo, Digilent Zybo, FriendlyARM Nanopi NEO. + + New packages: arm-trusted-firmware, amd-catalyst, atop, aufs, + aufs-util, fwts, gst1-rtsp-server, libglob, libite, mfgtools, + mksh, motion, paho-mqtt-c, php-amqp, pseudo, python-couchdb, + python-crcmod, python-cssutils, python-docutils, + python-futures, python-mwclient, python-mwscrape, + python-mwscrape2slob, python-pyelftools, python-pyicu, + python-pylru, python-pyqt5, python-requests-toolbelt, + python-simpleaudio, python-slob, rabbitmq-server, shapelib, + vdr, vdr-plugin-vnsiserver, vexpress-firmware, xvisor, iio and + gpio linux tools. + + Removed packages: binutils 2.24, fakeroot, gcc 4.7, ipkg, + kodi-addon-xvdr, libgail, sstrip, torsmo, webkit, webkitgtk24, + wvdial, wvstreams. + + Documentation: the list of packages that was present in the + Buildroot manual has been removed. + + Legal info: the "licenses.txt" file that concatenates all + license texts is no longer generated - it was not considered + useful. The manifest.csv contains an empty cell instead of + "not saved" when no license file is available. + + Other: addition of a DEVELOPERS file listing developers taking + care of packages or architectures. + + Issues resolved (http://bugs.buildroot.org): + + #7802: host-python build hangs compiling getbuildinfo.o + #8206: mplayer uses host xorg development files + #8516: mkcubiecard.sh uses outdated sfdisk switch -D + #8536: Building sudo with PAM results in unusable sudo + #8646: check-host-rpath script returns false positives when rpath + contains symlink + #8696: xdriver_xf86-input-mouse install header files in target + directory + #8811: rp-pppoe - generated scripts commands use HOST pathnames, + not necessarily TARGET + #8846: Orphaned/missing toolchain borks eclipse plugin + #8856: python tornado runtime wasn't met on buildroot 2016.02 + #8901: gcc failes to build if fortran is enabled + #8916: LDFLAGS pass to openssh + #8941: "ls" of an NFSv4 share only works when pumped through strace + #8946: Valgrind fails to build with stack protection turned on + #9021: Kodi - Broken: Illegal instruction (core dumped) + #9096: rootfs.ubi not created + #9111: glibc 2.23: libmvec.so not copied + #9176: minnowboard : USB not mounted + #9196: raspberry pi 3 default build seem broken + #9201: Permission denied make: *** [core-dependencies] Error 126 in + Buildroot-2015.08.1 + #9216: log4cpp package build fails to build within install + #9221: Kodi needs "Python .py and .pyc support" otherwise it crashes when + pressing buttons. + #9229: Firefly boot fails with: "failed to find part:boot" + #9256: [Config file] New device: Odroid-U2/U3 + #9296: Buildroot Fails on applying patches + #9301: U-boot fails to build with default zynq_zed_defconfig configuration + #9316: U-boot fails to build if libssl-dev is not installed + #9321: Vanilla libcrypt++ v5.6.3 doesn't allow to work Nvidia Tegra's + flash utility (tegrarcm) + #9326: Odroid-C2 build results in non-bootable image + #9336: Improve iconv support for external toolchain based builds + #9356: gdb package + #9366: no link rootfs.ext4 -> rootfs.ext2 + #9371: openssl: download failes with "Only allow downloads from primary + download site" + local server + #9381: check-host-rpath issues + #9386: ubinize fails with or without custom config + +2016.08, Released September 1st, 2016 + + Minor fixes. + + Toolchain: ARC tools updated to arc-2016.09-eng010. + + Updated/fixed packages: libshout, luajit, mpd, mplayer + + Issues resolved (http://bugs.buildroot.org): + + #7520: CodeSourcery toolchain ARM: C++11 std::exception_ptr.. + #8341: Getting EGL Error: Could not create the egl surface:.. + #9121: gst1-imx for i.MX6 compile failed, cannot find PXP, .. + +2016.08-rc3, Released August 29th, 2016 + + Fixes all over the tree. + + Toolchain: C++ support for the internal blackfin toolchain + re-enabled. + + Architecture: Default to bf532 CPU variant for blackfin, + Fix flat one memory region support for m68k and disable flat + seperate data support because of compatibility issues. + + Defconfigs: Minnowboard and Raspberrypi: Fix errors with + post-build scripts when systemd is used. + Zynq microzed/zc706/zed: Fix u-booot configuration. + + netbsd-queue package extended and renamed to + musl-compat-headers. With this, a number of musl compatibility + patches are no longer needed. + + Updated/fixed packages: aircrack-ng, android-tools, babeld, + bcusdk, binutils, boa, busybox, connman, cpupower, + docker-engine, domoticz, elf2flt, ffmpeg, fwup, gcc, + glib-networking, gnupg, hplip, igd2-for-linux, imagemagick, + imx-uuc, iputils, jack2, kismet, kmsxx, libaio, libamcodec, + libconfuse, libffi, libfreeimage, libgcrypt, libgpg-error, + libiio, libraw, libsepol, libserialport, libxmlrpc, linknx, + linux-pam, lirc-tools, lldpd, logrotate, lshw, musl, ncurses, + neon, nettle, norm, ntfs-3g, openblas, openmpi, openswan, + pinentry, pixman, protobuf, python-meld3, qlibc, qt, qt5base, + quagga, rpcbind, rt-tests, runc, sane-backends, sconeserver, + squeezelite, stella, tftpd, tinycbor, tinydtls, trace-cmd, + trousers, tstools, uboot-tools, uclibc, ulogd, ustr, vlc, + webkitgtk, wireshark, xdriver_xf86-video-intel + + Issues resolved (http://bugs.buildroot.org): + + #9101: Error on support/download/git with system git older than 1.8.4 + #9181: Compiling linux kernel fails if BR2_LINUX_KERNEL_TOOL_CPU.. + +2016.08-rc2, Released August 17th, 2016 + + Fixes all over the tree. + + Toolchain: disable broken C++ support for internal blackfin + toolchains, ARC toolchain bumped to arc-2016.09-eng008 (GCC 6) + to fix various issues. + + System: Zoneinfo is available for the musl C library as well. + + Updated/fixed packages: am33x-cm3, axel, barebox, bdwgc, + blktrace, cairo, dante, enlightenment, fbterm, ffmpeg, flex, + fontconfig, gcc, gmp, gnuplot, gnuradio, gst1-imx, hidapi, + inotify_tools, iproute2, kmsxx, lftp, libaio, libcofi, + libical, libpjsip, libsidplay2, libunwindow, libxml2, + linux-zigbee, lttng-libust, mpv, mtd, ncdu, netplug, ntp, + openblas, openipmi, owfs, php, poco, procps, qt, quota, + sg3_utils, spidev_test, systemd-bootchart, thrift, + uboot-tools, uclibc, webrtc-audio-processing, wayland, weston, + xdriver_xf86-video-savage, xserver_xorg-server, xen + + Issues resolved (http://bugs.buildroot.org): + + #9136: make graph-size fails with "ValueError: too many values to.. + #9151: qt: fix build with ALSA >= 1.1.x + #9156: qt: Fix missing runtime Qt3Support dependency + #9161: modsetting patch not applied to xserver 1.18.4 + #9166: Missing overlays directory in VFAT image for raspberry pi 3 + +2016.08-rc1, Released August 6th, 2016 + + Fixes all over the tree and new features. + + Toolchain: Fortran support added. eglibc support removed, musl + support no longer experimental. Blackfin and Microblaze + support for internal uClibc-ng toolchain, m68k/coldfire + improvements. The check for unsafe (build host) directories + access (/usr/include and /usr/lib) is now enabled by default. + Unused locales are now purged by default to save space (and + the default list of locales shrunk). The option to control + this has now moved from the toolchain menu to system + configuration. + + Legal info improvements: sources are now hardlinked instead of + copied if possible to save space. Patches and extra downloads + are also saved. + + An experimental configuration knob (BR2_REPRODUCIBLE) has been + added to make the builds more reproducible (E.G. less + differences in the binary output between builds of the same + configuration). This is still work in progress. + + An option to execute a custom script inside the fakeroot + environment used to the generate the filesystem (E.G. to tweak + permissions or similar) has been added. + + Git support now supports git submodules if + _GIT_SUBMODULES is enabled. + + Hash files for integritry validation have been added for all + packages. + + Scanpypi utility to help creating packages from the Python + package index (pypi) has been added. + + The makedevs utility now has support for adding file + capabilities using extended attributes. + + New defconfigs: Arcturus uCP1020, Atmel sama5d{2,3,4} xplained + development configs, Blackfin GDB simulator, Linksprite + pcDuino, Minnow Board Max graphical demo, NXP i.MX25 PDK, + i.MX51 EVK, i.MX6UL Pico, i.MX7 sabresd, QEMU MIPS32r6{,el} and + MIPS64r6{,el} malta, Roseapple Pi, Samsung Snow chromebook, + Toradex Apalis i.MX6 COM, TS-4800, x86-64 PC BIOS and EFI + demos. A number of defconfigs have been updated and extended + to generate SD card images. Synopsys HS38 VDK defconfig removed. + + New packages: 4th, acpica, acpitool, alljoyn, alljoyn-base, + alljoyn-tcl, alljoyn-tcl-base, argparse, babeld, batman-adv, + circus, dante, docker-containerd, docker-engine, domoticz, + efibootmgr, efivar, ficl, fwup, gsettings-desktop-schemas, + gtksourceview, gupnp-dlna, gupnp-tools, igd2-for-linux, + jemalloc, kmsxx, lapack, lft, libaacs, libamcodec, libbdplus, + libcoap, libdvdcss, libebur128, libfastjson, libminiupnpc, + libnatpmp, libpqxx, libuio, libvdpau, log4cpp, minissdpd, + mxsldr, nginx-nasxi, nginx-upload, ninja, nodm, odroid-mali, + odroid-scripts, omxplayer, openblas, openmpi, openzwave, + p7zip, pdbg, python-argh, python-dataproperty, + python-dateutil, python-dialog3, python-dicttoxml, + python-dominate, python-engineio, python-flask-jsonrpc, + python-flask-login, python-humanize, python-pathtools, + python-pathvalidate, python-pillow, python-prompt-toolkit, + python-pytablewriter, python-pytz, python-scapy3k, + python-sdnotify, python-socketio, python-tomako, + python-ubjson, python-u-msgpack, python-watchdog, + python-wcwidth, python-xlrd, python-xlsxwriter, + python-xlutils, python-xlwt, rs485conf, runc, sdl2_gfx, + sdl2_image, sdl2_ttf, shellinabox, sphinxbase, stella, + supertuxkart, systemd-bootchart, tekui, terminology, tinycbor, + tinydtls, ti-sgx-demos, ti-sgx-km, ti-sgx-um, tunctl, wavemon, + wiringpi, xen + + Deprecated packages: ipkg, sstrip + + Removed packages: sunxi-mali-prop + + Issues resolved (http://bugs.buildroot.org): + + #8931: segment fault when compile argp-help.c using aarch64-bu... + #8966: eglfs error. buildroot don't compile the library libeglfs.so + #8971: build for beaglebone fails + #8986: qt5imageformats fails to build on AArch64 + #8991: grub2 fails to compile + #9001: Nodejs option not available + #9006: gcc with c++ support v4 and v5 fail to compile on fedora 24 + #9016: arceb-buildroot-linux-uclibc ld uses incorrect default format + #9066: 8139TOO - faulty behaviour + #9086: Syntax Error (missing ")" in boot/uboot/uboot.mk on line 203) + #9091: U-Boot fails to boot with large ramdisk + +2016.05, Released May 31st, 2016 + + Minor fixes. + + External toolchain: Fix for symlink handling when copying + links to target. + + Updated/fixed packages: gcc, grantlee, gst-ffmpeg, + ipsec-tools, iptraf-ng, libcurl, libdrm, libsigsegv, ltris, + lttng-babeltrace, mbedtls, mesa3d, moarvm, mplayer, mtools, + net-tools, openpowerlink, pulseview, rpm, tinyalsa, + xdriver_xf86-video-fbturbo, xserver_xorg-server + +2016.05-rc3, Released May 26th, 2016 + + Fixes all over the tree. + + Tweaks for SSP handling for external toolchains. + + Updated/fixed packages: aircrack-ng, bluez5_utils, connman, + cups, erlang-p1-stringprep, expat, ffmpeg, flann, flannel, go, + gst1-libav, hidapi, hplip, iptraf-ng, jamvm, kodi, + kodi-screensaver-matrixtrails, libcurl, libepoxy, libgpgme, + libsemanage, libxslt, liquid-dsp, ltris, lxc, mesa3d, midori, + mpg123, mtr, openpgm, openpowerlink, oprofile, php, + postgresql, putty, python-service-identity, python-treq, + qlibc, qt5serialbus, ruby, stress-ng, strongswan, time, tinc, + ustr, valgrind, webkitgtk, libxml2, xorriso, + xserver_xorg-server + + Issues resolved (http://bugs.uclibc.org): + + #8936: Aircrack-ng - Alot of missing dependencies + +2016.05-rc2, Released May 17th, 2016 + + Fixes all over the tree. + + Rootfs overlay handling now refuses to overwrite + /{usr,bin,sbin,lib} symlinks from BR2_ROOTFS_MERGED_USR option + even if these directories are present in the overlay. + + External toolchain: Unbreak user provided libraries deployment + (BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS) handling after refactoring. + + QEMU coldfire: Fix for signal handling kernel issue, enable + networking support. + + Updated/fixed packages: android-tools, assimp, boost, gcc, + glibc, glmark2, gmrender-resurrect, go, go-bootstrap, iputils, + jack2, kodi-screensaver-asterwave, kodi-screensaver-rsxs, + kodi-visualisation-shadertoy, libarchive, libinput, libpjsip, + mali-t76x, mtr, nginx, opencv, openvpn, python-coherence, + qt5multimeda, quagga, samba4, sg3-utils, stress-ng, turbolua + +2016.05-rc1, Released May 10th, 2016 + + Fixes all over the tree and new features. + + Architectures: new ARM variants: Cortex A17 and M4, improved + nonmmu (cortex-M) support, m68k has been re-enabled with + support for ColdFire. For x86, support for the i386 variant + has been dropped. + + Toolchain: Add GCC 6 support, remove GCC 4.5, mark GCC 4.7 as + deprecated. Go programming language support, Add Binutils 2.26 + support. Old Sourcery PowerPC external toolchains removed, + Sourcery MIPS 2016.06-8, AMD64 2015.11-139, NiosII 2015.11-130 + added, Linaro ARM/ARMeb/Aarch64 toolchains updated. + + New defconfigs: Firefly RK3288, Boundary Devices i.MX7 Nitrogen7, + STM32F429 and STM32F469 Discovery boards, Hardkernel ODROID-C2, + Raspberry Pi Zero and Raspberry Pi 3. Some Qemu defconfigs were + added for m68k, eXtensa-nommu and ColdFire. + + Linux: use zImage by default on ARM, subversion repository + support (for u-boot as well). + + New packages: aer-inject, android-tools, cannelloni, + cbootimage, cgroupfs-mount, connman-gtk, crudini, dt, + gmrender-resurrect, flannel, font-awesome, freeswitch, go, + go-bootstrap, gr-osmosdr, granite, i7z, imx-uuc, + kodi-adsp-basic, kodi-adsp-freesurround, + kodi-audiodecoder-opus, kodi-pvr-hdhomerun, + kodi-screensaver-asterwave, kodi-screensaver-cpblobs, + kodi-screensaver-matrixtrails, kodi-screensaver-planestate, + kodi-screensaver-rsxs, kodi-visualisation-fishbmc, + kodi-visualisation-fountain, kodi-visualisation-goom, libgee, + libimxvpuapi, libpjsip, libtomcrypt, libtommath, libusbgx, + lksctp-tools, mali-t76x, mkpimage, mpv, msr-tools, nload, + norm, nvme, owfs, pound, privoxy, procrank_linux, putty, + python-autobahn, python-characteristic, python-crossbar, + python-cryptography, python-iniparse, python-iowait, + python-lmdb, python-pexpect, python-ptyprocess, + python-pyasn-modules, python-pygments, python-pymysql, + python-pynacl, python-pyopenssl, python-pysocks, + python-pytrie, python-rpi-gpio, python-service-identity, + python-setproctitle, python-shutilwhich, python-treq, + python-txaio, python-ujson, python-wsaccel, qt5canvas3d, + qt5location, qt5quickcontrols2, qt5serialbus, qt5tools, + raptor, scrub, taskd, tegrarcm, turbolua, valijson, + wayland-protocols, webkitgtk, wilc1000-firmware, wpan-tools, + xdriver_xf86-video-amdgpu + + Removed packages: foomatic-filters, python-m2crypto, + qt5quick1, qt5webkit-examples, samba, xdriver_xf86-input-void + + Issues resolved (http://bugs.buildroot.org): + + #6830: Qt5: no fonts are installed + #7562: musl buildroot-toolchain and BR2_MIPS_SOFT_FLOAT break + #7580: Invalid filesystem in Pandaboard defconfig + #8346: wf111 package removes all kernel module dependencies + #8436: xserver_xorg-server Segmentation fault + #8736: IPV6 forced on in busybox + #8746: At startup system stops with 'cannot set terminal proces.. + #8751: make fail [fio does not build on sh] + #8766: Compiling host-gcc-final-4.9.3 broken on i386 + #8771: make savedefconfig modifies sources + #8781: Unable to build uboot for imx28evk + #8786: gdb fails to build with xz and expat support at the same + #8801: Compilation of Buildroot 2016.2 for Raspberry Pi with... + #8806: Buildroot 2016.2 for Raspberry Pi requires that ext4... + #8836: Can't select Vim in menuconfig + #8851: Make sure fio can compile with libaio support if it... + #8861: With buildroot 2016.02 trying to build for corei7-avx + fails while trying to build host-binutils + #8866: Making an USB flash bootable with extlinux build with + buildroot does not work + +2016.02, Released March 1st, 2016 + + Minor fixes, mostly security related. + + Circular dependency issue with same-as-kernel linux-headers + option fixed. + + Updated/fixed packages: bluez5_utils, heirloom-mailx, + imx-gpu-viv, kodi-pvr-argustv, kodi-pvr-mediaportal-tvserver, + kodi-pvr-nextpvr, libfcgi, openssl, pifmrds, powerpc-utils, + python-m2crypto, slang, sox, squid, tn5250, xerces, zsh + +2016.02-rc3, Released February 27th, 2016 + + Fixes all over the tree. + + Defconfigs: Ensure EABIhf is correctly enabled for ARM cores + where VFP is optional (but present on the specific hw). Fix + ARM variant selection for freescale_imx31_3stack_defconfig. + + Ensure tarballs of downloaded git trees do not contain a + timestamp. + + Clarify license of patches in COPYING. + + Updated/fixed package: avahi, binutils, cairo, can-festival, + chrony, cifs-utils, dnsmasq, dvdauthor, e2fsprogs, efl, + erlang-rebar, eudev, fbterm, gawk, gnupg2, gnuradio, gpm, + gst1-plugins-good, hostapd, imagemagick, iproute2, iputils, + jack2, kexec, kismet, lftp, libarchive, libeXosip2, libfm, + libglib2, libsoil, libssh, libssh2, libuci, links, lshw, lxc, + mediastreamer, mono, mraa, mutt, nfs-utils, numactl, ofono, + omniorb, openipmi, openobex, patch, pax-utils, perf, + pulseaudio, pure-ftp, qhull, qt, quagga, quota, sdl_sound, + shairport-sync, spice, sysklogd, syslog-ng, trace-cmd, + trousers, tvheadend, util-linux, vim, webkitgtk24, wireshark, + wpa_supplicant, xerces, zsh + + Issues resolved (http://bugs.uclibc.org): + + #8651: libMonoPosixHelper.so wrong link reference in buildroot.. + +2016.02-rc2, Released February 18th, 2016 + + Fixes all over the tree. + + Toolchain: PR19405 backport to binutils 2.25.1 to fix NIOS ld + crash, backport of Xtensa .init/.fini literals handling. + glibc security patches for CVE-2014-8121, CVE-2015-1781 + and CVE-2015-7547. + + Defconfigs for Acmesystems Arietta g25 added. + + Updated/fixed packages: binutils, boost, chrony, dovecot, + e2fsprogs, fio, gdb, glibc, graphite2, icu, kbd, libbsd, + libcue, libgcrypt, libraw, links, mc, mosquitto, nodejs, + postgresql, pptp-linux, pulseaudio, samba4, spice, squid, + sysklogd, systemd, tiff, uclibc, ulogd, util-linux, valgrind. + + Issues resolved (http://bugs.uclibc.org): + + #8576: Building embedded Linux for Atmel SAMA5D4_Xplained... + #8606: Problem compiling on Arch Linux + #8681: kbd 2.0.3 does not build on rpi + +2016.02-rc1, Released February 10th, 2016 + + Fixes all over the tree and new features. + + Toolchain: Support for GCC 5.3.x. ARC toolchain updated to + arc-2015.12. Support for legacy uClibc dropped, default to + uClibc-ng instead. Added sys/queue.h implementation for MUSL + for compatibility. Updated versions of Code sourcery and + Linaro toolchains. MIPS Codescape toolchains added. Version + selection for preconfigured external toolchains removed. + + New Defconfigs: ARM Juno r0/r1 development boards, Freescale + i.MX6UL Evaluation Kit, Intel Galileo Gen 2, Orange Pi PC. + A number of defconfigs have been extended to generate complete + system images using genimage. + + Linux: Automatically patch timeconst.pl for <3.9 kernels, + which isn't compatible with modern perl versions, breaking the + build when building on recent (Fedora 23, Debian + Testing/Unstable, ..) distributions. + + Makedevs utility now accepts textual (non-numerical) user and + group names. + + Vagrant file to easily setup a working development environment + in a VM has been added. + + Size-stats-compare script to compare rootfs sizes between + builds has been added. + + Infozip package renamed to zip. EFL packages restructured. + + Updated/fixed packages: aespipe, aiccu, alsa-lib, alsa-utils, + angularjs, apache, apr, argp-standalone, armadillo, arptables, + at, atk, audiofile, aumix, autoconf-archive, avahi, bash, bc, + bcache-tools, bdwgc, beecrypt, bind, binutils, bluez5_utils, + bluez_utils, bonnie, boost, busybox, cairo, cdrkit, chrony, + clamav, cmake, collectd, connman, coreutils, cppcms, crda, + cryptodev-linux, cryptsetup, cups, cwiid, cxxtest, dbus, + dbus-cpp, dbus-glib, debianutils, dhcp, dhcpcd, dhrystone, + dillo, directfb, directfb-examples, dmraid, dnsmasq, doom-wad, + dovecot, dovecot-pigeonhole, dropbear, dtv-scan-tables, + dvb-apps, dvbsnoop, ecryptfs-utils, eigen, ejabberd, + elementary, elfutils, enlightenment, erlang, espeak, eudev, + eventlog, exfat, exfat-utils, exiv2, expedite, faifa, + fakeroot, fastd, fbgrab, fetchmail, ffmpeg, findutils, fio, + firmware-imx, flann, flashrom, flite, flot, fmlib, freerdp, + freescale-imx, freetype, gauche, gawk, gcc, gcc-final, gcr, + gdb, gdk-pixbuf, geoip, gesftpserver, gettext, giflib, git, + glibc, glibmm, glog, gmp, gnupg, gnupg2, gnutls, gob2, gpsd, + gptfdisk, grep, gst1-libav, gst1-plugins-{bad,base,good,ugly}, + gst-ffmpeg, gst-plugins-{bad,base,good,ugly}, gstreamer, + gstreamer1, guile, gvfs, gzip, harfbuzz, haserl, hiawatha, + hostapd, hplip, icu, ifupdown, imagemagick, imx-gpu-viv, + imx-kobs, imx-lib, input-tools, intel-microcode, iperf3, + ipmitool, iproute2, iprutils, ipsec-tools, ipset, iptables, + iputils, irda-utils, irssi, iucode-tool, jack2, janus-gateway, + jpeg-turbo, jquery-datetimepicker, jquery-keyboard, + jquery-sparkline, jquery-ui, jquery-ui-themes, + jquery-validation, json-c, kbd, kernel-module-imx-gpu-viv, + keyutils, kmod, knock, kodi, lcdproc, lcms2, leafnode2, + leafpad, libass, libatomic_ops, libbroadvoice, libbsd, + libcap-ng, libcdaudio, libcue, libcurl, libdrm, libecore, + libedbus, libedit, libedje, libeet, libefreet, libeina, + libeio, libelementary, libembryo, libepoxy, libethumb, libev, + libevas, libevas-generic-loaders, libevdev, libevent, libffi, + libfm, libfribidi, libfslcodec, libfslparser, libfslvpuwrap, + libftdi, libfuse, libgail, libglew, libglib2, libgtk2, + libgtk3, libgudev, libhttpparser, libidn, libinput, libiscsi, + libjpeg, liblinear, libmbim, libmicrohttpd, libndp, libnspr, + libnss, liboauth, liboping, libpciaccess, libplist, libpng, + libraw, libraw1394, librsvg, libseccomp, libsecret, + libserialport, libsigc, libsigrok, libsigrokdecode, + libsndfile, libsoc, libsodium, libsoup, libssh2, libsvg, + libsvg-cairo, libtasn1, libtirpc, libtorrent, libungif, + libunwind, libupnpp, liburcu, libuv, libv4l, libva, + libva-intel-driver, libvips, libvncserver, libxml2, libxmlpp, + lightning, lighttpd, linknx, linux-firmware, linux-fusion, + linux-headers, liquid-dsp, lirc-tools, live555, lm-sensors, + lockdev, lshw, ltp-testsuite, ltrace, lttng-babeltrace, + lttng-libust, lttng-modules, lttng-tools, lua, luabitop, + luarocks, luv, lvm2, lxc, makedevs, mc, memcached, memtest86, + mesa3d, mesa3d-demos, mesa3d-headers, micropython, + micropython-lib, minicom, minidlna, mjpg-streamer, mke2img, + moarvm, modem-manager, mongoose, mongrel2, monkey, mono, + monolite, mosh, mosquitto, mpd, mplayer, msgpack, mtdev2tuio, + musepack, musl, mysql, nano, nasm, nbd, neard, netatalk, + netsnmp, nettle, net-tools, network-manager, nfs-utils, nginx, + nmap, nodejs, ntfs-3g, ntp, numactl, nut, nvidia-driver, + odhcp6c, ofono, ola, olsr, omniorb, opencv, opencv3, openipmi, + openldap, openntpd, openobex, openocd, openpgm, + open-plc-utils, openpowerlink, openssh, openssl, openswan, + openvpn, opkg, oprofile, opus, opusfile, p11-kit, package, + pango, pax-utils, pciutils, pcmanfm, perl, perl-db-file, + perl-io-socket-ssl, perl-libwww-perl, perl-net-dns, perl-uri, + perl-xml-libxml, php, php-ssh2, picocom, pinentry, pixman, + polarssl, popt, portaudio, pppd, procps-ng, proftpd, protobuf, + psmisc, ptpd2, pulseaudio, pulseview, pv, python, python3, + python-alsaaudio, python-can, python-cffi, python-cherrypy, + python-httplib2, python-jinja2, python-lxml, python-m2crypto, + python-mako, python-msgpack, python-psutil, python-pyasn, + python-pycparser, python-pydal, python-pyftpdlib, + python-pyroute2, python-pyxml, python-pyzmq, python-requests, + python-serial, python-setuptools, python-six, python-spidev, + python-tornado, python-twisted, python-web2py, python-webpy, + python-werkzeug, python-zope-interface, qemu, qhull, qpdf, qt, + qt5, qt5base, qt5connectivity, qt5declarative, qt5enginio, + qt5graphicaleffects, qt5imageformats, qt5multimedia, + qt5quick1, qt5quickcontrols, qt5script, qt5sensors, + qt5serialport, qt5svg, qt5webchannel, qt5webkit, + qt5webkit-examples, qt5websockets, qt5x11extras, + qt5xmlpatterns, qt-webkit-kiosk, racehound, radvd, read-edid, + readline, redis, rpcbind, rpi-firmware, rpi-userland, rrdtool, + rsync, rsyslog, rtai, rtorrent, rt-tests, rubix, ruby, samba4, + sconeserver, setools, shairport-sync, sigrok-cli, skeleton, + smack, snowball-init, socat, sp-oops-extract, sqlite, + squashfs, squeezelite, squid, sredird, sshfs, + start-stop-daemon, strace, strongswan, stunnel, subversion, + sunxi-tools, swig, sysdig, syslog-ng, sysstat, systemd, + sysvinit, taglib, tcl, tcpreplay, thrift, ti-gfx, tinyalsa, + tor, torsmo, trace-cmd, transmission, tremor, triggerhappy, + trinity, tvheadend, tzdata, uboot-tools, uclibc, udisks, + udpcast, unionfs, upmpdcli, usb_modeswitch, + usb_modeswitch_data, ustr, util-linux, vala, valgrind, + vboot-utils, vde2, vlc, vnstat, webkit, webkitgtk24, weston, + wget, whetstone, whois, wine, wipe, wireless-regdb, wireshark, + wpa_supplicant, w_scan, x11r7, xapp_xbacklight, xapp_xcompmgr, + xapp_xinput, xapp_xkbcomp, xdriver_xf86-input-evdev, + xdriver_xf86-input-libinput, xdriver_xf86-input-synaptics, + xdriver_xf86-video-ati, xdriver_xf86-video-fbturbo, + xdriver_xf86-video-imx-viv, xdriver_xf86-video-intel, + xfont_encodings, xfont_font-adobe-100dpi, + xfont_font-adobe-75dpi, xfont_font-adobe-utopia-100dpi, + xfont_font-adobe-utopia-75dpi, xfont_font-adobe-utopia-type1, + xfont_font-alias, xfont_font-arabic-misc, + xfont_font-bh-100dpi, xfont_font-bh-75dpi, + xfont_font-bh-lucidatypewriter-100dpi, + xfont_font-bh-lucidatypewriter-75dpi, xfont_font-bh-ttf, + xfont_font-bh-type1, xfont_font-bitstream-100dpi, + xfont_font-bitstream-75dpi, xfont_font-bitstream-type1, + xfont_font-cronyx-cyrillic, xfont_font-cursor-misc, + xfont_font-daewoo-misc, xfont_font-dec-misc, + xfont_font-ibm-type1, xfont_font-isas-misc, + xfont_font-jis-misc, xfont_font-micro-misc, + xfont_font-misc-cyrillic, xfont_font-misc-ethiopic, + xfont_font-misc-meltho, xfont_font-misc-misc, + xfont_font-mutt-misc, xfont_font-schumacher-misc, + xfont_font-screen-cyrillic, xfont_font-sony-misc, + xfont_font-sun-misc, xfont_font-winitzki-cyrillic, + xfont_font-xfree86-type1, xfsprogs, xkeyboard-config, xl2tp, + xlib_libfontenc, xlib_libXi, xmlstarlet, xscreensaver, + xserver_xorg-server, xtables-addons, xvkbd, xz, yad, yasm, + ympd, zeromq, zic, znc, zsh, + + New packages: acsccid, assimp, atkmm, autofs, bcm2835, + cairomm, cantarell, chocolate-doom, comix-cursors, cxxtest, + edid-decode, emlog, gcr, gtkmm3, hidapi, jquery-sidebar, + kernel-module-imx-gpu-viv, libasplib, libcroco, libdvbpsi, + libfreeglut, libgdiplus, libglfw, libhdhomerun, libnet, + libsoil, lldpd, luvi, mbedtls, minizip, miraclecast, mongodb, + mraa, netbsd-queue, netsniff-ng, nss-pam-ldapd, + obsidian-cursors, openal, openbox, pangomm, + python-backports-abc, python-beautifulsoup4, python-cbor, + python-click, python-cssselect, python-ecdsa, python-html5lib, + python-idna, python-ipaddress, python-mistune, python-netaddr, + python-paho-mqtt, python-paramiko, python-pyparted, + python-pysmb, python-pyudev, python-singledispatch, + python-smbus-cffi, python-urllib3, qt53d, rabbitmq-c, rfkill, + sbc, spi-tools, tpm-tools, trousers, ubus, unrar, unscd, + unzip, v4l2grab, xdriver_xf86-video-nouveau, xdotool, zbar + + Removed packages: libungif, python-pyxml, + + Issues resolved (http://bugs.uclibc.org): + + #7886: gettext: link failure with locally-installed libxml2 + #7892: systemd-journald is broken + #8066: nodejs crashes when built with gcc 4.9 + #8296: nodejs 0.12.7 - npm crashes (seg core dump) + #8501: gunzip fails to uncompress files + #8541: fail to build host-fakeroot-1.20.2 + #8546: build instructions for raspberry pi don't work + #8571: strace for ARC compile error + #8581: pciutils.mk PCIUTILS_MAKE_OPTS typo + #8616: Fail to build for raspberrypi_defconfig with big endian + #8621: sqlite package, properly enable readline + +2015.11, Released November 30th, 2015 + + Minor fixes. + + Merged/seperate /usr handling is now also performed for + staging so cross-gdb / gdbserver can find the libraries. + + Updated/fixed packages: autossh, conntrack-tools, dcron, + espeak, gcc, glmark2, gpsd, gstreamer1, libglib2, libsigsegv, + libsoc, libv4l, minidlna, mongrel2, opencv, polarssl, + rpi-userland, rubix, skeleton, tovid, uemacs, valgrind, yad, + zmqpp + + Issues resolved (http://bugs.uclibc.org): + + #8441: Invalid directory for X11 fonts in target (RPi2) + #8491: libglib2 2.46.1 not Building for armv5 on 2015.11-rc3 + +2015.11-rc3, Released November 26th, 2015 + + Fixes all over the tree. + + We have a new modern website! + + Updated/fixed packages: apitrace, audiofile, autossh, bullet, + c-ares, collectd, conntrack-tools, cryptodev-linux, dropbear, + fastd, gmp, gpsd, gst-plugins-bad, gst-plugins-base, + gst-plugins-good, gst-plugins-ugly, gstreamer, gstreamer1, + guile, iodine, iproute2, jimtcl, kompexsqlite, libethumb, + libfreeimage, libgsasl, libgtk3, libxml2, localedef, + lttng-tools, macchanger, mongrel2, mpd, openntpd, openssl, + oprofile, pcre, qt5base, quagga, rpi-userland, sconeserver, + sdl, spidev_test, sqlite, strongswan, ustr, xapp_sessreg, + yajl, zmqpp + + Issues resolved (http://bugs.uclibc.org): + + #6872: gpsd: disabled on microblaze + #8321: invalid opcode error with minidlna and ffmpeg + #8336: Default systemd configuration fails to boot correctly in 2015-08 + #8446: rpi-userland failed to build with glibc 2.22 + +2015.11-rc2, Released November 19th, 2015 + + Fixes all over the tree. + + LD_LIBRARY_PATH is no longer used to ensure host binaries find + their libraries, fixing issues on recent Fedora. + + Toolchain fixes for powerpc e5500 / e6500. Fix for an issue + with ${TARGET}-cc after the move to use a toolchain wrapper + for the internal toolchain. + + Appy-patches.sh now correctly applies all files listed in + series files. + + Fixes for merged /usr handling when a custom skeleton is used. + + Updated/fixed packages: axfsutils, boost, busybox, dhcp, + directfb, dropbear, ebtables, fastd, ffmpeg, gauche, gcc, + gettext, gst1-plugins-bad, hostapd, ibrdtnd, libcurl, + libecore, libgudev, libnss, libpng, libserial, libssh2, + libuecc, libxml2, linux-headers, liquid-dsp, ltris, + lua-periphery, minidlna, mongrel2, mpd, mpg123, mplayer, + mysql, opencv, opencv3, package, perl-file-util, php-ssh2, + polarssl, pulseaudio, python-protobuf, qemu, qt5base, ranger, + ruby, skeleton, slang, squeezelite, strongswan, tovid, uclibc, + ushare, wine, wpa_supplicant, x265, + xdriver_xf86-video-siliconmotion, zxing-cpp + + Issues resolved (http://bugs.uclibc.org): + + #4790: Running udhcpc on a system with NFS root kills NFS + #8456: Building host-pkgconf on Fedora 23 fails due to.. + +2015.11-rc1, Released November, 7th 2015 + + Fixes all over the tree and new features. + + Architectures: + + - Support for sparc64 added (internal toolchain with glibc + only). + + - Support for mips32r6 and mips64r6 added. + + - Support for Intel Quark X1000 CPU. + + - Switch to EABIhf by default on ARM when a VFP is available. + + Toolchains: + + - glibc 2.22, gdb 7.10, use gdb 7.9 by default, musl 1.1.12, + uclibc-ng 1.0.8, host-gdb enabled on AArch64. + + - The toolchain wrapper which was used only for external + toolchains is now also used for Buildroot internal + toolchains. This allowed to fix the ccache support, prepare + the way for top-level parallel build support and remove gcc + patches used to detect header/library path poisoning. + + - Remove Analog Devices Blackfin toolchain 2012R2. + + - Fix several Xtensa build failures by switching from + text-section-literals to auto-litpools. + + - Enable MIPS64 support in uClibc-ng, use uClibc on ARC + rather than a specific fork. + + - Linaro toolchains for ARM, ARMeb and AArch64 updated to + 2015.08. 2014.09 version is kept since 2015.08 only runs on + x86_64 hosts. + + Bootloaders: + + - Fix ARM64 support in U-Boot. + + Defconfigs: + + - Added: ARC HS38 VDK virtual boards, Avnet Microzed, Boundary + Devices Nitrogen SoloX, Freescale i.MX6 SoloX Sabre SD, + OLinuxino A20 Lime2, Qemu Sparc64, Qemu SuperH 4 big endian, + Synopsys AArch64 VDK virtual platform. + + - Updated: calao_qil_a9260, calao_usb_a9g20_lpw, ci20, + cubieboad, freescale_imx6_*, imx53loco, imx6_vab820, + mpc8315erdb, qmx6, p1010rdb, qemu, raspberrypi, + raspberrypi2, riotboard, snps_axs10*, wandboard. + + - Removed: at91rm9200df, at91sam9260dfc, at91sam9263ek, + calao_snowball_defconfig, gnublin, integrator926_defconfig. + + Infrastructure: + + - Support for fetching from Mercurial tags fixed. + + - Introduce LINUX_NEEDS_MODULES, which allows to enforce + module support to be enabled in the kernel when a package + builds out-of-tree kernel modules (through the + pkg-kernel-module infrastructure or on its own). + + - Improve the perl package infrastructure to automatically add + the dependency to the perl interpreter to target perl module + packages. + + - Remove trailing slashes in _SITE and addition of a + check to ensure such trailing slashes are no longer added. + + - Extend the legal infrastructure to allow packages to declare + their actual source code. This is useful for packages for + which _SOURCE points to pre-built binaries (as is the + case for external toolchains). The new _ACTUAL_SOURCE + variable allows to point to the source code in such cases. + + - Improved ccache support, thanks to the usage of a toolchain + wrapper for internal toolchain. Now a single cache directory + can be shared between different Buildroot builds. + + - Addition of a 'graph-size' make targets, which generates a + PDF graph of per-package size of the root filesystem. + + - Addition of _EXCLUDES so that packages can request + certain parts of the source code tarball to not be + extracted. This feature is currently used by gcc and + toolchain-external. + + - Packages can now use the _PKGDIR variable, provided by + the package infrastructure, to reference their package + directory, instead of explicitly using package//. + + Filesystems: + + - Add high lz4 compression to squashfs. + + - Simplification of shell profile files in the default + skeleton. + + - Remove ftp user and /home/ftp from the skeleton, and let ftp + server packages create these when needed. + + - Add support for /bin, /sbin and /lib to be symlinks to their + corresponding directories in /usr. This is enforced for + systemd configurations, and optional for other + configurations. + + - Support for AXFS filesystem image generation added. + + - New options to add extra space/inodes to ext2/3/4 images. + + Updated/fixed packages: + + adwaita-icon-theme, apache, apitrace, atk, audit, avahi, + barebox, bash, batctl, bind, binutils, bluez_utils, boost, + bridge-utils, cairo, ccache, chrony, clapack, cloog, cmake, + collectd, connman, conntrack-tools, coreutils, cpio, + cryptsetup, dbus, dbus-cpp, devmem2, dhcp, dhcpcd, dhcpdump, + dhrystone, dillo, directfb, directfb-examples, dmraid, + dos2unix, dovecot, dovecot-pigeonhole, drbd-utils, dropbear, + dropwatch, dtc, e2fsprogs, ebtables, efl, eigen, ejabberd, + elf2flt, elfutils, erlang, ethtool, eudev, evemu, exfat, + exfat-utils, expat, faifa, fbterm, fdk-aac, feh, ffmpeg, file, + flashrom, fping, freerdp, freescale-imx, freetype, gdk-pixbuf, + genimage, gettext, git, glib-networking, glmark2, gnupg2, + gnuradio, gnutls, gpsd, grep, grub2, gst1-imx, gst1-libav, + gst1-plugins-bad, gst1-plugins-base, gst1-plugins-good, + gst1-plugins-ugly, gst1-validate, gst-fsl-plugins, + gst-plugins-bad, gstreamer1, guile, gvfs, harfbuzz, haveged, + hostapd, icu, imagemagick, impiutil, imx-gpu-viv, imx-vpu, + inadyn, intltool, iostat, iperf3, ipmiutil, iproute2, + iptables, iw, jpeg-turbo, jq, jsoncpp, kexec-lite, kmod, kodi, + kodi-audioencoder-flac, kodi-pvr-argustv, kodi-pvr-filmon, + kodi-pvr-hts, kodi-pvr-mythtv, kodi-pvr-pctv, + kodi-pvr-stalker, kodi-pvr-vbox, + kodi-visualisation-waveforhue, less, lftp, libbluray, + libcgroup, libconfuse, libcurl, libdcadec, libdrm, libevdev, + libffi, libfribidi, libfslcodec, libfslparser, libfslvpuwrap, + libgcrypt, libglew, libglib2, libgtk3, libidn, liblinear, + liblockfile, libmicrohttpd, libnetfilter_conntrack, libnfs, + libnftnl, libnl, libnspr, libnss, libpcap, libpfm4, libpng, + libselinux, libserial, libsoup, libsoxr, libstrophe, libtasn1, + libtirpc, libtorrent, libupnpp, liburcu, libusb-compat, libuv, + libv4l, libva, libva-intel-driver, libxcb, lighttpd, links, + linux, linux-firmware, linux-fusion, linux-headers, + lirc-tools, localedef, lpeg, lsof, ltp-testsuite, + lttng-libust, lttng-tools, lua-periphery, luaposix, lvm2, lxc, + lz4, mdadm, mesa3d, mesa3d-headers, minicom, minidlna, moarvm, + modem-manager, mosquitto, mpd, mpdecimal, mpg123, mplayer, + mrouted, msmtp, mtd, mutt, nettle, network-manager, nfs-utils, + nftables, nginx, nodejs, noip, ntp, ofono, opencv3, openpgm, + openssl, openswan, openvpn, pango, parted, perl, perl-cross, + perl-crypt-openssl-random, perl-http-message, + perl-io-socket-ssl, perl-module-build, perl-mojolicious, + perl-netaddr-ip, perl-net-dns, perl-net-http, perl-net-ssleay, + perl-uri, perl-xml-libxml, php, picocom, pixman, pkgconf, + poco, polarssl, portaudio, portmap, postgresql, proftpd, + protobuf, protobuf-c, pulseaudio, python-configshell-fb, + python-networkmanager, python-numpy, python-pyparsing, + python-pypcap, python-rtslib-fb, python-spidev, python-urwid, + python-web2py, qemu, qt5base, redis, rngtools, rng-tools, + rpi-firmware, rpi-userland, rtmpdump, rtorrent, ruby, samba, + samba4, sane-backends, sconeserver, sdl, sed, setools, + shairport-sync, shared-mime-info, sland, smartmontools, + softether, spice-protocol, sqlcipher, sqlite, squid, + strongswan, stunnel, subversion, sudo, sunxi-tools, + supervisor, systemd, tar, targetcli-fb, tcpdump, tiff, tor, + tvheadend, tzdata, uboot-tools, udisks, unionfs, upmpdcli, + util-linux, vala, valgrind, vim, vlc, vorbis-tools, vsftpd, + vtun, wavpack, webkitgtk24, weston, whois, wireless-regdb, + wireshark, wpa_supplicant, xdriver_xf86-input-vmmouse, + xdriver_xf86-video-imx-viv, xdriver_xf86-video-intel, + xdriver_xf86-video-sis, xlib_libXi, xorg-server, + xtables-addons, xterm, xz, zic, znc, zsh + + New packages: + + axfsutils, bitstream, check, dvblast, eventlog, fastd, gauche, + gmock, graphite2, gssdp, gupnp, gupnp-av, ibrcommon, ibrdtn, + ibrdtnd, ibrdtn-tools, imx-kobs, iqvlinux, irssi, + kompexsqlite, libbroadvoice, libcddb, libcodec2, libcrossguid, + libg7221, libhttpparser, libilbc, libldns, libmng, + libopenh264, libpam-radius-auth, libpam-tacplus, libsilk, + libsoundtouch, libssh, libuecc, libyuv, liquid-dsp, luv, + micropython, micropython-libs, python-pyratemp, + python-pyroute2, python-ranger, rapidxml, scrypt, sdl2, + sp-oops-extract, squeezelite, stress-ng, swupdate, syslog-ng, + x265, xdriver_xf86-video-fbturbo, xxhash, yad, zxing-cpp + + Removed packages: + + blackbox (was deprecated), divine (merged in directfb), + kobs-ng (replaced by imx-kobs), mediactl (merged in libv4l), + sawman (merged in directfb), schifra (marked broken since a + long time), texinfo (host variant only, no longer used), zxing + (replaced by zxing-cpp), + + Issues resolved (http://bugs.uclibc.org): + + #4099: cut utility from GNU coreutils works incorrect + #7772: libxml-parser-perl build failure: missing dependency + ExtUtils/MakeMaker + #7931: Default configuration for Cubieboard v1 is outdated + #8116: 2015.05-rc2 raspberrypi2_defconfig network interface + not coming up + #8246: X.org DRI2 build issue + #8256: pointing to /usr/bin/objcopy old version (x86) instead + of the generated one + #8266: mplayer build issue + #8281: pyrexc fails to run when path is too long + #8316: lttng-tools and lttng-babeltrace executables contain + bad RPATH pointing to host machine + #8331: kexec wants shutdown in /sbin, but systemd installs it + in /usr/sbin + #8361: Buildroot 2015.08.1 skeleton inittab overwritten by + busybox's version + #8366: libevent does not build + #8386: build failed with external toolchain + #8391: Node.js 0.12.7 fails to build on raspberry_pi defconfig + #8396: CCACHE initialization + #8401: gpsd 3.15 NMEA support + #8416: cups depends on BR2_DEPRECATED_SINCE_2015_05 + #8421: util-linux installs systemd files in output/target/home/ + +2015.08, Released August 31st, 2015 + + Minor fixes. + + OpenCV 3.x package renamed to opencv3. OpenCV 2.4.x + reintroduced as opencv. + + Updated/fixed packages: bootutils, canfestival, cppcms, + curlftpfs, dhcpdump, dropbear, erlang-p1-tls, exfat, gnuradio, + ipkg, libgudev, libmbim, libwebsock, linux-pam, lm-sensors, + ltrace, midori, network-manager, openssh, perl-file-listing, + perl-http-cookies, perl-http-daemon, perl-http-negotiate, + perl-www-robotrules, python-can, qt5base, qt5multimedia, + setools, sysvinit, tinyalsa, tn5250, tvheadend, uboot, vlc, + x264, xserver_xorg-server, zyre + +2015.08-rc2, Released August, 24th 2015 + + Fixes all over the tree. + + Toolchain: fix gcc build on NIOS-II. + + Infrastructure: add _POST_GEN_HOOKS mechanism to fix + hybrid ISO image generation. + + Architectures: add arm1136j-s variant. + + Updated/fixed packages: apitrace, audit, bcusdk, bdwgc, + beecrypt, boost, bwm-ng, cdrkit, c-icap, cifs-utils, clapack, + c-periphery, cpio, cramfs, czmq, dawgdic, dnsmasq, dosfstools, + dropbear, elfutils, empty, eudev, fan-ctrl, filemq, gnutls, + guile, haveged, imlib2, libcec, libepoxy, libev, libgpgme, + libiio, libnetfilter_queue, libnfnetlink, libpfm4, libpthsem, + librtas, libselinux, libsigsegv, libsodium, libv4l, lightning, + linux, lirc-tools, lrzsz, mono, mosh, mpd, msmtp, nbd, + netatalk, nodejs, ola, opencv, oprofile, php, poco, + postgresql, powertop, protobuf, protobuf-c, qt5base, + qt5quickcontrols, rapidjson, rng-tools, squid, sysdig, + sysstat, tftpd, tinc, tz, util-linux, webkitgtk24, weston, + wireshark, wvstreams, xdriver_xf86-input-synaptics, zyre. + + Issues resolved (http://bugs.uclibc.org): + + #8276: package/dropbear: symlink resolution incorrect + #8286: Error with buildroot + #8301: ldconfig parameter in Makefile + +2015.08-rc1, Released August, 5th 2015 + + Fixes all over the tree and new features. + + Architectures: + + - Refactor how the availability of an MMU is described. + - Minimal support for Cortex-M3 + - Minimal support for AArch64 big-endian + + Toolchains: + + - Add CodeSourcery MIPS 2015.05, remove MIPS 2013.11 + - Use uClibc-ng as the default uClibc version, instead of the + official uClibc, which hasn't done any release since 3+ + years + - eglibc is now marked as deprecated + - GCC: gcc 4.9.x is now the default and was updated to 4.9.3, + support for gcc 5.x added. + - Binutils: use Binutils 2.24 as the default, 2.25.x series + bumped to 2.25.1, remove old Binutils 2.22. + - Update ARC toolchain components to 2015.06 + - Add support for Fortran when building gcc + + Bootloaders: + + - Support for using the kconfig configuration system in + U-Boot + + New Defconfigs: + + - VIA VAB-820/AMOS-820 + - OLimex OLinuxino A20 Lime + - Many new defconfigs for Atmel evaluation boards: + at91sam9rlek, at91sam9x5ek, sama5d3xek, sama5d4ek, sama5d4 + Xplained Ultra, sama5d3 Xplained. + - ACME Systems Aria G25 + - WarPboard + - Altera Cyclone 5 Development Board + - Xilinx zc706 + - ARC AXS101 and AXS103 Software Development Platforms + - Significant updates to Raspberry Pi / Raspberry Pi 2 + + Infrastructure: + + - Buildroot takes better care now of generating predictable + permissions in the target filesystem. However, existing + permissions on a custom skeleton or rootfs overlay will no + longer be preserved. Therefore, it is necessary to add a + permission table (BR2_ROOTFS_DEVICE_TABLE) to set the + required permissions. + - Add support for kconfig fragments. + - No longer pass --{enable,disable}-debug to autotools + packages depending on the value of + BR2_ENABLE_DEBUG. BR2_ENABLE_DEBUG now only controls + whether we build with -g or not. + - Support for extracting archives in .lzma in the generic + package infrastructure. + - Remove random-seed file from the default skeleton, since + seeding the entropy pool with a known seed makes more harm + than good. + - In the CVS download helper, add support to use a date as + the version. + - Add support for a per-package _STRIP_COMPONENTS + variable, which packages can use to specify how many path + components should be stripped when extracting the tarball. + - Addition of a 'kernel-module' package infrastructure, which + simplifies the packaging of external kernel modules. Many + existing packages are converted to use it. + - Allow bootloaders to be implemented in $(BR2_EXTERNAL) + - Remove /etc/securetty from the default skeleton. + - Migration of sysV initscripts from the default skeleton to + a package called 'initscripts', installed only when Busbox + init or sysvinit are used. + - Migration of the skeleton logic to a proper 'skeleton' + package. + - Addition of a 'linux-tools' infrastructure in the 'linux' + package, to support building user-space tools bundled + within the Linux kernel sources, such as perf and cpupower. + - Usage of backticks instead of make $(shell ...) to execute + shell commands. This allows to delay the evaluation of such + commands when actually needed, and not when expanding the + variables. It is useful to make 'make printvars' less + noisy, and as a preparation to support top-level parallel + build. + - Libtool .la files are not mungled for all package types, + instead of being handled only for packages using the + autotools-package infrastructure. + - Add mechanism to allow packages to express a dependency on + gcc versions. This is needed for packages that use C++11 or + C11 support for example. + + Important package updates: + + - Complete rework of the matchbox packaging + - Lots of fixes in packages for compatibility with musl and + gcc 5. + - Hash files added to a large number of packages. + - Update a significant number of packages to use a new + hosting, after the announcement of Google Code and + Gitorious closing. + - Major packages needed for SELinux support have been merged, + but the support is not complete yet. + - Significant update of OpenCV to version 3.0, and addition + of lots of eatures. + - Significant update of all packages supporting the GPU and + VPU of i.MX ARM processors. + - Addition of systemd support in a significant number of + packages. + - Qt5 updated to 5.5.0 + - Use modular X.org server by default instead of KDrive + + Filesystems: + + - Complete overhaul of the iso9660 support. Now allows to use + directly IS9660 as the root filesystem format and not only + an initrd, and supports Grub 2 and isolinux in addition to + Grub. + + Updated packages: a10disp, agentpp, apache, at91bootstrap3, + audit, barebox, bc, bind, bmon, boost, btrfs-progs, + ca-certificates, can-utils, ccache, cloog, collectd, connman, + coreutils, c-periphery, cryptsetup, dado, dbus, dejavu, + dhcpcd, dnsmasq, dosfstools, dovecot, dovecot-pigeonhole, + e2fsprogs, ejabberd, erlang-p1-cache-tab, erlang-p1-sip, + erlang-p1-stringprep, erlang-p1-stun, erlang-p1-tls, + erlang-p1-utils, erlang-p1-xml, erlang-p1-yaml, ethtool, + eudev, evtest, exim, expect, explorercanvas, feh, ffmpeg, + file, flashrom, freescale-imx, freetype, gawk, gcc, gdb, + gettext, git, glib-networking, gnupg2, gnutls, gpsd, gptfdisk, + gpu-viv-bin-mx6q, gst-fsl-plugins, harfbuzz, hdparm, heimdal, + i2c-tools, imagemagick, imx-vpu, iproute2, ipset, isl, iw, + kodi, kodi-addon-xvdr, kodi-audioencoder-flac, + kodi-audioencoder-lame, kodi-audioencoder-vorbis, + kodi-audioencoder-wav, lftp, libass, libassuan, libcec, + libconfi, libcurl, libdrm, libevdev, libfreefare, libfslcodec, + libfslparser, libfslvpuwrap, libfuse, libglib2, libgpgme, + libgtk2, libgtk3, libical, libidn, libiio, libinput, libiscsi, + libllcp, libmicrohttpd, libnfc, libnss, libpcap, libpciaccess, + libpng, libserialport, libsigrok, libsoc, libtirpc, libubox, + libunistring, libupnp, libuv, libv4l, libva, + libva-intel-driver, libXrandr, lighttpd, linenoise, linux, + linux-firmware, linux-headers, live555, ltrace, lua, + lua-csnappy, lua-ev, luajit, lua-messagepack, luaperiphery, + lvm2, lxc, lzo, mesa3d, mesa3d-headers, midori, mmc-utils, + modem-manager, mono, mosquitto, mpd, mpd-mpc, mpfr, mpg123, + mtd, musl, nano, netperf, network-manager, nfs-utils, nginx, + nodejs, ntp, ola, opencv, openldap, openssh, openssl, + openswan, openvmtools, openvpn, opkg, orbit, orc, pcmanfm, + perl-cross, perl-encode-locale, perl-io-socket-ssl, + perl-mojolicious, perl-net-ssleay, perl-path-tiny, perl-uri, + perl-xml-libxml, php, pinentry, polarssl, postgresql, + pulseview, pure-ftpd, python, python-dpkt, python-lxml, + python-networkmanager, python-pyinotify, python-pypcap, + python-tornado, qextserialport, qt, qt5, rapidjson, redis, + rpcbind, rpi-firmware, rpi-userland, samba4, shairport-sync, + snmpp, sqlite, squid, strongswan, stunnel, sudo, sunxi-boards, + sunxi-mali, sysdig, sysstat, systemd, tcpdump, tiff, tmux, + tor, txheadend, tzdata, uboot, uclibc, ulogd, upmpdcli, + usb_modeswitch, usb_modeswitch_data, vala, vsftpd, wayland, + weston, whois, wireless-regdb, wireshark, x264, xapp_xvinfo, + xdriver_xf86-input-libinput, xdriver_xf86-input-vmmouse, + xdriver_xf86-video-cirrus, xdriver_xf86-video-geode, + xdriver_xf86-video-imx-viv, xdriver_xf86-video-mach64, + xdriver_xf86-video-neomagic, xdriver_xf86-video-r128, + xdriver_xf86-video-savage, xdriver_xf86-video-siliconmotion, + xdriver_xf86-video-vesa, xkeyboard-config, xlib_libfontenc, + xlib_libFS, xlib_libXaw, xlib_libxkbfile, xlib_libXrender, + xlib_libXt, xproto_kbproto, xproto_xproto, xproto_xrandrproto, + xscreensaver, xserver_xorg-server, xtables-addons, yaml-cpp, + zic. + + New packages: angularjs, atf, audit, c-icap, c-icap-modules, + cpio, dawgdic, faketime, fcgiwrap, gflags, glog, initscripts, + jquery-datetimepicker, kodi-audioencoder-modplug, + kodi-audioencoder-nosefar, kodi-audioencoder-sidplay, + kodi-audioencoder-snesapu, kodi-audioencoder-stsound, + kodi-audioencoder-timidity, kodi-audioencoder-vgmstream, + kodi-platform, kodi-pvr-argustv, kodi-pvr-dvblink, + kodi-pvr-dvbviewer, kodi-pvr-filmon, kodi-pvr-hts, + kodi-pvr-iptvsimple, kodi-pvr-mediaportal-tvserver, + kodi-pvr-mythtv, kodi-pvr-nextpvr, kodi-pvr-njoy, + kodi-pvr-pctv, kodi-pvr-stalker, kodi-pvr-vbox, + kodi-pvr-vdr-vnsi, kodi-pvr-vuplus, kodi-pvr-wmc, + kodi-screensaver-asteroids, kodi-screensaver-biogenesis, + kodi-screensaver-crystalmorph, kodi-screensaver-greynetic, + kodi-screensaver-pingpong, kodi-screensaver-pyro, + kodi-screensaver-stars, kodi-visualisation-shadertoy, + kodi-visualisation-spectrum, kodi-visualisation-waveforhue, + kodi-visualisation-waveform, kvmtool, kyua, libfm, + libfm-extra, libplatform, librtas, libsodium, libsquish, + libucl, libump, linux-backports, lua-iconv, lutok, menu-cache, + moarvm, monkey, mono-gtksharp3, mosh, openipmi, python-can, + python-pycli, python-pydal, python-pyyaml, python-web2py, + qpid-proton, qt5webchannel, quazip, racehound, rtl8188eu, + rtl8821au, sepolgen, setools, skeleton, stm32flash, + webkitgtk24, xdriver_xf86-video-qxl, zynq-boot-bin. + + Deprecated packages: webkitgtk, libgail, eglibc support in + glibc package. + + Issues resolved (http://bugs.uclibc.org): + + #4291: Segmentation fault with all binaries that use threads + when compiled with gcc 4.6 + #6944: building toolchain for sh4 fails + #7592: Buildroot GCC: -lto requires plugin support in ranlib + #7628: Python SSL does not get built for Raspberry Pi + #7682: Missing dependencies for NFS + #7742: dhcp lacks important features when BR2_ENABLE_DEBUG + #7754: make: *** [/..../buildroot-2014.11/output/build/host-gcc-initial-4.8.3/.stamp_built] Error 2 + #7946: libglib2-2.42.2 fails to build for sparc-buildroot-linux-gnu + #7956: glibc 2.20 and 2.21 fail to build for sh64-buildroot-linux-gnu + #7971: python-flask, python-werkzeug. No module named zlib + #7981: Target file system skeleton permissions hazard + #8006: rpcdebug in nfs-utils built for the host + #8036: alsa-lib headers problem that prevents to compile alsa + dependent projects + #8081: systemd init system: /tmp is not mode 1777 + #8121: php opcache extension doesn't get installed + #8151: x86-64 make fails with ncurses 5.9 + #8156: pkg-kconfig infra broken for *-update-{config, defconfig} + #8161: default /bin/sh symlink to busybox is full path and not relative + #8171: glamor missing + #8191: Request update support for the cubieboard series + #8201: Important security upgrades for node.js + +2015.05, Released May 31st, 2015 + + Minor fixes. + + Updated/fixed packages: conntrack-tools, directfb, fio, flite, + gptfdisk, ipmiutil, iproute2, janus-gateway, keyutils, knock, + libelementary, libgcrypt, libgsasl, libjpeg, libstrophe, + lttng-libust, nbd, ncurses, nmap, php, postgresql, python, + python3, sconeserver, udpcast, upmpdcli + +2015.05-rc3, Released May 22nd, 2015 + + Several fixes, mainly related to static linking. + + Updated/fixed packages: acl, alsa-utils, apr, armadillo, attr, + autoconf-archive, binutils, boost, czmq, dhcpcd, duma, + enlightenment, exim, fbterm, freerdp, gcc, gdk-pixbuf, + google-breakpad, gpsd, heirloom-mailx, hwloc, ipmiutil, + iproute2, jack2, jasper, kmod, lcdproc, leafnode2, libcap-ng, + libftdi1, libmatroska, libmemcached, libmodbus, libnftnl, + libsigrok, libupnpp, libuv, libxml-parser-perl, linux, + linux-headers, lirc-tools, lua-periphery, lxc, mongoose, mono, + mpg123, mosquitto, neardal, newt, ntp, ola, openldap, opencv, + php, postgresql, protobuf, pulseaudio, python-pyqt, qemu, qt, + qt5base, rpi-userland, rsyslog, snmppp, sqlite, tiff, + tinyxml2, uboot-tools, unionfs, ux5000-firmware, usbredir, + ushare, vpnc, vsftpd, wavpack, wireless_tools, wsapi, + wvstreams, xmlstarlet, zeromq, zmqpp + + New packages: c-periphery + + Issues resolved (http://bugs.uclibc.org): + + #8106: mkfs.jffs2 uses the --pagesize parameter incorrectly + #8111: 2015.05.rc2 LIBFOO_CONF_OPTS not working + #8126: exim lacks plaintext and cram-md5 auth + +2015.05-rc2, Released May 11th, 2015 + + Minor fixes. + + Toolchain: PR56780 backport to GCC 4.8.4 to fix GDB linking + issues. Context functions enabled for uClibc snapshot / + uClibc-NG. + + Architectures: Endian handling symbol for Xtensa, binutils + fixes. + + Infrastructure: Fix for kernel module stripping when + localversion contains spaces. + + Updated/fixed packages: at, autoconf-archive, binutils, + cc-tool, cryptsetup, dstat, expedite, freerdp, giflib, + gnuchess, guile, ipmiutil, iproute2, mono, monolite, neard, + ola, poppler, postgresql, python-qt, qt, sqlite, valgrind, + xlib_libXfont + + Issues resolved (http://bugs.uclibc.org): + + #8086: Cannot select systemd as init with Linaro 2014.09... + +2015.05-rc1, Released May 4th, 2015 + + Fixes all over the tree and new features. + + Architectures: Removed AVR32 support, deprecate SH64, added + support for steamroller, corei7-avx and core-avx2 x86 + variants. + + Toolchains: IPv6 and Largefile support now enforced for + uClibc. Corresponding Kconfig symbols removed. + + External CodeSourcery AMD64 2014.05, MUSL-cross 1.1.6 added, + CS sh2, Xilinx microblaze v2/14.3 removed. Distro-class + external toolchains are now detected and blacklisted. + + Internal toolchain support for Nios2 added, Blackfin + removed. Aarch64 and sh musl support. uClibc-ng support added. + + Libatomic is now handled for internal and external + toolchains. Link time optimization (LTO) support. + + New Defconfigs: Freescale i.MX28 EVK, i.MX31 PDK and SABRE + Auto, Raspberry Pi 2, RIoTboard, + + Infrastructure: Hashes for a large number of packages have + been added. Missing hashes now stop the build unless + explicitly disabled. + + Spaces and colons (:) are now supported in package + versions. Dependencies can now be listed for the patch step + (_PATCH_DEPENDENCIES). Kconfig and Linux kernel + extensions infrastructure has been added. + + Makedevs now has a recursive (r) option. + + The variable containing the list of packages to build has been + renamed from TARGETS to PACKAGES. + + Make external-deps / legal-info / source / source-check have + been reimplemented using the package infrastructure, so their + output/behaviour may differ from earlier (some packages were + not included in the past). + + The old insecure DES password encoding is no longer supported. + + U-Boot patch option now support direct references to patch + files and URLs in addition to directories of patches. The + i.MX28 SD format (u-boot.sd) is now supported. + + Updated/fixed packages: agentpp, aircrack-ng, alsa-lib, + alsa-utils, apr-util, apr, atk, autossh, avahi, avrdude, + bcusdk, bdwgc, bind, binutils, bmon, boost, botan, + btrfs-progs, busybox, ca-certificates, cairo, can-utils, + canfestival, ccache, chrony, civetweb, clamav, cmake, + collectd, connman, copas, crda, cryptodev-linux, cryptsetup, + cups, czmq, dbus-cpp, dbus-glib, dbus-python, dbus, dfu-util, + dhcp, dhcpcd, dialog, dillo, dmraid, dnsmasq, dos2unix, + dosfstools, dovecot-pigeonhole, dovecot, dropbear, dropwatch, + dtv-scan-tables, dvdauthor, e2fsprogs, ecryptfs-utils, + libevas, elfutils, enscript, erlang, espeak, eudev, evemu, + exfat-utils, exim, f2fs-tools, feh, ffmpeg, fftw, flickcurl, + fltk, fluxbox, fmlib, fmtools, freeradius-client, freerdp, + gamin, gawk, gcc-final, gcc, gd, gdb, gengetopt, geoip, git, + glib-networking, gnu-efi, gnuchess, gnutls, gpsd, gptfdisk, + gpu-viv-bin-mx6q, gst-plugin-bad, gstreamer, gstreamer1, + gtest, gvfs, harfbuzz, haserl, haveged, hiawatha, + hicolor-icon-theme, hostapd, hplip, httping, i2c-tools, icu, + ifplugd, imagemagick, imlib2, iozone, iproute2, iptables, + iputils, irqbalance, iw, jack2, jhead, jimtcl, json-c, kexec, + kismet, kmod, kodi-audioencoder-flac, + kodi-audioencoder-vorbis, kodi-pvr-addons, kodi, ktap, lcms2, + libass, libatomic_ops, libbluray, libcap, libcgroup, libcurl, + libdrm, libdvbsi, libebml, libecore, libedit, liberation, + libev, libevas, libevdev, libftdi, libgcrypt, libglib2, + libgpgme, libgtk2, libgtk3, libiconv, libidn, libiio, + libinput, libiscsi, libksba, liblinear, libmatroska, + libmicrohttpd, libmodbus, libmpdclient, libnice, libnl, + libnspr, libnss, libpcap, libpciaccess, libphidget, libplayer, + libpthsem, libqmi, librsvg, libseccomp, libsigrok, libsoup, + libsrtp, libssh2, libtasn1, libtool, libunistring, liburcu, + libusb, libuv, libva-intel-driver, libva, libvncserver, + libvorbis, libvpx, libwebsockets, libxml2, libzip, lightning, + lighttpd, linknx, linphone, linux-firmware, linux-headers, + linux-pam, live555, ljsyscall, lmbench, lockdev, logrotate, + lpc3250loader, lpeg, lsof, lttng-libust, lttng-modules, + lttng-tools, lua, luacrypto, luafilesystem, luajit, luaposix, + luarocks, lvm2, lxc, make, + matchbox-{common,desktop,fakekey,keyboard,lib,startup-monitor,vm}, + matchbox, mcelog, memcached, memstat, memtest86, mesa3d, + minidlna, mjpegtools, mjpg-streamer, modem-manager, mongoose, + monit, mono, monolite, mp4v2, mpc, mpd, mpdecimal, mpg123, + mplayer, musl, nano, nbd, ncftp, ncmpc, ncurses, ne10, neard, + neardal, net-tools, netatalk, netsnmp, network-manager, nginx, + nodejs, ntfs-3g, ntp, numactl, odhcp6c, ofono, open2300, + opencv, openldap, openntpd, openocd, openssh, openssl, + openswan, opentyrian, openvmtools, openvpn, oprofile, p11-kit, + pango, patch, patchelf, pciutils, pcre, perf, perl-gdgraph, + perl-io-socket-ssl, perl-json-tiny, perl-module-build, + perl-mojolicious, perl-net-ssleay, perl-path-tiny, + perl-xml-libxml, perl, phidgetwebservice, php-gnupg, php, + pkgconf, polarssl, poppler, popt, postgresql, powerpc-utils, + pppd, prboom, procps-ng, proftpd, psplash, ptpd2, + python-{cheetah,coherence,django,markdown,netifaces,pam,six}, + python-tornado, python-twisted, python-zope-interface, python, + python3, qemu, qt, qt5, qt5base, qt5multimedia, + qt5xmlpatterns, qt5cinex, quagga, qwt, radvd, readline, + rng-tools, rpcbind, rpi-firmware, rpi-userland, rsync, + rsyslog, rtai, rtmpdump, ruby, sam-ba, samba, samba4, + sane-backends, sconeserver, shairport-sync, sigrok-cli, slang, + smcroute, snmppp, socat, socketcand, sofia-sip, sox, + spawn-fcgi, speex, sqlcipher, sqlite, squid, strace, + strongswan, stunnel, sudo, sunxi-boards, swig, sysstat, + systemd, tcpdump, tftpd, thrift, thttpd, ti-gfx, ti-utils, + tiff, tinyalsa, tn5250, transmission, trinity, tslib, + tvheadend, tzdata, uboot-tools, uclibc, ulogd, usb_modeswitch, + usbutils, ustr, util-linux, vala, valgrind, vlc, wayland, + webp, weston, wget, which, whois, wireless-regdb, + wireless_tools, wireshark, wpa_supplicant, wvstreams, + xapp_{bdftopcf,bitmap,fonttosfnt,fslsfonts}, + xapp_{fstobdf,iceauth,mkfontscale,oclock,rgb,sessreg,setxkbmap}, + xapp_{showfont,smproxy,twm,x11perf,xcalc,xclipboard,xcmsdb}, + xapp_{xdbedizzy,xditview,xdpyinfo,xdriinfo,xedit,xev,xeyes}, + xapp_{xf86dga,xfsinfo,xgamma,xgc,xhost,xinit,xinput,xkbcomp}, + xapp_{xkbevd,xkbprint,xlsatoms,xlsfonts,xmag,xman,xmh,xmodmap}, + xapp_xmore, xcb-util-image, xcb-util-keysyms, + xdata_xcursor-themes, + xdriver_xf86-input-{evdev,keyboard,synaptics,void}, + xdriver_xf86-video-{ati,cirrus,geode,mach64,mga,neomagic}, + xdriver_xf86-video-{r128,savage,siliconmotion,sis,tdfx}, + xdriver_xf86-video-{trident,vmware,voodoo}, xenomai, + xfont_font-util, xkeyboard-config, + xlib_lib{ICE,X11,Xdmcp,Xfont,Xpm,XvMC}, + xlib_lib{Xxf86vm,xshmfence,xtrans}, xproto_randrproto, + xproto_xproto, xserver_xorg-server, x11vnc, x264, xerces, + xorriso, xterm, xz, yaml-cpp, zeromq, zic, zmqpp + + New packages: apache, autoconf-archive, batctl, + bitstream-vera, bullet, cc-tool, doxygen, drbd-utils, + dvdrw-tools, gnuradio, gst1-imx, hans, hwloc, ijs, + imx-usb-loader, inconsolata, iodine, iotop, ipmiutil, jsoncpp, + leveldb, libdcadec, libdri2, libfreeimage, libftdi1, + libsidplay2, lirc-tools, lua-periphery, mc, mesa3d-headers, + mosquitto, nvidia-driver, nvidia-tegra23{,-binaries,-codecs}, + openjpeg, opusfile, perl-crypt-openssl-{random,rsa}, + perl-db-file, perl-digest-{hmac,sha1}, + perl-encode-{detect,locale}, perl-file-{listing,util}, + perl-html-{parser,tagset}, perl-http-cookies, + perl-http-{daemon,date,message,negotiate}, perl-io-html, + perl-libwww-perl, perl-lwp-mediatypes, perl-mail-dkim, + perl-mailtools, perl-mime-base64, perl-net-{dns,http}, + perl-netaddr-ip, perl-time-hires, perl-timedate, perl-uri, + perl-www-robotrules, powertop, pulseview, + python-{cherrypy,lxml,mako,pyqt,pyxml,sip,spidev,ws4py}, qpdf, + qt-webkit-kiosk, sl, softether, sysdig, tinyxml2, tor, tovid, + unixodbc, wf111, wine, libepoxy, xapp_xcompmgr, + xapp_xfindproxy, xcb-util-cursor, xcb-util-renderutil, + xdriver_xf86-input-libinput, xdriver_xf86-video-imx{,-viv}, + xproto_xproxymanagementprotocol + + Removed packages: gtk2-theme-hicolor + + Deprecated packages: samba + + Issues resolved (http://bugs.uclibc.org): + + #7478: Multiple chosen python modules are not built due to... + #7508: Use of BR2_EXTERNAL and dependencies to existing packages + #7676: Package procps-ng installs binaries to nonsensical folder + #7724: Startx is not installed in the target + #7760: botan: wrong prefix in botan-1.10.pc + #7826: Building of cdparanoia + #7844: Lua with hard-float on MIPS by buildroot doesn't work + #7874: X.org configure error + #7941: glibc-2.20 fails to build for sparc-buildroot-linux-gnu + #7951: gcc 4.9.2 fails to build for sparc-buildroot-linux-gnu + #7961: Qt5 fails to build for xtensa-buildroot-linux-uclibc + #7976: mkuser script fails with: user already exists with... + #8011: When building only busybox and strace, strace fails... + #8016: collectd fails to build, network.c:171:19: error:... + #8041: error on building libcurl7.42.0 + +2015.02, Released March 1st, 2015 + + Minor fixes. + + Updated/fixed packages: civetweb, ding-libs, + directfb-examples, glibc, gnupg, gnupg2, gpm, + gst-plugins-good, gst1-plugins-good, freetype, libao, libevas, + libevent, libfribidi, libgcrypt, libgtk2, libshout, libsrtp, + libtheora, libupnpp, libxmlrpc, linux, make, opus, pinentry, + rpi-firmware, shared-mime-info, vlc, vorbis-tools, + xcb-util-keysyms + + Removed packages: libgc + +2015.02-rc3, Released February 24th, 2015 + + Minor fixes. + + Cmake and rebar (erlang) infrastructure fixes. + + Updated/fixed packages: bind, btrfs-progs, busybox, e2fsprogs, + evtest, ffmpeg, fltk, gnutls, i2c-tools, imagemagick, libxcb, + make, mjpg-streamer, netsnmp, opentyrian, php, polarssl, + qt5base, samba, samba4, sudo, util-linux, xserver_xorg-server + +2015.02-rc2, Released February 15th, 2015 + + Minor fixes. + + raspberrypi: fix kernel sha1 for DT variant. + + Updated/fixed packages: dbus, dvdauthor, git, libsemanage, + libsepol, libssh2, mplayer, ntp, openvmtools, python3, + qt5base, qt5connectivity, xserver_xorg-server + +2015.02-rc1, Released February 8th, 2015 + + Fixes all over the tree and new features. + + Static/shared library handling reworked. This is now a + tristate (shared only / shared and static / static + only). Default is now shared only to speed up the + build. BR2_PREFER_STATIC_LIB is now called BR2_STATIC_LIBS. + + The toolchain (internal and external) will now warn when an + unsafe library or header path is used (such as /usr/include or + /usr/lib). If BR2_COMPILER_PARANOID_UNSAFE_PATH is enabled + under build options this instead becomes an error. + + A installation path issue with the internal musl toolchain + support has been fixed so it is now possible to reuse it as an + external toolchain. + + Architectures: Freescale E5500 and E6500 PowerPC support + added, deprecated MIPS 1/2/3/4 support removed. + + New defconfigs: Freescale p2020ds, MIPS creator CI20, + Raspberrypi with DT, UDOO Quad. + + 'make _defconfig' now saves the path to the defconfig in + the .config, so a 'make savedefconfig' automatically updates + it. + + Infrastructure for packages using the Erland rebar tool has + been added. + + Hashes for a large number of packages have been added. Hashes + are now checked for both target and host packages. + + The system menu now has an option to automatically configure a + network interface through DHCP at bootup. + + The default filesystem skeleton now uses a separate tmpfs for + /run instead of a symlink to /tmp/ for security reasons / to + protect against conflicts with user generated temporary files. + + BR2_EXTERNAL is now exported to post-build and post-image + scripts. + + New packages: bdwgc, benejson, blktrace, bootstrap, cgic, + ding-libs, dvdauthor, ejabberd, erlang-goldrush, erlang-lager, + erlang-p1-cache-tab, erlang-p1-iconv, erlang-p1-sip, + erlang-p1-stringprep, erlang-p1-stun, erlang-p1-tls, + erlang-p1-utils, erlang-p1-xml, erlang-p1-yaml, + erlang-p1-zlib, exiv2, freeradius-client, gengetopt, glmark2, + gpu-amd-bin-mx51, guile, host-qemu, ifupdown, iperf3, + janus-gateway, kodi, kodi-audioencoder-flac, + kodi-audioencoder-lame, kodi-audioencoder-vorbis, + kodi-audioencoder-wav, libcli, libiio, liblinear, libnice, + libselinux, libsemanage, libserialport, libsigro, + libsigrokdecode, libsrtp, liburiparser, libvips, libwebsock, + libz160, libzip, lightning, mcelog, memtest86, mjpegtools, + mjpg-streamer, mke2img, mpd-mpc, netsurf-buildsystem, odhcp6c, + openldap, python-alsaaudio, python-certifi, python-cheetah, + python-coherence, python-django, python-docopt, python-enum, + python-enum34, python-flask, python-gobject, python-httplib2, + python-ipaddr, python-itsdangerous, python-jinja, + python-markdown, python-markupsafe, python-networkmanager, + python-pam, python-psutil, python-pyftpdlib, python-pyinotify, + python-pysendfile, python-pyxb, python-requests, python-six, + python-twisted, python-webpy, python-werkzeug, + python-zope-interface, qt5cinex, sigrok-cli, sofia-sip, + start-stop-daemon, szip, triggerhappy, ustr, vnstat, xorriso, + xtables-addons + + Removed packages (target): bison, distcc, gob2, m4 + + Issues resolved (http://bugs.uclibc.org): + + #7556: make interactive CLI optional for nftables + #7730: Error while connecting Qt Cretaor to device + #7766: logrotate default gzip path is usually wrong + #7790: Invalid ext4 image generated by Buildroot + +2014.11, Released December 1st, 2014 + + Minor fixes. + + Infrastructure: LD_LIBRARY_PATH handling tweak to ensure + current working directory isn't searched. + + Updated/fixed packages: gd, gdb, libwebsockets, luajit, mono, + parted, shairport-sync, util-linux, xapp_bdftopcf, + xserver_xorg-server + +2014.11-rc3, Released November 28th, 2014 + + Fixes all over the tree. + + System: File permissions of /etc/random-seed made more + restrictive. + + Toolchain: Various fixes related to locale handling, a fix for + building the toolchain wrapper on MIPS. + + Updated/fixed packages: bind, binutils. botan, btrfsprogs, + clamav, czmq, dhcp, dillo, dovecot, erlang, flac, gd, glibc, + gptfdisk, gst1-validate, heirloom-mailx, lame, libksba, + libllcp, libnspr, libpng, libshairplay, libtirpc, linux, + linux-headers, mpdecimal, mpg123, network-manager, nfstables, + nfs-utils, openssl, pcituils, qt, radvd, rtai, sqlcipher, + sstrip, tcpdump, uclibc, uemacs, ushare, wayland, weston, + xl2tp, xserver_xorg-server + + Issues resolved (http://bugs.uclibc.org): + + #7670: Fails to build mpc-1.0.2 on latest Cygwin + +2014.11-rc2, Released November 21st, 2014 + + Fixes all over the tree. + + Inittab tweaks for shutdown handling (busybox and sysvinit). + + Updated/fixed packages: aircrack-ng, botan, canfestival, + clamav, coreutils, czmq, dbus, dovecot, duma, e2fsprogs, + erlang, gcc, iputils, libcap, libgcrypt, libmemcached, + libssh2, libunwind, libv4l, linux-headers, mesa3d-demos, mutt, + mysql, ndisc6, nodejs, omniorb, perl-cross, php, + python-tornado, python3, qemu, qt5base, qt5webkit, rpm, + rt-tests, ruby, schifra, sdl_sound, shairport-sync, sysvinit, + tstools, tzdata, wireshark, x264 + + Issues resolved (http://bugs.uclibc.org): + + #7646: strftime on datetime not works on python3 + +2014.11-rc1, Released November 12th, 2014 + + Fixes all over the tree and new features. + + Toolchains: Use -mcpu / -march instead of -mtune. Support + additional ARC and sparc variants. Updated Code sourcery + and Linaro external toolchains. + + Defconfigs: Freescale iMX6DL SabreSD, Minnowboard MAX, QEMU + powerpc64 pseries added and a number of updates to the + existing configurations. + + Infrastructure: Buildroot is now less noisy when built with + the silent option (make -s). + A number of package infrastructure variables have been renamed + from *_OPT to *_OPTS for constency. Buildroot will complain if + the old names are used to assist in updating out of tree + packages. + Fixes for host systems where bash isn't located in /bin, and + older systems not supporting mktemp --tmpdir. + Various cleanups of users/groups in the default skeleton. + There is now an option to choose what shell /bin/sh points to. + + Documentation: Various updates to the user manual. The + asciidoc documentation handling has now been extended so it + can be used by (BR2_EXTERNAL) packages. + + Updated/fixed packages: acl, acpid, agentpp, aircrack-ng, + alsa-lib, alsamixergui, alsa-utils, apitrace, apr, apr-util, + argus, arptables, at, atftp, atk, attr, audiofile, aumix, + automake, autossh, avahi, avrdude, axel, bandwidthd, bash, + bcusdk, beecrypt, bind, binutils, blackbox, bluez5_utils, + bluez_utils, bmon, boost, bootutils, bridge-utils, + btrfs-progs, busybox, bwm-ng, bzip2, ca-certificates, cairo, + ccache, ccid, ccrypt, cdrkit, cegui06, celt051, chrony, + cifs-utils, civetweb, cjson, clapack, classpath, cloog, cmake, + collectd, connman, copas, coreutils, coxpcall, cppcms, cppdb, + cppzmq, cramfs, crda, cryptsetup, ctorrent, cups, cvs, cwiid, + czmq, dash, dbus, dbus-cpp, dbus-glib, dbus-python, dejavu, + dhcp, dhcpcd, dhcpdump, dialog, dillo, directfb, distcc, + dmalloc, dmidecode, dmraid, dnsmasq, doc-asciidoc.mk, + dosfstools, dropbear, dropwatch, dstat, dtach, dtc, dvbsnoop, + e2fsprogs, ecryptfs-utils, ed, efl, eigen, elf2flt, elfutils, + enlightenment, enscript, erlang, espeak, ethtool, eudev, + evemu, evtest, exfat, exfat-utils, exim, expat, expect, + explorercanvas, faifa, fakeroot, fan-ctrl, fbdump, + fb-test-app, fetchmail, ffmpeg, file, filemq, findutils, flac, + flann, flickcurl, flite, fltk, fluxbox, fmc, fmlib, + fontconfig, foomatic-filters, freerdp, freescale-imx, + freetype, ftop, fxload, gamin, gcc, gd, gdb, gdk-pixbuf, + genimage, genpart, genromfs, geoip, gettext, giblib, git, + glibc, glib-networking, gmp, gmpc, gnu-efi, gnupg, gnupg2, + gnuplot, gnutls, google-breakpad, gpm, gpsd, gptfdisk, + gpu-viv-bin-mx6q, grantlee, grep, gsl, gst1-libav, + gst1-plugins-{bad,base,good,ugly}, gst-ffmpeg, + gst-fsl-plugins, gst-omx, gst-plugins-{bad,base,good,ugly}, + gst-plugin-x170, gstreamer, gstreamer1, gtest, gtk2-engines, + gutenprint, gvfs, harfbuzz, haserl, haveged, hdparm, heimdal, + heirloom-mailx, hiawatha, hostapd, hplip, htop, httping, + hwdata, i2c-tools, icu, ifplugd, igh-ethercat, imagemagick, + imlib2, imx-lib, imx-vpu, inadyn, inotify-tools, input-tools, + intltool, iperf, iproute2, iprutils, ipsec-tools, ipset, + iptables, iputils, iw, jamvm, jansson, jasper, jimtcl, joe, + jpeg-turbo, jq, jquery-keyboard, jquery-mobile, jquery-ui, + jquery-ui-themes, jquery-validation, jsmin, json-c, + json-javascript, kbd, kexec, kexec-lite, keyutils, kismet, + kmod, knock, ktap, lame, lbase64, lbreakout2, lcdproc, lcms2, + lesstif, lftp, libaio, libao, libarchive, libargtable2, + libass, libassuan, libatasmart, libbluray, libbsd, libcap, + libcap-ng, libcdio, libcec, libcgicc, libcgroup, libcofi, + libconfig, libconfuse, libcurl, libdaemon, libdnet, libdrm, + libdvdnav, libecore, libedbus, libedit, libedje, libeet, + libelementary, libelf, libenca, libethumb, libevas, + libevas-generic-loaders, libevent, libexif, libeXosip2, + libffi, libftdi, libfuse, libgail, libgcrypt, libgeotiff, + libglade, libglib2, libgpgme, libgtk2, libhid, libidn, + libinput, libiscsi, libjson, libksba, liblockfile, + liblog4c-localtime, liblogging, libmad, libmatroska, libmbim, + libmemcached, libmicrohttpd, libmpdclient, libmpeg2, libndp, + libnfc, libnfs, libnftnl, libnl, libnspr, libnss, liboauth, + libogg, liboping, libosip2, libpcap, libpciaccess, libpfm4, + libplayer, libplist, libpng, libpthsem, libqmi, libqrencode, + libraw, libreplaygain, libroxml, librsvg, librtlsdr, + libsamplerate, libseccomp, libsecret, libshairplay, libsoc, + libsoup, libsoxr, libssh2, libstrophe, libsvg, libsvg-cairo, + libtasn1, libtheora, libtirpc, libtorrent, libubox, libuci, + libungif, liburcu, libusb, libuv, libv4l, libva, + libva-intel-driver, libvncserver, libvorbis, libvpx, + libwebsockets, libxcb, libxml2, libxml-parser-perl, libxmlrpc, + libxslt, lighttpd, linenoise, linknx, links, linphone, + linux-firmware, linux-fusion, linux-headers, linux-pam, + linux-zigbee, lite, live555, ljlinenoise, lmbench, lm-sensors, + localedef, lockdev, lockfile-progs, log4cxx, lpty, lrandom, + lrzsz, lshw, lsof, lsqlite3, ltp-testsuite, ltrace, ltris, + lttng-babeltrace, lttng-libust, lttng-modules, lttng-tools, + lua, luabitop, lua-coat, lua-coatpersistent, lua-csnappy, + lua-ev, luajit, luajson, lualogging, lua-messagepack, + lua-msgpack-native, luaposix, luarocks, luasec, luasocket, + luasql-sqlite3, lua-testmore, lunit, lvm2, lxc, lz4, lzlib, + lzma, m4, madplay, make, makedevs, Makefile.in, + matchbox-common, matchbox-desktop, matchbox-fakekey, + matchbox-keyboard, matchbox-lib, matchbox-panel, + matchbox-startup-monitor, matchbox-wm, mcrypt, mdadm, + media-ctl, mediastreamer, memcached, memstat, memtester, + mesa3d, metacity, midori, mii-diag, minidlna, mmc-utils, + modem-manager, mongoose, mongrel2, monit, mpc, mpd, mpdecimal, + mpfr, mpg123, mplayer, mrouted, msmtp, mtd, mtools, mtr, + musepack, musl, mutt, mxml, mysql, nano, nanocom, nbd, ncftp, + ncurses, ndisc6, ne10, neard, neon, netatalk, netperf, + netsnmp, nettle, net-tools, network-manager, newt, nfs-utils, + ngrep, nmap, nodejs, nss-mdns, ntfs-3g, ntp, numactl, nut, + nuttcp, ofono, ola, omap-u-boot-utils, omniorb, + on2-8170-modules, opencore-amr, opencv, openntpd, openobex, + openocd, openpowerlink, openssh, openssl, openswan, + opentyrian, opentyrian-data, openvpn, opkg, oprofile, opus, + opus-tools, orbit, orc, ortp, p11-kit, pango, parted, + pciutils, pcmanfm, pcre, pcsc-lite, perf, perl, perl-gd, + perl-gdgraph, perl-io-socket-ssl, perl-json-tiny, + perl-module-build, perl-mojolicious, perl-net-ssleay, + perl-path-tiny, perl-xml-libxml, perl-xml-parser, php, + php-geoip, php-gnupg, php-imagick, php-memcached, php-ssh2, + php-yaml, php-zmq, picocom, pifmrds, pinentry, pixman, + pkg-autotools.mk, pkg-cmake.mk, pkg-download.mk, + pkg-generic.mk, pkg-kconfig.mk, pkg-luarocks.mk, pkg-perl.mk, + pkg-python.mk, pkg-utils.mk, poco, polarssl, polkit, poppler, + popt, portaudio, portmap, postgresql, powerpc-utils, pppd, + pptp-linux, prboom, procps-ng, proftpd, protobuf, protobuf-c, + psmisc, ptpd2, pulseaudio, pv, pwgen, python, python3, + python-dialog, python-ipy, python-keyring, python-mad, + python-netifaces, python-numpy, python-protobuf, python-pyasn, + python-pyparsing, python-pyro, python-pyusb, python-serial, + python-setuptools, qdecoder, qemu, qextserialport, qjson, qt, + qt5, qt5base, qt5connectivity, qt5declarative, qt5enginio, + qt5graphicaleffects, qt5imageformats, qt5multimedia, + qt5quick1, qt5quickcontrols, qt5script, qt5sensors, + qt5serialport, qt5svg, qt5webkit, qt5webkit-examples, + qt5websockets, qt5x11extras, qt5xmlpatterns, qtuio, quagga, + quota, qwt, radvd, rapidjson, rdesktop, redis, rings, rpcbind, + rpi-firmware, rpi-userland, rpm, rp-pppoe, rrdtool, + rsh-redone, rsync, rsyslog, rtai, rtmpdump, rt-tests, rubix, + ruby, samba, sam-ba, samba4, sane-backends, schifra, + sconeserver, scons, screen, sdl, sdl_gfx, sdl_image, + sdl_mixer, sdl_net, sdl_sound, sdl_ttf, sed, ser2net, + setserial, sg3_utils, shared-mime-info, simicsfs, sispmctl, + slang, slirp, smcroute, smstools3, snmppp, + snowball-hdmiservice, socat, socketcand, sox, spawn-fcgi, + speex, spice, spice-protocol, sqlcipher, sqlite, squashfs, + squid, sredird, startup-notification, strace, stress, + strongswan, stunnel, subversion, sudo, sunxi-boards, + sunxi-cedarx, swig, sylpheed, synergy, sysklogd, sysstat, + systemd, sysvinit, taglib, tar, tcl, tcllib, tcpdump, + tcpreplay, texinfo, tftpd, thrift, thttpd, tiff, ti-utils, + tn5250, torsmo, trace-cmd, transmission, tslib, tstools, + tvheadend, twolame, tz, uboot-tools, uclibc, udisks, ulogd, + upmpdcli, upx, urg, usb_modeswitch, usbmount, usbredir, + usbutils, util-linux, valgrind, vde2, vim, vlc, vo-aacenc, + vorbis-tools, vpnc, vsftpd, vtun, wayland, webkit, webp, + webrtc-audio-processing, weston, wget, whois, wireless-regdb, + wireshark, wpa_supplicant, wvstreams, x11r7, x11vnc, + xapp_xcalc, xapp_xdm, xapp_xdpyinfo, xapp_xf86dga, xapp_xfs, + xapp_xinit, xapp_xkbevd, xapp_xmh, xapp_xrandr, xapp_xsm, + xbmc, xbmc-pvr-addons, xcb-proto, xcursor-transparent-theme, + xdriver_xf86-input-mouse, xdriver_xf86-video-{ast,intel}, + xdriver_xf86-video-vmware, xenomai, xerces, + xfont_font-adobe-{100,75}dpi, + xfont_font-adobe-utopia-{100dpi,75dpi,type1}, + xfont_font-alias, xfont_font-arabic-misc, + xfont_font-bh-100dpi, xfont_font-bh-75dpi, + xfont_font-bh-lucidatypewriter-100dpi, + xfont_font-bh-lucidatypewriter-75dpi, xfont_font-bh-ttf, + xfont_font-bh-type1, xfont_font-bitstream-100dpi, + xfont_font-bitstream-75dpi, xfont_font-bitstream-type1, + xfont_font-cronyx-cyrillic, xfont_font-cursor-misc, + xfont_font-daewoo-misc, xfont_font-dec-misc, + xfont_font-ibm-type1, xfont_font-isas-misc, + xfont_font-jis-misc, xfont_font-micro-misc, + xfont_font-misc-cyrillic, xfont_font-misc-ethiopic, + xfont_font-misc-meltho, xfont_font-misc-misc, + xfont_font-mutt-misc, xfont_font-schumacher-misc, + xfont_font-screen-cyrillic, xfont_font-sony-misc, + xfont_font-sun-misc, xfont_font-winitzki-cyrillic, + xfont_font-xfree86-type1, xfsprogs, xinetd, xkeyboard-config, + xlib_libdmx, xlib_libFS, xlib_libpciaccess, xlib_libSM, + xlib_libX11, xlib_libXaw, xlib_libXext, xlib_libXfont, + xlib_libXi, xlib_libXinerama, xlib_libXrandr, xlib_libXrender, + xlib_libXres, xlib_libXScrnSaver, xlib_libXt, xlib_libXv, + xlib_libXvMC, xlib_libXxf86dga, xlib_libXxf86vm, xmlstarlet, + xproto_xcmiscproto, xproto_xextproto, xscreensaver, + xserver_xorg-server, xterm, xz, zeromq, zlib, zlog, zmqpp, + znc, zsh, zxing + + New packages: adwaita-icon-theme, am335x-pru-package, + bcache-tools, biosdevname, botan, canfestival, clamav, + cppunit, dos2unix, dovecot, dovecot-pigeonhole, getent, glm, + gst1-validate, hicolor-icon-theme, ipmitool, leafnode2, + libdvbcsa, libgtk3, libphidget, libshout, libunistring, + libupnpp, mesa3d-demos, modplugtools, mono, monolite, mp4v2, + netcat-openbsd, nginx, odhcploc, openvmtools, + phidgetwebservice, pps-tools, pure-ftpd, + python-configshell-fb, python-rtslib-fb, python-urwid, qlibc, + qt5location, shairport-sync, spidev_test, targetcli-fb, + tinyalsa, trinity, x264, yaml-cpp, ympd + + Removed packages: libelf + + Issues resolved (http://bugs.uclibc.org): + + #261: New package: wxWidgets + #325: New package: ratpoison + #405: New package: OpenVZ tools + #1309: New package: rdiff-backup + #3427: New package: nginx + #3655: New package: libav + #3991: New Package: open-vm-tools (Vmware Tools) + #6878: dmraid: disabled on ARC + #6950: Full unicode support in ncurses + #7010: jamvm builds and runs fine under mips (be) + #7088: elfutils on Blackfin doesn't build + #7142: ecryptfs needs getent to run + #7280: CMake toolchain file uses the FORCE attribute on CMAKE_CXX_FLAGS + #7346: [2014.08rc3] vim-8ae50e3ef8bf.tar.gz can not be downloaded, ... + #7352: [2014.08-rc3] diffutils-3.3 failed on building + #7358: rpi-userland: linking with bcm_host doesn't give vc_dispmanx_* + #7364: monit builds a static application, even though BR2_PREFER_... + #7370: ngrep - requires --with-pcap-includes fully defined to find... + #7442: rootfs remount does not work as expected with sysvinit + #7448: Having export MACHINE="something" breaks glibc build on IMX6... + #7568: musl buildroot-toolchain does not put libgcc_s.so.1 into place + #7574: quota-4.01 fails to build statically + +2014.08, Released September 1st, 2014 + + Minor manual fixes/additions. + + Updated/fixed packages: btrfs-progs, cmake, cppcms, exim, + lftp, libdaemon, libev, libgpgme, libiqrf, libnl, libplist, + libroxml, libwebsockets, mesa3d, mpd, mtdev2tuio, musepack, + perl-gd, php-geoip, php-gnupg, php-imagick, php-memcached, + php-ssh2, php-yaml, php-zmq, polarssl, ruby, systemd, taglib, + uboot-tools, upmpdcli, webkit, xapp_xfs, xapp_luit, + xscreensaver, yajl + + Issues resolved (http://bugs.uclibc.org): + + #7346: vim-8ae50e3ef8bf.tar.gz can not be downloaded, 404 not found + +2014.08-rc3, Released August 26th, 2014 + + Minor fixes. + + User manual update / restructuring. + + Updated/fixed packages: cairo, ecryptfs-utils, gettext, + gstreamer, gstreamer1, gutenprint, icu, imagemagick, jack2, + lbreakout2, libevas-generic-loaders, libftdi, libinput, + libtorrent, ltris, msgpack, ntp, php, procps-ng, pulseaudio, + thrift, tvheadend, usb_modeswitch, xmlstarlet, + + Issues resolved (http://bugs.uclibc.org): + + #7136: ecryptfs-utils needs gettext to run when glibc/eglibc... + #7322: libgomp dependency issue with imagemagick + #7328: Git dl of versions in x/y broken + +2014.08-rc2, Released August 18th, 2014 + + Fixes all over the tree. + + User manual restructured / reworked. + + Toolchain: Fix for C++ exceptions / pthread_exit() on + uClibc/glibc, C++-11 features with uClibc. + + Updated/fixed packages: bandwidthd, bluez5_utils, empty, + espeak, fbv, ffmpeg, gd, gnupg2, gst1-plugin-good, iftop, + infozip, libcuefile, libeml, libnftl, localedef, ltrace, + matchbox, mpd, network-manager, nftables, ngrep, nut, openssl, + oprofile, perl, perl-net-ssleay, postgresql, pppd, procps-ng, + qt, subversion, synergy, systemd, tar, tftpd, webkit, + xapp_rstart, xbmc, xbmc-pvr-addons + + Issues resolved (http://bugs.uclibc.org): + + #7124: Use BR toolchain externally results a non-bootable... + #7208: Glibc C++ aplications crash if they use exceptions + #7250: Cannot build with -std=c++11 + #7262: Generating locale en_US.UTF-8 fails on 64bit fedora.. + #7286: systemd 215 doesn't build + +2014.08-rc1, Released August 8th, 2014 + + Fixes all over the tree and new features. + + Architecture: Powerpc64 BE/LE added, AVR32 deprecated. + Improved altivec / SPE /atomic instructions + handling. Additional PowerPC CPU variants added. + + Defconfigs: Atmel SAMA5D3, Congatec QMX6, Lego ev3, TS-5x00, + qemu-system-xtensa, qemu-aarch64-virt added. A number of + tweaks to existing ones. lpc32xx defconfigs removed. + + Toolchain: Microblaze support for internal musl toolchain. + Default to GCC 4.8 for internal toolchain, remove deprecated + 4.3 and 4.6 versions. + External CodeSourcery / Linaro toolchain updates, option to + copy gconv libraries for external toolchains. + + Infrastructure: graph-depends: misc fixes, transitive + dependencies are not drawn by default. Download handling is + now done using helper scripts. Integrity of downloads can now + be verified using sha* hashes. Subversion download now uses + peg revisions for robustness. + Legal-info: License info of local or overridden packages are + saved as well. Toolchain packages are also taken into account. + autotools: Static linking with libtool / v1.5 improvements. + Gettextize support, similar to autoreconf. + kconfig package infrastructure added. + + Misc: Version selection for busybox dropped. + + Updated/fixed packages: aespipe, aiccu, alsa-lib, alsa-utils, + alsamixergui, argus, armadillo, at, atftp, atk, avahi, + avrdude, axel, b43-firmware, b43-fwcutter, bandwidthd, bc, + bcusdk, beecrypt, bind, binutils, blackbox, bluez5_utils, + bmon, boa, bonnie, bootutils, bsdiff, btrfs-progs, bustle, + busybox, bwm-ng, bzip2, ca-certificates, cairo, can-utils, + ccache, ccrypt, chrony, cifs-utils, classpath, cloog, cmake, + collectd, connman, coreutils, cosmo, cppcms, cramfs, crda, + cryptodev-linux, cryptodev, ctorrent, cvs, dbus-cpp, + dbus-glib, dbus-python, dbus, dcron, dejavu, devmem2, + dfu-util, dhcp, dhcpcd, dhcpdump, dhrystone, dialog, dillo, + distcc, dmidecode, dmraid, dnsmasq, doom-wad, dropbear, + dropwatch, dsp-tools, dtv-scan-tables, dvb-apps, e2fsprogs, + e2tools, eeprog, eigen, elf2flt, elftosb, enlightenment, + enscript, espeak, ethtool, eudev, evemu, exim, expedite, + explorercanvas, ezxml, faifa, fan-ctrl, fconfig, feh, + fetchmail, ffmpeg, fftw, file, fio, fis, flann, flashrom, + flex, flot, fltk, fontconfig, freerdp, freescale-imx, + freetype, ftop, gcc, gd, gdb, genimage, genromfs, gettext, + giblib, glib-networking, glibc, gmp, gnupg, gnutls, gpm, gpsd, + gptfdisk, gpu-viv-bin-imx6q, gqview, grantlee, gst-ffmpeg, + gst-fsl-plugins, gst1-libav, gst1-plugins-bad, + gst1-plugins-ugly, gtk2-engines, gtk2-theme-hicolor, gtkperf, + gvfs, haserl, hdparm, hostapd, httping, i2c-tools, icu, + imagemagick, imx-lib, inadyn, inotify-tools, input-tools, + ipkg, iproute2, iputils, irda-utils, iw, jack2, jpeg, jquery, + jquery-keyboard, jquery-mobile, jquery-validation, jsmin, kbd, + kexec, kmod, knock, latencytop, lcdapi, leafpad, lesstif, + lftp, libaio, libarchive, libargtable2, libart, libatasmart, + libatomic_ops, libbsd, libcap-ng, libcec, libcgicc, libcgroup, + libconfuse, libcurl, libdrm, libdvdnav, libdvdread, + libeXosip2, libedit, liberation, libesmtp, libev, libevas, + libevdev, libevent, libfcgi, libffi, libfreefare, libfslcodec, + libfslparser, libfslvpuwrap, libgail, libgcrypt, libglade, + libglib2, libgpgme, libgtk2, libhid, libical, libiconv, + libiqrf, libjpeg, liblog4c-localtime, libmbus, libmicrohttpd, + libmms, libndp, libnftnl, libnl, libnspr, libnss, liboauth, + libpcap, libpng, libpthsem, libqmi, libraw, libraw1394, + librsvg, libsoc, libsoup, libsvgtiny, libsysfs, libtasn1, + libtirpc, libtorrent, libusb, libv4l, libwebsockets, libxcb, + libxml2, libyaml, links, linux-firmware, linux-fusion, + linux-headers, linux-pam, lite, live555, lm-sensors, + lockfile-progs, lpc3250loader, lshw, lsof, lsuio, ltrace, + ltris, lua-messagepack, luainterpreter, luajit, luaposix, + luarocks, lvm2, lxc, lz4, lzo, make, makedevs, mdadm, + mediastreamer, mesa3d, metacity, minidlna, mkpasswd, + modem-manager, mongoose, mpd, mpg123, msgpack, mtd, mtools, + mtr, musepack, musl, mysql, nano, nasm, nbd, ncurses, ndisc6, + netatalk, netplug, network-manager, nftables, ngircd, nodejs, + nss-mdns, ntp, nut, olsr, open2300, opencv, openntpd, openocd, + openpgm, openpowerlink, openssh, openssl, openswan, openvpn, + opkg, oprofile, opus-tools, orc, p910nd, pango, parted, + pax-utils, pcmanfm, perf, perl, perl-module-build, php, + pixman, pkgconf, poco, polarssl, popt, portmap, postgresql, + prboom, protobuf-c, proxychains-ng, psmisc, psplash, ptpd2, + python, + python-{bottle,dpkt,id3,mad,msgpack,nfc,pygame,pyzmq,simplejson}, + python3, qhull, qt, qt5base, qt5connectivity, qt5declarative, + qt5graphicaleffects, qt5multimedia, qt5quickcontrols, + qt5sensors, qt5svg, qt5webkit, quagga, quota, radvd, rdesktop, + read-edid, rpcbind, rpi-firmware, rpi-userland, rpm, + rsh-redone, rsync, rt-tests, rtmpdump, rtorrent, rubix, ruby, + samba, samba4, sane-backends, sawman, sconeserver, setserial, + sg3_utils, shared-mime-info, smartmontools, smcroute, snappy, + socketcand, spawn-fcgi, sqlite, squashfs, squid, sredird, + startup-notification, statserial, strongswan, stunnel, + sunxi-mali, supervisor, synergy, sysklogd, sysprof, sysstat, + systemd, tcpdump, tcpreplay, texinfo, thrift, thttpd, ti-gfx, + ti-utils, tinyhttpd, torsmo, trace-cmd, transmission, tslib, + tstools, tvheadend, tzdata, uboot-tools, uclibc, udev, + udpcast, usb_modeswitch, usbmount, util-linux, valgrind, vim, + vlc, w_scan, wayland, webrtc-audio-processing, weston, wget, + wireless-regdb, wireless_tools, wireshark, wpa_supplicant, + xapp_{twm,xconsole,xcursorgen,xedit,xfs,xinit,xrandr}, + xdriver_xf86-video-intel, xlib_lib{FS,ICE,Xext,Xfont,Xft,Xi}, + xproto_fontsproto, xproto_inputproto, xserver_xorg-server, + x11vnc, xbmc, xbmc-addon-xvdr, xbmc-pvr-addons, xterm, xvkbd, + xz + + New packages: flickcurl, fmc, fmlib, geoip, gnupg2, + google-breakpad, imx-vpu, isl, kexec-lite, libglew, libglu, + libinput, libksba, libmemcached, libmpdclient, librtlsdr, + libuv, libva, libva-intel-driver, linux-zigbee, memcached, + mpdecimal, ncmpc, opencore-amr, patchelf, perl-datetime-tiny, + perl-gd, perl-gdgraph, perl-gdtextutil, perl-io-socket-ssl, + perl-json-tiny, perl-mojolicious, perl-net-ssleay, + perl-path-tiny, perl-try-tiny, perl-xml-libxml, + perl-xml-namespacesupport, perl-xml-sax, perl-xml-sax-base, + php-geoip, php-memcached, pifmrds, pinentry, powerpc-utils, + procps-ng, pwgen, python-cffi, python-daemon, python-flup, + python-ipython, python-numpy, qt5enginio, qt5webkit-examples, + qt5websockets, simicsfs, sispmctl, sox, sshpass, tclap, + twolame, upmpdcli, whois, xlib_libxshmfence, xproto_dri3proto + + Removed packages: procps + + Issues resolved (http://bugs.uclibc.org): + + #5750: Doing a Buildroot build from /usr doesn't work + #5900: config flags to the Xenomai build system + #6230: Cannot compile gcc without threads (uClibc-based) + #6626: procps Unknown HZ value! (XX) Assume 100 + #7118: Package "thrift" requires atomic operations + #7154: Local uClibc config file gets overwritten using ... + #7160: host-xz not built + #7166: hostapd: segfault when using RT5370 + #7172: Name collision of rpath token expansion and internal.. + #7178: NTPd package cannot sync time without a proper ntp.conf + #7184: supervisord depends on libxml2 implicitly + #7196: Unable to build on UBUNTU13.10 + #7268: python 2.7 compilation issue on a Debian/Ubuntu ... + +2014.05, Released May 31st, 2014 + + Minor fixes. + + Minor manual fixes. U-Boot now defaults to spl/u-boot-spl.bin + for the spl file. + + Updated/fixed packages: exim, glibc, gnutls, libfribidi, + qt5base, qt5webkit, sysklogd, thrift, u-boot + +2014.05-rc3, Released May 28th, 2014 + + Minor fixes. + + Updated/fixed packages: acl, attr, connman, dosfstools, + dropbear, dvb-apps, exim, flite, gdb, httping, hwdata, + lesstif, libnss, libv4l, lttng-babeltrace, midori, monit, + mplayer, php, python2, rdesktop, rpi-userland, ruby, samba, + samba4, slang, xbmc + + Issues resolved (http://bugs.uclibc.org): + + #7100: license info for package 'acl' missing + #7106: license info for package 'attr' missing + #7112: license info for package 'hwdata' + +2014.05-rc2, Released May 21st, 2014 + + Fixes all over the tree. + + Stripping using sstrip has been deprecated. + + BR2_EXTERNAL can now also be used to implement custom + filesystem types. + + The newly added BR2_GRAPH_DEPTH variable to limit the depth of + the generated dependency graph has been renamed to + BR2_GRAPH_DEPS_OPTS, so additional options can be supported in + the future. + + The virtual package infrastructure will now error out early + if multiple packages providing the same virtual package has + been enabled (E.G. opengl). This change requires that the + packages explicitly declare what virtual package(s) they + provide. + + Updated/fixed packages: acpid, armadillo, avahi, bellagio, + btrfs-progs, cairo, clapack, directfb, duma, ecryptfs-utils, + elfutils, eudev, fbgrab, fio, flann, fluxbox, gdb, gpm, + gpu-viv-bin-mx6q, gst1-plugins-good, gst-plugins-good, + imagemagick, iprutils, ipsec-tools, jack2, libdvdnav, + libdvdread, libnss, libunwind, linux-headers, lsof, lua, + luajit, matchbox-keyboard, mesa3d, mpd, mplayer, mtr, mysql, + netsnmp, nodejs, openpowerlink, openvpn, pciutils, + php-imagick, postgresql, pulseaudio, qt5quick1, rpi-userland, + rsyslog, samba, samba4, sane-backends, sunxi-mali, systemd, + ti-gfx, tstools, udev, webkit, wpa_supplicant, xbmc, + xlib_libXpm, xserver_xorg-server, zyre + + Issues resolved (http://bugs.uclibc.org): + + #5396: Boot hangs when starting samba if BR2_ENABLE_LOCALE... + #7016: Git issues in resulting buildroot tar + #7094: pciutils doesn't build on Blackfin + +2014.05-rc1, Released May 13th, 2014 + + Fixes all over the tree and new features. + + Architectures: Support for MIPS o32 ABI on MIPS-64 targets has + been removed. Building o32 ELF files for MIPS64 is an exotic + configuration that nobody should be using. If o32 is required, + then is better if it's built for MIPS 32-bit cores so only + 32-bit instructions will be used leading to a more efficient + o32 usage. + Support for the ARM A12 variant and Intel corei7. + + Configs: Minnowboard and Altera SoCkit added, QEMU updates. + + Bootloaders: Grub2 and gummiboot support, syslinux support + extended. + + Toolchains: GCC 4.9. Glibc 2.19. Support for the musl C + library for internal and external toolchains. 4.8-R3 support + for ARC, Internal toolchain support for Aarch64 and + Microblaze. Environment variable to control debug output of + toolchain wrapper renamed to BR2_DEBUG_WRAPPER to match the + other variables. Toolchain tuple vendor name can now be + customized. Updated external Linaro ARM/Aarch64 + toolchains. Added external Linaro ARMEB toolchain. + A GDB gdbinit file is now generated for external toolchains to + automatically set the correct sysroot. + + Kconfig handling for minimum kernel headers version required + for packages. Now packages needing specific kernel header + features can specify these requirements in Kconfig. + + Infrastructure: Support for (but disabled as it leads to + unreproducible builds) toplevel parallel builds. See the + comment at the top of Makefile for details about how to enable + it and what the problems are if you want to test it. + Python package infrastructure extended to support Python 3.x + Perl and virtual package infrastructure support added. + PRE_*_HOOKS support for all build steps. + + Updated/fixed packages: acpid, agentpp, aiccu, apr, avahi, + barebox, bash, beecrypt, bellagio, binutils, boost, + boot-wrapper-aarch64, bustle, busybox, ca-certificates, cairo, + ccache, ccid, cgilua, chrony, cifs-utils, civetweb, cmake, + collectd, connman, coreutils, coxpcall, cppcms, cppzmq, crda, + cryptodev, cryptsetup, cups, czmq, dbus, dhcpdump, directfb, + dmalloc, dmraid, dnsmasq, dosfstools, dsp-tools, dtc, + dvb-apps, ebtables, ecryptfs-utils, eigen, erlang, ethtool, + evemu, evtest, f2fs-tools, fdk-aac, feh, ffmpeg, file, filemq, + flac, flot, fmtools, fping, freetype, fswebcam, gcc, gd, gdb, + gettext, giblib, git, glibc, glibmm, glib-networking, gmp, + gnutls, gpm, gpsd, gpu-viv-bin-mx6q, grep, gst1-libav, + gst1-plugins-bad, gst1-plugins-base, gst1-plugins-good, + gst1-plugins-ugly, gst-ffmpeg, gst-fsl-plugins, gst-omx, + gst-plugins-good, gstreamer1, gvfs, harfbuzz, haveged, + hostapd, htop, httping, ifplugd, iftop, igmpproxy, + imagemagick, imlib2, imx-lib, infozip, intltool, iproute2, + ipsec-tools, ipset, jansson, jpeg, jpeg-turbo, jquery, + jquery-keyboard, jquery-ui, jquery-ui-themes, json-glib, + json-javascript, kexec, kmod, lame, lbase64, lbreakout2, + lcdproc, lftp, libao, libatasmart, libatomic_ops, libcap, + libcdio, libcec, libcgicc, libcgroup, libcurl, libdrm, + libdvdnav, libdvdread, libegl, libeio, libenca, libesmtp, + libevas, libevdev, libfribidi, libfslcodec, libfslparser, + libfslvpuwrap, libgail, libgles, libglib2, libgtk2, libhid, + libjpeg, libmbim, libmicrohttpd, libmodplug, libnftnl, + libnspr, libogg, libopenmax, libopenvg, libpcap, libplayer, + libpng, libpthread-stubs, librsvg, libsigsegv, libsocketcan, + libsoup, libtasn1, libtool, libtpl, libunwind, liburcu, + libusb, libwebsockets, libxcb, libxml2, libxmlpp, libyaml, + lighttpd, linphone, linux-firmware, linux-headers, ljsyscall, + lmbench, lsof, ltp-testsuite, ltris, lttng-babeltrace, + lttng-libust, lttng-modules, lttng-tools, lua, lua-cjson, + luacrypto, lua-ev, luaexpat, luaexpatutils, luafilesystem, + luainterpreter, luajit, lua-msgpack-native, luaposix, + luarocks, luasec, luasocket, luasql-sqlite3, lvm2, macchanger, + memstat, mesa3d, metacity, minidlna, mmc-utils, + mobile-broadband-provider-info, modem-manager, mongrel2, + monit, mpd, mplayer, msmtp, mtd, mtools, mutt, mysql, nasm, + ncurses, ne10, netatalk, netsnmp, nettle, network-manager, + newt, nfs-utils, nmap, nodejs, ntfs-3g, ntp, nut, ofono, ola, + olsr, omniorb, opencv, opengl, openpgm, openssh, openssl, + openswan, openvpn, orbit, orc, p11-kit, pango, parted, + pciutils, pcre, pcsc-lite, perf, perl, perl-xml-parser, php, + picocom, pixman, pkgconf, poppler, popt, portmap, powervr, + pppd, pptp-linux, proftpd, protobuf, protobuf-c, ptpd2, + pulseaudio, python, python3, python-bottle, python-m2crypto, + python-netifaces, python-pyasn, python-pycrypto, + python-pygame, python-pysnmp, python-pysnmp-apps, + python-pysnmp-mibs, python-serial, python-setuptools, + qextserialport, qt, qt5, qt5base, qt5connectivity, + qt5declarative, qt5graphicaleffects, qt5imageformats, + qt5multimedia, qt5quick1, qt5quickcontrols, qt5script, + qt5sensors, qt5serialport, qt5svg, qt5webkit, qt5x11extras, + qt5xmlpatterns, qtuio, qwt, radvd, readline, rings, + rpi-firmware, rpi-userland, rsh-redone, rsync, rsyslog, rtai, + rtmpdump, rt-tests, ruby, samba, sconeserver, scons, sdl, + sdl_image, sdl_mixer, sg3_utils, slang, smstools3, snmppp, + socat, speex, sqlcipher, sqlite, squashfs, squid, strongswan, + stunnel, sunxi-boards, sunxi-mali, sunxi-tools, sylpheed, + syslinux, sysstat, systemd, taglib, tcl, tcllib, tcpreplay, + tidsp-binaries, ti-gfx, tmux, tvheadend, tzdata, uboot, + uboot-tools, uclibc, udev, udisks, ulogd, usb_modeswitch, + usb_modeswitch_data, usbmount, util-linux, valgrind, vlc, + webkit, weston, wget, wireshark, wpa_supplicant, wsapi, + w_scan, xapp_appres, xapp_bdftopcf, xapp_beforelight, + xapp_bitmap, xapp_editres, xapp_fslsfonts, xapp_fstobdf, + xapp_iceauth, xapp_ico, xapp_mkfontscale, xapp_rgb, + xapp_rstart, xapp_sessreg, xapp_showfont, xapp_twm, + xapp_viewres, xapp_xauth, xapp_xbacklight, xapp_xcalc, + xapp_xclock, xapp_xditview, xapp_xdpyinfo, xapp_xdriinfo, + xapp_xev, xapp_xfd, xapp_xfontsel, xapp_xfs, xapp_xfsinfo, + xapp_xgc, xapp_xhost, xapp_xinit, xapp_xkbutils, xapp_xkill, + xapp_xload, xapp_xlsclients, xapp_xlsfonts, xapp_xmag, + xapp_xman, xapp_xmessage, xapp_xmodmap, xapp_xprop, + xapp_xrandr, xapp_xrdb, xapp_xrefresh, xapp_xset, + xapp_xsetroot, xapp_xsm, xapp_xstdcmap, xapp_xvidtune, + xapp_xvinfo, xapp_xwd, xapp_xwininfo, xcb-util-wm, + xdriver_xf86-input-evdev, xdriver_xf86-input-joystick, + xdriver_xf86-input-keyboard, xdriver_xf86-input-mouse, + xdriver_xf86-input-synaptics, xdriver_xf86-input-vmmouse, + xdriver_xf86-video-ark, xdriver_xf86-video-ast, + xdriver_xf86-video-ati, xdriver_xf86-video-cirrus, + xdriver_xf86-video-dummy, xdriver_xf86-video-fbdev, + xdriver_xf86-video-geode, xdriver_xf86-video-glide, + xdriver_xf86-video-glint, xdriver_xf86-video-i128, + xdriver_xf86-video-intel, xdriver_xf86-video-mach64, + xdriver_xf86-video-mga, xdriver_xf86-video-neomagic, + xdriver_xf86-video-newport, xdriver_xf86-video-nv, + xdriver_xf86-video-openchrome, xdriver_xf86-video-r128, + xdriver_xf86-video-savage, xdriver_xf86-video-siliconmotion, + xdriver_xf86-video-sis, xdriver_xf86-video-tdfx, + xdriver_xf86-video-tga, xdriver_xf86-video-trident, + xdriver_xf86-video-vesa, xdriver_xf86-video-vmware, + xdriver_xf86-video-voodoo, xenomai, xerces, xl2tp, xlib_libFS, + xlib_xtrans, xproto_xproto, xserver_xorg-server, + xutil_util-macros, zeromq, zic, zmqpp, zyre + + New packages: armadillo, btrfs-progs, clapack, cosmo, dado, + dbus-triggerd, dtv-scan-tables, e2tools, eudev, exim, expect, + fetchmail, flann, flite, gnu-efi, grub2, gummiboot, heimdal, + iprutils, iptraf-ng, jack2, jquery-mobile, libee, libestr, + libgc, libgl, liblogging, libndp, libsoxr, libstrophe, + libubox, libuci, libxmlrpc, ljlinenoise, lpeg, lpty, lrandom, + lsqlite3, lua-coat, lua-coatpersistent, lua-csnappy, luajson, + lualogging, lua-messagepack, lua-testmore, lunit, lzip, lzlib, + musl, nftables, opentyrian, opentyrian-data, + perl-module-build, php-gnupg, php-imagick, php-ssh2, php-yaml, + php-zmq, postgresql, python-libconfig, python-pypcap, + python-pyrex, qdecoder, qhull, samba4, smack, tz, tzdump, ucl, + upx, vo-aacenc, xbmc, xbmc-addon-xvdr, xbmc-pvr-addons, + yaffs2utils, zlog, znc + + Removed packages: crosstool-ng, python-distutilscross, vala + + Issues resolved (http://bugs.uclibc.org): + + #6842: Checking external toolchain for eabihf + #6956: Packaging libsoxr + #6986: Make legal-info fails on uboot versions before 2014.01 + #6992: Incorrect installation rights on external kernel module.. + +2014.02, Released February 27th, 2014 + + Minor fixes. + + Updated/fixed packages: cegui06, cppdb, e2fsprogs, gcc, gdb, + gst1-plugins-bad, gstreamer, gstreamer1, haserl, imagemagick, + libpng, libxml2, lua, luajit, luarock, ncftp, openswan, + pcsc-lite, qt5connectivity, ramsmp, strongswan, vlc + + Issues resolved (http://bugs.uclibc.org): + + #6938: mkuser script generates wrong password for new user in.. + +2014.02-rc3, Released February 25th, 2014 + + Minor fixes. + + Updated/fixed packages: aiccu, ala-lib, alsa-utils, binutils, + cairo, coreutils, dhcpcd, distcc, efl, evas, iputils, gdb, + gpsd, gst-fsl-plugins, icu, libcec, libcgi, libplayer, + libsecret, libsepol, libsigsegv, libtool, libv4l, + linux-headers, matchbox-lib, mpg123, ncftp, opencv, pcmanfm, + pixman, pv, qt, rt-tests, sawman, sconeserver, sdl, thrift, + tvheadend, util-linux, webkit, xscreensaver + + Issues resolved (http://bugs.uclibc.org): + + #4706: Removing .stamp_target_installed does not trigger... + #5030: busybox built fails if we use an override src dir... + #5420: Dbus and /var/run management + #5768: Not able to build ALSA-Lib for static build + #5774: Not able to build ALSA-Utils for static build + #6542: external python modules fail to compile to pyc if... + #6764: Support for kernel signed modules + #6794: Busybox compiled from buildroot hangs on pass from... + +2014.02-rc2, Released February 20th, 2014 + + Fixes all over the tree. Static linking / nommu fixes and + annotations for several packages. + + Updated/fixed packages: boost, busybox, collectd, coreutils, + dropbear, elfutils, feh, gcc, gst1-libav, imagemagick, iozone, + jimtcl, kexec, libvncserver, lvm2, lxc, mplayer, netsnmp, nut, + opencv, python, python3, qtuio, systemd, thrift, transmission, + uclibc, vlc, webkit + + Issues resolved (http://bugs.uclibc.org): + + #5450: AT91SAM9260 Bootstrap compilation problem + #5582: libiconv 1.14 failed to build + #5624: When building directfb, BR2_TARGET_LDFLAGS not used by.. + #5852: [2012.11] usb_modeswitch should depends of "BR2_PACK.. + #6218: binutils-2.23.2/gas fails with undefined reference to.. + #6236: binutils-2.23.2/bfd fails with undefined reference to.. + #6470: If the build directory is a child of /usr, the build.. + #6776: systemd error: static declaration of 'execvpe' follows.. + #6818: toolchainfile.cmake has absolut path references + +2014.02-rc1, Released February 11th, 2014 + + Fixes all over the tree and new features. + + Support for external packages/defconfigs (BR2_EXTERNAL). See + user manual for details. + + Cleanup of environment variable names for consistency. The + download directory location override (BUILDROOT_DL_DIR) is now + called BR2_DL_DIR. Likewise the name of the current .config is + renamed from BUILDROOT_CONFIG to BR2_CONFIG. Please update + your post build scripts if you use this! BUILD_DIR is now also + exported to the post build/image scripts. + + Toolchain: GCC 4.8 fix for ARM stack corruption, reverted + uClibc pread/pwrite backport as they cause issues on certain + architectures, new Linaro and Sourcery Codebench toolchains. + x86: Support for AMD Jaguar cores, SSE4.x, SH: SH2/SH3/SH3EB + variants removed, Microblaze: Internal toolchain support + + Legal infrastructure: Info is now split between host and + target packages, large number of license annotations. + + Lua: selection between lua 5.1 / 5.2, luarocks support + + Python: package infrastructure, many new packages. + + Defconfigs: Armadeus APF51 + Zedboard added, apf27, apf28, + beaglebone, microblaze, pandaboard, qemu, raspberry pi + updated. + + Updated/fixed packages: aiccu, alsa-lib, alsa-utils, + am33x-cm3, aumix, autoconf, automake, barebox, bellagio, + berkeleydb, binutils, bison, blackbox, bluez_utils, boost, + bustle, busybox, cairo, can-utils, ccache, ccid, cgilua, + cifs-utils, civetweb, cmake, collectd, connman, copas, + coreutils, coxpcall, cppzmq, cramfs, crda, cryptodev-linux, + cryptsetup, cups, czmq, dhcpcd, dhcpdump, dhrystone, dialog, + dmraid, dnsmasq, dosfstools, dropbear, dropwatch, dtc, duma, + dvb-apps, e2fsprogs, eglibc, eigen, elf2flt, erlang, ethtool, + f2fs-tools, ffmpeg, file, filemq, fio, flashrom, flex, + fluxbox, fontconfig freerdp, freetype, gadgetfs-test, gawk, + gcc, gdb, gdbm, gettext, git, glibc, gnupg, gnutls, gob2, + gpsd, grep, grub, gst-ffmpeg, gst-plugins-good, + gst1-plugins-bad, gst1-plugins-base, gst1-plugins-good, + gst1-plugins-ugly, gstreamer, gstreamer1, gtest, icu, iftop, + imagemagick, inadyn, infozip, iozone, iproute2, iptables, iw, + jpeg, jpeg-turbo, jq, kexec, kmod, knock, lbase64, lcdapi, + lftp, libcdaudio, libcgi, libcgicc, libcuefile, libcurl, + libdmtx, libdrm, libdvdnav, libdvdread, libegl, libevent, + libexif, libfcgi, libfreefare, libgles, libglib2, libllcp, + libmicrohttpd, libmpd, libnfc, libnl, libnss, libopenmax, + libopenvg, libpcap, libpfm4, libplayer, libpng, libqmi, + libreplaygain, libroxml, libsamplerate, libsexy, libsigsegv, + libsndfile, libsoc, libtasn1, libtorrent, libtpl, libupnp, + libusb, libusb-compat, libvorbis, libxcb, libxml2, libxmlpp, + libyaml, lighttpd, linknx, linux-firmware, linux-pam, live555, + lm_sensors, lmbench, lockdev, logrotate, lrzsz, ltrace, lua, + lua-ev, lua-msgpack-native, luabitop, luaexpat, luaexpatutils, + luafilesystem, luajit, luaposix, luasec, luasocket, + luasql-sqlite3, m4, matchbox, mdadm, minicom, mongrel2, mpc, + mpd, mpg123, mplayer, mtd, mysql, lvm2, mxml, ncurses, ne10, + neard, neardal, netsnmp, netstat-nat, network-manager, nodejs, + numactl, ofone, ola, olsr, omniorb, open2300, opencv, + openpowerlink, openssh, openssl, openvpn, oprofile, opus, + opus-tools, orbit, p11-kit, parted, pcre, pcsc-lite, perl, + php, poco, poppler, powervr, protobuf-c, psplash, python, + python-bottle, + python-{crc16,distutilscross,dpkt,id3,ipy,m2crypto,mad,meld}, + python-{netifaces,nfc,protobuf,pygame,pyparsing,pyro,pyzmq}, + python-{serial,setuptools}, qt, qt5base, qt5connectivity, + qt5declarative, qt5graphicaleffects, qt5jsbackend, + qt5multimedia, qt5quick1, qt5quickcontrols, qt5script, + qt5webkit, radvd, redis, rings, rng-tools, rpcbind, + rpi-firmware, rpi-userland, rt-tests, sam-ba, samba, sawman, + sconeserver, scons, sdl, sg3_utils, snappy, snmppp, + socketcand, spice, spice-protocol, sqlcipher, sqlite, squid, + sshfs, strace, subversion, sunxi-mali, supervisor, sysklogd, + sysprof, sysstat, systemd, sysvinit, taglib, tar, tcpdump, + ti-gfx, ti-utils, tinymembench, tn5250, trace-cmd, + transmission, tvheadend, tzdata, zxing, uboot, uboot-tools, + uclibc, udev, udpcast, ulogd, urg, usb_modeswitch_data, + util-linux, vala, valgrind, vorbis-tools, wavpack, wayland, + weston, wget, wireless-regdb, wireshark, wpa_supplicant, + wsapi, xavante, xapp_xdpyinfo, xapp_xrandr, xcb-proto, + xdriver_xf86-video-intel, xenomai, xkeyboard-config, xl2tp, + xlib_lib{FS,SM,X11}, + xlib_libX{au,aw,composite,cursor,damage,ext,fixes,font,i}, + xlib_libX{inerama,mu,pm,randr,render,res,t,tst,v,xf86dga}, + xlib_libXxf86vm, xlib_libdmx, xlib_libfontenc, + xlib_libpciaccess, xlib_xtrans, xproto_dri2proto, + xproto_{glproto,inputproto,presentproto,randrproto,videoproto}, + xproto_xextproto, xproto_xproto, xutil_util-macros, + xutil_makedepend, zic, zmqpp, zxing, zsh, zyre + + New packages: apitrace, avrdude, c-ares, ca-certificates, + cwiid, dbus-cpp, evemu, fping, fswebcam, gpm, gst1-libav, + haveged, intel-microcode, iucode-tools, jasper, joe, ktap, + lbreakout2, libass, libbluray, libcdio, libenca, libevdev, + libmbim, libmodplug, libnfs, libnftnl, libplist, libshairplay, + libsocketcan, ljsyscall, log4cplus, ltris, luainterpreter, + luarocks, minidlna, mmc-utils, modemmanager, mtr, net-tools, + python-configobj, python-dialog, python-json-schema-validator, + python-keyring, python-msgpack, python-posix-ipc, + python-pyasn, python-pycrypto, python-pysnmp, + python-pysnmp-apps, python-pysnmp-mibs, python-pyusb, + python-simplejson, python-tornado, python-versiontools, + rtmpdump, rtptools, smcroute, smstools3, tcpreplay, thrift, + ti-uim, tinyxml, tmux, vlc, wmctrl, xconsole + + Removed packages: autoconf, automake, ccache, cpanminus, lzma, + netkitbase, netkittelnet, pkg-config, squashfs3, ttcp, xstroke + + Issues resolved (http://bugs.uclibc.org): + + #65: new package: dbus c++ language bindings + #769: Update configuration menu for MIPS target + #2419: Add a bundle of Lua modules + #2629: Segmentation faults and division by zero in Grub on ext2 + #3811: Added auto-mount for USB and SD Card (mdev) (for 2011.05) + #4339: Allow override of DL_DIR in extract step + #4363: Make sure that copied linux and busybox defconfig are... + #4454: There should be simple way to update image, when chang... + #5024: grub fails to build for x86_64 target architecture + #5066: New-Package: net-tools + #5072: ncurses: add ncurses-progs to target + #5294: uclibc build ignores target CFLAGS and LDFLAGS + #5366: Login doesn't work with util-linux versions of login/agetty + #5378: dropbear Makefile broken + #5390: System banner - change to empty doesn't remove /etc/issue + #5780: spurious build failure because it cannot remove ubinize.cfg + #5798: ncurses-5.9 fails to compile statically + #5810: Buildroot 2012.11: Additional GCC option "-msoft-float" ... + #6080: Git fetch caching + #6092: Bootable ISO image creation seems to have stopped working.. + #6272: coreutils build fails + #6434: apply-patches.sh does not work recursively + #6446: eglibc doesn't install ldconfig to target + #6484: Add c-ares + #6596: Slow bootup if mdev is chosen + #6656: Build Qt5 with ccache + #6662: internal compiler error: Segmentation fault during making.. + #6722: Usage of $($(PKG)_DIR_PREFIX) is an issue with linux package + #6752: genext2fs: e2fsck must run before tunefs -U random + #6770: openssl 1.0.1f fails with ccache + #6830: Qt5: no fonts are installed + #6848: Qt5: no text shown in simple QWidget / frame-buffer setup + #6854: Update to Qt 5.2.1 + +2013.11, Released November 30th, 2013: + + Minor fixes. + + Updated/fixed packages: apr, binutils, dbus-python, dropwatch, + ecryptfs-utils, eglibc, gdb, gpsd, grantlee, hostapd, + iptables, qlibiscsi, libnspr, libnss, libpfm4, libtool, + lua-ev, lvm2, mplayer, qt, qt5, quagga, ruby, tinymembench, + tvheadend, util-linux, wpa_supplicant + + Issues resolved (http://bugs.uclibc.org): + + #1279: Buildroot compiled Busybox and Coreutils LFS issues + #2995: -fstack-protector-all causes ssh to SIGSEGV + #5570: Cannot compile software on the target machine + #6428: util-linux libmount segfaults with patch from buildroot + #6500: php fails to build for armel + #6554: gdb needs to dependents on host texinfo + #6692: GNU nano fails to compile for x86_64 + #6704: wpa_supplicant: fix wrong path to executable file in D-Bus + +2013.11-rc3, Released November 26th, 2013 + + Fixes all over the tree. + + Architecture: Mark MIPS I, II, III and IV as deprecated. + + Updated/fixed packages: beecrypt, dbus, e2fsprogs, libcap-ng, + libglib2, libroxml, libsigsegv, libvncserver, lxc, mdadm, + mongoose, nut, ola, omniorb, openssl, pcre, php, poco, + protobuf-c, pv, qt5base, ruby, schifra, squid, sunxi-mail, + swig, ti-gfx, tinymembench, uclibc, udisks, vim + +2013.11-rc2, Released November 18th, 2013 + + Fixes all over the tree. + + Defconfigs: qemu_arm_versatile, qemu_arm_nuri, sheevaplug: + Adjust kernel versions. + + Toolchain: avr32: fix for modern kernel headers + + Bootloader: Barebox updated to 2013.10.1 + + Updated/fixed packages: dhcp, e2fsprogs, gst1-plugins-bad, + libcurl, libvncserver, nano, pc, qt5base, squashfs, ttcp, + wayland, wvstreams + + Issues resolved (http://bugs.uclibc.org): + + #3601: DHCPD S80dhcp-server startup script issues + #6320: Fix kernel compile issue if BR2_LINUX_KERNEL_CUSTOM_GIT_VERS.. + #6416: Xenomai package, patch alternative + #6590: directfb-examples build failed whit linaro toolchain + +2013.11-rc1, Released November 12th, 2013 + + Architectures: Nios-II support, MIPS arch handling fixes + + Defconfigs: cubieboard2, freescale i.MX 6sololite evk, + sabre-sd, wandboard added, rpi renamed to raspberrypi_defconfig + + Toolchain: glibc support, upstream uClibc fixes, uClibc 0.9.31 + for avr32, crosstool-ng backend removed, external musl + toolchain support, gcc 4.8.2, updated Linaro external + toolchains. Fortran and objective-C support deprecated, + mudflap support + + Bootloaders: U-Boot: u-boot.imx support, version bumps + + Linux: use kmod instead of module-init-tools + + System: default to devtmpfs for /dev + + Infrastructure: Make 3.82 fixes, locales generation fixes, CVS + download support, post-rsync hooks + + Fs: u-boot image support for cpio + + Updated/fixed packages: aircrack-ng, alsamixergui, apr, + apr-util, atk, automake, bellagio, berkeleydb, bind, binutils, + bison, boost, busybox, can-utils, ccache, ccid, cgilua, + chrony, cifs-utils, cjson, collectd, connman, conntrack-tools, + copas, cppcms, cppzmq, czmq, dash, dbus, dhcpcd, diffutils, + directfb, dmidecode, dnsmaqs, docker, dosfstools, dropbear, + dropwatch, ebtables, eglibc, elf2flt, empty, enchant, erlang, + ethtool, fbgrab, fbv, fdk-aac, feh, ffmpeg, file, findutils, + fltk, fmtools, freetype, gdk-pixbuf, gettext, git, + glib-networking, gmp, gnupg, gnutls, gpu-viv-bin-mx6q, gsl, + gstreamer, gstreamer1, gst1-plugins-{bad,base,good,ugly}, + gtest, gutenprint, hplip, i2c-tools, icu, ifplugd, + imagemagick, iozone, iproute2, ipset, iptables, iw, jamvm, + jansson, jpeg-turbo, kismet, kmod, lcms2, libassuan, libcap, + libcap-ng, libcdaudio, libcec, libcue, libcurl, libdrm, + libedit, libevas, libevent, libfreefare, libfuse, + libgpg-error, libiconv, liblog4c-localtime, libmicrohttpd, + libmnl, libmodbus, + libnetfilter_{acct,conntrack,cthelper,cttimeout,log,queue}, + libnfnetlink, libnl, libpng, libqmi, libqrencode, libroxml, + libsecret, libsigsegv, libsoup, libtirpc, libunwind, libusb, + libvpx, lighttpd, linphone, linux-pam, lmbench, + lockfile-progs, log4cxx, logrotate, logsurfer, ltp-testsuite, + ltrace, luacrypto, luaposix, lvm2, m4, matchbox-lib, + media-ctl, mediastreamer, minicom, minidlna, mongoose, monit, + mpc, mpd, mpg123, mplayer, mrouted, mtdev, mutt, mysql_client, + nano, ncftp, ndisc6, neard, neardal, neon, net-snmp, netatalk, + netcat, netkitbase, netperf, netplug, nettle, nfacct, + nfs-utils, ngircd, ngrep, noip, nuttcp, olsr, openssh, opkg, + oprofile, opus-tools, orc, ortp, pciutils, pcre, pcsc-lite, + perf, perl, perl-cross, php, picocom, pkgconf, polarssl, + poppler, pppd, proftpd, protobuf, proxychains-ng, pulseaudio, + pv, qemu, qt, qt5base, qt5webkit, quagga, radvd, redis, + rpi-{firmware,userland}, rrdtool, rsync, rtorrent, ruby, + samba, scons, screen, sdl_sound, ser2net, setserial, + smartmontools, socat, socketcand, sqlcipher, sqlite, squid, + stress, strongswan, stunnel, sudo, syslinux, systemd, + sysvinit, tcl, ti-gfx, time, transmission, tremor, tslib, + tstools, tvheadend, tzdata, uboot-tools, uclibc, udpcast, + uemacs, ulogd, usb_modeswitch{,_data}, util-linux, vala, + valgrind, vde2, vorbus-tools, vpnc, vsftpd, vtun, wayland, + webkit, webp, webrtc-audio-processing, weston, wget, + wireshark, wsapi, xavante, xdriver_xf86-video-geode, xenomai, + xinetd, xlib_libpthread-stubs, xl2tp, xmlstarlet, + xserver_xorg-server, xz, zeromq, zic, zmqpp + + New packages: aiccu, autossh, bc, civetweb, cppdb, cryptsetup, + duma, eigen, harfbuzz, igmpproxy, iputils, jq, knock, kobs-ng, + lesstif, libcgroup, libsepol, libsoc, libssh2, luasec, luasql, + lxc, nut, ola, omniorb, openpowerlink, orbit, p910nd, psplash, + python-crc16, python-ipy, python-pyzmq, qt5sensors, + qt5serialport, qt5x11extras, snmppp, subversion, tcping, + trace-cmd, xscreensaver, zsh + + Removed packages: module-init-tools + + Issues resolved (http://bugs.uclibc.org): + + #1138: Buildroot fails to build packages if BR2_GCC_SHARED_LIBGCC=y + #5408: qt build failure with Sourcery CodeBench ARM 2010.09 + #5630: makefile error with toolchain helpers.mk + #5672: htop: remove X11 stuff + #5678: linux.mk: linux-menuconfig fails + #5696: python3 installation is too large, patches from python2 needed + #5978: Erlang does not build for arm in 2013.02-rc3 + #6392: Extended ARM uImage kernel options + #6404: Buildroot's coreutils 'uname -p' reports 'Unknown' on recent.. + #6428: util-linux libmount segfaults with patch from buildroot + #6452: eglibc from Linaro 2013.07 not copied to target correctly + #6566: PHP segfault when crosscompiled to mips64 - patch included + #6572: [PowerPC] Buildroot uses wrong external toolchain libraries.. + #6578: udisks package broken + #6602: ebtables 64 bit kernel + 32 bit userland alignment error.. + #6608: ebtables missing ethertypes - fix included + #6620: Sysvinit package missing killall5 and symlinks - patch included + #6632: CMake use host pkg-config + #6638: pkgconf doesn't download + #6644: "all" target doesn't work in out-of-tree builds + #6650: Segmentation fault when trying to build latest buildroot + #6668: iptables limit module alignment problem on mips64 + +2013.08, Released August 31th, 2013: + + Minor fixes. + + Documentation build fixed. + + Updated/fixed packages: ltrace, strongswan + +2013.08-rc3, Released August 29th, 2013: + + Fixes all over the tree. + + External toolchain lib32/lib64 handling, ABI name for EABIhf, + misc fixes for generatelocales, apply-patches and module + stripping. + + Top level menu names reordered and renamed for clarity. + + Updated/fixed packages: acl, attr, bash, dbus, directfb, + dvb-apps, kexec, kmod, libbsd, linux-fusion, mesa3d, minidlna, + openssh, openssl, pulseaudio, python-setuptools, qt5, + qt5webkit, redis, strongswan, sunxi-mali + + Issues resolved (http://bugs.uclibc.org): + + #6464: dbus-daemon-launch-helper needs setuid + +2013.08-rc2, Released August 16th 2013: + + Documentation improvements. + + External toolchains fixes. + + Updated/fixed packages: aircrack-ng, bash, boost, cairo, + cppcms, eglibc, ffmpeg, gcc, git, gnupg, imagemagick, libcec, + libffi, libgcrypt, linux, linux-headers, ltrace, netatalk, + opencv, opengl, readline, samba, strongswan, sunxi-cedarx, + uclibc, udev, wayland, webkit, zeromq. + + Issues resolved (http://bugs.uclibc.org): + + #6440: typo in ffmpeg makefile + +2013.08-rc1, Released August 5th, 2013: + + Architectures: + - improved support for floating point on ARM and Thumb/Thumb2 + - support for ARM OABI removed + + Toolchains: + - support added for Sourcery CodeBench ARM and MIPS 2013.05 + - Linaro ARM and Aarch64 toolchains updated + - support added for the Arago ARMv5 and ARMv7 toolchains + - gcc 4.8.x version bumped + - support for installing both FDPIC and FLAT libraries on + Blackfin + - support for uClibc 0.9.31 removed, + - convert the internal toolchain backend to use the package + infrastructure + - support added for eglibc in the internal toolchain backend + - toolchain components for the ARC architecture updated and + gdb for ARC added. + - support for Blackfin in the internal toolchain fixed + + Defconfigs: beaglebone_defconfig updated, new defconfig for + CubieBoard, for Olimex mx233 Olinuxino, for Calao Systems + TNY-A9G20-LPW. + + A number of packages have been fixed to use the + _CONFIG_SCRIPTS mechanism to get their -config shell + script installed and modified properly. Licensing informations + has been added to a number of packages. + + Use XZ tarballs for a number of packages. + + Noticeable package changes/additions: + - The glib2/libgtk2/webkit stack has been updated to recent + versions. + - Support for Gstreamer 1.x has been added. + - OpenGL support for TI OMAP platforms has been added. + - OpenGL support for Allwinner platforms has been added. + - OpenMAX support for RasberryPi has been added. + + Updated/fixed packages: acl, attr, autoconf, avahi, barebox, + bind, binutils, busybox, bwm-ng, bzip2, cifs-utils, colletctd, + cpanminus, cups, curl, dash, dbus, dhcp, directfb, + directfb-examples, dnsmasq, dosfstools, dropbear, dtc, + e2fsprogs, ed, efl, enlightenment, erlang, ethtool, fbgrab, + fftw, firmware-imx, flot, fltk, freetype, gawk, gdk-pixbuf, + gettext, gmp, gnutls, gsl, gutenprint, gvfs, gzip, haserl, + hiawatha, httping, icu, imagemagick, imlib2, imx-lib, + intltool, iozone, ipset, iptables, jquery, jquery-keyboard, + jquery-sparkline, kmod, less, libart, libcdaudio, libcgicc, + libesmtp, libftdi, libfuse, libglib2, libgtk, libgtk2, libidn, + libiqrf, liblog4c-localtime, libnspr, libnss, libpcap, + libroxml, libserial, libsigsev, libsoup, libtool, libtpl, + libvncserver, libxml2, linphone, lm_sensors, logrotate, + ltrace, lttng, luafilesystem, luajit, minicom, monit, mpg123, + mtd, mutt, mxml, neard, netatask, netsnmp, nettle, + network-manager, nodejs, nss-mdns, openssh, openswan, openvpn, + opkg, opus, pcre, perl-cross, php, pixman, poco, polarssl, + pulseaudio, pv, python, python3, qt, qt5, qt5declarative, + qt5jsbackend, qt5quick1, readline, rpi-firmware, ruby, samba, + sane-backends, sconeserver, sdl_image, sdparm, ser2net, + socketcand, sqlite, squid, strace, tcl, tcpdump, tinyhttpd, + tvheadend, tzdata, uboot, udpcast, usb_modeswitch, + usb_modeswitch_data, usbutils, webkit, wireshark, wvstreams, + xapp_luit, xapp_xmodmap, xenomai, xfsprogs, xlib_libX11, zic, + zlib. + + New packages: a10disp, aespipe, am33x-cm3, cppcms, dhcpcd, + dropwatch, dtc, ecryptfs-utils, eglibc, elf2flt, fdk-aac, + gcc-final, gcc-initial, gcc-intermediate, git, + gpu-viv-bin-mx6q, gst1-plugins-bad, gst1-plugins-base, + gst1-plugins-good, gst1-plugins-ugly, gst-omx, + gst-plugin-x170, gstreamer1, jimtcl, lbase64, libassuan, + libbsd, libcec, libdvbsi, libedit, libgpgme, libqmi, + libqrencode, libsvg, libsvg-cairo, libunwind, libvpx, + linux-headers, lockdev, luabitop, luacrypto, lua-ev, + luaexpatutils, msgpack, ocrad, on2-8170-libs, + on2-8170-modules, p11-kit, pax-utils, ptpd, ptpd2, + python-pyro, ramspeed/smp, snappy, strongswan, sunxi-boards, + sunxi-cedarx, sunxi-mali, sunxi-tools, ti-gfx, tinymembench, + tree, tstools, uclibc, w_scan. + + Issues resolved (http://bugs.uclibc.org): + + #4718: python (built for powerpc) distutils has paths to host + compiler toolchain + #5516: appended device tree blobs on uImage fails + #6302: Versions of packages retrieved from github.com are wrong + #6308: dosfstools download link is wrong + #6326: Dropbear: Add options to allow better config for + different target devices (e.g. routers) + #6338: Wrong download link for minicom package + #6344: Wrong handling of license text files with same name and + different directory + #6374: gnutls package broken if linux cryptodev module + selected + #6410: omap3_beagle has uimage error load address error + +2013.05, Released May 31th, 2013: + + Minor fixes. + + External toolchain wrapper fix for if host/usr/bin is placed + in the patch. + + Updated/fixed packages: acpid, at91bootstrap, czmq, elf2flt, + flex, jamvm, kmod, libplayer, libtirpc, libv4, + lttng-babeltrace, opengl, qt5jsbackend, udpcast, wvstreams + + Issues resolved (http://bugs.uclibc.org): + + #4868: Buildroot compile failure for toolchain/gdb-7.4/intl/reloc... + #4988: flex and m4 problems + #5912: obsolete CVS files + +2013.05-rc3, Released May 25th, 2013: + + Minor fixes. + + Updated/fixed packages: aircrack-ng, bellagio, boost, crda, + dvb-apps, flot, libatomic_ops, libeXosip2, libosip2, libxml2, + mongrel2, poco, portaudio, pptp-linux, tvheadend, urg, weston, + wireshark + +2013.05-rc2, Released May 15th, 2013: + + Fixes all over the tree. + + Default number of parallel jobs is now number of CPUs + 1. + + Defconfigs: Add Telit EVK-PRO3, AT91SAM9260-EK Nand flash. + + Updated/fixed packages: aircrack-ng, busybox, cairo, + classpath, curlftpfs, czmq, dbus, f2fs-tools, fan-ctrl, + filemq, gst-plugin-bad, gutenprint, hplip, json-c, + libatomic_ops, libcurl, libdrm, libglib2, libnspr, libnss, + libsha1, libsigsegv, libxcb, linknx, linux-pam, lttng-modules, + lttng-tools, matchbox-lib, mcookie, mesa3d, neon, pixman, + pulseaudio, python-nfc, qt5imageformats, quota, openssl, + sconeserver, strace, sylpheed, wvstreams, + xapp_{appres,bdftopcf,beforelight,bitmap,edires,fonttosfnt}, + xapp_{fslsfonts,fstobdf,iceauth,ico,listres,luit,mkfontdir}, + xapp_{mkfontscale,oclock,rgb,rstart,scripts,sessreg,setxkbmap}, + xapp_{showfont,smproxy,twm,viewres,x11perf,xauth,xbacklight}, + xapp_x{biff,calc,clipboard,clock,cmsdb,cursorgen,dbedizzy,ditview}, + xapp_x{dm,dpyinfo,driinfo,edit,ev,eyes,f86dga,fd,fontsel,fs,fsinfo}, + xapp_x{gamma,gc,host,input-calibrator,input,kbcomp,kbevd,kbprint}, + xapp_x{kbutils,kill,load,logo,lsatoms,lsclients,lsfonts,mag,man}, + xapp_x{message,mh,modmap,more,pr,prop,randr,rdb,refresh,set,setmode}, + xapp_x{setpointer,setroot,sm,stdcmap,vidtune,vinfo,wd,wininfo,wud}, + xcb-util, xcursor-transparent-theme, xdata_xbitmaps, + xdata_xcursor-themes, + xdriver_xf86-input-{evdev,joystick,keyboard,mouse,synaptics}, + xdriver_xf86-input-{tslib,vmmouse,void}, + xdriver_xf86-video-{ark,ast,ati,cirrus,dummy,fbdev,geode,glide}, + xdriver_xf86-video-{glint,i128,intel,mach64,mga,neomagic,newport}, + xdriver_xf86-video-{nv,openchrome,r128,savage,siliconmotion,sis}, + xdriver_xf86-video-{tdfx,tga,trident,v4l,vesa,vmware,voodoo,wsfb}, + xfont_encodings, xfont_font-adobe-{100,75}dpi, + xfont_font-utopia-{100dpi,75dpi,type1}, + xfont_font-{alias,arabic-misc,bh-100dpi,bh-75dpi}, + xfont_font-bh-lucidatypewriter-{100,75}dpi, xfont_font-bh-{ttf,type1}, + xfont_font-bitstream-{100dpi,75dpi,type1}, xfont_font-cronyx-cyrillic, + xfont_font-{cursor,daewoo,dec,isas,jis,micro}-misc, + xfont_font-ibm-type1, xfont_font-misc-{cyrillic,ethiopic,meltho,misc}, + xfont_font-{mutt,schumacher}-misc, + xfont_font-{screen-cyrillic,sony-misc,sun-misc,util}, + xfont_font-winitzki-cyrillic, xfont_font-xfree86-type1, + xlib_lib{FS,ICE,SM,X11,XScrnSaver,Xau,Xaw,Xcomposite,Xcursor}, + xlib_libX{damage,dmcp,ext,fixes,font,ft,i,inerama,mu,pm,randr}, + xlib_libX{render,res,t,tst,v,vMC,xf86dga,xf86vm}, + xlib_lib{dmx,fontenc,pciaccess,pthread-stubs,xkbfile}, xlib_xtrans, + xproto_{applewm,bigreqs,composite,damage,dmx,dri2,fixes}proto, + xproto_{fontcache,font,gl,input,kb,randr,record,render}proto, + xproto_{resource,scrnsaver,video,windowswm,xcmisc,xext}proto, + xproto_{xf86bigfont,xf86dga,xf86dri,xf86vidmode,xinerama,x}proto, + xserver_xorg-server, xutil_{makedepend,util-macros} + + Readded Packages: xapp_xinit + + Issues resolved (http://bugs.uclibc.org): + + #5054: amd64: cannot find init - due to missing /lib64 folder + +2013.05-rc1, Released May 8th, 2013: + + Architectures: ARC support, Blackfin support, FLAT binary + format, ARM: Drop old CPU variants, add fa526/626, Marvell PJ4 + + Toolchains: Add new Microblaze external toolchains, Linaro + ARM/Aarch64 updates, GCC 4.6.4 / 4.7.3 / 4.8.0 added to + internal toolchain, default to GCC 4.7.x. Internal + Crosstool-ng backend deprecated. + + Defconfigs: Add Atmel at91sam9g45m10ek, freescale mpc8315erdb + & p1010rdb, Armadeus apf27 / apf28, Openblocks A6, Raspberry + pi, gnublin board. + + FS: LZO and XZ compression methods, extra ubifs options, + ext2 rev 0/1 and ext3/4 support. + + Patch handling: apply-patches now has .patch.xz support, + Patch logic reworked as discussed during Febrary dev days: + http://elinux.org/Buildroot:DeveloperDaysFOSDEM2013 + + -rsync now excludes version control files. + + linux: uImage load address for ARM multiplatform kernels + + Infrastructure for multiple OpenGL / ES / EGL / OpenVG + providers, similar to how libjpeg / libjpeg-turbo is handled. + + Infrastructure for packages to add system users. + + kconfig: updated to 3.9-rc2, support make olddefconfig + + Updated/fixed packages: alsa-lib, alsa-utils, apr, apr-util, + argp-standalone, at, at91bootstrap, audiofile, aumix, avahi, + bash, blackbox, bind, binutils, bison, boost, bridge-utils, + busybox, ccache, cifs-utils, cmake, collectd, connman, + conntrack-tools, cpanminus, crosstool-ng, diffutils, directfb, + directfb-examples, divine, dmalloc, dnsmasq, dosfstools, + dropbear, e2fsprogs, ebtables, eeprog, erlang, ethtool, + fb-test-app, fbset, feh, ffmpeg, file, flex, flot, foomatic, + fxload, gd, gdb, gdisk, genimage, gettext, gmp, gnuchess, + gnutls, gob2, gperf, gpsd, gstreamer, haserl, hiawatha, htop, + httping, icu, inotify-tools, intltool, iproute2, ipset, + iptables, iw, jpeg, jquery, jquery-{sparkline,validation}, + json-c, kbd, kexec, kismet, kmod, lcdproc, libarchive, + libatasmart, libcap, libconfig, libconfuse, libcurl, libdrm, + libeet, libev, libevas, libeXosip2, libffi, libfribi, libfuse, + libgcrypt, libglib2, libgtk2, libid3tag, libmicrohttpd, + libnetfilter_acct, libnetfilter_conntrack, libnl, libpcap, + libplayer, libsigc, libv4l, libxcb, linenoise, linux-pam, + lm_sensors, ltp-testsuite, luajit, lzop, madplay, make, mdadm, + mediastreamer, memtester, mesa3d, + mobile-broadband-provider-info, monit, mpd, mpfr, mpg123, + mrouted, msmtp, nbd, ncurses, ndisc6, neard, neardal, neon, + netperf, netsnmp, nettle, nfacct, ntfs-3g, ofono, olsr, + omap-u-boot-utils, openssh, openssl, openswan, openvpn, + oprofile, orc, patch, pciutils, pcre, perl, php, poco, + polarssl, proftpd, psmisc, pulseaudio, python, + python-{bottle,netifaces,serial,setuptools}, qt, quagga, + quota, radvd, rpi-firmware, rpi-userland, rt-tests, sam-ba, + samba, sawman, sdl, ser2net, smartmontools, socat, socketcand, + speex, squid, stress, stunnel, sudo, syslinux, sysstat, + sysvinit, tcl, tcprelay, tinyhttpd, tslib, tvheadend, + uboot-tools, udev, ulogd, util-linux, vala, vtun, webkit, + xapp_{iceauth,luit,makefontscale,sessreg,setxkbmap,smproxy}, + xapp_{xauth,xcmsdb,xdpyinfo,xev,xgamma,xhost,xinput,xkbcomp}, + xapp_{xkbevd,xlsatoms,xlsclients,xmodmap,xpr,xprop,xrandr,xrdb}, + xapp_{xset,xwd,xwininfo}, xcb-{proto,util}, + xdriver_xf86-input-{evdev,joystick,keyboard,mouse,synptics}, + xdriver_xf86-input-{tslib,vmmouse,void}, + xdriver_xf86-video-{ark,ast,ati,cirrus,dummy,geode,glide,glint}, + xdriver_xf86-video-{i128,intel,mach64,mga,neomagic,newport}, + xdriver_xf86-video-{openchrome,r128,savage,siliconmotion,sis}, + xdriver_xf86-video-{tdfx,trident,vesa,vmware,wsfb}, xenomai, + xfont, xinetd, xkeyboard-config, xlib_lib{FS,ICE,SM,X11}, + xlib_libX{scrnSaver,au,aw,cursor,dmcp,ext,fixes,font,ft,i}, + xlib_libX{inerama,mu,pm,randr,res,tst,v,vMC,xf86dga,xf86vm}, + xlib_lib{dmx,fontenc,pciaccess,xkbfile}, xlib_xtrans, + xproto_{applevm,bigreqs,dri2,fonts,gl,input,kbd,record}proto, + xproto_{resource,scrnsaver,xcmisc,xext,x}proto, + xserver_xorg-server, xutil_makedepend, xz, zeromq + + New packages: aircrack-ng, bcusdk, chrony, crda, + cryptodev-linux, cppzmq, czmq, dtach, enscript, exfat, + exfat-utils, f2fs-tools, fan-ctrl, filemq, foomatic-filters, + genimage, genpart, glibmm, gnuplot, gtest, gutenprint, hplip, + iozone, jansson, jhead, jquery-keyboard, jquery-ui, + jquery-ui-themes, json-glib, json-javascript, lcms2, libpfm4, + libpthsem, libserial, libsigsegv, libtasn1, libwebsockets, + libxkbcommon, libxml++, linknx, log4cxx, mongoose, mongrel2, + mtools, ne10, nmap, nodejs, openobex, openpgm, poppler, + protobuf-c, python-m2crypto, python-thrift, qjson, qt5base, + qt5declarative, qt5graphicaleffects, qt5imageformats, + qt5jsbackend, qt5multimedia, qt5quick1, qt5script, qt5svg, + qt5webkit qt5xmlpatterns, rapidjson, redis, swig, texinfo, + tzdata, urg, ussp-push, wayland, webp, weston, wireless-regdb, + wireshark, wvdial, wvstreams, xcb-util-image, xcb-util-wm, + xcursor-transparent-theme, zic, zmqpp, zyre + + Removed packages: microperl, ocf-linux, xapp_xinit, + xapp_xplsprinters, xapp_xprehashprinterlist, + xfont_font-bitstream-speedo, + xlib_lib{Xfontcache,XprintAppUtil,XprintUtil,Xp,oldX,xkbui}, + xproto_{print,xf86rush}proto + + Deprecated packages: vala + + Issues resolved (http://bugs.uclibc.org): + + #1291: Add support for Faraday 526 arm processor (fa526) + #2683: cups does not install correctly to target + #3313: mesa3d fails to build + #5186: initramfs/cpio should support lzo compression + #5636: agetty - cannot get controlling tty error - need updated... + #5906: collectd client headers not exported + #5966: bison unnecessarily required as build dependency + #6140: --enable-fileinfo not applied for php package + #6164: openvpn usage of ip tool from Busybox + +2013.02, Released February 28th, 2013: + + Misc manual updates. + + Updated/fixed packages: busybox, collectd, flashbench, + libgtk2, libupnp, mii-diag, quota + +2013.02-rc3, Released February 26th, 2013 + + Minor fixes. + + Updated/fixed packages: conntrack-tools, dialog, + enlightenment, haserl, keyutils, libfif, libmad, + linux-firmware, linux-fusion, matchbox-desktop, matchbox-wm, + ruby, spawn-fcgi, vtun + + Issues resolved (http://bugs.uclibc.org): + + #5960: fusion.ko driver does not install to target rootfs + +2013.02-rc2, Released February 19th, 2013 + + Fixes all over the tree. + + Various manual updates and fixes. + + Updated/fixed packages: busybox, collectd, gesftpserver, + glib-networking, gnutls, inotify-tools, libcurl, libffi, + libglib2, libtorrent, libvorbis, neard, network-manager, + ntfs-3g, openssl, qt, rpi-userland, rtorrent, thttpd, vim. + + Issues resolved (http://bugs.uclibc.org): + + #5906: collectd client headers not exported + +2013.02-rc1, Released February 10th, 2013 + + Toolchain: Crosstool-ng 1.17.0, default to GCC 4.6.3, target + libraries install fixed. Add Linaro ARM + 2012.11/2012.12/2013.01, AArch64 12.11/12.12/13.01. Sourcery + CodeBench MIPS 2012.03/09. Infrastructure to warn about + missing 32bit support for binary toolchains. Toolchain wrapper + is now relocatable. Add GDB 7.5.1 / Remove 6.8 / 7.0 / + 7.1. Deprecate uClibc 0.9.31. + + Architecture: Xtensa fixes, add missing powerpc variants, arm + 1136jf-s rev1, add A5/A15, neon support toggle, OABI + deprecated. Sparc: drop old unused variants + + Bootloaders: At91bootstap: fix upstream URL, Barebox: add + 2012.12/2013.01/2013.02, remove 2012.08/09/10, lzop fixes, + environment image support, U-Boot: add 2013.01.01 + + Linux: fix appended dtb handling for v3.8+ kernels, support + multiple device trees + + Defconfigs: calao USB-A9260, snowball, QEMU PPC440 on ML507 + board, QEMU ARM Exynos4210, Kernel version in QEMU defconfigs + updated, at91rm9200df: misc fixes. Lock kernel headers to + match kernel. + + Infrastructure: Git download fixes. Toolchain make target + renamed from 'cross' to 'toolchain'. Eclipse integration + support. Option to set root password, post image scripts, + config scripts handling. + + Updated/fixed packages: alsa-lib, argp-standalone, argus, + arptables, atk, audiofile, axel, beecrypt, bind, bison, + bluez_utils, boost, cairo, can-utils, bmon, boa, busybox, + cairo, ccache, cdrkit, cifs-utils, cjson, cmake, collectd, + connman, coreutils, cpanminus, cups, dbus, dhcp, dialog, + diffutils, directfb, distcc, divine, dnsmasq, docker, + dosfstools, dstat, e2fsprogs, ebtables, ed, empty, ethtool, + expedite, fbset, fbv, ffmpeg, flex, fltk, fluxbox, freetype, + gadget-test, gawk, gdb, genext2fs, gettext, giblib, + glib-networking, gmp, gmpc, gnupg, gnutls, gpsd, + gst-plugins-{bad,base,good}, gstreamer, gzip, haserl, hdparm, + heirloom-mailx, hiawanta, hostapd, icu, imagemagick, imlib2, + inadyn, infozip, iproute2, ipset, iptables, iw, jpeg, jquery, + jquery-sparklines, jqeury-validation, kismet, kmod, lame, + libao, libcap, libcurl, libdvdnav, libdvdread, libecore, + libedbus, libedje, libeet, libefreet, libeina, libeio, + liberation, libelementary, libembryo, libethumb, libev, + libevas, libffi, libfribidi, libfuse, libgcrypt, libglib2, + libgpg-error, libgtk2, libhid, libidn, libmicrohttpd, libmpd, + libnl, libnspr, libnss, libogg, libpcap, libplayer, libpng, + libroxml, librsvg, libseccomp, libsigc, libsndfile, libungif, + libupnp, liburcu, libusb-compat, libvncserver, libvorbis, + libxml2, libxslt, lighttpd, links, linux-firmware, + linux-fusion, ltp-testsuite, ltrace, + lttng-{babel,libust,modules,tools}, lvm2, lua, luajit, lzop, + matchbox-{desktop,lib}, mdadm, metacity, midori, minicom, mpd, + mpfr, mplayer, mtd, mysql_client, ncurses, neon, netatalk, + networkmanager, nspr, ntfs-3g, nuttcp, ofone, olsr, openssl, + openvpn, opkg, oprofile, opus, opus-tools, orc, ortp, pango, + pciutils, pcmanfm, pcre, pcsc-lite, perl, php, pixman, + pkgconf, polarssl, pptp-linux, proxychains, pulseaudio, + python, python3, qemu, qextserialport, qt, quagga, radvd, + readline, rng-tools, rt-tests, rubix, ruby, sam-ba, samba, + sane-backends, sconeserver, scons, screen, sdl, sdl_gfx, + sdl_mixer, sdl_ttf, sdparm, sed, ser2net, smartmontools, + speex, sqlite, squid, sshfs, strace, sudo, sylpheed, tn5250, + taglib, tar, torsmo, transmission, tslib, uboot-tools, ulogd, + usb_modeswitch, util-linux, valgrind, vim, vsftpd, wavpack, + webkit, wipe, wireless_tools, wpa_supplicant, xapp_xinit, + xapp_xinput-calibrator, xapp_xman, xapp_xmh, xlib_libX11, + xlib_libXdmcp, xlib_libXft, xlib_libpthread-stubs, + xlib_xtrans, xproto_xcmiscproto, xproto_xextproto, + xserver_xorg-server, xstroke, xvkbd, xz + + New packages: b43-firmware, b43-fwcutter, bustle, + cache-calibrator, cegui06, celt051, classpath, curlftpfs, + dvb-apps, dvbsnoop, elfutils, enlightenment, firmware-imx, + flashbench, gd, gesftpserver, gst-fsl-plugins, httping, iftop, + imx-lib, jamvm, jpeg-turbo, keyutils, libatasmart, libcofi, + libebml, libevas-generic-loaders, libfslcodec, libfslparser, + libfslvpuwrap, libgsasl, libiscsi, libmatroska, libmcrypt, + libmhash, libqwt, libseccomp, libsha1, linenoise, mcrypt, + media-ctl, ncdu, neard, neardal, nettle, perf, polkit, + proxychains, python-bottle, python-pyparsing, rpi-firmware, + rpi-userland, sg3_utils, slirp, snowball-hdmiservice, spice, + spice-protocol, tcllib, tvheadend, udisks, usbredir + ux500-firmware, vde2, xcb-utils-keysyms, yavta, + zd1211-firmware + + Removed packages: customize, xdriver_xf86-input-{acecad,aiptek}, + xdriver_xf86-video-{apm,chips,i740,rendition,s3,s3virge,sisusb}, + xdriver_xf86-video-sun{cg14,cg3,cg6,ffb,leo,tcx}, + xdriver_xf86-video-{tsend,xgi,xgixp} + + Deprecated packages: xstroke + + Issues resolved (http://bugs.uclibc.org): + + #4237: building shared openssl w/-Os fails due to gcc bug + #5690: python3 does not obey to BR2_PACKAGE_PYTHON3_PYC_ONLY=y + #5602: python3 should install a "python" symbolic link + #5846: Extra slash added to last slash in URL + +2012.11.1, Released January 3rd, 2013: + + Toolchain: Fixed non-largefile builds on recent Ubuntu + versions. + + Arch: fix missing x86/generic handling, Build for Xtensa with + longcalls option. + + Updated/fixed packages: dosfstools, qt + +2012.11, Released December 2nd, 2012: + + Git shallow clone fix for older git version. + + Updated/fixed packages: ctuio, libtool + + Issues resolved (http://bugs.uclibc.org): + + #5726: List all the available hook points + +2012.11-rc2, Released November 30th, 2012: + + Minor fixes around the tree. + + Various manual updates and fixes. + + Add checks for legacy features. + + Updated/fixed packages: acpid, alsa-lib, arptables, binutils, + busybox, ccache, cjson, cramfs, directfb, flex, fluxbox, gdb, + hiawatha, igh-ethercat, imagemagick, imlib2, lcdproc, + libdaemon, libecore, libhid, libmad, libpcap, libsigc, libusb, + linux-fusion, matchbox, ocf-linux, owl-linux, python, rrdtool, + scons, strace, sylpheed + + Issues resolved (http://bugs.uclibc.org): + + #5732: Error : package/alsa-lib/alsa-lib.mk + +2012.11-rc1, Released November 17th, 2012 + + Fixes all over the tree and new features. + + Defconfigs: use u-boot 2012.10 on at91 and beaglebone, + sheevaplug + qemu: bump kernel version, add qemu-mips64-malta + + nitrogen6x defconfigs. + + Bootloaders: add u-boot 2012.07/10, ais target format, add + barebox 2012.08/09/10/11, linker overlap issue fix for + at91bootstrap, mxs-bootlets updated for new Barebox versions. + + Toolchains: binutils 2.23.1, gcc 4.7.2, default to gcc 4.6.x, + Codebench arm/sh/x86 2012.03/09, Linaro 2012.08/09/10. + Libtirpc support for modern glibc variants. Toolchain on + target has been deprecated. + + Initial Aarch64 support, Xtensa support re-added. + + Infrastructure: Use shallow git clone when possible, use + tarballs rather than git URLs for github. Moved to pkgconf + rather than pkg-config. System directory added, default + skeleton/device tables moved. More than 1 post-build script + can now be used. output/target now contains a + THIS_IS_NOT_YOUR_ROOT_FILESYSTEM warning, to help people + understand how to (not) use it. + + Manual has been reworked and extended. + + Legal-info: Lots of package annotations, CSV file fixes, + _LICENSE / _REDISTRIBUTE splitup, per-package hooks. + + Updated/fixed packages: acpid, alsa-lib, alsa-utils, + alsamixergui, attr, autoconf, automake, bash, bind, binutils, + bison, blackbox, bluez-utils, busybox, cairo, can-utils, + cifs-utils, cjson, cmake, collectd, connman, conntrack-tools, + coreutils, cups, cvs, dbus, dhcp, directfb, dmalloc, dnsmasq, + dropbear, e2fsprogs, ethtool, fbdump, feh, fftw, file, + flashrom, fluxbox, gdb, gdisk, gdk-pixbuf, genext2fs, gettext, + gnutls, gpsd, gqview, grep, gsl, gst-plugins-{bad,good}, + hdparm, hiawatha, hostapd, input-tools, iproute2, ipset, + iptables, iw, json-c, kexec, kmod, lcdproc, leafpad, less, + libcurl, libdrm, libdvdnav, libdvdread, libffi, libfuse, + libglib2, libhid, liblockfile, libmad, libmbus, libmnl, + libnetfilter_{acct,conntrack,cthelper,cttimeout,queue}, + libnfc, libnfc-llcp, libnfnetlink, libnl, libnspr, libnss, + libpcap, libplayer, libtool, libtorrent, liburcu, libv4l, + libxcb, libxml2, libxslt, links, linux-firmware, lm-sensors, + lmbench, lockfile-progs, logrotate, lshw, lsof, + lttng-babeltrace, lttng-tools, lua, luajit, mesa3d, microperl, + mii-diag, module-init-tools, mpc, mpd, mpg123, mplayer, + mtd-utils, mysql_client, nbd, ncurses, netatalk, netkitbase, + netkittelnet, netsnmp, newt, nfs-utils, openntpd, openssh, + openssl, opkg, patch, pciutils, pcre, php, poco, polarssl, + popt, portmap, pppd, procps, pulseaudio, python, python-nfc, + python-protobuf, qt, quota, rp-pppoe, rtorrent, sam-ba, samba, + scons, sdl_gfx, smartmontools, sqlite, squid, strace, sudo, + sylpheed, tcpdump, tremor, ttcp, tiff, unionfs, + usb_modeswitch, usbutils, util-linux, vala, valgrind, vpnc, + vsftpd, webkit, wget, which, wpa_supplicant, x11vnc, xapp_*, + xdriver_*, xenomai, xfont_*, xinetd, xl2tp, xlib_*, xlsclient, + xproto_*, xserver_xorg-server, xutil_util-macros, xz, zeromq + + New packages: arptables, at91bootstrap3, boot-wrapper-aarch64, + ccid, cpanminus, cpuload, erlang, evtest, fb-test-apps, + fxload, gdbm, gnupg, googlefontdirectory, grantlee, gsl, + lcdapi, liblo, liblog4c-localtime, libtirpc, linux-pam, + lua-msgpack-native, macchanger, mtdev, mtdev2tuio, nfacct, + opus, opus-tools, pcsc-lite, perl, pkgconf, python-meld3, + python3, qemu, qextserialport, qtuio, rpcbind, schifra, + sconeserver, supervisor, time, ulogd, usb_modeswitch_data, + yasm + + Deprecated packages: netkitbase, netkittelnet + + Issues resolved (http://bugs.uclibc.org): + + #807: [PATCH] samba - make iconv and smbd optional + #3049: binutils have a sysroot bug in ld + #5330: update vsftpd to 3.0.0 + #5486: libglib2 build fails on: libs/libglib-2.0.so: undefined... + #5666: Fails to build python 2.7.2 for 2440 arm + +2012.08, Release August 31th, 2012 + + Updated/fixed packages: microperl, cups, luajit, rrdtool, + prboom, oprofile. + + Added license information for: sqlite. + + Changed the source URLs of all packages located on Sourceforge + in order to use the automatic mirror selection URL + downloads.sourceforge.net, and get rid of the + BR2_SOURCEFORGE_MIRROR option. + +2012.08-rc3, Released August 25th, 2012 + + Updated/fixed packages: libglib2, netsnmp, freetype, libfuse, + libpng, x11vnc, zlib, gpsd, ifplugd, bash, distcc. + + Added license informations for: barebox, grub, syslinux, + uboot, xloader, yajl, zlib, zxing, alsa-lib, alsa-utils, + faad2, nano, fbdump, rsync, librsync, fontconfig, + inotify-tools, + +2012.08-rc2, Released August 15th, 2012 + + Updated/fixed packages: imagemagick, sudo, crosstool-ng. + + Added license informations for: mxml, nanocom, empty, expat, + lua, lucjson, xinetd, cjson, luaexpat, lmbench, bwm-ng, + input-event-daemon, luajit, cgilua, copas, coxpcall, + luafilesystem, luasocket, rings, wsapi, xavante, libtpl, + avahi, busybox, libfcgi, ifplugd, libcgicc, libcurl, + libdaemon, libdnet, libgpg-error, libpcap, libpng, lighttpd, + mtd, openssl, psmisc, socat, spawn-fcgi. + + Fixes to Microblaze external toolchains + configuration. Improvements of the pkg-stats + script. Out-of-tree fix for the graph-depends script. + + Kernel headers version bump. + +2012.08-rc1, Released August 1st, 2012 + + Fixes all over the tree and new features. + + Integration of a legal information reporting infrastructure, + which allows to generate detailed informations about the + licenses and source code of all components of a system + generated by Buildroot. License information will progressively + be added on packages. + + Default configuration files added for Calao-systems USB-A9263 + and Calao-systems USB-A9G20-LPW. + + External toolchains update: allow download of a custom + toolchain, add Linaro 2012.05 and 2012.06 for ARM, add + Blackfin toolchain 2012R1-BETA1, add Sourcery CodeBench MIPS + 2011.09. + + Allow the restriction of downloads to the primary site only. + This is useful for project developers who want to ensure that + the project can be built even if the upstream tarball + locations disappear. + + Add a 'System configuration' choice to select between 3 + different init systems: Busybox init, SysV init and Systemd + init. + + Cleanups to the package infrastructure. The visible change to + developers is that $(eval $(call AUTOTARGETS)) is now $(eval + $(autotools-package)), and similarly for other package + infrastructures and host packages. Refer to the documentation + for details. + + By default, automatic detection of the number of compilation + jobs to use, depending on the number of CPUs available. + + Improvements to generate systems with static libraries only + (infrastructure and package fixes). + + Add proper support in the Linux kernel package to generate + Device Tree Blobs or combined Device Tree / Kernel + images. This will be useful on Microblaze, PowerPC and ARM, + which are architectures making extensive use of the Device + Tree. + + Updated/fixed packages: audiofile, autoconf, automake, axel, + barebox, bash, beecrypt, berkeleydb, bind, bison, bluez_utils, + bonnie, boost, busybox, bsdiff, bwm-ng, bzip2, cifs-utils, + cgilua, cmake, connman, conntrack-tools, crosstool-ng, cups, + dbus, dhcp, dnsmasq, e2fsprogs, eeprog, ethtool, faad2, fbv, + ffmpeg, freetype, gmp, gnutls, gob2, gpsd, grep, + gst-plugins-base, gst-plugins-good, gzip, hiawatha, hostapd, + htop, icu, igh-ethercat, imagemagick, input-tools, iostat, + iproute2, ipset, iptables, iw, kmod, less, libcap, libgci, + libconfig, libcurl, libelf, libevas, libeXosip2, libexif, + libfuse, libidn, libmad, libmbus, libmnl, + libnetfilter-conntrack, libnl, libnspr, libnss, libogg, + libosip2, libpcap, libpng, libroxml, liburcu, libusb, libxml2, + libxslt, lighttpd, linux, ltrace, lttng-libust, lttng-modules, + lttng-tools, lua, m4, memtester, midori, mii-diag, + module-init-tools, mpfr, mpg123, mrouted, msmtp, mtd, mxml, + mysql_client, nasm, nbd, ncurses, nfs-utils, opencv, openocd, + openssl, pciutils, php, polarssl, portaudio, pppd, + pthread-stubs, pulseaudio, qt, quagga, quota, radvd, rpm, + rrdtool, samba, sam-ba, scons, sdl_gfx, sdl_sound, speex, + sqlite, squashfs, squid, sudo, synergy, syslinux, systemd, + tar, tcpdump, tcpreplay, udev, usbutils, valgrind, wget, + wpa_supplicant, wsapi, xavante, xserver_xorg-server, zlib + + New packages: cjson, collectd, dfu-util, dmidecode, elftosb, + fbterm, flashrom, freerdp, inadyn, libfreefare, + libnetfilter_cttimeout, libnfc, libnfc-llcp, liboping, + libtorrent, linphone, logsurfer, lshw, luacjson, luaexpat, + luajit, mediastreamer, mobile-broadband-provider-info, monit, + mxs-bootlets, nanocom, nss-mdns, ofone, omap-u-boot-utils, + opkg, ortp, owl-linux, python-id3, python-nfc, quota, + ramspeed, rtorrent, sound-theme-borealis, + sound-theme-freedesktop, sysprof, webrtc-audio-processing, + xinetd, zxing + + Issues resolved (http://bugs.uclibc.org): + + #1315: Allow use of older external toolchains without sysroot + support [won't fix] + #5276: Hiawatha needs to manage IPV6 if so [fixed] + #5360: buildroot fails when building "host-libglib2 2.30.2 + Building" [won't fix, upstream problem] + #5384: Can't build packages relying on gets on newer glibc + [fixed] + +2012.05, Released May 30th, 2012: + + Updated/fixed packages: busybox, netsnmp, pptp-linux + +2012.05-rc3, Released May 25th, 2012: + + Minor fixes around the tree. + + Infra: Fix for DOWNLOAD macro when using primary mirrors with + scp targets. + + Toolchain: Kernel headers 3.2.18 / 3.3.7. + + Updated/fixed packages: binutils, bison, busybox, cifs-utils, + gnuchess, gpsd, iperf, libmpeg2, mtd, ntfs-3g, oprofile, + xserver-xorg + +2012.05-rc2, Released May 18th, 2012: + + Fixes all over the tree. + + Toolchain: uClibc: Use 0.9.33.2, Crosstool-ng: fix gperf + dependency, disable decimal floats support, Linux 3.2.17 / + 3.3.6 kernel headers. Fix sysroot copy handling for toolchains + without C++ support. + + Updated/fixed packages: apr, apr-util, ccache, dnsmasq, + heirloom-mailx, gdb, ndisc6, opencv, openssl, socat, vala + +2012.05-rc1, Released May 10th, 2012: + + Fixes all over the tree and new features. + + Use /etc/os-release for version info rather than + /etc/br-version. + + CMake toolchain file moved to $HOST_DIR/usr/share/buildroot. + + Apply-patches.sh: cleanups, archived patches handling fixes, + support series files. + + Defconfigs: beaglebone, mx53qsb, pandaboard, qemu configs for + arm-vexpress/microblaze/ppc-mpc88544ds, use 3.2.x for + atngw100, use 3.3.x for qemu configs. + + Menu structure: Libraries moved out of multimedia section + + Atom processor support. Prescott fix, blackfin ABI fix, + Microblaze architecture support (using ext toolchain). Cleanup + architecture names, deprecate Xtensa support. + + Toolchain: Add GCC 4.4.7, 4.6.3, 4.7.0. uClibc 0.9.33.1, + default to uClibc 0.9.33.x, enable + UCLIBC_SUPPORT_AI_ADDRCONFIG by default, static and 64bit + fixes for external toolchains, linaro ext toolchains, new + sourcery codebench ext toolchains, GDB 7.4.1, crosstool-ng + 1.15.2. + + Bootloaders: U-Boot: add 2012.04.01, SPL and u-boot.img + support. Barebox: add 2012.04, remove 2011.12. + + Updated/fixed packages: alsa-lib, alsa-utils, at, atk, avahi, + barebox, berkeleydb, bind, bluez_utils, boost, busybox, + can-utils, ccache, cifs-utils, coreutils, cups, dbus, dhcp, + directfb, dnsmasq, doom-wad, dosfstools, e2fsprogs, expat, + fakeroot, feh, ffmpeg, file, fis, freetype, gamin, gawk, + gdk-pixbuf, gettext, giblib, glib-networking, gmp, gnutls, + gpsd, grep, gstreamer, gst-plugins-{bad,base,good,ugly}, + haserl, hdparm, imagemagick, iproute2, iptable, iw, kexec, + kmod, lame, libaio, libarchive, libatomic_ops, libconfig, + libcurl, libdvdnav, libdvdread, libedbus, libethumb, libffi, + libfuse, libglib2, libgtk2, libhid, libmad, libmbus, libmpeg2, + libnl, libplayer, libpng, libsigc, libsoup, libupnp, liburcu, + libusb, libusb-compat, libxml2, libxml-parser-perl, libxslt, + lighttpd, linux-firmware, linux-fusion, lite, lsof, ltrace, + lttng-libust, lua, m4, makedevs, microperl, mpd, mpfr, mpg123, + mrouted, mtd, mysql_client, nbd, ncftp, ncurses, neon, + netsnmp, network-manager, nfs-utils, ngrep, ntfs-3g, openntpd, + openssh, openssl, parted, pango, pcre, php, pixman, poco, + psmisc, pulseaudio, python, qt, quagga, radvd, rpm, rsync, + ruby, samba, sam-ba, sane-backends, sawman, screen, sdl_net, + smartmontools, speex, sqlite, squashfs3, squid, sshfs, sudo, + syslinux, sysstat, taglib, tcpdump, tftp-hpa, transmission, + tiff, tinyhttpd, uboot-tools, udev, uemacs, unionfs, usbutils, + util-linux, vala, valgrind, vim, vsftpd, wget, wipe, + wpa_supplicant, xdriver_xf86-{input-vmmouse,video-fbdev}, + xfsprogs, zlib + + New packages: apr, apr-util, audiofile, bellagio, + conntrack-tools, empty, fmtools, glib-networking, + heirloom-mailx, hiawatha, latencytop, lcdproc, libcap-ng, + libdmtx, libfcgi, libnetfilter_conntrack, libnfnetlink, + libtpl, localedef, minicom, msmtp, ndisc6, netatalk, + ocf-linux, openswan, parted, polarssl, protobuf, read-edid, + socketcand, stress, systemd, ushare, zeromq + + Deprecated packages: ttcp + + Removed packages: ntfsprogs + + Issues resolved (http://bugs.uclibc.org): + + #2353: [lua] fix build with 2010.08-rc1 + #2503: Microperl fails build on MIPSel or with Fedora13.x86_64 + #2557: [PATCH] mkfs.xfs complains about missing libxfs.so.0 + #2881: Can't build project statically with external toolchain + #3751: MIPS: fix BR2_GCC_TARGET_ABI for MIPS n64 + #4808: ccache may build against wrong zlib + #4880: New package lcdproc + #4886: New package protobuf + #4892: build fails on ltp-testsuite-20101031/testcases/kernel/fs/... + #4898: * make: [target-finalize] Error 1 (ignored)* + #4985: Qt 4.7.4 build crashes with Linux 2.6.29 + #4970: udev 181 fails to build if kernel version 3.3 is selected + #5018: dialog broken: exits with assert in uClibc + #5102: qt package moc, uic, rcc read from wrong place + #5144: Patch to fix ixon bug in uemacs + #5198: Line graphics output is broken in GNU Screen + #5204: Missing terminfo file(s) for GNU screen terminal type + +2012.02, Released February 29th, 2012: + + Updated/fixed packages: libecore + +2012.02-rc3, Released February 27th, 2012: + + Fixes all over the tree. + + Automatic host dependencies handling for cmake packages + fixed. Customize package deprecated as using a post-build + script is nowadays the preferred way of adding extra stuff to + the rootfs. + + Linux-headers 3.0.x / 3.2.x stable version bumped. + + QEMU defconfigs updated to 3.2.x kernels and readme fixed. + + Updated/fixed packages: dropbear, ffmpeg, libpng + +2012.02-rc2, Released February 19th, 2012: + + Fixes all over the tree. + + Toolchain: uClibc: Added upstream post-0.9.33 fixes, Bump + linux-headers 3.0.x / 3.2.x stable versions. + + Documentation: Added makedev / _DEVICES / + _PERMISSIONS documentation. + + Updated/fixed packages: busybox, ffmpeg, gst-dsp, libecore, + libvncserver, mxml, python. + +2012.02-rc1, Released February 12th, 2012: + + Fixes all over the tree and new features. + + Toolchain: Default to GCC 4.5.x, add binutils 2.22. Java + support removed, Powerpc SPE ABI support. GDB ELF support fix, + GDB 7.4, crosstool-NG 1.13.4. + + Gentargets: scp and mercurial support. + Autotools: derive host dependencies from target by default. + Packages can now declare device table snippets. + + Host utilities menu with commonly used host tools. + + defconfigs: qemu configs for x86-64, mips and sparc, at91 + defconfigs now use modern U-Boot / mainline Linux, added + lpc3250 defconfigs. + + uClibc: remove 0.9.30, backport unshare() support, add + 0.9.32.1 / 0.9.33, use same config for ctng. + + Bootloaders: U-Boot: add 2011.12, remove 2010.xx versions, + Barebox: add 2012.01/02, remove 2011.10/11, LPC32xx + bootloaders added. + + Various manual updates. Release tarballs now contain generated + manual in text/html/pdf formats. + + Buildroot now calls the stop function of scripts in + /etc/init.d at shutdown. + + Updated/fixed packages: atk, avahi, barebox, bash, beecrypt, + bind, binutils, bison, bluez_utils, bzip2, busybox, cairo, + ccache, cdrkit, coreutils, cramfs, dbus, dbus-glib, dialog, + diffutils, dmalloc, dropbear, e2fsprogs, ebtables, ed, + ethtool, expat, ffmpeg, file, fis, flex, fluxbox, fontconfig, + freetype, gawk, grep, gst-dsp, gst-ffmpeg, gst-plugins-base, + hdparm, hostapd, htop, i2c-tools, icu, iproute2, ipsec-tools, + ipset, iptables, iw, jpeg, kismet, lame, libcap, libcgi, + libev, libeXosip2, libffi, libftdi, libgpg-error, libgtk2, + libidn, libmms, libmnl, libmodbus, libnl, libogg, libosip, + libpcap, libpng, libraw1394, libroxml, libusb, libusb-compat, + libv4l, libvorbis, libxcb, libxml-parser-perl, libxslt, + lighttpd, links, lm-sensors, lua, m4, module-init-tools, mpc, + mesa3d, mpd, mpfr, mplayer, mtd-utils, nano, nbd, ncurses, + netperf, netsnmp, ntp, opencv, openocd, openssl, openvpn, orc, + pciutils, pcre, pixman, pkg-config, poco, popt, proftpd, + python, python-serial, qt, ruby, samba, sdl, sdparm, + squashfs3, sshfs, sqlite, squid, sudo, syslinux, tcl, tcpdump, + ti-utils, tiff, tremor, uboot, uboot-tools, udev, usbmount, + util-linux, vala, valgrind, vsftpd, wpa_supplicant, + xapp_{bdftopcf,mkfontdir,mkfontscale,xkbcomp,xcursorgen,xinit}, + xapp_xinput, xapp_xman, xcb-util, xdm, xenomai, + xf86-video-sis, xfont_{encodings,font-util}, + xlib_lib{fontenc,X11,Xau,Xcursor,Xdmcp,Xfixes,Xfont,Xrender}, + xlib_libxkbfile, xterm, xutil_makedepend, yajl + + New packages: boost, connman, dstat, expedite, explorercanvas, + feh, flot, giblib, igh-ethercat, imlib2, jquery, + jquery-sparklines, jquery-validation, jsmin, kmod, libecore, + libedbus, libedje, libeet, libeina, libelementary, libesmtp, + libethumb, libevas, libical, libmbus, liboauth, liburcu, + libvncserver, linux-firmware, + lttng-{babeltrace,libust,modules,tools}, NetworkManager, + open2300, python-distutilscross, python-dpkt, + python-netifaces, python-pygame, python-setuptools, rt-tests, + sam-ba, sane-backends, sqlcipher, transmission, unionfs, + xf86-input-tslib, xinput-calibrator + + Issues resolved (http://bugs.uclibc.org): + + #743: Add Transmission bit torrent option to buildroot + #755: Add Boost libraries as a package + #2299: Add crypto support to libsoup + #2617: Pixman 0.19.2 & Cairo 1.10.0 + #3403: libgpg-error: bump to version 1.10 + #3409: libgpg-error: download from gnupg.org + #3421: nano: make tiny flag optional + #3691: New EFL packages + #4664: Cannot patch AT91Bootstrap + #4700: setlocalversion not working for combination svn/ubuntu 11.10... + #4760: Qt: add host-pkg-config to dependency-list + +2011.11, Released November 30th, 2011: + + Fixes all over the tree. + + Bump kernel headers / default Linux version to 3.1.4. + + Updated/fixed packages: ruby + +2011.11-rc3, Released November 26th, 2011: + + Fixes all over the tree. + + Toolchain: Fix gdb dependencies for external toolchains, + adjust uClibc patches so they don't confuse modern versions of + patch, bump crosstool-ng, kernel headers and linux versions. + + Updated/fixed packages: busybox, freetype, mplayer, opencv, + php, rsyslog, ruby, thttpd, xapp_xf86dga + + Issues resolved (http://bugs.uclibc.org): + + #4357: Prevent patch commands from accessing source control + #4369: Fix permissions on untared lsof archive + +2011.11-rc2, Released November 18th, 2011: + + Fixes all over the tree and new features. + + Updated asciidoc documentation + + Toolchain: Bumped 3.x stable kernel headers, use wget in + crosstool-ng as well, bump crosstool-ng version, gdb fixes, + uClibc sparc fix. + + Updated/fixed packages: distcc, file, gst-plugins-bad, libxcb, + mplayer, newt, qt, rpm, rrdtool, tar, tftpd + + Issues resolved (http://bugs.uclibc.org): + + #3355: mplayer fails to build + #4021: uClibc: undefined reference to `__GI___errno_location' + #4297: Qt's qmake uses wrong pkg-config + +2011.11-rc1, Released November 11th, 2011: + + Fixes all over the tree and new features. + + Moved misc scripts and support stuff to support/. Renamed + patch-kernel.sh to support/scripts/apply-patches.sh. + + Documentation: Moved to asciidoc format, make targets to + generate text/html/pdf/epub output added. + + Defconfigs: Qemu configs updated to 3.1 kernel and readmes + added. + + Bootloaders: Add support for custom git tree / tarballs for + barebox, similar to how it's handled for u-boot. Clean up + menuconfig options. + + Toolchain: Update external codesourcery toolchain download + URLs after Codesourcery got bought by Mentor, add x86 + toolchain, update toolchain versions and optimize toolchain + sysroot copying. Fix uClibc 0.9.32 builds for e500 PPC, + updated GDB versions / download URLs. Binutils + libbfd/libopcodes static/dynamic linking fix. GCC 4.6.2 added, + use ctng-1.13.0. + + Package infrastructure: Support for local packages / + overrides, package dir / name arguments dropped from + {GEN,AUTO,CMAKE}TARGETS. + + Linux: Kernel extensions infrastructure support, Xenomai + + RTAI support. + + Updated/fixed packages: acpid, bind, busybox, dash, dbus, + dbus-glib, directfb, dnsmasq, drystone, e2fsprogs, ethtool, + fakeroot, fbdump, file, freetype, fuse, gamin, gmp, gmpc, + gnutls, gob2, gst-plugins-{base,bad,good,ugly}, gstreamer, + hostapd, ifplugd, imagemagick, intltool, ipsec-tools, ipset, + iptables, iw, jpeg, kexec, leafpad, less, libargtable2, libao, + libconfuse, libcuefile, libcurl, libdaemon, libevent, + libglib2, libiconv, libmpd, libreplaygain, libroxml, + libsamplerate, libsndfile, libsoup, libsvgtiny, libtool, + libxcb, lighttpd, links, linux-fusion, lite, lrzsz, lsof, lzo, + lzop, makedevs, mcookie, mpg123, mpd, mpfr, mtd, musepack, + mutt, mysql_client, ncftp, ncurses, neon, netcat, netsnmp, + ntfs-3g, ntfsprogs, ntp, openntpd, openssh, openssl, oprofile, + orc, pciutils, psmisc, python, qt, quagga, radvd, rpm, rsync, + samba, sawman, sdl_sound, smartmontools, sqlite, squid, + stunnel, sudo, sylpheed, sysstat, taglib, tar, tcpreplay, + tslib, usbutils, util-linux, valgrind, wget, whetstone, which, + wpa-supplicant, xdata_xcursor-themes, xmlstarlet, xterm + + New packages: bluez-utils, cifs-utils, fftw, fluxbox, json-c, + libev, libftdi, libgeotiff, libmodbus, libplayer, live555, + ngrep, noip, opencv, openocd, picocom, poco, portaudio, + pulseaudio, pv, rtai, vala, xenomai. + + Removed packages: liboil, sfdisk, swfdec, webif + + Issues resolved (http://bugs.uclibc.org): + + #505: live555: new package + #507: Enable live and tv options in MPlayer-1.0rc2 + #531: let e2fsprogs package to export headers to staging dir if needed + #1171: Linuxthreads new cannot find sysdep.h + #1357: Add bluez to buildroot system + #2107: New package: input-event-daemon + #2599: New package: orc (Oil Runtime Compiler) + #2605: gstreamer: Update to 0.10.30 + #2677: introducing util-linux-ng as replacement for util-linux + #2917: Qt: Add declarative module + #3145: jffs2 image generation fails + #3271: netperf-2.4.5 fails to compile + #3331: xdata_xcursor-themes depends on xcursorgen + #3343: Add file:// download SITE_METHOD + #3391: Add support for specifying an external kernel tree + #3631: Error while compiling with Xorg + #3709: oprofile doesn't build for mipsel + #3925: midori not getting compile + #4045: Add support for downloading i386 toolchains from codesourcery + #4165: lrzsz-fix-symlink-at-rebuild.patch + #4171: makedevs-unused-but-set-variable.patch + #4183: Codesourcery toolchain download site has changed + #4231: libneon.so: undefined reference to `SSL_SESSION_cmp' + #4381: Add option to lighttpd to enable Lua support + #4387: Make sure that dest dir exists before installing mtd files + +2011.08, Released August 31th, 2011: + + Fixes all over the tree. + + Toolchain: Fix codesourcery 2009q3 ARM download, Linux 3.0.4 + kernel headers. + + Updated/fixed packages: ipset, python + +2011.08-rc2, Released August 29th, 2011: + + Fixes all over the tree. + + Toolchain: crosstool-NG 1.12.1, use binutils 2.21 on + mips/sh/older uClibc, disallow uClibc 0.9.32 on avr32/sh + (broken). + + Defconfigs: kernel updates, fix mini2440 serial port config, + remove old arm toolchain configs. + + Bootloaders: Fix grub patching, add barebox-{n,x,menuconfig} + targets similar to linux/busybox. + + Updated/fixed packages: barebox, directfb, libsoup, + libxml-parser-perl, mtd, ncurses, python, ti-utils, udev, + usbmount, util-linux, xfont_font-misc-misc + + Issues resolved (http://bugs.uclibc.org): + + #3685: ncurses installation hangs due to old version of tic + #4093: Grub fails to install bz2 patch after conversion to... + +2011.08-rc1, Released August 4th, 2011: + + Fixes all over the tree and new features. + + Toolchain: uClibc 0.9.32 / NPTL support, 0.9.29 removed, + ext-toolchain-wrapper improvements, improved non-MMU + support. GCC 4.3.6 / 4.6.1. + + GENTARGETS infrastructure extended to cover bootloaders and + Linux kernel as well. Options to retrive Linux/U-Boot from a + custom git repo instead of upstream tarballs. + Support for Linux 3.x and release candidate tarballs. + X-Loader bootloader for omap added. + + Make source/external-deps now also works for external + toolchains / crosstool-ng backend. + + Updated/fixed packages: autoconf, berkeleydb, bind, binutils, + bmon, bridge-utils, busybox, cmake, dbus, dbus-glib, + e2fsprogs, ethtool, ffmpeg, gst-plugins-{bad,base,good,ugly}, + gvfs, hostapd, iproute2, iptables, iw, jpeg, lame, libarchive, + libdnet, libdrm, libgcrypt, libgtk2, libmpeg2, libpng, + libsoup, lighttpd, linux-fusion, lzo, midori, mtd-utils, + nfs-utils, openvpn, oprofile, orc, pkg-config, proftpd, qt, + ruby, samba, sdl, shared-mime-info, sudo, sqlite, squid, + synergy, udev, usbmount, usbutils, util-linux, valgrind, + webkit, xorg-xserver, xz, zlib + + New packages: acl, attr, ebtables, gnutls, inotify-tools, + ipset, libargtable2, libiqrf, libmnl, libnspr, libnss, + libroxml, libyaml, live555, mxml, orc, rsyslog, sredird, + statserial, stunnel, ti-utils, uboot-tools, yajl + + Deprecated packages: liboil, swfdec + + Removed packages: hal + + Issues resolved (http://bugs.uclibc.org): + + #3559: libnspr: Add new package + #3595: patch to add libroxml + #3565: libnss: Add new package + #3583: xfonts_font-adobe-100dpi fails due to missing map file + #3649: [PATCH] Add mapdir to existing pkg-config patch + #3907: 2011.05 - Qt 4.7.3 not building on ARM + #3961: Nfs-utils: Remove SUSv3-function index + #3985: "help" target's defconfig list needs sort + #3997: bump libroxml to v2.1.0 + +2011.05, Released May 27th, 2011: + + Updated/fixed packages: makedevs + +2011.05-rc2, Released May 24th, 2011: + + Fixes all over the tree. + + Toolchain: Code sourcery ARM 2009q1 download URL fixed / + 2009q3 external toolchains added. Crosstool-NG bumped to + 1.11.3, eglic/glibc configuration fixes. Linux kernel 2.6.38.x + bumped to 2.6.38.7. + + Updated/fixed packages: bind, fakeroot, kbd, psmisc, qt + +2011.05-rc1, Released May 18th, 2011: + + Fixes all over the tree and new features. + + External toolchain improvements: We now build a binary + toolchain wrapper and install it into HOST_DIR/usr/bin, which + enforces the correct compiler arguments, making an external + toolchain as easy to use outside of Buildroot as the internal + ones are. This also brought a cleanup of CFLAGS, making the + Buildroot build output easier to read. + + Rootfs device handling improvements: Choice between static + /dev, devtmpfs and devtmpfs with either mdev or udev. + + Toolchain: More preconfigured codesourcery external + toolchains, improved Crosstool-NG support, fix for GCC + snapshot versions, GCC 4.4.6 / 4.5.3, experimental GCC 4.6.0 + support, target-GCC fixes, uClibc fixes, 0.9.32-rc3 support. + + Bootloaders: U-boot 2011.03, Barebox 2011.05.0 + + Linux: support for custom kernel image targets, E.G. for + powerpc builds with embedded device trees. + + Misc fixes for qemu defconfigs, ensuring correct serial + terminal setup out of the box. + + Misc gentarget / autotools handling fixes. + + Updated/fixed packages: alsa-lib, alsa-utils, alsamixergui, + atk, avahi, bind, bison, busybox, copas, dbus-glib, dhcp, + dhcpdump, dnsmasq, dropbear, ethtool, fakeroot, ffmpeg, file, + gamin, gnuconfig, gst-ffmpeg, gst-plugins-good, gtk2-engines, + haserl, hostapd, icu, imagemagick, iproute2, iw, kismet, less, + libcap, libdnet, libglade, libglib2, libgtk2, libnl, libpng, + libxml2, libxml2, libxslt, lighttpd, lockfile-progs, makedevs, + midori, mpg123, mpc, mpd, mpfr, mplayer, mtd-utils, ncurses, + netsnmp, openssh, openssl, openvpn, pango, pkg-config, popt, + procps, proftpd, qt, quagga, readline, rsync, samba, sdl, + socat, squashfs, squid, sudo, tslib, udev, usbutils, webkit, + wpa_supplicant, xerces, xfont_font-misc-misc, xlib_libX11, + xlib_libXfont, xlib_xtrans, xorg-server, xterm, xz + + New packages: bonnie++, can-utils, gdisk, htop, + input-event-daemon, libexif, libraw, libv4l, ngircd + + Removed packages: festival + + Issues resolved (http://bugs.uclibc.org): + + #2131: Add OpenMP support to the toolchain + #3379: New Package: bonnie++ + #3445: Not working openssl-10.0.0d on 386sx + #3451: fakeroot package: wrong FAKEROOT_SITE variable + #3457: alsamixergui: broken URL + #3475: Calling sync on large filesystems when not always necessary + #3511: make busybox-menuconfig does not download busybox package + #3541: Quotes in the top Makefile:217 break buildroot/kernel config... + #3571: u-boot: fw_printenv does not build + #3643: popt source url is not responding + #3733: dropbear: make zlib optional + #3757: Buildroot can't build mplayer with libmad + +2011.02, Released February 28th, 2011: + + Fixes all over the tree. + + Updated/fixed packages: alsamixergui, avahi, ffmpeg, icu, mpd, + nuttcp, qt, slang, squashfs, sylpheed, synergy, xerces + + Deprecated packages: devmem2, webif + + Issues resolved (http://bugs.uclibc.org): + + #2911: Qt: Disable qt3support-option, if gui-module isn't selected + #3259: Unable to build webkit (on arm) + #3295: slang fails to build on mipsel + #3325: ffmpeg fails to build + +2011.02-rc2, Released February 24th, 2011: + + Fixes all over the tree. + + Festival packages marked as broken. Unless someone steps up + to support them, they will be removed during the 2011.05 + development cycle. + + Updated/fixed packages: atk, avahi, bind, cairo, dbus, + enchant, fakeroot, gmpc, gpsd, gvfs, iperf, jpeg, libarchive, + libcgicc, libdaemon, libdrm, libevent, libgail, libglib2, + libgpg-error, libmicrohttpd, librsvg, libsoup, libxcp, + makedevs, matchbox-fakekey, matchbox-startup-monitor, mdadm, + metacity, mpd, nasm, nfs-utils, olsr, openssl, popt, + pthread-stubs, quagga, rpm, samba, sdl, sdl_gfx, sdl_image, + sdl_mixer, sdl_sound, sdl_ttf, squashfs, synergy, taglib, + tcpreplay, tiff, wpa_supplicant, xcb-util, + xdriver_xf86-input-{acepad,aiptek,evdev,joystick,keyboard}, + xdriver_xf86-input-{mouse,synaptics,void}, + xdriver_xf86-video-{chips,dummy,geode,glide,intel,nv,wsfb}, + xlib_lib{ICE,SM,XScrnSaver,Xau,Xcursor,Xdmcp,Xi,Xinerama}, + xlib_lib{Xrandr,Xt,Xtst,Xxf86dga,Xxf86vm,dmx,fontenc,pciaccess}, + xserver_xorg-server, xz + + Removed packages: ace_of_penguins, vlc + + Issues resolved (http://bugs.uclibc.org): + + #3205: Failing chmod when running "make" in buildroot (openssl)... + #3277: quagga fails to build with SNMP support + #3283: See why nfs-utils needs fakeroot, and convert to autotools + #3307: synergy fails to build due to missing XTest library + +2011.02-rc1, Released February 14th, 2011: + + Fixes all over the tree and new features. + + External toolchain improvements: clarification of the options, + and introduction of the toolchain profile concept, for + well-known toolchains. Buildroot is now capable of + automatically downloading and extracting well-known toolchains + (for the moment, CodeSourcery ARM, PowerPC, MIPS and SuperH + toolchains are supported). Crosstool-NG backend updated and + improved. + + Complete rework of how hardware boards are supported. + Each board now only has a single defconfig file, and all + board-specific options have been removed. See + docs/buildroot.html#board_support for details. + + Added support for the following boards: Mini2440, Qemu ARM + Versatile, Qemu MIPSel Malta, Qemu PowerPC G3beige, Qemu SH4 + r2d and Qemu x86. The Qemu boards support allows to easily + build systems that are known to work under Qemu. + + Initial support for Blackfin processors. + + Staging directory moved into $(O)/host/usr//sysroot, in + preparation for support of SDK. For the same reason, the + toolchain binaries (cross-compiler and other related tools) + are now installed in $(O)/host/usr/bin/. The cross pkg-config + now also automatically returns correct values for cross + compilation, without needing any environment variables to be + set. + + Ccache support reworked. Now used for both host and target + compilation, and cache is stored in ~/.buildroot-ccache. + + Toolchain: uClibc 0.9.32-rc2, several components moved to + normal AUTOTARGET packages. + + Generic cmake infrastructure, similar to the existing + GENTARGETS/AUTOTARGETS. + + Support for bzr downloads, next to the existing git/svn support. + + Kconfig infrastructure rebased against 2.6.38-rc3, bringing + misc fixes. 'xconfig' now uses Qt4 rather than Qt3. + + EXT2 file system size handling improved, UBI image support, fs + configuration options cleanup, U-Boot/Barebox version bumps. + + Updated/fixed packages: alsa-utils, at, autoconf, automake, + bash, binutils, bison, busybox, bzip2, cdrkit, cloop, cmake, + coreutils, cups, dbus, dbus-python, dhcp, directfb, + direcfb-examples, dmalloc, dnsmasq, dosfstools, e2fsprogs, ed, + fbset, ffmpeg, findutils, flac, freetype, gdk-pixbuf, gmp, + grep, gperf, gst-ffmpeg, gst-plugins-bad, gst-plugins-base, + gst-plugins-good, gst-plugins-ugly, gstreamer, gvfs, hdparm, + hostapd, i2c-tools, icu, imagemagick, input-tools, iproute2, + iptables, iw, jpeg, kexec, libaio, libart, libcap, libconfig, + libfuse, libglib2, libidn, libmad, libogg, libpcap, libpng, + libsndfile, libtheora, libtool, libusb-compat, libvorbis, + libxcb, libxml2, libxslt, links, linux-fusion, lm-sensors, + lsof, ltp-testsuite, ltrace, lvm2, lzo, m4, makedevs, + memtester, mesa3d, mii-diag, mpc, mpfr, mpg123, mplayer, + mrouted, mtd-utils, nano, netperf, netplug, ntfs-3g, ntp, + openssh, openssl, openvpn, oprofile, pango, patch, pciutils, + php, pkgconfig, portmap, psmisc, python, qt, rsync, ruby, + sawman, screen, sdl_gfx, sdl_sound, smartmontools, socat, + sqlite, squid, sshfs, sstrip, sysklogd, sysstat, sysvinit, + tar, tcpdump, tslib, udev, usbutils, vim, vtun, webkit, wipe, + x11vnc, xapp_xlogo, xcb-proto, xfont_font-util, + xkeyboard-config, xlib_libX11, xz, zlib + + New packages: dhrystone, dsp-tools, faad2, fbgrab, gst-dsp, + gst-omapfb, irda-utils, lame, libao, libcue, libcuefile, + libffi, libhid, libreplaygain, libsamplerate, libsigc++, + lsuio, mpd, musepack, python-mad, python-serial, rsh-redone, + sdparm, tidsp-binaries, vorbis-tools, wavpack, whetstone, + xl2tp, xmlstarlet + + Removed packages: hotplug, l2tp, libfloat, microcom, + ng-spice-rework + + Issues resolved (http://bugs.uclibc.org): + + #267: The make target: cross fails because toolchain_build_... + #415: Berkeley DB: mut_pthread.o: relocation R_X86_64_32 against... + #561: ltp-testsuite failed to install + #1447: Installing gfortran on PowerPC + #1651: Build fail caused by ccache in module-init-tools + #1681: Cross-compiled binaries shouldn't be installed into staging + #1723: [PATCH] axel: convert to generic package infrastructure and... + #1735: [PATCH] mplayer: convert to autotools infrastructure + #2551: [PATCH] native toolchain in the target filesystem fails + #2623: buildroot-snapshot-20100922 fails when compiling development... + #2647: makedevs package lacks support for 16-bit major/minor numbers + #2371: QT MYSQL Module does not build when MySQL installed on the host + #2839: compile fails in various packages with a odd message "error:... + #2887: tar "buffer overflow detected" error + #2893: Broken "make source" with external toolchain + #2905: Qt: Speed up compilation, if gui-module isn't selected + #2929: genext2fs: couldn't allocate a block (no free space) + #2935: Ntpdate isn't installed + #2965: Broken linkage to xkbcomp (blocking X server startup) + #2983: xlib_libX11 build failed + #3007: kexec doesn't build: Missing regdef.h file + #3085: Init scripts are not compatible with sysVinit (when busybox... + #3103: make external-deps wants to download gcc-.tar.bz2 when... + #3109: abnormal `make busybox-menuconfig` + #3115: How about board specific makefiles? + #3169: python patch has typo, aborts build in scenario + #3181: dhcp.mk copies S80dhcp-server to etc/init.d, not etc/init.d/ + +2010.11, Released November 30th, 2010: + + Fixes all over the tree. + + Updated/fixed packages: libgcrypt, qt, squid, sysstat, tcpdump, + xserver-xorg + + Issues resolved (http://bugs.uclibc.org): + + #2773: squid with openssl support needs openssl on the host + #2857: OBJDUMP definition is missing from TARGET_CONFIGURE_OPTS + +2010.11-rc2, Released November 25th, 2010: + + Fixes all over the tree. + + Add support for LEON Sparc architecture variants. Fix make + source/external-deps for host packages. + + Updated/fixed packages: bash, bind, busybox, dialog, gpsd, + libglib2, libcurl, libmad, lrzsz, midori, module-init-tools, + mtd-utils, openssh, openssl, pciutils, php, qt, sqlite, + sysstat, webkit, zlib + + Issues resolved (http://bugs.uclibc.org): + + #759: Sysstat build broken without libintl + #2479: host-module-init-tools 3.11 fails to build + #2725: Buildroot overrides kernel config + #2785: mtd-utils build fails due to missing libmtd + #2791: Added PHP-Process Control to the PHP-Package + #2797: pciutils dependencies on zlib not taken into account + #2809: failed to compile libglib2 + #2821: [PATCH] Patch for JavaScriptCore in QtWebKit module + #2827: qt-4.7.0-pthread_getattr_np.patch invalid for qt 4.6... + #2833: Failed to compile webkit without X11 + +2010.11-rc1, Released November 8th, 2010: + + Fixes all over the tree and new features. + + Kconfig infrastructure rebased against 2.6.36-rc1, bringing + misc fixes + nconfig and savedefconfig targets. + + Toolchain: ARM cortex A9 support, experimental crosstool-ng + backend, GCC 4.5.x. + + Fs: Squashfs 4.1 with lzo support + + Old-style package hooks (*_HOOK_POST_*) removed. Use the more + generic new-style ones instead. + + Download handling reworked and support for git/svn downloads + added. + + Removed experimental shared config.cache support, as it is + too unreliable. + + A convenience Makefile wrapper is created when using + out-of-tree building, similar to how it is done for the kernel. + + Alpha, Cris, IA64 and Sparc64 architecture support removed. + + New packages: argp-standalone, gdk-pixbuf, gpsd, gst-ffmpeg, + libmpeg2, kbd, librsvg, nuttcp, rng-tools, rrdtool, xz + + Updated/fixed packages: acpid, alsa-lib, argus, at, autoconf, + automake, avahi, axel, beecrypt, berkeleydb, bind, bmon, boa, + bootutils, bridge-utils, bsdiff, busybox, cvs, dbus, directfb, + dmraid, docker, dosfstools, dropbear, e2fsprogs, ethtool, + expat, ezxml, fbset, fconfig, ffmpeg, freetype, gadgetfs-test, + gamin, gawk, genext2fs, gperf, gst-plugins-base, + gst-plugins-ugly, gtk2-themes, gtkperf, gvfs, haserl, hdparm, + hostapd, hwdata, ifplugd, imagemagick, iperf, ipsec-tools, + iproute2, iptables, iw, jpeg, kexec, kismet, less, libcgi, + libcurl, libdaemon, libdnet, liberation, libevent, libeXosip2, + libglade, libgtk2, libiconv, libidn, libintl, libmms, libmpd, + libnl, liboil, libosip2, libpcap, libpng, libtool, libungif, + libxml2, libxslt, lighttpd, lite, lm-sensors, lockfile-progs, + logrotate, m4, matchbox, mdadm, mesa3d, metacity, mplayer, + mtd-utils, mysql_client, nano, nbd, ncftp, neon, netperf, + netsnmp, ng-spice-rework, ntfsprogs, ntp, openntpd, openssh, + openssl, openvpn, oprofile, pango, patch, pcre, php, + pkg-config, portmap, pppd, pptp-linux, prboom, proftpd, radvd, + rdesktop, readline, rp-pppoe, ruby, qt, quagga, samba, sawman, + sdl_mixer, sdl_sound, sed, setserial, shared-mime-info, slang, + speex, sqlite, squashfs, startup-notification, strace, + sylpheed, sysstat, taglib, tcpdump, thttpd, tiff, tn5250, + torsmo, tslib, udev, udpcast, usbmount, usbutils, vsftpd, + vtun, which, wireless-tools, wpa_supplicant, xapp_twm, + xapp_xbacklight, xapp_xcursorgen, xapp_xinit, xapp_xinput, + xapp_xmore, + xdriver_xf86-input-{acecad,aiptek,evdev,joystick,keyboard}, + xdriver-xf86-input-{mouse,synaptics,vmmouse,void}, + xdriver-xf86-video-{apm,ark,ast,ati,chips,cirrus,dummy,fbdev}, + xdriver-xf86-video-{geode,glide,glint,i128,i740,intel,mach64}, + xdriver-xf86-video-{mga,neomagic,newport,nv,openchrome,r128}, + xdriver-xf86-video-{rendition,s3,s3virge,savage,siliconmotion}, + xdriver-xf86-video-{sis,sisusb,suncg3,suncg6,suncg14,sunffb}, + xdriver-xf86-video-{sunleo,suntcx,tdfx,tga,trident,v4l,vesa}, + xdriver-xf86-video-{vmware,voodeo,wsfb,xgi,xgixp}, + xkeyboard-config, xlib_libX11, xserver_xorg-server, xstroke, + xterm, xvkbd, zlib + + Deprecated packages: hotplug, lzma, ng-spice-rework, sfdisk + + Removed packages: dillo, libglib12, libgtk12, microwin, + pcmcia + + Issues resolved (http://bugs.uclibc.org): + + #901: new package: gpsd + #2389: Generate a Makefile wrapper in $(O) + #2461: wireless_tools: install shared library if needed + #2521: Can't compile sdl_mixer, mikmod.h can't be found + #2533: xserver_xorg-server: Enable glx, if mesa3d is built + #2563: [PATCH] cairo: Expose the configure option to disable some... + #2581: libmms: Update to 0.6, and patch to work on architectures... + #2707: Can't compile linux kernel using buildroot + crosstool-ng + #2731: Build order + #2737: buildroot configuration tool crashing when the path exceeds... + #2767: Build for lsof broken in buildroot-2010.08 + +2010.08: Released August 31th, 2010: + + Fixes all over the tree. + + Updated/fixed packages: atk, xstroke + + Removed packages: lxdoom + +2010.08-rc2, Released August 30th, 2010: + + Fixes all over the tree. + + Mark the combination of uClibc 0.9.31, gcc 4.2.x, C++ and + locale support as broken. Remove deprecated GCC 4.2.[1-3] + versions. + + Mark CRIS architecture as deprecated, as it is discontinued + upstream. + + Marked shared config.cache as experimental and disabled by + default as it is known to break with certain package + combinations. + + Toolchain: fixed gcc 4.2.x build after uClibc NPTL support got + added. + + fs: old-style squashfs for big endian archs fixed. + + Updated/fixed packages: busybox, gst-plugins-base, + imagemagick, kismet, libgail, libglib2, libgtk2, lua, + luafilesystem, lzo, ncurses, netcat, pango, php, pppd, + proftpd, qt, samba, startup-notification, swfdec, sysvinit, + util-linux + + Removed packages: stunnel + + Issues resolved (http://bugs.uclibc.org): + + #635: util-linux fails to build in 2009.08 + #2239: netcat package installs its binary to target as avr32-linux... + #2395: libglib2-2.24.1 and libxml2-2.7.7 fails build on MIPS because... + #2443: Initramfs: Don't overwrite $(TARGET_DIR)/init if it exists + #2449: Minor fixes for squashfs makefile and correct PowerPC e500 ... + +2010.08-rc1, Released July 30th, 2010: + + Fixes all over the tree and new features. + + Toolchain: GCC 4.3.5, older 4.3.x versions removed. GCC 4.1.2 + and non-sysroot support removed. Added support for (snapshot) + NPTL in uClibc, 0.9.28.3 removed, + + Bootloaders: Various cleanups, moved to boot/, added Barebox, + removed yaboot. Support building u-boot from custom tarball, + u-boot 2010.06. + + New GTK-based configurator, usable using 'make gconfig'. + + Java packages marked as broken. Unless someone steps up to + support this, they will be removed during the 2010.11 + development cycle. + + Alpha, IA64 and Sparc64 architectures marked as deprecated. + GTK+ on DirectFB has also been marked as deprecated, as it is + not supported in recent GTK+ versions, and more and more + packages depends on the new versions. + Unless someone steps up to support them, they will be removed + during the 2010.11 development cycle. + + New packages: cgilua, copas, coxpcall, ffmpeg, libsvgtiny, + libgail, luafilesystem, luasocket, rings, wsapi, xavante, xterm + + Updated/fixed packages: alsa-lib, alsamixergui, at, atk, + avahi, berkeleydb, bash, blackbox, busybox, bzip2, cairo, + cdrkit, cmake, dash, dhcp, dialog, diffutils, distcc, dmalloc, + dnsmasq, dropbear, e2fsprogs, fbv, file, flex, fontconfig, + gawk, gmpc, gnuchess, gst-plugins-base, gst-plugins-good, + gstreamer, gzip, icu, intltool, iostat, ipsec-tools, iptables, + iw, libart, libcgi, libcurl, libdrm, libeXosip, libfuse, + libglib2, libgpg-error, libiconv, libidn, liblockfile, libpng, + libsoup, lighttpd, links, linux-fusion, lmbench, lrzsz, + ltrace, make, midori, module-init-tools, mplayer, + mysql_client, nbd, ncurses, neon, netcat, netperf, netsnmp, + ntfsprogs, openssl, oprofile, pango, php, qt, quagga, samba, + setserial, sdl, sdl_mixer, sdl_sound, sdl_ttf, speech-tools, + sqlite, squashfs, swfdec, tftpd, thttpd, tn5250, tremor, + usbutils, webif, webkit, wireless_tools, xerces, + xkeyboard-config, xserver_xorg-server, xvkbd, zlib + + Removed packages: modutils, portage, rxvt + + Deprecated packages: dillo, libglib12, libgtk12, microwin, pcmcia + + Issues resolved (http://bugs.uclibc.org): + + #321: alsa-lib uses host include files for python which breaks ... + #361: linux kernel configuration choice works incorrectly + #387: Tremor not installed to toolchain + #401: new package: ffmpeg + #475: uImage target for U-boot failed generating + #543: ATK requires X11 on DirectFB target + #575: webkit: Buildroot Libtool Patch Fails + #583: build fails with external x86_64 toolchain + #729: sstrip creates corrupted headers + #829: Webkit r44552 needs libXt + #835: Package Dataflashboot-1.05 does not compile with buildroot... + #847: Compiling target-gcc v4.4 fails with "libc.so.0: cannot open... + #859: Add (head of) nptl branch to list of uClibc versions + #949: compile with debug info + #955: Grub fails to build with External Toolchain + #1051: Webkit doesn't compile (Linuxthreads new, x86) + #1213: Move .config into output directory + #1225: Buildroot fails to account for "nof" subdirectory (no float... + #1231: (sparc) Linux kernel fails to build + #1261: The getline() in output/build/linux-2.6.28/scripts/unifdef.c... + #1339: Busybox needs -fno-strict-aliasing to compile cleanly + #1393: neon config fails libxml/parser.h: libxml2 requires, but not ... + #1405: WebKit fails to build because pthread_getattr_np is not impl... + #1675: GMP Error during buildroot make process + #1741: external toolchain linking error + #1753: lmbench: convert to generic package infrastructure + #1771: Fakeroot and the target/generic/device_table.txt create bad... + #1807: LZMA 4.32.7, Required header file(s) are missing + #1813: xkeyboard-config fails to build because of intltool problem + #1879: Bump iptables to 1.4.8 + #1885: Add a bunch of lua modules + #1897: Bump libusb to 1.0.7 + #1903: Bump tn5250 to 0.17.4 and migrate to autotargets + #1909: netperf-2.4.5 fails to build because of undeclared SOCK_DCCP + #1927: Bump file to 5.03 and migrate to autotargets + #1933: Bump gawk to 3.1.8 and migrate to autotargets + #1945: PHP: add sqlite3 dependency when using external lib + #1951: Bump openssl to 0.9.8o + #1957: Bump sqlite to 3.6.23.1 + #1975: Package removal/deprecation + #1981: zlib: bump to 1.2.5 + #1987: intltool: Fix spelling mistake + #1993: Bump bash to 4.1.7(1) and migrate to autotargets + #1999: Typo in path checking + #2005: Bump dnsmasq to 2.55 and migrate to gentargets + #2035: ipsec-tools-0.7.2 fails to build with gcc-4.4.x + #2038: Bump ncurses to 5.7 + #2095: make gconfig: undefined reference to symbol 'dlsym@@GLIBC_2.2.5' + #2101: blackbox depends on locale support + #2119: Tries to build kernel, although disabled in config + #2125: libXfont build fail + #2143: buildroot compiler generates segfaulting statically linked exe.. + #2149: xterm build failure + #2155: Compression lzo don't set for ubifs + #2161: [SECURITY] Update libpng to 1.2.44 + #2167: Bump busybox to 1.17.0, convert to gentargets, drop 1.12, ... + #2181: pixman can't apply pixman-0.10.0-no-tests.patch + #2191: linux-fusion build fail + #2221: Qt does not compile (dependencies not taken into account?) + #2233: Atmel atstk target skeletons have /etc/mtab as a file, not ... + #2245: Netcat does not work due to incorrect assumptions about signed.. + #2251: directory output/build after make *_defconfig not found + #2257: Convert netsnmp package to autotargets + #2263: Bump samba to 3.3.13 + #2269: setserial causes make error + +2010.05, Released May 30th, 2010: + + Fixes all over the tree. + + Updated/fixed packages: coreutils, hal, libcap, + lockfile-progs, ncftp, xserver_xorg-server + + Issues resolved (http://bugs.uclibc.org): + + #1789: binutils fails to build for i386 + #1843: Fix libcap build failure + #1855: XORG Keyboard driver fails to compile + +2010.05-rc3, Released May 27th, 2010: + + Fixes all over the tree. + + Updated/fixed packages: aumix, atk, avahi, bmon, busybox, cairo, + cdrkit, dbus-glib, dbus-python, docker, enchant, fltk, gamin, + gettext, gmpc, gob2, grep, gstreamer, gst-plugins-bad, + gst-plugins-base, gvfs, hal, iconv, icu, iperf, libcgicc, + libdvdnav, libdvdread, libglade, libglib2, libgtk2, libidn, + libmms, libmpd, libpcap, libsoup, lmbench, lsof, ltrace, lvm2, + make, metacity, microperl, mtd-utils, mutt, nbd, netsnmp, + ntfsprogs, ntp, olsr, pango, pciutils, pcmanfm, php, + pkg-config, psmisc, qt, samba, shared-mime-info, squashfs, + squashfs3, sshfs, startup-notification, swfdec, sylpheed, + uemacs, util-linux, valgrind, vpnc, vsftpd, webkit, xstroke + + Issues resolved (http://bugs.uclibc.org): + + #75: arm buildroot "unrecognized option" error + #699: Buildroot fails to copy libstdc++ to target when using external... + #1693: NTP trys IPV6 even if not configured error: 'IPV6_MULTICAST... + #1729: alsamixergui fails to build + #1801: Avahi-autoipd doesn't create TARGET_DIR/var/lib + #1819: pciutils small bugs + #2065: Internal toolchain: bump gcc 4.3.x series to 4.3.5 + +2010.05-rc2, Released May 11th, 2010: + + Fixes all over the tree. + + Updated/fixed packages: busybox, customize, gawk, gnuchess, + hal, hostapd, less, libgcrypt, libnl, libxcb, linux-fusion, + ltp-testsuite, mplayer, netplug, pciutils, php, sed, + shared-mime-info usb_modeswitch, usbutils, vlc wpa_supplicant, + xapp_bdftopcf, xapp_mkfontdir, xdriver_xf86-video-openchrome, + xfont_encodings, xlib_libX11, xlib_libXfont, xlib_xtrans, + xproto_fontcacheproto, xproto_fontsproto, xvkbd + + Removed packages: vice + + Issues resolved (http://bugs.uclibc.org): + + #849: "customize" package copies files to wrong place in target tree + #985: Bump usb_modeswitch package to 1.1.0 + #1135: Package customize. Wrong copying + #1525: Package hal deletes a whole /etc/rc.d directory + #1531: libxcb 1.5 build fails, due to missing xcbgen Python module + #1669: Busybox failed to compile when using an external toolchain + #1699: Fix usbutils dependencies and bump + #1705: Fix pciutils broken cross compiling + #1717: External toolchain fixes for hostapd & wpa_supplicant + +2010.05-rc1, Released May 3rd, 2010: + + Cleaned up / restructured package menu. + + Toolchain: uClibc 0.9.30.3 / 0.9.31, older 0.9.30.x removed. + 2.6.33 kernel headers, binutils 2.20.1, GCC 4.4.4, + removed broken nios2 support, ppc e300cX/e500mc support, + improved external toolchain support, GDB 7.x support. + + X.org updated to 7.5. + + New packages: cdrkit, cramfs, genext2fs, genromfs, + libatomic_ops, librsync, libusb-compat, lmbench, netperf, + squashfs, squashfs3, squid + + Updated/fixed packages: alsa-utils, argus, autoconf, bison, + busybox, bzip2, directfb, dnsmasq, dosfstools, e2fsprogs, + eeprog, fakeroot, fbv, findutils, freetype, haserl, hostapd, + iperf, iptables, iw, less, libaio, libcgi, libcgicc, libdrm, + libgcrypt, libglib2, libid3tag, libmad, liboil, libosip2, + libpng, libraw1394, libsysfs, libxml2, libxslt, linux-fusion, + ltrace, lua, lzma, madplay, makedevs, matchbox, mdadm, + memstat, mesa3d, mtd-utils, nano, ncurses, openssl, patch, + pciutils, php, pixman, portage, pppd, pthread-stubs, python, + qt, radvd, samba, setserial, smartmontools, tar, tslib, + udpcast, usb_modeswith, vtun, wget, xdata_xcursor-themes, + xdriver_xf86-video-intel, xkeyboard-config, xlib_libX11, + xlib_libXaw, xlib_libXfont, xlib_libXfontcache, + xlib_libXxf86misc, xlib_libXtst, xlib_libpciaccess, + xproto_dri2proto, xproto_eviext, xproto_fontcacheproto, + xproto_xf86miscproto, xserver_xorg-server + + Removed packages: xapp_xtrap, xlib_libXTrap, xlib_libXevie, + xlib_libXxf86misc, xxproto_evieext, proto_trapproto, + xproto_xf86miscproto + + Issues resolved (http://bugs.uclibc.org): + + #513: Add new squid package + #661: lmbench: new package + #719: Add lua option to haserl + #800: [PATCH] iperf update to 2.0.4 + #803: [PATCH] lua - add shared library patch and config option for... + #805: [PATCH] mdadm - version update + #817: integrator926_defconfig uses unsupported uboot board name + #851: Add option to specify --sysroot value for external toolchain + #1093: Upgrade libusb to v1.0.3 and add new libusb-compat + package for compatibility with old packages that expect + the pre-1.0 API. + #1105: Add new netperf package + #1111: Bump wget to 1.12 and migrate to Makefile.autotools.in + #1117: Bump nano to 2.2.3 and migrate to Makefile.autotools.in + #1123: Bump less to 436 and migrate to Makefile.autotools.in + #1129: Bump memstat to 0.8 and migrate to Makefile.package.in + #1189: Wrong u-boot configuration name for integrator926 target + #1219: kernel headers not correctly installed into toolchain/staging + #1267: Wrong BR2_EXTRA_VERSION + #1273: BR2_INET_IPV6 does not enable IPv6 in pppd + #1303: Add librsync package + #1321: Busybox link fails due to lack of --sysroot option + #1327: mtd-utils compile failure due to lack of --sysroot in CFLAGS + #1345: Bump pppd to 2.4.5 and convert to Makefile.autotools.in + #1369: cannot build radvd (flex problem) + #1387: xlib_libX11-1.3.2 can't find libjpeg + #1411: [SECURITY] Update openssl package to 0.9.8n + #1417: Bump iptables to 1.4.7 + #1423: Bump e2fsprogs to 1.41.11 + #1429: [SECURITY] Update php to 5.2.13 + #1441: Add binutils 2.20.1 + #1447: Package installation on target with debug symbols is broken + #1459: Misc QA fixes + #1489: radvd update to 1.6 + #1513: Enable powerpc e300c2, e300c3 and e500mc optimization + #1537: dev entries not created anymore + #1555: Fix default uclibc-0.9.31 configuration + #1561: [SECURITY] Update samba to 3.3.12 + #1567: openssl0.9.8n fails to compile + #1573: Alsa-utils alsactl/init/* not installed to target + #1591: portmap fails to compile + #1615: Convert eeprog package to gentargets + #1645: Bump hostapd package to 0.7.2 + +2010.02, Release February 26th, 2010: + + Fixes all over the tree. + + Updated/fixed packages: avahi, busybox, cramfs, ipsec-tools, libcgicc, + libgtk2, libraw1394, madplay, netsnmp, pango, squashfs, sylpheed, qt, + xfont_font-util + + Removed packages: hostap, openmotif, xpdf + + Issues resolved (http://bugs.uclibc.org): + + #165: openmotif does not build + #1147: Remove obsolete hostap package + #1183: make source fails to download gmp, mpfr and patches + +2010.02-rc2, Released February 23th, 2010: + + Fixes all over the tree and new features. + + New packages: intltool + + Updated/fixed packages: ace_of_penguins, alsa-lib, alsa-utils, argus, + at, automake, ccache, dosfstools, e2fsprogs, flex, gob2, gmpc, + gst-plugins-good, imagemagick, iw, kexec, libeXosip, libgtk2, + libpcap, libpng, libsoup, libxcb, libxml-parser-perl, libxml2, + libxslt, lvm2, matchbox, mplayer, rsync, rubix, shared-mime-info, + tcl, webkit, xapp_mkfontscale, xfont_encodings, xfont_font-util, + xlib_libfontenc, xproto_trapproto, zlib + + Removed package: xboard + + Issues resolved (http://bugs.uclibc.org): + + #335: atk looks for the path to the gnome library on the host + #355: Please update WebKit - it doesn't compile! + #453: libglib2 autoreconf + #457: e2fsprogs link problem + #459: libgtk2 autoreconf + #469: build of libgtk2 for host incorrectly assumes that X.org ... + #671: Bash fails to build when building buildront on Ubuntu 9.04 + #711: WebKit host dependencies problems + #821: cp: illegal operation + #1039: Not compiled on ubuntu karmic + #1069: [PATCH] The AT91BOOTSTRAP makefile contains a typo + +2010.02-rc1, Released February 9th, 2010: + + Fixes all over the tree and new features. + + Generalized autotools infrastructure to be usable for + non-autotools packages, see package/Makefile.package.in for + details. + + Cleaned up avr32 toolchain config, external source-based + toolchain support is gone. + + Dependency checks: Also check for makeinfo, only print output + on errors. + + Toolchain: uClibc 0.9.30.2, gcc 4.4.3 + + New packages: libcdaudio, libdvdnav, libdvdread, hostapd, ser2net, + tcpreplay + + Updated/fixed packages: alsa-lib, alsa-utils, at, autoconf, bash, + bind, binutils, bootutils, busybox, dbus, directfb, dnsmasq, + e2fsprogs, gstreamer, gperf, gst-plugins-bad, gvfs, fbdump, flex, + hal, iptables, iw, jpeg, kismet, libfuse, libglib2, liboil, libpcap, + libungif, libxml2, libxslt, lighttpd, mesa, mpg123, mtd-utils, nbd, + neon, netstat-nat, newt, openvpn, pcre, php, qt, rdesktop, readline, + rpm, sawman, sdl, sdl_ttf, sqlite, sshfs, tremor, u-boot, + usb_modeswitch, usbutils, webkit, wpa_supplicant, xfsprogs, zlib + + Removed package: asterisk, openswan + + Issues resolved (http://bugs.uclibc.org): + + #515: tcpreplay: new package + #553: Wrong DirectFB ps2mouse limitation + #559: mesa3d build fails + #679: Autoconf cannot find M4 + #739: New/updated hostapd package + #749: Bump usbutils package to version 0.86 + #751: Kernel 2.6 snapshot fetch fail + #753: Bump lighttpd package to 1.4.25 + #757: U-Boot: mkimage cannot be installed using external toolchain + #761: Add binutils 2.20 to toolchain options + #763: [SECURITY] Update pcre to 7.9 + #765: Add buildroot branding to gcc + #767: Bump iw package to 0.9.18 + #773: [SECURITY] Update bind to 9.5.2-P1 + #795: Minor edits to fix typos, grammar, spelling, usage in documen... + #813: Drop not very useful generic package selection options ... + #823: Editor backup files (~) is copied from the target_skeleton + #827: Bump mtd-utils package to version 1.2.0 + #841: Build error + #913: Bump iptables to 1.4.6 + #919: Bump usb_modeswitch package to 1.0.7 + #925: Bump wpa_supplicant package to 0.6.10 + #931: Bump kismet package to 2010-01-R1 + #937: Bump openvpn package to 2.1.1 + #943: Bump sqlite package to 3.6.22 + #961: Bump dnsmasq to 2.52 + #967: Bump netstat-nat to 1.4.10 + #973: Bump iw to 0.9.19 + #1003: DHCP options disabled with busybox-1.16.0 + #1009: [SECURITY] Bump php to 5.2.12 + #1015: [SECURITY] Bump bind to 9.5.1-P2 + #1027: Busybox flash commands conflict with those from mtd-utils + #1063: [SECURITY] Update lighttpd to 1.4.26 + +2009.11, Released December 1st, 2009: + + Additional fixes and cleanups. + + Updated/fixed packages: alsamixergui, autoconf, coreutils, fltk, + microperl, ncurses, vim + + Issues resolved (http://bugs.uclibc.org): + + #707: Cant configure fltk-1.1.7. configure: error: Configure could ... + +2009.11-rc2, Released November 29th, 2009: + + Additional fixes and cleanups. + + Updated/fixed packages: busybox, dbus, fltk, gvfs, ltrace + +2009.11-rc1, Released November 23rd, 2009: + + Fixes all over the tree and new features. + + Cleaned up / Simplified build directory layout. Refer to + docs/buildroot.html#using for details. + + Target defconfig files moved to configs/ and listed in 'make help' + output. + + Fixed *clean targets. Now clean removes everything generated, + so you can do a fresh rebuild. Distclean furthermore removes + kbuild tools and .config, bringing the source tree back in a + pristine state. + + Toolchain: ARM cortex A8 support, GCC 4.4.2, sensible default + soft / hardfloat setting for architecture, ensure target-ldd + gets installed. + + New packages: divine, gvfs, libarchive, libmicrohttpd, + sdl_sound, swfdec, sysstat + + Updated/fixed packages: alsa-lib, alsamixergui, autoconf, bootutils, + busybox, gcc, directfb, dnsmasq, e2fsprogs, festival, gamin, gperf, + gqview, gstreamer, gst-plugins-bad, gst-plugins-base, gst-plugins-good, + imagemagick, ipkg, iptables, iw, kernel-headers, kismet, leafpad, + libelf, libevent, libglib2, libidn, liblockfile, libmad, libpcap, + libupnp, libuuid, libxml2, lighttpd, ltrace, lua, lzma, magiccube4d, + matchbox, mdadm, nbd, ncftp, ncurses, netkittelnet, netsnmp, + ng-spice-rework, ntfs-3g, openntp, openssl, pcmanfm, php, psmisc, + python, quagga, radvd, rpm, rsync, rubix, samba, sawman, sdl, sdl_image, + shared-mime-info, sfdisk, spawn-fcgi, speech-tools, sqlite, squashfs, + synergy, syslinux, sysklogd, target-binutils, tcpdump, torsmo, u-boot, + udpcast, util-linux, valgrind, vsftpd, wipe, wpa-supplicant, x11vnc, + xdata_xcursor-themes, xboard, xfsprogs, xstroke, zlib[5~ + + Removed package: mdnsresponder, mpatrol, gcc 3.4.6 + 4.0.4, vice + + Issues resolved (http://bugs.uclibc.org): + + #301: allow to install libsmbclient + #303: add gvfs package + #477: Add sdl_sound package + #487: Make kismet package sexier + #511: New package usb_modeswitch + #527: misc fixes for dnsmasq package + #565: libevent: Bump version and clean up makefile + #587: Use iptables multipurpose binaries and bump to 1.4.4 + #593: Missing early check for patch(1) + #597: (REOP) Selecting busybox in buildroot's config clobbers ar ... + #609: libmicrohttpd: New package + #615: python: Don't delete .py files unless asked + #617: netkit/inetd requires RPC and fails to build if RPC is disabled + #619: netkittelnet requires netkitbase to install, but there's no ... + #645: allow to build nbd-server with NBD package + #653: [SECURITY] Update php package to version 5.2.11 + #655: Update sqlite package to version 3.6.18 + #657: Bug in imagemagick-clean target + #663: Add option for NAND flash with 512B Page and 16 kB erasesize ... + #665: [PATCH] Samba package + #667: [PATCH] e2fsprogs + #683: SDL-dfb does not select directfb + #701: make install problem with unstripped binaries + #703: [SECURITY] Update openssl package to 0.9.8l + #705: Bump spawn-fcgi package to 1.6.3 + #709: Bump lighttpd package to 1.4.24 + #713: Migrate openntpd package to Makefile.autotools.in + #715: Bump libidn package to 1.15 and other fixes + #717: Bump dnsmasq to 2.51 and introduce new IDN option + #731: Bump iw package to 0.9.17 + +2009.08, Released August 31th, 2009: + + Additional fixes and cleanups. + + Updated/fixed packages: ctorrent, saveconfig/getconfig, + sdl_net, util-linux. + + Issues resolved (http://bugs.uclibc.org): + + #529: util-linux doesn't find headers and include libs correctly + #557: Build ctorrent with SSL support if available + +2009.08-rc3, Released August 26th, 2009: + + Additional fixes and cleanups. + + Updated/fixed packages: alsa-utils, berkeleydb, busybox, dbus, + directfb, enchant, kernel headers. + + Issues resolved (http://bugs.uclibc.org): + + #471: Allow directfb compilation with debug + #541: Removal of CVS directories in target filesystem broken + #547: berkeleydb: Update config.{sub, guess} + #549: enchant: Fix dependencies. + #569: Fix alsa-utils build for x86 on x86-64 + +2009.08-rc2, Released August 6th, 2009: + + Additional fixes and new features. + + New packages: libuuid, gcc 4.3.4. + + Updated/fixed packages: busybox, classpath, gzip, ipsec-tools, + jamvm, libusb, microperl, neon, popt, sed, webkit. + + Fixed issue with 'make oldconfig' + + Issues resolved (http://bugs.uclibc.org): + + #525: sed broken with external toolchain + #537: Fix gzip build with recent glibc + +2009.08-rc1, Released August 2nd, 2009: + + Fixes all over the tree and new features. + + Improvement of external toolchain support: + - Support for glibc toolchains. + - The toolchain configuration announced to Buildroot is + verified against the real toolchain configuration. + - Fixes, documentation. + + Cleanup X.org support: clarified configuration options, and + removed mandatory dependency on useless libraries such as + libXt or libXaw. + + New QT-based configurator, usable using 'make xconfig'. + + Support for the Xtensa architecture. + + Toolchain: GCC 4.4.1, 2.6.30 kernel headers, removed < 2.6.26 + headers. + + New packages: bmon, ctorrent, dosfstools, enchant, + gst-plugins-bad, iw, libmms, libnl, netstat-nat, ntfsprogs, + sdl_gfx, spawn-fcgi. + + Updated packages: bind, busybox, coreutils, sqlite, directfb, + expat, gamin, gnuconfig, haserl, ipsec-tools, classpath, + libcurl, libglib2, liblockfile, libpng, libsoup, libxml2, + lighttpd, ltp-testsuite, lvm2, matchbox, memstat, + gst-plugins-good, gstreamer, libogg, libvorbis, mplayer, + neon, openssl, pciutils, php, qt, ruby, sawman, webkit, + wpa-supplicant, xdriver_xf86-input-synaptics, + xdriver_xf86-video-intel, xlib_libXfont, xlib_libXft, + xlib_libXt, xproto_xproto, xserver-xorg, xutil_makedepend, + xutil_util-macros. + + Issues resolved (http://bugs.uclibc.org): + + #83: liblockfile fails to compile due to eaccess redefinition + #163: Xtensa architecture port + #171: xorg-server / kernel headers 2.6.26 - vm86.c compilation issue + #241: device mapper + lvm2: build together + #243: ctorrent: new package + #247: ntfsprogs: new package + #271: Library 'libgcc_s.so.1' not installed in search path + #287: New package libnl + #289: New package iw + #331: Update MPlayer to version 1.0rc2 + #333: Bump sqlite package to 3.6.15 + #349: update libsoup to version 2.26.2 + #357: New package netstat-nat + #359,#413: Upgrade openvpn to Makefile.autotools.in + #367: linux kernel compile error for arm926t + #369: Add SDL_gfx package + #373: Support for building gstreamer without libxml + #379: update DirectFB to version 1.4.0 + #383: gst-plugins-good: Allow soup plugin to be configured + #385: neon: Fix pkgconfig dependency + #387: Tremor not installed to toolchain + #389: New package bmon + #391: gstreamer: Bump version to 0.10.23 + #393: gst-plugins-base: Bump version to 0.10.23 + #395: gst-plugins-bad: New package + #403: Error while building iso9660 image + #409: Bump php package to 5.2.10 + #411: ipsec-tools: Bump version to 0.7.2 + #417: New package spawn-fcgi + #419: Bump lighttpd package to 1.4.23 + #421: toolchain: Clean up toolchain locale support menu + #427: webkit: Update to WebKit svn r44552 + #437: ltp-testsuite: Bump version to 20090630 + #451: Upgrade from unmaintained dosfstools-2.11 to dosfstools-3.0.3 + #467: DirectFB 1.4.1 + #473: memstat_0.5.tar.gz has install with -D and that fails "make" + #491: libxml2: Bump version to 0.7.3 + #495: Bump bind package to 9.5.1-P3 (security) + #497: OpenSSL RSA key generation hangs on x86_64 + #509: Bump sqlite package to 3.6.16 + #523: pciutils broken with external toolchain + #533: Update gamin to 0.1.10 to fix compilation + +2009.05, Released June 1st, 2009: + + Fixes for dropbear & diffutils, bump linux-advanced 2.6.29.x + version and marked ubifsroot as broken. + +2009.05-rc3, Released May 27th, 2009: + + Fixes for toolchain (gcc arm pr37436), stable kernel versions, + busybox, curl, libusb, readline, python and strace. + + Issues resolved (http://bugs.uclibc.org): + + #345: libcurl package needs a urandom fix + +2009.05-rc2, Released May 19th, 2009: + + Fixes for toolchain (gcc w/softfloat on ppc, 3.4.6 buildfix + for newer hosts), stable kernel versions, busybox, cups, + dmraid, docker, mesa3d, rsync and updated defconfigs. + + xserver marked as broken on AVR32 and atngw100-expanded + config removed. + + Issues resolved (http://bugs.uclibc.org): + + #167: metacity does not build + #295: gamin installs python support even if python is disabled + #323: gen_matypes fails to execute during build of Mesa when us... + +2009.05-rc1, Released May 5th, 2009: + + Fixes all over the tree, further conversion of packages to + Makefile.autotools.in and we now build host versions of + packages where needed for build time dependencies instead of + relying on the correct versions being available on the build + host. Ancient toolchain / busybox versions have furthermore + been removed as announced in the 2009.02 release notes. + + New packages: flac, gob2, lzop, taglib, wpa_supplicant + + Updated packages: avahi, bind, binutils, busybox, dbus, dbus-glib, + directfb, dnsmasq, freetype, gcc, gmp, gstreamer, iptables, kernel + headers, kexec, libglib2, libpng, libsndfile, lua, mpfr, ntfs-3g, + openssl, php, qtopia4, rsync, samba, sqlite, tar, uboot, uclibc, + util-linux, xorg7, xerces + + Issues resolved (http://bugs.uclibc.org): + + #5,#77,#141,#143: Convert php package to Makefile.autotools.in + and a ton of other improvements + #19: page.h missing by util-linux + #37: update libglib2 to version 2.18.4 + #61: tslib puts staging_dir into pkgconfig file + #69: tar refuses to build + #71,#175: ./wchar.h:41:12: error: empty filename in #include + #73: Bump openssl package to the latest version + #81: New package wpa_supplicant + #99: new package: flac + #101: update gstreamer packages + #105,#313: menuconfig segfaults on tinyx if wchar is not + selected + #107: convert libvorbis to Makefile.autotools.in + #109: Make pppd package avoid bsd err + #111: binutils 2.17 fails to build when texinfo >= 4.10 + #133: Modify ncurses5-config to get correct include path + #137: Bump php to version 5.2.9 + #139: Bump sqlite to 3.6.11 and convert to + Makefile.autotools.in + #145: Bump bind package to 9.5.1-P1 (security) + #147: buildroot toolchain fails to build w/binutils-2.19.1 + #151: openssl package trivial fixes + #161: vim fails on patching with errors in configure.patch + #169: blackbox-0.70.1 does not build + #177: xdriver_xf86-input-keyboard does not build + #179: Upgrade dropbear to Makefile.autotools.in + #181: Update to Xorg 7.4 + #187: ntfs-3g: could not build cross + #191: alsa-lib ARM binaries always built with EABI + #213: Bump wpa_supplicant package to version 0.6.9 + #217: Bump openssl package to 0.9.8k (security) + #219: Toolchain build fails on m4 + #225: m4 macros are out of place + #233: make ipv6 optional in iptables + #237: ncftp: convert to Makefile.autotools.in + #239: ntfs-3g: convert to Makefile.autotools.in + #245: lzop: new package + #271: Bump bind package to 9.5.1-P2 (security) + #277: Bump sqlite package to 3.6.16 + #279: update libglib2 to version 2.20.1 + #281: update DirectFB to version 1.2.8 + #283: add taglib + #285: compilation of samba fails if IPV6 support is missing + #293: update samba to version 3.3.3 + #299: add shared-mime-info package + #307: make openssl package respect build flags diff --git a/COPYING b/COPYING new file mode 100644 index 000000000..0c018b039 --- /dev/null +++ b/COPYING @@ -0,0 +1,355 @@ +With the exceptions below, Buildroot is distributed under the terms of +the GNU General Public License, reproduced below; either version 2 of +the License, or (at your option) any later version. + +Some files in Buildroot contain a different license statement. Those +files are licensed under the license contained in the file itself. + +Buildroot also bundles patch files, which are applied to the sources +of the various packages. Those patches are not covered by the license +of Buildroot. Instead, they are covered by the license of the software +to which the patches are applied. When said software is available +under multiple licenses, the Buildroot patches are only provided under +the publicly accessible licenses. + +----------------------------------------------------------------- + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/Config.in b/Config.in new file mode 100644 index 000000000..3c57c591a --- /dev/null +++ b/Config.in @@ -0,0 +1,954 @@ +# + +mainmenu "Buildroot $BR2_VERSION Configuration" + +config BR2_HAVE_DOT_CONFIG + bool + default y + +config BR2_VERSION + string + option env="BR2_VERSION_FULL" + +config BR2_HOSTARCH + string + option env="HOSTARCH" + +config BR2_BASE_DIR + string + option env="BASE_DIR" + +# br2-external paths definitions +source "$BR2_BASE_DIR/.br2-external.in.paths" + +# Hidden config symbols for packages to check system gcc version +config BR2_HOST_GCC_VERSION + string + option env="HOST_GCC_VERSION" + +config BR2_HOST_GCC_AT_LEAST_4_9 + bool + default y if BR2_HOST_GCC_VERSION = "4 9" + +config BR2_HOST_GCC_AT_LEAST_5 + bool + default y if BR2_HOST_GCC_VERSION = "5" + select BR2_HOST_GCC_AT_LEAST_4_9 + +config BR2_HOST_GCC_AT_LEAST_6 + bool + default y if BR2_HOST_GCC_VERSION = "6" + select BR2_HOST_GCC_AT_LEAST_5 + +config BR2_HOST_GCC_AT_LEAST_7 + bool + default y if BR2_HOST_GCC_VERSION = "7" + select BR2_HOST_GCC_AT_LEAST_6 + +config BR2_HOST_GCC_AT_LEAST_8 + bool + default y if BR2_HOST_GCC_VERSION = "8" + select BR2_HOST_GCC_AT_LEAST_7 + +config BR2_HOST_GCC_AT_LEAST_9 + bool + default y if BR2_HOST_GCC_VERSION = "9" + select BR2_HOST_GCC_AT_LEAST_8 + +# When adding new entries above, be sure to update +# the HOSTCC_MAX_VERSION variable in the Makefile. + +# Hidden boolean selected by packages in need of Java in order to build +# (example: kodi) +config BR2_NEEDS_HOST_JAVA + bool + +# Hidden boolean selected by pre-built packages for x86, when they +# need to run on x86-64 machines (example: pre-built external +# toolchains, binary tools like SAM-BA, etc.). +config BR2_HOSTARCH_NEEDS_IA32_LIBS + bool + +# Hidden boolean selected by packages that need to build 32 bits +# binaries with the host compiler, even on 64 bits build machines (e.g +# bootloaders). +config BR2_HOSTARCH_NEEDS_IA32_COMPILER + bool + +# Hidden boolean selected by packages that need the host to have an +# UTF8 locale. +config BR2_NEEDS_HOST_UTF8_LOCALE + bool + +# Hidden boolean selected by packages that need the host to have +# support for building gcc plugins +config BR2_NEEDS_HOST_GCC_PLUGIN_SUPPORT + bool + +source "arch/Config.in" + +source "toolchain/Config.in" + +menu "Build options" + +menu "Commands" + +config BR2_WGET + string "Wget command" + default "wget --passive-ftp -nd -t 3" + +config BR2_SVN + string "Subversion (svn) command" + default "svn --non-interactive" + +config BR2_BZR + string "Bazaar (bzr) command" + default "bzr" + +config BR2_GIT + string "Git command" + default "git" + +config BR2_CVS + string "CVS command" + default "cvs" + +config BR2_LOCALFILES + string "Local files retrieval command" + default "cp" + +config BR2_SCP + string "Secure copy (scp) command" + default "scp" + +config BR2_SFTP + string "Secure file transfer (sftp) command" + default "sftp" + +config BR2_HG + string "Mercurial (hg) command" + default "hg" + +config BR2_ZCAT + string "zcat command" + default "gzip -d -c" + help + Command to be used to extract a gzip'ed file to stdout. zcat + is identical to gunzip -c except that the former may not be + available on your system. + Default is "gzip -d -c" + Other possible values include "gunzip -c" or "zcat". + +config BR2_BZCAT + string "bzcat command" + default "bzcat" + help + Command to be used to extract a bzip2'ed file to stdout. + bzcat is identical to bunzip2 -c except that the former may + not be available on your system. + Default is "bzcat" + Other possible values include "bunzip2 -c" or "bzip2 -d -c". + +config BR2_XZCAT + string "xzcat command" + default "xzcat" + help + Command to be used to extract a xz'ed file to stdout. + Default is "xzcat" + +config BR2_LZCAT + string "lzcat command" + default "lzip -d -c" + help + Command to be used to extract a lzip'ed file to stdout. + Default is "lzip -d -c" + +config BR2_TAR_OPTIONS + string "Tar options" + default "" + help + Options to pass to tar when extracting the sources. + E.g. " -v --exclude='*.svn*'" to exclude all .svn internal + files and to be verbose. + +endmenu + +config BR2_DEFCONFIG_FROM_ENV + string + option env="BR2_DEFCONFIG" + +config BR2_DEFCONFIG + string "Location to save buildroot config" + default BR2_DEFCONFIG_FROM_ENV if BR2_DEFCONFIG_FROM_ENV != "" + default "$(CONFIG_DIR)/defconfig" + help + When running 'make savedefconfig', the defconfig file will be + saved in this location. + +config BR2_DL_DIR + string "Download dir" + default "$(TOPDIR)/dl" + help + Directory to store all the source files that we need to fetch. + If the Linux shell environment has defined the BR2_DL_DIR + environment variable, then this overrides this configuration + item. + The directory is organized with a subdirectory for each + package. Each package has its own $(LIBFOO_DL_DIR) variable + that can be used to find the correct path. + + The default is $(TOPDIR)/dl + +config BR2_HOST_DIR + string "Host dir" + default "$(BASE_DIR)/host" + help + Directory to store all the binary files that are built for the + host. This includes the cross compilation toolchain when + building the internal buildroot toolchain. + + The default is $(BASE_DIR)/host + +menu "Mirrors and Download locations" + +config BR2_PRIMARY_SITE + string "Primary download site" + default "" + help + Primary site to download from. If this option is set then + buildroot will try to download package source first from this + site and try the default if the file is not found. + Valid URIs are: + - URIs recognized by $(WGET) + - local URIs of the form file://absolutepath + - scp URIs of the form scp://[user@]host:path. + +config BR2_PRIMARY_SITE_ONLY + bool "Only allow downloads from primary download site" + depends on BR2_PRIMARY_SITE != "" + help + If this option is enabled, downloads will only be attempted + from the primary download site. Other locations, like the + package's official download location or the backup download + site, will not be considered. Therefore, if the package is not + present on the primary site, the download fails. + + This is useful for project developers who want to ensure that + the project can be built even if the upstream tarball + locations disappear. + +if !BR2_PRIMARY_SITE_ONLY + +config BR2_BACKUP_SITE + string "Backup download site" + default "http://sources.buildroot.net" + help + Backup site to download from. If this option is set then + buildroot will fall back to download package sources from here + if the normal location fails. + +config BR2_KERNEL_MIRROR + string "Kernel.org mirror" + default "https://cdn.kernel.org/pub" + help + kernel.org is mirrored on a number of servers around the + world. The following allows you to select your preferred + mirror. By default, a CDN is used, which automatically + redirects to a mirror geographically close to you. + + Have a look on the kernel.org site for a list of mirrors, then + enter the URL to the base directory. Examples: + + http://www.XX.kernel.org/pub (XX = country code) + http://mirror.aarnet.edu.au/pub/ftp.kernel.org + +config BR2_GNU_MIRROR + string "GNU Software mirror" + default "http://ftpmirror.gnu.org" + help + GNU has multiple software mirrors scattered around the + world. The following allows you to select your preferred + mirror. By default, a generic address is used, which + automatically selects an up-to-date and local mirror. + + Have a look on the gnu.org site for a list of mirrors, then + enter the URL to the base directory. Examples: + + http://ftp.gnu.org/pub/gnu + http://mirror.aarnet.edu.au/pub/gnu + +config BR2_LUAROCKS_MIRROR + string "LuaRocks mirror" + default "http://rocks.moonscript.org" + help + LuaRocks repository. + + See http://luarocks.org + +config BR2_CPAN_MIRROR + string "CPAN mirror (Perl packages)" + default "http://cpan.metacpan.org" + help + CPAN (Comprehensive Perl Archive Network) is a repository of + Perl packages. It has multiple software mirrors scattered + around the world. This option allows you to select a mirror. + + The list of mirrors is available at: + http://search.cpan.org/mirror + +endif + +endmenu + +config BR2_JLEVEL + int "Number of jobs to run simultaneously (0 for auto)" + default "0" + help + Number of jobs to run simultaneously. If 0, determine + automatically according to number of CPUs on the host system. + +config BR2_CCACHE + bool "Enable compiler cache" + help + This option will enable the use of ccache, a compiler cache. + It will cache the result of previous builds to speed up future + builds. By default, the cache is stored in + $HOME/.buildroot-ccache. + + Note that Buildroot does not try to invalidate the cache + contents when the compiler changes in an incompatible way. + Therefore, if you make a change to the compiler version and/or + configuration, you are responsible for purging the ccache + cache by removing the $HOME/.buildroot-ccache directory. + +if BR2_CCACHE + +config BR2_CCACHE_DIR + string "Compiler cache location" + default "$(HOME)/.buildroot-ccache" + help + Where ccache should store cached files. + If the Linux shell environment has defined the BR2_CCACHE_DIR + environment variable, then this overrides this configuration + item. + +config BR2_CCACHE_INITIAL_SETUP + string "Compiler cache initial setup" + help + Initial ccache settings to apply, such as --max-files or + --max-size. + + For example, if your project is known to require more space + than the default max cache size, then you might want to + increase the cache size to a suitable amount using the -M + (--max-size) option. + + The string you specify here is passed verbatim to ccache. + Refer to ccache documentation for more details. + + These initial settings are applied after ccache has been + compiled. + +config BR2_CCACHE_USE_BASEDIR + bool "Use relative paths" + default y + help + Allow ccache to convert absolute paths within the output + directory into relative paths. + + During the build, many -I include directives are given with an + absolute path. These absolute paths end up in the hashes that + are computed by ccache. Therefore, when you build from a + different directory, the hash will be different and the cached + object will not be used. + + To improve cache performance, set this option to y. This + allows ccache to rewrite absolute paths within the output + directory into relative paths. Note that only paths within the + output directory will be rewritten; therefore, if you change + BR2_HOST_DIR to point outside the output directory and + subsequently move it to a different location, this will lead + to cache misses. + + This option has as a result that the debug information in the + object files also has only relative paths. Therefore, make + sure you cd to the build directory before starting gdb. See + the section "COMPILING IN DIFFERENT DIRECTORIES" in the ccache + manual for more information. + +endif + +config BR2_ENABLE_DEBUG + bool "build packages with debugging symbols" + help + Build packages with debugging symbols enabled. All libraries + and binaries in the 'staging' directory will have debugging + symbols, which allows remote debugging even if libraries and + binaries are stripped on the target. Whether libraries and + binaries are stripped on the target is controlled by the + BR2_STRIP_* options below. + +if BR2_ENABLE_DEBUG +choice + prompt "gcc debug level" + default BR2_DEBUG_2 + help + Set the debug level for gcc + +config BR2_DEBUG_1 + bool "debug level 1" + help + Debug level 1 produces minimal information, enough for making + backtraces in parts of the program that you don't plan to + debug. This includes descriptions of functions and external + variables, but no information about local variables and no + line numbers. + +config BR2_DEBUG_2 + bool "debug level 2" + help + The default gcc debug level is 2 + +config BR2_DEBUG_3 + bool "debug level 3" + help + Level 3 includes extra information, such as all the macro + definitions present in the program. Some debuggers support + macro expansion when you use -g3. +endchoice +endif + +config BR2_ENABLE_RUNTIME_DEBUG + bool "build packages with runtime debugging info" + help + Some packages may have runtime assertions, extra traces, and + similar runtime elements that can help debugging. However, + these elements may negatively influence performance so should + normally not be enabled on production systems. + + Enable this option to enable such runtime debugging. + + Note: disabling this option is not a guarantee that all + packages effectively removed these runtime debugging elements. + +config BR2_STRIP_strip + bool "strip target binaries" + default y + depends on BR2_BINFMT_ELF + help + Binaries and libraries in the target filesystem will be + stripped using the normal 'strip' command. This allows to save + space, mainly by removing debugging symbols. Debugging symbols + on the target are needed for native debugging, but not when + remote debugging is used. + +config BR2_STRIP_EXCLUDE_FILES + string "executables that should not be stripped" + default "" + depends on BR2_STRIP_strip + help + You may specify a space-separated list of binaries and + libraries here that should not be stripped on the target. + +config BR2_STRIP_EXCLUDE_DIRS + string "directories that should be skipped when stripping" + default "" + depends on BR2_STRIP_strip + help + You may specify a space-separated list of directories that + should be skipped when stripping. Binaries and libraries in + these directories will not be touched. The directories should + be specified relative to the target directory, without leading + slash. + +choice + prompt "gcc optimization level" + default BR2_OPTIMIZE_S + help + Set the optimization level for gcc + +config BR2_OPTIMIZE_0 + bool "optimization level 0" + help + Do not optimize. + +config BR2_OPTIMIZE_1 + bool "optimization level 1" + help + Optimize. Optimizing compilation takes somewhat more time, and + a lot more memory for a large function. With -O, the compiler + tries to reduce code size and execution time, without + performing any optimizations that take a great deal of + compilation time. -O turns on the following optimization + flags: -fdefer-pop -fdelayed-branch -fguess-branch-probability + -fcprop-registers -floop-optimize -fif-conversion + -fif-conversion2 -ftree-ccp -ftree-dce -ftree-dominator-opts + -ftree-dse -ftree-ter -ftree-lrs -ftree-sra -ftree-copyrename + -ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants. -O + also turns on -fomit-frame-pointer on machines where doing so + does not interfere with debugging. + +config BR2_OPTIMIZE_2 + bool "optimization level 2" + help + Optimize even more. GCC performs nearly all supported + optimizations that do not involve a space-speed tradeoff. The + compiler does not perform loop unrolling or function inlining + when you specify -O2. As compared to -O, this option increases + both compilation time and the performance of the generated + code. -O2 turns on all optimization flags specified by -O. It + also turns on the following optimization flags: + -fthread-jumps -fcrossjumping -foptimize-sibling-calls + -fcse-follow-jumps -fcse-skip-blocks -fgcse -fgcse-lm + -fexpensive-optimizations -fstrength-reduce + -frerun-cse-after-loop -frerun-loop-opt -fcaller-saves + -fpeephole2 -fschedule-insns -fschedule-insns2 + -fsched-interblock -fsched-spec -fregmove -fstrict-aliasing + -fdelete-null-pointer-checks -freorder-blocks + -freorder-functions -falign-functions -falign-jumps + -falign-loops -falign-labels -ftree-vrp -ftree-pre. Please + note the warning under -fgcse about invoking -O2 on programs + that use computed gotos. + +config BR2_OPTIMIZE_3 + bool "optimization level 3" + help + Optimize yet more. -O3 turns on all optimizations specified by + -O2 and also turns on the -finline-functions, -funswitch-loops + and -fgcse-after-reload options. + +config BR2_OPTIMIZE_G + bool "optimize for debugging" + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 + help + Optimize for debugging. This enables optimizations that do not + interfere with debugging. It should be the optimization level + of choice for the standard edit-compile-debug cycle, offering + a reasonable level of optimization while maintaining fast + compilation and a good debugging experience. + +config BR2_OPTIMIZE_S + bool "optimize for size" + help + Optimize for size. -Os enables all -O2 optimizations that do + not typically increase code size. It also performs further + optimizations designed to reduce code size. -Os disables the + following optimization flags: -falign-functions -falign-jumps + -falign-loops -falign-labels -freorder-blocks + -freorder-blocks-and-partition -fprefetch-loop-arrays + -ftree-vect-loop-version + This is the default. + +config BR2_OPTIMIZE_FAST + bool "optimize for fast (may break packages!)" + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_6 + help + Optimize for fast. Disregard strict standards + compliance. -Ofast enables all -O3 optimizations. It also + enables optimizations that are not valid for all + standard-compliant programs, so be careful, as it may break + some packages. It turns on -ffast-math and the + Fortran-specific -fstack-arrays, unless -fmax-stack-var-size + is specified, and -fno-protect-parens. + +endchoice + +config BR2_ENABLE_LTO + bool "build packages with link-time optimisation" + help + Enable the link-time optimisation (LTO) option when building + packages. Link-time optimisation re-runs optimisations at + link time, which allows the compiler to do interprocedural + analysis across compilation units and thus come with better + results: smaller size and better performance. + + Note that this analysis is limited to statically linked + object files and libraries. + + This option may significantly increase build times, + sometimes 5 times longer, with only limited gains. + + At this time, this option only enables LTO in packages that + have an explicit configuration option for it. Other packages + always enable LTO, but most packages never enable LTO. + +config BR2_GOOGLE_BREAKPAD_ENABLE + bool "Enable google-breakpad support" + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 + depends on BR2_USE_WCHAR + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on (BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_UCLIBC) + depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS + depends on BR2_PACKAGE_HOST_GOOGLE_BREAKPAD_ARCH_SUPPORTS + select BR2_PACKAGE_GOOGLE_BREAKPAD + help + This option will enable the use of google breakpad, a library + and tool suite that allows you to distribute an application to + users with compiler-provided debugging information removed, + record crashes in compact "minidump" files, send them back to + your server and produce C and C++ stack traces from these + minidumps. Breakpad can also write minidumps on request for + programs that have not crashed. + +if BR2_GOOGLE_BREAKPAD_ENABLE + +config BR2_GOOGLE_BREAKPAD_INCLUDE_FILES + string "List of executables and libraries to extract symbols from" + default "" + help + You may specify a space-separated list of binaries and + libraries with full paths relative to $(TARGET_DIR) of which + debug symbols will be dumped for further use with google + breakpad. + + A directory structure that can be used by minidump-stackwalk + will be created at: + + $(STAGING_DIR)/usr/share/google-breakpad-symbols + +endif + +choice + bool "libraries" + default BR2_SHARED_LIBS if BR2_BINFMT_SUPPORTS_SHARED + default BR2_STATIC_LIBS if !BR2_BINFMT_SUPPORTS_SHARED + help + Select the type of libraries you want to use on the target. + + The default is to build dynamic libraries and use those on the + target filesystem, except when the architecture and/or the + selected binary format does not support shared libraries. + +config BR2_STATIC_LIBS + bool "static only" + depends on !BR2_TOOLCHAIN_USES_GLIBC + help + Build and use only static libraries. No shared libraries will + be installed on the target. This potentially increases your + code size and should only be used if you know what you are + doing. Note that some packages may not be available when this + option is enabled, due to their need for dynamic library + support. + +comment "static only needs a toolchain w/ uclibc or musl" + depends on BR2_TOOLCHAIN_USES_GLIBC + +config BR2_SHARED_LIBS + bool "shared only" + depends on BR2_BINFMT_SUPPORTS_SHARED + help + Build and use only shared libraries. This is the recommended + solution as it saves space and build time. + +config BR2_SHARED_STATIC_LIBS + bool "both static and shared" + depends on BR2_BINFMT_SUPPORTS_SHARED + help + Build both shared and static libraries, but link executables + dynamically. While building both shared and static libraries + take more time and more disk space, having static libraries + may be useful to link some of the applications statically. + +endchoice + +config BR2_PACKAGE_OVERRIDE_FILE + string "location of a package override file" + default "$(CONFIG_DIR)/local.mk" + help + A package override file is a short makefile that contains + variable definitions of the form _OVERRIDE_SRCDIR, which + allows to tell Buildroot to use an existing directory as the + source directory for a particular package. See the Buildroot + documentation for more details on this feature. + +config BR2_GLOBAL_PATCH_DIR + string "global patch directories" + help + You may specify a space separated list of one or more + directories containing global package patches. For a specific + version of a specific package , + patches are applied as follows: + + First, the default Buildroot patch set for the package is + applied from the package's directory in Buildroot. + + Then for every directory - - that exists in + BR2_GLOBAL_PATCH_DIR, if the directory + /// exists, + then all *.patch files in this directory will be applied. + + Otherwise, if the directory / + exists, then all *.patch files in the directory will be + applied. + +menu "Advanced" + +config BR2_COMPILER_PARANOID_UNSAFE_PATH + bool "paranoid check of library/header paths" + default y + help + By default, when this option is disabled, when the Buildroot + cross-compiler will encounter an unsafe library or header path + (such as /usr/include, or /usr/lib), the compiler will display + a warning. + + By enabling this option, this warning is turned into an error, + which will completely abort the build when such unsafe paths + are encountered. + + Note that this mechanism is available for both the internal + toolchain (through the toolchain wrapper and binutils patches) + and external toolchain backends (through the toolchain + wrapper). + +config BR2_FORCE_HOST_BUILD + bool "Force the building of host dependencies" + help + Build all available host dependencies, even if they are + already installed on the system. + + This option can be used to ensure that the download cache of + source archives for packages remain consistent between + different build hosts. + + This option will increase build time. + +config BR2_REPRODUCIBLE + bool "Make the build reproducible (experimental)" + # SOURCE_DATE_EPOCH support in toolchain-wrapper requires GCC 4.4 + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_4 + help + This option will remove all sources of non-reproducibility + from the build process. For a given Buildroot configuration, + this allows to generate exactly identical binaries from one + build to the other, including on different machines. + + The current implementation is restricted to builds with the + same output directory. Many (absolute) paths are recorded in + intermediary files, and it is very likely that some of these + paths leak into the target rootfs. If you build with the + same O=... path, however, the result is identical. + + This is labeled as an experimental feature, as not all + packages behave properly to ensure reproducibility. + +config BR2_PER_PACKAGE_DIRECTORIES + bool "Use per-package directories (experimental)" + help + This option will change the build process of Buildroot + package to use per-package target and host directories. + + This is useful for two related purposes: + + - Cleanly isolate the build of each package, so that a + given package only "sees" the dependencies it has + explicitly expressed, and not other packages that may + have by chance been built before. + + - Enable top-level parallel build. + + This is labeled as an experimental feature, as not all + packages behave properly with per-package directories. + +endmenu + +comment "Security Hardening Options" + +config BR2_PIC_PIE_ARCH_SUPPORTS + bool + default y + # Microblaze glibc toolchains don't work with PIC/PIE enabled + depends on !BR2_microblaze + # Nios2 toolchains produce non working binaries with -fPIC + depends on !BR2_nios2 + +config BR2_PIC_PIE + bool "Build code with PIC/PIE" + default y + depends on BR2_PIC_PIE_ARCH_SUPPORTS + depends on BR2_SHARED_LIBS + depends on BR2_TOOLCHAIN_SUPPORTS_PIE + help + Generate Position-Independent Code (PIC) and link + Position-Independent Executables (PIE). + +comment "PIC/PIE needs a toolchain w/ PIE" + depends on BR2_PIC_PIE_ARCH_SUPPORTS + depends on BR2_SHARED_LIBS + depends on !BR2_TOOLCHAIN_SUPPORTS_PIE + +choice + bool "Stack Smashing Protection" + default BR2_SSP_ALL if BR2_ENABLE_SSP # legacy + default BR2_SSP_STRONG if BR2_TOOLCHAIN_HAS_SSP_STRONG + default BR2_SSP_REGULAR + depends on BR2_TOOLCHAIN_HAS_SSP + help + Enable stack smashing protection support using GCC's + -fstack-protector option family. + + See + http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt + for details. + + Note that this requires the toolchain to have SSP support. + This is always the case for glibc and eglibc toolchain, but is + optional in uClibc toolchains. + +config BR2_SSP_NONE + bool "None" + help + Disable stack-smashing protection. + +config BR2_SSP_REGULAR + bool "-fstack-protector" + help + Emit extra code to check for buffer overflows, such as stack + smashing attacks. This is done by adding a guard variable to + functions with vulnerable objects. This includes functions + that call alloca, and functions with buffers larger than 8 + bytes. The guards are initialized when a function is entered + and then checked when the function exits. If a guard check + fails, an error message is printed and the program exits. + +config BR2_SSP_STRONG + bool "-fstack-protector-strong" + depends on BR2_TOOLCHAIN_HAS_SSP_STRONG + help + Like -fstack-protector but includes additional functions to be + protected - those that have local array definitions, or have + references to local frame addresses. + + -fstack-protector-strong officially appeared in gcc 4.9, but + some vendors have backported -fstack-protector-strong to older + versions of gcc. + +config BR2_SSP_ALL + bool "-fstack-protector-all" + help + Like -fstack-protector except that all functions are + protected. This option might have a significant performance + impact on the compiled binaries. + +endchoice + +config BR2_SSP_OPTION + string + default "-fstack-protector" if BR2_SSP_REGULAR + default "-fstack-protector-strong" if BR2_SSP_STRONG + default "-fstack-protector-all" if BR2_SSP_ALL + +comment "Stack Smashing Protection needs a toolchain w/ SSP" + depends on !BR2_TOOLCHAIN_HAS_SSP + +choice + bool "RELRO Protection" + default BR2_RELRO_FULL if BR2_TOOLCHAIN_SUPPORTS_PIE + default BR2_RELRO_PARTIAL + depends on BR2_SHARED_LIBS + help + Enable a link-time protection know as RELRO (RELocation Read + Only) which helps to protect from certain type of exploitation + techniques altering the content of some ELF sections. + +config BR2_RELRO_NONE + bool "None" + help + Disables Relocation link-time protections. + +config BR2_RELRO_PARTIAL + bool "Partial" + help + This option makes the dynamic section not writeable after + initialization (with almost no performance penalty). + +config BR2_RELRO_FULL + bool "Full" + depends on BR2_PIC_PIE_ARCH_SUPPORTS + depends on BR2_TOOLCHAIN_SUPPORTS_PIE + select BR2_PIC_PIE + help + This option includes the partial configuration, but also marks + the GOT as read-only at the cost of initialization time during + program loading, i.e every time an executable is started. + +comment "RELRO Full needs a toolchain w/ PIE" + depends on BR2_PIC_PIE_ARCH_SUPPORTS + depends on !BR2_TOOLCHAIN_SUPPORTS_PIE + +endchoice + +comment "RELocation Read Only (RELRO) needs shared libraries" + depends on !BR2_SHARED_LIBS + +config BR2_FORTIFY_SOURCE_ARCH_SUPPORTS + bool + default y + # Microblaze glibc toolchains don't work with Fortify Source enabled + depends on !BR2_microblaze + +choice + bool "Buffer-overflow Detection (FORTIFY_SOURCE)" + default BR2_FORTIFY_SOURCE_1 + depends on BR2_FORTIFY_SOURCE_ARCH_SUPPORTS + depends on BR2_TOOLCHAIN_USES_GLIBC + depends on !BR2_OPTIMIZE_0 + help + Enable the _FORTIFY_SOURCE macro which introduces additional + checks to detect buffer-overflows in the following standard + library functions: memcpy, mempcpy, memmove, memset, strcpy, + stpcpy, strncpy, strcat, strncat, sprintf, vsprintf, snprintf, + vsnprintf, gets. + + NOTE: This feature requires an optimization level of s/1/2/3/g + + Support for this feature has been present since GCC 4.x. + +config BR2_FORTIFY_SOURCE_NONE + bool "None" + help + Disables additional checks to detect buffer-overflows. + +config BR2_FORTIFY_SOURCE_1 + bool "Conservative" + # gcc bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61164 + depends on !BR2_TOOLCHAIN_BUILDROOT || BR2_TOOLCHAIN_GCC_AT_LEAST_6 + help + This option sets _FORTIFY_SOURCE to 1 and only introduces + checks that shouldn't change the behavior of conforming + programs. Adds checks at compile-time only. + +config BR2_FORTIFY_SOURCE_2 + bool "Aggressive" + # gcc bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61164 + depends on !BR2_TOOLCHAIN_BUILDROOT || BR2_TOOLCHAIN_GCC_AT_LEAST_6 + help + This option sets _FORTIFY_SOURCES to 2 and some more + checking is added, but some conforming programs might fail. + Also adds checks at run-time (detected buffer overflow + terminates the program) + +endchoice + +comment "Fortify Source needs a glibc toolchain and optimization" + depends on BR2_FORTIFY_SOURCE_ARCH_SUPPORTS + depends on (!BR2_TOOLCHAIN_USES_GLIBC || BR2_OPTIMIZE_0) +endmenu + +source "system/Config.in" + +source "linux/Config.in" + +source "package/Config.in" + +source "fs/Config.in" + +source "boot/Config.in" + +source "package/Config.in.host" + +source "Config.in.legacy" + +# br2-external menus definitions +source "$BR2_BASE_DIR/.br2-external.in.menus" diff --git a/Config.in.legacy b/Config.in.legacy new file mode 100644 index 000000000..03814c037 --- /dev/null +++ b/Config.in.legacy @@ -0,0 +1,4881 @@ +# +# Config.in.legacy - support for backward compatibility +# +# When an existing Config.in symbol is removed, it should be added again in +# this file, and take appropriate action to approximate backward compatibility. +# This will make the transition for the user more convenient. +# +# When adding legacy symbols to this file, add them to the front. The oldest +# symbols will be removed again after about two years. +# +# The symbol should be copied as-is from the place where it was previously +# defined, but the help text should be removed or replaced with something that +# explains how to fix it. +# +# For bool options, the old symbol should select BR2_LEGACY, so that the user +# is informed at build-time about selected legacy options. +# If there is an equivalent (set of) new symbols, these should be select'ed by +# the old symbol for backwards compatibility. +# It is not possible to select an option that is part of a choice. In that +# case, the new option should use the old symbol as default. This requires a +# change outside of Config.in.legacy, and this should be clearly marked as such +# in a comment, so that removal of legacy options also include the removal of +# these external references. +# +# [Example: renaming a bool option that is part of a choice from FOO to BAR] +# original choice: +# choice +# prompt "Choose foobar" +# config BR2_FOO_1 +# bool "foobar 1" +# config BR2_FOO_2 +# bool "foobar 2" +# endchoice +# +# becomes: +# choice +# prompt "Choose foobar" +# default BR2_BAR_1 if BR2_FOO_1 # legacy +# default BR2_BAR_2 if BR2_FOO_2 # legacy +# config BR2_BAR_1 +# bool "foobar 1" +# config BR2_BAR_2 +# bool "foobar 2" +# endchoice +# +# and in Config.in.legacy: +# config BR2_FOO_1 +# bool "foobar 1 has been renamed" +# help +# +# # Note: BR2_FOO_1 is still referenced from package/foo/Config.in +# config BR2_FOO_2 +# bool "foobar 2 has been renamed" +# help +# +# # Note: BR2_FOO_2 is still referenced from package/foo/Config.in +# +# [End of example] +# +# For string options, it is not possible to directly select another symbol. In +# this case, a hidden wrap bool option has to be added, that defaults to y if +# the old string is not set at its default value. The wrap symbol should select +# BR2_LEGACY. +# If the original symbol has been renamed, the new symbol should use the value +# of the old symbol as default. Like for choice options, a comment should be +# added to flag that the symbol is still used in another file. +# +# [Example: renaming a string option from FOO to BAR] +# original symbol: +# config BR2_FOO_STRING +# string "Some foo string" +# +# becomes: +# config BR2_BAR_STRING +# string "Some bar string" +# default BR2_FOO_STRING if BR2_FOO_STRING != "" # legacy +# +# and in Config.in.legacy: +# config BR2_FOO_STRING +# string "The foo string has been renamed" +# help +# +# +# config BR2_FOO_STRING_WRAP +# bool +# default y if BR2_FOO_STRING != "" +# select BR2_LEGACY +# +# # Note: BR2_FOO_STRING is still referenced from package/foo/Config.in +# +# [End of example] + +config BR2_SKIP_LEGACY + bool + option env="SKIP_LEGACY" + +if !BR2_SKIP_LEGACY + +config BR2_LEGACY + bool + help + This option is selected automatically when your old .config + uses an option that no longer exists in current buildroot. In + that case, the build will fail. Look for config options which + are selected in the menu below: they no longer exist and + should be replaced by something else. + +# This comment fits exactly in a 80-column display +comment "Legacy detected: check the content of the menu below" + depends on BR2_LEGACY + +menu "Legacy config options" + +if BR2_LEGACY +comment "----------------------------------------------------" +comment "Your old configuration uses legacy options that no " +comment "longer exist in buildroot, as indicated in the menu " +comment "below. As long as these options stay selected, or in" +comment "case of string options are non-empty, the build " +comment "will fail. " +comment "* " +comment "Where possible, an automatic conversion from old to " +comment "new symbols has been performed. Before making any " +comment "change in this legacy menu, make sure to exit the " +comment "configuration editor a first time and save the " +comment "configuration. Otherwise, the automatic conversion " +comment "of symbols will be lost. " +comment "* " +comment "After this initial save, reopen the configuration " +comment "editor, inspect the options selected below, read " +comment "their help texts, and verify/update the new " +comment "configuration in the corresponding configuration " +comment "menus. When everything is ok, you can disable the " +comment "legacy options in the menu below. Once you have " +comment "disabled all legacy options, this text will " +comment "disappear and you will be able to start the build. " +comment "* " +comment "Note: legacy options older than 5 years have been " +comment "removed, and configuration files that still have " +comment "those options set, will fail to build, or run in " +comment "unpredictable ways. " +comment "----------------------------------------------------" +endif + +############################################################################### + +comment "Legacy options removed in 2022.08" + +config BR2_ECLIPSE_REGISTER + bool "Eclipse integration removed" + select BR2_LEGACY + help + The Buildroot integration with the Eclipse IDE has been + removed, as the corresponding Eclipse plugin is no longer + maintained, and is no longer usable with current versions of + Eclipse. + +config BR2_csky + bool "csky architecture removed" + select BR2_LEGACY + help + The csky architecture was removed, by lack of toolchain + support. + +config BR2_PACKAGE_MESA3D_DRI_DRIVER_I915 + bool "mesa DRI i915 driver removed" + select BR2_LEGACY + help + The DRI i915 driver was removed upstream. + +config BR2_PACKAGE_MESA3D_DRI_DRIVER_I965 + bool "mesa DRI i965 driver removed" + select BR2_LEGACY + help + The DRI i965 driver was removed upstream. + +config BR2_PACKAGE_MESA3D_DRI_DRIVER_NOUVEAU + bool "mesa DRI nouveau driver removed" + select BR2_LEGACY + help + The DRI radeon nouveau was removed upstream. + +config BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON + bool "mesa DRI radeon r100 driver removed" + select BR2_LEGACY + help + The DRI radeon r100 driver was removed upstream. + +config BR2_GCC_VERSION_9_X + bool "gcc 9.x support removed" + select BR2_LEGACY + help + Support for gcc version 9.x has been removed. The current + default version (11.x or later) has been selected instead. + +config BR2_PACKAGE_PHP_EXT_WDDX + bool "php wddx removed" + select BR2_LEGACY + help + The WDDX extension was removed from php. + +config BR2_nds32 + bool "nds32 architecture removed" + select BR2_LEGACY + help + Support for the nds32 architecture has been removed, due to + its support being removed from the upstream Linux kernel, + and its lack of maintenance in Buildroot. + +config BR2_PACKAGE_RTL8723BS + bool "rtl8723bs removed" + select BR2_LEGACY + help + Package was removed because it is not compatible with latest + kernels and is not maintained anymore: code has been removed + in 2017 as driver is available in the linux-next tree. + +comment "Legacy options removed in 2022.05" + +config BR2_PACKAGE_KTAP + bool "ktap removed" + select BR2_LEGACY + help + Package was removed because it is not compatible with latest + kernels and is not maintained anymore (no release since 2013). + +config BR2_KERNEL_HEADERS_5_16 + bool "kernel headers version 5.16.x are no longer supported" + select BR2_LEGACY + help + Version 5.16.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_KERNEL_HEADERS_4_4 + bool "kernel headers version 4.4.x are no longer supported" + select BR2_LEGACY + help + Version 4.4.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_BINUTILS_VERSION_2_32_X + bool "binutils 2.32.x has been removed" + select BR2_LEGACY + help + binutils 2.32 has been removed, use a newer version. + +config BR2_sh2a + bool "sh2a architecture support removed" + select BR2_LEGACY + help + The SuperH 2A (SH2A) architecture was not maintained, and + broken, so its support was dropped. + +config BR2_BINUTILS_VERSION_2_35_X + bool "binutils 2.35.x has been removed" + select BR2_LEGACY + help + binutils 2.35 has been removed, use a newer version. + +config BR2_PACKAGE_BOOST_LAYOUT_TAGGED + bool "boost tagged layout removed" + select BR2_LEGACY + help + Boost tagged layout isn't handled by some packages (e.g. botan + or libcpprestsdk). + +config BR2_PACKAGE_BOOST_LAYOUT_VERSIONED + bool "boost versioned layout removed" + select BR2_LEGACY + help + Boost versioned layout isn't handled by a number of autotools + and cmake packages (e.g. azmq, cc-tool, i2pd). + +comment "Legacy options removed in 2022.02" + +config BR2_TARGET_ROOTFS_OCI_ENTRYPOINT_ARGS + string "entrypoint argumetns has been changed as command" + help + The OCI image BR2_TARGET_ROOTFS_OCI_ENTRYPOINT_ARGS option + has been renamed to BR2_TARGET_ROOTFS_OCI_CMD to better + reflect its relation to the actual 'command' of the OCI + image. + + The new semantic for BR2_TARGET_ROOTFS_OCI_CMD is slightly + differnt in relation to how it is interpreted, so be sure to + review the help entry for it. + + Due to this breaking change, the old value here could not be + set to the new variable. + +config BR2_TARGET_ROOTFS_OCI_ENTRYPOINT_ARGS_WRAP + bool + default y if BR2_TARGET_ROOTFS_OCI_ENTRYPOINT_ARGS != "" + select BR2_LEGACY + +config BR2_PACKAGE_LIBCURL_LIBNSS + bool "libcurl NSS removed" + select BR2_LEGACY + help + NSS was deprecated in libcurl 7.82.0. + +config BR2_PACKAGE_WESTON_DEFAULT_FBDEV + bool "weston fbdev removed" + select BR2_LEGACY + help + fbdev was deprecated in weston 10.0.0. + +config BR2_PACKAGE_WESTON_FBDEV + bool "weston fbdev compositor removed" + select BR2_LEGACY + help + fbdev compositor was deprecated in weston 10.0.0. + +config BR2_PACKAGE_PYTHON_PYCLI + bool "python-pycli removed" + select BR2_LEGACY + help + Package was removed because it is not compatible with python + 3.10 and is not maintained anymore (no release since 2012). + +config BR2_PACKAGE_LINUX_TOOLS_BPFTOOL + bool "bpftool was moved" + select BR2_LEGACY + select BR2_PACKAGE_BPFTOOL + help + The linux-tools bpftool build has been moved out + of the linux-tools package. + +config BR2_TARGET_UBOOT_NEEDS_PYTHON2 + bool "host-python 2.7 support for U-Boot was removed" + select BR2_LEGACY + help + Option was removed together with python 2.7 support. + +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_LIBMMS + bool "gst1-plugins-bad plugin libmms was removed" + depends on BR2_USE_WCHAR + depends on BR2_TOOLCHAIN_HAS_THREADS + select BR2_LEGACY + help + This plugin was removed with gst1-plugins-bad-1.20.0. + +config BR2_PACKAGE_PYTHON_FUNCTOOLS32 + bool "python-functools32 removed" + select BR2_LEGACY + help + Package was removed together with python 2.7 support. + +config BR2_PACKAGE_PYTHON_ENUM34 + bool "python-enum34 removed" + select BR2_LEGACY + help + Package was removed together with python 2.7 support. + +config BR2_PACKAGE_PYTHON_ENUM + bool "python-enum removed" + select BR2_LEGACY + help + Package was removed together with python 2.7 support. + +config BR2_PACKAGE_PYTHON_DIALOG + bool "python-dialog removed" + select BR2_LEGACY + help + Package was removed together with python 2.7 support. + +config BR2_PACKAGE_PYTHON_CONFIGOBJ + bool "python-configobj removed" + select BR2_LEGACY + help + Package was removed together with python 2.7 support. + +config BR2_PACKAGE_PYTHON_YIELDFROM + bool "python-yieldfrom removed" + select BR2_LEGACY + help + Package was removed together with python 2.7 support. + +config BR2_PACKAGE_PYTHON_TYPING + bool "python-typing removed" + select BR2_LEGACY + help + Package was removed together with python 2.7 support. + +config BR2_PACKAGE_PYTHON_SUBPROCESS32 + bool "python-subprocess32 removed" + select BR2_LEGACY + help + Package was removed together with python 2.7 support. + +config BR2_PACKAGE_PYTHON_SINGLEDISPATCH + bool "python-singledispatch removed" + select BR2_LEGACY + help + Package was removed together with python 2.7 support. + +config BR2_PACKAGE_PYTHON_PYRO + bool "python-pyro removed" + select BR2_LEGACY + help + Package was removed together with python 2.7 support. + +config BR2_PACKAGE_PYTHON_PYPCAP + bool "python-pypcap removed" + select BR2_LEGACY + help + Package was removed together with python 2.7 support. + +config BR2_PACKAGE_PYTHON_PATHLIB2 + bool "python-pathlib2 removed" + select BR2_LEGACY + help + Package was removed together with python 2.7 support. + +config BR2_PACKAGE_PYTHON_PAM + bool "python-pam removed" + select BR2_LEGACY + help + Package was removed together with python 2.7 support. + +config BR2_PACKAGE_PYTHON_NFC + bool "python-nfc removed" + select BR2_LEGACY + help + Package was removed together with python 2.7 support. + +config BR2_PACKAGE_PYTHON_MAD + bool "python-mad removed" + select BR2_LEGACY + help + Package was removed together with python 2.7 support. + +config BR2_PACKAGE_PYTHON_IPADDRESS + bool "python-ipaddress removed" + select BR2_LEGACY + help + Package was removed together with python 2.7 support. + +config BR2_PACKAGE_PYTHON_IPADDR + bool "python-ipaddr removed" + select BR2_LEGACY + help + Package was removed together with python 2.7 support. + +config BR2_PACKAGE_PYTHON_ID3 + bool "python-id3 removed" + select BR2_LEGACY + help + Package was removed together with python 2.7 support. + +config BR2_PACKAGE_PYTHON_FUTURES + bool "python-futures removed" + select BR2_LEGACY + help + Package was removed together with python 2.7 support. + +config BR2_PACKAGE_PYTHON_BACKPORTS_SSL_MATCH_HOSTNAME + bool "python-backports-ssl-match-hostname removed" + select BR2_LEGACY + help + Package was removed together with python 2.7 support. + +config BR2_PACKAGE_PYTHON_BACKPORTS_SHUTIL_GET_TERMINAL_SIZE + bool "python-backports-shutil-get-terminal-size removed" + select BR2_LEGACY + help + Package was removed together with python 2.7 support. + +config BR2_PACKAGE_PYTHON_BACKPORTS_ABC + bool "python-backports-abc removed" + select BR2_LEGACY + help + Package was removed together with python 2.7 support. + +config BR2_PACKAGE_PYTHON + bool "python2.7 package removed" + select BR2_LEGACY + help + Python 2.7 is EOL since April 2020 and has been removed. + + https://www.python.org/dev/peps/pep-0373/ + +config BR2_TARGET_UBOOT_ZYNQ_IMAGE + bool "Generate image for Xilinx Zynq" + select BR2_LEGACY + help + Since 2016.1, U-Boot can natively generate the Zynq boot + image, and so the Xilinx-specific format and tools have been + removed. Should you still have an older U-Boot that needs + this, a python3 version of the zynq-boot-bin.py script can be + downloaded from the URL below and called from a post-build + script. + + https://gist.githubusercontent.com/jameshilliard/e09235dfc6f96c11418a134e6ebf7890/raw/135b7480c405ae8a77a9db615e495f9a9f2d3242/zynq-boot-bin.py + +config BR2_PACKAGE_RPI_BT_FIRMWARE + bool "rpi-bt-firmware package was renamed" + depends on BR2_arm || BR2_aarch64 + select BR2_LEGACY + select BR2_PACKAGE_BRCMFMAC_SDIO_FIRMWARE_RPI + select BR2_PACKAGE_BRCMFMAC_SDIO_FIRMWARE_RPI_BT + help + Package rpi-bt-firmware was moved as option to + package brcmfmac_sdio-firmware-rpi. + +config BR2_PACKAGE_RPI_WIFI_FIRMWARE + bool "rpi-wifi-firmware package was renamed" + depends on BR2_arm || BR2_aarch64 + select BR2_LEGACY + select BR2_PACKAGE_BRCMFMAC_SDIO_FIRMWARE_RPI + select BR2_PACKAGE_BRCMFMAC_SDIO_FIRMWARE_RPI_WIFI + help + Package rpi-wifi-firmware was moved as option to + package brcmfmac_sdio-firmware-rpi. + +config BR2_PACKAGE_HOST_GDB_PYTHON + bool "GDB Python2 support removed" + select BR2_LEGACY + help + Python2 is deprecated and no longer supported. + Please migrate to Python3. + +config BR2_PACKAGE_GSTREAMER1_MM + bool "gstreamer1-mm package removed" + select BR2_LEGACY + help + This package has been removed as it is not actively + maintained anymore and does not support glibmm-2.68 API. + +config BR2_KERNEL_HEADERS_5_14 + bool "kernel headers version 5.14.x are no longer supported" + select BR2_LEGACY + help + Version 5.14.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_PACKAGE_PYTHON_BACKPORTS_FUNCTOOLS_LRU_CACHE + bool "python-backports-functools-lru-cache package removed" + select BR2_LEGACY + help + This package has been removed as python-setuptools-scm + dropped support of python 2 since version 6.0.0. + +config BR2_PACKAGE_CIVETWEB_WITH_LUA + bool "civetweb lua support option removed" + select BR2_LEGACY + help + Lua support does not depend on a version of Lua bundled + within the Civetweb sources anymore. Lua support is + automatically enabled if an Lua interpreter (lua or luajit) + is enabled in Buildroot. + +config BR2_PACKAGE_SUNXI_MALI_MAINLINE_DRIVER + bool "sunxi-mali-mainline-driver package was renamed" + select BR2_LEGACY + select BR2_PACKAGE_SUNXI_MALI_UTGARD_DRIVER + help + Since the removal of the sunxi-mali-driver package, the + sunxi-mali-mainline-driver package that coexisted became the + only package to provide the Sunxi Mali driver. The "-mainline" + suffix being undescriptive nowadays and before adding new + packages bringing Mali support for other SoCs/GPU flavors, it + is clearer to rename it SUNXI_MALI_UTGARD_DRIVER. + +config BR2_PACKAGE_SUNXI_MALI_MAINLINE + bool "sunxi-mali-mainline package was renamed" + select BR2_LEGACY + select BR2_PACKAGE_SUNXI_MALI_UTGARD + help + Since the removal of the sunxi-mali package, the + sunxi-mali-mainline package that coexisted became the only + package to provide Mali blobs. The "-mainline" suffix being + undescriptive nowadays and before adding new packages bringing + Mali support for other SoCs/GPU flavors, it is clearer to + rename it SUNXI_MALI_UTGARD. + +config BR2_PACKAGE_SUNXI_MALI_MAINLINE_R6P2 + bool "sunxi-mali-mainline-r6p2 was renamed" + select BR2_LEGACY + select BR2_PACKAGE_SUNXI_MALI_UTGARD_R6P2 + help + The sunxi-mali-mainline package has been renamed + sunxi-mali-utgard, the suboptions of this package have also + been renamed accordingly. + +config BR2_PACKAGE_SUNXI_MALI_MAINLINE_R8P1 + bool "sunxi-mali-mainline-r8p1 was renamed" + select BR2_LEGACY + select BR2_PACKAGE_SUNXI_MALI_UTGARD_R8P1 + help + The sunxi-mali-mainline package has been renamed + sunxi-mali-utgard, the suboptions of this package have also + been renamed accordingly. + +config BR2_PACKAGE_QT5WEBKIT_EXAMPLES + bool "qt5webkit-examples removed" + select BR2_LEGACY + help + The qt5webkit-examples package is unmaintained and has been + removed. + +config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_RISCV64_GLIBC_BLEEDING_EDGE + bool "Bootlin riscv64 glibc bleeding-edge toolchain removed" + select BR2_LEGACY + help + The RISC-V 64-bit LP64 Bootlin toolchains have been removed, + in favor of RISC-V 64-bit LP64D toolchains. + +config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_RISCV64_MUSL_BLEEDING_EDGE + bool "Bootlin riscv64 musl bleeding-edge toolchain removed" + select BR2_LEGACY + help + The RISC-V 64-bit LP64 Bootlin toolchains have been removed, + in favor of RISC-V 64-bit LP64D toolchains. + +config BR2_PACKAGE_IPUTILS_TFTPD + bool "iputils tftpd option removed" + select BR2_LEGACY + help + tftpd has been removed from iputils since version 20211215. + +config BR2_PACKAGE_IPUTILS_TRACEROUTE6 + bool "iputils traceroute6 option removed" + select BR2_LEGACY + help + traceroute6 has been removed from iputils since version + 20211215. + +config BR2_PACKAGE_LIBMEDIAART_BACKEND_NONE + bool "libmediaart 'none' backend removed" + select BR2_LEGACY + help + 'none' backend has been removed from libmediaart since version + 1.9.5. + +config BR2_PACKAGE_MPD_UPNP + bool "MPD UPnP configuration changed" + select BR2_LEGACY + help + From version 0.23, MPD supports npupnp in addition to pupnp to + provide database access to a UPnP media server. To preserve + the existing functionality, the pupnp option has been selected + in the MPD UPnP configuration. +# Note: BR2_PACKAGE_MPD_UPNP is still referenced from package/mpd/Config.in + +comment "Legacy options removed in 2021.11" + +config BR2_OPENJDK_VERSION_LTS + bool "OpenJDK LTS version was renamed to OpenJDK 11" + select BR2_LEGACY + select BR2_PACKAGE_OPENJDK_VERSION_11 + help + The LTS version option was renamed to OpenJDK 11 to make it + clear what LTS version is. + +config BR2_OPENJDK_VERSION_LATEST + bool "OpenJDK latest version (16.x) was removed" + select BR2_LEGACY + select BR2_PACKAGE_OPENJDK_VERSION_17 + help + OpenJDK 16.x is no longer mainted, so the option has been + removed. Use OpenJDK 17.x instead. + +config BR2_PACKAGE_MPD_TIDAL + bool "mpd tidal option removed" + select BR2_LEGACY + help + tidal has been removed from mpd since version 0.22.10. + +config BR2_PACKAGE_MROUTED_RSRR + bool "RSRR for RSVP removed in mrouted v4.4" + select BR2_LEGACY + help + The RSRR configure option and feature was dropped in upstream + mrouted as of v4.4. This feature was marked as experimental + since its inception well before v4.0 and was never deployed + in the field outside of academia. + +config BR2_BINUTILS_VERSION_CSKY + bool "binutils csky version removed" + select BR2_LEGACY + help + Support for binutils csky version has been removed. + +config BR2_GCC_VERSION_CSKY + bool "gcc csky version removed" + select BR2_LEGACY + help + Support for gcc csky version has been removed. + +config BR2_PACKAGE_CANFESTIVAL + bool "canfestival package removed" + select BR2_LEGACY + help + This package has been removed as it is unmaintained since + November 2017. + +config BR2_PACKAGE_NMAP_NDIFF + bool "The ndiff utility has been removed" + select BR2_LEGACY + select BR2_PACKAGE_PYTHON_PYNDIFF + help + The ndiff utility provided by nmap requires python2 which is + deprecated. The same functionality is provided by the python + package pyndiff. + +config BR2_GDB_VERSION_8_3 + bool "gdb version 8.3.x removed" + select BR2_LEGACY + help + gdb 8.3.x has been removed, use a newer version instead. + +config BR2_PACKAGE_PYTHON_MELD3 + bool "python-meld3 package removed" + select BR2_LEGACY + help + This package has been removed as it is unmaintained since + April 2020. + +config BR2_PACKAGE_STRONGSWAN_EAP + bool "strongswan EAP plugins now individually selectable" + select BR2_LEGACY + help + The various EAP plugins are now individually selectable. + +config BR2_PACKAGE_GNURADIO_PAGER + bool "gnuradio gr-flex support removed" + select BR2_LEGACY + help + gr-flex has been removed from gnuradio since version 3.8.0.0. + +config BR2_KERNEL_HEADERS_5_11 + bool "kernel headers version 5.11.x are no longer supported" + select BR2_LEGACY + help + Version 5.11.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_KERNEL_HEADERS_5_12 + bool "kernel headers version 5.12.x are no longer supported" + select BR2_LEGACY + help + Version 5.12.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_KERNEL_HEADERS_5_13 + bool "kernel headers version 5.13.x are no longer supported" + select BR2_LEGACY + help + Version 5.13.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +comment "Legacy options removed in 2021.08" + +config BR2_TARGET_GRUB2_BUILTIN_MODULES + string "the grub2 builtin modules has been renamed" + help + This option has been split to separate the builtin modules + between BR2_TARGET_GRUB2_BUILTIN_MODULES_PC and + BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI. + +config BR2_TARGET_GRUB2_BUILTIN_MODULES_WRAP + bool + default y if BR2_TARGET_GRUB2_BUILTIN_MODULES != "" + select BR2_LEGACY + +config BR2_TARGET_GRUB2_BUILTIN_CONFIG + string "the grub2 builtin configuration has been renamed" + help + This option has been split to separate the builtin + configuration between BR2_TARGET_GRUB2_BUILTIN_CONFIG_PC and + BR2_TARGET_GRUB2_BUILTIN_CONFIG_EFI. + +config BR2_TARGET_GRUB2_BUILTIN_CONFIG_WRAP + bool + default y if BR2_TARGET_GRUB2_BUILTIN_CONFIG != "" + select BR2_LEGACY + +config BR2_PACKAGE_LIBMCRYPT + bool "libmcrypt package was removed" + select BR2_LEGACY + help + This package has been removed as "the last update to libmcrypt + was in 2007, despite years of unmerged patches. These facts + have led security experts to declare mcrypt abandonware and + discourage its use in new development" (extract from + https://en.wikipedia.org/wiki/Mcrypt). + +config BR2_PACKAGE_MCRYPT + bool "mcrypt package was removed" + select BR2_LEGACY + help + This package has been removed as "the last update to libmcrypt + was in 2007, despite years of unmerged patches. These facts + have led security experts to declare mcrypt abandonware and + discourage its use in new development" (extract from + https://en.wikipedia.org/wiki/Mcrypt). + +config BR2_PACKAGE_PHP_EXT_MCRYPT + bool "PHP mcrypt extension removed" + select BR2_LEGACY + help + mcrypt has been removed from php since version 7.2.0. + +config BR2_BINUTILS_VERSION_2_34_X + bool "binutils 2.34 has been removed" + select BR2_LEGACY + help + binutils 2.34 has been removed, use a newer version. + +config BR2_PACKAGE_LIBSOIL + bool "libsoil package removed" + select BR2_LEGACY + help + The libsoil package was removed. All packages needing + libsoil removed the dependency. + +config BR2_PACKAGE_CLAPACK + bool "cblas/clapack package removed" + select BR2_LEGACY + select BR2_PACKAGE_LAPACK if BR2_PACKAGE_LAPACK_ARCH_SUPPORTS && BR2_TOOLCHAIN_HAS_FORTRAN + help + The clapack package was removed. LAPACK no longer generates a + C version. Use lapack instead. This does require a Fortran + compiler however. + +config BR2_PACKAGE_SPIDERMONKEY + bool "spidermonkey package removed" + select BR2_LEGACY + help + The spidermonkey package was removed. The only package that + depended on spidermonkey was polkit. The spidermonkey + dependency is replaced with duktape. + +config BR2_PACKAGE_KODI_LIBVA + bool "kodi option to add libva support removed" + select BR2_LEGACY + help + Kodi still has support for libva if the package is enabled but + the kodi-specific dependencies limiting libva support to non- + OPENGLES platforms were removed including this option. + +config BR2_PACKAGE_PYTHON_COHERENCE + bool "python-coherence package removed" + select BR2_LEGACY + help + This package has been removed as it can't be built anymore due + to python-twisted being now incompatible with python 2. + +config BR2_PACKAGE_PHP_EXT_XMLRPC + bool "PHP XMLRPC extension removed" + select BR2_LEGACY + help + The XMLRPC php extension was removed. + See: https://wiki.php.net/rfc/unbundle_xmlprc + +config BR2_GCC_VERSION_8_X + bool "gcc 8.x support removed" + select BR2_LEGACY + help + Support for gcc version 8.x has been removed. The current + default version (10.x or later) has been selected instead. + +comment "Legacy options removed in 2021.05" + +config BR2_PACKAGE_UDISKS_LVM2 + bool "udisks lvm2 support removed" + select BR2_LEGACY + help + The lvm2 support was removed because udisks < 2.7.0 still + depends on lvm2 application library, which was removed + in lvm2. + +config BR2_PACKAGE_LVM2_APP_LIBRARY + bool "lvm2 application library removed" + select BR2_LEGACY + help + The lvm2 application library was removed upstream. + +config BR2_PACKAGE_LVM2_LVMETAD + bool "lvm2 lvmetad removed" + select BR2_LEGACY + help + The lvm2 lvmetad was removed upstream. + +config BR2_PACKAGE_MONKEY + bool "monkey package removed" + select BR2_LEGACY + help + This package has been removed as it has not seen any release + since 2016 and because TLS is broken on master. + +config BR2_PACKAGE_DOCKER_CONTAINERD + bool "docker-containerd package was renamed to containerd" + select BR2_LEGACY + select BR2_PACKAGE_CONTAINERD + help + The containerd project is now independent from Docker. + The package was renamed to containerd accordingly. + +config BR2_PACKAGE_IOSTAT + bool "iostat package removed" + select BR2_LEGACY + help + This package has been removed, use sysstat instead. + +config BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE_IMAGE + bool "sconeserver http::sconesite::image removed" + select BR2_LEGACY + help + Sconeserver cannot be built with ImageMagick - it uses the + "transofrm" function which is removed from public API. + +config BR2_PACKAGE_XSERVER_XORG_SERVER_KDRIVE_EVDEV + bool "KDrive/TinyX evdev input driver removed" + select BR2_LEGACY + help + The evdev input driver in KDrive was removed. + +config BR2_PACKAGE_XSERVER_XORG_SERVER_KDRIVE_KBD + bool "KDrive/TinyX kbd input driver removed" + select BR2_LEGACY + help + The kbd input driver in KDrive was removed. + +config BR2_PACKAGE_XSERVER_XORG_SERVER_KDRIVE_MOUSE + bool "KDrive/TinyX mouse input driver removed" + select BR2_LEGACY + help + The mouse input driver in KDrive was removed. + +config BR2_PACKAGE_MESA3D_OSMESA_CLASSIC + bool "mesa OSMesa (classic) option removed" + select BR2_LEGACY + select BR2_PACKAGE_MESA3D_OSMESA_GALLIUM + help + The OSMesa "classic" library option was removed upstream. + Only the Gallium-based implementation remains. + +config BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST + bool "mesa DRI swrast driver removed" + select BR2_LEGACY + select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST + help + The DRI swrast driver was removed upstream. + Only the Gallium-based implementation remains. + +config BR2_PACKAGE_KODI_SCREENSAVER_CRYSTALMORPH + bool "kodi-screensaver-crystalmorph removed" + select BR2_LEGACY + help + The package received its last updates in 2017, is not part + of the official Kodi github repo and its build is broken + with Kodi 19.x, so it was removed. + +comment "Legacy options removed in 2021.02" + +config BR2_PACKAGE_MPD_AUDIOFILE + bool "mpd audiofile support removed" + select BR2_LEGACY + help + The audiofile support was removed from mpd as audiofile is + affected by multiple CVEs and is not maintained anymore (no + release since 2013). + +config BR2_PACKAGE_AUDIOFILE + bool "audiofile package removed" + select BR2_LEGACY + help + The audiofile package was removed as it is affected by + multiple CVEs and is not maintained anymore (no release since + 2013). + +config BR2_BINUTILS_VERSION_2_33_X + bool "binutils 2.33.x has been removed" + select BR2_LEGACY + help + binutils 2.33.x has been removed, use a newer version. + +config BR2_PACKAGE_LIBUPNP18 + bool "libupnp18 package removed" + select BR2_LEGACY + select BR2_PACKAGE_LIBUPNP + help + Version 1.8.x of libupnp (i.e. libupnp18) has been removed + because it will never be fixed against CallStranger a.k.a. + CVE-2020-12695. The libupnp package (which has been updated to + version 1.14.x) has been selected instead. + +config BR2_PACKAGE_BOA + bool "boa package removed" + select BR2_LEGACY + help + The boa package was removed as it is affected by multiple + CVEs and is not maintained anymore (no release since 2005). + +config BR2_PACKAGE_LINUX_FIRMWARE_IMX_SDMA + bool "imx sdma firmware is provided by firmware-imx" + select BR2_LEGACY + select BR2_PACKAGE_FREESCALE_IMX + select BR2_PACKAGE_FIRMWARE_IMX + help + linux-firmware provide the same firmware as firmware-imx. + We prefer using firmware-imx as the only provider. + +config BR2_GDB_VERSION_8_2 + bool "gdb 8.2.x has been removed" + select BR2_LEGACY + help + gdb 8.2 support has been removed, you can use a newer + version such as 8.3 or more recent. + +config BR2_PACKAGE_HOST_RCW + bool "rcw package was renamed to qoriq-rcw" + select BR2_PACKAGE_HOST_QORIQ_RCW + select BR2_LEGACY + help + The rcw package was specific to the QorIQ platform, so it has + been renamed to qoriq-rcw, to leave room for other *-rcw + packages for other platforms. + +config BR2_KERNEL_HEADERS_5_9 + bool "kernel headers version 5.9.x are no longer supported" + select BR2_LEGACY + help + Version 5.9.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_KERNEL_HEADERS_5_8 + bool "kernel headers version 5.8.x are no longer supported" + select BR2_LEGACY + help + Version 5.8.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_powerpc_601 + bool "PowerPC 601 support removed" + select BR2_LEGACY + help + The support for the PowerPC 601 processors has been removed. + +config BR2_PACKAGE_TI_SGX_LIBGBM + bool "ti-sgx-libgbm support removed" + select BR2_LEGACY + help + TI has merged the ti-sgx-libgbm package with the ti-sgx-um + package + +config BR2_PACKAGE_IPSEC_TOOLS + bool "ipsec-tools package was removed" + select BR2_LEGACY + help + This package has been removed as it has security issues and + has been abandoned since 2014. + +comment "Legacy options removed in 2020.11" + +config BR2_PACKAGE_GPSD_FIXED_PORT_SPEED + bool "compile with fixed serial port speed" + select BR2_LEGACY + help + Since gpsd 3.20, GPSD_FIXED_PORT_SPEED is replaced + by runtime option --speed. + +config BR2_PACKAGE_GPSD_RECONFIGURE + bool "allow gpsd to change device settings" + select BR2_LEGACY + help + Since gpsd 3.21, GPSD_RECONFIGURE is replaced + by runtime option --passive. + +config BR2_PACKAGE_GPSD_CONTROLSEND + bool "allow gpsctl/gpsmon to change device settings" + select BR2_LEGACY + help + Option removed in gpsd 3.21 + +config BR2_PACKAGE_OPENCV + bool "opencv package was removed" + select BR2_LEGACY + help + This package has been removed, use opencv3 instead. + +config BR2_PACKAGE_LIBCROCO + bool "libcroco package was removed" + select BR2_LEGACY + help + This package has been removed as it is affected by several + security issues such as CVE-2020-12825 which will never be + fixed as libcroco has been archived. + +config BR2_PACKAGE_BELLAGIO + bool "bellagio package was removed" + select BR2_LEGACY + help + This package has been removed as it is not maintained anymore + (no release since 2011). + +config BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY + bool "systemd-journal-gatewayd now in systemd-journal-remote" + select BR2_LEGACY + select BR2_PACKAGE_SYSTEMD_JOURNAL_REMOTE + help + All system journal remote programs are now enabled using + BR2_PACKAGE_SYSTEMD_JOURNAL_REMOTE. + +config BR2_TARGET_UBOOT_BOOT_SCRIPT + bool "u-boot script generation was moved" + select BR2_LEGACY + select BR2_PACKAGE_HOST_UBOOT_TOOLS + select BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT + help + Migrated U-Boot script generation to uboot-tools + +# Note: BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE is still referenced from +# package/uboot-tools/Config.in +config BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE + string "The uboot script source string has been renamed" + depends on BR2_TARGET_UBOOT_BOOT_SCRIPT + help + Migrated U-Boot script generation to uboot-tools. + New option is named + BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE + +config BR2_TARGET_UBOOT_ENVIMAGE + bool "u-boot env generation was moved" + select BR2_LEGACY + select BR2_PACKAGE_HOST_UBOOT_TOOLS + select BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE + help + Migrated U-Boot env generation to uboot-tools + +# Note: BR2_TARGET_UBOOT_ENVIMAGE_SOURCE is still referenced from +# package/uboot-tools/Config.in +config BR2_TARGET_UBOOT_ENVIMAGE_SOURCE + string "The uboot env image source string has been renamed" + depends on BR2_TARGET_UBOOT_ENVIMAGE + help + Migrated U-Boot env generation to uboot-tools. + New option is named + BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SOURCE + +# Note: BR2_TARGET_UBOOT_ENVIMAGE_SIZE is still referenced from +# package/uboot-tools/Config.in +config BR2_TARGET_UBOOT_ENVIMAGE_SIZE + string "The uboot env image size string has been renamed" + depends on BR2_TARGET_UBOOT_ENVIMAGE + help + Migrated U-Boot env generation to uboot-tools. + New option is named BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SIZE + +config BR2_TARGET_UBOOT_ENVIMAGE_REDUNDANT + bool "u-boot env generation was moved" + depends on BR2_TARGET_UBOOT_ENVIMAGE + select BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_REDUNDANT + help + Migrated U-Boot env generation to uboot-tools + +config BR2_PACKAGE_KISMET_CLIENT + bool "kismet client support was removed" + select BR2_LEGACY + help + Kismet client support was removed since version 2019-04-R1. + +config BR2_PACKAGE_KISMET_DRONE + bool "kismet drone support was removed" + select BR2_LEGACY + help + Kismet drone support was removed since version 2019-04-R1. + +config BR2_GCC_VERSION_7_X + bool "gcc 7.x support removed" + select BR2_LEGACY + help + Support for gcc version 7.x has been removed. The current + default version (9.x or later) has been selected instead. + +config BR2_PACKAGE_GST1_VALIDATE + bool "gst1-validate was moved to gst1-devtools" + select BR2_PACKAGE_GST1_DEVTOOLS + select BR2_LEGACY + help + This package has been removed, use gst1-devtools instead. + +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_YADIF + bool "gst1-plugins-bad yadif plugin was removed" + select BR2_LEGACY + select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_DEINTERLACE + help + This plugin was removed with gst1-plugins-bad-1.18.0, the + same functionality has moved to gst1-plugins-good + deinterlace plugin (method=yadif). + +config BR2_PACKAGE_GQVIEW + bool "gqview package was removed" + select BR2_LEGACY + help + This package has been removed as it is not maintained anymore + (no release since 2006). + +config BR2_PACKAGE_WESTON_IMX + bool "weston-imx package was removed" + select BR2_LEGACY + help + This package has been removed, use weston instead. + +config BR2_KERNEL_HEADERS_5_7 + bool "kernel headers version 5.7.x are no longer supported" + select BR2_LEGACY + help + Version 5.7.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_PACKAGE_TINYHTTPD + bool "tinyhttpd package removed" + select BR2_LEGACY + help + The tinyhttpd package was removed as it is affected by + CVE-2002-1819 and is not maintained anymore (no release since + 2001). + +config BR2_PACKAGE_XSERVER_XORG_SERVER_AIGLX + bool "X.org Enable AIGLX Extension" + select BR2_LEGACY + help + AIGLX Extension was removed in X.org X server version 1.19.0 + +config BR2_PACKAGE_AMD_CATALYST + bool "amd-catalyst" + select BR2_LEGACY + help + Current X.org server is incompatible with this driver. + +config BR2_PACKAGE_NVIDIA_TEGRA23 + bool "nvidia-tegra23 package removed" + select BR2_LEGACY + help + Current X.org server is incompatible with this driver. + +config BR2_GDB_VERSION_8_1 + bool "gdb 8.1.x has been removed" + select BR2_LEGACY + help + The 8.1.x version of gdb has been removed. Use a newer + version instead. + +comment "Legacy options removed in 2020.08" + +config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64 + bool "toolchain-external-codesourcery-amd64 removed" + select BR2_LEGACY + help + The CodeSourcery toolchain for AMD64, in version 2016.11 was + dropped, due to it using a too old gcc 6.2.0 compiler which + caused issues compiling a number of recent packages + (e.g. Boost). CodeSourcery has stopped making newer versions + of this toolchain publicly available, so it was not possible + to update it. + +config BR2_KERNEL_HEADERS_5_6 + bool "kernel headers version 5.6.x are no longer supported" + select BR2_LEGACY + help + Version 5.6.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_KERNEL_HEADERS_5_5 + bool "kernel headers version 5.5.x are no longer supported" + select BR2_LEGACY + help + Version 5.5.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_BINUTILS_VERSION_2_31_X + bool "binutils version 2.31.1 support removed" + select BR2_LEGACY + help + Support for binutils version 2.31.1 has been removed. The + current default version (2.33.1 or later) has been selected + instead. + +config BR2_PACKAGE_KODI_PERIPHERAL_STEAMCONTROLLER + bool "kodi-peripheral-steamcontroller package was removed" + select BR2_LEGACY + help + This package is broken. + +comment "Legacy options removed in 2020.05" + +config BR2_PACKAGE_WIRINGPI + bool "wiringpi package removed" + select BR2_LEGACY + help + The author of wiringpi has deprecated the package, and + completely removed the git tree that was serving the + sources, with this message: + Please look for alternatives for wiringPi + +config BR2_PACKAGE_PYTHON_PYCRYPTO + bool "python-pycrypto package removed" + select BR2_LEGACY + help + This package has been removed, use python-pycryptodomex + instead. + +config BR2_PACKAGE_MTDEV2TUIO + bool "mtdev2tuio package removed" + select BR2_LEGACY + help + The mtdev2tuio package was removed as it breaks the builds + every now and then and is not maintained upstream. + +config BR2_PACKAGE_EZXML + bool "ezxml package removed" + select BR2_LEGACY + help + The ezXML package was removed as it is affected by several + CVEs and is not maintained anymore (no release since 2006). + +config BR2_PACKAGE_COLLECTD_LVM + bool "lvm support in collectd was removed" + select BR2_LEGACY + help + collectd removed LVM plugin, liblvm2app has been deprecated + +config BR2_PACKAGE_PYTHON_PYASN + bool "duplicate python-pyasn1 package removed" + select BR2_LEGACY + select BR2_PACKAGE_PYTHON_PYASN1 + help + This package was a duplicate of python-pyasn1. + +config BR2_PACKAGE_PYTHON_PYASN_MODULES + bool "duplicate python-pyasn1-modules package removed" + select BR2_LEGACY + select BR2_PACKAGE_PYTHON_PYASN1_MODULES + help + This package was a duplicate of python-pyasn1-modules. + +config BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA6174 + bool "duplicate QCA6174 firmware symbol removed" + select BR2_LEGACY + select BR2_PACKAGE_LINUX_FIRMWARE_QUALCOMM_6174 + help + This config symbol duplicates existing symbol for QCA6174 + firmware. + +config BR2_PACKAGE_QT5CANVAS3D + bool "qt5canvas3d was removed" + select BR2_LEGACY + help + This Qt5 module was removed by the upstream Qt project since + Qt 5.13, so the corresponding Buildroot package was removed + as well. + +config BR2_PACKAGE_KODI_LIBTHEORA + bool "libtheora support in Kodi was removed" + select BR2_LEGACY + help + Kodi does not need libtheora + +config BR2_PACKAGE_CEGUI06 + bool "BR2_PACKAGE_CEGUI06 was renamed" + select BR2_PACKAGE_CEGUI + select BR2_LEGACY + help + The BR2_PACKAGE_CEGUI06 config symbol was renamed to + BR2_PACKAGE_CEGUI. + +config BR2_GCC_VERSION_5_X + bool "gcc 5.x support removed" + select BR2_LEGACY + help + Support for gcc version 5.x has been removed. The current + default version (8.x or later) has been selected instead. + +comment "Legacy options removed in 2020.02" + +config BR2_PACKAGE_JAMVM + bool "jamvm removed" + select BR2_LEGACY + help + JamVM has not had a release since 2014 and is unmaintained. + +config BR2_PACKAGE_CLASSPATH + bool "classpath removed" + select BR2_LEGACY + help + GNU Classpath package was removed. The last upstream + release was in 2012 and there hasn't been a commit + since 2016. + +config BR2_PACKAGE_QT5_VERSION_5_6 + bool "qt 5.6 support removed" + select BR2_LEGACY + help + Support for Qt 5.6 is EOL and has been removed. The current + version (5.12 or later) has been selected instead. + +config BR2_PACKAGE_CURL + bool "BR2_PACKAGE_CURL was renamed" + select BR2_PACKAGE_LIBCURL_CURL + select BR2_LEGACY + help + The BR2_PACKAGE_CURL config symbol was renamed to + BR2_PACKAGE_LIBCURL_CURL. + +config BR2_PACKAGE_GSTREAMER + bool "gstreamer-0.10 removed" + select BR2_LEGACY + help + Gstreamer-0.10 package was removed. It has been deprecated + upstream since 2012, and is missing a lot of features and + fixes compared to gstreamer-1.x. + +config BR2_PACKAGE_NVIDIA_TEGRA23_BINARIES_GSTREAMER_PLUGINS + bool "nvidia-tegra23 binaries gstreamer 0.10.x support removed" + select BR2_LEGACY + help + Gstreamer 0.10.x is no longer available in Buildroot, so + neither is the support in nvidia-tegra23 binaries. + +config BR2_PACKAGE_NVIDIA_TEGRA23_BINARIES_NV_SAMPLE_APPS + bool "nvidia-tegra23 binaries sample apps removed" + select BR2_LEGACY + help + Gstreamer 0.10.x is no longer available in Buildroot, so + neither is the support in nvidia-tegra23 binaries. + +config BR2_PACKAGE_FREERDP_GSTREAMER + bool "freerdp gstreamer 0.10.x support removed" + select BR2_LEGACY + help + Gstreamer 0.10.x is no longer available in Buildroot, so + neither is the support in freerdp. + +config BR2_PACKAGE_OPENCV3_WITH_GSTREAMER + bool "opencv3 gstreamer 0.10.x support removed" + select BR2_LEGACY + help + Gstreamer 0.10.x is no longer available in Buildroot, so + neither is the support in opencv3. + +config BR2_PACKAGE_OPENCV_WITH_GSTREAMER + bool "opencv gstreamer 0.10.x support removed" + select BR2_LEGACY + help + Gstreamer 0.10.x is no longer available in Buildroot, so + neither is the support in opencv. + +config BR2_PACKAGE_LIBPLAYER + bool "libplayer package was removed" + select BR2_LEGACY + help + The libplayer package was removed. The latest release is + from 2010 and none of the backends are available in + Buildroot any more. + +config BR2_GCC_VERSION_OR1K + bool "gcc 5.x fork for or1k has been removed" + select BR2_LEGACY + help + Support for gcc 5.x for or1k has been removed. The current + default version (9.x or later) has been selected instead. + +config BR2_PACKAGE_BLUEZ_UTILS + bool "bluez-utils was removed" + select BR2_LEGACY + select BR2_PACKAGE_BLUEZ5_UTILS if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 \ + && BR2_TOOLCHAIN_HAS_SYNC_4 + help + The bluez-utils (BlueZ 4.x) package was removed as it is + deprecated since a long time. As an alternative, the + bluez5-utils (BlueZ 5.x) has been automatically selected in + your configuration. + +config BR2_PACKAGE_GADGETFS_TEST + bool "gadgetfs-test was removed" + select BR2_LEGACY + help + The gadgetfs-test package was removed. Gadgetfs has been + deprecated in favour of functionfs. Consider using + gadget-tool (gt) instead. + +config BR2_PACKAGE_FIS + bool "fis was removed" + select BR2_LEGACY + help + The fis package was removed. + +config BR2_PACKAGE_REFPOLICY_POLICY_VERSION + string "refpolicy policy version" + help + The refpolicy policy version option has been moved to the + libsepol package. + +config BR2_PACKAGE_REFPOLICY_POLICY_VERSION_WRAP + bool + default y if BR2_PACKAGE_REFPOLICY_POLICY_VERSION != "" + select BR2_LEGACY + +config BR2_PACKAGE_CELT051 + bool "celt051 package was removed" + select BR2_LEGACY + select BR2_PACKAGE_OPUS + help + The celt051 package was removed as it is now obsolete since + the CELT codec has been merged into the IETF Opus codec. As + a result, the opus package has been automatically selected + in your configuration. + +config BR2_PACKAGE_WIREGUARD + bool "wireguard package renamed" + depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 + select BR2_LEGACY + select BR2_PACKAGE_WIREGUARD_LINUX_COMPAT if BR2_LINUX_KERNEL + select BR2_PACKAGE_WIREGUARD_TOOLS + help + The wireguard package has been renamed to wireguard-tools + for the userspace tooling and wireguard-linux-compat for the + kernel side for legacy (<5.6) kernels to match upstream. + +config BR2_PACKAGE_PERL_NET_PING + bool "perl-net-ping was removed" + select BR2_LEGACY + help + Net::Ping is a Perl core module (ie. bundled with perl). + +config BR2_PACKAGE_PERL_MIME_BASE64 + bool "perl-mime-base64 was removed" + select BR2_LEGACY + help + MIME::Base64 is a Perl core module (ie. bundled with perl). + +config BR2_PACKAGE_PERL_DIGEST_MD5 + bool "perl-digest-md5 was removed" + select BR2_LEGACY + help + Digest::MD5 is a Perl core module (ie. bundled with perl). + +config BR2_PACKAGE_ERLANG_P1_ICONV + bool "erlang-p1-iconv has been removed" + select BR2_LEGACY + help + The erlang-p1-iconv package was no longer used by ejabberd, + and was no longer maintained upstream, so it was removed. + +config BR2_KERNEL_HEADERS_5_3 + bool "kernel headers version 5.3.x are no longer supported" + select BR2_LEGACY + help + Version 5.3.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_PACKAGE_PYTHON_SCAPY3K + bool "python-scapy3k is replaced by python-scapy" + select BR2_LEGACY + select BR2_PACKAGE_PYTHON_SCAPY + help + python-scapy3k has been deprecated, since python-scapy has + gained Python 3 support. Use BR2_PACKAGE_PYTHON_SCAPY + instead. + +config BR2_BINUTILS_VERSION_2_30_X + bool "binutils version 2.30 support removed" + select BR2_LEGACY + help + Support for binutils version 2.30 has been removed. The + current default version (2.31 or later) has been selected + instead. + +config BR2_PACKAGE_RPI_USERLAND_START_VCFILED + bool "rpi-userland start vcfiled was removed" + select BR2_LEGACY + help + The vcfiled support was removed upstream. + +comment "Legacy options removed in 2019.11" + +config BR2_PACKAGE_OPENVMTOOLS_PROCPS + bool "openvmtools' procps support was removed" + select BR2_LEGACY + help + Upstream stopped supporting this option a while ago. + +config BR2_PACKAGE_ALLJOYN + bool "alljoyn was removed" + select BR2_LEGACY + help + The alljoyn framework is dead + +config BR2_PACKAGE_ALLJOYN_BASE + bool "alljoyn-base was removed" + select BR2_LEGACY + help + The alljoyn framework is dead + +config BR2_PACKAGE_ALLJOYN_BASE_CONTROLPANEL + bool "alljoyn-base control panel was removed" + select BR2_LEGACY + help + The alljoyn framework is dead + +config BR2_PACKAGE_ALLJOYN_BASE_NOTIFICATION + bool "alljoyn-base notification was removed" + select BR2_LEGACY + help + The alljoyn framework is dead + +config BR2_PACKAGE_ALLJOYN_BASE_ONBOARDING + bool "alljoyn-base onboarding was removed" + select BR2_LEGACY + help + The alljoyn framework is dead + +config BR2_PACKAGE_ALLJOYN_TCL_BASE + bool "alljoyn-tcl-base was removed" + select BR2_LEGACY + help + The alljoyn framework is dead + +config BR2_PACKAGE_ALLJOYN_TCL + bool "alljoyn-tcl was removed" + select BR2_LEGACY + help + The alljoyn framework is dead + +config BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS + string "toolchain-external extra libs option has been renamed" + help + The option BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS has + been renamed to BR2_TOOLCHAIN_EXTRA_LIBS. + +config BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS_WRAP + bool + default y if BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS != "" + select BR2_LEGACY + +config BR2_PACKAGE_PYTHON_PYSNMP_APPS + bool "python-pysnmp-apps was removed" + select BR2_LEGACY + select BR2_PACKAGE_SNMPCLITOOLS + help + Following upstream changes, the python-pysnmp-apps package + has been removed, and snmpclitools should be used as a + replacement. + +config BR2_KERNEL_HEADERS_5_2 + bool "kernel headers version 5.2.x are no longer supported" + select BR2_LEGACY + help + Version 5.2.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_TARGET_RISCV_PK + bool "riscv-pk was removed" + select BR2_LEGACY + help + The RISC-V Proxy Kernel (pk) and Berkley Boot Loader (BBL) + have been replaced with OpenSBI. + +config BR2_PACKAGE_SQLITE_STAT3 + bool "sqlite stat3 support was removed" + select BR2_LEGACY + help + Upstream removed the support for stat3. + +config BR2_KERNEL_HEADERS_5_1 + bool "kernel headers version 5.1.x are no longer supported" + select BR2_LEGACY + help + Version 5.1.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_PACKAGE_DEVMEM2 + bool "devmem2 package was removed" + select BR2_LEGACY + help + Use the the Busybox devmem utility, instead, which provides + the same functionality. + +config BR2_PACKAGE_USTR + bool "ustr package removed" + select BR2_LEGACY + help + The 'ustr' package was only used by SELinux libsemanage, but + since SELinux 2.7, ustr is no longer used. Therefore, we + removed this package from Buildroot. + +config BR2_PACKAGE_KODI_SCREENSAVER_PLANESTATE + bool "kodi-screensaver-planestate package was removed" + select BR2_LEGACY + help + This package is incompatible with Kodi 18.x. + +config BR2_PACKAGE_KODI_VISUALISATION_WAVEFORHUE + bool "kodi-visualisation-waveforhue package was removed" + select BR2_LEGACY + help + This package is incompatible with Kodi 18.x. + +config BR2_PACKAGE_KODI_AUDIODECODER_OPUS + bool "kodi-audiodecoder-opus package was removed" + select BR2_LEGACY + help + This package is incompatible with Kodi 18.x. + +config BR2_PACKAGE_MESA3D_OSMESA + bool "mesa OSMesa option renamed" + select BR2_PACKAGE_MESA3D_OSMESA_CLASSIC if BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST + select BR2_LEGACY + help + The option was renamed in order to match the naming used + by the meson buildsystem. + +config BR2_PACKAGE_HOSTAPD_DRIVER_RTW + bool "hostapd rtl871xdrv driver removed" + select BR2_LEGACY + help + Since the update of hostapd to 2.9, the patch provided for + the rtl871xdrv no longer works, although it + applies. Moreover, AP support for Realtek chips is broken + anyway in kernels > 4.9. Therefore, this option has been + removed. + +config BR2_PACKAGE_WPA_SUPPLICANT_DBUS_NEW + bool "new dbus support option in wpa_supplicant was renamed" + select BR2_PACKAGE_WPA_SUPPLICANT_DBUS if BR2_TOOLCHAIN_HAS_THREADS + select BR2_LEGACY + help + The new dbus support option was renamed. + +config BR2_PACKAGE_WPA_SUPPLICANT_DBUS_OLD + bool "old dbus support in wpa_supplicant was removed" + select BR2_LEGACY + help + The old dbus support was removed. + +comment "Legacy options removed in 2019.08" + +config BR2_TARGET_TS4800_MBRBOOT + bool "ts4800-mbrboot package was removed" + select BR2_LEGACY + help + The defconfig for the TS4800 platform has been removed, so + the ts4800-mbrboot package, containing the boot code for + this specific platform has been removed as welL. + +config BR2_PACKAGE_LIBAMCODEC + bool "liamcodec package was removed" + select BR2_LEGACY + help + Support for odroidc2 based systems was removed, making the + libamcodec package useless. + +config BR2_PACKAGE_ODROID_SCRIPTS + bool "odroid-scripts package was removed" + select BR2_LEGACY + help + Support for odroidc2 based systems was removed, making the + odroid-scripts package useless. + +config BR2_PACKAGE_ODROID_MALI + bool "odroid-mali package was removed" + select BR2_LEGACY + help + Support for odroidc2 based systems was removed, making the + odroid-mali package useless. + +config BR2_PACKAGE_KODI_PLATFORM_AML + bool "Kodi AMLogic support was removed" + select BR2_LEGACY + help + Support for AMLogic was removed due to the removal of the + odroidc2 defconfig. + +config BR2_GCC_VERSION_6_X + bool "gcc 6.x support removed" + select BR2_LEGACY + help + Support for gcc version 6.x has been removed. The current + default version (8.x or later) has been selected instead. + +config BR2_GCC_VERSION_4_9_X + bool "gcc 4.9.x support removed" + select BR2_LEGACY + help + Support for gcc version 4.9.x has been removed. The current + default version (8.x or later) has been selected instead. + +config BR2_GDB_VERSION_7_12 + bool "gdb 7.12.x has been removed" + select BR2_LEGACY + help + The 7.12.x version of gdb has been removed. Use a newer + version instead. + +config BR2_PACKAGE_XAPP_MKFONTDIR + bool "mkfontdir is now included in xapp_mkfontscale" + select BR2_PACKAGE_XAPP_MKFONTSCALE + select BR2_LEGACY + help + xapp_mkfontscale now includes the mkfontdir script previously + distributed separately for compatibility with older X11 + versions. + +config BR2_GDB_VERSION_8_0 + bool "gdb 8.0.x has been removed" + select BR2_LEGACY + help + The 8.0.x version of gdb has been removed. Use a newer + version instead. + +config BR2_KERNEL_HEADERS_4_20 + bool "kernel headers version 4.20.x are no longer supported" + select BR2_LEGACY + help + Version 4.20.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_KERNEL_HEADERS_5_0 + bool "kernel headers version 5.0.x are no longer supported" + select BR2_LEGACY + help + Version 5.0.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +comment "Legacy options removed in 2019.05" + +config BR2_CSKY_DSP + bool "C-SKY DSP support removed" + select BR2_LEGACY + help + C-SKY DSP instruction support for ck810 / ck807 was removed, + as it was no longer supported in C-SKY gcc. Perhaps the VDSP + instructions should be used instead, using the BR2_CSKY_VDSP + option. + +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_COMPOSITOR + bool "compositor moved to gst1-plugins-base" + select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_COMPOSITOR + select BR2_LEGACY + help + The gst1-plugins-bad compositor plugin has moved + to gst1-plugins-base. + +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_IQA + bool "gst-plugins-bad IQA option was removed" + select BR2_LEGACY + help + The gst1-plugins-bad IQA option was removed. + +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPENCV + bool "gst-plugins-bad opencv option was removed" + select BR2_LEGACY + help + The gst1-plugins-bad opencv option was removed because + buildroot does not have the opencv_contrib package which + is required for the bgsegm module which gst1-plugins-bad + now requires along with opencv3. + +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_STEREO + bool "stereo was merged into audiofx in gst1-plugins-good" + select BR2_LEGACY + select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_AUDIOFX + help + The gst1-plugins-bad stereo plugin has merged with the + gst1-plugins-base audiofx plugin. + +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VCD + bool "gst-plugins-bad vcd plugin was removed." + select BR2_LEGACY + help + The gst1-plugins-bad vcd plugin was removed. + +config BR2_PACKAGE_LUNIT + bool "lunit package removed" + select BR2_LEGACY + select BR2_PACKAGE_LUA_LUNITX + help + The lunit package was removed in favor of its fork lunitx, + which supports all versions of Lua. + +config BR2_PACKAGE_FFMPEG_FFSERVER + bool "ffmpeg ffserver removed" + select BR2_LEGACY + help + On July 10th, 2016, ffserver program has been dropped. + +config BR2_PACKAGE_LIBUMP + bool "libump package removed" + select BR2_LEGACY + help + The libump package was removed, it was only used as a + dependency of sunxi-mali, which itself was removed. + +config BR2_PACKAGE_SUNXI_MALI + bool "sunxi-mali package removed" + select BR2_LEGACY + select BR2_PACKAGE_SUNXI_MALI_UTGARD + help + The sunxi-mali package was removed, as the + sunxi-mali-mainline package replaces it for mainline + kernels on Allwinner platforms. + +config BR2_BINUTILS_VERSION_2_29_X + bool "binutils version 2.29 support removed" + select BR2_LEGACY + help + Support for binutils version 2.29 has been removed. The + current default version (2.31 or later) has been selected + instead. + +config BR2_BINUTILS_VERSION_2_28_X + bool "binutils version 2.28 support removed" + select BR2_LEGACY + help + Support for binutils version 2.28 has been removed. The + current default version (2.31 or later) has been selected + instead. + +config BR2_PACKAGE_GST_PLUGINS_BAD_PLUGIN_APEXSINK + bool "gst-plugins-bad apexsink option removed" + select BR2_LEGACY + help + The gst-plugins-bad apexsink option was removed. + +comment "Legacy options removed in 2019.02" + +config BR2_PACKAGE_QT + bool "qt package removed" + select BR2_LEGACY + help + The qt package was removed. + +config BR2_PACKAGE_QTUIO + bool "qtuio package removed" + select BR2_LEGACY + help + The qtuio package was removed. + +config BR2_PACKAGE_PINENTRY_QT4 + bool "pinentry-qt4 option removed" + select BR2_LEGACY + help + The pinentry-qt4 option was removed. + +config BR2_PACKAGE_POPPLER_QT + bool "poppler qt option removed" + select BR2_LEGACY + help + The poppler qt option was removed. + +config BR2_PACKAGE_OPENCV3_WITH_QT + bool "opencv3 qt backend option removed" + select BR2_LEGACY + help + The opencv3 qt backend option was removed. + +config BR2_PACKAGE_OPENCV_WITH_QT + bool "opencv qt backend option removed" + select BR2_LEGACY + help + The opencv qt backend option was removed. + +config BR2_PACKAGE_AMD_CATALYST_CCCLE + bool "catalyst control center option removed" + select BR2_LEGACY + help + The AMD Catalyst Control Center option was removed. + +config BR2_PACKAGE_SDL_QTOPIA + bool "sdl qtopia video driver option removed" + select BR2_LEGACY + help + The SDL QTopia video driver option was removed. + +config BR2_PACKAGE_PYTHON_PYQT + bool "python-pyqt package removed" + select BR2_LEGACY + help + The python-pyqt package was removed. Consider python-pyqt5 + instead. + +config BR2_PACKAGE_LUACRYPTO + bool "luacrypto package removed" + select BR2_LEGACY + help + The luacrypto package was removed. Consider luaossl instead. + +config BR2_PACKAGE_TN5250 + bool "tn5250 package removed" + select BR2_LEGACY + help + The tn5250 package was removed. + +config BR2_PACKAGE_BOOST_SIGNALS + bool "Boost signals removed" + select BR2_LEGACY + help + Its removal was announced in boost 1.68 and its deprecation + was announced in 1.54. Users are encouraged to use Signals2 + instead. + +config BR2_PACKAGE_FFTW_PRECISION_SINGLE + bool "single" + select BR2_LEGACY + select BR2_PACKAGE_FFTW_SINGLE + help + This option has been removed in favor of + BR2_PACKAGE_FFTW_SINGLE. + +config BR2_PACKAGE_FFTW_PRECISION_DOUBLE + bool "double" + select BR2_LEGACY + select BR2_PACKAGE_FFTW_DOUBLE + help + This option has been removed in favor of + BR2_PACKAGE_FFTW_DOUBLE. + +config BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE + bool "long double" + depends on !(BR2_TOOLCHAIN_BUILDROOT_UCLIBC && \ + (BR2_arm || BR2_mips || BR2_mipsel)) + select BR2_LEGACY + select BR2_PACKAGE_FFTW_LONG_DOUBLE + help + This option has been removed in favor of + BR2_PACKAGE_FFTW_LONG_DOUBLE. + +config BR2_PACKAGE_FFTW_PRECISION_QUAD + bool "quad" + depends on (BR2_i386 || BR2_x86_64) && BR2_USE_WCHAR + select BR2_LEGACY + select BR2_PACKAGE_FFTW_QUAD + help + This option has been removed in favor of + BR2_PACKAGE_FFTW_QUAD. + +config BR2_PACKAGE_LUA_5_2 + bool "Lua 5.2.x version removed" + select BR2_LEGACY + select BR2_PACKAGE_LUA_5_3 + help + The Lua 5.2.x version was removed. + +config BR2_TARGET_GENERIC_PASSWD_MD5 + bool "target passwd md5 format support has been removed" + select BR2_LEGACY + help + The default has been moved to SHA256 and all C libraries + now support that method by default + +comment "Legacy options removed in 2018.11" + +config BR2_TARGET_XLOADER + bool "xloader has been removed" + select BR2_LEGACY + help + The package has been removed as u-boot SPL provides + similar functionality + +config BR2_PACKAGE_TIDSP_BINARIES + bool "tidsp-binaries package removed" + select BR2_LEGACY + help + The tidsp-binaries package was removed. + +config BR2_PACKAGE_DSP_TOOLS + bool "dsp-tools package removed" + select BR2_LEGACY + help + The dsp-tools package was removed. + +config BR2_PACKAGE_GST_DSP + bool "gst-dsp package removed" + select BR2_LEGACY + help + The gst-dsp package was removed. + +config BR2_PACKAGE_BOOTUTILS + bool "bootutils package removed" + select BR2_LEGACY + help + The bootutils package was removed. + +config BR2_PACKAGE_EXPEDITE + bool "expedite package has been removed" + select BR2_LEGACY + help + expedite is not actively maintained anymore. + https://sourceforge.net/p/enlightenment/mailman/message/36428571 + +config BR2_PACKAGE_MESA3D_OPENGL_TEXTURE_FLOAT + bool "mesa3d opengl texture float option removed" + select BR2_LEGACY + help + mesa3d now unconditionally enables floating-point textures, + as the corresponding patent has expired. + +config BR2_KERNEL_HEADERS_4_10 + bool "kernel headers version 4.10.x are no longer supported" + select BR2_LEGACY + help + Version 4.10.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_KERNEL_HEADERS_4_11 + bool "kernel headers version 4.11.x are no longer supported" + select BR2_LEGACY + help + Version 4.11.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_KERNEL_HEADERS_4_12 + bool "kernel headers version 4.12.x are no longer supported" + select BR2_LEGACY + help + Version 4.12.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_KERNEL_HEADERS_4_13 + bool "kernel headers version 4.13.x are no longer supported" + select BR2_LEGACY + help + Version 4.13.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_KERNEL_HEADERS_4_15 + bool "kernel headers version 4.15.x are no longer supported" + select BR2_LEGACY + help + Version 4.15.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_KERNEL_HEADERS_4_17 + bool "kernel headers version 4.17.x are no longer supported" + select BR2_LEGACY + help + Version 4.17.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_PACKAGE_LIBNFTNL_XML + bool "libnftl no longer supports XML output" + select BR2_LEGACY + help + libnftnl removed integration with libmxml. + +config BR2_KERNEL_HEADERS_3_2 + bool "kernel headers version 3.2.x are no longer supported" + select BR2_LEGACY + help + Version 3.2.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_KERNEL_HEADERS_4_1 + bool "kernel headers version 4.1.x are no longer supported" + select BR2_LEGACY + help + Version 4.1.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_KERNEL_HEADERS_4_16 + bool "kernel headers version 4.16.x are no longer supported" + select BR2_LEGACY + help + Version 4.16.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_KERNEL_HEADERS_4_18 + bool "kernel headers version 4.18.x are no longer supported" + select BR2_LEGACY + help + Version 4.18.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +############################################################################### +comment "Legacy options removed in 2018.08" + +config BR2_PACKAGE_DOCKER_ENGINE_STATIC_CLIENT + bool "docker-engine static client option renamed" + select BR2_LEGACY + select BR2_PACKAGE_DOCKER_CLI_STATIC + help + BR2_PACKAGE_DOCKER_ENGINE_STATIC_CLIENT has been renamed to + BR2_PACKAGE_DOCKER_CLI_STATIC, following the package split of + docker-engine and docker-cli. + +config BR2_PACKAGE_XPROTO_APPLEWMPROTO + bool "xproto-applewmproto package replaced by xorgproto" + select BR2_LEGACY + select BR2_PACKAGE_XORGPROTO + help + The xproto-applewmproto package has been replaced by the + xorgproto package, which combines all xproto_* packages. + +config BR2_PACKAGE_XPROTO_BIGREQSPROTO + bool "xproto-bigreqsproto package replaced by xorgproto" + select BR2_LEGACY + select BR2_PACKAGE_XORGPROTO + help + The xproto-bigreqsproto package has been replaced by the + xorgproto package, which combines all xproto_* packages. + +config BR2_PACKAGE_XPROTO_COMPOSITEPROTO + bool "xproto-compositeproto package replaced by xorgproto" + select BR2_LEGACY + select BR2_PACKAGE_XORGPROTO + help + The xproto-compositeproto package has been replaced by the + xorgproto package, which combines all xproto_* packages. + +config BR2_PACKAGE_XPROTO_DAMAGEPROTO + bool "xproto-dameproto package replaced by xorgproto" + select BR2_LEGACY + select BR2_PACKAGE_XORGPROTO + help + The xproto-dameproto package has been replaced by the + xorgproto package, which combines all xproto_* packages. + +config BR2_PACKAGE_XPROTO_DMXPROTO + bool "xproto-dmxproto package replaced by xorgproto" + select BR2_LEGACY + select BR2_PACKAGE_XORGPROTO + help + The xproto-dmxproto package has been replaced by the + xorgproto package, which combines all xproto_* packages. + +config BR2_PACKAGE_XPROTO_DRI2PROTO + bool "xproto-dri2proto package replaced by xorgproto" + select BR2_LEGACY + select BR2_PACKAGE_XORGPROTO + help + The xproto-dri2proto package has been replaced by the + xorgproto package, which combines all xproto_* packages. + +config BR2_PACKAGE_XPROTO_DRI3PROTO + bool "xproto-dri3proto package replaced by xorgproto" + select BR2_LEGACY + select BR2_PACKAGE_XORGPROTO + help + The xproto-dri3proto package has been replaced by the + xorgproto package, which combines all xproto_* packages. + +config BR2_PACKAGE_XPROTO_FIXESPROTO + bool "xproto-fixesproto package replaced by xorgproto" + select BR2_LEGACY + select BR2_PACKAGE_XORGPROTO + help + The xproto-fixesproto package has been replaced by the + xorgproto package, which combines all xproto_* packages. + +config BR2_PACKAGE_XPROTO_FONTCACHEPROTO + bool "xproto-fontcacheproto package replaced by xorgproto" + select BR2_LEGACY + select BR2_PACKAGE_XORGPROTO + help + The xproto-fontcacheproto package has been replaced by the + xorgproto package, which combines all xproto_* packages. + +config BR2_PACKAGE_XPROTO_FONTSPROTO + bool "xproto-fontsproto package replaced by xorgproto" + select BR2_LEGACY + select BR2_PACKAGE_XORGPROTO + help + The xproto-fontsproto package has been replaced by the + xorgproto package, which combines all xproto_* packages. + +config BR2_PACKAGE_XPROTO_GLPROTO + bool "xproto-glproto package replaced by xorgproto" + select BR2_LEGACY + select BR2_PACKAGE_XORGPROTO + help + The xproto-glproto package has been replaced by the + xorgproto package, which combines all xproto_* packages. + +config BR2_PACKAGE_XPROTO_INPUTPROTO + bool "xproto-inputproto package replaced by xorgproto" + select BR2_LEGACY + select BR2_PACKAGE_XORGPROTO + help + The xproto-inputproto package has been replaced by the + xorgproto package, which combines all xproto_* packages. + +config BR2_PACKAGE_XPROTO_KBPROTO + bool "xproto-kbproto package replaced by xorgproto" + select BR2_LEGACY + select BR2_PACKAGE_XORGPROTO + help + The xproto-kbproto package has been replaced by the + xorgproto package, which combines all xproto_* packages. + +config BR2_PACKAGE_XPROTO_PRESENTPROTO + bool "xproto-presentproto package replaced by xorgproto" + select BR2_LEGACY + select BR2_PACKAGE_XORGPROTO + help + The xproto-presentproto package has been replaced by the + xorgproto package, which combines all xproto_* packages. + +config BR2_PACKAGE_XPROTO_RANDRPROTO + bool "xproto-randrproto package replaced by xorgproto" + select BR2_LEGACY + select BR2_PACKAGE_XORGPROTO + help + The xproto-randrproto package has been replaced by the + xorgproto package, which combines all xproto_* packages. + +config BR2_PACKAGE_XPROTO_RECORDPROTO + bool "xproto-recordproto package replaced by xorgproto" + select BR2_LEGACY + select BR2_PACKAGE_XORGPROTO + help + The xproto-recordproto package has been replaced by the + xorgproto package, which combines all xproto_* packages. + +config BR2_PACKAGE_XPROTO_RENDERPROTO + bool "xproto-renderproto package replaced by xorgproto" + select BR2_LEGACY + select BR2_PACKAGE_XORGPROTO + help + The xproto-renderproto package has been replaced by the + xorgproto package, which combines all xproto_* packages. + +config BR2_PACKAGE_XPROTO_RESOURCEPROTO + bool "xproto-resourceproto package replaced by xorgproto" + select BR2_LEGACY + select BR2_PACKAGE_XORGPROTO + help + The xproto-resourceproto package has been replaced by the + xorgproto package, which combines all xproto_* packages. + +config BR2_PACKAGE_XPROTO_SCRNSAVERPROTO + bool "xproto-scrnsaverprot package replaced by xorgproto" + select BR2_LEGACY + select BR2_PACKAGE_XORGPROTO + help + The xproto-scrnsaverprot package has been replaced by the + xorgproto package, which combines all xproto_* packages. + +config BR2_PACKAGE_XPROTO_VIDEOPROTO + bool "xproto-videoproto package replaced by xorgproto" + select BR2_LEGACY + select BR2_PACKAGE_XORGPROTO + help + The xproto-videoproto package has been replaced by the + xorgproto package, which combines all xproto_* packages. + +config BR2_PACKAGE_XPROTO_WINDOWSWMPROTO + bool "xproto-windowswmproto package replaced by xorgproto" + select BR2_LEGACY + select BR2_PACKAGE_XORGPROTO + help + The xproto-windowswmproto package has been replaced by the + xorgproto package, which combines all xproto_* packages. + +config BR2_PACKAGE_XPROTO_XCMISCPROTO + bool "xproto-xcmiscproto package replaced by xorgproto" + select BR2_LEGACY + select BR2_PACKAGE_XORGPROTO + help + The xproto-xcmiscproto package has been replaced by the + xorgproto package, which combines all xproto_* packages. + +config BR2_PACKAGE_XPROTO_XEXTPROTO + bool "xproto-xextproto package replaced by xorgproto" + select BR2_LEGACY + select BR2_PACKAGE_XORGPROTO + help + The xproto-xextproto package has been replaced by the + xorgproto package, which combines all xproto_* packages. + +config BR2_PACKAGE_XPROTO_XF86BIGFONTPROTO + bool "xproto-xf86bigfontproto package replaced by xorgproto" + select BR2_LEGACY + select BR2_PACKAGE_XORGPROTO + help + The xproto-xf86bigfontproto package has been replaced by the + xorgproto package, which combines all xproto_* packages. + +config BR2_PACKAGE_XPROTO_XF86DGAPROTO + bool "xproto-xf86dgaproto package replaced by xorgproto" + select BR2_LEGACY + select BR2_PACKAGE_XORGPROTO + help + The xproto-xf86dgaproto package has been replaced by the + xorgproto package, which combines all xproto_* packages. + +config BR2_PACKAGE_XPROTO_XF86DRIPROTO + bool "xproto-xf86driproto package replaced by xorgproto" + select BR2_LEGACY + select BR2_PACKAGE_XORGPROTO + help + The xproto-xf86driproto package has been replaced by the + xorgproto package, which combines all xproto_* packages. + +config BR2_PACKAGE_XPROTO_XF86VIDMODEPROTO + bool "xproto-xf86vidmodeproto package replaced by xorgproto" + select BR2_LEGACY + select BR2_PACKAGE_XORGPROTO + help + The xproto-xf86vidmodeproto package has been replaced by the + xorgproto package, which combines all xproto_* packages. + +config BR2_PACKAGE_XPROTO_XINERAMAPROTO + bool "xproto-xineramaproto package replaced by xorgproto" + select BR2_LEGACY + select BR2_PACKAGE_XORGPROTO + help + The xproto-xineramaproto package has been replaced by the + xorgproto package, which combines all xproto_* packages. + +config BR2_PACKAGE_XPROTO_XPROTO + bool "xproto-xproto package replaced by xorgproto" + select BR2_LEGACY + select BR2_PACKAGE_XORGPROTO + help + The xproto-xproto package has been replaced by the + xorgproto package, which combines all xproto_* packages. + +config BR2_PACKAGE_XPROTO_XPROXYMANAGEMENTPROTOCOL + bool "xproto-xproxymanagementprotocol package replaced by xorgproto" + select BR2_LEGACY + select BR2_PACKAGE_XORGPROTO + help + The xproto-xproxymanagementprotocol package has been + replaced by the xorgproto package, which combines all + xproto_* packages. + +config BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_OPENGL + bool "gst1-plugins-bad opengl option moved to gst1-plugins-base" + select BR2_LEGACY + select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_OPENGL + help + The opengl option has been moved from gst1-plugins-bad to + gst1-plugins-base. + +config BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_GLES2 + bool "gst1-plugins-bad gles2 option moved to gst1-plugins-base" + select BR2_LEGACY + select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_GLES2 + help + The gles2 option has been moved from gst1-plugins-bad to + gst1-plugins-base. + +config BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_GLX + bool "gst1-plugins-bad glx option moved to gst1-plugins-base" + select BR2_LEGACY + select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_GLX + help + The glx option has been moved from gst1-plugins-bad to + gst1-plugins-base. + +config BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_EGL + bool "gst1-plugins-bad egl option moved to gst1-plugins-base" + select BR2_LEGACY + select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_EGL + help + The egl option has been moved from gst1-plugins-bad to + gst1-plugins-base. + +config BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_X11 + bool "gst1-plugins-bad x11 option moved to gst1-plugins-base" + select BR2_LEGACY + select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_X11 + help + The x11 option has been moved from gst1-plugins-bad to + gst1-plugins-base. + +config BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_WAYLAND + bool "gst1-plugins-bad wayland option moved to gst1-plugins-base" + select BR2_LEGACY + select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_WAYLAND + help + The wayland option has been moved from gst1-plugins-bad to + gst1-plugins-base. + +config BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_DISPMANX + bool "gst1-plugins-bad dispmanx option moved to gst1-plugins-base" + select BR2_LEGACY + select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_DISPMANX + help + The dispmanx option has been moved from gst1-plugins-mad to + gst1-plugins-base. + +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AUDIOMIXER + bool "gst1-plugins-bad audiomixer option moved to gst1-plugins-base" + select BR2_LEGACY + select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIOMIXER + help + The audiomixer option has been moved from gst1-plugins-bad to + gst1-plugins-base. + +config BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_LAME + bool "gst1-plugins-ugly lame option moved to gst1-plugins-good" + select BR2_LEGACY + select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_LAME + help + The lame option has been moved from gst1-plugins-ugly to + gst1-plugins-good. + +config BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_MPG123 + bool "gst1-plugins-ugly mpg123 option moved to gst1-plugins-good" + select BR2_LEGACY + select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_MPG123 + help + The mpg123 option has been moved from gst1-plugins-ugly to + gst1-plugins-good. + +config BR2_GDB_VERSION_7_11 + bool "gdb 7.11 has been removed" + select BR2_LEGACY + help + The 7.11 version of gdb has been removed. Use a newer version + instead. + +config BR2_GDB_VERSION_7_10 + bool "gdb 7.10 has been removed" + select BR2_LEGACY + help + The 7.10 version of gdb has been removed. Use a newer version + instead. + +############################################################################### +comment "Legacy options removed in 2018.05" + +config BR2_PACKAGE_MEDIAART_BACKEND_NONE + bool "libmediaart none backend option renamed" + select BR2_LEGACY + help + For consistency reasons, the option + BR2_PACKAGE_MEDIAART_BACKEND_NONE has been renamed to + BR2_PACKAGE_LIBMEDIAART_BACKEND_NONE + +config BR2_PACKAGE_MEDIAART_BACKEND_GDK_PIXBUF + bool "libmediaart gdk-pixbuf backend option renamed" + select BR2_LEGACY + help + For consistency reasons, the option + BR2_PACKAGE_MEDIAART_BACKEND_GDK_PIXBUF has been renamed to + BR2_PACKAGE_LIBMEDIAART_BACKEND_GDK_PIXBUF + +config BR2_PACKAGE_MEDIAART_BACKEND_GDK_PIXBUF + bool "libmediaart qt backend option renamed" + select BR2_LEGACY + help + For consistency reasons, the option + BR2_PACKAGE_MEDIAART_BACKEND_QT has been renamed to + BR2_PACKAGE_LIBMEDIAART_BACKEND_QT + +# Note: BR2_PACKAGE_TI_SGX_AM335X is still referenced from +# package/ti-sgx-km/Config.in +config BR2_PACKAGE_TI_SGX_AM335X + bool "ti-sgx-km AM335X option renamed" + select BR2_LEGACY + help + For consistency reasons, the option + BR2_PACKAGE_TI_SGX_AM335X has been renamed to + BR2_PACKAGE_TI_SGX_KM_AM335X. + +# Note: BR2_PACKAGE_TI_SGX_AM437X is still referenced from +# package/ti-sgx-km/Config.in +config BR2_PACKAGE_TI_SGX_AM437X + bool "ti-sgx-km AM437X option renamed" + select BR2_LEGACY + help + For consistency reasons, the option + BR2_PACKAGE_TI_SGX_AM437X has been renamed to + BR2_PACKAGE_TI_SGX_KM_AM437X. + +# Note: BR2_PACKAGE_TI_SGX_AM4430 is still referenced from +# package/ti-sgx-km/Config.in +config BR2_PACKAGE_TI_SGX_AM4430 + bool "ti-sgx-km AM4430 option renamed" + select BR2_LEGACY + help + For consistency reasons, the option + BR2_PACKAGE_TI_SGX_AM4430 has been renamed to + BR2_PACKAGE_TI_SGX_KM_AM4430. + +# Note: BR2_PACKAGE_TI_SGX_AM5430 is still referenced from +# package/ti-sgx-km/Config.in +config BR2_PACKAGE_TI_SGX_AM5430 + bool "ti-sgx-km AM5430 option renamed" + select BR2_LEGACY + help + For consistency reasons, the option + BR2_PACKAGE_TI_SGX_AM5430 has been renamed to + BR2_PACKAGE_TI_SGX_KM_AM5430. + +config BR2_PACKAGE_JANUS_AUDIO_BRIDGE + bool "janus-gateway audio-bridge option renamed" + select BR2_LEGACY + select BR2_PACKAGE_JANUS_GATEWAY_AUDIO_BRIDGE + help + For consistency reasons, the janus-gateway option + BR2_PACKAGE_JANUS_AUDIO_BRIDGE has been renamed to + BR2_PACKAGE_JANUS_GATEWAY_AUDIO_BRIDGE. + +config BR2_PACKAGE_JANUS_ECHO_TEST + bool "janus-gateway echo-test option renamed" + select BR2_LEGACY + select BR2_PACKAGE_JANUS_GATEWAY_ECHO_TEST + help + For consistency reasons, the janus-gateway option + BR2_PACKAGE_JANUS_ECHO_TEST has been renamed to + BR2_PACKAGE_JANUS_GATEWAY_ECHO_TEST. + +config BR2_PACKAGE_JANUS_RECORDPLAY + bool "janus-gateway recordplay option renamed" + select BR2_LEGACY + select BR2_PACKAGE_JANUS_GATEWAY_RECORDPLAY + help + For consistency reasons, the janus-gateway option + BR2_PACKAGE_JANUS_RECORDPLAY has been renamed to + BR2_PACKAGE_JANUS_GATEWAY_RECORDPLAY. + +config BR2_PACKAGE_JANUS_SIP_GATEWAY + bool "janus-gateway sip-gateway option renamed" + select BR2_LEGACY + select BR2_PACKAGE_JANUS_GATEWAY_SIP_GATEWAY + help + For consistency reasons, the janus-gateway option + BR2_PACKAGE_JANUS_SIP_GATEWAY has been renamed to + BR2_PACKAGE_JANUS_GATEWAY_SIP_GATEWAY. + +config BR2_PACKAGE_JANUS_STREAMING + bool "janus-gateway streaming option renamed" + select BR2_LEGACY + select BR2_PACKAGE_JANUS_GATEWAY_STREAMING + help + For consistency reasons, the janus-gateway option + BR2_PACKAGE_JANUS_STREAMING has been renamed to + BR2_PACKAGE_JANUS_GATEWAY_STREAMING. + +config BR2_PACKAGE_JANUS_TEXT_ROOM + bool "janus-gateway text-room option renamed" + select BR2_LEGACY + select BR2_PACKAGE_JANUS_GATEWAY_TEXT_ROOM + help + For consistency reasons, the janus-gateway option + BR2_PACKAGE_JANUS_TEXT_ROOM has been renamed to + BR2_PACKAGE_JANUS_GATEWAY_TEXT_ROOM. + +config BR2_PACKAGE_JANUS_VIDEO_CALL + bool "janus-gateway video-call option renamed" + select BR2_LEGACY + select BR2_PACKAGE_JANUS_GATEWAY_VIDEO_CALL + help + For consistency reasons, the janus-gateway option + BR2_PACKAGE_JANUS_VIDEO_CALL has been renamed to + BR2_PACKAGE_JANUS_GATEWAY_VIDEO_CALL. + +config BR2_PACKAGE_JANUS_VIDEO_ROOM + bool "janus-gateway video-room option renamed" + select BR2_LEGACY + select BR2_PACKAGE_JANUS_GATEWAY_VIDEO_ROOM + help + For consistency reasons, the janus-gateway option + BR2_PACKAGE_JANUS_VIDEO_ROOM has been renamed to + BR2_PACKAGE_JANUS_GATEWAY_VIDEO_ROOM. + +config BR2_PACKAGE_JANUS_MQTT + bool "janus-gateway mqtt option renamed" + select BR2_LEGACY + select BR2_PACKAGE_JANUS_GATEWAY_MQTT + help + For consistency reasons, the janus-gateway option + BR2_PACKAGE_JANUS_MQTT has been renamed to + BR2_PACKAGE_JANUS_GATEWAY_MQTT. + +config BR2_PACKAGE_JANUS_RABBITMQ + bool "janus-gateway rabbitmq option renamed" + select BR2_LEGACY + select BR2_PACKAGE_JANUS_GATEWAY_RABBITMQ + help + For consistency reasons, the janus-gateway option + BR2_PACKAGE_JANUS_RABBITMQ has been renamed to + BR2_PACKAGE_JANUS_GATEWAY_RABBITMQ. + +config BR2_PACKAGE_JANUS_REST + bool "janus-gateway rest option renamed" + select BR2_LEGACY + select BR2_PACKAGE_JANUS_GATEWAY_REST + help + For consistency reasons, the janus-gateway option + BR2_PACKAGE_JANUS_REST has been renamed to + BR2_PACKAGE_JANUS_GATEWAY_REST. + +config BR2_PACKAGE_JANUS_UNIX_SOCKETS + bool "janus-gateway unix-sockets option renamed" + select BR2_LEGACY + select BR2_PACKAGE_JANUS_GATEWAY_UNIX_SOCKETS + help + For consistency reasons, the janus-gateway option + BR2_PACKAGE_JANUS_UNIX_SOCKETS has been renamed to + BR2_PACKAGE_JANUS_GATEWAY_UNIX_SOCKETS. + +config BR2_PACKAGE_JANUS_WEBSOCKETS + bool "janus-gateway websockets option renamed" + select BR2_LEGACY + select BR2_PACKAGE_JANUS_GATEWAY_WEBSOCKETS + help + For consistency reasons, the janus-gateway option + BR2_PACKAGE_JANUS_WEBSOCKETS has been renamed to + BR2_PACKAGE_JANUS_GATEWAY_WEBSOCKETS. + +config BR2_PACKAGE_IPSEC_SECCTX_DISABLE + bool "ipsec-tools security context disable option renamed" + select BR2_LEGACY + help + For consistency reasons, the option + BR2_PACKAGE_IPSEC_SECCTX_DISABLE was renamed to + BR2_PACKAGE_IPSEC_TOOLS_SECCTX_DISABLE. + +config BR2_PACKAGE_IPSEC_SECCTX_ENABLE + bool "ipsec-tools SELinux security context enable option renamed" + select BR2_LEGACY + help + For consistency reasons, the option + BR2_PACKAGE_IPSEC_SECCTX_ENABLE was renamed to + BR2_PACKAGE_IPSEC_TOOLS_SECCTX_ENABLE. + +config BR2_PACKAGE_IPSEC_SECCTX_KERNEL + bool "ipsec-tools kernel security context enable option renamed" + select BR2_LEGACY + help + For consistency reasons, the option + BR2_PACKAGE_IPSEC_SECCTX_KERNEL was renamed to + BR2_PACKAGE_IPSEC_TOOLS_SECCTX_KERNEL. + +config BR2_PACKAGE_LIBTFDI_CPP + bool "libftdi C++ bindings option renamed" + select BR2_LEGACY + select BR2_PACKAGE_LIBFTDI_CPP + help + The option BR2_PACKAGE_LIBTFDI_CPP was renamed to + BR2_PACKAGE_LIBFTDI_CPP in order to fix a typo in the option + name. + +config BR2_PACKAGE_JQUERY_UI_THEME_BLACK_TIE + bool "jquery-ui-themes option black-tie renamed" + select BR2_LEGACY + help + For consistency reasons, the jquery-ui-themes option for the + black-tie theme has been renamed from + BR2_PACKAGE_JQUERY_UI_THEME_BLACK_TIE to + BR2_PACKAGE_JQUERY_UI_THEMES_BLACK_TIE. + +config BR2_PACKAGE_JQUERY_UI_THEME_BLITZER + bool "jquery-ui-themes option blitzer renamed" + select BR2_LEGACY + help + For consistency reasons, the jquery-ui-themes option for the + blitzer theme has been renamed from + BR2_PACKAGE_JQUERY_UI_THEME_BLITZER to + BR2_PACKAGE_JQUERY_UI_THEMES_BLITZER. + +config BR2_PACKAGE_JQUERY_UI_THEME_CUPERTINO + bool "jquery-ui-themes option cupertino renamed" + select BR2_LEGACY + help + For consistency reasons, the jquery-ui-themes option for the + cupertino theme has been renamed from + BR2_PACKAGE_JQUERY_UI_THEME_CUPERTINO to + BR2_PACKAGE_JQUERY_UI_THEMES_CUPERTINO. + +config BR2_PACKAGE_JQUERY_UI_THEME_DARK_HIVE + bool "jquery-ui-themes option dark-hive renamed" + select BR2_LEGACY + help + For consistency reasons, the jquery-ui-themes option for the + dark-hive theme has been renamed from + BR2_PACKAGE_JQUERY_UI_THEME_DARK_HIVE to + BR2_PACKAGE_JQUERY_UI_THEMES_DARK_HIVE. + +config BR2_PACKAGE_JQUERY_UI_THEME_DOT_LUV + bool "jquery-ui-themes option dot-luv renamed" + select BR2_LEGACY + help + For consistency reasons, the jquery-ui-themes option for the + dot-luv theme has been renamed from + BR2_PACKAGE_JQUERY_UI_THEME_DOT_LUV to + BR2_PACKAGE_JQUERY_UI_THEMES_DOT_LUV. + +config BR2_PACKAGE_JQUERY_UI_THEME_EGGPLANT + bool "jquery-ui-themes option eggplant renamed" + select BR2_LEGACY + help + For consistency reasons, the jquery-ui-themes option for the + eggplant theme has been renamed from + BR2_PACKAGE_JQUERY_UI_THEME_EGGPLANT to + BR2_PACKAGE_JQUERY_UI_THEMES_EGGPLANT. + +config BR2_PACKAGE_JQUERY_UI_THEME_EXCITE_BIKE + bool "jquery-ui-themes option excite-bike renamed" + select BR2_LEGACY + help + For consistency reasons, the jquery-ui-themes option for the + excite-bike theme has been renamed from + BR2_PACKAGE_JQUERY_UI_THEME_EXCITE_BIKE to + BR2_PACKAGE_JQUERY_UI_THEMES_EXCITE_BIKE. + +config BR2_PACKAGE_JQUERY_UI_THEME_FLICK + bool "jquery-ui-themes option flick renamed" + select BR2_LEGACY + help + For consistency reasons, the jquery-ui-themes option for the + flick theme has been renamed from + BR2_PACKAGE_JQUERY_UI_THEME_FLICK to + BR2_PACKAGE_JQUERY_UI_THEMES_FLICK. + +config BR2_PACKAGE_JQUERY_UI_THEME_HOT_SNEAKS + bool "jquery-ui-themes option hot-sneaks renamed" + select BR2_LEGACY + help + For consistency reasons, the jquery-ui-themes option for the + hot-sneaks theme has been renamed from + BR2_PACKAGE_JQUERY_UI_THEME_HOT_SNEAKS to + BR2_PACKAGE_JQUERY_UI_THEMES_HOT_SNEAKS. + +config BR2_PACKAGE_JQUERY_UI_THEME_HUMANITY + bool "jquery-ui-themes option humanity renamed" + select BR2_LEGACY + help + For consistency reasons, the jquery-ui-themes option for the + humanity theme has been renamed from + BR2_PACKAGE_JQUERY_UI_THEME_HUMANITY to + BR2_PACKAGE_JQUERY_UI_THEMES_HUMANITY. + +config BR2_PACKAGE_JQUERY_UI_THEME_LE_FROG + bool "jquery-ui-themes option le-frog renamed" + select BR2_LEGACY + help + For consistency reasons, the jquery-ui-themes option for the + le-frog theme has been renamed from + BR2_PACKAGE_JQUERY_UI_THEME_LE_FROG to + BR2_PACKAGE_JQUERY_UI_THEMES_LE_FROG. + +config BR2_PACKAGE_JQUERY_UI_THEME_MINT_CHOC + bool "jquery-ui-themes option mint-choc renamed" + select BR2_LEGACY + help + For consistency reasons, the jquery-ui-themes option for the + mint-choc theme has been renamed from + BR2_PACKAGE_JQUERY_UI_THEME_MINT_CHOC to + BR2_PACKAGE_JQUERY_UI_THEMES_MINT_CHOC. + +config BR2_PACKAGE_JQUERY_UI_THEME_OVERCAST + bool "jquery-ui-themes option overcast renamed" + select BR2_LEGACY + help + For consistency reasons, the jquery-ui-themes option for the + overcast theme has been renamed from + BR2_PACKAGE_JQUERY_UI_THEME_OVERCAST to + BR2_PACKAGE_JQUERY_UI_THEMES_OVERCAST. + +config BR2_PACKAGE_JQUERY_UI_THEME_PEPPER_GRINDER + bool "jquery-ui-themes option pepper-grinder renamed" + select BR2_LEGACY + help + For consistency reasons, the jquery-ui-themes option for the + pepper-grinder theme has been renamed from + BR2_PACKAGE_JQUERY_UI_THEME_PEPPER_GRINDER to + BR2_PACKAGE_JQUERY_UI_THEMES_PEPPER_GRINDER. + +config BR2_PACKAGE_JQUERY_UI_THEME_REDMOND + bool "jquery-ui-themes option redmond renamed" + select BR2_LEGACY + help + For consistency reasons, the jquery-ui-themes option for the + redmond theme has been renamed from + BR2_PACKAGE_JQUERY_UI_THEME_REDMOND to + BR2_PACKAGE_JQUERY_UI_THEMES_REDMOND. + +config BR2_PACKAGE_JQUERY_UI_THEME_SMOOTHNESS + bool "jquery-ui-themes option smoothness renamed" + select BR2_LEGACY + help + For consistency reasons, the jquery-ui-themes option for the + smoothness theme has been renamed from + BR2_PACKAGE_JQUERY_UI_THEME_SMOOTHNESS to + BR2_PACKAGE_JQUERY_UI_THEMES_SMOOTHNESS. + +config BR2_PACKAGE_JQUERY_UI_THEME_SOUTH_STREET + bool "jquery-ui-themes option south-street renamed" + select BR2_LEGACY + help + For consistency reasons, the jquery-ui-themes option for the + south-street theme has been renamed from + BR2_PACKAGE_JQUERY_UI_THEME_SOUTH_STREET to + BR2_PACKAGE_JQUERY_UI_THEMES_SOUTH_STREET. + +config BR2_PACKAGE_JQUERY_UI_THEME_START + bool "jquery-ui-themes option start renamed" + select BR2_LEGACY + help + For consistency reasons, the jquery-ui-themes option for the + start theme has been renamed from + BR2_PACKAGE_JQUERY_UI_THEME_START to + BR2_PACKAGE_JQUERY_UI_THEMES_START. + +config BR2_PACKAGE_JQUERY_UI_THEME_SUNNY + bool "jquery-ui-themes option sunny renamed" + select BR2_LEGACY + help + For consistency reasons, the jquery-ui-themes option for the + sunny theme has been renamed from + BR2_PACKAGE_JQUERY_UI_THEME_SUNNY to + BR2_PACKAGE_JQUERY_UI_THEMES_SUNNY. + +config BR2_PACKAGE_JQUERY_UI_THEME_SWANKY_PURSE + bool "jquery-ui-themes option swanky-purse renamed" + select BR2_LEGACY + help + For consistency reasons, the jquery-ui-themes option for the + swanky-purse theme has been renamed from + BR2_PACKAGE_JQUERY_UI_THEME_SWANKY_PURSE to + BR2_PACKAGE_JQUERY_UI_THEMES_SWANKY_PURSE. + +config BR2_PACKAGE_JQUERY_UI_THEME_TRONTASTIC + bool "jquery-ui-themes option trontastic renamed" + select BR2_LEGACY + help + For consistency reasons, the jquery-ui-themes option for the + trontastic theme has been renamed from + BR2_PACKAGE_JQUERY_UI_THEME_TRONTASTIC to + BR2_PACKAGE_JQUERY_UI_THEMES_TRONTASTIC. + +config BR2_PACKAGE_JQUERY_UI_THEME_UI_DARKNESS + bool "jquery-ui-themes option ui-darkness renamed" + select BR2_LEGACY + help + For consistency reasons, the jquery-ui-themes option for the + ui-darkness theme has been renamed from + BR2_PACKAGE_JQUERY_UI_THEME_UI_DARKNESS to + BR2_PACKAGE_JQUERY_UI_THEMES_UI_DARKNESS. + +config BR2_PACKAGE_JQUERY_UI_THEME_UI_LIGHTNESS + bool "jquery-ui-themes option ui-lightness renamed" + select BR2_LEGACY + help + For consistency reasons, the jquery-ui-themes option for the + ui-lightness theme has been renamed from + BR2_PACKAGE_JQUERY_UI_THEME_UI_LIGHTNESS to + BR2_PACKAGE_JQUERY_UI_THEMES_UI_LIGHTNESS. + +config BR2_PACKAGE_JQUERY_UI_THEME_VADER + bool "jquery-ui-themes option vader renamed" + select BR2_LEGACY + help + For consistency reasons, the jquery-ui-themes option for the + vader theme has been renamed from + BR2_PACKAGE_JQUERY_UI_THEME_VADER to + BR2_PACKAGE_JQUERY_UI_THEMES_VADER. + +config BR2_PACKAGE_BLUEZ5_PLUGINS_HEALTH + bool "bluez5-utils health plugin option renamed" + select BR2_LEGACY + select BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HEALTH + help + For consistency reasons, the option + BR2_PACKAGE_BLUEZ5_PLUGINS_HEALTH has been renamed to + BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HEALTH. + +config BR2_PACKAGE_BLUEZ5_PLUGINS_MIDI + bool "bluez5-utils midi plugin option renamed" + select BR2_LEGACY + select BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_MIDI + help + For consistency reasons, the option + BR2_PACKAGE_BLUEZ5_PLUGINS_MIDI has been renamed to + BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_MIDI. + +config BR2_PACKAGE_BLUEZ5_PLUGINS_NFC + bool "bluez5-utils nfc plugin option renamed" + select BR2_LEGACY + select BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_NFC + help + For consistency reasons, the option + BR2_PACKAGE_BLUEZ5_PLUGINS_NFC has been renamed to + BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_NFC. + +config BR2_PACKAGE_BLUEZ5_PLUGINS_SAP + bool "bluez5-utils sap plugin option renamed" + select BR2_LEGACY + select BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_SAP + help + For consistency reasons, the option + BR2_PACKAGE_BLUEZ5_PLUGINS_SAP has been renamed to + BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_SAP. + +config BR2_PACKAGE_BLUEZ5_PLUGINS_SIXAXIS + bool "bluez5-utils sixaxis plugin option renamed" + select BR2_LEGACY + select BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_SIXAXIS + help + For consistency reasons, the option + BR2_PACKAGE_BLUEZ5_PLUGINS_SIXAXIS has been renamed to + BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_SIXAXIS. + +config BR2_PACKAGE_TRANSMISSION_REMOTE + bool "transmission remote tool option removed" + select BR2_LEGACY + select BR2_PACKAGE_TRANSMISSION_DAEMON + help + Upstream does not provide a separate configure option for + the tool transmission-remote, it is built when the + transmission daemon has been enabled. Therefore, Buildroot + has automatically enabled BR2_PACKAGE_TRANSMISSION_DAEMON + for you. + +config BR2_PACKAGE_LIBKCAPI_APPS + bool "libkcapi test applications removed" + select BR2_LEGACY + select BR2_PACKAGE_LIBKCAPI_HASHER if !BR2_STATIC_LIBS + select BR2_PACKAGE_LIBKCAPI_RNGAPP + select BR2_PACKAGE_LIBKCAPI_SPEED + select BR2_PACKAGE_LIBKCAPI_TEST + help + Test applications (hasher, rng read, speed-test, test) now + have their own configuration options in the libkcapi menu. + +config BR2_PACKAGE_MPLAYER + bool "mplayer package removed" + select BR2_LEGACY + help + The mplayer package was removed. + +config BR2_PACKAGE_MPLAYER_MPLAYER + bool "mplayer package removed" + select BR2_LEGACY + help + The mplayer package was removed. + +config BR2_PACKAGE_MPLAYER_MENCODER + bool "mplayer package removed" + select BR2_LEGACY + help + The mplayer package was removed. + +config BR2_PACKAGE_LIBPLAYER_MPLAYER + bool "mplayer support in libplayer removed" + select BR2_LEGACY + help + The mplayer package was removed. + +config BR2_PACKAGE_IQVLINUX + bool "iqvlinux package removed" + select BR2_LEGACY + help + This package contained a kernel module from Intel, which + could only be used together with Intel userspace tools + provided under NDA, which also come with the same kernel + module. The copy of the kernel module available on + SourceForge is provided only to comply with the GPLv2 + requirement. Intel engineers were even surprised it even + built and were not willing to make any effort to fix their + tarball naming to contain a version number. Therefore, it + does not make sense for Buildroot to provide such a package. + + See https://sourceforge.net/p/e1000/bugs/589/ for the + discussion. + +config BR2_BINFMT_FLAT_SEP_DATA + bool "binfmt FLAT with separate code and data removed" + select BR2_LEGACY + help + This FLAT binary format was only used on Blackfin, which has + been removed. + +config BR2_bfin + bool "Blackfin architecture support removed" + select BR2_LEGACY + help + Following the removal of Blackfin support for the upstream + Linux kernel, Buildroot has removed support for this CPU + architecture. + +config BR2_PACKAGE_KODI_ADSP_BASIC + bool "kodi-adsp-basic package removed" + select BR2_LEGACY + help + kodi-adsp-basic is unmaintained + +config BR2_PACKAGE_KODI_ADSP_FREESURROUND + bool "kodi-adsp-freesurround package removed" + select BR2_LEGACY + help + kodi-adsp-freesurround is unmaintained + +############################################################################### +comment "Legacy options removed in 2018.02" + +config BR2_KERNEL_HEADERS_3_4 + bool "kernel headers version 3.4.x are no longer supported" + select BR2_LEGACY + help + Version 3.4.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_KERNEL_HEADERS_3_10 + bool "kernel headers version 3.10.x are no longer supported" + select BR2_LEGACY + help + Version 3.10.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_KERNEL_HEADERS_3_12 + bool "kernel headers version 3.12.x are no longer supported" + select BR2_LEGACY + help + Version 3.12.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_BINUTILS_VERSION_2_27_X + bool "binutils version 2.27 support removed" + select BR2_LEGACY + help + Support for binutils version 2.27 has been removed. The + current default version (2.29 or later) has been selected + instead. + +config BR2_PACKAGE_EEPROG + bool "eeprog package removed" + select BR2_LEGACY + select BR2_PACKAGE_I2C_TOOLS + select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS + help + The eeprog program is now provided by the i2c-tools package. + +config BR2_PACKAGE_GNUPG2_GPGV2 + bool "gnupg2 gpgv2 option removed" + select BR2_LEGACY + select BR2_PACKAGE_GNUPG2_GPGV + help + The gpgv2 executable is now named gpgv. The config option + has been renamed accordingly. + +config BR2_PACKAGE_IMX_GPU_VIV_APITRACE + bool "Vivante apitrace tool option removed" + select BR2_LEGACY + help + The apitrace tool for Vivante is not provided by the + imx-gpu-viv package any longer. + +config BR2_PACKAGE_IMX_GPU_VIV_G2D + bool "Vivante G2D libraries from imx-gpu-viv removed" + select BR2_LEGACY + select BR2_PACKAGE_IMX_GPU_G2D + help + The G2D libraries are now provided by the imx-gpu-g2d package. + +############################################################################### +comment "Legacy options removed in 2017.11" + +config BR2_PACKAGE_RFKILL + bool "rfkill package removed" + select BR2_LEGACY + select BR2_PACKAGE_UTIL_LINUX + select BR2_PACKAGE_UTIL_LINUX_RFKILL + help + The rfkill program is now provided by the util-linux package. + +config BR2_PACKAGE_UTIL_LINUX_RESET + bool "util-linux reset option removed" + select BR2_LEGACY + help + The util-linux package no longer offers a "reset" command. Use + either the reset command provided by BusyBox or select ncurses + programs, which will install a symlink from "tset" to reset. + +config BR2_PACKAGE_POLICYCOREUTILS_AUDIT2ALLOW + bool "policycoreutils audit2allow option removed" + select BR2_LEGACY + select BR2_PACKAGE_SELINUX_PYTHON + select BR2_PACKAGE_SELINUX_PYTHON_AUDIT2ALLOW + help + The policycoreutils package no longer offers audit2allow + as a option. This package has been moved into the + selinux-python package by the SELinux maintainers. + +config BR2_PACKAGE_POLICYCOREUTILS_RESTORECOND + bool "policycoreutils restorecond option removed" + select BR2_LEGACY + select BR2_PACKAGE_RESTORECOND + help + The policycoreutils package no longer offers restorecond + as a option. This package has been moved into a seperate + package maintained by the SELinux maintainers. + +config BR2_PACKAGE_SEPOLGEN + bool "sepolgen package has been removed" + select BR2_LEGACY + select BR2_PACKAGE_SELINUX_PYTHON + select BR2_PACKAGE_SELINUX_PYTHON_SEPOLGEN + help + Sepolgen is no longer a individual package, but instead has + been moved into the selinux-python package by the SELinux + maintainers. + +config BR2_PACKAGE_OPENOBEX_BLUEZ + bool "openobex bluez option removed" + select BR2_LEGACY + select BR2_PACKAGE_BLUEZ_UTILS + help + The OpenOBEX package no longer offers an option to enable or + disable BlueZ support. Instead, BlueZ support is always + included when the bluez5_utils or bluez_utils package is + selected. + +config BR2_PACKAGE_OPENOBEX_LIBUSB + bool "openobex libusb option removed" + select BR2_LEGACY + select BR2_PACKAGE_LIBUSB + help + The OpenOBEX package no longer offers an option to enable or + disable libusb support. Instead, USB support is always + included when the libusb package is selected. + +config BR2_PACKAGE_OPENOBEX_APPS + bool "openobex apps option removed" + select BR2_LEGACY + help + The OpenOBEX package no longer offers an option to enable or + disable apps support. + +config BR2_PACKAGE_OPENOBEX_SYSLOG + bool "openobex syslog option removed" + select BR2_LEGACY + help + The OpenOBEX package no longer offers an option to enable or + disable syslog support. + +config BR2_PACKAGE_OPENOBEX_DUMP + bool "openobex dump option removed" + select BR2_LEGACY + help + The OpenOBEX package no longer offers an option to enable or + disable dump support. + +config BR2_PACKAGE_AICCU + bool "aiccu utility removed" + select BR2_LEGACY + help + As the SixXS project has ceased its operation on 2017-06-06, + the AICCU utility has no use anymore and has been removed. + + https://www.sixxs.net/sunset/ + +config BR2_PACKAGE_UTIL_LINUX_LOGIN_UTILS + bool "util-linux login utilities option removed" + select BR2_LEGACY + select BR2_PACKAGE_UTIL_LINUX_LAST + select BR2_PACKAGE_UTIL_LINUX_LOGIN + select BR2_PACKAGE_UTIL_LINUX_RUNUSER + select BR2_PACKAGE_UTIL_LINUX_SU + select BR2_PACKAGE_UTIL_LINUX_SULOGIN + help + Login utilities (last, login, runuser, su, sulogin) now have + their own configuration options in the util-linux menu. + +############################################################################### +comment "Legacy options removed in 2017.08" + +config BR2_TARGET_GRUB + bool "grub (aka grub-legacy) has been removed" + select BR2_LEGACY + help + grub-legacy is no longer maintained, and no longer builds with + recent binutils versions. + + Use grub2 or syslinux instead. + +config BR2_PACKAGE_SIMICSFS + bool "simicsfs support removed" + select BR2_LEGACY + help + Support for simicsfs kernel driver that provides access to a + host computer's local filesystem when the target is + executing within a SIMICS simulation has been removed. + + Simics is now moving away from the simicsfs kernel module, + as the kernel module has required too much maintenance + work. Users should move to the user mode Simics agent + instead. + +config BR2_BINUTILS_VERSION_2_26_X + bool "binutils version 2.26 support removed" + select BR2_LEGACY + help + Support for binutils version 2.26 has been removed. The + current default version (2.28 or later) has been selected + instead. + +config BR2_XTENSA_OVERLAY_DIR + string "The BR2_XTENSA_OVERLAY_DIR option has been removed" + help + The BR2_XTENSA_OVERLAY_DIR has been removed in favour of + BR2_XTENSA_OVERLAY_FILE. You must now pass the complete + path to the overlay file, not to the directory containing + it. + +config BR2_XTENSA_OVERLAY_DIR_WRAP + bool + default y if BR2_XTENSA_OVERLAY_DIR != "" + select BR2_LEGACY + +config BR2_XTENSA_CUSTOM_NAME + string "The BR2_XTENSA_CUSTOM_NAME option has been removed" + help + The BR2_XTENSA_CUSTOM_NAME option has been removed. + +config BR2_XTENSA_CUSTOM_NAME_WRAP + bool + default y if BR2_XTENSA_CUSTOM_NAME != "" + select BR2_LEGACY + +config BR2_PACKAGE_HOST_MKE2IMG + bool "host mke2img has been removed" + select BR2_LEGACY + help + We now call mkfs directly to generate ext2/3/4 filesystem + image, so mke2img is no longer necessary. + +config BR2_TARGET_ROOTFS_EXT2_BLOCKS + int "exact size in blocks has been removed" + default 0 + help + This option has been removed in favor of + BR2_TARGET_ROOTFS_EXT2_SIZE. It has been set automatically + to the value you had before. Set to 0 here to remove the + warning. + +config BR2_TARGET_ROOTFS_EXT2_BLOCKS_WRAP + bool + default y if BR2_TARGET_ROOTFS_EXT2_BLOCKS != 0 && \ + BR2_TARGET_ROOTFS_EXT2_BLOCKS != 61440 # deprecated default value + select BR2_LEGACY + +# Note: BR2_TARGET_ROOTFS_EXT2_BLOCKS_WRAP still referenced in fs/ext2/Config.in + +config BR2_TARGET_ROOTFS_EXT2_EXTRA_INODES + int "ext2 extra inodes has been removed" if BR2_TARGET_ROOTFS_EXT2_INODES = 0 + default 0 + help + Buildroot now uses mkfs.ext2/3/4 to generate ext2/3/4 + images. It now automatically selects the number of inodes + based on the image size. The extra number of inodes can no + longer be provided; instead, provide the total number of + inodes needed in BR2_TARGET_ROOTFS_EXT2_INODES. + +config BR2_TARGET_ROOTFS_EXT2_EXTRA_INODES_WRAP + bool + default y if BR2_TARGET_ROOTFS_EXT2_EXTRA_INODES != 0 + select BR2_LEGACY + +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_CDXAPARSE + bool "cdxaparse removed" + select BR2_LEGACY + +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DATAURISRC + bool "dataurisrc moved to gstreamer1" + select BR2_LEGACY + help + Dataurisrc has moved to gstreamer core and is always built. + +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DCCP + bool "dccp removed" + select BR2_LEGACY + +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_HDVPARSE + bool "hdvparse removed" + select BR2_LEGACY + +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MVE + bool "mve removed" + select BR2_LEGACY + +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_NUVDEMUX + bool "nuvdemux removed" + select BR2_LEGACY + +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_PATCHDETECT + bool "patchdetect removed" + select BR2_LEGACY + +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SDI + bool "sdi removed" + select BR2_LEGACY + +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_TTA + bool "tta removed" + select BR2_LEGACY + +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOMEASURE + bool "videomeasure removed" + select BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_IQA + select BR2_LEGACY + help + videomeasure plugin has been removed and has been replaced by + iqa, which has automatically been enabled. + +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_APEXSINK + bool "apexsink removed" + select BR2_LEGACY + +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SDL + bool "sdl removed" + select BR2_LEGACY + +config BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_MAD + bool "mad (*.mp3 audio) removed" + select BR2_LEGACY + +config BR2_STRIP_none + bool "Strip command 'none' has been removed" + select BR2_LEGACY + help + The strip command choice has been changed into a single + boolean option. Please check that the new setting is + correct (in the "Build options" sub-menu) + +config BR2_PACKAGE_BEECRYPT_CPP + bool "C++ support removed in beecrypt" + select BR2_LEGACY + help + Support for C++ depends on icu. The beecrypt package is + incompatible with icu 59+. + +config BR2_PACKAGE_SPICE_CLIENT + bool "spice client support removed" + select BR2_LEGACY + help + Spice client support has been removed upstream. The + functionality now lives in the spice-gtk widget and + virt-viewer. + +config BR2_PACKAGE_SPICE_GUI + bool "spice gui support removed" + select BR2_LEGACY + help + Spice gui support has been removed upstream. The + functionality now lives in the spice-gtk widget and + virt-viewer. + +config BR2_PACKAGE_SPICE_TUNNEL + bool "spice network redirection removed" + select BR2_LEGACY + help + Spice network redirection, aka tunnelling has been removed + upstream. + +config BR2_PACKAGE_INPUT_TOOLS + bool "input-tools removed" + select BR2_LEGACY + select BR2_PACKAGE_LINUXCONSOLETOOLS + help + input-tools has been removed, it is replaced by + linuxconsoletools, which has automatically been enabled. + +config BR2_PACKAGE_INPUT_TOOLS_INPUTATTACH + bool "inputattach moved to linuxconsoletools" + select BR2_LEGACY + select BR2_PACKAGE_LINUXCONSOLETOOLS + select BR2_PACKAGE_LINUXCONSOLETOOLS_INPUTATTACH + help + input-tools has been removed, inputattach is now part + of linuxconsoletools, which has automatically been + enabled. + +config BR2_PACKAGE_INPUT_TOOLS_JSCAL + bool "jscal moved to linuxconsoletools" + select BR2_LEGACY + select BR2_PACKAGE_LINUXCONSOLETOOLS + select BR2_PACKAGE_LINUXCONSOLETOOLS_JOYSTICK + help + input-tools has been removed, jscal is now part + of linuxconsoletools, which has automatically been + enabled. + +config BR2_PACKAGE_INPUT_TOOLS_JSTEST + bool "jstest moved to linuxconsoletools" + select BR2_LEGACY + select BR2_PACKAGE_LINUXCONSOLETOOLS + select BR2_PACKAGE_LINUXCONSOLETOOLS_JOYSTICK + help + input-tools has been removed, jstest is now part + of linuxconsoletools, which has automatically been + enabled. + +config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH + bool "SH Sourcery toolchain has been removed" + select BR2_LEGACY + help + The Sourcery CodeBench toolchain for the sh architecture has + been removed, since it uses glibc older than 2.17 that + requires -lrt to link executables using clock_* system calls. + This makes this toolchain difficult to maintain over time. + +config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86 + bool "x86 Sourcery toolchain has been removed" + select BR2_LEGACY + help + The Sourcery CodeBench toolchain for the x86 architecture has + been removed, since it uses glibc older than 2.17 that + requires -lrt to link executables using clock_* system calls. + This makes this toolchain difficult to maintain over time. + +config BR2_GCC_VERSION_4_8_X + bool "gcc 4.8.x support removed" + select BR2_LEGACY + help + Support for gcc version 4.8.x has been removed. The current + default version (5.x or later) has been selected instead. + +############################################################################### +comment "Legacy options removed in 2017.05" + +config BR2_PACKAGE_SUNXI_MALI_R2P4 + bool "sunxi-mali r2p4 removed" + select BR2_LEGACY + help + sunxi-mali libMali for r2p4 Mali kernel module has been + removed since the libump package only provides libUMP.so.3. + libMali for r2p4 Mali kernel module requires libUMP.so.2. + +config BR2_PACKAGE_NODEJS_MODULES_COFFEESCRIPT + bool "CoffeeScript option has been removed" + select BR2_LEGACY + help + The option to enable NodeJS CoffeeScript has been removed. + To continue using it, add "coffee-script" to + BR2_PACKAGE_NODEJS_MODULES_ADDITIONAL. + +config BR2_PACKAGE_NODEJS_MODULES_EXPRESS + bool "Express web application framework option has been removed" + select BR2_LEGACY + help + The option to enable the NodeJS Express web application + framework has been removed. To continue using it, add + "express" to BR2_PACKAGE_NODEJS_MODULES_ADDITIONAL. + +config BR2_PACKAGE_BLUEZ5_UTILS_GATTTOOL + bool "bluez5_utils gatttool install option removed" + select BR2_PACKAGE_BLUEZ5_UTILS_DEPRECATED + help + The option to install gatttool specifically has been removed. + Since version 5.44 gatttool is in the list of deprecated + tools. The option to build and install deprecated tools has + been automatically enabled. + +config BR2_PACKAGE_OPENOCD_FT2XXX + bool "openocd ft2232 support has been removed" + select BR2_PACKAGE_OPENOCD_FTDI + select BR2_LEGACY + help + FT2232 support in OpenOCD has been removed, it's replaced by + FDTI support, which has automatically been enabled. + +config BR2_PACKAGE_KODI_RTMPDUMP + bool "kodi rtmp has been removed" + select BR2_LEGACY + select BR2_PACKAGE_KODI_INPUTSTREAM_RTMP + help + Internal rtmp support was removed from Kodi. + +config BR2_PACKAGE_KODI_VISUALISATION_FOUNTAIN + bool "kodi-visualisation-fountain has been removed" + select BR2_LEGACY + help + According to upstream 'the visualization is not currently + in a working shape.' + +config BR2_PACKAGE_PORTMAP + bool "portmap has been removed" + select BR2_LEGACY + select BR2_PACKAGE_RPCBIND + help + The portmap upstream tarball is removed, no releases since + ten years and latest change in upstream git in 2014. + You should better use rpcbind as a RPC portmapper. + +config BR2_BINUTILS_VERSION_2_25_X + bool "binutils version 2.25 support removed" + select BR2_LEGACY + help + Support for binutils version 2.25 has been removed. The + current default version (2.27 or later) has been selected + instead. + +config BR2_TOOLCHAIN_BUILDROOT_INET_RPC + bool "uclibc RPC support has been removed" + select BR2_LEGACY + help + uClibc-ng removed internal RPC implementation in 1.0.23. You + should use libtirpc instead. + +config BR2_TARGET_ROOTFS_EXT2_EXTRA_BLOCKS + int "extra size in blocks has been removed" + default 0 + help + Since the support for auto calculation of the filesystem size + has been removed, this option is now useless and must be 0. + You may want to check that BR2_TARGET_ROOTFS_EXT2_BLOCKS + matchs your needs. + +config BR2_TARGET_ROOTFS_EXT2_EXTRA_BLOCKS_WRAP + bool + default y if BR2_TARGET_ROOTFS_EXT2_EXTRA_BLOCKS != 0 + select BR2_LEGACY + +config BR2_PACKAGE_SYSTEMD_KDBUS + bool "systemd-kdbus has been removed" + select BR2_LEGACY + help + --enable/disable-kdbus configure option has been removed since + systemd-231. + +config BR2_PACKAGE_POLARSSL + bool "polarssl has been removed" + select BR2_LEGACY + help + The polarssl crypto library has been removed since the 1.2.x + release branch is no longer maintained. Newer upstream + branches/releases (mbedtls) have API changes so they're not + drop-in replacements. + +config BR2_NBD_CLIENT + bool "nbd client option was renamed" + select BR2_LEGACY + select BR2_PACKAGE_NBD_CLIENT + help + The nbd client option has been renamed to + BR2_PACKAGE_NBD_CLIENT. + +config BR2_NBD_SERVER + bool "nbd server option was renamed" + select BR2_LEGACY + select BR2_PACKAGE_NBD_SERVER + help + The nbd server option has been renamed to + BR2_PACKAGE_NBD_SERVER. + +config BR2_PACKAGE_GMOCK + bool "gmock merged into gtest package" + select BR2_LEGACY + select BR2_PACKAGE_GTEST + select BR2_PACKAGE_GTEST_GMOCK + help + GMock is now a suboption of the GTest package. + +config BR2_KERNEL_HEADERS_4_8 + bool "kernel headers version 4.8.x are no longer supported" + select BR2_LEGACY + help + Version 4.8.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_KERNEL_HEADERS_3_18 + bool "kernel headers version 3.18.x are no longer supported" + select BR2_LEGACY + help + Version 3.18.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_GLIBC_VERSION_2_22 + bool "glibc 2.22 removed" + select BR2_LEGACY + help + Support for glibc version 2.22 has been removed. The current + default version has been selected instead. + +############################################################################### +comment "Legacy options removed in 2017.02" + +config BR2_PACKAGE_PERL_DB_FILE + bool "perl-db-file removed" + select BR2_LEGACY + select BR2_PACKAGE_BERKELEYDB + select BR2_PACKAGE_PERL + help + DB_File can be built as a core Perl module, so the separate + perl-db-file package has been removed. + +config BR2_KERNEL_HEADERS_4_7 + bool "kernel headers version 4.7.x are no longer supported" + select BR2_LEGACY + help + Version 4.7.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_KERNEL_HEADERS_4_6 + bool "kernel headers version 4.6.x are no longer supported" + select BR2_LEGACY + help + Version 4.6.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_KERNEL_HEADERS_4_5 + bool "kernel headers version 4.5.x are no longer supported" + select BR2_LEGACY + help + Version 4.5.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_KERNEL_HEADERS_3_14 + bool "kernel headers version 3.14.x are no longer supported" + select BR2_LEGACY + help + Version 3.14.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS + bool "musl-cross 1.1.12 toolchain removed" + select BR2_LEGACY + help + The support for the prebuilt toolchain based on the Musl C + library provided by the musl-cross project has been removed. + Upstream doesn't provide any prebuilt toolchain anymore, use + the Buildroot toolchain instead. + +config BR2_UCLIBC_INSTALL_TEST_SUITE + bool "uClibc tests now in uclibc-ng-test" + select BR2_LEGACY + select BR2_PACKAGE_UCLIBC_NG_TEST + help + The test suite of the uClibc C library has been moved into a + separate package, uclibc-ng-test. + +config BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX + bool "Blackfin.uclinux.org 2014R1 toolchain removed" + select BR2_LEGACY + help + The ADI Blackfin toolchain has many bugs which are fixed in + more recent gcc and uClibc-ng releases. Use the Buildroot + toolchain instead. + +config BR2_PACKAGE_MAKEDEVS + bool "makedevs removed" + select BR2_LEGACY + help + The makedevs tool is part of busybox. The Buildroot fork + should not be used outside of the Buildroot infrastructure. + +config BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A + bool "Arago ARMv7 2011.09 removed" + select BR2_LEGACY + help + The Arago toolchains are every old and not updated anymore. + +config BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE + bool "Arago ARMv5 2011.09 removed" + select BR2_LEGACY + help + The Arago toolchains are every old and not updated anymore. + +config BR2_PACKAGE_SNOWBALL_HDMISERVICE + bool "snowball-hdmiservice removed" + select BR2_LEGACY + help + We no longer have support for the Snowball platform in + Buildroot, so this package was no longer useful. + +config BR2_PACKAGE_SNOWBALL_INIT + bool "snowball-init removed" + select BR2_LEGACY + help + We no longer have support for the Snowball platform in + Buildroot, so this package was no longer useful. + +config BR2_GDB_VERSION_7_9 + bool "gdb 7.9 has been removed" + select BR2_LEGACY + help + The 7.9 version of gdb has been removed. Use a newer version + instead. + +############################################################################### +comment "Legacy options removed in 2016.11" + +config BR2_PACKAGE_PHP_SAPI_CLI_CGI + bool "PHP CGI and CLI options are now seperate" + select BR2_PACKAGE_PHP_SAPI_CLI + select BR2_PACKAGE_PHP_SAPI_CGI + select BR2_LEGACY + help + The PHP Interface options have been split up into a + separate option for each interface. + +config BR2_PACKAGE_PHP_SAPI_CLI_FPM + bool "PHP CLI and FPM options are now separate" + select BR2_PACKAGE_PHP_SAPI_CLI + select BR2_PACKAGE_PHP_SAPI_FPM + select BR2_LEGACY + help + The PHP Interface options have been split up into a + separate option for each interface. + +config BR2_PACKAGE_WVSTREAMS + bool "wvstreams removed" + select BR2_LEGACY + help + wvstreams is not maintained anymore since about 2009. It also + doesn't build anymore with recent compilers (GCC 5+). + +config BR2_PACKAGE_WVDIAL + bool "wvdial removed" + select BR2_LEGACY + help + wvdial is not maintained anymore since about 2009. It also + doesn't build anymore with recent compilers (GCC 5+). + +config BR2_PACKAGE_WEBKITGTK24 + bool "webkitgtk 2.4.x removed" + select BR2_LEGACY + help + This legacy package only existed because some other packages + depended on that specific version of webkitgtk. However, the + other packages have been fixed. webkitgtk 2.4 is full of + security issues so it needs to be removed. + +config BR2_PACKAGE_TORSMO + bool "torsmo removed" + select BR2_LEGACY + help + torsmo has been unmaintained for a long time, and nobody + seems to be interested in it. + +config BR2_PACKAGE_SSTRIP + bool "sstrip removed" + select BR2_LEGACY + help + sstrip is unmaintained and potentially harmful. It doesn't + save so much compared to normal binutils strip, and there is + a big risk of binaries that don't work. Use normal strip + instead. + +config BR2_KERNEL_HEADERS_4_3 + bool "kernel headers version 4.3.x are no longer supported" + select BR2_LEGACY + help + Version 4.3.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_KERNEL_HEADERS_4_2 + bool "kernel headers version 4.2.x are no longer supported" + select BR2_LEGACY + help + Version 4.2.x of the Linux kernel headers are no longer + maintained upstream and are now removed. + +config BR2_PACKAGE_KODI_ADDON_XVDR + bool "kodi-addon-xvdr removed" + select BR2_LEGACY + help + According to the github project page: + https://github.com/pipelka/xbmc-addon-xvdr + this package is discontinued. + +config BR2_PACKAGE_IPKG + bool "ipkg removed" + select BR2_LEGACY + help + ipkg dates back to the early 2000s when Compaq started the + handhelds.org project and it hasn't seen development since + 2006. Use opkg as a replacement. + +config BR2_GCC_VERSION_4_7_X + bool "gcc 4.7.x support removed" + select BR2_LEGACY + help + Support for gcc version 4.7.x has been removed. The current + default version (4.9.x or later) has been selected instead. + +config BR2_BINUTILS_VERSION_2_24_X + bool "binutils version 2.24 support removed" + select BR2_LEGACY + help + Support for binutils version 2.24 has been removed. The + current default version (2.26 or later) has been selected + instead. + +config BR2_PACKAGE_WESTON_RPI + bool "Weston propietary RPI support is gone" + select BR2_LEGACY + help + Upstream decided the propietary (rpi-userland) weston composer + support wasn't worth the effort so it was removed. Switch to + the open VC4 support. + +config BR2_LINUX_KERNEL_TOOL_CPUPOWER + bool "linux-tool cpupower" + depends on BR2_LINUX_KERNEL + select BR2_LEGACY + select BR2_PACKAGE_LINUX_TOOLS_CPUPOWER + help + Linux tool cpupower option was renamed. + +config BR2_LINUX_KERNEL_TOOL_PERF + bool "linux-tool perf" + depends on BR2_LINUX_KERNEL + select BR2_LEGACY + select BR2_PACKAGE_LINUX_TOOLS_PERF + help + Linux tool perf option was renamed. + +config BR2_LINUX_KERNEL_TOOL_SELFTESTS + bool "linux-tool selftests" + depends on BR2_LINUX_KERNEL + select BR2_LEGACY + select BR2_PACKAGE_LINUX_TOOLS_SELFTESTS + help + Linux tool selftests option was renamed. + +config BR2_GCC_VERSION_4_8_ARC + bool "gcc arc option renamed" + select BR2_LEGACY + select BR2_GCC_VERSION_ARC + help + The option that selects the gcc version for the ARC + architecture has been renamed to BR2_GCC_VERSION_ARC. + +config BR2_KERNEL_HEADERS_4_0 + bool "kernel headers version 4.0.x are no longer supported" + select BR2_LEGACY + help + Version 4.0.x of the Linux kernel headers have been deprecated + for more than four buildroot releases and are now removed. + +config BR2_KERNEL_HEADERS_3_19 + bool "kernel headers version 3.19.x are no longer supported" + select BR2_LEGACY + help + Version 3.19.x of the Linux kernel headers have been + deprecated for more than four buildroot releases and are now + removed. + +config BR2_PACKAGE_LIBEVAS_GENERIC_LOADERS + bool "libevas-generic-loaders package removed" + select BR2_LEGACY + select BR2_PACKAGE_EFL + help + With EFL 1.18, libevas-generic-loaders is now provided by the + efl package. + +config BR2_PACKAGE_ELEMENTARY + bool "elementary package removed" + select BR2_LEGACY + select BR2_PACKAGE_EFL + help + With EFL 1.18, elementary is now provided by the efl package. + +config BR2_LINUX_KERNEL_CUSTOM_LOCAL + bool "Linux kernel local directory option removed" + select BR2_LEGACY + help + The option to select a local directory as the source of the + Linux kernel has been removed. It hurts reproducibility of + builds. + + In case you were using this option during development of your + Linux kernel, use the override mechanism instead. + +############################################################################### +comment "Legacy options removed in 2016.08" + +config BR2_PACKAGE_EFL_JP2K + bool "libevas jp2k loader has been removed" + select BR2_LEGACY + help + JP2K support in EFL requires openjpeg 1.x (libopenjpeg1.pc) + while Buildroot only packages openjpeg 2.x. Therefore, the + JP2K loader has been removed from EFL. + +config BR2_PACKAGE_SYSTEMD_COMPAT + bool "systemd compatibility libraries have been removed" + select BR2_LEGACY + help + The systemd option to enable the compatibility libraries has + been removed. Theses libraries have been useless since a few + version, and have been fully dropped from the source since + v230. + +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_LIVEADDER + bool "gst1-plugins-bad liveadder plugin removed" + select BR2_LEGACY + select BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AUDIOMIXER + help + The functionality of the liveadder plugin of the + gst1-plugins-bad package has been merged into audiomixer. + +config BR2_PACKAGE_LIBFSLVPUWRAP + bool "libfslvpuwrap has been renamed to imx-vpuwrap" + select BR2_LEGACY + select BR2_PACKAGE_IMX_VPUWRAP + help + The libfslvpuwrap has been renamed to match the renamed + package. + +config BR2_PACKAGE_LIBFSLPARSER + bool "libfslparser has been renamed to imx-parser" + select BR2_LEGACY + select BR2_PACKAGE_IMX_PARSER + help + The libfslparser has been renamed to match the renamed + package. + +config BR2_PACKAGE_LIBFSLCODEC + bool "libfslcodec has been renamed to imx-codec" + select BR2_LEGACY + select BR2_PACKAGE_IMX_CODEC + help + The libfslcodec has been renamed to match the renamed package. + +config BR2_PACKAGE_UBOOT_TOOLS_MKIMAGE_FIT_SIGNATURE_SUPPORT + bool "FIT support in uboot-tools has been refactored" + select BR2_LEGACY + select BR2_PACKAGE_DTC + select BR2_PACKAGE_DTC_PROGRAMS + select BR2_PACKAGE_UBOOT_TOOLS_FIT_SUPPORT + select BR2_PACKAGE_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT + select BR2_PACKAGE_UBOOT_TOOLS_MKIMAGE + help + This option has been removed in favor of a more fine-grained + configuration, which is recommended. Selecting this option + enables FIT and FIT signature support for the target packages. + It will also select the dtc and openssl packages. + +config BR2_PTHREADS_OLD + bool "linuxthreads (stable/old)" + select BR2_LEGACY + help + Linuxthreads have been reworked, BR2_PTHREADS_OLD is now + BR2_PTHREADS and the old BR2_PTHREADS - LT.new got removed. + +config BR2_BINUTILS_VERSION_2_23_X + bool "binutils 2.23 removed" + select BR2_LEGACY + help + Binutils 2.23 has been removed, using a newer version is + recommended. + +config BR2_TOOLCHAIN_BUILDROOT_EGLIBC + bool "eglibc support has been removed" + select BR2_LEGACY + help + The eglibc project no longer exists, as it has been merged + back into the glibc project. Therefore, support for eglibc + has been removed, and glibc should be used instead. + +config BR2_GDB_VERSION_7_8 + bool "gdb 7.8 has been removed" + select BR2_LEGACY + help + The 7.8 version of gdb has been removed. Use a newer version + instead. + +############################################################################### +comment "Legacy options removed in 2016.05" + +config BR2_PACKAGE_OPENVPN_CRYPTO_POLARSSL + bool "openvpn polarssl crypto backend removed" + select BR2_LEGACY + help + The OpenVPN polarssl crypto backend option has been removed. + Version from 2.3.10 onwards need polarssl >= 1.3.8 but aren't + compatible with mbedtls (polarssl) series 2.x which is the + version provided in buildroot. And both can't coexist. + It now uses OpenSSL as the only option. + +config BR2_PACKAGE_NGINX_HTTP_SPDY_MODULE + bool "nginx http spdy module removed" + select BR2_LEGACY + select BR2_PACKAGE_NGINX_HTTP_V2_MODULE + help + The ngx_http_spdy_module has been superseded by the + ngx_http_v2_module since nginx v1.9.5. The + ngx_http_v2_module modules has been automatically selected + in your configuration. + +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RTP + bool "gst1-plugins-bad rtp plugin moved to good" + select BR2_LEGACY + help + The rtp plugin has been moved from gst1-plugins-base to + gst1-plugins-good. + +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPG123 + bool "gst1-plugins-bad mpg123 plugin moved to ugly" + select BR2_LEGACY + help + The mpg123 plugin has been moved from gst1-plugins-bad to + gst1-plugins-ugly. + +config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC + bool "PowerPC Sourcery toolchain has been removed" + select BR2_LEGACY + help + The Sourcery CodeBench toolchain for the PowerPC + architecture has been removed, as it was very old, not + maintained, and causing numerous build failures with modern + userspace packages. + +config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC_E500V2 + bool "PowerPC Sourcery E500v2 toolchain has been removed" + select BR2_LEGACY + help + The Sourcery CodeBench toolchain for the PowerPC E500v2 + architecture has been removed, as it was very old, not + maintained, and causing numerous build failures with modern + userspace packages. + +config BR2_x86_i386 + bool "x86 i386 support removed" + select BR2_LEGACY + help + The support for the i386 processors of the x86 architecture + has been removed. + +config BR2_PACKAGE_QT5QUICK1 + bool "qt5quick1 package removed" + select BR2_LEGACY + help + The qt5quick1 package has been removed, since it was removed + from upstream starting from Qt 5.6. + +config BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR + string "uboot custom patch dir has been removed" + help + The uboot custom patch directory option has been removed. Use + the improved BR2_TARGET_UBOOT_PATCH option instead. + +config BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR_WRAP + bool + default y if BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR != "" + select BR2_LEGACY + +# Note: BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR is still referenced from +# boot/uboot/Config.in + +config BR2_PACKAGE_XDRIVER_XF86_INPUT_VOID + bool "xf86-input-void removed" + select BR2_LEGACY + help + The xf86-input-void package has been removed, there's no need + for it in any modern (post-2007) xorg server. + +config BR2_KERNEL_HEADERS_3_17 + bool "kernel headers version 3.17.x are no longer supported" + select BR2_LEGACY + help + Version 3.17.x of the Linux kernel headers have been + deprecated for more than four buildroot releases and are now + removed. + +config BR2_GDB_VERSION_7_7 + bool "gdb 7.7 has been removed" + select BR2_LEGACY + help + The 7.7 version of gdb has been removed. Use a newer version + instead. + +config BR2_PACKAGE_FOOMATIC_FILTERS + bool "foomatic-filters" + select BR2_LEGACY + help + The foomatic-filters package was removed. + +config BR2_PACKAGE_SAMBA + bool "samba" + select BR2_LEGACY + help + The samba package was removed in favour of samba4 since the + 3.x series isn't supported by upstream any longer. + +config BR2_PACKAGE_KODI_WAVPACK + bool "wavpack" + select BR2_LEGACY + help + wavpack support was removed in favour of ffmpeg: + https://github.com/xbmc/xbmc/commit/7916902c9e6f7a523265594f3ad7f921f93f1cd4 + +config BR2_PACKAGE_KODI_RSXS + bool "rsxs support in Kodi was moved to an addon" + select BR2_LEGACY + select BR2_PACKAGE_KODI_SCREENSAVER_RSXS + help + rsxs support in Kodi was moved to an addon + +config BR2_PACKAGE_KODI_GOOM + bool "Goom support in Kodi was moved to an addon" + select BR2_LEGACY + select BR2_PACKAGE_KODI_VISUALISATION_GOOM + help + Goom support in Kodi was moved to an addon + +config BR2_PACKAGE_SYSTEMD_ALL_EXTRAS + bool "systemd all extras option has been removed" + select BR2_LEGACY + select BR2_PACKAGE_XZ + select BR2_PACKAGE_LIBGCRYPT + help + The systemd option to enable "all extras" has been + removed. To get the same features, the libgcrypt and xz + package should now be enabled. + +config BR2_GCC_VERSION_4_5_X + bool "gcc 4.5.x has been removed" + select BR2_LEGACY + help + The 4.5.x version of gcc has been removed. Use a newer + version instead. + +config BR2_PACKAGE_SQLITE_READLINE + bool "sqlite command-line editing support was updated" + select BR2_PACKAGE_NCURSES + select BR2_PACKAGE_READLINE + select BR2_LEGACY + help + This option was removed in favour of the sqlite package + deciding itself depending on the enabled packages whether + command-line editing should be enabled, it also also takes + libedit into account. + +############################################################################### +comment "Legacy options removed in 2016.02" + +config BR2_PACKAGE_DOVECOT_BZIP2 + bool "bzip2 support option has been removed" + select BR2_LEGACY + select BR2_PACKAGE_BZIP2 + help + Bzip2 support is built if the bzip2 package is selected. + +config BR2_PACKAGE_DOVECOT_ZLIB + bool "zlib support option has been removed" + select BR2_LEGACY + select BR2_PACKAGE_ZLIB + help + Zlib support is built if the zlib package is selected. + +config BR2_PACKAGE_E2FSPROGS_FINDFS + bool "e2fsprogs findfs option has been removed" + select BR2_LEGACY + help + This option attempted to enable findfs capabilities from + e2fsprogs but has not worked since July 2015 (due to + packaging changes). One can use BusyBox's findfs support or + enable the BR2_PACKAGE_UTIL_LINUX_BINARIES option. + +config BR2_PACKAGE_OPENPOWERLINK_DEBUG_LEVEL + bool "openpowerlink debug option has been removed" + select BR2_LEGACY + help + This option depends on BR2_ENABLE_DEBUG which should not be + used by packages anymore. + +config BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE + bool "openpowerlink package has been updated" + select BR2_LEGACY + select BR2_PACKAGE_OPENPOWERLINK_STACK_KERNEL_STACK_LIB + help + openpowerlink kernel modules are built if the + kernel stack library is selected. + +config BR2_PACKAGE_OPENPOWERLINK_LIBPCAP + bool "openpowerlink package has been updated" + select BR2_LEGACY + select BR2_PACKAGE_OPENPOWERLINK_STACK_USERSPACE_DAEMON_LIB + help + The user space support has been split in two part: + - a monolitic user space library + - a user spae deamon driver + +config BR2_LINUX_KERNEL_SAME_AS_HEADERS + bool "using the linux headers version for the kernel has been removed" + select BR2_LEGACY + help + The option to use the version of the kernel headers for the + kernel to build has been removed. + + There is now the converse, better-suited and more versatile + option to use the kernel version for the linux headers. + +config BR2_PACKAGE_CUPS_PDFTOPS + bool "Pdftops support has been removed from Cups" + select BR2_PACKAGE_CUPS_FILTERS + select BR2_LEGACY + help + Pdftops support has been removed from the cups package + It is now part of the cups-filters package. + +config BR2_KERNEL_HEADERS_3_16 + bool "kernel headers version 3.16.x are no longer supported" + select BR2_LEGACY + help + Version 3.16.x of the Linux kernel headers have been + deprecated for more than four buildroot releases and are now + removed. + +config BR2_PACKAGE_PYTHON_PYXML + bool "python-pyxml package has been removed" + select BR2_LEGACY + help + PyXML is obsolete and its functionality is covered either via + native Python XML support or python-lxml package. + +# BR2_ENABLE_SSP is still referenced in Config.in (default in choice) +config BR2_ENABLE_SSP + bool "Stack Smashing protection now has different levels" + help + The protection offered by SSP can now be selected from + different protection levels. Be sure to review the SSP level + in the build options menu. + +config BR2_PACKAGE_DIRECTFB_CLE266 + bool "cle266 driver for directfb removed" + select BR2_LEGACY + help + The cle266 directfb driver support has been removed. + It doesn't build in the latest version and it's unlikely + anyone has any use for it. + +config BR2_PACKAGE_DIRECTFB_UNICHROME + bool "unichrome driver for directfb removed" + select BR2_LEGACY + help + The unichrome directfb driver support has been removed. + It doesn't build in the latest version and it's unlikely + anyone has any use for it. + +config BR2_PACKAGE_LIBELEMENTARY + bool "libelementary has been renamed to elementary" + select BR2_LEGACY + select BR2_PACKAGE_ELEMENTARY + help + The libelementary package has been renamed to match the + upstream name. + +config BR2_PACKAGE_LIBEINA + bool "libeina package has been removed" + select BR2_LEGACY + select BR2_PACKAGE_EFL + help + With EFL 1.15, libeina is now provided by the efl package. + +config BR2_PACKAGE_LIBEET + bool "libeet package has been removed" + select BR2_LEGACY + select BR2_PACKAGE_EFL + help + With EFL 1.15, libeet is now provided by the efl package. + +config BR2_PACKAGE_LIBEVAS + bool "libevas package has been removed" + select BR2_LEGACY + select BR2_PACKAGE_EFL + help + With EFL 1.15, libevas is now provided by the efl package. + +config BR2_PACKAGE_LIBECORE + bool "libecore package has been removed" + select BR2_LEGACY + select BR2_PACKAGE_EFL + help + With EFL 1.15, libecore is now provided by the efl package. + +config BR2_PACKAGE_LIBEDBUS + bool "libedbus package has been removed" + select BR2_LEGACY + select BR2_PACKAGE_EFL + help + With EFL 1.15, libedbus is now provided by the efl package. + +config BR2_PACKAGE_LIBEFREET + bool "libefreet package has been removed" + select BR2_LEGACY + select BR2_PACKAGE_EFL + help + With EFL 1.15, libefreet is now provided by the efl package. + +config BR2_PACKAGE_LIBEIO + bool "libeio package has been removed" + select BR2_LEGACY + select BR2_PACKAGE_EFL + help + With EFL 1.15, libeio is now provided by the efl package. + +config BR2_PACKAGE_LIBEMBRYO + bool "libembryo package has been removed" + select BR2_LEGACY + select BR2_PACKAGE_EFL + help + With EFL 1.15, libembryo is now provided by the efl package. + +config BR2_PACKAGE_LIBEDJE + bool "libedje package has been removed" + select BR2_LEGACY + select BR2_PACKAGE_EFL + help + With EFL 1.15, libedje is now provided by the efl package. + +config BR2_PACKAGE_LIBETHUMB + bool "libethumb package has been removed" + select BR2_LEGACY + select BR2_PACKAGE_EFL + help + With EFL 1.15, libethumb is now provided by the efl package. + +config BR2_PACKAGE_INFOZIP + bool "infozip option has been renamed to zip" + select BR2_LEGACY + select BR2_PACKAGE_ZIP + help + Info-Zip's Zip package has been renamed from infozip to zip, + to avoid ambiguities with Info-Zip's UnZip which has been + added in the unzip package. + +config BR2_BR2_PACKAGE_NODEJS_0_10_X + bool "nodejs 0.10.x option removed" + select BR2_LEGACY + select BR2_PACKAGE_NODEJS + help + nodejs 0.10.x option has been removed. 0.10.x is now + automatically chosen for ARMv5 architectures only and the + latest nodejs for all other supported architectures. The + correct nodejs version has been automatically selected in your + configuration. + +config BR2_BR2_PACKAGE_NODEJS_0_12_X + bool "nodejs version 0.12.x has been removed" + select BR2_LEGACY + select BR2_PACKAGE_NODEJS + help + nodejs version 0.12.x has been removed. As an alternative, + the latest nodejs version has been automatically selected in + your configuration. + +config BR2_BR2_PACKAGE_NODEJS_4_X + bool "nodejs version 4.x has been removed" + select BR2_LEGACY + select BR2_PACKAGE_NODEJS + help + nodejs version 4.x has been removed. As an alternative, + the latest nodejs version has been automatically selected in + your configuration. + +############################################################################### +comment "Legacy options removed in 2015.11" + +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_REAL + bool "gst1-plugins-bad real plugin has been removed" + select BR2_LEGACY + help + The real plugin from GStreamer 1 bad plugins has been + removed. + +config BR2_PACKAGE_MEDIA_CTL + bool "media-ctl package has been removed" + select BR2_LEGACY + select BR2_PACKAGE_LIBV4L + select BR2_PACKAGE_LIBV4L_UTILS + help + media-ctl source and developement have been moved to v4l-utils + since June 2014. For an up-to-date media-ctl version select + BR2_PACKAGE_LIBV4L and BR2_PACKAGE_LIBV4L_UTILS. + +config BR2_PACKAGE_SCHIFRA + bool "schifra package has been removed" + select BR2_LEGACY + help + Schifra package has been maked broken since 2014.11 release + and haven't been fixed since then. + +config BR2_PACKAGE_ZXING + bool "zxing option has been renamed" + select BR2_LEGACY + select BR2_PACKAGE_ZXING_CPP + help + ZXing no longer provides the cpp bindings, it has been renamed + to BR2_PACKAGE_ZXING_CPP which uses a new upstream. + +# Since FreeRDP has new dependencies, protect this legacy to avoid the +# infamous "unmet direct dependencies" kconfig error. +config BR2_PACKAGE_FREERDP_CLIENT + bool "freerdp client option renamed" + depends on BR2_PACKAGE_FREERDP + select BR2_LEGACY + select BR2_PACKAGE_FREERDP_CLIENT_X11 + +config BR2_PACKAGE_BLACKBOX + bool "blackbox package has been removed" + select BR2_LEGACY + help + Upstream is dead and the package has been deprecated for + some time. There are other alternative maintained WMs. + +config BR2_KERNEL_HEADERS_3_0 + bool "kernel headers version 3.0.x are no longer supported" + select BR2_LEGACY + help + Version 3.0.x of the Linux kernel headers have been deprecated + for more than four buildroot releases and are now removed. + +config BR2_KERNEL_HEADERS_3_11 + bool "kernel headers version 3.11.x are no longer supported" + select BR2_LEGACY + help + Version 3.11.x of the Linux kernel headers have been + deprecated for more than four buildroot releases and are now + removed. + +config BR2_KERNEL_HEADERS_3_13 + bool "kernel headers version 3.13.x are no longer supported" + select BR2_LEGACY + help + Version 3.13.x of the Linux kernel headers have been + deprecated for more than four buildroot releases and are now + removed. + +config BR2_KERNEL_HEADERS_3_15 + bool "kernel headers version 3.15.x are no longer supported" + select BR2_LEGACY + help + Version 3.15.x of the Linux kernel headers have been + deprecated for more than four buildroot releases and are now + removed. + +config BR2_PACKAGE_DIRECTFB_EXAMPLES_ANDI + bool "DirectFB example df_andi has been removed" + select BR2_LEGACY + select BR2_PACKAGE_DIRECTFB_EXAMPLES + help + The per-DirectFB example options have been removed. The + BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all + examples. + +config BR2_PACKAGE_DIRECTFB_EXAMPLES_BLTLOAD + bool "DirectFB example df_bltload has been removed" + select BR2_LEGACY + select BR2_PACKAGE_DIRECTFB_EXAMPLES + help + The per-DirectFB example options have been removed. The + BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all + examples. + +config BR2_PACKAGE_DIRECTFB_EXAMPLES_CPULOAD + bool "DirectFB example df_cpuload has been removed" + select BR2_LEGACY + select BR2_PACKAGE_DIRECTFB_EXAMPLES + help + The per-DirectFB example options have been removed. The + BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all + examples. + +config BR2_PACKAGE_DIRECTFB_EXAMPLES_DATABUFFER + bool "DirectFB example df_databuffer has been removed" + select BR2_LEGACY + select BR2_PACKAGE_DIRECTFB_EXAMPLES + help + The per-DirectFB example options have been removed. The + BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all + examples. + +config BR2_PACKAGE_DIRECTFB_EXAMPLES_DIOLOAD + bool "DirectFB example df_dioload has been removed" + select BR2_LEGACY + select BR2_PACKAGE_DIRECTFB_EXAMPLES + help + The per-DirectFB example options have been removed. The + BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all + examples. + +config BR2_PACKAGE_DIRECTFB_EXAMPLES_DOK + bool "DirectFB example df_dok has been removed" + select BR2_LEGACY + select BR2_PACKAGE_DIRECTFB_EXAMPLES + help + The per-DirectFB example options have been removed. The + BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all + examples. + +config BR2_PACKAGE_DIRECTFB_EXAMPLES_DRIVERTEST + bool "DirectFB example df_drivertest has been removed" + select BR2_LEGACY + select BR2_PACKAGE_DIRECTFB_EXAMPLES + help + The per-DirectFB example options have been removed. The + BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all + examples. + +config BR2_PACKAGE_DIRECTFB_EXAMPLES_FIRE + bool "DirectFB example df_fire has been removed" + select BR2_LEGACY + select BR2_PACKAGE_DIRECTFB_EXAMPLES + help + The per-DirectFB example options have been removed. The + BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all + examples. + +config BR2_PACKAGE_DIRECTFB_EXAMPLES_FLIP + bool "DirectFB example df_flip has been removed" + select BR2_LEGACY + select BR2_PACKAGE_DIRECTFB_EXAMPLES + help + The per-DirectFB example options have been removed. The + BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all + examples. + +config BR2_PACKAGE_DIRECTFB_EXAMPLES_FONTS + bool "DirectFB example df_fonts has been removed" + select BR2_LEGACY + select BR2_PACKAGE_DIRECTFB_EXAMPLES + help + The per-DirectFB example options have been removed. The + BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all + examples. + +config BR2_PACKAGE_DIRECTFB_EXAMPLES_INPUT + bool "DirectFB example df_input has been removed" + select BR2_LEGACY + select BR2_PACKAGE_DIRECTFB_EXAMPLES + help + The per-DirectFB example options have been removed. The + BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all + examples. + +config BR2_PACKAGE_DIRECTFB_EXAMPLES_JOYSTICK + bool "DirectFB example df_joystick has been removed" + select BR2_LEGACY + select BR2_PACKAGE_DIRECTFB_EXAMPLES + help + The per-DirectFB example options have been removed. The + BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all + examples. + +config BR2_PACKAGE_DIRECTFB_EXAMPLES_KNUCKLES + bool "DirectFB example df_knuckles has been removed" + select BR2_LEGACY + select BR2_PACKAGE_DIRECTFB_EXAMPLES + help + The per-DirectFB example options have been removed. The + BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all + examples. + +config BR2_PACKAGE_DIRECTFB_EXAMPLES_LAYER + bool "DirectFB example df_layer has been removed" + select BR2_LEGACY + select BR2_PACKAGE_DIRECTFB_EXAMPLES + help + The per-DirectFB example options have been removed. The + BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all + examples. + +config BR2_PACKAGE_DIRECTFB_EXAMPLES_MATRIX + bool "DirectFB example df_matrix has been removed" + select BR2_LEGACY + select BR2_PACKAGE_DIRECTFB_EXAMPLES + help + The per-DirectFB example options have been removed. The + BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all + examples. + +config BR2_PACKAGE_DIRECTFB_EXAMPLES_MATRIX_WATER + bool "DirectFB example df_matrix_water has been removed" + select BR2_LEGACY + select BR2_PACKAGE_DIRECTFB_EXAMPLES + help + The per-DirectFB example options have been removed. The + BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all + examples. + +config BR2_PACKAGE_DIRECTFB_EXAMPLES_NEO + bool "DirectFB example df_neo has been removed" + select BR2_LEGACY + select BR2_PACKAGE_DIRECTFB_EXAMPLES + help + The per-DirectFB example options have been removed. The + BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all + examples. + +config BR2_PACKAGE_DIRECTFB_EXAMPLES_NETLOAD + bool "DirectFB example df_netload has been removed" + select BR2_LEGACY + select BR2_PACKAGE_DIRECTFB_EXAMPLES + help + The per-DirectFB example options have been removed. The + BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all + examples. + +config BR2_PACKAGE_DIRECTFB_EXAMPLES_PALETTE + bool "DirectFB example df_palette has been removed" + select BR2_PACKAGE_DIRECTFB_EXAMPLES + help + The per-DirectFB example options have been removed. The + BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all + examples. + +config BR2_PACKAGE_DIRECTFB_EXAMPLES_PARTICLE + bool "DirectFB example df_particle has been removed" + select BR2_LEGACY + select BR2_PACKAGE_DIRECTFB_EXAMPLES + help + The per-DirectFB example options have been removed. The + BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all + examples. + +config BR2_PACKAGE_DIRECTFB_EXAMPLES_PORTER + bool "DirectFB example df_porter has been removed" + select BR2_LEGACY + select BR2_PACKAGE_DIRECTFB_EXAMPLES + help + The per-DirectFB example options have been removed. The + BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all + examples. + +config BR2_PACKAGE_DIRECTFB_EXAMPLES_STRESS + bool "DirectFB example df_stress has been removed" + select BR2_PACKAGE_DIRECTFB_EXAMPLES + help + The per-DirectFB example options have been removed. The + BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all + examples. + +config BR2_PACKAGE_DIRECTFB_EXAMPLES_TEXTURE + bool "DirectFB example df_texture has been removed" + select BR2_LEGACY + select BR2_PACKAGE_DIRECTFB_EXAMPLES + help + The per-DirectFB example options have been removed. The + BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all + examples. + +config BR2_PACKAGE_DIRECTFB_EXAMPLES_VIDEO + bool "DirectFB example df_video has been removed" + select BR2_LEGACY + select BR2_PACKAGE_DIRECTFB_EXAMPLES + help + The per-DirectFB example options have been removed. The + BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all + examples. + +config BR2_PACKAGE_DIRECTFB_EXAMPLES_VIDEO_PARTICLE + bool "DirectFB example df_video_particle has been removed" + select BR2_LEGACY + select BR2_PACKAGE_DIRECTFB_EXAMPLES + help + The per-DirectFB example options have been removed. The + BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all + examples. + +config BR2_PACKAGE_DIRECTFB_EXAMPLES_WINDOW + bool "DirectFB example df_window has been removed" + select BR2_LEGACY + select BR2_PACKAGE_DIRECTFB_EXAMPLES + help + The per-DirectFB example options have been removed. The + BR2_PACKAGE_DIRECTFB_EXAMPLES option now installs all + examples. + +config BR2_PACKAGE_KOBS_NG + bool "kobs-ng was replaced by imx-kobs" + select BR2_LEGACY + select BR2_PACKAGE_IMX_KOBS + help + The outdated kobs-ng has been replaced by the Freescale- + maintained imx-kobs package. + +config BR2_PACKAGE_SAWMAN + bool "sawman package removed" + select BR2_LEGACY + select BR2_PACKAGE_DIRECTFB_SAWMAN + help + This option has been removed because the sawman package no + longer exists: it was merged inside DirectFB itself. This + feature can now be enabled using the + BR2_PACKAGE_DIRECTFB_SAWMAN option. + +config BR2_PACKAGE_DIVINE + bool "divine package removed" + select BR2_LEGACY + select BR2_PACKAGE_DIRECTFB_DIVINE + help + This option has been removed because the divine package no + longer exists: it was merged inside DirectFB itself. This + feature can now be enabled using the + BR2_PACKAGE_DIRECTFB_DIVINE option. + +############################################################################### +comment "Legacy options removed in 2015.08" + +config BR2_PACKAGE_KODI_PVR_ADDONS + bool "Kodi PVR addon was split" + select BR2_LEGACY + select BR2_PACKAGE_KODI_PVR_ARGUSTV + select BR2_PACKAGE_KODI_PVR_DVBLINK + select BR2_PACKAGE_KODI_PVR_DVBVIEWER + select BR2_PACKAGE_KODI_PVR_FILMON + select BR2_PACKAGE_KODI_PVR_HTS + select BR2_PACKAGE_KODI_PVR_IPTVSIMPLE + select BR2_PACKAGE_KODI_PVR_MEDIAPORTAL_TVSERVER + select BR2_PACKAGE_KODI_PVR_MYTHTV + select BR2_PACKAGE_KODI_PVR_NEXTPVR + select BR2_PACKAGE_KODI_PVR_NJOY + select BR2_PACKAGE_KODI_PVR_PCTV + select BR2_PACKAGE_KODI_PVR_STALKER + select BR2_PACKAGE_KODI_PVR_VBOX + select BR2_PACKAGE_KODI_PVR_VDR_VNSI + select BR2_PACKAGE_KODI_PVR_VUPLUS + select BR2_PACKAGE_KODI_PVR_WMC + help + Kodi PVR addon was split into seperate modules + +config BR2_BINUTILS_VERSION_2_23_2 + bool "binutils 2.23 option renamed" + select BR2_LEGACY + help + Binutils 2.23.2 has been removed, using a newer version is + recommended. + +config BR2_BINUTILS_VERSION_2_24 + bool "binutils 2.24 option renamed" + select BR2_LEGACY + select BR2_BINUTILS_VERSION_2_24_X + help + The binutils version option has been renamed to match the + same patchlevel logic used by gcc. The new option is now + BR2_BINUTILS_VERSION_2_24_X. + +config BR2_BINUTILS_VERSION_2_25 + bool "binutils 2.25 option renamed" + select BR2_LEGACY + select BR2_BINUTILS_VERSION_2_25_X + help + The binutils version option has been renamed to match the + same patchlevel logic used by gcc. The new option is now + BR2_BINUTILS_VERSION_2_25_X. + +config BR2_PACKAGE_PERF + bool "perf option has been renamed" + select BR2_LEGACY + select BR2_LINUX_KERNEL_TOOL_PERF + help + The perf package has been moved as a Linux tools package, + and the option to enable it is now + BR2_LINUX_KERNEL_TOOL_PERF. + +config BR2_BINUTILS_VERSION_2_22 + bool "binutils 2.22 removed" + select BR2_LEGACY + help + Binutils 2.22 has been removed, using a newer version is + recommended. + +config BR2_PACKAGE_GPU_VIV_BIN_MX6Q + bool "gpu-viv-bin-mx6q" + select BR2_LEGACY + select BR2_PACKAGE_IMX_GPU_VIV + help + Vivante graphics libraries have been renamed to + BR2_PACKAGE_IMX_GPU_VIV to be aligned with upstream package + name. + +config BR2_PACKAGE_LIBSEMANAGE_PYTHON_BINDINGS + bool "libsemanage python bindings removed" + depends on BR2_PACKAGE_PYTHON + select BR2_LEGACY + help + This option has been removed, since the libsemanage Python + bindings on the target were not useful. + +config BR2_TARGET_UBOOT_NETWORK + bool "U-Boot custom network settings removed" + select BR2_LEGACY + help + U-Boot's custom network settings options have been removed. + +endmenu + +endif # !SKIP_LEGACY diff --git a/DEVELOPERS b/DEVELOPERS new file mode 100644 index 000000000..af21b8bdd --- /dev/null +++ b/DEVELOPERS @@ -0,0 +1,3144 @@ +# Syntax: +# +# N: Firstname Lastname +# F: file pattern or directory +# F: file pattern or directory +# +# The "F" entries can be: +# +# - A directory, in which case all patches touching any file in this +# directory or its subdirectories will be CC'ed to the developer. +# - A pattern, in which case the pattern will be expanded, and then +# all files/directories (and their subdirectories) will be +# considered when matching against a patch +# +# Notes: +# +# - When a developer adds an "arch/Config.in." file to its list +# of files, he is considered a developer of this architecture. He +# will receive e-mail notifications about build failures occuring on +# this architecture. Not more than one e-mail per day is sent. +# - When a developer adds a directory that contains one or several +# packages, this developer will be notified when build failures +# occur. Not more than one e-mail per day is sent. +# - When a developer adds an "package/pkg-.mk" file to its list +# of files, he is considered interested by this package +# infrastructure, and will be CC'ed on all patches that add or +# modify packages that use this infrastructure. + +N: Adam Heinrich +F: package/jack1/ + +N: Adrian Perez de Castro +F: package/brotli/ +F: package/bubblewrap/ +F: package/cage/ +F: package/cog/ +F: package/libepoxy/ +F: package/libpsl/ +F: package/libwpe/ +F: package/webkitgtk/ +F: package/wlroots/ +F: package/woff2/ +F: package/wpebackend-fdo/ +F: package/wpewebkit/ +F: package/xdg-dbus-proxy/ + +N: Adrien Gallouët +F: package/bird/ +F: package/glorytun/ + +N: Alejandro González +F: package/qprint/ +F: package/watchdog/ + +N: Aleksander Morgado +F: package/libmbim/ +F: package/libqmi/ +F: package/modem-manager/ + +N: Alex Michel +F: package/network-manager-openvpn/ + +N: Alex Suykov +F: board/chromebook/snow/ +F: configs/chromebook_snow_defconfig +F: package/vboot-utils/ + +N: Alexander Clouter +F: package/odhcp6c/ + +N: Alexander Dahl +F: package/fastd/ +F: package/libuecc/ +F: package/siproxd/ +F: package/putty/ + +N: Alexander Egorenkov +F: package/makedumpfile/ +F: package/multipath-tools/ + +N: Alexander Egorenkov +F: arch/Config.in.s390x +F: board/qemu/s390x/ +F: configs/qemu_s390x_defconfig +F: package/s390-tools/ + +N: Alexander Kurz +F: package/minimodem/ + +N: Alexander Lukichev +F: package/openpgm/ + +N: Aleksandr Makarov +F: package/libest/ + +N: Alexander Mukhin +F: package/tinyproxy/ + +N: Alexander Sverdlin +F: package/mini-snmpd/ + +N: Alexander Varnin +F: package/liblog4c-localtime/ + +N: Alexandre Belloni +F: package/tz/ + +N: Alexandre Esse +F: package/kvazaar/ +F: package/v4l2loopback/ + +N: Alexey Brodkin +F: board/cubietech/cubieboard2/ +F: configs/cubieboard2_defconfig + +N: Alexey Lukyanchuk +F: package/zabbix/ + +N: Alistair Francis +F: board/sifive/ +F: boot/opensbi/ +F: configs/hifive_unleashed_defconfig +F: package/xen/ + +N: Alvaro G. M +F: package/dcron/ +F: package/libxmlrpc/ +F: package/python-docopt/ + +N: André Zwing +F: package/libkrb5/ +F: package/openal/ +F: package/p7zip/ +F: package/wine/ + +N: Andreas Klinger +F: package/ply/ + +N: Andreas Ziegler +F: package/mpd/ + +N: Andrey Smirnov +F: package/python-decorator/ +F: package/python-ipython-genutils/ +F: package/python-pickleshare/ +F: package/python-scandir/ +F: package/python-simplegeneric/ +F: package/python-systemd/ +F: package/python-traitlets/ +F: package/zstd/ + +N: Andrey Yurovsky +F: package/rauc/ + +N: Angelo Compagnucci +F: package/apparmor/ +F: package/corkscrew/ +F: package/cups/ +F: package/cups-filters/ +F: package/fail2ban/ +F: package/grep/ +F: package/htpdate/ +F: package/i2c-tools/ +F: package/jq/ +F: package/libapparmor/ +F: package/libb64/ +F: package/libdill/ +F: package/mender/ +F: package/mender-artifact/ +F: package/mono/ +F: package/mono-gtksharp3/ +F: package/monolite/ +F: package/openjpeg/ +F: package/python-can/ +F: package/python-pillow/ +F: package/python-pydal/ +F: package/python-spidev/ +F: package/python-web2py/ +F: package/qt5/qt5coap/ +F: package/qt5/qt5knx/ +F: package/qt5/qt5mqtt/ +F: package/rtl8723ds/ +F: package/sam-ba/ +F: package/sshguard/ +F: package/sunwait/ +F: package/sysdig/ + +N: Andy Shevchenko +F: package/fb-test-app/ + +N: Anisse Astier +F: package/go/ +F: package/nghttp2/ +F: package/pkg-golang.mk + +N: Anthony Viallard +F: package/gnuplot/ + +N: Antoine Tenart +F: package/libselinux/ +F: package/refpolicy/ +F: support/testing/tests/core/test_selinux/ +F: support/testing/tests/core/test_selinux.py +F: support/testing/tests/init/test_systemd_selinux/ +F: support/testing/tests/init/test_systemd_selinux.py + +N: Antony Pavlov +F: package/lsscsi/ + +N: ARC Maintainers +F: arch/Config.in.arc +F: board/synopsys/ +F: configs/snps_arc700_axs101_defconfig +F: configs/snps_archs38_axs103_defconfig +F: configs/snps_archs38_haps_defconfig +F: configs/snps_archs38_hsdk_defconfig + +N: Ariel D'Alessandro +F: package/axfsutils/ +F: package/mali-t76x/ + +N: Arnaud Aujon +F: package/espeak/ + +N: Arnout Vandecappelle +F: package/arp-scan/ +F: package/dehydrated/ +F: package/freescale-imx/firmware-imx/ +F: package/freescale-imx/imx-lib/ +F: package/libpagekite/ +F: package/lua-bit32/ +F: package/owfs/ +F: package/python-bottle/ +F: package/sqlcipher/ +F: package/stress/ + +N: Asaf Kahlon +F: package/collectd/ +F: package/libfuse3/ +F: package/libuv/ +F: package/python* +F: package/snmpclitools/ +F: package/spdlog/ +F: package/uftp/ +F: package/uftrace/ +F: package/uvw/ +F: package/zeromq/ + +N: Ash Charles +F: package/pru-software-support/ +F: package/ti-cgt-pru/ + +N: Assaf Inbal +F: package/lbase64/ +F: package/luabitop/ +F: package/luaexpatutils/ +F: package/luaposix/ +F: package/luasec/ +F: package/lua-ev/ +F: package/orbit/ + +N: Attila Wagner +F: package/python-canopen/ + +N: Bartosz Bilas +F: board/stmicroelectronics/stm32mp157a-dk1/ +F: configs/stm32mp157a_dk1_defconfig +F: package/cegui/ +F: package/log4qt/ +F: package/python-esptool/ +F: package/python-pyaes/ +F: package/ttyd/ +F: package/qt5/qt5scxml/ +F: package/qt5/qt5webview/ + +N: Bartosz Golaszewski +F: package/autoconf-archive/ +F: package/doxygen/ +F: package/libgpiod/ +F: package/libserialport/ +F: package/libsigrok/ +F: package/libsigrokdecode/ +F: package/libzip/ +F: package/pulseview/ +F: package/sigrok-cli/ + +N: Baruch Siach +F: board/solidrun/clearfog_gt_8k/ +F: configs/solidrun_clearfog_gt_8k_defconfig +F: package/18xx-ti-utils/ +F: package/cpuburn-arm/ +F: package/daemon/ +F: package/dropbear/ +F: package/ebtables/ +F: package/i2c-tools/ +F: package/libcurl/ +F: package/libpcap/ +F: package/socat/ +F: package/strace/ +F: package/tcpdump/ +F: package/ti-uim/ +F: package/uhubctl/ + +N: Ben Boeckel +F: package/taskd/ + +N: Benjamin Kamath +F: package/lapack/ + +N: Bernd Kuhls +F: package/alsa-lib/ +F: package/alsa-utils/ +F: package/apache/ +F: package/apg/ +F: package/apr/ +F: package/apr-util/ +F: package/bcg729/ +F: package/bento4/ +F: package/bitcoin/ +F: package/bluez-tools/ +F: package/boinc/ +F: package/clamav/ +F: package/dav1d/ +F: package/dht/ +F: package/dovecot/ +F: package/dovecot-pigeonhole/ +F: package/dtv-scan-tables/ +F: package/eudev/ +F: package/exim/ +F: package/fetchmail/ +F: package/ffmpeg/ +F: package/flac/ +F: package/freeswitch/ +F: package/freeswitch-mod-bcg729/ +F: package/freetype/ +F: package/fstrcmp/ +F: package/ghostscript/ +F: package/giflib/ +F: package/gkrellm/ +F: package/gli/ +F: package/glmark2/ +F: package/gpsd/ +F: package/gptfdisk/ +F: package/hdparm/ +F: package/inih/ +F: package/intel-gmmlib/ +F: package/intel-mediadriver/ +F: package/intel-mediasdk/ +F: package/jsoncpp/ +F: package/kodi* +F: package/lame/ +F: package/leafnode2/ +F: package/libaacs/ +F: package/libasplib/ +F: package/libass/ +F: package/libbdplus/ +F: package/libbluray/ +F: package/libbroadvoice/ +F: package/libcdio/ +F: package/libcec/ +F: package/libcodec2/ +F: package/libcrossguid/ +F: package/libdcadec/ +F: package/libdeflate/ +F: package/libdrm/ +F: package/libdvbcsa/ +F: package/libdvdcss/ +F: package/libdvdnav/ +F: package/libdvdread/ +F: package/libebur128/ +F: package/libfreeglut/ +F: package/libg7221/ +F: package/libglew/ +F: package/libglfw/ +F: package/libglu/ +F: package/libhdhomerun/ +F: package/libilbc/ +F: package/libks/ +F: package/libldns/ +F: package/libmicrohttpd/ +F: package/libminiupnpc/ +F: package/libmspack/ +F: package/libnatpmp/ +F: package/libnpth/ +F: package/libogg/ +F: package/libopenh264/ +F: package/libpciaccess/ +F: package/libplatform/ +F: package/libpng/ +F: package/libsidplay2/ +F: package/libsilk/ +F: package/libsndfile/ +F: package/libsoundtouch/ +F: package/libsquish/ +F: package/libudfread/ +F: package/liburiparser/ +F: package/libutp/ +F: package/libva/ +F: package/libva-intel-driver/ +F: package/libva-utils/ +F: package/libvorbis/ +F: package/libvpx/ +F: package/libyuv/ +F: package/mesa3d/ +F: package/minidlna/ +F: package/mjpg-streamer/ +F: package/nut/ +F: package/perl-crypt-openssl-guess/ +F: package/perl-crypt-openssl-random/ +F: package/perl-crypt-openssl-rsa/ +F: package/perl-digest-sha1/ +F: package/perl-encode-detect/ +F: package/perl-encode-locale/ +F: package/perl-file-listing/ +F: package/perl-html-parser/ +F: package/perl-html-tagset/ +F: package/perl-http-cookies/ +F: package/perl-http-daemon/ +F: package/perl-http-date/ +F: package/perl-http-message/ +F: package/perl-http-negotiate/ +F: package/perl-io-html/ +F: package/perl-lwp-mediatypes/ +F: package/perl-mail-dkim/ +F: package/perl-mailtools/ +F: package/perl-net-dns/ +F: package/perl-net-http/ +F: package/perl-netaddr-ip/ +F: package/perl-timedate/ +F: package/perl-uri/ +F: package/perl-www-robotrules/ +F: package/php/ +F: package/pixman/ +F: package/pngquant/ +F: package/pound/ +F: package/pure-ftpd/ +F: package/python-couchdb/ +F: package/python-cssutils/ +F: package/python-mwclient/ +F: package/python-mwscrape/ +F: package/python-mwscrape2slob/ +F: package/python-mako/ +F: package/python-oauthlib/ +F: package/python-pyicu/ +F: package/python-pylru/ +F: package/python-requests-oauthlib/ +F: package/python-slob/ +F: package/rtmpdump/ +F: package/samba4/ +F: package/softether/ +F: package/spandsp/ +F: package/sqlite/ +F: package/stellarium/ +F: package/taglib/ +F: package/tinyxml2/ +F: package/tor/ +F: package/transmission/ +F: package/tvheadend/ +F: package/unixodbc/ +F: package/utf8proc/ +F: package/vdr/ +F: package/vdr-plugin-vnsiserver/ +F: package/vlc/ +F: package/vnstat/ +F: package/waylandpp/ +F: package/x11r7/ +F: package/x264/ +F: package/x265/ +F: package/xmrig/ +F: package/ytree/ +F: package/znc/ +F: support/testing/tests/package/test_perl_html_parser.py + +N: Biagio Montaruli +F: board/acmesystems/ +F: configs/acmesystems_* + +N: Bilal Wasim +F: board/chromebook/elm/ +F: configs/chromebook_elm_defconfig + +N: Bogdan Radulescu +F: package/iftop/ +F: package/ncdu/ + +N: Brandon Maier +F: package/vmtouch/ + +N: Brock Williams +F: package/pdmenu/ + +N: Carlo Caione +F: package/jailhouse/ +F: package/sunxi-boards/ + +N: Carsten Schoenert +F: package/dvbsnoop/ +F: package/libdvbsi/ +F: package/libsvg/ +F: package/libsvg-cairo/ + +N: Cédric Chépied +F: package/znc/ + +N: Cédric Le Goater +F: board/aspeed/ +F: board/qemu/ppc-bamboo/ +F: board/qemu/ppc64le-powernv8/readme.txt +F: configs/aspeed* +F: configs/qemu_ppc_bamboo_defconfig +F: configs/qemu_ppc64le_powernv8_defconfig + +N: Charles Hardin +F: package/alsa-plugins/ + +N: Changming Huang +F: package/qoriq-cadence-dp-firmware/ + +N: Chris Packham +F: package/coremark/ +F: package/coremark-pro/ +F: package/gstreamer1/gst1-shark/ +F: package/micropython/ +F: package/micropython-lib/ +F: package/syslog-ng/ + +N: Christian Kellermann +F: package/python-pylibftdi/ + +N: Christian Stewart +F: package/batman-adv/ +F: package/containerd/ +F: package/delve/ +F: package/docker-cli/ +F: package/docker-engine/ +F: package/docker-proxy/ +F: package/embiggen-disk/ +F: package/fuse-overlayfs/ +F: package/go/ +F: package/gocryptfs/ +F: package/mbpfan/ +F: package/moby-buildkit/ +F: package/mosh/ +F: package/nerdctl/ +F: package/pkg-golang.mk +F: package/rtl8821au/ +F: package/runc/ +F: package/tini/ + +N: Christophe Priouzeau +F: board/stmicroelectronics/stm32f429-disco/ +F: board/stmicroelectronics/stm32f469-disco/ +F: configs/stm32f429_disco_xip_defconfig +F: configs/stm32f469_disco_sd_defconfig +F: configs/stm32f469_disco_xip_defconfig + +N: Christophe Vu-Brugier +F: package/drbd-utils/ +F: package/iotop/ +F: package/python-configshell-fb/ +F: package/python-rtslib-fb/ +F: package/python-urwid/ +F: package/targetcli-fb/ + +N: Christopher McCrory +F: package/perl-appconfig/ +F: package/perl-astro-suntime/ +F: package/perl-class-load/ +F: package/perl-class-std/ +F: package/perl-class-std-fast/ +F: package/perl-data-dump/ +F: package/perl-data-optlist/ +F: package/perl-data-uuid/ +F: package/perl-date-manip/ +F: package/perl-dbd-mysql/ +F: package/perl-dbi/ +F: package/perl-device-serialport/ +F: package/perl-dist-checkconflicts/ +F: package/perl-file-slurp/ +F: package/perl-io-interface/ +F: package/perl-io-socket-multicast/ +F: package/perl-json-maybexs/ +F: package/perl-mime-tools/ +F: package/perl-module-implementation/ +F: package/perl-module-runtime/ +F: package/perl-number-bytes-human/ +F: package/perl-package-stash/ +F: package/perl-params-util/ +F: package/perl-sub-install/ +F: package/perl-sys-cpu/ +F: package/perl-sys-meminfo/ +F: package/perl-sys-mmap/ +F: package/perl-time-parsedate/ +F: package/perl-x10/ + +N: Clayton Shotwell +F: package/audit/ +F: package/checkpolicy/ +F: package/cpio/ +F: package/libcgroup/ +F: package/libee/ +F: package/libestr/ +F: package/liblogging/ +F: package/libselinux/ +F: package/libsemanage/ +F: package/libsepol/ +F: package/policycoreutils/ + +N: Clément Péron +F: board/beelink/gs1/ +F: configs/beelink_gs1_defconfig + +N: Corentin Guillevic +F: package/libloki/ + +N: Cyril Bur +F: arch/Config.in.powerpc +F: package/kvm-unit-tests + +N: Dagg Stompler +F: board/hardkernel/odroidc2/ +F: configs/odroidc2_defconfig +F: package/meson-tools/ +F: package/odroidc2-firmware/ + +N: Daniel J. Leach +F: package/dacapo/ + +N: Daniel Lang +F: package/dbus-cxx/ +F: package/paho-mqtt-cpp/ + +N: Damien Lanson +F: package/libvdpau/ +F: package/log4cpp/ + +N: Damien Le Moal +F: package/python-kflash/ +F: board/canaan/ +F: configs/canaan_kd233_defconfig +F: board/sipeed/ +F: configs/sipeed_maix_bit_defconfig +F: configs/sipeed_maix_bit_sdcard_defconfig +F: configs/sipeed_maixduino_defconfig +F: configs/sipeed_maixduino_sdcard_defconfig +F: configs/sipeed_maix_dock_defconfig +F: configs/sipeed_maix_dock_sdcard_defconfig +F: configs/sipeed_maix_go_defconfig +F: configs/sipeed_maix_go_sdcard_defconfig + +N: Daniel Nicoletti +F: package/cutelyst/ + +N: Daniel Price +F: package/nodejs/ +F: package/redis/ + +N: Daniel Sangue +F: package/libftdi1/ + +N: Danilo Bargen +F: board/pcengines/apu2/ +F: configs/pcengines_apu2_defconfig +F: package/tealdeer/ + +N: Danomi Manchego +F: package/cjson/ +F: package/jq/ +F: package/libwebsockets/ +F: package/ljsyscall/ +F: package/lua-cjson/ +F: package/luaexpat/ +F: package/xinetd/ + +N: Dario Binacchi +F: package/uuu/ + +N: Dario Binacchi +F: package/davinci-bootcount/ +F: package/libmnl/ + +N: David Bachelart +F: package/ccrypt/ +F: package/dos2unix/ +F: package/ipmiutil/ +F: package/jsmn/ +F: package/python-daemon/ +F: package/sslh/ +F: package/udpxy/ + +N: David Bender +F: package/benejson/ +F: package/cgic/ +F: package/freeradius-client/ +F: package/openldap/ + +N: David du Colombier <0intro@gmail.com> +F: package/x264/ + +N: David GOUARIN +F: package/freeradius-server/ +F: package/librelp/ +F: package/libtalloc/ + +N: David Lechner +F: board/lego/ev3/ +F: configs/lego_ev3_defconfig +F: linux/linux-ext-ev3dev-linux-drivers.mk +F: package/brickd/ +F: package/ev3dev-linux-drivers/ + +N: David Pierret +F: package/bat/ + +N: Davide Viti +F: board/friendlyarm/nanopi-r1/ +F: configs/friendlyarm_nanopi_r1_defconfig +F: package/flann/ +F: package/python-paho-mqtt/ +F: package/qhull/ +F: package/tcllib/ + +N: Denis Bodor +F: package/libstrophe/ + +N: Derrick Lyndon Pallas +F: package/ipcalc/ + +N: Dick Olsson +F: board/aarch64-efi/ +F: board/pc/ +F: board/qemu/aarch64-sbsa/ +F: boot/arm-trusted-firmware/ +F: boot/edk2/ +F: configs/qemu_aarch64_sbsa_defconfig +F: package/bearssl/ +F: package/bitcoin/ +F: package/edk2-platforms/ +F: package/execline/ +F: package/mdevd/ +F: package/s6-dns/ +F: package/s6-linux-init/ +F: package/s6-linux-utils/ +F: package/s6-networking/ +F: package/s6-portable-utils/ +F: package/s6-rc/ +F: package/s6/ +F: package/skalibs/ +F: support/testing/tests/boot/test_edk2.py + +N: Dimitar Tomov +F: package/wolftpm/ + +N: Dimitrios Siganos +F: package/wireless-regdb/ + +N: Dominik Faessler +F: package/logsurfer/ + +N: Dominik Michael Rauh +F: package/gdal/ + +N: Doug Kehn +F: package/nss-pam-ldapd/ +F: package/sp-oops-extract/ +F: package/unscd/ + +N: Dushara Jayasinghe +F: package/prosody/ + +N: Edgar Bonet +F: board/acmesystems/acqua-a5/ +F: configs/acmesystems_acqua_a5_256mb_defconfig +F: configs/acmesystems_acqua_a5_512mb_defconfig + +N: Eloi Bail +F: package/bayer2rgb-neon/ +F: package/gstreamer1/gst1-plugins-bayer2rgb-neon/ + +N: Emile Cormier +F: package/python-appdirs/ +F: package/python-zlmdb/ + +N: Eric Le Bihan +F: docs/manual/adding-packages-meson.txt +F: package/adwaita-icon-theme/ +F: package/darkhttpd/ +F: package/eudev/ +F: package/execline/ +F: package/hicolor-icon-theme/ +F: package/jemalloc/ +F: package/mdevd/ +F: package/meson/ +F: package/ninja/ +F: package/pkg-meson.mk +F: package/rust-bin/ +F: package/rust/ +F: package/s6/ +F: package/s6-dns/ +F: package/s6-linux-init/ +F: package/s6-linux-utils/ +F: package/s6-networking/ +F: package/s6-portable-utils/ +F: package/s6-rc/ +F: package/skalibs/ +F: package/smack/ +F: package/xvisor/ + +N: Eric Limpens +F: package/pifmrds/ +F: package/ympd/ + +N: Erico Nunes +F: board/aarch64-efi/ +F: configs/aarch64_efi_defconfig +F: package/acpica/ +F: package/acpitool/ +F: package/efibootmgr/ +F: package/efivar/ +F: package/fwts/ +F: package/spi-tools/ +F: package/xdotool/ +F: configs/pc_x86_64_* + +N: Erik Larsson +F: package/imx-mkimage/ + +N: Erik Stromdahl +F: package/mxsldr/ + +N: Ernesto L. Williams Jr +F: package/szip/ + +N: Esben Haabendal +F: boot/gummiboot/ +F: package/python-kiwisolver/ + +N: Etienne Carriere +F: boot/optee-os/ +F: package/optee-benchmark/ +F: package/optee-client/ +F: package/optee-examples/ +F: package/optee-test/ + +N: Eugen Hristev +F: board/atmel/readme.txt +F: board/microchip/sama7g5ek/ +F: configs/microchip_sama7g5ek* + +N: Eugene Tarassov +F: package/tcf-agent/ + +N: Ezequiel Garcia +F: board/ci20/ +F: configs/ci20_defconfig +F: arch/Config.in.nios2 +F: package/fio/ +F: package/iptraf-ng/ +F: package/jimtcl/ +F: package/mimic/ +F: package/nodm/ +F: package/openbox/ +F: package/supertuxkart/ + +N: Fabio Estevam +F: board/freescale/warpboard/ +F: board/warp7/ +F: configs/freescale_imx* +F: configs/imx23evk_defconfig +F: configs/imx6-sabre* +F: configs/imx6slevk_defconfig +F: configs/imx6sx-sdb_defconfig +F: configs/imx6ulevk_defconfig +F: configs/imx6ullevk_defconfig +F: configs/imx6ulpico_defconfig +F: configs/imx7d-sdb_defconfig +F: configs/imx7dpico_defconfig +F: configs/imx8mqevk_defconfig +F: configs/mx25pdk_defconfig +F: configs/mx51evk_defconfig +F: configs/mx53loco_defconfig +F: configs/mx6cubox_defconfig +F: configs/mx6sx_udoo_neo_defconfig +F: configs/mx6udoo_defconfig +F: configs/wandboard_defconfig +F: configs/warp7_defconfig +F: configs/warpboard_defconfig +F: package/atest/ +F: package/crucible/ +F: package/kmscube/ + +N: Fabio Porcedda +F: package/netsurf-buildsystem/ + +N: Fabio Urquiza +F: package/bitcoin/ + +N: Fabrice Fontaine +F: package/domoticz/ +F: package/libmediaart/ +F: package/libmaxminddb/ +F: package/openzwave/ + +N: Fabrice Fontaine +F: package/bearssl/ +F: package/belle-sip/ +F: package/belr/ +F: package/boinc/ +F: package/cairo/ +F: package/daq3/ +F: package/duktape/ +F: package/expat/ +F: package/flatbuffers/ +F: package/freeipmi/ +F: package/gdk-pixbuf-xlib/ +F: package/gerbera/ +F: package/gtksourceview/ +F: package/gssdp/ +F: package/gupnp/ +F: package/gupnp-dlna/ +F: package/gupnp-tools/ +F: package/haproxy/ +F: package/hiredis/ +F: package/i2pd/ +F: package/igd2-for-linux/ +F: package/json-c/ +F: package/ksmbd-tools/ +F: package/lcms2/ +F: package/lftp/ +F: package/libcap-ng/ +F: package/libcdio-paranoia/ +F: package/libcgicc/ +F: package/libconfig/ +F: package/libcue/ +F: package/libebml/ +F: package/libgee/ +F: package/libglib2/ +F: package/libgtk2/ +F: package/libgtk3/ +F: package/libhtp/ +F: package/libidn/ +F: package/libidn2/ +F: package/libjpeg/ +F: package/liblockfile/ +F: package/libmatroska/ +F: package/libmd/ +F: package/libmpdclient/ +F: package/libnetfilter_conntrack/ +F: package/libnetfilter_queue/ +F: package/libnpupnp/ +F: package/liboping/ +F: package/libpfm4/ +F: package/libraw/ +F: package/libraw1394/ +F: package/libroxml/ +F: package/librsvg/ +F: package/librsync/ +F: package/libsoup/ +F: package/libsoxr/ +F: package/libupnp/ +F: package/liburing/ +F: package/libv4l/ +F: package/libxslt/ +F: package/mbedtls/ +F: package/minissdpd/ +F: package/minizip/ +F: package/minizip-zlib/ +F: package/mongodb/ +F: package/motion/ +F: package/mutt/ +F: package/ncmpc/ +F: package/oniguruma/ +F: package/opencv4/ +F: package/oprofile/ +F: package/pcmanfm/ +F: package/perl-extutils-pkgconfig/ +F: package/python-backcall/ +F: package/python-jedi/ +F: package/python-parso/ +F: package/python-yatl/ +F: package/rocksdb/ +F: package/rtl_433/ +F: package/rygel/ +F: package/safeclib/ +F: package/snort3/ +F: package/suricata/ +F: package/tinycbor/ +F: package/tinydtls/ +F: package/tinymembench/ +F: package/whois/ +F: package/zeek/ + +N: Fabrice Goucem +F: board/freescale/imx6ullevk/ +F: configs/freescale_imx6ullevk_defconfig + +N: Falco Hyfing +F: package/python-pymodbus/ + +N: Filip Skoneczny +F: board/sinovoip/m1-plus +F: configs/bananapi_m1_plus_defconfig + +N: Florian Fainelli +F: package/cpulimit/ + +N: Floris Bos +F: package/ipmitool/ +F: package/odhcploc/ + +N: Francis Laniel +F: package/falcosecurity-libs +F: package/pahole/ +F: package/sysdig/ +F: package/tbb/ + +N: Francisco Gonzalez +F: package/ser2net/ + +N: Francois Perrad +F: board/olimex/a20_olinuxino +F: board/olimex/imx233_olinuxino/ +F: board/olimex/stmp1_olinuxino/ +F: configs/olimex_a20_olinuxino_* +F: configs/olimex_imx233_olinuxino_defconfig +F: configs/olimex_stmp157_olinuxino_lime_defconfig +F: package/4th/ +F: package/cgilua/ +F: package/chipmunk/ +F: package/cog/ +F: package/collectl/ +F: package/copas/ +F: package/coxpcall/ +F: package/dado/ +F: package/ficl/ +F: package/janet/ +F: package/libtomcrypt/ +F: package/libtommath/ +F: package/libwpe/ +F: package/linenoise/ +F: package/ljlinenoise/ +F: package/lua-inotify/ +F: package/lpeg/ +F: package/lpty/ +F: package/lrandom/ +F: package/lsqlite3/ +F: package/lua* +F: package/lzlib/ +F: package/moarvm/ +F: package/mstpd/ +F: package/netsurf/ +F: package/perl* +F: package/pkg-perl.mk +F: package/pkg-luarocks.mk +F: package/quickjs/ +F: package/rings/ +F: package/tekui/ +F: package/wpebackend-fdo/ +F: package/wpewebkit/ +F: package/wsapi/ +F: package/wsapi-fcgi/ +F: package/wsapi-xavante/ +F: package/xavante/ +F: support/testing/tests/package/test_lua* +F: utils/scancpan + +N: Frank Hunleth +F: package/am335x-pru-package/ +F: package/libconfuse/ +F: package/libdmtx/ +F: package/libsodium/ +F: package/php-amqp/ +F: package/python-cherrypy/ +F: package/rabbitmq-server/ +F: package/sane-backends/ +F: package/ucl/ +F: package/upx/ +F: package/zxing-cpp/ + +N: Frank Vanbever +F: package/elixir/ +F: package/libmodsecurity/ +F: package/nginx-modsecurity/ + +N: Gao Xiang +F: package/erofs-utils/ + +N: Gary Bisson +F: board/boundarydevices/ +F: configs/nitrogen* +F: package/freescale-imx/ +F: package/gstreamer1/gst1-imx/ +F: package/libimxvpuapi/ +F: package/mfgtools/ +F: package/sshpass/ +F: package/x11r7/xdriver_xf86-video-imx-viv/ + +N: Geoff Levand +F: package/flannel/ + +N: Geoffrey Ragot +F: package/python-pyyaml/ + +N: Gilles Talis +F: board/freescale/imx8mmevk/ +F: board/friendlyarm/nanopi-r2s/ +F: configs/freescale_imx8mmevk_defconfig +F: configs/friendlyarm_nanopi_r2s_defconfig +F: package/cctz/ +F: package/clpeak/ +F: package/faad2/ +F: package/fdk-aac/ +F: package/hawktracer/ +F: package/httping/ +F: package/iozone/ +F: package/leptonica/ +F: package/libeXosip2/ +F: package/libolm/ +F: package/libosip2/ +F: package/ocrad/ +F: package/opencl-clhpp/ +F: package/opusfile/ +F: package/restclient-cpp/ +F: package/tesseract-ocr/ +F: package/webp/ +F: package/xapian/ + +N: Giulio Benetti +F: board/olimex/a* +F: configs/amarula_vyasa_rk3288_defconfig +F: configs/asus_tinker_rk3288_defconfig +F: configs/olimex_a* +F: package/at/ +F: package/binutils/ +F: package/cryptsetup/ +F: package/erlang-jiffy/ +F: package/gcc/ +F: package/harfbuzz/ +F: package/libfuse3/ +F: package/libnspr/ +F: package/libnss/ +F: package/mali-driver/ +F: package/minicom/ +F: package/mmc-utils/ +F: package/nfs-utils/ +F: package/python-uvloop/ +F: package/qt5/ +F: package/rockchip-mali/ +F: package/rtl8189es/ +F: package/rtl8723bu/ +F: package/rtl8723ds/ +F: package/rtl8812au-aircrack-ng/ +F: package/sunxi-mali-utgard/ +F: package/sunxi-mali-utgard-driver/ +F: package/sunxi-tools/ +F: package/trace-cmd/ +F: package/udisks/ +F: package/wilc-driver/ +F: toolchain/ + +N: Graeme Smecher +F: package/python-orjson/ + +N: Gregory Dymarek +F: package/ding-libs/ +F: package/gengetopt/ +F: package/janus-gateway/ +F: package/libnice/ +F: package/libsrtp/ +F: package/libwebsock/ +F: package/sofia-sip/ + +N: Grzegorz Blach +F: fs/f2fs/ +F: package/bluez5_utils-headers/ +F: package/f2fs-tools/ +F: package/graphicsmagick/ +F: package/pigpio/ +F: package/python-aioblescan/ +F: package/python-bluezero/ +F: package/python-crontab/ +F: package/python-falcon/ +F: package/python-ifaddr/ +F: package/python-hiredis/ +F: package/python-mimeparse/ +F: package/python-pigpio/ +F: package/python-pyjwt/ +F: package/python-redis/ +F: package/python-rpi-ws281x/ +F: package/python-wtforms/ +F: package/rpi-rgb-led-matrix/ + +N: Guillaume William Brs +F: package/libnids/ +F: package/libxcrypt/ +F: package/liquid-dsp/ +F: package/mbw/ +F: package/pixiewps/ +F: package/python-beniget/ +F: package/python-gast/ +F: package/python-pybind/ +F: package/python-pythran/ +F: package/python-scipy/ +F: package/reaver/ +F: support/testing/tests/package/br2-external/python-pybind +F: support/testing/tests/package/sample_python_pybind.py +F: support/testing/tests/package/sample_python_scipy.py +F: support/testing/tests/package/test_python_pybind.py +F: support/testing/tests/package/test_python_scipy.py + +N: Gustavo Heinz +F: package/python-m2crypto/ + +N: Gustavo Pimentel +F: configs/arm_juno_defconfig +F: board/arm/juno/ + +N: Gwenhael Goavec-Merou +F: board/terasic/de10nano_cyclone5/ +F: configs/terasic_de10nano_cyclone5_defconfig +F: package/gnuradio/ +F: package/gqrx/ +F: package/gr-osmosdr/ +F: package/librtlsdr/ +F: package/libusbgx/ +F: package/matio/ +F: package/python-cheetah/ +F: package/python-markdown/ +F: package/python-remi/ +F: package/python-sip/ +F: package/uhd/ +F: package/volk/ + +N: Heiko Thiery +F: board/kontron/bl-imx8mm/ +F: board/kontron/pitx-imx8m/ +F: configs/kontron_bl_imx8mm_defconfig +F: configs/kontron_pitx_imx8m_defconfig +F: package/altera-stapl/ +F: package/ipmitool/ +F: package/libnetconf2/ +F: package/libyang/ +F: package/linuxptp/ +F: package/netopeer2/ +F: package/sysrepo/ + +N: Hervé Codina +F: package/alchemy/ +F: package/dtbocfg/ +F: package/libdbi/ +F: package/libdbi-drivers/ +F: package/libfutils/ +F: package/libshdata/ +F: package/lua-augeas/ +F: package/modsecurity2/ +F: package/php-apcu/ +F: package/php-lua/ +F: package/php-pam/ +F: package/php-pecl-dbus/ +F: package/ulog/ +F: support/testing/tests/package/test_dtbocfg.py +F: support/testing/tests/package/test_libshdata.py +F: support/testing/tests/package/test_lua_augeas.py +F: support/testing/tests/package/test_php_apcu.py +F: support/testing/tests/package/test_php_lua.py +F: support/testing/tests/package/test_php_pam.py +F: support/testing/tests/package/test_php_pecl_dbus.py + +N: Hiroshi Kawashima +F: package/gauche/ +F: package/gmrender-resurrect/ +F: package/squeezelite/ + +N: Horatiu Vultur +F: package/cfm/ +F: package/easyframes/ +F: package/mrp/ + +N: Ian Haylock +F: package/python-rpi-gpio/ + +N: Ignacy GawÄ™dzki +F: package/angularjs/ + +N: Ilias Apalodimas +F: package/keepalived/ + +N: Ilya Averyanov +F: package/exempi/ + +N: Ismael Luceno +F: package/axel/ +F: package/mawk/ + +N: Jagan Teki +F: board/amarula/ +F: board/asus/ +F: board/bananapi/ +F: board/engicam/ +F: board/friendlyarm/nanopi-a64/ +F: board/friendlyarm/nanopi-neo2/ +F: board/olimex/a33_olinuxino/ +F: board/olimex/a64-olinuxino/ +F: board/orangepi/orangepi-lite2/ +F: board/orangepi/orangepi-one-plus +F: board/orangepi/orangepi-pc2/ +F: board/orangepi/orangepi-prime/ +F: board/orangepi/orangepi-win/ +F: board/orangepi/orangepi-zero-plus2/ +F: board/pine64/ +F: configs/amarula_a64_relic_defconfig +F: configs/amarula_vyasa_rk3288_defconfig +F: configs/asus_tinker_rk3288_defconfig +F: configs/bananapi_m1_defconfig +F: configs/bananapi_m64_defconfig +F: configs/engicam_imx6qdl_icore_defconfig +F: configs/engicam_imx6qdl_icore_qt5_defconfig +F: configs/engicam_imx6qdl_icore_rqs_defconfig +F: configs/engicam_imx6ul_geam_defconfig +F: configs/engicam_imx6ul_isiot_defconfig +F: configs/friendlyarm_nanopi_a64_defconfig +F: configs/friendlyarm_nanopi_neo2_defconfig +F: configs/olimex_a33_olinuxino_defconfig +F: configs/olimex_a64_olinuxino_defconfig +F: configs/orangepi_lite2_defconfig +F: configs/orangepi_one_plus_defconfig +F: configs/orangepi_pc2_defconfig +F: configs/orangepi_prime_defconfig +F: configs/orangepi_win_defconfig +F: configs/orangepi_zero_plus2_defconfig +F: configs/pine64_defconfig +F: configs/pine64_sopine_defconfig +F: package/python-scipy/ +F: support/testing/tests/package/sample_python_scipy.py +F: support/testing/tests/package/test_python_scipy.py + +N: James Hilliard +F: package/apcupsd/ +F: package/bpftool/ +F: package/exfatprogs/ +F: package/gensio/ +F: package/lua-std-debug/ +F: package/lua-std-normalize/ +F: package/lilv/ +F: package/lv2/ +F: package/pipewire/ +F: package/python-aioconsole/ +F: package/python-aiodns/ +F: package/python-aiohttp/ +F: package/python-aiohttp-cors/ +F: package/python-aiohttp-debugtoolbar/ +F: package/python-aiohttp-jinja2/ +F: package/python-aiohttp-mako/ +F: package/python-aiohttp-remotes/ +F: package/python-aiohttp-security/ +F: package/python-aiohttp-session/ +F: package/python-aiohttp-sse/ +F: package/python-aiologstash/ +F: package/python-aiomonitor/ +F: package/python-aiojobs/ +F: package/python-aioprocessing/ +F: package/python-aiorwlock/ +F: package/python-aiosignal/ +F: package/python-aiozipkin/ +F: package/python-argon2-cffi/ +F: package/python-argon2-cffi-bindings/ +F: package/python-async-lru/ +F: package/python-async-timeout/ +F: package/python-bidict/ +F: package/python-brotli/ +F: package/python-cbor2/ +F: package/python-cchardet/ +F: package/python-charset-normalizer/ +F: package/python-cssselect2/ +F: package/python-flatbuffers/ +F: package/python-fonttools/ +F: package/python-frozenlist/ +F: package/python-greenlet/ +F: package/python-installer/ +F: package/python-janus/ +F: package/python-logstash/ +F: package/python-maturin/ +F: package/python-multidict/ +F: package/python-mypy-extensions/ +F: package/python-pep517/ +F: package/python-pycares/ +F: package/python-pydyf/ +F: package/python-pypa-build/ +F: package/python-pyphen/ +F: package/python-rtoml/ +F: package/python-snappy/ +F: package/python-sockjs/ +F: package/python-terminaltables/ +F: package/python-tinycss2/ +F: package/python-tomli/ +F: package/python-typeguard/ +F: package/python-typing-inspect/ +F: package/python-weasyprint/ +F: package/python-yarl/ +F: package/python-zopfli/ +F: package/serd/ +F: package/sord/ +F: package/sratom/ +F: package/zchunk/ +F: support/testing/tests/package/sample_python_rtoml.py +F: support/testing/tests/package/test_python_rtoml.py + +N: James Knight +F: package/atkmm/ +F: package/cairomm/ +F: package/google-material-design-icons/ +F: package/glibmm/ +F: package/gtkmm3/ +F: package/libpqxx/ +F: package/pangomm/ +F: package/rpm/ +F: package/yad/ + +N: Jan Heylen +F: package/opentracing-cpp/ + +N: Jan Kraval +F: board/orangepi/orangepi-lite +F: configs/orangepi_lite_defconfig + +N: Jan Kundrát +F: configs/solidrun_clearfog_defconfig +F: board/solidrun/clearfog/ +F: package/libnetconf2/ +F: package/libyang/ +F: package/sysrepo/ + +N: Jan Pedersen +F: package/zip/ + +N: Jared Bents +F: package/libvirt/ + +N: Jarkko Sakkinen +F: package/quota/ + +N: Jason Pruitt +F: package/librtlsdr/ + +N: Jean Burgat +F: package/openfpgaloader/ + +N: Jens Kleintje +F: package/gcnano-binaries/ + +N: Jens Rosenboom +F: package/sl/ + +N: Jens Zettelmeyer +F: package/batctl/ + +N: Jeremy Rosen +F: package/fxload/ + +N: Jérôme Oufella +F: package/libdri2/ +F: package/qt-webkit-kiosk/ + +N: Jérôme Pouiller +F: package/apitrace/ +F: package/freescale-imx/gpu-amd-bin-mx51/ +F: package/freescale-imx/libz160/ +F: package/lxc/ +F: package/strongswan/ +F: package/wmctrl/ +F: package/x11r7/xdriver_xf86-video-imx/ +F: package/x11r7/xdriver_xf86-video-imx-viv/ + +N: Jianhui Zhao +F: package/libuhttpd/ +F: package/libuwsc/ +F: package/rtty/ + +N: Joachim Wiberg +F: configs/globalscale_espressobin_defconfig +F: board/globalscale/espressobin/ +F: package/inadyn/ +F: package/libconfuse/ +F: package/libite/ +F: package/libnet/ +F: package/libteam/ +F: package/libuev/ +F: package/mg/ +F: package/mini-snmpd/ +F: package/mrouted/ +F: package/netcalc/ +F: package/pimd/ +F: package/redir/ +F: package/smcroute/ +F: package/ssdp-responder/ +F: package/sysklogd/ +F: package/uredir/ +F: package/watchdogd/ + +N: Jochen Baltes +F: package/altera-stapl + +N: Joel Carlson +F: package/c-capnproto/ +F: package/capnproto/ +F: package/cmocka/ +F: package/flatcc/ +F: package/libcorrect/ + +N: Joel Stanley +F: package/pdbg/ +F: board/qemu/ppc64le-pseries/ +F: configs/qemu_ppc64le_pseries_defconfig +F: board/qemu/ppc-mac99/ +F: configs/qemu_ppc_mac99_defconfig +F: board/aspeed/ +F: configs/aspeed* + +N: Johan Derycke +F: package/python-libconfig/ + +N: Johan Oudinet +F: package/ejabberd/ +F: package/erlang-base64url/ +F: package/erlang-eimp/ +F: package/erlang-goldrush/ +F: package/erlang-idna/ +F: package/erlang-jiffy/ +F: package/erlang-jose/ +F: package/erlang-lager/ +F: package/erlang-p1-acme/ +F: package/erlang-p1-cache-tab/ +F: package/erlang-p1-mqtree/ +F: package/erlang-p1-oauth2/ +F: package/erlang-p1-pkix/ +F: package/erlang-p1-sip/ +F: package/erlang-p1-stringprep/ +F: package/erlang-p1-stun/ +F: package/erlang-p1-tls/ +F: package/erlang-p1-utils/ +F: package/erlang-p1-xml/ +F: package/erlang-p1-xmpp/ +F: package/erlang-p1-yaml/ +F: package/erlang-p1-yconf/ +F: package/erlang-p1-zlib/ +F: package/nginx-dav-ext/ +F: package/vis-network/ +F: package/vuejs/ + +N: John Stile +F: package/dhcpcd/ + +N: John Faith +F: package/python-inflection/ +F: package/sdbusplus/ + +N: Jonathan Ben Avraham +F: arch/Config.in.xtensa +F: package/autofs/ +F: package/dawgdic/ +F: package/libphidget/ +F: package/phidgetwebservice/ +F: package/rapidxml/ +F: package/sphinxbase/ + +N: Joris Offouga +F: package/python-colorlog/ +F: package/python-simplelogging/ + +N: Jörg Krause +F: board/lemaker/bananapro/ +F: configs/bananapro_defconfig +F: package/augeas/ +F: package/bluez-alsa/ +F: package/caps/ +F: package/freescale-imx/imx-alsa-plugins/ +F: package/libopusenc/ +F: package/libupnpp/ +F: package/luv/ +F: package/luvi/ +F: package/mpd/ +F: package/shairport-sync/ +F: package/swupdate/ +F: package/upmpdcli/ +F: package/wavemon/ + +N: Joris Lijssens +F: package/emlog/ +F: package/libcoap/ +F: package/libnet/ +F: package/libuio/ +F: package/netsniff-ng/ +F: package/rabbitmq-c/ + +N: José Luis Salvador Rufo +F: package/zfs/ +F: support/testing/tests/package/test_zfs.py + +N: José Pekkarinen +F: package/alfred/ +F: package/avocado/ +F: package/bmx7/ +F: package/opensc/ +F: package/python-aexpect/ +F: package/python-alembic/ +F: package/python-lark/ +F: package/softhsm2/ +F: support/testing/tests/package/sample_python_aexpect.py +F: support/testing/tests/package/test_avocado.py +F: support/testing/tests/package/test_python_aexpect.py + +N: Joseph Kogut +F: package/at-spi2-atk/ +F: package/at-spi2-core/ +F: package/clang/ +F: package/earlyoom/ +F: package/gconf/ +F: package/libnss/ +F: package/lld/ +F: package/llvm/ +F: package/python-cython/ +F: package/python-pycups/ +F: package/python-raven/ +F: package/python-schedule/ +F: package/python-sentry-sdk/ +F: package/python-websockets/ +F: package/python-xlib/ +F: package/sentry-cli/ +F: package/sentry-native/ +F: package/unclutter-xfixes/ + +N: Joshua Henderson +F: package/qt5/qt5wayland/ + +N: Jugurtha BELKALEM +F: package/python-aiofiles/ +F: package/python-crayons/ +F: package/python-cycler/ +F: package/python-matplotlib/ +F: package/python-opcua-asyncio/ +F: package/python-piexif/ + +N: Juha Rantanen +F: package/acsccid/ + +N: Julian Scheel +F: package/bitstream/ +F: package/cbootimage/ +F: package/cryptopp/ +F: package/dvblast/ +F: package/tegrarcm/ + +N: Julien Boibessot +F: board/armadeus/ +F: configs/armadeus* +F: package/abootimg/ +F: package/gpm/ +F: package/lbreakout2/ +F: package/libcddb/ +F: package/libmodbus/ +F: package/ltris/ +F: package/opentyrian/ +F: package/python-pygame/ + +N: Julien Corjon +F: package/qt5/ + +N: Julien Grossholtz +F: board/raspberrypi/ +F: board/technologic/ts7680/ +F: configs/raspberrypizero2w_defconfig +F: configs/ts7680_defconfig +F: package/paho-mqtt-c + +N: Julien Olivain +F: board/qmtech/zynq/ +F: board/spike/ +F: board/technexion/imx8mmpico/ +F: board/technexion/imx8mpico/ +F: configs/imx8mmpico_defconfig +F: configs/imx8mpico_defconfig +F: configs/spike_riscv64_defconfig +F: configs/zynq_qmtech_defconfig +F: package/fluid-soundfont/ +F: package/fluidsynth/ +F: package/glslsandbox-player/ +F: package/octave/ +F: package/ola/ +F: package/ptm2human/ +F: package/python-distro/ +F: package/python-gnupg/ +F: package/python-pyalsa/ +F: package/riscv-isa-sim/ +F: package/zynaddsubfx/ +F: support/testing/tests/package/sample_python_distro.py +F: support/testing/tests/package/sample_python_gnupg.py +F: support/testing/tests/package/sample_python_pyalsa.py +F: support/testing/tests/package/test_octave.py +F: support/testing/tests/package/test_ola.py +F: support/testing/tests/package/test_ola/ +F: support/testing/tests/package/test_python_distro.py +F: support/testing/tests/package/test_python_gnupg.py +F: support/testing/tests/package/test_python_pyalsa.py + +N: Julien Viard de Galbert +F: package/dieharder/ +F: package/easy-rsa/ + +N: Justin Maggard +F: package/dtach/ + +N: Kamel Bouhara +F: package/libodb-boost/ +F: package/libodb-mysql/ +F: package/libqb/ +F: package/usbguard/ + +N: Karoly Kasza +F: package/irqbalance/ +F: package/openvmtools/ + +N: Kelvin Cheung +F: package/cpuload/ +F: package/bwm-ng/ +F: package/ramsmp/ + +N: Kieran Bingham +F: package/libcamera/ + +N: Klaus Heinrich Kiwi +F: package/wqy-zenhei/ + +N: Koen Martens +F: package/capnproto/ +F: package/linuxconsoletools/ + +N: Kory Maincent +F: board/octavo/osd32mp1-brk/ +F: board/octavo/osd32mp1-red/ +F: configs/octavo_osd32mp1_brk_defconfig +F: configs/octavo_osd32mp1_red_defconfig + +N: Kris Bahnsen +F: package/wilc-firmware/ +F: package/wilc-driver/ + +N: Kurt Van Dijck +F: package/bcusdk/ +F: package/libpthsem/ +F: package/nilfs-utils/ + +N: Laurent Cans +F: package/aircrack-ng/ + +N: Laurent Charpentier +F: package/open-lldp/ + +N: Lee Jones +F: boot/afboot-stm32/ + +N: Leon Anavi +F: board/olimex/a10_olinuxino +F: configs/olimex_a10_olinuxino_lime_defconfig + +N: Leonid Yuriev +F: package/libmdbx/ + +N: Lionel Flandrin +F: package/python-babel/ +F: package/python-daemonize/ +F: package/python-flask/ +F: package/python-flask-babel/ +F: package/python-gunicorn/ +F: support/testing/tests/package/sample_python_flask.py +F: support/testing/tests/package/test_python_flask.py + +N: Lionel Orry +F: package/mongrel2/ + +N: Lothar Felten +F: board/bananapi/bananapi-m2-ultra/ +F: board/beaglebone/ +F: configs/bananapi_m2_ultra_defconfig +F: configs/beaglebone_defconfig +F: configs/beaglebone_qt5_defconfig +F: package/ti-sgx-demos/ +F: package/ti-sgx-km/ +F: package/ti-sgx-um/ + +N: Louis Aussedat +F: board/friendlyarm/nanopi-neo-plus2/ +F: configs/friendlyarm_nanopi_neo_plus2_defconfig +F: package/mfoc +F: package/libpam-nfc +F: package/python-dnspython/ +F: package/python-future/ +F: package/python-huepy/ +F: package/python-tqdm/ +F: package/rtl8189es/ + +N: Louis-Paul Cordier +F: package/intel-gmmlib/ +F: package/intel-mediadriver/ +F: package/intel-mediasdk/ + +N: Luca Ceresoli +F: board/olimex/a20_olinuxino/ +F: board/zynq/ +F: board/zynqmp/ +F: configs/olimex_a20_olinuxino_* +F: configs/zynq_microzed_defconfig +F: configs/zynq_zed_defconfig +F: configs/zynq_zc706_defconfig +F: configs/zynqmp_zcu106_defconfig +F: package/agentpp/ +F: package/exim/ +F: package/libpjsip/ +F: package/qpid-proton/ +F: package/rtl8188eu/ +F: package/snmppp/ +F: package/stm32flash/ +F: package/unzip/ +F: support/legal-info/ + +N: Lucas De Marchi +F: package/fswebcam/ + +N: Lubomir Rintel +F: board/olpc/ +F: configs/olpc_xo1_defconfig +F: configs/olpc_xo175_defconfig + +N: Ludovic Desroches +F: board/atmel/ +F: board/microchip/ +F: configs/at91* +F: configs/atmel_* +F: configs/microchip_* +F: package/fb-test-app/ +F: package/python-json-schema-validator/ +F: package/python-keyring/ +F: package/python-simplejson/ +F: package/python-versiontools/ +F: package/wilc-firmware/ + +N: Maeva Manuel +F: board/freescale/imx8qmmek/ +F: configs/freescale_imx8qmmek_defconfig +F: package/freescale-imx/imx-seco/ + +N: Mahyar Koshkouei +F: package/ffmpeg/ +F: package/mpv/ +F: package/rpi-firmware/ +F: package/rpi-userland/ + +N: Marcin Bis +F: package/bluez5_utils/ +F: package/cc-tool/ +F: package/ecryptfs-utils/ + +N: Marcin Niestroj +F: board/grinn/ +F: board/orangepi/orangepi-zero-plus/ +F: configs/grinn_* +F: configs/orangepi_zero_plus_defconfig +F: package/argparse/ +F: package/dt-utils/ +F: package/easydbus/ +F: package/gitlab-runner/ +F: package/lua-flu/ +F: package/lua-stdlib/ +F: package/luaossl/ +F: package/murata-cyw-fw/ +F: package/netdata/ +F: package/python-ansicolors/ +F: package/python-bleak/ +F: package/python-dbus-next/ +F: package/python-iniconfig/ +F: package/python-intelhex/ +F: package/python-packaging/ +F: package/python-pluggy/ +F: package/python-pytest/ +F: package/python-pytest-asyncio/ +F: package/python-typing-extensions/ +F: package/python-xmodem/ +F: package/rs485conf/ +F: package/turbolua/ +F: support/testing/tests/package/sample_python_dbus_next.py +F: support/testing/tests/package/sample_python_pytest.py +F: support/testing/tests/package/sample_python_pytest_asyncio.py +F: support/testing/tests/package/test_netdata.py +F: support/testing/tests/package/test_python_dbus_next.py +F: support/testing/tests/package/test_python_pytest.py +F: support/testing/tests/package/test_python_pytest_asyncio.py + +N: Marcus Folkesson +F: package/libostree/ +F: package/libselinux/ +F: package/libsemanage/ +F: package/libsepol/ +F: package/selinux-python/ +F: utils/config +F: utils/diffconfig + +N: Marek Belisko +F: board/friendlyarm/nanopi-neo4/ +F: configs/friendlyarm_nanopi_neo4_defconfig +F: package/libatasmart/ +F: package/polkit/ +F: package/sg3_utils/ +F: package/udisks/ + +N: Mario Lang +F: package/brltty/ +F: package/lynx/ + +N: Mario Rugiero +F: package/ratpoison/ + +N: Mark Corbin +F: arch/arch.mk.riscv +F: arch/Config.in.riscv +F: board/qemu/riscv32-virt/ +F: board/qemu/riscv64-virt/ +F: configs/qemu_riscv32_virt_defconfig +F: configs/qemu_riscv64_virt_defconfig + +N: Martin Bark +F: board/raspberrypi/ +F: configs/raspberrypi3_defconfig +F: package/brcmfmac_sdio-firmware-rpi/ +F: package/ca-certificates/ +F: package/connman/ +F: package/nodejs/ +F: package/rpi-firmware/ +F: package/tzdata/ +F: package/zic/ + +N: Martin Kepplinger +F: package/tslib/ +F: package/x11r7/xdriver_xf86-input-tslib/ +F: package/x11vnc/ + +N: Martin PoviÅ¡er +F: package/python-construct/ +F: support/testing/tests/package/sample_python_construct.py +F: support/testing/tests/package/test_python_construct.py + +N: Masahiro Yamada +F: board/arm/foundation-v8/ +F: configs/arm_foundationv8_defconfig + +N: Mathieu Audat +F: board/technologic/ts4900/ +F: configs/ts4900_defconfig +F: package/ts4900-fpga/ + +N: Matt Weber +F: board/freescale/p* +F: board/freescale/t* +F: board/qemu/ppc64-e5500/ +F: configs/freescale_p* +F: configs/freescale_t* +F: configs/qemu_ppc64_e5500_defconfig +F: package/ace/ +F: package/argp-standalone/ +F: package/aufs/ +F: package/aufs-util/ +F: package/bc/ +F: package/bridge-utils/ +F: package/checkpolicy/ +F: package/checksec/ +F: package/cgroupfs-mount/ +F: package/compiler-rt/ +F: package/crda/ +F: package/cunit/ +F: package/dacapo/ +F: package/davici/ +F: package/dnsmasq/ +F: package/dosfstools/ +F: package/eigen/ +F: package/ethtool/ +F: package/flashbench/ +F: package/fmc/ +F: package/fmlib/ +F: package/freeradius-server/ +F: package/git/ +F: package/gnutls/ +F: package/hostapd/ +F: package/i2c-tools/ +F: package/ifplugd/ +F: package/igmpproxy/ +F: package/iperf/ +F: package/iperf3/ +F: package/iputils/ +F: package/iw/ +F: package/jitterentropy-library/ +F: package/kvm-unit-tests/ +F: package/kvmtool/ +F: package/libcsv/ +F: package/libcurl/ +F: package/libeastl/ +F: package/libfcgi/ +F: package/libopenssl/ +F: package/libselinux/ +F: package/libsemanage/ +F: package/libsepol/ +F: package/libssh2/ +F: package/libtalloc/ +F: package/libqmi/ +F: package/lighttpd/ +F: package/logrotate/ +F: package/makedevs/ +F: package/memtester/ +F: package/mii-diag/ +F: package/mrouted/ +F: package/mtd/ +F: package/mtools/ +F: package/nginx-upload/ +F: package/omniorb/ +F: package/openresolv/ +F: package/paxtest/ +F: package/picocom/ +F: package/policycoreutils/ +F: package/proftpd/ +F: package/protobuf-c/ +F: package/protobuf/ +F: package/python-bunch/ +F: package/python-colorama/ +F: package/python-filelock/ +F: package/python-flask-cors/ +F: package/python-iptables/ +F: package/python-ipy/ +F: package/python-iwlib/ +F: package/python-posix-ipc/ +F: package/python-pycairo/ +F: package/python-pysftp/ +F: package/python-tinyrpc/ +F: package/python-txdbus/ +F: package/qoriq-rcw/ +F: package/raptor/ +F: package/rng-tools/ +F: package/rsyslog/ +F: package/setools/ +F: package/sloci-image/ +F: package/smcroute/ +F: package/tclap/ +F: package/tini/ +F: package/uboot-tools/ +F: package/unionfs/ +F: package/valijson/ +F: package/wpa_supplicant/ +F: package/wireless_tools/ +F: package/xen/ +F: package/xml-security-c/ +F: support/testing/tests/fs/test_oci.py +F: support/testing/tests/package/br2-external/clang-compiler-rt/ +F: support/testing/tests/package/br2-external/openjdk/ +F: support/testing/tests/package/test_clang.py +F: support/testing/tests/package/test_openjdk.py +F: support/testing/tests/package/test_opkg/ +F: support/testing/tests/package/test_opkg.py + +N: Mauro Condarelli +F: package/mc/ +F: package/python-autobahn/ +F: package/python-cbor/ +F: package/python-characteristic/ +F: package/python-click/ +F: package/python-crossbar/ +F: package/python-lmdb/ +F: package/python-mistune/ +F: package/python-netaddr/ +F: package/python-pygments/ +F: package/python-pynacl/ +F: package/python-pytrie/ +F: package/python-service-identity/ +F: package/python-setproctitle/ +F: package/python-shutilwhich/ +F: package/python-treq/ +F: package/python-txaio/ +F: package/python-ujson/ +F: package/python-wsaccel/ + +N: Max Filippov +F: arch/Config.in.xtensa + +N: Maxim Kochetkov +F: package/libgeos/ +F: package/libosmium/ +F: package/osm2pgsql/ +F: package/postgis/ +F: package/protozero/ +F: package/timescaledb/ + +N: Michael Durrant +F: board/arcturus/ +F: configs/arcturus_ucp1020_defconfig +F: configs/arcturus_ucls1012a_defconfig + +N: Michael Fischer +F: package/gnuplot/ +F: package/sdl2/ + +N: Michael Nosthoff +F: package/grpc/ +F: package/gtest/ +F: package/libabseil-cpp/ +F: package/networkd-dispatcher/ +F: package/protobuf/ +F: package/re2/ + +N: Michael Rommel +F: package/knock/ +F: package/python-crc16/ +F: package/python-pyzmq/ + +N: Michael Trimarchi +F: package/python-spidev/ + +N: Michael Vetter +F: package/jasper/ +F: package/libstrophe/ + +N: Michael Walle +F: board/kontron/smarc-sal28/ +F: configs/kontron_smarc_sal28_defconfig +F: package/libavl/ +F: package/rcw-smarc-sal28/ + +N: MichaÅ‚ Åyszczek +F: board/altera/socrates_cyclone5/ +F: board/pine64/rock64 +F: configs/rock64_defconfig +F: configs/socrates_cyclone5_defconfig +F: package/netifrc/ +F: package/openrc/ +F: package/skeleton-init-openrc/ + +N: Michel Stempin +F: board/licheepi/ +F: configs/licheepi_zero_defconfig + +N: Mike Frampton +F: package/qcom-db410c-firmware/ + +N: Mike Harmony +F: board/sinovoip/m2-plus/ +F: configs/bananapi_m2_plus_defconfig + +N: Mikhail Boiko +F: package/libfribidi/ + +N: Miquèl Raynal +F: package/mali-driver/ +F: package/rockchip-mali/ + +N: Mircea Gliga +F: package/mbuffer/ + +N: Murat Demirten +F: package/jpeg-turbo/ +F: package/libgeotiff/ + +N: Nathaniel Roach +F: package/bandwidthd/ +F: package/libgudev/ + +N: Naumann Andreas +F: package/evemu/ +F: package/libevdev/ +F: package/pkg-qmake.mk +F: package/qt5/qt5opcua/ + +N: Neal Frager +F: board/zynq/ +F: board/zynqmp/ +F: board/zynqmp/kria/ +F: configs/zynq_zc706_defconfig +F: configs/zynqmp_zcu102_defconfig +F: configs/zynqmp_zcu106_defconfig +F: configs/zynqmp_kria_kv260_defconfig + +N: Nicola Di Lieto +F: package/uacme/ + +N: Nicholas Sielicki +F: board/intel/galileo/ +F: configs/galileo_defconfig + +N: Nicolas Carrier +F: package/bmap-tools/ +F: package/libdbi/ +F: package/libdbi-drivers/ +F: package/lua-augeas/ +F: package/modsecurity2/ +F: package/php-apcu/ +F: package/php-lua/ +F: package/php-pam/ +F: package/php-pecl-dbus/ +F: package/php-xdebug/ +F: package/python-augeas/ +F: package/python-flask-expects-json/ +F: package/python-git/ +F: package/python-unittest-xml-reporting/ +F: support/testing/tests/package/sample_bmap_tools.sh +F: support/testing/tests/package/sample_python_augeas.py +F: support/testing/tests/package/sample_python_flask_expects_json.py +F: support/testing/tests/package/sample_python_git.py +F: support/testing/tests/package/sample_python_unittest_xml_reporting.py +F: support/testing/tests/package/test_bmap_tools.py +F: support/testing/tests/package/test_lua_augeas.py +F: support/testing/tests/package/test_php_apcu.py +F: support/testing/tests/package/test_php_pecl_dbus.py +F: support/testing/tests/package/test_php_lua.py +F: support/testing/tests/package/test_php_pam.py +F: support/testing/tests/package/test_python_augeas.py +F: support/testing/tests/package/test_python_flask_expects_json.py +F: support/testing/tests/package/test_python_git.py +F: support/testing/tests/package/test_python_unittest_xml_reporting.py + +N: Nicolas Cavallari +F: package/libgit2/ + +N: Nicolas Serafini +F: package/exiv2/ +F: package/ofono/ + +N: Nicolas Tran +F: package/dust/ +F: package/hyperfine/ + +N: Niklas Cassel +F: configs/qemu_riscv64_nommu_virt_defconfig + +N: Nikolay Dimitrov +F: board/embest/riotboard/ +F: configs/riotboard_defconfig + +N: Nimai Mahajan +F: package/libucl/ + +N: Noé Rubinstein +F: package/tpm-tools/ +F: package/trousers/ + +N: Norbert Lange +F: package/dbus-broker/ +F: package/systemd/ +F: package/tcf-agent/ + +N: Yu Chien Peter Lin +F: board/andes +F: configs/andes_ae350_45_defconfig + +N: Olaf Rempel +F: package/ctorrent/ + +N: Oleksandr Zhadan +F: board/arcturus/ +F: configs/arcturus_ucp1020_defconfig +F: configs/arcturus_ucls1012a_defconfig + +N: Oli Vogt +F: package/python-django/ +F: package/python-flup/ + +N: Olivier Matz +F: package/python-pyelftools/ + +N: Olivier Schonken +F: package/cups/ +F: package/cups-filters/ +F: package/ijs/ +F: package/poppler/ +F: package/qpdf/ +F: package/openjpeg/ + +N: Olivier Singla +F: package/shellinabox/ + +N: Parnell Springmeyer +F: package/scrypt/ + +N: Pascal de Bruijn +F: package/libargon2/ +F: package/linux-tools/S10hyperv +F: package/linux-tools/hyperv*.service +F: package/linux-tools/linux-tool-hv.mk.in + +N: Pascal Huerst +F: package/google-breakpad/ + +N: Patrick Gerber +F: package/yavta/ + +N: Patrick Havelange +F: support/testing/tests/package/test_lxc.py +F: support/testing/tests/package/test_lxc/ + +N: Paul Cercueil +F: package/libiio/ +F: package/lightning/ +F: package/umtprd/ + +N: Pedro Aguilar +F: package/bdwgc/ +F: package/guile/ +F: package/libunistring/ + +N: Peter Korsgaard +F: board/arrow/avenger96/ +F: board/beagleboneai/ +F: board/minnowboard/ +F: board/nezha/ +F: board/librecomputer/lafrite/ +F: board/nexbox/a95x/ +F: board/openblocks/a6/ +F: board/orangepi/ +F: board/pandaboard/ +F: board/roseapplepi/ +F: boot/shim/ +F: boot/sun20i-d1-spl/ +F: configs/avenger96_defconfig +F: configs/beagleboneai_defconfig +F: configs/lafrite_defconfig +F: configs/minnowboard_max_defconfig +F: configs/nexbox_a95x_defconfig +F: configs/nezha_defconfig +F: configs/openblocks_a6_defconfig +F: configs/orangepi_pc_defconfig +F: configs/orangepi_r1_defconfig +F: configs/pandaboard_defconfig +F: configs/roseapplepi_defconfig +F: configs/sheevaplug_defconfig +F: package/bats-core/ +F: package/docker-compose/ +F: package/dump1090/ +F: package/fatcat/ +F: package/flickcurl/ +F: package/fscryptctl/ +F: package/ifmetric/ +F: package/jo/ +F: package/jose/ +F: package/libfastjson/ +F: package/luksmeta/ +F: package/lzop/ +F: package/memtool/ +F: package/mosquitto/ +F: package/python-alsaaudio/ +F: package/python-cached-property/ +F: package/python-docker/ +F: package/python-dockerpty/ +F: package/python-docker-pycreds/ +F: package/python-psutil/ +F: package/python-request-id/ +F: package/python-semver/ +F: package/python-texttable/ +F: package/python-validators/ +F: package/python-webob/ +F: package/python-websocket-client/ +F: package/sedutil/ +F: package/tpm2-totp/ +F: package/triggerhappy/ +F: package/wireguard-linux-compat/ +F: package/wireguard-tools/ +F: support/testing/tests/package/test_docker_compose.py + +N: Peter Thompson +F: package/sdl2_gfx/ +F: package/sdl2_image/ +F: package/sdl2_ttf/ + +N: Petr Kulhavy +F: package/linuxptp/ + +N: Petr Vorel +F: package/ima-evm-utils/ +F: package/iproute2/ +F: package/iputils/ +F: package/libqrtr-glib/ +F: package/libtirpc/ +F: package/linux-backports/ +F: package/ltp-testsuite/ +F: package/nfs-utils/ +F: package/rpcbind/ +F: support/kconfig/ + +N: Phil Eichinger +F: package/libqrencode/ +F: package/psplash/ +F: package/sispmctl/ +F: package/zsh/ + +N: Philipp Richter +F: package/libtorrent-rasterbar/ + +N: Philippe Proulx +F: package/babeltrace2/ +F: package/lttng-babeltrace/ +F: package/lttng-libust/ +F: package/lttng-modules/ +F: package/lttng-tools/ +F: package/python-ipython/ +F: package/liburcu/ + +N: Philippe Reynes +F: package/ibm-sw-tpm2/ + +N: Pierre Crokaert +F: board/hardkernel/odroidxu4/ +F: configs/odroidxu4_defconfig + +N: Pierre Ducroquet +F: package/kf5/ + +N: Pierre Floury +F: package/trace-cmd/ + +N: Pierre-Jean Texier +F: package/fping/ +F: package/genimage/ +F: package/haveged/ +F: package/ipset/ +F: package/libarchive/ +F: package/libevent/ +F: package/libubootenv/ +F: package/libxml2/ +F: package/mongoose/ +F: package/mxml/ +F: package/numactl/ +F: package/python-modbus-tk/ +F: package/python-periphery/ +F: package/raspi-gpio/ +F: package/sbc/ +F: package/stunnel/ +F: package/tree/ + +N: Pieter De Gendt +F: package/libvips/ + +N: Pieterjan Camerlynck +F: package/libdvbpsi/ +F: package/mraa/ +F: package/synergy/ + +N: Rafal Susz +F: board/avnet/s6lx9_microboard/ +F: configs/s6lx9_microboard_defconfig + +N: RafaÅ‚ MiÅ‚ecki +F: board/broadcom/northstar/ +F: configs/broadcom_northstar_defconfig +F: package/firmware-utils/ + +N: Rahul Bedarkar +F: package/cxxtest/ +F: package/gflags/ +F: package/glog/ +F: package/gssdp/ +F: package/gupnp/ +F: package/gupnp-av/ +F: package/let-me-create/ +F: package/nanomsg/ + +N: Ramon Fried +F: package/bitwise/ + +N: Raphaël Mélotte +F: package/gumbo-parser/ +F: package/jbig2dec/ +F: package/mupdf/ +F: package/python-boto3/ +F: package/python-botocore/ +F: package/python-jmespath/ +F: package/python-pymupdf/ +F: package/python-rsa/ +F: package/python-s3transfer/ +F: support/testing/tests/package/sample_python_jmespath.py +F: support/testing/tests/package/sample_python_rsa.py +F: support/testing/tests/package/sample_python_s3transfer.py +F: support/testing/tests/package/test_python_jmespath.py +F: support/testing/tests/package/test_python_rsa.py +F: support/testing/tests/package/test_python_s3transfer.py + +N: Refik Tuzakli +F: package/freescale-imx/ +F: package/paho-mqtt-cpp/ + +N: Rémi Rérolle +F: package/libfreeimage/ + +N: Renaud Aubin +F: package/libhttpparser/ + +N: Ricardo Martincoski +F: .flake8 +F: .shellcheckrc +F: package/atop/ +F: package/thermald/ +F: support/testing/infra/ +F: support/testing/run-tests +F: support/testing/tests/package/test_atop.py +F: support/testing/tests/utils/test_check_package.py +F: utils/check-package +F: utils/checkpackagelib/ +F: utils/docker-run + +N: Richard Braun +F: package/curlftpfs/ +F: package/tzdata/ + +N: RJ Ascani +F: package/azmq/ + +N: Robert Rose +F: package/grpc/ + +N: Rodrigo Rebello +F: package/chocolate-doom/ +F: package/irssi/ +F: package/vnstat/ + +N: Romain Naour +F: board/qemu/ +F: configs/qemu_* +F: package/alure/ +F: package/aubio/ +F: package/binutils/ +F: package/bullet/ +F: package/clang/ +F: package/clinfo/ +F: package/efl/ +F: package/enet/ +F: package/enlightenment/ +F: package/flare-engine/ +F: package/flare-game/ +F: package/gcc/ +F: package/gitlab-runner/ +F: package/glibc/ +F: package/irrlicht/ +F: package/liblinear/ +F: package/lensfun/ +F: package/libbpf/ +F: package/libclc/ +F: package/libgta/ +F: package/libiec61850/ +F: package/libspatialindex/ +F: package/linux-syscall-support/ +F: package/llvm/ +F: package/lugaru/ +F: package/mcelog/ +F: package/mesa3d/ +F: package/minetest/ +F: package/minetest-game/ +F: package/ogre/ +F: package/openpowerlink/ +F: package/physfs/ +F: package/piglit/ +F: package/qemu/ +F: package/solarus/ +F: package/stress-ng/ +F: package/supertux/ +F: package/supertuxkart/ +F: package/terminology/ +F: package/tk/ +F: package/upower/ +F: package/waffle/ +F: package/xenomai/ +F: package/zziplib/ +F: support/testing/tests/package/test_glxinfo.py +F: support/testing/tests/package/test_openssh.py +F: toolchain/ + +N: Ryan Wilkins +F: package/biosdevname/ + +N: Sam Lancia +F: package/lrzip/ + +N: Samuel Martin +F: package/armadillo/ +F: package/cwiid/ +F: package/flite/ +F: package/nginx/ +F: package/opencv3/ +F: package/openobex/ +F: package/pkg-cmake.mk +F: package/python-numpy/ +F: package/scrub/ +F: package/urg/ +F: package/ussp-push/ +F: support/misc/toolchainfile.cmake.in + +N: Sam Voss +F: package/ripgrep/ + +N: Sébastien Szymanski +F: package/mmc-utils/ +F: package/python-flask-jsonrpc/ +F: package/python-flask-login/ +F: package/qt5/qt5charts/ + +N: Semyon Kolganov +F: package/fmt/ +F: package/libbson/ +F: package/lua-resty-http/ +F: package/mpir/ + +N: Sen Hastings +F: package/systemd +F: support/scripts/pkg-stats + +N: Sergey Bobrenok +F: package/sdbus-cpp/ + +N: Sergey Matyukevich +F: boot/arm-trusted-firmware/ +F: board/linksprite/pcduino +F: board/orangepi/orangepi-zero +F: board/orangepi/orangepi-one +F: board/orangepi/orangepi-pc-plus/ +F: board/orangepi/orangepi-zero-plus2/ +F: configs/linksprite_pcduino_defconfig +F: configs/orangepi_one_defconfig +F: configs/orangepi_pc_plus_defconfig +F: configs/orangepi_zero_defconfig +F: configs/orangepi_zero_plus2_defconfig +F: package/armbian-firmware/ +F: package/hostapd/ +F: package/rtl8189fs/ +F: package/wpa_supplicant/ +F: package/xr819-xradio/ + +N: Sergio Prado +F: board/toradex/apalis-imx6/ +F: configs/toradex_apalis_imx6_defconfig +F: package/aoetools/ +F: package/asn1c/ +F: package/azure-iot-sdk-c/ +F: package/curlpp/ +F: package/daq/ +F: package/libgdiplus/ +F: package/pimd/ +F: package/sloci-image/ +F: package/snort/ +F: package/stella/ +F: package/tio/ +F: package/traceroute/ +F: package/tunctl/ +F: package/ubus/ +F: package/wolfssl/ + +N: Shyam Saini +F: package/cukinia/ + +N: Simon Dawson +F: boot/at91bootstrap3/ +F: package/cppzmq/ +F: package/czmq/ +F: package/filemq/ +F: package/googlefontdirectory/ +F: package/jansson/ +F: package/jquery-ui/ +F: package/jquery-ui-themes/ +F: package/json-javascript/ +F: package/lcdapi/ +F: package/libfreefare/ +F: package/libjson/ +F: package/libnfc/ +F: package/libnfc/ +F: package/libserial/ +F: package/libsigsegv/ +F: package/macchanger/ +F: package/minicom/ +F: package/minidlna/ +F: package/msgpack/ +F: package/nanocom/ +F: package/neard/ +F: package/neardal/ +F: package/owl-linux/ +F: package/rapidjson/ +F: package/sconeserver/ +F: package/sound-theme-borealis/ +F: package/sound-theme-freedesktop/ +F: package/vlc/ +F: package/xscreensaver/ +F: package/zmqpp/ +F: package/zyre/ + +N: Simon Doppler +F: board/seeed/ +F: configs/stm32mp157c_odyssey_defconfig + +N: Spenser Gilliland +F: arch/Config.in.microblaze +F: package/a10disp/ +F: package/glmark2/ +F: package/libvpx/ +F: package/mesa3d-demos/ +F: package/ti-gfx/ + +N: Stefan Ott +F: package/unbound/ + +N: Stefan Sørensen +F: package/cracklib/ +F: package/libpwquality/ +F: package/libscrypt/ + +N: Stephan Hoffmann +F: package/cache-calibrator/ +F: package/gtest/ +F: package/libhttpserver/ +F: package/mtdev/ + +N: Stephane Viau +F: board/freescale/imx8mnevk/ +F: board/freescale/imx8mpevk/ +F: configs/freescale_imx8mnevk_defconfig +F: configs/freescale_imx8mpevk_defconfig + +N: Steve Calfee +F: package/python-pymysql/ +F: package/python-pyratemp/ + +N: Steve James +F: package/leveldb/ +F: package/libcli/ + +N: Steve Kenton +F: package/dvdauthor/ +F: package/dvdrw-tools/ +F: package/memtest86/ +F: package/mjpegtools/ +F: package/tovid/ +F: package/udftools/ +F: package/xorriso/ + +N: Steven Noonan +F: package/hwloc/ +F: package/powertop/ + +N: Suniel Mahesh +F: board/firefly/ +F: board/friendlyarm/nanopc-t4 +F: board/friendlyarm/nanopi-m4 +F: board/orangepi/orangepi-rk3399 +F: board/pine64/rockpro64 +F: board/radxa/rockpi-4 +F: board/radxa/rockpi-n8 +F: board/radxa/rockpi-n10 +F: configs/friendlyarm_nanopc_t4_defconfig +F: configs/friendlyarm_nanopi_m4_defconfig +F: configs/orangepi_rk3399_defconfig +F: configs/roc_pc_rk3399_defconfig +F: configs/rock_pi_4_defconfig +F: configs/rock_pi_n8_defconfig +F: configs/rock_pi_n10_defconfig +F: configs/rockpro64_defconfig +F: package/arm-gnu-toolchain/ + +N: Sven Haardiek +F: package/lcdproc/ +F: package/python-influxdb/ + +N: Sven Oliver Moll +F: package/most/ + +N: Theo Debrouwere +F: board/beagleboardx15/ +F: configs/beagleboardx15_defconfig +F: package/pugixml/ + +N: Thierry Bultel +F: package/mpd-mpc/ + +N: Thijs Vermeir +F: package/ranger/ +F: package/x265/ + +N: Thomas Claveirole +F: package/fcgiwrap/ +F: package/openlayers/ +F: package/vuejs-router/ + +N: Thomas De Schampheleire +F: docs/manual/ +F: package/cereal/ +F: package/chartjs/ +F: package/datatables/ +F: package/datatables-buttons/ +F: package/datatables-fixedcolumns/ +F: package/datatables-responsive/ +F: package/jszip/ +F: package/libtelnet/ +F: package/opkg-utils/ +F: package/perl-convert-asn1/ +F: package/perl-crypt-blowfish/ +F: package/perl-crypt-cbc/ +F: package/perl-crypt-openssl-aes/ +F: package/perl-devel-cycle/ +F: package/perl-devel-size/ +F: package/perl-i18n/ +F: package/perl-locale-maketext-lexicon/ +F: package/perl-lwp-protocol-https/ +F: package/perl-math-int64/ +F: package/perl-math-prime-util/ +F: package/perl-mime-base64-urlsafe/ +F: package/perl-mojolicious-plugin-authentication/ +F: package/perl-mojolicious-plugin-authorization/ +F: package/perl-mojolicious-plugin-cspheader/ +F: package/perl-mojolicious-plugin-i18n/ +F: package/perl-mojolicious-plugin-securityheader/ +F: package/perl-mozilla-ca/ +F: package/perl-net-snmp/ +F: package/perl-net-ssh2/ +F: package/perl-net-telnet/ +F: package/perl-path-class/ +F: package/pigz/ +F: package/popperjs/ +F: package/xenomai/ +F: support/scripts/size-stats +F: support/testing/tests/package/test_perl_lwp_protocol_https.py +F: utils/size-stats-compare +F: toolchain/ + +N: Thomas Huth +F: board/qemu/m68k-mcf5208/ +F: configs/qemu_m68k_mcf5208_defconfig +F: package/ascii-invaders/ +F: package/frotz/ +F: package/kvm-unit-tests/ +F: package/xorcurses/ + +N: Thomas Petazzoni +F: arch/Config.in.arm +F: board/beaglev/ +F: board/stmicroelectronics/stm32mp157c-dk2/ +F: boot/beaglev-ddrinit/ +F: boot/beaglev-secondboot/ +F: boot/boot-wrapper-aarch64/ +F: boot/grub2/ +F: boot/gummiboot/ +F: configs/beaglev_defconfig +F: configs/stm32mp157c_dk2_defconfig +F: package/android-tools/ +F: package/b43-firmware/ +F: package/b43-fwcutter/ +F: package/bmap-tools/ +F: package/c-periphery/ +F: package/cdrkit/ +F: package/cifs-utils/ +F: package/cloop/ +F: package/cmake/ +F: package/cramfs/ +F: package/dmidecode/ +F: package/double-conversion/ +F: package/flashrom/ +F: package/gcc/ +F: package/genext2fs/ +F: package/genromfs/ +F: package/getent/ +F: package/gnu-efi/ +F: package/heirloom-mailx/ +F: package/hiawatha/ +F: package/igh-ethercat/ +F: package/intltool/ +F: package/jh71xx-tools/ +F: package/libb2/ +F: package/libcap/ +F: package/libffi/ +F: package/libsha1/ +F: package/libtirpc/ +F: package/libxkbcommon/ +F: package/libxml-parser-perl/ +F: package/localedef/ +F: package/log4cxx/ +F: package/monit/ +F: package/mpdecimal/ +F: package/msmtp/ +F: package/musl/ +F: package/musl-fts/ +F: package/ne10/ +F: package/pkg-python.mk +F: package/pkg-autotools.mk +F: package/pkg-generic.mk +F: package/python3/ +F: package/python-augeas/ +F: package/python-flask-expects-json/ +F: package/python-git/ +F: package/python-qrcode/ +F: package/python-serial/ +F: package/python-unittest-xml-reporting/ +F: package/qextserialport/ +F: package/qt6/ +F: package/riscv64-elf-toolchain/ +F: package/rpcbind/ +F: package/rt-tests/ +F: package/rtc-tools/ +F: package/sam-ba/ +F: package/scons/ +F: package/squashfs/ +F: package/tinifier/ +F: package/wayland/ +F: package/weston/ +F: support/testing/tests/boot/test_grub.py +F: support/testing/tests/boot/test_grub/ +F: support/testing/tests/boot/test_syslinux.py +F: support/testing/tests/package/sample_python_augeas.py +F: support/testing/tests/package/sample_python_flask.py +F: support/testing/tests/package/sample_python_flask_expects_json.py +F: support/testing/tests/package/sample_python_git.py +F: support/testing/tests/package/sample_python_unittest_xml_reporting.py +F: support/testing/tests/package/test_python_augeas.py +F: support/testing/tests/package/test_python_flask.py +F: support/testing/tests/package/test_python_flask_expects_json.py +F: support/testing/tests/package/test_python_git.py +F: support/testing/tests/package/test_python_unittest_xml_reporting.py +F: toolchain/ + +N: Timo Ketola +F: package/fbgrab/ + +N: Titouan Christophe +F: package/avro-c/ +F: package/mosquitto/ +F: package/python-avro/ +F: package/redis/ +F: package/waf/ +F: support/testing/tests/package/test_crudini.py +F: support/testing/tests/package/test_redis.py + +N: Tudor Holton +F: package/openjdk/ + +N: Tzu-Jung Lee +F: package/dropwatch/ +F: package/tstools/ + +N: Uladzimir Bely +F: package/python-mpd2/ + +N: Vadim Kochan +F: package/brcm-patchram-plus/ +F: package/frr/ +F: package/gettext-tiny/ +F: package/tinyssh/ + +N: Valentin Korenblit +F: package/clang/ +F: package/clinfo/ +F: package/libclc/ +F: package/llvm/ + +N: Vanya Sergeev +F: package/lua-periphery/ + +N: Victor Huesca +F: support/testing/tests/core/test_root_password.py + +N: Vincent Prince +F: package/nss-myhostname/ +F: package/utp_com/ + +N: Vincent Stehlé +F: board/bananapi/bananapi-m2-zero/ +F: configs/bananapi_m2_zero_defconfig +F: configs/uevm5432_defconfig +F: package/i7z/ +F: package/msr-tools/ +F: package/pixz/ +F: package/zerofree/ +F: support/testing/tests/package/test_msr_tools* +F: support/testing/tests/package/test_pixz.py +F: support/testing/tests/package/test_zerofree.py + +N: Vinicius Tinti +F: package/python-thrift/ + +N: Vivien Didelot +F: board/technologic/ts5500/ +F: configs/ts5500_defconfig + +N: Volkov Viacheslav +F: package/v4l2grab/ +F: package/zbar/ + +N: Wade Berrier +F: package/ngrep/ + +N: Waldemar Brodkorb +F: package/mksh/ +F: package/ruby/ +F: package/uclibc/ +F: package/uclibc-ng-test/ + +N: Will Newton +F: package/enchant/ +F: package/erlang/ +F: package/libmicrohttpd/ +F: package/sysprof/ +F: package/time/ + +N: Will Wagner +F: package/yaffs2utils/ + +N: Wojciech M. Zabolotny +F: package/avrdude/ +F: package/jack2/ +F: package/python-msgpack/ +F: package/python-pyusb/ + +N: Wojciech NiziÅ„ski +F: package/fwup/ + +N: Yair Ben Avraham +F: package/casync/ +F: package/gloox/ +F: package/tpm2-pkcs11/ + +N: Yann E. MORIN +F: fs/squashfs/ +F: package/asterisk/ +F: package/cegui/ +F: package/dahdi-linux/ +F: package/dahdi-tools/ +F: package/dbus-broker/ +F: package/dtc/ +F: package/dtv-scan-tables/ +F: package/dvb-apps/ +F: package/freerdp/ +F: package/keyutils/ +F: package/libbsd/ +F: package/libedit/ +F: package/libgsm/ +F: package/libiberty/ +F: package/libinput/ +F: package/libiscsi/ +F: package/libpri/ +F: package/libseccomp/ +F: package/libss7/ +F: package/linux-firmware/ +F: package/linux-tools/ +F: package/matchbox* +F: package/mesa3d-headers/ +F: package/nbd/ +F: package/nut/ +F: package/nvidia-driver/ +F: package/omxplayer/ +F: package/python-pyparsing/ +F: package/pkg-download.mk +F: package/pkg-waf.mk +F: package/slirp/ +F: package/snappy/ +F: package/spice/ +F: package/spice-protocol/ +F: package/systemd/ +F: package/systemd-bootchart/ +F: package/tmux/ +F: package/tvheadend/ +F: package/usbredir/ +F: package/vde2/ +F: package/w_scan/ +F: package/wayland/ +F: package/weston/ +F: package/wtfutil/ +F: package/zisofs-tools/ +F: support/download/ + +N: Yann E. MORIN +F: package/gpsd/ + +N: Yegor Yefremov +F: configs/beaglebone_defconfig +F: configs/beaglebone_qt5_defconfig +F: package/acl/ +F: package/attr/ +F: package/avrdude/ +F: package/boost/ +F: package/bootstrap/ +F: package/cannelloni/ +F: package/can-utils/ +F: package/circus/ +F: package/dhcpcd/ +F: package/feh/ +F: package/giblib/ +F: package/hostapd/ +F: package/imlib2/ +F: package/jquery-datetimepicker/ +F: package/jquery-sidebar/ +F: package/kmod/ +F: package/libftdi1/ +F: package/libical/ +F: package/libmbim/ +F: package/libndp/ +F: package/libnftnl/ +F: package/libqmi/ +F: package/libqrtr-glib/ +F: package/libsoc/ +F: package/libsocketcan/ +F: package/libubox/ +F: package/libuci/ +F: package/linux-firmware/ +F: package/linux-serial-test/ +F: package/modem-manager/ +F: package/nftables/ +F: package/nuttcp/ +F: package/parted/ +F: package/phytool/ +F: package/poco/ +F: package/python* +F: package/ser2net/ +F: package/socketcand/ +F: package/swig/ +F: package/qt5/qt5serialbus/ +F: package/sdparm/ +F: package/ti-utils/ +F: package/wpa_supplicant/ +F: package/x11r7/xapp_xconsole/ +F: package/x11r7/xapp_xinput-calibrator/ +F: package/zlog/ +F: support/testing/tests/package/sample_python_dtschema.py +F: support/testing/tests/package/test_libftdi1.py +F: support/testing/tests/package/test_python_can.py +F: support/testing/tests/package/test_python_dtschema.py +F: utils/scanpypi + +N: Yunhao Tian +F: package/libopenaptx/ + +N: Zoltan Gyarmati +F: package/crudini/ +F: package/grantlee/ +F: package/libusb/ +F: package/libusb-compat/ +F: package/proj/ +F: package/python-iniparse/ +F: package/qjson/ +F: package/quazip/ +F: package/shapelib/ +F: package/simple-mail/ +F: package/tinc/ diff --git a/Makefile b/Makefile new file mode 100644 index 000000000..36896684b --- /dev/null +++ b/Makefile @@ -0,0 +1,1263 @@ +# Makefile for buildroot +# +# Copyright (C) 1999-2005 by Erik Andersen +# Copyright (C) 2006-2014 by the Buildroot developers +# Copyright (C) 2014-2020 by the Buildroot developers +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + +#-------------------------------------------------------------- +# Just run 'make menuconfig', configure stuff, then run 'make'. +# You shouldn't need to mess with anything beyond this point... +#-------------------------------------------------------------- + +# Delete default rules. We don't use them. This saves a bit of time. +.SUFFIXES: + +# we want bash as shell +SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ + else if [ -x /bin/bash ]; then echo /bin/bash; \ + else echo sh; fi; fi) + +# Set O variable if not already done on the command line; +# or avoid confusing packages that can use the O= syntax for out-of-tree +# build by preventing it from being forwarded to sub-make calls. +ifneq ("$(origin O)", "command line") +O := $(CURDIR)/output +endif + +# Check if the current Buildroot execution meets all the pre-requisites. +# If they are not met, Buildroot will actually do its job in a sub-make meeting +# its pre-requisites, which are: +# 1- Permissive enough umask: +# Wrong or too restrictive umask will prevent Buildroot and packages from +# creating files and directories. +# 2- Absolute canonical CWD (i.e. $(CURDIR)): +# Otherwise, some packages will use CWD as-is, others will compute its +# absolute canonical path. This makes harder tracking and fixing host +# machine path leaks. +# 3- Absolute canonical output location (i.e. $(O)): +# For the same reason as the one for CWD. + +# Remove the trailing '/.' from $(O) as it can be added by the makefile wrapper +# installed in the $(O) directory. +# Also remove the trailing '/' the user can set when on the command line. +override O := $(patsubst %/,%,$(patsubst %.,%,$(O))) +# Make sure $(O) actually exists before calling realpath on it; this is to +# avoid empty CANONICAL_O in case on non-existing entry. +CANONICAL_O := $(shell mkdir -p $(O) >/dev/null 2>&1)$(realpath $(O)) + +# gcc fails to build when the srcdir contains a '@' +ifneq ($(findstring @,$(CANONICAL_O)),) +$(error The build directory can not contain a '@') +endif + +CANONICAL_CURDIR = $(realpath $(CURDIR)) + +REQ_UMASK = 0022 + +# Make sure O= is passed (with its absolute canonical path) everywhere the +# toplevel makefile is called back. +EXTRAMAKEARGS := O=$(CANONICAL_O) + +# Check Buildroot execution pre-requisites here. +ifneq ($(shell umask):$(CURDIR):$(O),$(REQ_UMASK):$(CANONICAL_CURDIR):$(CANONICAL_O)) +.PHONY: _all $(MAKECMDGOALS) + +$(MAKECMDGOALS): _all + @: + +_all: + @umask $(REQ_UMASK) && \ + $(MAKE) -C $(CANONICAL_CURDIR) --no-print-directory \ + $(MAKECMDGOALS) $(EXTRAMAKEARGS) + +else # umask / $(CURDIR) / $(O) + +# This is our default rule, so must come first +all: +.PHONY: all + +# Set and export the version string +export BR2_VERSION := 2022.08.1 +# Actual time the release is cut (for reproducible builds) +BR2_VERSION_EPOCH = 1664745600 + +# Save running make version since it's clobbered by the make package +RUNNING_MAKE_VERSION := $(MAKE_VERSION) + +# Check for minimal make version (note: this check will break at make 10.x) +MIN_MAKE_VERSION = 3.81 +ifneq ($(firstword $(sort $(RUNNING_MAKE_VERSION) $(MIN_MAKE_VERSION))),$(MIN_MAKE_VERSION)) +$(error You have make '$(RUNNING_MAKE_VERSION)' installed. GNU make >= $(MIN_MAKE_VERSION) is required) +endif + +# absolute path +TOPDIR := $(CURDIR) +CONFIG_CONFIG_IN = Config.in +CONFIG = support/kconfig +DATE := $(shell date +%Y%m%d) + +# Compute the full local version string so packages can use it as-is +# Need to export it, so it can be got from environment in children (eg. mconf) + +BR2_LOCALVERSION := $(shell $(TOPDIR)/support/scripts/setlocalversion) +ifeq ($(BR2_LOCALVERSION),) +export BR2_VERSION_FULL := $(BR2_VERSION) +else +export BR2_VERSION_FULL := $(BR2_LOCALVERSION) +endif + +# List of targets and target patterns for which .config doesn't need to be read in +noconfig_targets := menuconfig nconfig gconfig xconfig config oldconfig randconfig \ + defconfig %_defconfig allyesconfig allnoconfig alldefconfig syncconfig release \ + randpackageconfig allyespackageconfig allnopackageconfig \ + print-version olddefconfig distclean manual manual-% check-package check-flake8 + +# Some global targets do not trigger a build, but are used to collect +# metadata, or do various checks. When such targets are triggered, +# some packages should not do their configuration sanity +# checks. Provide them a BR_BUILDING variable set to 'y' when we're +# actually building and they should do their sanity checks. +# +# We're building in two situations: when MAKECMDGOALS is empty +# (default target is to build), or when MAKECMDGOALS contains +# something else than one of the nobuild_targets. +nobuild_targets := source %-source \ + legal-info %-legal-info external-deps _external-deps \ + clean distclean help show-targets graph-depends \ + %-graph-depends %-show-depends %-show-version \ + graph-build graph-size list-defconfigs \ + savedefconfig update-defconfig printvars show-vars +ifeq ($(MAKECMDGOALS),) +BR_BUILDING = y +else ifneq ($(filter-out $(nobuild_targets),$(MAKECMDGOALS)),) +BR_BUILDING = y +endif + +# We call make recursively to build packages. The command-line overrides that +# are passed to Buildroot don't apply to those package build systems. In +# particular, we don't want to pass down the O= option for out-of-tree +# builds, because the value specified on the command line will not be correct +# for packages. +MAKEOVERRIDES := + +# Include some helper macros and variables +include support/misc/utils.mk + +# Set variables related to in-tree or out-of-tree build. +# Here, both $(O) and $(CURDIR) are absolute canonical paths. +ifeq ($(O),$(CURDIR)/output) +CONFIG_DIR := $(CURDIR) +NEED_WRAPPER = +else +CONFIG_DIR := $(O) +NEED_WRAPPER = y +endif + +# bash prints the name of the directory on 'cd ' if CDPATH is +# set, so unset it here to not cause problems. Notice that the export +# line doesn't affect the environment of $(shell ..) calls. +export CDPATH := + +BASE_DIR := $(CANONICAL_O) +$(if $(BASE_DIR),, $(error output directory "$(O)" does not exist)) + + +# Handling of BR2_EXTERNAL. +# +# The value of BR2_EXTERNAL is stored in .br-external in the output directory. +# The location of the external.mk makefile fragments is computed in that file. +# On subsequent invocations of make, this file is read in. BR2_EXTERNAL can +# still be overridden on the command line, therefore the file is re-created +# every time make is run. + +BR2_EXTERNAL_FILE = $(BASE_DIR)/.br2-external.mk +-include $(BR2_EXTERNAL_FILE) +$(shell support/scripts/br2-external -d '$(BASE_DIR)' $(BR2_EXTERNAL)) +BR2_EXTERNAL_ERROR = +include $(BR2_EXTERNAL_FILE) +ifneq ($(BR2_EXTERNAL_ERROR),) +$(error $(BR2_EXTERNAL_ERROR)) +endif + +# Workaround bug in make-4.3: https://savannah.gnu.org/bugs/?57676 +$(BASE_DIR)/.br2-external.mk:; + +# To make sure that the environment variable overrides the .config option, +# set this before including .config. +ifneq ($(BR2_DL_DIR),) +DL_DIR := $(BR2_DL_DIR) +endif +ifneq ($(BR2_CCACHE_DIR),) +BR_CACHE_DIR := $(BR2_CCACHE_DIR) +endif + +# Need that early, before we scan packages +# Avoids doing the $(or...) everytime +BR_GRAPH_OUT := $(or $(BR2_GRAPH_OUT),pdf) + +BUILD_DIR := $(BASE_DIR)/build +BINARIES_DIR := $(BASE_DIR)/images +BASE_TARGET_DIR := $(BASE_DIR)/target +PER_PACKAGE_DIR := $(BASE_DIR)/per-package +# initial definition so that 'make clean' works for most users, even without +# .config. HOST_DIR will be overwritten later when .config is included. +HOST_DIR := $(BASE_DIR)/host +GRAPHS_DIR := $(BASE_DIR)/graphs + +LEGAL_INFO_DIR = $(BASE_DIR)/legal-info +REDIST_SOURCES_DIR_TARGET = $(LEGAL_INFO_DIR)/sources +REDIST_SOURCES_DIR_HOST = $(LEGAL_INFO_DIR)/host-sources +LICENSE_FILES_DIR_TARGET = $(LEGAL_INFO_DIR)/licenses +LICENSE_FILES_DIR_HOST = $(LEGAL_INFO_DIR)/host-licenses +LEGAL_MANIFEST_CSV_TARGET = $(LEGAL_INFO_DIR)/manifest.csv +LEGAL_MANIFEST_CSV_HOST = $(LEGAL_INFO_DIR)/host-manifest.csv +LEGAL_WARNINGS = $(LEGAL_INFO_DIR)/.warnings +LEGAL_REPORT = $(LEGAL_INFO_DIR)/README + +CPE_UPDATES_DIR = $(BASE_DIR)/cpe-updates + +BR2_CONFIG = $(CONFIG_DIR)/.config + +# Pull in the user's configuration file +ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),) +-include $(BR2_CONFIG) +endif + +ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),) +# Disable top-level parallel build if per-package directories is not +# used. Indeed, per-package directories is necessary to guarantee +# determinism and reproducibility with top-level parallel build. +.NOTPARALLEL: +endif + +# timezone and locale may affect build output +ifeq ($(BR2_REPRODUCIBLE),y) +export TZ = UTC +export LANG = C +export LC_ALL = C +endif + +# To put more focus on warnings, be less verbose as default +# Use 'make V=1' to see the full commands +ifeq ("$(origin V)", "command line") + KBUILD_VERBOSE = $(V) +endif +ifndef KBUILD_VERBOSE + KBUILD_VERBOSE = 0 +endif + +ifeq ($(KBUILD_VERBOSE),1) + Q = +ifndef VERBOSE + VERBOSE = 1 +endif +export VERBOSE +else + Q = @ +endif + +# kconfig uses CONFIG_SHELL +CONFIG_SHELL := $(SHELL) + +export SHELL CONFIG_SHELL Q KBUILD_VERBOSE + +ifndef HOSTAR +HOSTAR := ar +endif +ifndef HOSTAS +HOSTAS := as +endif +ifndef HOSTCC +HOSTCC := gcc +HOSTCC := $(shell which $(HOSTCC) || type -p $(HOSTCC) || echo gcc) +endif +ifndef HOSTCC_NOCCACHE +HOSTCC_NOCCACHE := $(HOSTCC) +endif +ifndef HOSTCXX +HOSTCXX := g++ +HOSTCXX := $(shell which $(HOSTCXX) || type -p $(HOSTCXX) || echo g++) +endif +ifndef HOSTCXX_NOCCACHE +HOSTCXX_NOCCACHE := $(HOSTCXX) +endif +ifndef HOSTCPP +HOSTCPP := cpp +endif +ifndef HOSTLD +HOSTLD := ld +endif +ifndef HOSTLN +HOSTLN := ln +endif +ifndef HOSTNM +HOSTNM := nm +endif +ifndef HOSTOBJCOPY +HOSTOBJCOPY := objcopy +endif +ifndef HOSTRANLIB +HOSTRANLIB := ranlib +endif +HOSTAR := $(shell which $(HOSTAR) || type -p $(HOSTAR) || echo ar) +HOSTAS := $(shell which $(HOSTAS) || type -p $(HOSTAS) || echo as) +HOSTCPP := $(shell which $(HOSTCPP) || type -p $(HOSTCPP) || echo cpp) +HOSTLD := $(shell which $(HOSTLD) || type -p $(HOSTLD) || echo ld) +HOSTLN := $(shell which $(HOSTLN) || type -p $(HOSTLN) || echo ln) +HOSTNM := $(shell which $(HOSTNM) || type -p $(HOSTNM) || echo nm) +HOSTOBJCOPY := $(shell which $(HOSTOBJCOPY) || type -p $(HOSTOBJCOPY) || echo objcopy) +HOSTRANLIB := $(shell which $(HOSTRANLIB) || type -p $(HOSTRANLIB) || echo ranlib) +SED := $(shell which sed || type -p sed) -i -e + +export HOSTAR HOSTAS HOSTCC HOSTCXX HOSTLD +export HOSTCC_NOCCACHE HOSTCXX_NOCCACHE + +# Determine the userland we are running on. +# +# Note that, despite its name, we are not interested in the actual +# architecture name. This is mostly used to determine whether some +# of the binary tools (e.g. pre-built external toolchains) can run +# on the current host. So we need to know if the userland we're +# running on can actually run those toolchains. +# +# For example, a 64-bit prebuilt toolchain will not run on a 64-bit +# kernel if the userland is 32-bit (e.g. in a chroot for example). +# +# So, we extract the first part of the tuple the host gcc was +# configured to generate code for; we assume this is our userland. +# +export HOSTARCH := $(shell LC_ALL=C $(HOSTCC_NOCCACHE) -v 2>&1 | \ + sed -e '/^Target: \([^-]*\).*/!d' \ + -e 's//\1/' \ + -e 's/i.86/x86/' \ + -e 's/sun4u/sparc64/' \ + -e 's/arm.*/arm/' \ + -e 's/sa110/arm/' \ + -e 's/ppc64/powerpc64/' \ + -e 's/ppc/powerpc/' \ + -e 's/macppc/powerpc/' \ + -e 's/sh.*/sh/' ) + +# When adding a new host gcc version in Config.in, +# update the HOSTCC_MAX_VERSION variable: +HOSTCC_MAX_VERSION := 9 + +HOSTCC_VERSION := $(shell V=$$($(HOSTCC_NOCCACHE) --version | \ + sed -n -r 's/^.* ([0-9]*)\.([0-9]*)\.([0-9]*)[ ]*.*/\1 \2/p'); \ + [ "$${V%% *}" -le $(HOSTCC_MAX_VERSION) ] || V=$(HOSTCC_MAX_VERSION); \ + printf "%s" "$${V}") + +# For gcc >= 5.x, we only need the major version. +ifneq ($(firstword $(HOSTCC_VERSION)),4) +HOSTCC_VERSION := $(firstword $(HOSTCC_VERSION)) +endif + +ifeq ($(BR2_NEEDS_HOST_UTF8_LOCALE),y) +# First, we try to use the user's configured locale (as that's the +# language they'd expect messages to be displayed), then we favour +# a non language-specific locale like C.UTF-8 if one is available, +# so we sort with the C locale to get it at the top. +# This is guaranteed to not be empty, because of the check in +# support/dependencies/dependencies.sh +HOST_UTF8_LOCALE := $(shell \ + ( echo $${LC_ALL:-$${LC_MESSAGES:-$${LANG}}}; \ + locale -a 2>/dev/null | LC_ALL=C sort \ + ) \ + | grep -i -E 'utf-?8$$' \ + | head -n 1) +HOST_UTF8_LOCALE_ENV := LC_ALL=$(HOST_UTF8_LOCALE) +endif + +# Make sure pkg-config doesn't look outside the buildroot tree +HOST_PKG_CONFIG_PATH := $(PKG_CONFIG_PATH) +unexport PKG_CONFIG_PATH +unexport PKG_CONFIG_SYSROOT_DIR +unexport PKG_CONFIG_LIBDIR + +# Having DESTDIR set in the environment confuses the installation +# steps of some packages. +unexport DESTDIR + +# Causes breakage with packages that needs host-ruby +unexport RUBYOPT + +include package/pkg-utils.mk +include package/doc-asciidoc.mk + +ifeq ($(BR2_HAVE_DOT_CONFIG),y) + +################################################################################ +# +# Hide troublesome environment variables from sub processes +# +################################################################################ +unexport CROSS_COMPILE +unexport ARCH +unexport CC +unexport LD +unexport AR +unexport CXX +unexport CPP +unexport RANLIB +unexport CFLAGS +unexport CXXFLAGS +unexport GREP_OPTIONS +unexport TAR_OPTIONS +unexport CONFIG_SITE +unexport QMAKESPEC +unexport TERMINFO +unexport MACHINE +unexport O +unexport GCC_COLORS +unexport PLATFORM +unexport OS +unexport DEVICE_TREE + +GNU_HOST_NAME := $(shell support/gnuconfig/config.guess) + +PACKAGES := +PACKAGES_ALL := + +# silent mode requested? +QUIET := $(if $(findstring s,$(filter-out --%,$(MAKEFLAGS))),-q) + +# Strip off the annoying quoting +ARCH := $(call qstrip,$(BR2_ARCH)) +NORMALIZED_ARCH := $(call qstrip,$(BR2_NORMALIZED_ARCH)) +KERNEL_ARCH := $(call qstrip,$(BR2_NORMALIZED_ARCH)) + +ZCAT := $(call qstrip,$(BR2_ZCAT)) +BZCAT := $(call qstrip,$(BR2_BZCAT)) +XZCAT := $(call qstrip,$(BR2_XZCAT)) +LZCAT := $(call qstrip,$(BR2_LZCAT)) +TAR_OPTIONS = $(call qstrip,$(BR2_TAR_OPTIONS)) -xf + +ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),y) +HOST_DIR = $(if $(PKG),$(PER_PACKAGE_DIR)/$($(PKG)_NAME)/host,$(call qstrip,$(BR2_HOST_DIR))) +TARGET_DIR = $(if $(ROOTFS),$(ROOTFS_$(ROOTFS)_TARGET_DIR),$(if $(PKG),$(PER_PACKAGE_DIR)/$($(PKG)_NAME)/target,$(BASE_TARGET_DIR))) +else +HOST_DIR := $(call qstrip,$(BR2_HOST_DIR)) +TARGET_DIR = $(if $(ROOTFS),$(ROOTFS_$(ROOTFS)_TARGET_DIR),$(BASE_TARGET_DIR)) +endif + +ifneq ($(HOST_DIR),$(BASE_DIR)/host) +HOST_DIR_SYMLINK = $(BASE_DIR)/host +$(HOST_DIR_SYMLINK): | $(BASE_DIR) + ln -snf $(HOST_DIR) $(HOST_DIR_SYMLINK) +endif + +STAGING_DIR_SYMLINK = $(BASE_DIR)/staging +$(STAGING_DIR_SYMLINK): | $(BASE_DIR) + ln -snf $(STAGING_DIR) $(STAGING_DIR_SYMLINK) + +# Quotes are needed for spaces and all in the original PATH content. +BR_PATH = "$(HOST_DIR)/bin:$(HOST_DIR)/sbin:$(PATH)" + +# Location of a file giving a big fat warning that output/target +# should not be used as the root filesystem. +TARGET_DIR_WARNING_FILE = $(TARGET_DIR)/THIS_IS_NOT_YOUR_ROOT_FILESYSTEM + +ifeq ($(BR2_CCACHE),y) +CCACHE = $(HOST_DIR)/bin/ccache +BR_CACHE_DIR ?= $(call qstrip,$(BR2_CCACHE_DIR)) +export BR_CACHE_DIR +HOSTCC = $(CCACHE) $(HOSTCC_NOCCACHE) +HOSTCXX = $(CCACHE) $(HOSTCXX_NOCCACHE) +export BR2_USE_CCACHE ?= 1 +endif + +# Scripts in support/ or post-build scripts may need to reference +# these locations, so export them so it is easier to use +export BR2_CONFIG +export BR2_REPRODUCIBLE +export TARGET_DIR +export STAGING_DIR +export HOST_DIR +export BINARIES_DIR +export BASE_DIR + +################################################################################ +# +# You should probably leave this stuff alone unless you know +# what you are doing. +# +################################################################################ + +all: world + +# Include legacy before the other things, because package .mk files +# may rely on it. +include Makefile.legacy + +include system/system.mk +include package/Makefile.in +# arch/arch.mk must be after package/Makefile.in because it may need to +# complement variables defined therein, like BR_NO_CHECK_HASH_FOR. +include arch/arch.mk +include support/dependencies/dependencies.mk + +include $(sort $(wildcard toolchain/*.mk)) +include $(sort $(wildcard toolchain/*/*.mk)) + +ifeq ($(BR2_REPRODUCIBLE),y) +# If SOURCE_DATE_EPOCH has not been set then use the commit date, or the last +# release date if the source tree is not within a Git repository. +# See: https://reproducible-builds.org/specs/source-date-epoch/ +BR2_VERSION_GIT_EPOCH := $(shell $(GIT) log -1 --format=%at 2> /dev/null) +export SOURCE_DATE_EPOCH ?= $(or $(BR2_VERSION_GIT_EPOCH),$(BR2_VERSION_EPOCH)) +endif + +# Include the package override file if one has been provided in the +# configuration. +PACKAGE_OVERRIDE_FILE = $(call qstrip,$(BR2_PACKAGE_OVERRIDE_FILE)) +ifneq ($(PACKAGE_OVERRIDE_FILE),) +-include $(PACKAGE_OVERRIDE_FILE) +endif + +include $(sort $(wildcard package/*/*.mk)) + +include boot/common.mk +include linux/linux.mk +include fs/common.mk + +# If using a br2-external tree, the BR2_EXTERNAL_$(NAME)_PATH variables +# are also present in the .config file. Since .config is included after +# we defined them in the Makefile, the values for those variables are +# quoted. We just include the generated Makefile fragment .br2-external.mk +# a third time, which will set those variables to the un-quoted values. +include $(BR2_EXTERNAL_FILE) + +# Nothing to include if no BR2_EXTERNAL tree in use +include $(BR2_EXTERNAL_MKS) + +# Now we are sure we have all the packages scanned and defined. We now +# check for each package in the list of enabled packages, that all its +# dependencies are indeed enabled. +# +# Only trigger the check for default builds. If the user forces building +# a package, even if not enabled in the configuration, we want to accept +# it. However; we also want to be able to force checking the dependencies +# if the user so desires. Forcing a dependency check is useful in the case +# of test-pkg, as we want to make sure during testing, that a package has +# all the dependencies selected in the config file. +# +ifeq ($(MAKECMDGOALS),) +BR_FORCE_CHECK_DEPENDENCIES = YES +endif + +ifeq ($(BR_FORCE_CHECK_DEPENDENCIES),YES) + +define CHECK_ONE_DEPENDENCY +ifeq ($$($(2)_TYPE),target) +ifneq ($$($$($(2)_KCONFIG_VAR)),y) +$$(error $$($(2)_NAME) is in the dependency chain of $$($(1)_NAME) that \ +has added it to its _DEPENDENCIES variable without selecting it or \ +depending on it from Config.in) +endif +endif +endef + +$(foreach pkg,$(call UPPERCASE,$(PACKAGES)),\ + $(foreach dep,$(call UPPERCASE,$($(pkg)_FINAL_ALL_DEPENDENCIES)),\ + $(eval $(call CHECK_ONE_DEPENDENCY,$(pkg),$(dep))$(sep)))) + +endif + +$(BUILD_DIR)/buildroot-config/auto.conf: $(BR2_CONFIG) + $(MAKE1) $(EXTRAMAKEARGS) HOSTCC="$(HOSTCC_NOCCACHE)" HOSTCXX="$(HOSTCXX_NOCCACHE)" syncconfig + +.PHONY: prepare +prepare: $(BUILD_DIR)/buildroot-config/auto.conf + @$(foreach s, $(call qstrip,$(BR2_ROOTFS_PRE_BUILD_SCRIPT)), \ + $(call MESSAGE,"Executing pre-build script $(s)"); \ + $(EXTRA_ENV) $(s) $(TARGET_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep)) + +.PHONY: world +world: target-post-image + +.PHONY: prepare-sdk +prepare-sdk: world + @$(call MESSAGE,"Rendering the SDK relocatable") + PER_PACKAGE_DIR=$(PER_PACKAGE_DIR) $(TOPDIR)/support/scripts/fix-rpath host + PER_PACKAGE_DIR=$(PER_PACKAGE_DIR) $(TOPDIR)/support/scripts/fix-rpath staging + $(INSTALL) -m 755 $(TOPDIR)/support/misc/relocate-sdk.sh $(HOST_DIR)/relocate-sdk.sh + mkdir -p $(HOST_DIR)/share/buildroot + echo $(HOST_DIR) > $(HOST_DIR)/share/buildroot/sdk-location + +BR2_SDK_PREFIX ?= $(GNU_TARGET_NAME)_sdk-buildroot +.PHONY: sdk +sdk: prepare-sdk $(BR2_TAR_HOST_DEPENDENCY) + @$(call MESSAGE,"Generating SDK tarball") + $(if $(BR2_SDK_PREFIX),,$(error BR2_SDK_PREFIX can not be empty)) + $(Q)mkdir -p $(BINARIES_DIR) + $(TAR) czf "$(BINARIES_DIR)/$(BR2_SDK_PREFIX).tar.gz" \ + --owner=0 --group=0 --numeric-owner \ + --transform='s#^$(patsubst /%,%,$(HOST_DIR))#$(BR2_SDK_PREFIX)#' \ + -C / $(patsubst /%,%,$(HOST_DIR)) + +RSYNC_VCS_EXCLUSIONS = \ + --exclude .svn --exclude .git --exclude .hg --exclude .bzr \ + --exclude CVS + +# When stripping, obey to BR2_STRIP_EXCLUDE_DIRS and +# BR2_STRIP_EXCLUDE_FILES +STRIP_FIND_COMMON_CMD = \ + find $(TARGET_DIR) \ + $(if $(call qstrip,$(BR2_STRIP_EXCLUDE_DIRS)), \ + \( $(call finddirclauses,$(TARGET_DIR),$(call qstrip,$(BR2_STRIP_EXCLUDE_DIRS))) \) \ + -prune -o \ + ) \ + $(if $(call qstrip,$(BR2_STRIP_EXCLUDE_FILES)), \ + -not \( $(call findfileclauses,$(call qstrip,$(BR2_STRIP_EXCLUDE_FILES))) \) ) + +# Regular stripping for everything, except libpthread, ld-*.so and +# kernel modules: +# - libpthread.so: a non-stripped libpthread shared library is needed for +# proper debugging of pthread programs using gdb. +# - ld.so: a non-stripped dynamic linker library is needed for valgrind +# - kernel modules (*.ko): do not function properly when stripped like normal +# applications and libraries. Normally kernel modules are already excluded +# by the executable permission check, so the explicit exclusion is only +# done for kernel modules with incorrect permissions. +STRIP_FIND_CMD = \ + $(STRIP_FIND_COMMON_CMD) \ + -type f \( -perm /111 -o -name '*.so*' \) \ + -not \( $(call findfileclauses,libpthread*.so* ld-*.so* *.ko) \) \ + -print0 + +# Special stripping (only debugging symbols) for libpthread and ld-*.so. +STRIP_FIND_SPECIAL_LIBS_CMD = \ + $(STRIP_FIND_COMMON_CMD) \ + \( -name 'ld-*.so*' -o -name 'libpthread*.so*' \) \ + -print0 + +# Generate locale data. +ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),y) +GLIBC_GENERATE_LOCALES = $(call qstrip,$(BR2_GENERATE_LOCALE)) +ifneq ($(GLIBC_GENERATE_LOCALES),) +PACKAGES += host-localedef + +define GENERATE_GLIBC_LOCALES + $(MAKE) -f support/misc/gen-glibc-locales.mk \ + ENDIAN=$(call LOWERCASE,$(BR2_ENDIAN)) \ + LOCALES="$(GLIBC_GENERATE_LOCALES)" \ + Q=$(Q) +endef +TARGET_FINALIZE_HOOKS += GENERATE_GLIBC_LOCALES +endif +endif + +ifeq ($(BR2_ENABLE_LOCALE_PURGE),y) +LOCALE_WHITELIST = $(BUILD_DIR)/locales.nopurge +LOCALE_NOPURGE = $(call qstrip,$(BR2_ENABLE_LOCALE_WHITELIST)) + +# This piece of junk does the following: +# First collect the whitelist in a file. +# Then go over all the locale dirs and for each subdir, check if it exists +# in the whitelist file. If it doesn't, kill it. +# Finally, specifically for X11, regenerate locale.dir from the whitelist. +define PURGE_LOCALES + printf '%s\n' $(LOCALE_NOPURGE) locale-archive > $(LOCALE_WHITELIST) + + for dir in $(addprefix $(TARGET_DIR),/usr/share/locale /usr/share/X11/locale /usr/lib/locale); \ + do \ + if [ ! -d $$dir ]; then continue; fi; \ + for langdir in $$dir/*; \ + do \ + if [ -e "$${langdir}" ]; \ + then \ + grep -qx "$${langdir##*/}" $(LOCALE_WHITELIST) || rm -rf $$langdir; \ + fi \ + done; \ + done + if [ -d $(TARGET_DIR)/usr/share/X11/locale ]; \ + then \ + for lang in $(LOCALE_NOPURGE); \ + do \ + if [ -f $(TARGET_DIR)/usr/share/X11/locale/$$lang/XLC_LOCALE ]; \ + then \ + echo "$$lang/XLC_LOCALE: $$lang"; \ + fi \ + done > $(TARGET_DIR)/usr/share/X11/locale/locale.dir; \ + fi +endef +TARGET_FINALIZE_HOOKS += PURGE_LOCALES +endif + +$(TARGETS_ROOTFS): target-finalize + +# Avoid the rootfs name leaking down the dependency chain +target-finalize: ROOTFS= + +TARGET_DIR_FILES_LISTS = $(sort $(wildcard $(BUILD_DIR)/*/.files-list.txt)) +HOST_DIR_FILES_LISTS = $(sort $(wildcard $(BUILD_DIR)/*/.files-list-host.txt)) +STAGING_DIR_FILES_LISTS = $(sort $(wildcard $(BUILD_DIR)/*/.files-list-staging.txt)) + +.PHONY: host-finalize +host-finalize: $(PACKAGES) $(HOST_DIR) $(HOST_DIR_SYMLINK) + @$(call MESSAGE,"Finalizing host directory") + $(call per-package-rsync,$(sort $(PACKAGES)),host,$(HOST_DIR)) + +.PHONY: staging-finalize +staging-finalize: $(STAGING_DIR_SYMLINK) + +.PHONY: target-finalize +target-finalize: $(PACKAGES) $(TARGET_DIR) host-finalize + @$(call MESSAGE,"Finalizing target directory") + $(call per-package-rsync,$(sort $(PACKAGES)),target,$(TARGET_DIR)) + $(foreach hook,$(TARGET_FINALIZE_HOOKS),$($(hook))$(sep)) + rm -rf $(TARGET_DIR)/usr/include $(TARGET_DIR)/usr/share/aclocal \ + $(TARGET_DIR)/usr/lib/pkgconfig $(TARGET_DIR)/usr/share/pkgconfig \ + $(TARGET_DIR)/usr/lib/cmake $(TARGET_DIR)/usr/share/cmake \ + $(TARGET_DIR)/usr/lib/rpm $(TARGET_DIR)/usr/doc + find $(TARGET_DIR)/usr/{lib,share}/ -name '*.cmake' -print0 | xargs -0 rm -f + find $(TARGET_DIR)/lib/ $(TARGET_DIR)/usr/lib/ $(TARGET_DIR)/usr/libexec/ \ + \( -name '*.a' -o -name '*.la' -o -name '*.prl' \) -print0 | xargs -0 rm -f +ifneq ($(BR2_PACKAGE_GDB),y) + rm -rf $(TARGET_DIR)/usr/share/gdb +endif +ifneq ($(BR2_PACKAGE_BASH),y) + rm -rf $(TARGET_DIR)/usr/share/bash-completion + rm -rf $(TARGET_DIR)/etc/bash_completion.d +endif +ifneq ($(BR2_PACKAGE_ZSH),y) + rm -rf $(TARGET_DIR)/usr/share/zsh +endif + rm -rf $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/man + rm -rf $(TARGET_DIR)/usr/info $(TARGET_DIR)/usr/share/info + rm -rf $(TARGET_DIR)/usr/doc $(TARGET_DIR)/usr/share/doc + rm -rf $(TARGET_DIR)/usr/share/gtk-doc + rmdir $(TARGET_DIR)/usr/share 2>/dev/null || true +ifneq ($(BR2_ENABLE_DEBUG):$(BR2_STRIP_strip),y:) + rm -rf $(TARGET_DIR)/lib/debug $(TARGET_DIR)/usr/lib/debug +endif + $(STRIP_FIND_CMD) | xargs -0 $(STRIPCMD) 2>/dev/null || true + $(STRIP_FIND_SPECIAL_LIBS_CMD) | xargs -0 -r $(STRIPCMD) $(STRIP_STRIP_DEBUG) 2>/dev/null || true + + test -f $(TARGET_DIR)/etc/ld.so.conf && \ + { echo "ERROR: we shouldn't have a /etc/ld.so.conf file"; exit 1; } || true + test -d $(TARGET_DIR)/etc/ld.so.conf.d && \ + { echo "ERROR: we shouldn't have a /etc/ld.so.conf.d directory"; exit 1; } || true + mkdir -p $(TARGET_DIR)/etc + ( \ + echo "NAME=Buildroot"; \ + echo "VERSION=$(BR2_VERSION_FULL)"; \ + echo "ID=buildroot"; \ + echo "VERSION_ID=$(BR2_VERSION)"; \ + echo "PRETTY_NAME=\"Buildroot $(BR2_VERSION)\"" \ + ) > $(TARGET_DIR)/usr/lib/os-release + ln -sf ../usr/lib/os-release $(TARGET_DIR)/etc + + @$(call MESSAGE,"Sanitizing RPATH in target tree") + PER_PACKAGE_DIR=$(PER_PACKAGE_DIR) $(TOPDIR)/support/scripts/fix-rpath target + +# For a merged /usr, ensure that /lib, /bin and /sbin and their /usr +# counterparts are appropriately setup as symlinks ones to the others. +ifeq ($(BR2_ROOTFS_MERGED_USR),y) + + $(foreach d, $(call qstrip,$(BR2_ROOTFS_OVERLAY)), \ + @$(call MESSAGE,"Sanity check in overlay $(d)")$(sep) \ + $(Q)not_merged_dirs="$$(support/scripts/check-merged-usr.sh $(d))"; \ + test -n "$$not_merged_dirs" && { \ + echo "ERROR: The overlay in $(d) is not" \ + "using a merged /usr for the following directories:" \ + $$not_merged_dirs; \ + exit 1; \ + } || true$(sep)) + +endif # merged /usr + + $(foreach d, $(call qstrip,$(BR2_ROOTFS_OVERLAY)), \ + @$(call MESSAGE,"Copying overlay $(d)")$(sep) \ + $(Q)$(call SYSTEM_RSYNC,$(d),$(TARGET_DIR))$(sep)) + + $(Q)$(if $(TARGET_DIR_FILES_LISTS), \ + cat $(TARGET_DIR_FILES_LISTS)) > $(BUILD_DIR)/packages-file-list.txt + $(Q)$(if $(HOST_DIR_FILES_LISTS), \ + cat $(HOST_DIR_FILES_LISTS)) > $(BUILD_DIR)/packages-file-list-host.txt + $(Q)$(if $(STAGING_DIR_FILES_LISTS), \ + cat $(STAGING_DIR_FILES_LISTS)) > $(BUILD_DIR)/packages-file-list-staging.txt + + $(foreach s, $(call qstrip,$(BR2_ROOTFS_POST_BUILD_SCRIPT)), \ + @$(call MESSAGE,"Executing post-build script $(s)")$(sep) \ + $(Q)$(EXTRA_ENV) $(s) $(TARGET_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep)) + + touch $(TARGET_DIR)/usr + +# Note: this will run in the filesystem context, so will use a copy +# of target/, not the real one, so the files are still available on +# re-builds (foo-rebuild, etc...) +define ROOTFS_RM_HWDB_DATA + rm -rf $(TARGET_DIR)/usr/lib/udev/hwdb.d/ $(TARGET_DIR)/etc/udev/hwdb.d/ +endef +ROOTFS_PRE_CMD_HOOKS += ROOTFS_RM_HWDB_DATA + +.PHONY: target-post-image +target-post-image: $(TARGETS_ROOTFS) target-finalize staging-finalize + @rm -f $(ROOTFS_COMMON_TAR) + $(Q)mkdir -p $(BINARIES_DIR) + @$(foreach s, $(call qstrip,$(BR2_ROOTFS_POST_IMAGE_SCRIPT)), \ + $(call MESSAGE,"Executing post-image script $(s)"); \ + $(EXTRA_ENV) $(s) $(BINARIES_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep)) + +.PHONY: source +source: $(foreach p,$(PACKAGES),$(p)-all-source) + +.PHONY: _external-deps external-deps +_external-deps: $(foreach p,$(PACKAGES),$(p)-all-external-deps) +external-deps: + @$(MAKE1) -Bs $(EXTRAMAKEARGS) _external-deps | sort -u + +.PHONY: legal-info-clean +legal-info-clean: + @rm -fr $(LEGAL_INFO_DIR) + +.PHONY: legal-info-prepare +legal-info-prepare: $(LEGAL_INFO_DIR) + @$(call MESSAGE,"Buildroot $(BR2_VERSION_FULL) Collecting legal info") + @$(call legal-license-file,buildroot,buildroot,support/legal-info/buildroot.hash,COPYING,COPYING,HOST) + @$(call legal-manifest,TARGET,PACKAGE,VERSION,LICENSE,LICENSE FILES,SOURCE ARCHIVE,SOURCE SITE,DEPENDENCIES WITH LICENSES) + @$(call legal-manifest,HOST,PACKAGE,VERSION,LICENSE,LICENSE FILES,SOURCE ARCHIVE,SOURCE SITE,DEPENDENCIES WITH LICENSES) + @$(call legal-manifest,HOST,buildroot,$(BR2_VERSION_FULL),GPL-2.0+,COPYING,not saved,not saved) + @$(call legal-warning,the Buildroot source code has not been saved) + @cp $(BR2_CONFIG) $(LEGAL_INFO_DIR)/buildroot.config + +.PHONY: legal-info +legal-info: legal-info-clean legal-info-prepare $(foreach p,$(PACKAGES),$(p)-all-legal-info) \ + $(REDIST_SOURCES_DIR_TARGET) $(REDIST_SOURCES_DIR_HOST) + @cat support/legal-info/README.header >>$(LEGAL_REPORT) + @if [ -r $(LEGAL_WARNINGS) ]; then \ + cat support/legal-info/README.warnings-header \ + $(LEGAL_WARNINGS) >>$(LEGAL_REPORT); \ + cat $(LEGAL_WARNINGS); fi + @rm -f $(LEGAL_WARNINGS) + @(cd $(LEGAL_INFO_DIR); \ + find * -type f -exec sha256sum {} + | LC_ALL=C sort -k2 \ + >.legal-info.sha256; \ + mv .legal-info.sha256 legal-info.sha256) + @echo "Legal info produced in $(LEGAL_INFO_DIR)" + +.PHONY: show-targets +show-targets: + @echo $(sort $(PACKAGES)) $(sort $(TARGETS_ROOTFS)) + +.PHONY: show-build-order +show-build-order: $(patsubst %,%-show-build-order,$(PACKAGES)) + +.PHONY: graph-build +graph-build: $(O)/build/build-time.log + @install -d $(GRAPHS_DIR) + $(foreach o,name build duration,./support/scripts/graph-build-time \ + --type=histogram --order=$(o) --input=$(<) \ + --output=$(GRAPHS_DIR)/build.hist-$(o).$(BR_GRAPH_OUT) \ + $(if $(BR2_GRAPH_ALT),--alternate-colors)$(sep)) + $(foreach t,packages steps,./support/scripts/graph-build-time \ + --type=pie-$(t) --input=$(<) \ + --output=$(GRAPHS_DIR)/build.pie-$(t).$(BR_GRAPH_OUT) \ + $(if $(BR2_GRAPH_ALT),--alternate-colors)$(sep)) + ./support/scripts/graph-build-time --type=timeline --input=$(<) \ + --output=$(GRAPHS_DIR)/build.timeline.$(BR_GRAPH_OUT) \ + $(if $(BR2_GRAPH_ALT),--alternate-colors) + +.PHONY: graph-depends-requirements +graph-depends-requirements: + @dot -? >/dev/null 2>&1 || \ + { echo "ERROR: The 'dot' program from Graphviz is needed for graph-depends" >&2; exit 1; } + +.PHONY: graph-depends +graph-depends: graph-depends-requirements + @$(INSTALL) -d $(GRAPHS_DIR) + @cd "$(CONFIG_DIR)"; \ + $(TOPDIR)/support/scripts/graph-depends $(BR2_GRAPH_DEPS_OPTS) \ + --direct -o $(GRAPHS_DIR)/$(@).dot + dot $(BR2_GRAPH_DOT_OPTS) -T$(BR_GRAPH_OUT) \ + -o $(GRAPHS_DIR)/$(@).$(BR_GRAPH_OUT) \ + $(GRAPHS_DIR)/$(@).dot + +.PHONY: graph-size +graph-size: + $(Q)mkdir -p $(GRAPHS_DIR) + $(Q)$(TOPDIR)/support/scripts/size-stats --builddir $(BASE_DIR) \ + --graph $(GRAPHS_DIR)/graph-size.$(BR_GRAPH_OUT) \ + --file-size-csv $(GRAPHS_DIR)/file-size-stats.csv \ + --package-size-csv $(GRAPHS_DIR)/package-size-stats.csv \ + $(BR2_GRAPH_SIZE_OPTS) + +.PHONY: check-dependencies +check-dependencies: + @cd "$(CONFIG_DIR)"; \ + $(TOPDIR)/support/scripts/graph-depends -C + +.PHONY: show-info +show-info: + @: + $(info $(call clean-json, \ + { $(foreach p, \ + $(sort $(foreach i,$(PACKAGES) $(TARGETS_ROOTFS), \ + $(i) \ + $($(call UPPERCASE,$(i))_FINAL_RECURSIVE_DEPENDENCIES) \ + ) \ + ), \ + $(call json-info,$(call UPPERCASE,$(p)))$(comma) \ + ) } \ + ) \ + ) + +.PHONY: pkg-stats +pkg-stats: + @cd "$(CONFIG_DIR)" ; \ + $(TOPDIR)/support/scripts/pkg-stats -c \ + --json $(O)/pkg-stats.json \ + --html $(O)/pkg-stats.html \ + --nvd-path $(DL_DIR)/buildroot-nvd + +.PHONY: missing-cpe +missing-cpe: + $(Q)mkdir -p $(CPE_UPDATES_DIR) + $(Q)cd "$(CONFIG_DIR)" ; \ + $(TOPDIR)/support/scripts/gen-missing-cpe \ + --nvd-path $(DL_DIR)/buildroot-nvd \ + --output $(CPE_UPDATES_DIR) + +else # ifeq ($(BR2_HAVE_DOT_CONFIG),y) + +# Some subdirectories are also package names. To avoid that "make linux" +# on an unconfigured tree produces "Nothing to be done", add an explicit +# rule for it. +# Also for 'all' we error out and ask the user to configure first. +.PHONY: linux toolchain +linux toolchain all: outputmakefile + $(error Please configure Buildroot first (e.g. "make menuconfig")) + @exit 1 + +endif # ifeq ($(BR2_HAVE_DOT_CONFIG),y) + +# configuration +# --------------------------------------------------------------------------- + +HOSTCFLAGS = $(CFLAGS_FOR_BUILD) +export HOSTCFLAGS + +$(BUILD_DIR)/buildroot-config/%onf: + mkdir -p $(@D)/lxdialog + PKG_CONFIG_PATH="$(HOST_PKG_CONFIG_PATH)" $(MAKE) CC="$(HOSTCC_NOCCACHE)" HOSTCC="$(HOSTCC_NOCCACHE)" \ + obj=$(@D) -C $(CONFIG) -f Makefile.br $(@F) + +DEFCONFIG = $(call qstrip,$(BR2_DEFCONFIG)) + +# We don't want to fully expand BR2_DEFCONFIG here, so Kconfig will +# recognize that if it's still at its default $(CONFIG_DIR)/defconfig +COMMON_CONFIG_ENV = \ + BR2_DEFCONFIG='$(call qstrip,$(value BR2_DEFCONFIG))' \ + KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \ + KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \ + KCONFIG_TRISTATE=$(BUILD_DIR)/buildroot-config/tristate.config \ + BR2_CONFIG=$(BR2_CONFIG) \ + HOST_GCC_VERSION="$(HOSTCC_VERSION)" \ + BASE_DIR=$(BASE_DIR) \ + SKIP_LEGACY= + +xconfig: $(BUILD_DIR)/buildroot-config/qconf outputmakefile + @$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN) + +gconfig: $(BUILD_DIR)/buildroot-config/gconf outputmakefile + @$(COMMON_CONFIG_ENV) srctree=$(TOPDIR) $< $(CONFIG_CONFIG_IN) + +menuconfig: $(BUILD_DIR)/buildroot-config/mconf outputmakefile + @$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN) + +nconfig: $(BUILD_DIR)/buildroot-config/nconf outputmakefile + @$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN) + +config: $(BUILD_DIR)/buildroot-config/conf outputmakefile + @$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN) + +# For the config targets that automatically select options, we pass +# SKIP_LEGACY=y to disable the legacy options. However, in that case +# no values are set for the legacy options so a subsequent oldconfig +# will query them. Therefore, run an additional olddefconfig. + +randconfig allyesconfig alldefconfig allnoconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile + @$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --$@ $(CONFIG_CONFIG_IN) + @$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null + +randpackageconfig allyespackageconfig allnopackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile + @grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg + @$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \ + KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \ + $< --$(subst package,,$@) $(CONFIG_CONFIG_IN) + @rm -f $(CONFIG_DIR)/.config.nopkg + @$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null + +oldconfig syncconfig olddefconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile + @$(COMMON_CONFIG_ENV) $< --$@ $(CONFIG_CONFIG_IN) + +defconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile + @$(COMMON_CONFIG_ENV) $< --defconfig$(if $(DEFCONFIG),=$(DEFCONFIG)) $(CONFIG_CONFIG_IN) + +define percent_defconfig +# Override the BR2_DEFCONFIG from COMMON_CONFIG_ENV with the new defconfig +%_defconfig: $(BUILD_DIR)/buildroot-config/conf $(1)/configs/%_defconfig outputmakefile + @$$(COMMON_CONFIG_ENV) BR2_DEFCONFIG=$(1)/configs/$$@ \ + $$< --defconfig=$(1)/configs/$$@ $$(CONFIG_CONFIG_IN) +endef +$(eval $(foreach d,$(call reverse,$(TOPDIR) $(BR2_EXTERNAL_DIRS)),$(call percent_defconfig,$(d))$(sep))) + +update-defconfig: savedefconfig + +savedefconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile + @$(COMMON_CONFIG_ENV) $< \ + --savedefconfig=$(if $(DEFCONFIG),$(DEFCONFIG),$(CONFIG_DIR)/defconfig) \ + $(CONFIG_CONFIG_IN) + @$(SED) '/^BR2_DEFCONFIG=/d' $(if $(DEFCONFIG),$(DEFCONFIG),$(CONFIG_DIR)/defconfig) + +.PHONY: defconfig savedefconfig update-defconfig + +################################################################################ +# +# Cleanup and misc junk +# +################################################################################ + +# staging and target directories do NOT list these as +# dependencies anywhere else +$(BUILD_DIR) $(BASE_TARGET_DIR) $(HOST_DIR) $(BINARIES_DIR) $(LEGAL_INFO_DIR) $(REDIST_SOURCES_DIR_TARGET) $(REDIST_SOURCES_DIR_HOST) $(PER_PACKAGE_DIR): + @mkdir -p $@ + +# outputmakefile generates a Makefile in the output directory, if using a +# separate output directory. This allows convenient use of make in the +# output directory. +.PHONY: outputmakefile +outputmakefile: +ifeq ($(NEED_WRAPPER),y) + $(Q)$(TOPDIR)/support/scripts/mkmakefile $(TOPDIR) $(O) +endif + +# printvars prints all the variables currently defined in our +# Makefiles. Alternatively, if a non-empty VARS variable is passed, +# only the variables matching the make pattern passed in VARS are +# displayed. +# show-vars does the same, but as a JSON dictionnary. +# +# Note: we iterate of .VARIABLES and filter each variable individually, +# to workaround a bug in make 4.3; see https://savannah.gnu.org/bugs/?59093 +.PHONY: printvars +printvars: +ifndef VARS + $(error Please pass a non-empty VARS to 'make printvars') +endif + @: + $(foreach V, \ + $(sort $(foreach X, $(.VARIABLES), $(filter $(VARS),$(X)))), \ + $(if $(filter-out environment% default automatic, \ + $(origin $V)), \ + $(if $(QUOTED_VARS),\ + $(info $V='$(subst ','\'',$(if $(RAW_VARS),$(value $V),$($V)))'), \ + $(info $V=$(if $(RAW_VARS),$(value $V),$($V)))))) +# ')))) # Syntax colouring... + +# See details above, same as for printvars +.PHONY: show-vars +show-vars: VARS?=% +show-vars: + @: + $(foreach i, \ + $(call clean-json, { \ + $(foreach V, \ + $(.VARIABLES), \ + $(and $(filter $(VARS),$(V)) \ + , \ + $(filter-out environment% default automatic, $(origin $V)) \ + , \ + "$V": { \ + "expanded": $(call mk-json-str,$($V))$(comma) \ + "raw": $(call mk-json-str,$(value $V)) \ + }$(comma) \ + ) \ + ) \ + } ) \ + , \ + $(info $(i)) \ + ) + +.PHONY: clean +clean: + rm -rf $(BASE_TARGET_DIR) $(BINARIES_DIR) $(HOST_DIR) $(HOST_DIR_SYMLINK) \ + $(BUILD_DIR) $(BASE_DIR)/staging \ + $(LEGAL_INFO_DIR) $(GRAPHS_DIR) $(PER_PACKAGE_DIR) $(CPE_UPDATES_DIR) \ + $(O)/pkg-stats.* + +.PHONY: distclean +distclean: clean +ifeq ($(O),$(CURDIR)/output) + rm -rf $(O) +endif + rm -rf $(TOPDIR)/dl $(BR2_CONFIG) $(CONFIG_DIR)/.config.old $(CONFIG_DIR)/..config.tmp \ + $(CONFIG_DIR)/.auto.deps $(BASE_DIR)/.br2-external.* + +.PHONY: help +help: + @echo 'Cleaning:' + @echo ' clean - delete all files created by build' + @echo ' distclean - delete all non-source files (including .config)' + @echo + @echo 'Build:' + @echo ' all - make world' + @echo ' toolchain - build toolchain' + @echo ' sdk - build relocatable SDK' + @echo + @echo 'Configuration:' + @echo ' menuconfig - interactive curses-based configurator' + @echo ' nconfig - interactive ncurses-based configurator' + @echo ' xconfig - interactive Qt-based configurator' + @echo ' gconfig - interactive GTK-based configurator' + @echo ' oldconfig - resolve any unresolved symbols in .config' + @echo ' syncconfig - Same as oldconfig, but quietly, additionally update deps' + @echo ' olddefconfig - Same as syncconfig but sets new symbols to their default value' + @echo ' randconfig - New config with random answer to all options' + @echo ' defconfig - New config with default answer to all options;' + @echo ' BR2_DEFCONFIG, if set on the command line, is used as input' + @echo ' savedefconfig - Save current config to BR2_DEFCONFIG (minimal config)' + @echo ' update-defconfig - Same as savedefconfig' + @echo ' allyesconfig - New config where all options are accepted with yes' + @echo ' allnoconfig - New config where all options are answered with no' + @echo ' alldefconfig - New config where all options are set to default' + @echo ' randpackageconfig - New config with random answer to package options' + @echo ' allyespackageconfig - New config where pkg options are accepted with yes' + @echo ' allnopackageconfig - New config where package options are answered with no' + @echo + @echo 'Package-specific:' + @echo ' - Build and install and all its dependencies' + @echo ' -source - Only download the source files for ' + @echo ' -extract - Extract sources' + @echo ' -patch - Apply patches to ' + @echo ' -depends - Build '\''s dependencies' + @echo ' -configure - Build up to the configure step' + @echo ' -build - Build up to the build step' + @echo ' -show-info - generate info about , as a JSON blurb' + @echo ' -show-depends - List packages on which depends' + @echo ' -show-rdepends - List packages which have as a dependency' + @echo ' -show-recursive-depends' + @echo ' - Recursively list packages on which depends' + @echo ' -show-recursive-rdepends' + @echo ' - Recursively list packages which have as a dependency' + @echo ' -graph-depends - Generate a graph of '\''s dependencies' + @echo ' -graph-rdepends - Generate a graph of '\''s reverse dependencies' + @echo ' -dirclean - Remove build directory' + @echo ' -reconfigure - Restart the build from the configure step' + @echo ' -rebuild - Restart the build from the build step' + @echo ' -reinstall - Restart the build from the install step' + $(foreach p,$(HELP_PACKAGES), \ + @echo $(sep) \ + @echo '$($(p)_NAME):' $(sep) \ + $($(p)_HELP_CMDS)$(sep)) + @echo + @echo 'Documentation:' + @echo ' manual - build manual in all formats' + @echo ' manual-html - build manual in HTML' + @echo ' manual-split-html - build manual in split HTML' + @echo ' manual-pdf - build manual in PDF' + @echo ' manual-text - build manual in text' + @echo ' manual-epub - build manual in ePub' + @echo ' graph-build - generate graphs of the build times' + @echo ' graph-depends - generate graph of the dependency tree' + @echo ' graph-size - generate stats of the filesystem size' + @echo ' list-defconfigs - list all defconfigs (pre-configured minimal systems)' + @echo + @echo 'Miscellaneous:' + @echo ' source - download all sources needed for offline-build' + @echo ' external-deps - list external packages used' + @echo ' legal-info - generate info about license compliance' + @echo ' show-info - generate info about packages, as a JSON blurb' + @echo ' pkg-stats - generate info about packages as JSON and HTML' + @echo ' missing-cpe - generate XML snippets for missing CPE identifiers' + @echo ' printvars - dump internal variables selected with VARS=...' + @echo ' show-vars - dump all internal variables as a JSON blurb; use VARS=...' + @echo ' to limit the list to variables names matching that pattern' + @echo + @echo ' make V=0|1 - 0 => quiet build (default), 1 => verbose build' + @echo ' make O=dir - Locate all output files in "dir", including .config' + @echo + @echo 'For further details, see README, generate the Buildroot manual, or consult' + @echo 'it on-line at http://buildroot.org/docs.html' + @echo + +# List the defconfig files +# $(1): base directory +# $(2): br2-external name, empty for bundled +define list-defconfigs + @first=true; \ + for defconfig in $(1)/configs/*_defconfig; do \ + [ -f "$${defconfig}" ] || continue; \ + if $${first}; then \ + if [ "$(2)" ]; then \ + printf 'External configs in "$(call qstrip,$(2))":\n'; \ + else \ + printf "Built-in configs:\n"; \ + fi; \ + first=false; \ + fi; \ + defconfig="$${defconfig##*/}"; \ + printf " %-35s - Build for %s\n" "$${defconfig}" "$${defconfig%_defconfig}"; \ + done; \ + $${first} || printf "\n" +endef + +# We iterate over BR2_EXTERNAL_NAMES rather than BR2_EXTERNAL_DIRS, +# because we want to display the name of the br2-external tree. +.PHONY: list-defconfigs +list-defconfigs: + $(call list-defconfigs,$(TOPDIR)) + $(foreach name,$(BR2_EXTERNAL_NAMES),\ + $(call list-defconfigs,$(BR2_EXTERNAL_$(name)_PATH),\ + $(BR2_EXTERNAL_$(name)_DESC))$(sep)) + +release: OUT = buildroot-$(BR2_VERSION) + +# Create release tarballs. We need to fiddle a bit to add the generated +# documentation to the git output +release: + git archive --format=tar --prefix=$(OUT)/ HEAD > $(OUT).tar + $(MAKE) O=$(OUT) manual-html manual-text manual-pdf + $(MAKE) O=$(OUT) distclean + tar rf $(OUT).tar $(OUT) + gzip -9 -c < $(OUT).tar > $(OUT).tar.gz + xz -9 -c < $(OUT).tar > $(OUT).tar.xz + rm -rf $(OUT) $(OUT).tar + +print-version: + @echo $(BR2_VERSION_FULL) + +check-flake8: + $(Q)git ls-tree -r --name-only HEAD \ + | xargs file \ + | grep 'Python script' \ + | cut -d':' -f1 \ + | xargs -- python3 -m flake8 --statistics + +check-package: + find $(TOPDIR) -type f \( -name '*.mk' -o -name '*.hash' -o -name 'Config.*' -o -name '*.patch' \) \ + -a -not -name '*.orig' -a -not -name '*.rej' \ + -exec ./utils/check-package --exclude=Sob {} + + +include docs/manual/manual.mk +-include $(foreach dir,$(BR2_EXTERNAL_DIRS),$(sort $(wildcard $(dir)/docs/*/*.mk))) + +.PHONY: $(noconfig_targets) + +endif #umask / $(CURDIR) / $(O) diff --git a/Makefile.legacy b/Makefile.legacy new file mode 100644 index 000000000..800c08926 --- /dev/null +++ b/Makefile.legacy @@ -0,0 +1,59 @@ +# +# Makefile.legacy - support for backward compatibility +# +# This file contains placeholders to detect backward-compatibility problems. +# When a buildroot "API" feature is being deprecated, a rule should be added +# here that issues an error when the old feature is used. + +ifeq ($(BR2_LEGACY),y) +$(error "You have legacy configuration in your .config! Please check your configuration.") +endif + +# +# Legacy options from 2014.02 +# + +# The BUILDROOT_DL_DIR environment variable was renamed by BR2_DL_DIR. We +# want to detect someone using the old variable, _except_ if also the new +# variable was set. By the time we get here, however, we no longer have +# access to the BR2_DL_DIR environment variable (because it has been overridden +# by the .config inclusion). However, the environment variable (if defined) was +# saved in DL_DIR, so we can use that. +ifneq ($(BUILDROOT_DL_DIR),) +ifneq ($(BUILDROOT_DL_DIR),$(DL_DIR)) +$(error "The BUILDROOT_DL_DIR environment variable was renamed to BR2_DL_DIR.") +endif +endif + +# If a script is using the deprecated BUILDROOT_CONFIG, make sure it fails. +# Add some directories in front just in case someone used dirname on it. +BUILDROOT_CONFIG_FAKE = /tmp/deprecated/The-BUILDROOT_CONFIG-environment-variable-was-renamed-to-BR2_CONFIG + +# Similar to above for BUILDROOT_CONFIG, but here we have no .config equivalent. +ifneq ($(BUILDROOT_CONFIG),) +ifneq ($(BUILDROOT_CONFIG),$(BR2_CONFIG)) +ifneq ($(BUILDROOT_CONFIG),$(BUILDROOT_CONFIG_FAKE)) +$(error "The BUILDROOT_CONFIG environment variable was renamed to BR2_CONFIG.") +endif +endif +endif + +BUILDROOT_CONFIG = $(BUILDROOT_CONFIG_FAKE) +export BUILDROOT_CONFIG + +# +# Legacy options from 2012.08 +# + +host-pkg-config: + @$(call MESSAGE,host-pkg-config is replaced by host-pkgconf) + @$(call MESSAGE,please update your .mk files) + @false +.PHONY: host-pkg-config + +# +# Legacy options from 2012.05 +# +GENTARGETS = $$(error The GENTARGETS macro no longer exists; use $$$$(eval $$$$(generic-package)) or $$$$(eval $$$$(host-generic-package))) +AUTOTARGETS = $$(error The AUTOTARGETS macro no longer exists; use $$$$(eval $$$$(autotools-package)) or $$$$(eval $$$$(host-autotools-package))) +CMAKETARGETS = $$(error The CMAKETARGETS macro no longer exists; use $$$$(eval $$$$(cmake-package)) or $$$$(eval $$$$(host-cmake-package))) diff --git a/README b/README new file mode 100644 index 000000000..008e996f5 --- /dev/null +++ b/README @@ -0,0 +1,26 @@ +Buildroot is a simple, efficient and easy-to-use tool to generate embedded +Linux systems through cross-compilation. + +The documentation can be found in docs/manual. You can generate a text +document with 'make manual-text' and read output/docs/manual/manual.text. +Online documentation can be found at http://buildroot.org/docs.html + +To build and use the buildroot stuff, do the following: + +1) run 'make menuconfig' +2) select the target architecture and the packages you wish to compile +3) run 'make' +4) wait while it compiles +5) find the kernel, bootloader, root filesystem, etc. in output/images + +You do not need to be root to build or run buildroot. Have fun! + +Buildroot comes with a basic configuration for a number of boards. Run +'make list-defconfigs' to view the list of provided configurations. + +Please feed suggestions, bug reports, insults, and bribes back to the +buildroot mailing list: buildroot@buildroot.org +You can also find us on #buildroot on OFTC IRC. + +If you would like to contribute patches, please read +https://buildroot.org/manual.html#submitting-patches diff --git a/arch/Config.in b/arch/Config.in new file mode 100644 index 000000000..1c0c400a9 --- /dev/null +++ b/arch/Config.in @@ -0,0 +1,467 @@ +menu "Target options" + +config BR2_ARCH_IS_64 + bool + +config BR2_KERNEL_64_USERLAND_32 + bool + +config BR2_SOFT_FLOAT + bool + +config BR2_USE_MMU + bool + +choice + prompt "Target Architecture" + default BR2_i386 + help + Select the target architecture family to build for. + +config BR2_arcle + bool "ARC (little endian)" + select BR2_USE_MMU + help + Synopsys' DesignWare ARC Processor Cores are a family of + 32-bit CPUs that can be used from deeply embedded to high + performance host applications. Little endian. + +config BR2_arceb + bool "ARC (big endian)" + select BR2_USE_MMU + help + Synopsys' DesignWare ARC Processor Cores are a family of + 32-bit CPUs that can be used from deeply embedded to high + performance host applications. Big endian. + +config BR2_arm + bool "ARM (little endian)" + # MMU support is set by the subarchitecture file, arch/Config.in.arm + help + ARM is a 32-bit reduced instruction set computer (RISC) + instruction set architecture (ISA) developed by ARM Holdings. + Little endian. + http://www.arm.com/ + http://en.wikipedia.org/wiki/ARM + +config BR2_armeb + bool "ARM (big endian)" + select BR2_USE_MMU + help + ARM is a 32-bit reduced instruction set computer (RISC) + instruction set architecture (ISA) developed by ARM Holdings. + Big endian. + http://www.arm.com/ + http://en.wikipedia.org/wiki/ARM + +config BR2_aarch64 + bool "AArch64 (little endian)" + select BR2_ARCH_IS_64 + help + Aarch64 is a 64-bit architecture developed by ARM Holdings. + http://www.arm.com/products/processors/instruction-set-architectures/armv8-architecture.php + http://en.wikipedia.org/wiki/ARM + +config BR2_aarch64_be + bool "AArch64 (big endian)" + select BR2_ARCH_IS_64 + help + Aarch64 is a 64-bit architecture developed by ARM Holdings. + http://www.arm.com/products/processors/instruction-set-architectures/armv8-architecture.php + http://en.wikipedia.org/wiki/ARM + +config BR2_i386 + bool "i386" + select BR2_USE_MMU + help + Intel i386 architecture compatible microprocessor + http://en.wikipedia.org/wiki/I386 + +config BR2_m68k + bool "m68k" + # MMU support is set by the subarchitecture file, arch/Config.in.m68k + help + Motorola 68000 family microprocessor + http://en.wikipedia.org/wiki/M68k + +config BR2_microblazeel + bool "Microblaze AXI (little endian)" + select BR2_USE_MMU + help + Soft processor core designed for Xilinx FPGAs from Xilinx. AXI + bus based architecture (little endian) + http://www.xilinx.com + http://en.wikipedia.org/wiki/Microblaze + +config BR2_microblazebe + bool "Microblaze non-AXI (big endian)" + select BR2_USE_MMU + help + Soft processor core designed for Xilinx FPGAs from Xilinx. PLB + bus based architecture (non-AXI, big endian) + http://www.xilinx.com + http://en.wikipedia.org/wiki/Microblaze + +config BR2_mips + bool "MIPS (big endian)" + select BR2_USE_MMU + help + MIPS is a RISC microprocessor from MIPS Technologies. Big + endian. + http://www.mips.com/ + http://en.wikipedia.org/wiki/MIPS_Technologies + +config BR2_mipsel + bool "MIPS (little endian)" + select BR2_USE_MMU + help + MIPS is a RISC microprocessor from MIPS Technologies. Little + endian. + http://www.mips.com/ + http://en.wikipedia.org/wiki/MIPS_Technologies + +config BR2_mips64 + bool "MIPS64 (big endian)" + select BR2_ARCH_IS_64 + select BR2_USE_MMU + help + MIPS is a RISC microprocessor from MIPS Technologies. Big + endian. + http://www.mips.com/ + http://en.wikipedia.org/wiki/MIPS_Technologies + +config BR2_mips64el + bool "MIPS64 (little endian)" + select BR2_ARCH_IS_64 + select BR2_USE_MMU + help + MIPS is a RISC microprocessor from MIPS Technologies. Little + endian. + http://www.mips.com/ + http://en.wikipedia.org/wiki/MIPS_Technologies + +config BR2_nios2 + bool "Nios II" + select BR2_USE_MMU + help + Nios II is a soft core processor from Altera Corporation. + http://www.altera.com/ + http://en.wikipedia.org/wiki/Nios_II + +config BR2_or1k + bool "OpenRISC" + select BR2_USE_MMU + help + OpenRISC is a free and open processor for embedded system. + http://openrisc.io + +config BR2_powerpc + bool "PowerPC" + select BR2_USE_MMU + help + PowerPC is a RISC architecture created by Apple-IBM-Motorola + alliance. Big endian. + http://www.power.org/ + http://en.wikipedia.org/wiki/Powerpc + +config BR2_powerpc64 + bool "PowerPC64 (big endian)" + select BR2_ARCH_IS_64 + select BR2_USE_MMU + help + PowerPC is a RISC architecture created by Apple-IBM-Motorola + alliance. Big endian. + http://www.power.org/ + http://en.wikipedia.org/wiki/Powerpc + +config BR2_powerpc64le + bool "PowerPC64 (little endian)" + select BR2_ARCH_IS_64 + select BR2_USE_MMU + help + PowerPC is a RISC architecture created by Apple-IBM-Motorola + alliance. Little endian. + http://www.power.org/ + http://en.wikipedia.org/wiki/Powerpc + +config BR2_riscv + bool "RISCV" + select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 + help + RISC-V is an open, free Instruction Set Architecture created + by the UC Berkeley Architecture Research group and supported + and promoted by RISC-V Foundation. + https://riscv.org/ + https://en.wikipedia.org/wiki/RISC-V + +config BR2_s390x + bool "s390x" + select BR2_ARCH_IS_64 + select BR2_USE_MMU + help + s390x is a big-endian architecture made by IBM. + http://www.ibm.com/ + http://en.wikipedia.org/wiki/IBM_System/390 + +config BR2_sh + bool "SuperH" + select BR2_USE_MMU + help + SuperH (or SH) is a 32-bit reduced instruction set computer + (RISC) instruction set architecture (ISA) developed by + Hitachi. + http://www.hitachi.com/ + http://en.wikipedia.org/wiki/SuperH + +config BR2_sparc + bool "SPARC" + select BR2_USE_MMU + help + SPARC (from Scalable Processor Architecture) is a RISC + instruction set architecture (ISA) developed by Sun + Microsystems. + http://www.oracle.com/sun + http://en.wikipedia.org/wiki/Sparc + +config BR2_sparc64 + bool "SPARC64" + select BR2_ARCH_IS_64 + select BR2_USE_MMU + help + SPARC (from Scalable Processor Architecture) is a RISC + instruction set architecture (ISA) developed by Sun + Microsystems. + http://www.oracle.com/sun + http://en.wikipedia.org/wiki/Sparc + +config BR2_x86_64 + bool "x86_64" + select BR2_ARCH_IS_64 + select BR2_USE_MMU + help + x86-64 is an extension of the x86 instruction set (Intel i386 + architecture compatible microprocessor). + http://en.wikipedia.org/wiki/X86_64 + +config BR2_xtensa + bool "Xtensa" + # MMU support is set by the subarchitecture file, arch/Config.in.xtensa + help + Xtensa is a Tensilica processor IP architecture. + http://en.wikipedia.org/wiki/Xtensa + http://www.tensilica.com/ + +endchoice + +# For some architectures or specific cores, our internal toolchain +# backend is not suitable (like, missing support in upstream gcc, or +# no ChipCo fork exists...) +config BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT + bool + +config BR2_ARCH_HAS_TOOLCHAIN_BUILDROOT + bool + default y if !BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT + +# The following symbols are selected by the individual +# Config.in.$ARCH files +config BR2_ARCH_NEEDS_GCC_AT_LEAST_4_8 + bool + +config BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9 + bool + select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_8 + +config BR2_ARCH_NEEDS_GCC_AT_LEAST_5 + bool + select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9 + +config BR2_ARCH_NEEDS_GCC_AT_LEAST_6 + bool + select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 + +config BR2_ARCH_NEEDS_GCC_AT_LEAST_7 + bool + select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 + +config BR2_ARCH_NEEDS_GCC_AT_LEAST_8 + bool + select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 + +config BR2_ARCH_NEEDS_GCC_AT_LEAST_9 + bool + select BR2_ARCH_NEEDS_GCC_AT_LEAST_8 + +config BR2_ARCH_NEEDS_GCC_AT_LEAST_10 + bool + select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 + +config BR2_ARCH_NEEDS_GCC_AT_LEAST_11 + bool + select BR2_ARCH_NEEDS_GCC_AT_LEAST_10 + +config BR2_ARCH_NEEDS_GCC_AT_LEAST_12 + bool + select BR2_ARCH_NEEDS_GCC_AT_LEAST_11 + +# The following string values are defined by the individual +# Config.in.$ARCH files +config BR2_ARCH + string + +config BR2_NORMALIZED_ARCH + string + +config BR2_ENDIAN + string + +config BR2_GCC_TARGET_ARCH + string + +config BR2_GCC_TARGET_ABI + string + +config BR2_GCC_TARGET_NAN + string + +config BR2_GCC_TARGET_FP32_MODE + string + +config BR2_GCC_TARGET_CPU + string + +# The value of this option will be passed as --with-fpu= when +# building gcc (internal backend) or -mfpu= in the toolchain +# wrapper (external toolchain) +config BR2_GCC_TARGET_FPU + string + +# The value of this option will be passed as --with-float= when +# building gcc (internal backend) or -mfloat-abi= in the toolchain +# wrapper (external toolchain) +config BR2_GCC_TARGET_FLOAT_ABI + string + +# The value of this option will be passed as --with-mode= when +# building gcc (internal backend) or -m in the toolchain +# wrapper (external toolchain) +config BR2_GCC_TARGET_MODE + string + +# Must be selected by binary formats that support shared libraries. +config BR2_BINFMT_SUPPORTS_SHARED + bool + +# Must match the name of the architecture from readelf point of view, +# i.e the "Machine:" field of readelf output. See get_machine_name() +# in binutils/readelf.c for the list of possible values. +config BR2_READELF_ARCH_NAME + string + +if BR2_arcle || BR2_arceb +source "arch/Config.in.arc" +endif + +if BR2_arm || BR2_armeb || BR2_aarch64 || BR2_aarch64_be +source "arch/Config.in.arm" +endif + +if BR2_m68k +source "arch/Config.in.m68k" +endif + +if BR2_microblazeel || BR2_microblazebe +source "arch/Config.in.microblaze" +endif + +if BR2_mips || BR2_mips64 || BR2_mipsel || BR2_mips64el +source "arch/Config.in.mips" +endif + +if BR2_nios2 +source "arch/Config.in.nios2" +endif + +if BR2_or1k +source "arch/Config.in.or1k" +endif + +if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le +source "arch/Config.in.powerpc" +endif + +if BR2_riscv +source "arch/Config.in.riscv" +endif + +if BR2_s390x +source "arch/Config.in.s390x" +endif + +if BR2_sh +source "arch/Config.in.sh" +endif + +if BR2_sparc || BR2_sparc64 +source "arch/Config.in.sparc" +endif + +if BR2_i386 || BR2_x86_64 +source "arch/Config.in.x86" +endif + +if BR2_xtensa +source "arch/Config.in.xtensa" +endif + +# Set up target binary format +choice + prompt "Target Binary Format" + default BR2_BINFMT_ELF if BR2_USE_MMU + default BR2_BINFMT_FLAT + +config BR2_BINFMT_ELF + bool "ELF" + depends on BR2_USE_MMU + select BR2_BINFMT_SUPPORTS_SHARED + help + ELF (Executable and Linkable Format) is a format for libraries + and executables used across different architectures and + operating systems. + +config BR2_BINFMT_FLAT + bool "FLAT" + depends on !BR2_USE_MMU + help + FLAT binary is a relatively simple and lightweight executable + format based on the original a.out format. It is widely used + in environment where no MMU is available. + +endchoice + +# Set up flat binary type +choice + prompt "FLAT Binary type" + default BR2_BINFMT_FLAT_ONE + depends on BR2_BINFMT_FLAT + +config BR2_BINFMT_FLAT_ONE + bool "One memory region" + help + All segments are linked into one memory region. + +config BR2_BINFMT_FLAT_SHARED + bool "Shared binary" + depends on BR2_m68k + # Even though this really generates shared binaries, there is no libdl + # and dlopen() cannot be used. So packages that require shared + # libraries cannot be built. Therefore, we don't select + # BR2_BINFMT_SUPPORTS_SHARED and therefore force BR2_STATIC_LIBS. + # Although this adds -static to the compilation, that's not a problem + # because the -mid-shared-library option overrides it. + help + Allow to load and link indiviual FLAT binaries at run time. + +endchoice + +endmenu # Target options diff --git a/arch/Config.in.arc b/arch/Config.in.arc new file mode 100644 index 000000000..388d3496b --- /dev/null +++ b/arch/Config.in.arc @@ -0,0 +1,129 @@ +choice + prompt "Target CPU" + default BR2_arc770d + depends on BR2_arc + help + Specific CPU to use + +config BR2_arc750d + bool "ARC 750D" + +config BR2_arc770d + bool "ARC 770D" + +config BR2_archs38 + bool "ARC HS38" + help + Generic ARC HS capable of running Linux, i.e. with MMU, + caches and 32-bit multiplier. Also it corresponds to the + default configuration in older GNU toolchain versions. + +config BR2_archs38_64mpy + bool "ARC HS38 with 64-bit mpy" + help + Fully featured ARC HS capable of running Linux, i.e. with + MMU, caches and 64-bit multiplier. + + If you're not sure which version of ARC HS core you build + for use this one. + +config BR2_archs38_full + bool "ARC HS38 with Quad MAC & FPU" + help + Fully featured ARC HS with additional support for + - Dual- and quad multiply and MC oprations + - Double-precision FPU + + It corresponds to "hs38_slc_full" ARC HS template in + ARChitect. + +config BR2_archs4x_rel31 + bool "ARC HS48 rel 31" + help + Build for HS48 release 3.1 + +config BR2_archs4x + bool "ARC HS48" + help + Latest release of HS48 processor + - Dual and Quad multiply and MAC operations + - Double-precision FPU + +endchoice + +# Choice of atomic instructions presence +config BR2_ARC_ATOMIC_EXT + bool "Atomic extension (LLOCK/SCOND instructions)" + default y if BR2_arc770d + default y if BR2_archs38 || BR2_archs38_64mpy || BR2_archs38_full + default y if BR2_archs4x_rel31 || BR2_archs4x + +config BR2_ARCH + default "arc" if BR2_arcle + default "arceb" if BR2_arceb + +config BR2_NORMALIZED_ARCH + default "arc" + +config BR2_arc + bool + default y if BR2_arcle || BR2_arceb + +config BR2_ENDIAN + default "LITTLE" if BR2_arcle + default "BIG" if BR2_arceb + +config BR2_GCC_TARGET_CPU + default "arc700" if BR2_arc750d + default "arc700" if BR2_arc770d + default "archs" if BR2_archs38 + default "hs38" if BR2_archs38_64mpy + default "hs38_linux" if BR2_archs38_full + default "hs4x_rel31" if BR2_archs4x_rel31 + default "hs4x" if BR2_archs4x + +config BR2_READELF_ARCH_NAME + default "ARCompact" if BR2_arc750d || BR2_arc770d + default "ARCv2" if BR2_archs38 || BR2_archs38_64mpy || BR2_archs38_full + default "ARCv2" if BR2_archs4x_rel31 || BR2_archs4x + +choice + prompt "MMU Page Size" + default BR2_ARC_PAGE_SIZE_8K + help + MMU starting from version 3 (found in ARC 770) and now + version 4 (found in ARC HS38) allows the selection of the + page size during ASIC design creation. + + The following options are available for MMU v3 and v4: 4kB, + 8kB and 16 kB. + + The default is 8 kB (that really matches the only page size + in MMU v2). It is important to build a toolchain with page + size matching the hardware configuration. Otherwise + user-space applications will fail at runtime. + +config BR2_ARC_PAGE_SIZE_4K + bool "4KB" + depends on !BR2_arc750d + +config BR2_ARC_PAGE_SIZE_8K + bool "8KB" + help + This is the one and only option available for MMUv2 and + default value for MMU v3 and v4. + +config BR2_ARC_PAGE_SIZE_16K + bool "16KB" + depends on !BR2_arc750d + +endchoice + +config BR2_ARC_PAGE_SIZE + string + default "4K" if BR2_ARC_PAGE_SIZE_4K + default "8K" if BR2_ARC_PAGE_SIZE_8K + default "16K" if BR2_ARC_PAGE_SIZE_16K + +# vim: ft=kconfig +# -*- mode:kconfig; -*- diff --git a/arch/Config.in.arm b/arch/Config.in.arm new file mode 100644 index 000000000..c391d6c72 --- /dev/null +++ b/arch/Config.in.arm @@ -0,0 +1,917 @@ +# arm cpu features +config BR2_ARM_CPU_HAS_NEON + bool + +# for some cores, NEON support is optional +config BR2_ARM_CPU_MAYBE_HAS_NEON + bool + +# For some cores, the FPU is optional +config BR2_ARM_CPU_MAYBE_HAS_FPU + bool + +config BR2_ARM_CPU_HAS_FPU + bool + +# for some cores, VFPv2 is optional +config BR2_ARM_CPU_MAYBE_HAS_VFPV2 + bool + select BR2_ARM_CPU_MAYBE_HAS_FPU + +config BR2_ARM_CPU_HAS_VFPV2 + bool + select BR2_ARM_CPU_HAS_FPU + +# for some cores, VFPv3 is optional +config BR2_ARM_CPU_MAYBE_HAS_VFPV3 + bool + select BR2_ARM_CPU_MAYBE_HAS_VFPV2 + +config BR2_ARM_CPU_HAS_VFPV3 + bool + select BR2_ARM_CPU_HAS_VFPV2 + +# for some cores, VFPv4 is optional +config BR2_ARM_CPU_MAYBE_HAS_VFPV4 + bool + select BR2_ARM_CPU_MAYBE_HAS_VFPV3 + +config BR2_ARM_CPU_HAS_VFPV4 + bool + select BR2_ARM_CPU_HAS_VFPV3 + +# FPv4 is always optional +config BR2_ARM_CPU_MAYBE_HAS_FPV4 + bool + select BR2_ARM_CPU_MAYBE_HAS_FPU + +config BR2_ARM_CPU_HAS_FPV4 + bool + select BR2_ARM_CPU_HAS_FPU + +# FPv5 is always optional +config BR2_ARM_CPU_MAYBE_HAS_FPV5 + bool + select BR2_ARM_CPU_MAYBE_HAS_FPV4 + +config BR2_ARM_CPU_HAS_FPV5 + bool + select BR2_ARM_CPU_HAS_FPV4 + +config BR2_ARM_CPU_HAS_FP_ARMV8 + bool + select BR2_ARM_CPU_HAS_VFPV4 + +config BR2_ARM_CPU_HAS_ARM + bool + +config BR2_ARM_CPU_HAS_THUMB + bool + +config BR2_ARM_CPU_HAS_THUMB2 + bool + +config BR2_ARM_CPU_ARMV4 + bool + select BR2_USE_MMU + +config BR2_ARM_CPU_ARMV5 + bool + select BR2_USE_MMU + +config BR2_ARM_CPU_ARMV6 + bool + select BR2_USE_MMU + +config BR2_ARM_CPU_ARMV7A + bool + select BR2_USE_MMU + +config BR2_ARM_CPU_ARMV7M + bool + +config BR2_ARM_CPU_ARMV8A + bool + select BR2_USE_MMU + +choice + prompt "Target Architecture Variant" + default BR2_cortex_a53 if BR2_ARCH_IS_64 + default BR2_arm926t + help + Specific CPU variant to use + +if !BR2_ARCH_IS_64 +comment "armv4 cores" +config BR2_arm920t + bool "arm920t" + select BR2_ARM_CPU_HAS_ARM + select BR2_ARM_CPU_HAS_THUMB + select BR2_ARM_CPU_ARMV4 +config BR2_arm922t + bool "arm922t" + select BR2_ARM_CPU_HAS_ARM + select BR2_ARM_CPU_HAS_THUMB + select BR2_ARM_CPU_ARMV4 +config BR2_fa526 + bool "fa526/626" + select BR2_ARM_CPU_HAS_ARM + select BR2_ARM_CPU_ARMV4 +config BR2_strongarm + bool "strongarm sa110/sa1100" + select BR2_ARM_CPU_HAS_ARM + select BR2_ARM_CPU_ARMV4 + +comment "armv5 cores" +config BR2_arm926t + bool "arm926t" + select BR2_ARM_CPU_HAS_ARM + select BR2_ARM_CPU_MAYBE_HAS_VFPV2 + select BR2_ARM_CPU_HAS_THUMB + select BR2_ARM_CPU_ARMV5 +config BR2_iwmmxt + bool "iwmmxt" + select BR2_ARM_CPU_HAS_ARM + select BR2_ARM_CPU_ARMV5 +config BR2_xscale + bool "xscale" + select BR2_ARM_CPU_HAS_ARM + select BR2_ARM_CPU_HAS_THUMB + select BR2_ARM_CPU_ARMV5 + +comment "armv6 cores" +config BR2_arm1136j_s + bool "arm1136j-s" + select BR2_ARM_CPU_HAS_ARM + select BR2_ARM_CPU_HAS_THUMB + select BR2_ARM_CPU_ARMV6 +config BR2_arm1136jf_s + bool "arm1136jf-s" + select BR2_ARM_CPU_HAS_ARM + select BR2_ARM_CPU_HAS_VFPV2 + select BR2_ARM_CPU_HAS_THUMB + select BR2_ARM_CPU_ARMV6 +config BR2_arm1176jz_s + bool "arm1176jz-s" + select BR2_ARM_CPU_HAS_ARM + select BR2_ARM_CPU_HAS_THUMB + select BR2_ARM_CPU_ARMV6 +config BR2_arm1176jzf_s + bool "arm1176jzf-s" + select BR2_ARM_CPU_HAS_ARM + select BR2_ARM_CPU_HAS_VFPV2 + select BR2_ARM_CPU_HAS_THUMB + select BR2_ARM_CPU_ARMV6 +config BR2_arm11mpcore + bool "mpcore" + select BR2_ARM_CPU_HAS_ARM + select BR2_ARM_CPU_MAYBE_HAS_VFPV2 + select BR2_ARM_CPU_HAS_THUMB + select BR2_ARM_CPU_ARMV6 + +comment "armv7a cores" +config BR2_cortex_a5 + bool "cortex-A5" + select BR2_ARM_CPU_HAS_ARM + select BR2_ARM_CPU_MAYBE_HAS_NEON + select BR2_ARM_CPU_MAYBE_HAS_VFPV4 + select BR2_ARM_CPU_HAS_THUMB2 + select BR2_ARM_CPU_ARMV7A +config BR2_cortex_a7 + bool "cortex-A7" + select BR2_ARM_CPU_HAS_ARM + select BR2_ARM_CPU_HAS_NEON + select BR2_ARM_CPU_HAS_VFPV4 + select BR2_ARM_CPU_HAS_THUMB2 + select BR2_ARM_CPU_ARMV7A +config BR2_cortex_a8 + bool "cortex-A8" + select BR2_ARM_CPU_HAS_ARM + select BR2_ARM_CPU_HAS_NEON + select BR2_ARM_CPU_HAS_VFPV3 + select BR2_ARM_CPU_HAS_THUMB2 + select BR2_ARM_CPU_ARMV7A +config BR2_cortex_a9 + bool "cortex-A9" + select BR2_ARM_CPU_HAS_ARM + select BR2_ARM_CPU_MAYBE_HAS_NEON + select BR2_ARM_CPU_MAYBE_HAS_VFPV3 + select BR2_ARM_CPU_HAS_THUMB2 + select BR2_ARM_CPU_ARMV7A +config BR2_cortex_a12 + bool "cortex-A12" + select BR2_ARM_CPU_HAS_ARM + select BR2_ARM_CPU_HAS_NEON + select BR2_ARM_CPU_HAS_VFPV4 + select BR2_ARM_CPU_HAS_THUMB2 + select BR2_ARM_CPU_ARMV7A +config BR2_cortex_a15 + bool "cortex-A15" + select BR2_ARM_CPU_HAS_ARM + select BR2_ARM_CPU_HAS_NEON + select BR2_ARM_CPU_HAS_VFPV4 + select BR2_ARM_CPU_HAS_THUMB2 + select BR2_ARM_CPU_ARMV7A +config BR2_cortex_a15_a7 + bool "cortex-A15/A7 big.LITTLE" + select BR2_ARM_CPU_HAS_ARM + select BR2_ARM_CPU_HAS_NEON + select BR2_ARM_CPU_HAS_VFPV4 + select BR2_ARM_CPU_HAS_THUMB2 + select BR2_ARM_CPU_ARMV7A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9 +config BR2_cortex_a17 + bool "cortex-A17" + select BR2_ARM_CPU_HAS_ARM + select BR2_ARM_CPU_HAS_NEON + select BR2_ARM_CPU_HAS_VFPV4 + select BR2_ARM_CPU_HAS_THUMB2 + select BR2_ARM_CPU_ARMV7A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 +config BR2_cortex_a17_a7 + bool "cortex-A17/A7 big.LITTLE" + select BR2_ARM_CPU_HAS_ARM + select BR2_ARM_CPU_HAS_NEON + select BR2_ARM_CPU_HAS_VFPV4 + select BR2_ARM_CPU_HAS_THUMB2 + select BR2_ARM_CPU_ARMV7A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 +config BR2_pj4 + bool "pj4" + select BR2_ARM_CPU_HAS_ARM + select BR2_ARM_CPU_HAS_VFPV3 + select BR2_ARM_CPU_ARMV7A + +# Cortex-M cores are only supported for little endian configurations +if BR2_arm +comment "armv7m cores" +config BR2_cortex_m3 + bool "cortex-M3" + select BR2_ARM_CPU_HAS_THUMB2 + select BR2_ARM_CPU_ARMV7M +config BR2_cortex_m4 + bool "cortex-M4" + select BR2_ARM_CPU_HAS_THUMB2 + select BR2_ARM_CPU_MAYBE_HAS_FPV4 + select BR2_ARM_CPU_ARMV7M +config BR2_cortex_m7 + bool "cortex-M7" + select BR2_ARM_CPU_HAS_THUMB2 + select BR2_ARM_CPU_MAYBE_HAS_FPV5 + select BR2_ARM_CPU_ARMV7M + select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 +endif # BR2_arm +endif # !BR2_ARCH_IS_64 + +comment "armv8 cores" +config BR2_cortex_a32 + bool "cortex-A32" + depends on !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_ARM + select BR2_ARM_CPU_HAS_NEON + select BR2_ARM_CPU_HAS_THUMB2 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 +config BR2_cortex_a35 + bool "cortex-A35" + select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 +config BR2_cortex_a53 + bool "cortex-A53" + select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A +config BR2_cortex_a57 + bool "cortex-A57" + select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A +config BR2_cortex_a57_a53 + bool "cortex-A57/A53 big.LITTLE" + select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 +config BR2_cortex_a72 + bool "cortex-A72" + select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 +config BR2_cortex_a72_a53 + bool "cortex-A72/A53 big.LITTLE" + select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 +config BR2_cortex_a73 + bool "cortex-A73" + select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 +config BR2_cortex_a73_a35 + bool "cortex-A73/A35 big.LITTLE" + select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 +config BR2_cortex_a73_a53 + bool "cortex-A73/A53 big.LITTLE" + select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 +config BR2_emag + bool "emag" + depends on BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 +config BR2_exynos_m1 + bool "exynos-m1" + select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 +config BR2_falkor + bool "falkor" + depends on BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 +config BR2_phecda + bool "phecda" + depends on BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 +config BR2_qdf24xx + bool "qdf24xx" + depends on BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 +config BR2_thunderx + bool "thunderx (aka octeontx)" + depends on BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 +config BR2_thunderxt81 + bool "thunderxt81 (aka octeontx81)" + depends on BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 +config BR2_thunderxt83 + bool "thunderxt83 (aka octeontx83)" + depends on BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 +config BR2_thunderxt88 + bool "thunderxt88" + depends on BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 +config BR2_thunderxt88p1 + bool "thunderxt88p1" + depends on BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 +config BR2_xgene1 + bool "xgene1" + select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 + +comment "armv8.1a cores" +config BR2_thunderx2t99 + bool "thunderx2t99" + depends on BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 +config BR2_thunderx2t99p1 + bool "thunderx2t99p1" + depends on BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 +config BR2_vulcan + bool "vulcan" + depends on BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 + +comment "armv8.2a cores" +config BR2_cortex_a55 + bool "cortex-A55" + depends on BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_8 +config BR2_cortex_a75 + bool "cortex-A75" + depends on BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_8 +config BR2_cortex_a75_a55 + bool "cortex-A75/A55 big.LITTLE" + depends on BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_8 +config BR2_cortex_a76 + bool "cortex-A76" + select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 +config BR2_cortex_a76_a55 + bool "cortex-A76/A55 big.LITTLE" + select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 +config BR2_neoverse_n1 + bool "neoverse-N1 (aka ares)" + select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 +config BR2_tsv110 + bool "tsv110" + depends on BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 + +comment "armv8.4a cores" +config BR2_saphira + bool "saphira" + depends on BR2_ARCH_IS_64 + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_NEEDS_GCC_AT_LEAST_8 +endchoice + +config BR2_ARM_ENABLE_NEON + bool "Enable NEON SIMD extension support" + depends on BR2_ARM_CPU_MAYBE_HAS_NEON + select BR2_ARM_CPU_HAS_NEON + help + For some CPU cores, the NEON SIMD extension is optional. + Select this option if you are certain your particular + implementation has NEON support and you want to use it. + +config BR2_ARM_ENABLE_VFP + bool "Enable VFP extension support" + depends on BR2_ARM_CPU_MAYBE_HAS_FPU + select BR2_ARM_CPU_HAS_FPV5 if BR2_ARM_CPU_MAYBE_HAS_FPV5 + select BR2_ARM_CPU_HAS_FPV4 if BR2_ARM_CPU_MAYBE_HAS_FPV4 + select BR2_ARM_CPU_HAS_VFPV4 if BR2_ARM_CPU_MAYBE_HAS_VFPV4 + select BR2_ARM_CPU_HAS_VFPV3 if BR2_ARM_CPU_MAYBE_HAS_VFPV3 + select BR2_ARM_CPU_HAS_VFPV2 if BR2_ARM_CPU_MAYBE_HAS_VFPV2 + help + For some CPU cores, the VFP extension is optional. Select + this option if you are certain your particular + implementation has VFP support and you want to use it. + +choice + prompt "Target ABI" + default BR2_ARM_EABIHF if BR2_ARM_CPU_HAS_FPU + default BR2_ARM_EABI + depends on BR2_arm || BR2_armeb + help + Application Binary Interface to use. The Application Binary + Interface describes the calling conventions (how arguments + are passed to functions, how the return value is passed, how + system calls are made, etc.). + +config BR2_ARM_EABI + bool "EABI" + help + The EABI is currently the standard ARM ABI, which is used in + most projects. It supports both the 'soft' floating point + model (in which floating point instructions are emulated in + software) and the 'softfp' floating point model (in which + floating point instructions are executed using an hardware + floating point unit, but floating point arguments to + functions are passed in integer registers). + + The 'softfp' floating point model is link-compatible with + the 'soft' floating point model, i.e you can link a library + built 'soft' with some other code built 'softfp'. + + However, passing the floating point arguments in integer + registers is a bit inefficient, so if your ARM processor has + a floating point unit, and you don't have pre-compiled + 'soft' or 'softfp' code, using the EABIhf ABI will provide + better floating point performances. + + If your processor does not have a floating point unit, then + you must use this ABI. + +config BR2_ARM_EABIHF + bool "EABIhf" + depends on BR2_ARM_CPU_HAS_FPU + help + The EABIhf is an extension of EABI which supports the 'hard' + floating point model. This model uses the floating point + unit to execute floating point instructions, and passes + floating point arguments in floating point registers. + + It is more efficient than EABI for floating point related + workload. However, it does not allow to link against code + that has been pre-built for the 'soft' or 'softfp' floating + point models. + + If your processor has a floating point unit, and you don't + depend on existing pre-compiled code, this option is most + likely the best choice. + +endchoice + +choice + prompt "Floating point strategy" + default BR2_ARM_FPU_FP_ARMV8 if BR2_ARM_CPU_HAS_FP_ARMV8 + default BR2_ARM_FPU_FPV5D16 if BR2_ARM_CPU_HAS_FPV5 + default BR2_ARM_FPU_FPV4D16 if BR2_ARM_CPU_HAS_FPV4 + default BR2_ARM_FPU_VFPV4D16 if BR2_ARM_CPU_HAS_VFPV4 + default BR2_ARM_FPU_VFPV3D16 if BR2_ARM_CPU_HAS_VFPV3 + default BR2_ARM_FPU_VFPV2 if BR2_ARM_CPU_HAS_VFPV2 + default BR2_ARM_SOFT_FLOAT if !BR2_ARM_CPU_HAS_FPU + +config BR2_ARM_SOFT_FLOAT + bool "Soft float" + depends on BR2_ARM_EABI + select BR2_SOFT_FLOAT + help + This option allows to use software emulated floating + point. It should be used for ARM cores that do not include a + Vector Floating Point unit, such as ARMv5 cores (ARM926 for + example) or certain ARMv6 cores. + +config BR2_ARM_FPU_VFPV2 + bool "VFPv2" + depends on BR2_ARM_CPU_HAS_VFPV2 + help + This option allows to use the VFPv2 floating point unit, as + available in some ARMv5 processors (ARM926EJ-S) and some + ARMv6 processors (ARM1136JF-S, ARM1176JZF-S and ARM11 + MPCore). + + Note that this option is also safe to use for newer cores + such as Cortex-A, because the VFPv3 and VFPv4 units are + backward compatible with VFPv2. + +config BR2_ARM_FPU_VFPV3 + bool "VFPv3" + depends on BR2_ARM_CPU_HAS_VFPV3 + help + This option allows to use the VFPv3 floating point unit, as + available in some ARMv7 processors (Cortex-A{8, 9}). This + option requires a VFPv3 unit that has 32 double-precision + registers, which is not necessarily the case in all SOCs + based on Cortex-A{8, 9}. If you're unsure, use VFPv3-D16 + instead, which is guaranteed to work on all Cortex-A{8, 9}. + + Note that this option is also safe to use for newer cores + that have a VFPv4 unit, because VFPv4 is backward compatible + with VFPv3. They must of course also have 32 + double-precision registers. + +config BR2_ARM_FPU_VFPV3D16 + bool "VFPv3-D16" + depends on BR2_ARM_CPU_HAS_VFPV3 + help + This option allows to use the VFPv3 floating point unit, as + available in some ARMv7 processors (Cortex-A{8, 9}). This + option requires a VFPv3 unit that has 16 double-precision + registers, which is generally the case in all SOCs based on + Cortex-A{8, 9}, even though VFPv3 is technically optional on + Cortex-A9. This is the safest option for those cores. + + Note that this option is also safe to use for newer cores + such that have a VFPv4 unit, because the VFPv4 is backward + compatible with VFPv3. + +config BR2_ARM_FPU_VFPV4 + bool "VFPv4" + depends on BR2_ARM_CPU_HAS_VFPV4 + help + This option allows to use the VFPv4 floating point unit, as + available in some ARMv7 processors (Cortex-A{5, 7, 12, + 15}). This option requires a VFPv4 unit that has 32 + double-precision registers, which is not necessarily the + case in all SOCs based on Cortex-A{5, 7, 12, 15}. If you're + unsure, you should probably use VFPv4-D16 instead. + + Note that if you want binary code that works on all ARMv7 + cores, including the earlier Cortex-A{8, 9}, you should + instead select VFPv3. + +config BR2_ARM_FPU_VFPV4D16 + bool "VFPv4-D16" + depends on BR2_ARM_CPU_HAS_VFPV4 + help + This option allows to use the VFPv4 floating point unit, as + available in some ARMv7 processors (Cortex-A{5, 7, 12, + 15}). This option requires a VFPv4 unit that has 16 + double-precision registers, which is always available on + Cortex-A12 and Cortex-A15, but optional on Cortex-A5 and + Cortex-A7. + + Note that if you want binary code that works on all ARMv7 + cores, including the earlier Cortex-A{8, 9}, you should + instead select VFPv3-D16. + +config BR2_ARM_FPU_NEON + bool "NEON" + depends on BR2_ARM_CPU_HAS_NEON + help + This option allows to use the NEON SIMD unit, as available + in some ARMv7 processors, as a floating-point unit. It + should however be noted that using NEON for floating point + operations doesn't provide a complete compatibility with the + IEEE 754. + +config BR2_ARM_FPU_NEON_VFPV4 + bool "NEON/VFPv4" + depends on BR2_ARM_CPU_HAS_VFPV4 + depends on BR2_ARM_CPU_HAS_NEON + help + This option allows to use both the VFPv4 and the NEON SIMD + units for floating point operations. Note that some ARMv7 + cores do not necessarily have VFPv4 and/or NEON support, for + example on Cortex-A5 and Cortex-A7, support for VFPv4 and + NEON is optional. + +config BR2_ARM_FPU_FPV4D16 + bool "FPv4-D16" + depends on BR2_ARM_CPU_HAS_FPV4 + help + This option allows to use the FPv4-SP (single precision) + floating point unit, as available in some ARMv7m processors + (Cortex-M4). + +config BR2_ARM_FPU_FPV5D16 + bool "FPv5-D16" + depends on BR2_ARM_CPU_HAS_FPV5 + select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 + help + This option allows to use the FPv5-SP (single precision) + floating point unit, as available in some ARMv7m processors + (Cortex-M7). + + Note that if you want binary code that works on the earlier + Cortex-M4, you should instead select FPv4-D16. + +config BR2_ARM_FPU_FPV5DPD16 + bool "FPv5-DP-D16" + depends on BR2_ARM_CPU_HAS_FPV5 + select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 + help + This option allows to use the FPv5-DP (double precision) + floating point unit, as available in some ARMv7m processors + (Cortex-M7). + + Note that if you want binary code that works on the earlier + Cortex-M4, you should instead select FPv4-D16. + +config BR2_ARM_FPU_FP_ARMV8 + bool "FP-ARMv8" + depends on BR2_ARM_CPU_HAS_FP_ARMV8 + help + This option allows to use the ARMv8 floating point unit. + +config BR2_ARM_FPU_NEON_FP_ARMV8 + bool "NEON/FP-ARMv8" + depends on BR2_ARM_CPU_HAS_FP_ARMV8 + depends on BR2_ARM_CPU_HAS_NEON + help + This option allows to use both the ARMv8 floating point unit + and the NEON SIMD unit for floating point operations. + +endchoice + +choice + prompt "ARM instruction set" + depends on BR2_arm || BR2_armeb + +config BR2_ARM_INSTRUCTIONS_ARM + bool "ARM" + depends on BR2_ARM_CPU_HAS_ARM + help + This option instructs the compiler to generate regular ARM + instructions, that are all 32 bits wide. + +config BR2_ARM_INSTRUCTIONS_THUMB + bool "Thumb" + depends on BR2_ARM_CPU_HAS_THUMB + # Thumb-1 and VFP are not compatible + depends on BR2_ARM_SOFT_FLOAT + help + This option instructions the compiler to generate Thumb + instructions, which allows to mix 16 bits instructions and + 32 bits instructions. This generally provides a much smaller + compiled binary size. + +comment "Thumb1 is not compatible with VFP" + depends on BR2_ARM_CPU_HAS_THUMB + depends on !BR2_ARM_SOFT_FLOAT + +config BR2_ARM_INSTRUCTIONS_THUMB2 + bool "Thumb2" + depends on BR2_ARM_CPU_HAS_THUMB2 + help + This option instructions the compiler to generate Thumb2 + instructions, which allows to mix 16 bits instructions and + 32 bits instructions. This generally provides a much smaller + compiled binary size. + +endchoice + +choice + prompt "MMU Page Size" + default BR2_ARM64_PAGE_SIZE_4K + depends on BR2_aarch64 || BR2_aarch64_be + help + The default is 4KB, and you should probably keep this unless + you know what you are doing. In particular, the kernel + configuration must match this choice. If your kernel is + built by Buildroot, the kernel configuration is + automatically adjusted, but not if you built your kernel + outside of Buildroot. + +config BR2_ARM64_PAGE_SIZE_4K + bool "4KB" + +config BR2_ARM64_PAGE_SIZE_64K + bool "64KB" + +endchoice + +config BR2_ARM64_PAGE_SIZE + string + default "4K" if BR2_ARM64_PAGE_SIZE_4K + default "64K" if BR2_ARM64_PAGE_SIZE_64K + +config BR2_ARCH + default "arm" if BR2_arm + default "armeb" if BR2_armeb + default "aarch64" if BR2_aarch64 + default "aarch64_be" if BR2_aarch64_be + +config BR2_NORMALIZED_ARCH + default "arm" if BR2_arm || BR2_armeb + default "arm64" if BR2_aarch64 || BR2_aarch64_be + +config BR2_ENDIAN + default "LITTLE" if (BR2_arm || BR2_aarch64) + default "BIG" if (BR2_armeb || BR2_aarch64_be) + +config BR2_GCC_TARGET_CPU + # armv4 + default "arm920t" if BR2_arm920t + default "arm922t" if BR2_arm922t + default "fa526" if BR2_fa526 + default "strongarm" if BR2_strongarm + # armv5 + default "arm926ej-s" if BR2_arm926t + default "iwmmxt" if BR2_iwmmxt + default "xscale" if BR2_xscale + # armv6 + default "arm1136j-s" if BR2_arm1136j_s + default "arm1136jf-s" if BR2_arm1136jf_s + default "arm1176jz-s" if BR2_arm1176jz_s + default "arm1176jzf-s" if BR2_arm1176jzf_s + default "mpcore" if BR2_arm11mpcore && BR2_ARM_CPU_HAS_VFPV2 + default "mpcorenovfp" if BR2_arm11mpcore + # armv7a + default "cortex-a5" if BR2_cortex_a5 + default "cortex-a7" if BR2_cortex_a7 + default "cortex-a8" if BR2_cortex_a8 + default "cortex-a9" if BR2_cortex_a9 + default "cortex-a12" if BR2_cortex_a12 + default "cortex-a15" if BR2_cortex_a15 + default "cortex-a15.cortex-a7" if BR2_cortex_a15_a7 + default "cortex-a17" if BR2_cortex_a17 + default "cortex-a17.cortex-a7" if BR2_cortex_a17_a7 + default "marvell-pj4" if BR2_pj4 + # armv7m + default "cortex-m3" if BR2_cortex_m3 + default "cortex-m4" if BR2_cortex_m4 + default "cortex-m7" if BR2_cortex_m7 + # armv8a + default "cortex-a32" if BR2_cortex_a32 + default "cortex-a35" if BR2_cortex_a35 + default "cortex-a53" if BR2_cortex_a53 + default "cortex-a57" if BR2_cortex_a57 + default "cortex-a57.cortex-a53" if BR2_cortex_a57_a53 + default "cortex-a72" if BR2_cortex_a72 + default "cortex-a72.cortex-a53" if BR2_cortex_a72_a53 + default "cortex-a73" if BR2_cortex_a73 + default "cortex-a73.cortex-a35" if BR2_cortex_a73_a35 + default "cortex-a73.cortex-a53" if BR2_cortex_a73_a53 + default "emag" if BR2_emag + default "exynos-m1" if BR2_exynos_m1 + default "falkor" if BR2_falkor + default "phecda" if BR2_phecda + default "qdf24xx" if BR2_qdf24xx + default "thunderx" if BR2_thunderx && !BR2_TOOLCHAIN_GCC_AT_LEAST_9 + default "octeontx" if BR2_thunderx && BR2_TOOLCHAIN_GCC_AT_LEAST_9 + default "thunderxt81" if BR2_thunderxt81 && !BR2_TOOLCHAIN_GCC_AT_LEAST_9 + default "octeontx81" if BR2_thunderxt81 && BR2_TOOLCHAIN_GCC_AT_LEAST_9 + default "thunderxt83" if BR2_thunderxt83 && !BR2_TOOLCHAIN_GCC_AT_LEAST_9 + default "octeontx83" if BR2_thunderxt83 && BR2_TOOLCHAIN_GCC_AT_LEAST_9 + default "thunderxt88" if BR2_thunderxt88 + default "thunderxt88p1" if BR2_thunderxt88p1 + default "xgene1" if BR2_xgene1 + # armv8.1a + default "thunderx2t99" if BR2_thunderx2t99 + default "thunderx2t99p1" if BR2_thunderx2t99p1 + default "vulcan" if BR2_vulcan + # armv8.2a + default "cortex-a55" if BR2_cortex_a55 + default "cortex-a75" if BR2_cortex_a75 + default "cortex-a75.cortex-a55" if BR2_cortex_a75_a55 + default "cortex-a76" if BR2_cortex_a76 + default "cortex-a76.cortex-a55" if BR2_cortex_a76_a55 + default "neoverse-n1" if BR2_neoverse_n1 + default "tsv110" if BR2_tsv110 + # armv8.4a + default "saphira" if BR2_saphira + +config BR2_GCC_TARGET_ABI + default "aapcs-linux" if BR2_arm || BR2_armeb + default "lp64" if BR2_aarch64 || BR2_aarch64_be + +config BR2_GCC_TARGET_FPU + default "vfp" if BR2_ARM_FPU_VFPV2 + default "vfpv3" if BR2_ARM_FPU_VFPV3 + default "vfpv3-d16" if BR2_ARM_FPU_VFPV3D16 + default "vfpv4" if BR2_ARM_FPU_VFPV4 + default "vfpv4-d16" if BR2_ARM_FPU_VFPV4D16 + default "neon" if BR2_ARM_FPU_NEON + default "neon-vfpv4" if BR2_ARM_FPU_NEON_VFPV4 + default "fpv4-sp-d16" if BR2_ARM_FPU_FPV4D16 + default "fpv5-sp-d16" if BR2_ARM_FPU_FPV5D16 + default "fpv5-d16" if BR2_ARM_FPU_FPV5DPD16 + default "fp-armv8" if BR2_ARM_FPU_FP_ARMV8 + default "neon-fp-armv8" if BR2_ARM_FPU_NEON_FP_ARMV8 + depends on BR2_arm || BR2_armeb + +config BR2_GCC_TARGET_FLOAT_ABI + default "soft" if BR2_ARM_SOFT_FLOAT + default "softfp" if !BR2_ARM_SOFT_FLOAT && BR2_ARM_EABI + default "hard" if !BR2_ARM_SOFT_FLOAT && BR2_ARM_EABIHF + +config BR2_GCC_TARGET_MODE + default "arm" if BR2_ARM_INSTRUCTIONS_ARM + default "thumb" if BR2_ARM_INSTRUCTIONS_THUMB || BR2_ARM_INSTRUCTIONS_THUMB2 + +config BR2_READELF_ARCH_NAME + default "ARM" if BR2_arm || BR2_armeb + default "AArch64" if BR2_aarch64 || BR2_aarch64_be + +# vim: ft=kconfig +# -*- mode:kconfig; -*- diff --git a/arch/Config.in.m68k b/arch/Config.in.m68k new file mode 100644 index 000000000..9fd22aaf1 --- /dev/null +++ b/arch/Config.in.m68k @@ -0,0 +1,46 @@ +config BR2_ARCH + default "m68k" if BR2_m68k + +config BR2_NORMALIZED_ARCH + default "m68k" + +config BR2_ENDIAN + default "BIG" + +# symbols used to distinguish between m68k and coldfire +# for gcc multilib +config BR2_m68k_m68k + bool + +config BR2_m68k_cf + bool + +# coldfire variants will be added later +choice + prompt "Target CPU" + default BR2_m68k_68040 + depends on BR2_m68k + help + Specific CPU variant to use + +config BR2_m68k_68040 + bool "68040" + select BR2_m68k_m68k + select BR2_USE_MMU + +config BR2_m68k_cf5208 + bool "5208" + select BR2_m68k_cf + select BR2_SOFT_FLOAT + +endchoice + +config BR2_GCC_TARGET_CPU + default "68040" if BR2_m68k_68040 + default "5208" if BR2_m68k_cf5208 + +config BR2_READELF_ARCH_NAME + default "MC68000" + +# vim: ft=kconfig +# -*- mode:kconfig; -*- diff --git a/arch/Config.in.microblaze b/arch/Config.in.microblaze new file mode 100644 index 000000000..0502001af --- /dev/null +++ b/arch/Config.in.microblaze @@ -0,0 +1,20 @@ +config BR2_ARCH + default "microblazeel" if BR2_microblazeel + default "microblaze" if BR2_microblazebe + +config BR2_NORMALIZED_ARCH + default "microblaze" + +config BR2_ENDIAN + default "LITTLE" if BR2_microblazeel + default "BIG" if BR2_microblazebe + +config BR2_READELF_ARCH_NAME + default "Xilinx MicroBlaze" + +config BR2_microblaze + bool + default y if BR2_microblazeel || BR2_microblazebe + +# vim: ft=kconfig +# -*- mode:kconfig; -*- diff --git a/arch/Config.in.mips b/arch/Config.in.mips new file mode 100644 index 000000000..7f44f06c9 --- /dev/null +++ b/arch/Config.in.mips @@ -0,0 +1,279 @@ +# mips default CPU ISAs +config BR2_MIPS_CPU_MIPS32 + bool + select BR2_MIPS_NAN_LEGACY +config BR2_MIPS_CPU_MIPS32R2 + bool + select BR2_MIPS_NAN_LEGACY +config BR2_MIPS_CPU_MIPS32R3 + bool + select BR2_MIPS_NAN_LEGACY +config BR2_MIPS_CPU_MIPS32R5 + bool + select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 +config BR2_MIPS_CPU_MIPS32R6 + bool + select BR2_MIPS_NAN_2008 + select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 +config BR2_MIPS_CPU_MIPS64 + bool + select BR2_MIPS_NAN_LEGACY +config BR2_MIPS_CPU_MIPS64R2 + bool + select BR2_MIPS_NAN_LEGACY +config BR2_MIPS_CPU_MIPS64R3 + bool + select BR2_MIPS_NAN_LEGACY +config BR2_MIPS_CPU_MIPS64R5 + bool + select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 +config BR2_MIPS_CPU_MIPS64R6 + bool + select BR2_MIPS_NAN_2008 + select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 + +choice + prompt "Target Architecture Variant" + default BR2_mips_32 if BR2_mips || BR2_mipsel + default BR2_mips_64 if BR2_mips64 || BR2_mips64el + depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el + help + Specific CPU variant to use + + 64bit capable: 64, 64r2, 64r3, 64r5, 64r6 + non-64bit capable: 32, 32r2, 32r3, 32r5, 32r6 + +config BR2_mips_32 + bool "Generic MIPS32" + depends on !BR2_ARCH_IS_64 + select BR2_MIPS_CPU_MIPS32 +config BR2_mips_32r2 + bool "Generic MIPS32R2" + depends on !BR2_ARCH_IS_64 + select BR2_MIPS_CPU_MIPS32R2 +config BR2_mips_32r3 + bool "Generic MIPS32R3" + depends on !BR2_ARCH_IS_64 + select BR2_MIPS_CPU_MIPS32R3 +config BR2_mips_32r5 + bool "Generic MIPS32R5" + depends on !BR2_ARCH_IS_64 + select BR2_MIPS_CPU_MIPS32R5 +config BR2_mips_32r6 + bool "Generic MIPS32R6" + depends on !BR2_ARCH_IS_64 + select BR2_MIPS_CPU_MIPS32R6 +config BR2_mips_interaptiv + bool "interAptiv" + depends on !BR2_ARCH_IS_64 + select BR2_MIPS_CPU_MIPS32R2 + select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 +config BR2_mips_m5150 + bool "M5150" + depends on !BR2_ARCH_IS_64 + select BR2_MIPS_CPU_MIPS32R5 + select BR2_MIPS_NAN_2008 + select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 +config BR2_mips_m6250 + bool "M6250" + depends on !BR2_ARCH_IS_64 + select BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT + select BR2_MIPS_CPU_MIPS32R6 +config BR2_mips_p5600 + bool "P5600" + depends on !BR2_ARCH_IS_64 + select BR2_MIPS_CPU_MIPS32R5 + select BR2_MIPS_NAN_2008 +config BR2_mips_xburst + bool "XBurst" + depends on !BR2_ARCH_IS_64 + select BR2_MIPS_CPU_MIPS32R2 + help + The Ingenic XBurst is a MIPS32R2 microprocessor. It has a + bug in the FPU that can generate incorrect results in + certain cases. The problem shows up when you have several + fused madd instructions in sequence with dependant + operands. This requires the -mno-fused-madd compiler option + to be used in order to prevent emitting these instructions. + + See http://www.ingenic.com/en/?xburst.html +config BR2_mips_64 + bool "Generic MIPS64" + depends on BR2_ARCH_IS_64 + select BR2_MIPS_CPU_MIPS64 +config BR2_mips_64r2 + bool "Generic MIPS64R2" + depends on BR2_ARCH_IS_64 + select BR2_MIPS_CPU_MIPS64R2 +config BR2_mips_64r3 + bool "Generic MIPS64R3" + depends on BR2_ARCH_IS_64 + select BR2_MIPS_CPU_MIPS64R3 +config BR2_mips_64r5 + bool "Generic MIPS64R5" + depends on BR2_ARCH_IS_64 + select BR2_MIPS_CPU_MIPS64R5 +config BR2_mips_64r6 + bool "Generic MIPS64R6" + depends on BR2_ARCH_IS_64 + select BR2_MIPS_CPU_MIPS64R6 +config BR2_mips_i6400 + bool "I6400" + depends on BR2_ARCH_IS_64 + select BR2_MIPS_CPU_MIPS64R6 + select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 +config BR2_mips_octeon2 + bool "Octeon II" + depends on BR2_ARCH_IS_64 + select BR2_MIPS_CPU_MIPS64R2 + help + Marvell (formerly Cavium Networks) Octeon II CN60XX + processors. +config BR2_mips_octeon3 + bool "Octeon III" + depends on BR2_ARCH_IS_64 + select BR2_MIPS_CPU_MIPS64R3 + help + Marvell (formerly Cavium Networks) Octeon III CN7XXX + processors. +config BR2_mips_p6600 + bool "P6600" + depends on BR2_ARCH_IS_64 + select BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT + select BR2_MIPS_CPU_MIPS64R6 +endchoice + +choice + prompt "Target ABI" + default BR2_MIPS_NABI32 + depends on BR2_mips64 || BR2_mips64el + + help + Application Binary Interface to use + +config BR2_MIPS_NABI32 + bool "n32" + depends on BR2_ARCH_IS_64 + select BR2_KERNEL_64_USERLAND_32 +config BR2_MIPS_NABI64 + bool "n64" + depends on BR2_ARCH_IS_64 +endchoice + +config BR2_MIPS_SOFT_FLOAT + bool "Use soft-float" + default y + depends on !BR2_mips_octeon3 # hard-float only + select BR2_SOFT_FLOAT + help + If your target CPU does not have a Floating Point Unit (FPU) + or a kernel FPU emulator, but you still wish to support + floating point functions, then everything will need to be + compiled with soft floating point support (-msoft-float). + +choice + prompt "FP mode" + default BR2_MIPS_FP32_MODE_XX + depends on !BR2_ARCH_IS_64 && !BR2_MIPS_SOFT_FLOAT + help + MIPS32 supports different FP modes (32,xx,64). Information + about FP modes can be found here: + https://sourceware.org/binutils/docs/as/MIPS-Options.html + https://dmz-portal.imgtec.com/wiki/MIPS_O32_ABI_-_FR0_and_FR1_Interlinking#5._Generating_modeless_code + +config BR2_MIPS_FP32_MODE_32 + bool "32" + depends on !BR2_MIPS_CPU_MIPS32R6 + +config BR2_MIPS_FP32_MODE_XX + bool "xx" + select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 + +config BR2_MIPS_FP32_MODE_64 + bool "64" + depends on !BR2_MIPS_CPU_MIPS32 +endchoice + +config BR2_GCC_TARGET_FP32_MODE + default "32" if BR2_MIPS_FP32_MODE_32 + default "xx" if BR2_MIPS_FP32_MODE_XX + default "64" if BR2_MIPS_FP32_MODE_64 + +config BR2_MIPS_NAN_LEGACY + bool + +config BR2_MIPS_NAN_2008 + bool + select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9 + +choice + prompt "Target NaN" + default BR2_MIPS_ENABLE_NAN_2008 + depends on BR2_mips_32r5 || BR2_mips_64r5 + help + MIPS supports two different NaN encodings, legacy and 2008. + Information about MIPS NaN encodings can be found here: + https://sourceware.org/binutils/docs/as/MIPS-NaN-Encodings.html + +config BR2_MIPS_ENABLE_NAN_LEGACY + bool "legacy" + select BR2_MIPS_NAN_LEGACY + +config BR2_MIPS_ENABLE_NAN_2008 + bool "2008" + depends on !BR2_MIPS_SOFT_FLOAT + select BR2_MIPS_NAN_2008 +endchoice + +config BR2_GCC_TARGET_NAN + default "legacy" if BR2_MIPS_NAN_LEGACY + default "2008" if BR2_MIPS_NAN_2008 + +config BR2_ARCH + default "mips" if BR2_mips + default "mipsel" if BR2_mipsel + default "mips64" if BR2_mips64 + default "mips64el" if BR2_mips64el + +config BR2_NORMALIZED_ARCH + default "mips" + +config BR2_ENDIAN + default "LITTLE" if BR2_mipsel || BR2_mips64el + default "BIG" if BR2_mips || BR2_mips64 + +config BR2_GCC_TARGET_ARCH + default "mips32" if BR2_mips_32 + default "mips32r2" if BR2_mips_32r2 + default "mips32r3" if BR2_mips_32r3 + default "mips32r5" if BR2_mips_32r5 + default "mips32r6" if BR2_mips_32r6 + default "interaptiv" if BR2_mips_interaptiv + default "m5101" if BR2_mips_m5150 + default "m6201" if BR2_mips_m6250 + default "p5600" if BR2_mips_p5600 + default "mips32r2" if BR2_mips_xburst + default "mips64" if BR2_mips_64 + default "mips64r2" if BR2_mips_64r2 + default "mips64r3" if BR2_mips_64r3 + default "mips64r5" if BR2_mips_64r5 + default "mips64r6" if BR2_mips_64r6 + default "i6400" if BR2_mips_i6400 + default "octeon2" if BR2_mips_octeon2 + default "octeon3" if BR2_mips_octeon3 + default "p6600" if BR2_mips_p6600 + +config BR2_MIPS_OABI32 + bool + default y if BR2_mips || BR2_mipsel + +config BR2_GCC_TARGET_ABI + default "32" if BR2_MIPS_OABI32 + default "n32" if BR2_MIPS_NABI32 + default "64" if BR2_MIPS_NABI64 + +config BR2_READELF_ARCH_NAME + default "MIPS R3000" + +# vim: ft=kconfig +# -*- mode:kconfig; -*- diff --git a/arch/Config.in.nios2 b/arch/Config.in.nios2 new file mode 100644 index 000000000..a5d7e66d4 --- /dev/null +++ b/arch/Config.in.nios2 @@ -0,0 +1,14 @@ +config BR2_ARCH + default "nios2" + +config BR2_NORMALIZED_ARCH + default "nios2" + +config BR2_ENDIAN + default "LITTLE" + +config BR2_READELF_ARCH_NAME + default "Altera Nios II" + +# vim: ft=kconfig +# -*- mode:kconfig; -*- diff --git a/arch/Config.in.or1k b/arch/Config.in.or1k new file mode 100644 index 000000000..f42aef9ee --- /dev/null +++ b/arch/Config.in.or1k @@ -0,0 +1,14 @@ +config BR2_ARCH + default "or1k" + +config BR2_NORMALIZED_ARCH + default "openrisc" + +config BR2_ENDIAN + default "BIG" + +config BR2_READELF_ARCH_NAME + default "OpenRISC 1000" + +# vim: ft=kconfig +# -*- mode:kconfig; -*- diff --git a/arch/Config.in.powerpc b/arch/Config.in.powerpc new file mode 100644 index 000000000..c48edd3bb --- /dev/null +++ b/arch/Config.in.powerpc @@ -0,0 +1,227 @@ +config BR2_POWERPC_CPU_HAS_ALTIVEC + bool + +config BR2_POWERPC_CPU_HAS_VSX + bool + +config BR2_POWERPC_CPU_HAS_SPE + bool + +choice + prompt "Target Architecture Variant" + default BR2_generic_powerpc + help + Specific CPU variant to use +config BR2_generic_powerpc + bool "generic" + # No C library supports this variant on ppc64le + depends on !BR2_powerpc64le +config BR2_powerpc_401 + bool "401" + depends on !BR2_ARCH_IS_64 +config BR2_powerpc_403 + bool "403" + depends on !BR2_ARCH_IS_64 +config BR2_powerpc_405 + bool "405" + depends on !BR2_ARCH_IS_64 +config BR2_powerpc_405fp + bool "405 with FPU" + depends on !BR2_ARCH_IS_64 +config BR2_powerpc_440 + bool "440" + depends on !BR2_ARCH_IS_64 +config BR2_powerpc_440fp + bool "440 with FPU" + depends on !BR2_ARCH_IS_64 +config BR2_powerpc_464 + bool "464" + depends on !BR2_ARCH_IS_64 +config BR2_powerpc_464fp + bool "464 with FPU" + depends on !BR2_ARCH_IS_64 +config BR2_powerpc_476 + bool "476" + depends on !BR2_ARCH_IS_64 +config BR2_powerpc_476fp + bool "476 with FPU" + depends on !BR2_ARCH_IS_64 +config BR2_powerpc_505 + bool "505" + depends on !BR2_ARCH_IS_64 +config BR2_powerpc_602 + bool "602" + depends on !BR2_ARCH_IS_64 +config BR2_powerpc_603 + bool "603" + depends on !BR2_ARCH_IS_64 +config BR2_powerpc_603e + bool "603e" + depends on !BR2_ARCH_IS_64 +config BR2_powerpc_604 + bool "604" + depends on !BR2_ARCH_IS_64 +config BR2_powerpc_604e + bool "604e" + depends on !BR2_ARCH_IS_64 +config BR2_powerpc_620 + bool "620" + # No C library supports this variant on ppc64le + depends on !BR2_powerpc64le +config BR2_powerpc_630 + bool "630" + # No C library supports this variant on ppc64le + depends on !BR2_powerpc64le +config BR2_powerpc_740 + bool "740" + depends on !BR2_ARCH_IS_64 +config BR2_powerpc_7400 + bool "7400" + depends on !BR2_ARCH_IS_64 + select BR2_POWERPC_CPU_HAS_ALTIVEC +config BR2_powerpc_7450 + bool "7450" + depends on !BR2_ARCH_IS_64 + select BR2_POWERPC_CPU_HAS_ALTIVEC +config BR2_powerpc_750 + bool "750" + depends on !BR2_ARCH_IS_64 +config BR2_powerpc_821 + bool "821" + depends on !BR2_ARCH_IS_64 +config BR2_powerpc_823 + bool "823" + depends on !BR2_ARCH_IS_64 +config BR2_powerpc_860 + bool "860" + depends on !BR2_ARCH_IS_64 +config BR2_powerpc_970 + bool "970" + select BR2_POWERPC_CPU_HAS_ALTIVEC +config BR2_powerpc_8540 + bool "8540 / e500v1" + depends on !BR2_ARCH_IS_64 + select BR2_POWERPC_CPU_HAS_SPE +config BR2_powerpc_8548 + bool "8548 / e500v2" + depends on !BR2_ARCH_IS_64 + select BR2_POWERPC_CPU_HAS_SPE +config BR2_powerpc_e300c2 + bool "e300c2" + depends on !BR2_ARCH_IS_64 +config BR2_powerpc_e300c3 + bool "e300c3" + depends on !BR2_ARCH_IS_64 +config BR2_powerpc_e500mc + bool "e500mc" + depends on !BR2_ARCH_IS_64 +config BR2_powerpc_e5500 + bool "e5500" + depends on !BR2_powerpc64le +config BR2_powerpc_e6500 + bool "e6500" + depends on !BR2_powerpc64le + select BR2_POWERPC_CPU_HAS_ALTIVEC +config BR2_powerpc_power4 + bool "power4" + # No C library supports this variant on ppc64le + depends on !BR2_powerpc64le +config BR2_powerpc_power5 + bool "power5" + # No C library supports this variant on ppc64le + depends on !BR2_powerpc64le +config BR2_powerpc_power6 + bool "power6" + select BR2_POWERPC_CPU_HAS_ALTIVEC +config BR2_powerpc_power7 + bool "power7" + select BR2_POWERPC_CPU_HAS_ALTIVEC + select BR2_POWERPC_CPU_HAS_VSX +config BR2_powerpc_power8 + bool "power8" + select BR2_POWERPC_CPU_HAS_ALTIVEC + select BR2_POWERPC_CPU_HAS_VSX +endchoice + +choice + prompt "Target ABI" + default BR2_powerpc_SPE if BR2_POWERPC_CPU_HAS_SPE + default BR2_powerpc_CLASSIC + help + Application Binary Interface to use + +config BR2_powerpc_CLASSIC + bool "Classic" + depends on !BR2_POWERPC_CPU_HAS_SPE +config BR2_powerpc_SPE + bool "SPE" + depends on BR2_POWERPC_CPU_HAS_SPE +endchoice + +config BR2_POWERPC_SOFT_FLOAT + bool "Use soft-float" + select BR2_SOFT_FLOAT + help + If your target CPU does not have a Floating Point Unit (FPU) + or a kernel FPU emulator, but you still wish to support + floating point functions, then everything will need to be + compiled with soft floating point support (-msoft-float). + +config BR2_ARCH + default "powerpc" if BR2_powerpc + default "powerpc64" if BR2_powerpc64 + default "powerpc64le" if BR2_powerpc64le + +config BR2_NORMALIZED_ARCH + default "powerpc" + +config BR2_ENDIAN + default "BIG" if BR2_powerpc || BR2_powerpc64 + default "LITTLE" if BR2_powerpc64le + +config BR2_GCC_TARGET_CPU + default "401" if BR2_powerpc_401 + default "403" if BR2_powerpc_403 + default "405" if BR2_powerpc_405 + default "405fp" if BR2_powerpc_405fp + default "440" if BR2_powerpc_440 + default "440fp" if BR2_powerpc_440fp + default "464" if BR2_powerpc_464 + default "464fp" if BR2_powerpc_464fp + default "476" if BR2_powerpc_476 + default "476fp" if BR2_powerpc_476fp + default "505" if BR2_powerpc_505 + default "602" if BR2_powerpc_602 + default "603" if BR2_powerpc_603 + default "603e" if BR2_powerpc_603e + default "604" if BR2_powerpc_604 + default "604e" if BR2_powerpc_604e + default "620" if BR2_powerpc_620 + default "630" if BR2_powerpc_630 + default "740" if BR2_powerpc_740 + default "7400" if BR2_powerpc_7400 + default "7450" if BR2_powerpc_7450 + default "750" if BR2_powerpc_750 + default "821" if BR2_powerpc_821 + default "823" if BR2_powerpc_823 + default "860" if BR2_powerpc_860 + default "970" if BR2_powerpc_970 + default "8540" if BR2_powerpc_8540 + default "8548" if BR2_powerpc_8548 + default "e300c2" if BR2_powerpc_e300c2 + default "e300c3" if BR2_powerpc_e300c3 + default "e500mc" if BR2_powerpc_e500mc + default "e5500" if BR2_powerpc_e5500 + default "e6500" if BR2_powerpc_e6500 + default "power4" if BR2_powerpc_power4 + default "power5" if BR2_powerpc_power5 + default "power6" if BR2_powerpc_power6 + default "power7" if BR2_powerpc_power7 + default "power8" if BR2_powerpc_power8 + +config BR2_READELF_ARCH_NAME + default "PowerPC" if BR2_powerpc + default "PowerPC64" if BR2_powerpc64 || BR2_powerpc64le + +# vim: ft=kconfig +# -*- mode:kconfig; -*- diff --git a/arch/Config.in.riscv b/arch/Config.in.riscv new file mode 100644 index 000000000..b5e84389e --- /dev/null +++ b/arch/Config.in.riscv @@ -0,0 +1,148 @@ +# RISC-V CPU ISA extensions. + +config BR2_RISCV_ISA_RVI + bool + +config BR2_RISCV_ISA_RVM + bool + +config BR2_RISCV_ISA_RVA + bool + +config BR2_RISCV_ISA_RVF + bool + +config BR2_RISCV_ISA_RVD + bool + +config BR2_RISCV_ISA_RVC + bool + +choice + prompt "Target Architecture Variant" + default BR2_riscv_g + +config BR2_riscv_g + bool "General purpose (G)" + select BR2_RISCV_ISA_RVI + select BR2_RISCV_ISA_RVM + select BR2_RISCV_ISA_RVA + select BR2_RISCV_ISA_RVF + select BR2_RISCV_ISA_RVD + help + General purpose (G) is equivalent to IMAFD. + +config BR2_riscv_custom + bool "Custom architecture" + select BR2_RISCV_ISA_RVI + select BR2_RISCV_ISA_CUSTOM_RVA + +endchoice + +if BR2_riscv_custom + +comment "Instruction Set Extensions" + +config BR2_RISCV_ISA_CUSTOM_RVM + bool "Integer Multiplication and Division (M)" + select BR2_RISCV_ISA_RVM + +config BR2_RISCV_ISA_CUSTOM_RVA + bool "Atomic Instructions (A)" + select BR2_RISCV_ISA_RVA + +config BR2_RISCV_ISA_CUSTOM_RVF + bool "Single-precision Floating-point (F)" + select BR2_RISCV_ISA_RVF + +config BR2_RISCV_ISA_CUSTOM_RVD + bool "Double-precision Floating-point (D)" + depends on BR2_RISCV_ISA_RVF + select BR2_RISCV_ISA_RVD + +config BR2_RISCV_ISA_CUSTOM_RVC + bool "Compressed Instructions (C)" + select BR2_RISCV_ISA_RVC +endif + +choice + prompt "Target Architecture Size" + default BR2_RISCV_64 + +config BR2_RISCV_32 + bool "32-bit" + select BR2_USE_MMU + +config BR2_RISCV_64 + bool "64-bit" + select BR2_ARCH_IS_64 + +endchoice + +config BR2_RISCV_USE_MMU + bool "MMU support" + default y + depends on BR2_RISCV_64 + select BR2_USE_MMU + help + Enable this option if your RISC-V core has a MMU (Memory + Management Unit). + +choice + prompt "Target ABI" + default BR2_RISCV_ABI_ILP32D if !BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVD + default BR2_RISCV_ABI_ILP32F if !BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVF + default BR2_RISCV_ABI_ILP32 if !BR2_ARCH_IS_64 + default BR2_RISCV_ABI_LP64D if BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVD + default BR2_RISCV_ABI_LP64F if BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVF + default BR2_RISCV_ABI_LP64 if BR2_ARCH_IS_64 + +config BR2_RISCV_ABI_ILP32 + bool "ilp32" + depends on !BR2_ARCH_IS_64 + +config BR2_RISCV_ABI_ILP32F + bool "ilp32f" + depends on !BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVF + +config BR2_RISCV_ABI_ILP32D + bool "ilp32d" + depends on !BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVD + +config BR2_RISCV_ABI_LP64 + bool "lp64" + depends on BR2_ARCH_IS_64 + +config BR2_RISCV_ABI_LP64F + bool "lp64f" + depends on BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVF + depends on BR2_USE_MMU + +config BR2_RISCV_ABI_LP64D + bool "lp64d" + depends on BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVD +endchoice + +config BR2_ARCH + default "riscv32" if !BR2_ARCH_IS_64 + default "riscv64" if BR2_ARCH_IS_64 + +config BR2_NORMALIZED_ARCH + default "riscv" + +config BR2_ENDIAN + default "LITTLE" + +config BR2_GCC_TARGET_ABI + default "ilp32" if BR2_RISCV_ABI_ILP32 + default "ilp32f" if BR2_RISCV_ABI_ILP32F + default "ilp32d" if BR2_RISCV_ABI_ILP32D + default "lp64" if BR2_RISCV_ABI_LP64 + default "lp64f" if BR2_RISCV_ABI_LP64F + default "lp64d" if BR2_RISCV_ABI_LP64D + +config BR2_READELF_ARCH_NAME + default "RISC-V" + +# vim: ft=kconfig +# -*- mode:kconfig; -*- diff --git a/arch/Config.in.s390x b/arch/Config.in.s390x new file mode 100644 index 000000000..da6ac55d8 --- /dev/null +++ b/arch/Config.in.s390x @@ -0,0 +1,32 @@ +choice + prompt "Target Architecture Variant" + help + Specific CPU variant to use + +config BR2_s390x_z13 + bool "z13" + +config BR2_s390x_z14 + bool "z14" + +config BR2_s390x_z15 + bool "z15" + +endchoice + +config BR2_ARCH + default "s390x" if BR2_s390x + +config BR2_NORMALIZED_ARCH + default "s390" + +config BR2_ENDIAN + default "BIG" + +config BR2_GCC_TARGET_ARCH + default "arch11" if BR2_s390x_z13 + default "arch12" if BR2_s390x_z14 + default "arch13" if BR2_s390x_z15 + +config BR2_READELF_ARCH_NAME + default "IBM S/390" if BR2_s390x diff --git a/arch/Config.in.sh b/arch/Config.in.sh new file mode 100644 index 000000000..d3acc8ccf --- /dev/null +++ b/arch/Config.in.sh @@ -0,0 +1,35 @@ +choice + prompt "Target Architecture Variant" + default BR2_sh4 + depends on BR2_sh + help + Specific CPU variant to use + +config BR2_sh4 + bool "sh4 (SH4 little endian)" +config BR2_sh4eb + bool "sh4eb (SH4 big endian)" +config BR2_sh4a + bool "sh4a (SH4A little endian)" +config BR2_sh4aeb + bool "sh4aeb (SH4A big endian)" +endchoice + +config BR2_ARCH + default "sh4" if BR2_sh4 + default "sh4eb" if BR2_sh4eb + default "sh4a" if BR2_sh4a + default "sh4aeb" if BR2_sh4aeb + +config BR2_NORMALIZED_ARCH + default "sh" + +config BR2_ENDIAN + default "LITTLE" if BR2_sh4 || BR2_sh4a + default "BIG" if BR2_sh4eb || BR2_sh4aeb + +config BR2_READELF_ARCH_NAME + default "Renesas / SuperH SH" + +# vim: ft=kconfig +# -*- mode:kconfig; -*- diff --git a/arch/Config.in.sparc b/arch/Config.in.sparc new file mode 100644 index 000000000..f5f4bd670 --- /dev/null +++ b/arch/Config.in.sparc @@ -0,0 +1,41 @@ +choice + prompt "Target Architecture Variant" + default BR2_sparc_v8 if BR2_sparc + default BR2_sparc_v9 if BR2_sparc64 + depends on BR2_sparc || BR2_sparc64 + help + Specific CPU variant to use + +config BR2_sparc_v8 + bool "v8" + depends on BR2_sparc +config BR2_sparc_leon3 + bool "leon3" + depends on BR2_sparc +config BR2_sparc_v9 + bool "v9" + depends on BR2_sparc64 +endchoice + +config BR2_ARCH + default "sparc" if BR2_sparc + default "sparc64" if BR2_sparc64 + +config BR2_NORMALIZED_ARCH + default "sparc" if BR2_sparc + default "sparc64" if BR2_sparc64 + +config BR2_ENDIAN + default "BIG" + +config BR2_GCC_TARGET_CPU + default "leon3" if BR2_sparc_leon3 + default "v8" if BR2_sparc_v8 + default "ultrasparc" if BR2_sparc_v9 + +config BR2_READELF_ARCH_NAME + default "Sparc" if BR2_sparc + default "Sparc v9" if BR2_sparc64 + +# vim: ft=kconfig +# -*- mode:kconfig; -*- diff --git a/arch/Config.in.x86 b/arch/Config.in.x86 new file mode 100644 index 000000000..c770ae3ff --- /dev/null +++ b/arch/Config.in.x86 @@ -0,0 +1,637 @@ +# i386/x86_64 cpu features +config BR2_X86_CPU_HAS_MMX + bool +config BR2_X86_CPU_HAS_3DNOW + bool +config BR2_X86_CPU_HAS_SSE + bool +config BR2_X86_CPU_HAS_SSE2 + bool +config BR2_X86_CPU_HAS_SSE3 + bool +config BR2_X86_CPU_HAS_SSSE3 + bool +config BR2_X86_CPU_HAS_SSE4 + bool +config BR2_X86_CPU_HAS_SSE42 + bool +config BR2_X86_CPU_HAS_AVX + bool +config BR2_X86_CPU_HAS_AVX2 + bool +config BR2_X86_CPU_HAS_AVX512 + bool + +# This list of CPU architecture variant is (loosely) ordered according +# to the gcc documentation at +# https://gcc.gnu.org/onlinedocs/gcc-11.2.0/gcc/x86-Options.html +choice + prompt "Target Architecture Variant" + default BR2_x86_i586 if BR2_i386 + depends on BR2_i386 || BR2_x86_64 + help + Specific CPU variant to use + +config BR2_x86_i486 + bool "i486" + depends on !BR2_x86_64 +config BR2_x86_i586 + bool "i586" + depends on !BR2_x86_64 +config BR2_x86_x1000 + bool "x1000" + depends on !BR2_x86_64 + help + The Intel X1000 is a Pentium class microprocessor in the + Quark (sub-Atom) Product Line. The X1000 has a bug on the + lock prefix requiring that prefix must be stripped at build + time. + + See https://en.wikipedia.org/wiki/Intel_Quark + +config BR2_x86_i686 + bool "i686" + depends on !BR2_x86_64 +config BR2_x86_pentiumpro + bool "pentium pro" + depends on !BR2_x86_64 +config BR2_x86_pentium_mmx + bool "pentium MMX" + depends on !BR2_x86_64 + select BR2_X86_CPU_HAS_MMX +config BR2_x86_pentium_m + bool "pentium mobile" + depends on !BR2_x86_64 + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE +config BR2_x86_pentium2 + bool "pentium2" + depends on !BR2_x86_64 + select BR2_X86_CPU_HAS_MMX +config BR2_x86_pentium3 + bool "pentium3" + depends on !BR2_x86_64 + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE +config BR2_x86_pentium4 + bool "pentium4" + depends on !BR2_x86_64 + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 +config BR2_x86_prescott + bool "prescott" + depends on !BR2_x86_64 + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 +config BR2_x86_x86_64 + bool "x86-64" + depends on BR2_x86_64 + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + help + This option corresponds to -march=x86-64, documented as a + "Generic CPU with 64-bit extensions" by the GCC + documentation. It is a 64-bit CPU with MMX, SSE and SSE2 + support. +config BR2_x86_x86_64_v2 + bool "x86-64-v2" + depends on BR2_x86_64 + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSSE3 + select BR2_X86_CPU_HAS_SSE4 + select BR2_X86_CPU_HAS_SSE42 + select BR2_ARCH_NEEDS_GCC_AT_LEAST_11 + help + This option corresponds to the x86-64-v2 micro-architecture + level, as defined by the x86-64 psABI document, see + https://gitlab.com/x86-psABIs/x86-64-ABI/-/blob/master/x86-64-ABI/low-level-sys-info.tex. + + It is close to the Nehalem CPU architecture, and is + applicable for CPUs that support CMPXCHG16B, LAHF-SAHF, + POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3. +config BR2_x86_x86_64_v3 + bool "x86-64-v3" + depends on BR2_x86_64 + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSSE3 + select BR2_X86_CPU_HAS_SSE4 + select BR2_X86_CPU_HAS_SSE42 + select BR2_X86_CPU_HAS_AVX + select BR2_X86_CPU_HAS_AVX2 + select BR2_ARCH_NEEDS_GCC_AT_LEAST_11 + help + This option corresponds to the x86-64-v3 micro-architecture + level, as defined by the x86-64 psABI document, see + https://gitlab.com/x86-psABIs/x86-64-ABI/-/blob/master/x86-64-ABI/low-level-sys-info.tex. + + It is close to the Haswell CPU architecture, and is + applicable for CPUs that support all of x86-64-v2 plus AVX, + AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, XSAVE. +config BR2_x86_x86_64_v4 + bool "x86-64-v4" + depends on BR2_x86_64 + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSSE3 + select BR2_X86_CPU_HAS_SSE4 + select BR2_X86_CPU_HAS_SSE42 + select BR2_X86_CPU_HAS_AVX + select BR2_X86_CPU_HAS_AVX2 + select BR2_X86_CPU_HAS_AVX512 + select BR2_ARCH_NEEDS_GCC_AT_LEAST_11 + help + This option corresponds to the x86-64-v4 micro-architecture + level, as defined by the x86-64 psABI document, see + https://gitlab.com/x86-psABIs/x86-64-ABI/-/blob/master/x86-64-ABI/low-level-sys-info.tex. + + It is applicable for CPUs that support all of x86-64-v3 plus + AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL. +config BR2_x86_nocona + bool "nocona" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 +config BR2_x86_core2 + bool "core2" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSSE3 +config BR2_x86_corei7 + bool "corei7" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSSE3 + select BR2_X86_CPU_HAS_SSE4 + select BR2_X86_CPU_HAS_SSE42 + help + This option is deprecated. Since gcc 4.9, the gcc option + "nehalem" is preferred. Use BR2_x86_nehalem instead. +config BR2_x86_nehalem + bool "nehalem" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSSE3 + select BR2_X86_CPU_HAS_SSE4 + select BR2_X86_CPU_HAS_SSE42 + select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9 +config BR2_x86_westmere + bool "westmere" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSSE3 + select BR2_X86_CPU_HAS_SSE4 + select BR2_X86_CPU_HAS_SSE42 + select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9 +config BR2_x86_corei7_avx + bool "corei7-avx" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSSE3 + select BR2_X86_CPU_HAS_SSE4 + select BR2_X86_CPU_HAS_SSE42 + select BR2_X86_CPU_HAS_AVX + help + This option is deprecated. Since gcc 4.9, the gcc option + "sandybridge" is preferred. Use BR2_x86_sandybridge instead. +config BR2_x86_sandybridge + bool "sandybridge" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSSE3 + select BR2_X86_CPU_HAS_SSE4 + select BR2_X86_CPU_HAS_SSE42 + select BR2_X86_CPU_HAS_AVX + select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9 +config BR2_x86_core_avx2 + bool "core-avx2" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSSE3 + select BR2_X86_CPU_HAS_SSE4 + select BR2_X86_CPU_HAS_SSE42 + select BR2_X86_CPU_HAS_AVX + select BR2_X86_CPU_HAS_AVX2 + help + This option is deprecated. Since gcc 4.9, the gcc option + "haswell" is preferred. Use BR2_x86_haswell instead. +config BR2_x86_haswell + bool "haswell" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSSE3 + select BR2_X86_CPU_HAS_SSE4 + select BR2_X86_CPU_HAS_SSE42 + select BR2_X86_CPU_HAS_AVX + select BR2_X86_CPU_HAS_AVX2 + select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9 +config BR2_x86_broadwell + bool "broadwell" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSSE3 + select BR2_X86_CPU_HAS_SSE4 + select BR2_X86_CPU_HAS_SSE42 + select BR2_X86_CPU_HAS_AVX + select BR2_X86_CPU_HAS_AVX2 + select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9 +config BR2_x86_skylake + bool "skylake" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSSE3 + select BR2_X86_CPU_HAS_SSE4 + select BR2_X86_CPU_HAS_SSE42 + select BR2_X86_CPU_HAS_AVX + select BR2_X86_CPU_HAS_AVX2 + select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 +config BR2_x86_atom + bool "atom" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSSE3 + help + This option is deprecated. Since gcc 4.9, the gcc option + "bonnell" is preferred. Use BR2_x86_bonnell instead. +config BR2_x86_bonnell + bool "bonnell" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSSE3 + select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9 +config BR2_x86_silvermont + bool "silvermont" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSSE3 + select BR2_X86_CPU_HAS_SSE4 + select BR2_X86_CPU_HAS_SSE42 + select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9 +config BR2_x86_goldmont + bool "goldmont" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSSE3 + select BR2_X86_CPU_HAS_SSE4 + select BR2_X86_CPU_HAS_SSE42 + select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 +config BR2_x86_goldmont_plus + bool "goldmont-plus" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSSE3 + select BR2_X86_CPU_HAS_SSE4 + select BR2_X86_CPU_HAS_SSE42 + select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 +config BR2_x86_tremont + bool "tremont" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSSE3 + select BR2_X86_CPU_HAS_SSE4 + select BR2_X86_CPU_HAS_SSE42 + select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 +config BR2_x86_skylake_avx512 + bool "skylake-avx512" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSSE3 + select BR2_X86_CPU_HAS_SSE4 + select BR2_X86_CPU_HAS_SSE42 + select BR2_X86_CPU_HAS_AVX + select BR2_X86_CPU_HAS_AVX2 + select BR2_X86_CPU_HAS_AVX512 + select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 +config BR2_x86_cannonlake + bool "cannonlake" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSSE3 + select BR2_X86_CPU_HAS_SSE4 + select BR2_X86_CPU_HAS_SSE42 + select BR2_X86_CPU_HAS_AVX + select BR2_X86_CPU_HAS_AVX2 + select BR2_X86_CPU_HAS_AVX512 + select BR2_ARCH_NEEDS_GCC_AT_LEAST_8 +config BR2_x86_icelake_client + bool "icelake-client" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSSE3 + select BR2_X86_CPU_HAS_SSE4 + select BR2_X86_CPU_HAS_SSE42 + select BR2_X86_CPU_HAS_AVX + select BR2_X86_CPU_HAS_AVX2 + select BR2_X86_CPU_HAS_AVX512 + select BR2_ARCH_NEEDS_GCC_AT_LEAST_8 +config BR2_x86_icelake_server + bool "icelake-server" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSSE3 + select BR2_X86_CPU_HAS_SSE4 + select BR2_X86_CPU_HAS_SSE42 + select BR2_X86_CPU_HAS_AVX + select BR2_X86_CPU_HAS_AVX2 + select BR2_X86_CPU_HAS_AVX512 + select BR2_ARCH_NEEDS_GCC_AT_LEAST_8 +config BR2_x86_cascadelake + bool "cascadelake" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSSE3 + select BR2_X86_CPU_HAS_SSE4 + select BR2_X86_CPU_HAS_SSE42 + select BR2_X86_CPU_HAS_AVX + select BR2_X86_CPU_HAS_AVX2 + select BR2_X86_CPU_HAS_AVX512 + select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 +config BR2_x86_cooperlake + bool "cooperlake" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSSE3 + select BR2_X86_CPU_HAS_SSE4 + select BR2_X86_CPU_HAS_SSE42 + select BR2_X86_CPU_HAS_AVX + select BR2_X86_CPU_HAS_AVX2 + select BR2_X86_CPU_HAS_AVX512 + select BR2_ARCH_NEEDS_GCC_AT_LEAST_10 +config BR2_x86_tigerlake + bool "tigerlake" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSSE3 + select BR2_X86_CPU_HAS_SSE4 + select BR2_X86_CPU_HAS_SSE42 + select BR2_X86_CPU_HAS_AVX + select BR2_X86_CPU_HAS_AVX2 + select BR2_X86_CPU_HAS_AVX512 + select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 +config BR2_x86_sapphirerapids + bool "sapphirerapids" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSSE3 + select BR2_X86_CPU_HAS_SSE4 + select BR2_X86_CPU_HAS_SSE42 + select BR2_X86_CPU_HAS_AVX + select BR2_X86_CPU_HAS_AVX2 + select BR2_X86_CPU_HAS_AVX512 + select BR2_ARCH_NEEDS_GCC_AT_LEAST_11 +config BR2_x86_alderlake + bool "alderlake" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSSE3 + select BR2_X86_CPU_HAS_SSE4 + select BR2_X86_CPU_HAS_SSE42 + select BR2_X86_CPU_HAS_AVX + select BR2_X86_CPU_HAS_AVX2 + select BR2_X86_CPU_HAS_AVX512 + select BR2_ARCH_NEEDS_GCC_AT_LEAST_11 +config BR2_x86_rocketlake + bool "rocketlake" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSSE3 + select BR2_X86_CPU_HAS_SSE4 + select BR2_X86_CPU_HAS_SSE42 + select BR2_X86_CPU_HAS_AVX + select BR2_X86_CPU_HAS_AVX2 + select BR2_X86_CPU_HAS_AVX512 + select BR2_ARCH_NEEDS_GCC_AT_LEAST_11 +config BR2_x86_k6 + bool "k6" + depends on !BR2_x86_64 + select BR2_X86_CPU_HAS_MMX +config BR2_x86_k6_2 + bool "k6-2" + depends on !BR2_x86_64 + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_3DNOW +config BR2_x86_athlon + bool "athlon" + depends on !BR2_x86_64 + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_3DNOW +config BR2_x86_athlon_4 + bool "athlon-4" + depends on !BR2_x86_64 + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_3DNOW +config BR2_x86_opteron + bool "opteron" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 +config BR2_x86_opteron_sse3 + bool "opteron w/ SSE3" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 +config BR2_x86_barcelona + bool "barcelona" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 +config BR2_x86_jaguar + bool "jaguar" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSSE3 + select BR2_X86_CPU_HAS_SSE4 + select BR2_X86_CPU_HAS_SSE42 +config BR2_x86_steamroller + bool "steamroller" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSSE3 + select BR2_X86_CPU_HAS_SSE4 + select BR2_X86_CPU_HAS_SSE42 +config BR2_x86_geode + bool "geode" + # Don't include MMX support because there several variant of geode + # processor, some with MMX support, some without. + # See: http://en.wikipedia.org/wiki/Geode_%28processor%29 + depends on !BR2_x86_64 +config BR2_x86_c3 + bool "Via/Cyrix C3 (Samuel/Ezra cores)" + depends on !BR2_x86_64 + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_3DNOW +config BR2_x86_c32 + bool "Via C3-2 (Nehemiah cores)" + depends on !BR2_x86_64 + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_SSE +config BR2_x86_winchip_c6 + bool "IDT Winchip C6" + depends on !BR2_x86_64 + select BR2_X86_CPU_HAS_MMX +config BR2_x86_winchip2 + bool "IDT Winchip 2" + depends on !BR2_x86_64 + select BR2_X86_CPU_HAS_MMX +endchoice + +config BR2_ARCH + default "i486" if BR2_x86_i486 + default "i586" if BR2_x86_i586 + default "i586" if BR2_x86_x1000 + default "i586" if BR2_x86_pentium_mmx + default "i586" if BR2_x86_geode + default "i586" if BR2_x86_c3 + default "i686" if BR2_x86_c32 + default "i586" if BR2_x86_winchip_c6 + default "i586" if BR2_x86_winchip2 + # We use the property of Kconfig that the first match of a + # list of default will be chosen. So the following entry will + # not match for all BR2_i386=y configurations, but only the + # ones that didn't match any of the previous cases (i486, + # i586). + default "i686" if BR2_i386 + default "x86_64" if BR2_x86_64 + +config BR2_NORMALIZED_ARCH + default "i386" if !BR2_x86_64 + default "x86_64" if BR2_x86_64 + +config BR2_ENDIAN + default "LITTLE" + +config BR2_GCC_TARGET_ARCH + default "i486" if BR2_x86_i486 + default "i586" if BR2_x86_i586 + default "i586" if BR2_x86_x1000 + default "pentium-mmx" if BR2_x86_pentium_mmx + default "i686" if BR2_x86_i686 + default "pentiumpro" if BR2_x86_pentiumpro + default "pentium-m" if BR2_x86_pentium_m + default "pentium2" if BR2_x86_pentium2 + default "pentium3" if BR2_x86_pentium3 + default "pentium4" if BR2_x86_pentium4 + default "prescott" if BR2_x86_prescott + default "x86-64" if BR2_x86_x86_64 + default "x86-64-v2" if BR2_x86_x86_64_v2 + default "x86-64-v3" if BR2_x86_x86_64_v3 + default "x86-64-v4" if BR2_x86_x86_64_v4 + default "nocona" if BR2_x86_nocona + default "core2" if BR2_x86_core2 + default "corei7" if BR2_x86_corei7 + default "nehalem" if BR2_x86_nehalem + default "corei7-avx" if BR2_x86_corei7_avx + default "sandybridge" if BR2_x86_sandybridge + default "core-avx2" if BR2_x86_core_avx2 + default "haswell" if BR2_x86_haswell + default "broadwell" if BR2_x86_broadwell + default "skylake" if BR2_x86_skylake + default "atom" if BR2_x86_atom + default "bonnell" if BR2_x86_bonnell + default "westmere" if BR2_x86_westmere + default "silvermont" if BR2_x86_silvermont + default "goldmont" if BR2_x86_goldmont + default "goldmont-plus" if BR2_x86_goldmont_plus + default "tremont" if BR2_x86_tremont + default "skylake-avx512" if BR2_x86_skylake_avx512 + default "cannonlake" if BR2_x86_cannonlake + default "icelake-client" if BR2_x86_icelake_client + default "icelake-server" if BR2_x86_icelake_server + default "cascadelake" if BR2_x86_cascadelake + default "cooperlake" if BR2_x86_cooperlake + default "tigerlake" if BR2_x86_tigerlake + default "sapphirerapids" if BR2_x86_sapphirerapids + default "alderlake" if BR2_x86_alderlake + default "rocketlake" if BR2_x86_rocketlake + default "k8" if BR2_x86_opteron + default "k8-sse3" if BR2_x86_opteron_sse3 + default "barcelona" if BR2_x86_barcelona + default "btver2" if BR2_x86_jaguar + default "bdver3" if BR2_x86_steamroller + default "k6" if BR2_x86_k6 + default "k6-2" if BR2_x86_k6_2 + default "athlon" if BR2_x86_athlon + default "athlon-4" if BR2_x86_athlon_4 + default "winchip-c6" if BR2_x86_winchip_c6 + default "winchip2" if BR2_x86_winchip2 + default "c3" if BR2_x86_c3 + default "c3-2" if BR2_x86_c32 + default "geode" if BR2_x86_geode + +config BR2_READELF_ARCH_NAME + default "Intel 80386" if BR2_i386 + default "Advanced Micro Devices X86-64" if BR2_x86_64 + +# vim: ft=kconfig +# -*- mode:kconfig; -*- diff --git a/arch/Config.in.xtensa b/arch/Config.in.xtensa new file mode 100644 index 000000000..f9d5adb4c --- /dev/null +++ b/arch/Config.in.xtensa @@ -0,0 +1,66 @@ +choice + prompt "Target Architecture Variant" + default BR2_xtensa_fsf + depends on BR2_xtensa + +config BR2_XTENSA_CUSTOM + bool "Custom Xtensa processor configuration" + +config BR2_xtensa_fsf + bool "fsf - Default configuration" + select BR2_USE_MMU + +endchoice + +config BR2_XTENSA_OVERLAY_FILE + string "Overlay file for custom configuration" + depends on BR2_XTENSA_CUSTOM + help + Enter the path to the overlay tarball for a custom processor + configuration. + + These overlay files are tar packages with updated + configuration files for various toolchain packages and Xtensa + processor configurations. They are provided by the processor + vendor or directly from Tensilica. + + The path can be either absolute, or relative to the top + directory of buildroot. + +choice + prompt "Target Architecture Endianness" + default BR2_XTENSA_LITTLE_ENDIAN + depends on BR2_XTENSA_CUSTOM + +config BR2_XTENSA_LITTLE_ENDIAN + bool "Little endian" + +config BR2_XTENSA_BIG_ENDIAN + bool "Big endian" + +endchoice + +config BR2_XTENSA_USE_MMU + bool "MMU support" + default y + depends on BR2_XTENSA_CUSTOM + select BR2_USE_MMU + help + Enable this option if your Xtensa core has a MMU (Memory + Management Unit). + +config BR2_ENDIAN + default "LITTLE" if BR2_XTENSA_LITTLE_ENDIAN + default "BIG" if BR2_xtensa_fsf || BR2_XTENSA_BIG_ENDIAN + +config BR2_ARCH + default "xtensa" if BR2_xtensa + +config BR2_NORMALIZED_ARCH + default "xtensa" + +config BR2_READELF_ARCH_NAME + default "Tensilica Xtensa Processor" + +# vim: ft=kconfig +# -*- mode:kconfig; -*- diff --git a/arch/arch.mk b/arch/arch.mk new file mode 100644 index 000000000..2e737b92a --- /dev/null +++ b/arch/arch.mk @@ -0,0 +1,33 @@ +################################################################################ +# +# Architecture-specific definitions +# +################################################################################ + +# Allow GCC target configuration settings to be optionally +# overwritten by architecture specific makefiles. + +# Makefiles must use the GCC_TARGET_* variables below instead +# of the BR2_GCC_TARGET_* versions. +GCC_TARGET_ARCH := $(call qstrip,$(BR2_GCC_TARGET_ARCH)) +GCC_TARGET_ABI := $(call qstrip,$(BR2_GCC_TARGET_ABI)) +GCC_TARGET_NAN := $(call qstrip,$(BR2_GCC_TARGET_NAN)) +GCC_TARGET_FP32_MODE := $(call qstrip,$(BR2_GCC_TARGET_FP32_MODE)) +GCC_TARGET_CPU := $(call qstrip,$(BR2_GCC_TARGET_CPU)) +GCC_TARGET_FPU := $(call qstrip,$(BR2_GCC_TARGET_FPU)) +GCC_TARGET_FLOAT_ABI := $(call qstrip,$(BR2_GCC_TARGET_FLOAT_ABI)) +GCC_TARGET_MODE := $(call qstrip,$(BR2_GCC_TARGET_MODE)) + +# Explicitly set LD's "max-page-size" instead of relying on some defaults +ifeq ($(BR2_ARC_PAGE_SIZE_4K)$(BR2_ARM64_PAGE_SIZE_4K),y) +ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=4096 -Wl,-z,common-page-size=4096 +else ifeq ($(BR2_ARC_PAGE_SIZE_8K),y) +ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=8192 -Wl,-z,common-page-size=8192 +else ifeq ($(BR2_ARC_PAGE_SIZE_16K),y) +ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384 +else ifeq ($(BR2_ARM64_PAGE_SIZE_64K),y) +ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=65536 -Wl,-z,common-page-size=65536 +endif + +# Include any architecture specific makefiles. +-include $(sort $(wildcard arch/arch.mk.*)) diff --git a/arch/arch.mk.arc b/arch/arch.mk.arc new file mode 100644 index 000000000..42037626a --- /dev/null +++ b/arch/arch.mk.arc @@ -0,0 +1,8 @@ +ifeq ($(BR2_arc),y) + +# -matomic is always required when the ARC core has the atomic extensions +ifeq ($(BR2_ARC_ATOMIC_EXT),y) +ARCH_TOOLCHAIN_WRAPPER_OPTS += -matomic +endif + +endif diff --git a/arch/arch.mk.riscv b/arch/arch.mk.riscv new file mode 100644 index 000000000..8d2236147 --- /dev/null +++ b/arch/arch.mk.riscv @@ -0,0 +1,39 @@ +# +# Configure the GCC_TARGET_ARCH variable and append the +# appropriate RISC-V ISA extensions. +# + +ifeq ($(BR2_riscv),y) + +ifeq ($(BR2_RISCV_64),y) +GCC_TARGET_ARCH := rv64i +else +GCC_TARGET_ARCH := rv32i +endif + +ifeq ($(BR2_RISCV_ISA_RVM),y) +GCC_TARGET_ARCH := $(GCC_TARGET_ARCH)m +endif +ifeq ($(BR2_RISCV_ISA_RVA),y) +GCC_TARGET_ARCH := $(GCC_TARGET_ARCH)a +endif +ifeq ($(BR2_RISCV_ISA_RVF),y) +GCC_TARGET_ARCH := $(GCC_TARGET_ARCH)f +endif +ifeq ($(BR2_RISCV_ISA_RVD),y) +GCC_TARGET_ARCH := $(GCC_TARGET_ARCH)d +endif +ifeq ($(BR2_RISCV_ISA_RVC),y) +GCC_TARGET_ARCH := $(GCC_TARGET_ARCH)c +endif + +# Starting from gcc 12.x, csr and fence instructions have been +# separated from the base I instruction set, and special -march +# suffixes are needed to enable their support. In Buildroot, we assume +# all RISC-V cores that support Linux implement those instructions, so +# we unconditionally enable those extensions. +ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_12),y) +GCC_TARGET_ARCH := $(GCC_TARGET_ARCH)_zicsr_zifencei +endif + +endif diff --git a/arch/arch.mk.xtensa b/arch/arch.mk.xtensa new file mode 100644 index 000000000..7b6c59cec --- /dev/null +++ b/arch/arch.mk.xtensa @@ -0,0 +1,41 @@ +BR_ARCH_XTENSA_OVERLAY_FILE = $(call qstrip,$(BR2_XTENSA_OVERLAY_FILE)) + +ifeq ($(BR_BUILDING)$(BR2_XTENSA_CUSTOM):$(BR_ARCH_XTENSA_OVERLAY_FILE),yy:) +$(error No xtensa overlay file provided. Check your BR2_XTENSA_OVERLAY_FILE setting) +endif + +################################################################################ +# This variable can be used by packages that need to extract the overlay. +# +# ARCH_XTENSA_OVERLAY_FILE is the path to the overlay tarball; empty if not +# using any overlay +# +# Example: +# ifneq ($(ARCH_XTENSA_OVERLAY_FILE),) +# tar xf $(ARCH_XTENSA_OVERLAY_FILE) -C $(@D) --strip-components=1 gcc +# endif +################################################################################ +ifneq ($(filter http://% https://% ftp://% scp://%,$(BR_ARCH_XTENSA_OVERLAY_FILE)),) +ARCH_XTENSA_OVERLAY_URL = $(BR_ARCH_XTENSA_OVERLAY_FILE) +ARCH_XTENSA_OVERLAY_FILE = $($(PKG)_DL_DIR)/$(notdir $(BR_ARCH_XTENSA_OVERLAY_FILE)) +# Do not check that file, we can't know its hash +BR_NO_CHECK_HASH_FOR += $(notdir $(ARCH_XTENSA_OVERLAY_URL)) +else +ARCH_XTENSA_OVERLAY_FILE = $(BR_ARCH_XTENSA_OVERLAY_FILE) +endif + +################################################################################ +# arch-xtensa-overlay-extract -- extract an extensa overlay +# +# argument 1 is the path in which to extract +# argument 2 is the component to extract, one of: gcc, binutils, gdb, linux, +# u-boot +# +# Example: +# $(call arch-xtensa-overlay-extract,/path/to/overlay.tar,$(@D),gcc) +################################################################################ +define arch-xtensa-overlay-extract + $(call suitable-extractor,$(ARCH_XTENSA_OVERLAY_FILE)) \ + $(ARCH_XTENSA_OVERLAY_FILE) | \ + $(TAR) --strip-components=1 -C $(1) $(TAR_OPTIONS) - $(2) +endef diff --git a/board/aarch64-efi/genimage-efi.cfg b/board/aarch64-efi/genimage-efi.cfg new file mode 100644 index 000000000..158deab87 --- /dev/null +++ b/board/aarch64-efi/genimage-efi.cfg @@ -0,0 +1,30 @@ +image efi-part.vfat { + vfat { + file EFI { + image = "efi-part/EFI" + } + file Image { + image = "Image" + } + } + + size = 64M +} + +image disk.img { + hdimage { + partition-table-type = "gpt" + } + + partition boot { + image = "efi-part.vfat" + partition-type-uuid = U + offset = 32K + bootable = true + } + + partition root { + partition-type-uuid = b921b045-1df0-41c3-af44-4c6f280d3fae + image = "rootfs.ext2" + } +} diff --git a/board/aarch64-efi/grub.cfg b/board/aarch64-efi/grub.cfg new file mode 100644 index 000000000..d99e19c4c --- /dev/null +++ b/board/aarch64-efi/grub.cfg @@ -0,0 +1,6 @@ +set default="0" +set timeout="5" + +menuentry "Buildroot" { + linux /Image root=PARTLABEL=root rootwait +} diff --git a/board/aarch64-efi/post-image.sh b/board/aarch64-efi/post-image.sh new file mode 100755 index 000000000..f0214dc86 --- /dev/null +++ b/board/aarch64-efi/post-image.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" + +cp -f ${BOARD_DIR}/grub.cfg ${BINARIES_DIR}/efi-part/EFI/BOOT/grub.cfg diff --git a/board/aarch64-efi/readme.txt b/board/aarch64-efi/readme.txt new file mode 100644 index 000000000..0e7ea0b5d --- /dev/null +++ b/board/aarch64-efi/readme.txt @@ -0,0 +1,53 @@ + +The aarch64_efi_defconfig allows to build a minimal Linux system that +can boot on all AArch64 servers providing an EFI firmware. + +This includes all Arm EBBR[1] compliant systems, and all Arm SystemReady[2] +compliant systems for example. + + +Building and booting +==================== + +$ make aarch64_efi_defconfig +$ make + +The file output/images/disk.img is a complete disk image that can be +booted, it includes the grub2 bootloader, Linux kernel and root +filesystem. + +Testing under Qemu +================== + +This image can also be tested using Qemu: + +qemu-system-aarch64 \ + -M virt \ + -cpu cortex-a57 \ + -m 512 \ + -nographic \ + -bios \ + -drive file=output/images/disk.img,if=none,format=raw,id=hd0 \ + -device virtio-blk-device,drive=hd0 \ + -netdev user,id=eth0 \ + -device virtio-net-device,netdev=eth0 + +Note that needs to point to a valid aarch64 UEFI +firmware image for qemu. +It may be provided by your distribution as a edk2-aarch64 or AAVMF +package, in path such as /usr/share/edk2/aarch64/QEMU_EFI.fd . + +U-Boot based qemu firmware +========================== + +A qemu firmware with support for UEFI based on U-Boot can be built following +the instructions in [3], with qemu_arm64_defconfig. + +This should give you a nor_flash.bin, which you can use with qemu as an +alternative to QEMU_EFI.fd. You will also need to change the machine +specification to "-M virt,secure=on" on qemu command line, to enable TrustZone +support, and you will need to increase the memory with "-m 1024". + +[1]: https://github.com/ARM-software/ebbr +[2]: https://developer.arm.com/architectures/system-architectures/arm-systemready +[3]: https://github.com/glikely/u-boot-tfa-build diff --git a/board/acmesystems/acqua-a5/at91-sama5d3_acqua.dts b/board/acmesystems/acqua-a5/at91-sama5d3_acqua.dts new file mode 100644 index 000000000..264af2980 --- /dev/null +++ b/board/acmesystems/acqua-a5/at91-sama5d3_acqua.dts @@ -0,0 +1,301 @@ +/* + * acme-acqua.dts - Device Tree file for Acqua A5 Board + * + * Copyright (C) 2014 Atmel, + * 2014 Nicolas Ferre + * + * 2020 Sergio Tanzilli + * + * Licensed under GPLv2 or later. + */ +/dts-v1/; +#include "sama5d31.dtsi" + +/ { + model = "Acme Systems Acqua SOM"; + compatible = "acme,acqua", "atmel,sama5d3", "atmel,sama5"; + + chosen { + stdout-path = "serial0:115200n8"; + bootargs = "mem=256M console=ttyS0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rw rootwait consoleblank=0"; + }; + + memory { + reg = <0x20000000 0x10000000>; + }; + + clocks { + slow_xtal { + clock-frequency = <32768>; + }; + + main_xtal { + clock-frequency = <12000000>; + }; + }; + + ahb { + apb { + hlcdc: hlcdc@f0030000 { + status = "disabled"; + hlcdc-display-controller { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_rgb888_alt>; + port@0 { + hlcdc_panel_output: endpoint@0 { + remote-endpoint = <&panel_input>; + }; + }; + }; + }; + + /* MicroSD mounted on the SOM */ + + mmc0: mmc@f0000000 { + pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_cd>; + status = "okay"; + slot@0 { + reg = <0>; + bus-width = <4>; + }; + }; + + /* Optional MicroSD to mount on the carrier board */ + + mmc1: mmc@f8000000 { + pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3 &pinctrl_mmc1_cd>; + status = "disabled"; + slot@0 { + reg = <0>; + bus-width = <4>; + cd-gpios = <&pioE 1 GPIO_ACTIVE_LOW>; + }; + }; + + spi0: spi@f0004000 { + cs-gpios = <&pioD 13 0>, <0>, <0>, <&pioD 16 0>; + status = "disabled"; + }; + + can0: can@f000c000 { + status = "disabled"; + }; + + tcb0: timer@f0010000 { + timer0: timer@0 { + compatible = "atmel,tcb-timer"; + reg = <0>; + }; + + timer1: timer@1 { + compatible = "atmel,tcb-timer"; + reg = <1>; + }; + }; + + i2c0: i2c@f0014000 { + pinctrl-0 = <&pinctrl_i2c0_pu>; + status = "disabled"; + }; + + i2c1: i2c@f0018000 { + status = "disabled"; + }; + + macb1: ethernet@f802c000 { + compatible = "atmel,sama5d3-macb", "cdns,at91sam9260-macb", "cdns,macb"; + + status = "okay"; + phy-mode = "rmii"; + #address-cells = <1>; + #size-cells = <0>; + + nvmem-cells = <ð0_addr>; + nvmem-cell-names = "mac-address"; + + phy0: ethernet-phy@1 { + interrupt-parent = <&pioE>; + interrupts = <30 IRQ_TYPE_EDGE_FALLING>; + reg = <1>; + }; + + /*ethernet-phy@1 { + reg = <0x1>; + };*/ + }; + + /* Bit banging internal I2C to manage the AT24MAC402 chip */ + + i2c3@ { + compatible = "i2c-gpio"; + gpios = <&pioE 1 0 /* SDA */ + &pioE 2 0 /* SCK */ + >; + i2c-gpio,delay-us = <4>; /* ~178 kHz */ + #address-cells = <1>; + #size-cells = <0>; + + /* EEPROM contains the eth0 MAC address */ + + eeprom@58 { + compatible = "atmel,24mac402"; + pagesize = <256>; + read-only; + reg = <0x58>; + #address-cells = <1>; + #size-cells = <1>; + + eth0_addr: eth-mac-addr@9A { + reg = <0x0 0x06>; + }; + }; + }; + + pwm0: pwm@f002c000 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_pwm0_pwmh0_0 &pinctrl_pwm0_pwmh1_0>; + status = "disabled"; + }; + + usart0: serial@f001c000 { + status = "okay"; + }; + + usart1: serial@f0020000 { + pinctrl-0 = <&pinctrl_usart1 &pinctrl_usart1_rts_cts>; + status = "disabled"; + }; + + uart0: serial@f0024000 { + status = "disabled"; + }; + + + spi1: spi@f8008000 { + cs-gpios = <&pioC 25 0>; + status = "disabled"; + }; + + adc0: adc@f8018000 { + atmel,adc-vref = <3300>; + atmel,adc-channels-used = <0xfe>; + pinctrl-0 = < + &pinctrl_adc0_adtrg + &pinctrl_adc0_ad1 + &pinctrl_adc0_ad2 + &pinctrl_adc0_ad3 + &pinctrl_adc0_ad4 + &pinctrl_adc0_ad5 + &pinctrl_adc0_ad6 + &pinctrl_adc0_ad7 + >; + status = "disabled"; + }; + + i2c2: i2c@f801c000 { + dmas = <0>, <0>; /* Do not use DMA for i2c2 */ + pinctrl-0 = <&pinctrl_i2c2_pu>; + status = "disabled"; + }; + + + dbgu: serial@ffffee00 { + status = "okay"; + }; + + pinctrl@fffff200 { + board { + pinctrl_i2c0_pu: i2c0_pu { + atmel,pins = + , + ; + }; + + pinctrl_i2c2_pu: i2c2_pu { + atmel,pins = + , + ; + }; + + pinctrl_key_gpio: key_gpio_0 { + atmel,pins = + ; + }; + + pinctrl_mmc0_cd: mmc0_cd { + atmel,pins = + ; + }; + + pinctrl_mmc1_cd: mmc1_cd { + atmel,pins = + ; + }; + + pinctrl_usba_vbus: usba_vbus { + atmel,pins = + ; /* PE9, conflicts with A9 */ + }; + }; + }; + }; + + usb0: gadget@500000 { + status = "okay"; + }; + + usb1: ohci@600000 { + status = "okay"; + }; + + usb2: ehci@700000 { + status = "okay"; + }; + + }; + + + panel: panel { + /* compatible = "acme,43inch", "simple-panel"; */ + compatible = "acme,50inch", "simple-panel"; + /* compatible = "acme,70inch", "simple-panel"; */ + + status = "disable"; + + port@0 { + panel_input: endpoint@0 { + remote-endpoint = <&hlcdc_panel_output>; + }; + }; + }; + + + leds { + compatible = "gpio-leds"; + + led0 { + label = "led0"; + gpios = <&pioE 3 GPIO_ACTIVE_LOW>; + default-state = "off"; + }; + + led1 { + label = "led1"; + gpios = <&pioE 4 GPIO_ACTIVE_LOW>; + default-state = "off"; + }; + + led2 { + label = "led2"; + gpios = <&pioE 5 GPIO_ACTIVE_LOW>; + linux,default-trigger = "heartbeat"; + }; + + led3 { + label = "led3"; + gpios = <&pioE 6 GPIO_ACTIVE_LOW>; + linux,default-trigger = "mmc0"; + default-state = "off"; + }; + }; +}; diff --git a/board/acmesystems/acqua-a5/genimage.cfg b/board/acmesystems/acqua-a5/genimage.cfg new file mode 100644 index 000000000..7fa0a69c4 --- /dev/null +++ b/board/acmesystems/acqua-a5/genimage.cfg @@ -0,0 +1,29 @@ +# Minimal SD card image for the Acme Systems Acqua A5 + +image boot.vfat { + vfat { + files = { + "boot.bin", + "zImage", + "at91-sama5d3_acqua.dtb" + } + } + + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/acmesystems/acqua-a5/readme.txt b/board/acmesystems/acqua-a5/readme.txt new file mode 100644 index 000000000..ce7dbafb2 --- /dev/null +++ b/board/acmesystems/acqua-a5/readme.txt @@ -0,0 +1,44 @@ +Acme Systems Acqua A5 + +Intro +===== + +The Acqua A5 is a system on module based on the Microchip SAMA5D31 SoC: + + https://www.acmesystems.it/acqua + +The files here support configurations that build a microSD image for a +minimal system that can be accessed through the serial console. You will +need an USB-to-serial interface in order to access that console from +your computer: + + https://www.acmesystems.it/DPI + +How to build the image +====================== + +If you have an Acqua module with 256 MiB of RAM, type: + +$ make acmesystems_acqua_a5_256mb_defconfig + +If you have the 512 MiB version, type instead: + +$ make acmesystems_acqua_a5_512mb_defconfig + +You can optionally tweak the configuration and add packages by typing: + +$ make menuconfig + +Then, proceed with the build: + +$ make + +How to write the microSD card +============================= + +The system image is the file "sdcard.img" in the "output/images" +directory. Write it to the card by invoking: + +$ sudo dd if=output/images/sdcard.img of=/dev/sdX bs=1M + +where `sdX' is the block device representing the microSD card. diff --git a/board/acmesystems/aria-g25/genimage.cfg b/board/acmesystems/aria-g25/genimage.cfg new file mode 100644 index 000000000..29dc69715 --- /dev/null +++ b/board/acmesystems/aria-g25/genimage.cfg @@ -0,0 +1,36 @@ +# Minimal SD card image for the Acmesystems Aria G25 + +image boot.vfat { + vfat { + file zImage { + image = "zImage" + } + + file at91-ariag25.dtb { + image = "at91-ariag25.dtb" + } + + file boot.bin { + image = "at91sam9x5_aria-sdcardboot-linux-zimage-dt-3.10.3.bin" + } + } + + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/board/acmesystems/aria-g25/readme.txt b/board/acmesystems/aria-g25/readme.txt new file mode 100644 index 000000000..cb9e9abf7 --- /dev/null +++ b/board/acmesystems/aria-g25/readme.txt @@ -0,0 +1,44 @@ +Acme Systems Aria G25 + +Build instructions +================== + +To build an image for the Aria G25 choose the configuration +corresponding to the Aria variant. + +For 128MB RAM variant type: + +$ make acmesystems_aria_g25_128mb_defconfig + +else for 256MB RAM variant type: + +$ make acmesystems_aria_g25_256mb_defconfig + +To customize the configuration choosed type: + +$ make menuconfig + +When you are ready to start building Buildroot type: + +$ make + +How to write the microSD card +============================= + +Once the build process is finished you will have an image called +"sdcard.img" in the output/images/ directory. + +Write the bootable SD card image "sdcard.img" onto an SD card with +"dd" command: + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + +Assuming your Aria G25 baseboard has a MicroSD socket, for example +with the Terra baseboard, insert the microSD card into the baseboard +slot and power it. + +To get the kernel log messages you can use a DPI cable +(http://www.acmesystems.it/DPI) + +You can find additional informations, tutorials and a very +comprehensive documentation on http://www.acmesystems.it/aria. diff --git a/board/acmesystems/arietta-g25/genimage.cfg b/board/acmesystems/arietta-g25/genimage.cfg new file mode 100644 index 000000000..3b67a474c --- /dev/null +++ b/board/acmesystems/arietta-g25/genimage.cfg @@ -0,0 +1,36 @@ +# Minimal SD card image for the Acmesystems Arietta G25 + +image boot.vfat { + vfat { + file zImage { + image = "zImage" + } + + file acme-arietta.dtb { + image = "at91-ariettag25.dtb" + } + + file boot.bin { + image = "at91sam9x5_arietta-sdcardboot-linux-zimage-dt-3.10.3.bin" + } + } + + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/board/acmesystems/arietta-g25/readme.txt b/board/acmesystems/arietta-g25/readme.txt new file mode 100644 index 000000000..f356b0a26 --- /dev/null +++ b/board/acmesystems/arietta-g25/readme.txt @@ -0,0 +1,49 @@ +Acme Systems Arietta G25 + +Intro +===== + +This default configuration will allow you to start experimenting with the +buildroot environment for the Arietta G25. With the current configuration +it will bring-up the board, and allow access through the serial console. + +You can find additional informations, tutorials and a very comprehensive +documentation on http://www.acmesystems.it/arietta. + +Build instructions +================== + +To build an image for the Arietta G25 choose the configuration +corresponding to the Arietta variant. + +For 128MB RAM variant type: + +$ make acmesystems_arietta_g25_128mb_defconfig + +else for 256MB RAM variant type: + +$ make acmesystems_arietta_g25_256mb_defconfig + +To customize the configuration chosen type: + +$ make menuconfig + +When you are ready to start building Buildroot type: + +$ make + +How to write the microSD card +============================= + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + +Insert the microSD card into the Arietta slot and power it. + +The image just built is fairly basic and the only output +you will get is on serial console, please consider to use a DPI +cable (http://www.acmesystems.it/DPI) diff --git a/board/altera/socrates_cyclone5/boot-env.txt b/board/altera/socrates_cyclone5/boot-env.txt new file mode 100644 index 000000000..ed5b61386 --- /dev/null +++ b/board/altera/socrates_cyclone5/boot-env.txt @@ -0,0 +1,8 @@ +linux_load_address=0x100000 +linux_dtb_load_address=0x100 +linux_dtb=socfpga_cyclone5_socrates.dtb +linux_load=mmc rescan; fatload mmc 0:1 ${linux_load_address} zImage; fatload mmc 0:1 ${linux_dtb_load_address} ${linux_dtb} +bootargs=console=ttyS0,115200 root=/dev/mmcblk0p3 ro rootwait +source_env=fatload mmc 0:1 0x2000000 boot.scr; source 0x2000000 +bootcmd=run linux_load; bootz ${linux_load_address} - ${linux_dtb_load_address} +bootdelay=1 diff --git a/board/altera/socrates_cyclone5/genimage.cfg b/board/altera/socrates_cyclone5/genimage.cfg new file mode 100644 index 000000000..d31c3838b --- /dev/null +++ b/board/altera/socrates_cyclone5/genimage.cfg @@ -0,0 +1,59 @@ +image boot.vfat { + vfat { + files = { + "zImage", + "socfpga_cyclone5_socrates.dtb" + } + } + + size = 8M +} + +image uboot.img { + hdimage { + partition-table = "no" + } + + partition spl { + in-partition-table = "no" + image = "u-boot-spl.bin.crc" + offset = 0 + size = 64K + } + + partition uboot-full { + in-partition-table = "no" + image = "u-boot.img" + offset = 256K + } + + size = 1M +} + +image sdcard.img { + hdimage { + } + + partition uboot-env { + in-partition-table = "no" + image = "uboot-env.bin" + offset = 17K # 512 * 34 -> just after gpt + } + + partition boot { + partition-type = 0xc + bootable = "true" + image = "boot.vfat" + } + + partition uboot { + partition-type = 0xa2 + image = "uboot.img" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext2" + size = 500M + } +} diff --git a/board/altera/socrates_cyclone5/readme.txt b/board/altera/socrates_cyclone5/readme.txt new file mode 100644 index 000000000..4e78feef1 --- /dev/null +++ b/board/altera/socrates_cyclone5/readme.txt @@ -0,0 +1,52 @@ +EBV SoCrates Evaluation Board + +Intro +===== + +More information about this board can be found here: +https://rocketboards.org/foswiki/Documentation/EBVSoCratesEvaluationBoard + +Build +===== + +First, load socrates config for buildroot + + make socrates_cyclone5_defconfig + +Build everything + + make + +Following files will be generated in output/images + +. +├── boot.vfat +├── rootfs.ext2 +├── rootfs.ext4 -> rootfs.ext2 +├── rootfs.tar +├── sdcard.img +├── socfpga_cyclone5_socrates.dtb +├── u-boot-spl.bin +├── u-boot-spl.bin.crc +├── u-boot.bin +├── u-boot.img +├── uboot-env.bin +├── uboot.img +└── zImage + + +Creating bootable SD card +========================= + +Simply invoke + +dd if=output/images/sdcard.img of=/dev/sdX + +Where X is your SD card device (not partition) + +Booting +======= + +Pins 6:8 on P18 selector is used to determine boot device. To boot socrates from +sdcard set these pins to value 0x5 (101b). Remaining pins are used to determine +how to configure FPGA and are not associated with booting into Linux kernel. diff --git a/board/amarula/a64-relic/extlinux.conf b/board/amarula/a64-relic/extlinux.conf new file mode 100644 index 000000000..9f469846b --- /dev/null +++ b/board/amarula/a64-relic/extlinux.conf @@ -0,0 +1,4 @@ +label linux-4.17.0-rc3 + kernel /Image + devicetree /sun50i-a64-amarula-relic.dtb + append console=ttyS0,115200 earlyprintk root=/dev/mmcblk1p4 rootwait diff --git a/board/amarula/a64-relic/genimage.cfg b/board/amarula/a64-relic/genimage.cfg new file mode 100644 index 000000000..58b607f5f --- /dev/null +++ b/board/amarula/a64-relic/genimage.cfg @@ -0,0 +1,11 @@ +image boot.vfat { + vfat { + files = { + "Image", + "sun50i-a64-amarula-relic.dtb", + "extlinux" + } + } + + size = 64M +} diff --git a/board/amarula/a64-relic/post-build.sh b/board/amarula/a64-relic/post-build.sh new file mode 100755 index 000000000..ec20fca7d --- /dev/null +++ b/board/amarula/a64-relic/post-build.sh @@ -0,0 +1,4 @@ +#!/bin/sh +BOARD_DIR="$(dirname $0)" + +install -m 0644 -D $BOARD_DIR/extlinux.conf $BINARIES_DIR/extlinux/extlinux.conf diff --git a/board/amarula/a64-relic/readme.txt b/board/amarula/a64-relic/readme.txt new file mode 100644 index 000000000..77f79e309 --- /dev/null +++ b/board/amarula/a64-relic/readme.txt @@ -0,0 +1,90 @@ +Amarula A64 Relic +================ + +Amarula A64-Relic is an Allwinner A64 based IoT device, which supports: +- Allwinner A64 Cortex-A53 +- Mali-400MP2 GPU +- AXP803 PMIC +- 1GB DDR3 RAM +- 8GB eMMC +- AP6330 Wifi/BLE +- MIPI-DSI +- CSI: OV5640 sensor +- USB OTG +- 12V DC power supply + +Wiki link: +https://openedev.amarulasolutions.com/display/ODWIKI/Amarual+A64-Relic + +Build +===== + + $ make amarula_a64_relic_defconfig + + $ make + +build files at output/images/: + - sunxi-spl.bin + - u-boot.itb + - Image + - sun50i-a64-amarula-relic.dtb + - boot.vfat + - rootfs.ext4 + +Write eMMC +========= + +The board comes with an operating system preloaded on the eMMC. +To replace it with the Buildroot-built system, take the following +steps + +1. Connect the board UART with host and open minicom(ttyUSBx/115200N8) + +2. Supply 12V DC for power-on the board. + +3. Interrupt U-Boot by pressing enter + +4. Create GPT partitions + => mmc dev 1 + => gpt write mmc 1 $partitions + +5. Connect the board USB-OTG with USB slot on the host. + +6. Initiate fastboot + => fastboot 0 + +7. Write images from host onto eMMC using fastboot + $ cd output/images + $ sudo fastboot -i 0x1f3a flash loader1 sunxi-spl.bin + $ sudo fastboot -i 0x1f3a flash loader2 u-boot.itb + $ sudo fastboot -i 0x1f3a flash esp boot.vfat + $ sudo fastboot -i 0x1f3a flash system rootfs.ext4 + +Update eMMC during Development +============================== + +During development, reflashing the entire filesystem image at every +change is time consuming. A useful alternative is to directly access +over USB the filesystem stored on the eMMC, using the USB Mass Storage +capability of U-Boot. To achieve this: + +1. Build U-Boot by enabling UMS + $ make uboot-menuconfig + (select CONFIG_CMD_USB_MASS_STORAGE=y) + +2. Follow all 6 steps from 'Write eMMC' and mount eMMC on host + => mmc dev 1 + => ums 0 mmc 1 + +WiFi +==== + + # wpa_passphrase ACCESSPOINTNAME >> /etc/wpa_supplicant.conf + (type password and enter) + # wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf -B + # udhcpc -i wlan0 + # ping google.com + +-- +Jagan Teki +29-Jun-2018 diff --git a/board/amarula/a64-relic/rootfs_overlay/lib/firmware/brcm/brcmfmac4330-sdio.txt b/board/amarula/a64-relic/rootfs_overlay/lib/firmware/brcm/brcmfmac4330-sdio.txt new file mode 100644 index 000000000..d095f24c2 --- /dev/null +++ b/board/amarula/a64-relic/rootfs_overlay/lib/firmware/brcm/brcmfmac4330-sdio.txt @@ -0,0 +1,83 @@ +#AP6330_NVRAM_V1.0_20121130 +#Sample variables file for BCM94330 SD FC AGB board +manfid=0x2d0 +prodid=0x0547 +vendid=0x14e4 +devid=0x4360 +boardtype=0x05e1 +boardrev=0x1202 +boardflags=0x0080200 +nocrc=1 +xtalfreq=26000 +boardnum=22 +macaddr=00:90:4c:c5:12:38 +ag0=254 +aa2g=1 +ccode=ALL +pa0itssit=0x20 +pa0b0=5587 +pa0b1=-633 +pa0b2=-158 +rssismf2g=0xa +rssismc2g=0x3 +rssisav2g=0x7 +#rssi params for 5GHz +rssismf5g=0x4 +rssismc5g=0x3 +rssisav5g=0x7 +#PA parameters for lower a-band +pa1lob0=4748 +pa1lob1=-566 +pa1lob2=-180 +#PA parameters for midband +pa1b0=4762 +pa1b1=-593 +pa1b2=-172 +#PA parameters for high band +#pa1hib0=4596 +pa1hib0=4666 +pa1hib1=-619 +pa1hib2=-163 +rxpo5g=0 +maxp2ga0=74 +maxp5ga0=66 +maxp5gla0=66 +maxp5gha0=66 +# 2.4G Tx Power offsets +cck2gpo=0x2222 +ofdm2gpo=0x44444444 +mcs2gpo0=0x6666 +mcs2gpo1=0x6666 +# 5G Tx Power offsets +ofdm5gpo=0x44444444 +ofdm5glpo=0x44444444 +ofdm5ghpo=0x44444444 +mcs5gpo0=0x6666 +mcs5gpo1=0x6666 +mcs5glpo0=0x6666 +mcs5glpo1=0x6666 +mcs5ghpo0=0x6666 +mcs5ghpo1=0x6666 +sromrev=3 +il0macaddr=00:90:4c:c5:12:38 +wl0id=0x431b +cckPwrOffset=4 +swctrlmap_2g=0x44844484,0x42824282,0x40804484,0x18282,0x1ff +triso5g=0 +swctrlmap_5g=0x00100010,0x20202020,0x20202020,0x14202,0x0f0 +rfreg033=0x19 +rfreg033_cck=0x1f +dacrate2g=160 +dacrate5g=160 +txalpfbyp2g=1 +bphyscale=17 +cckPwrIdxCorr=-15 +pacalidx2g=50 +#pacalidx5g=20 +noise_cal_ref_2g=53 +noise_cal_po_2g=0 +noise_cal_ref_5g=52 +noise_cal_po_5g=5,0,0 +# 4330 OOB parameter: High level trigger +muxenab=0x10 + diff --git a/board/amarula/vyasa/extlinux.conf b/board/amarula/vyasa/extlinux.conf new file mode 100644 index 000000000..a8fcc35f5 --- /dev/null +++ b/board/amarula/vyasa/extlinux.conf @@ -0,0 +1,4 @@ +label Vyasa linux-next + kernel /boot/uImage + devicetree /boot/rk3288-vyasa.dtb + append console=ttyS2,115200n8 root=/dev/mmcblk0p1 rootwait diff --git a/board/amarula/vyasa/genimage.cfg b/board/amarula/vyasa/genimage.cfg new file mode 100644 index 000000000..e7076679d --- /dev/null +++ b/board/amarula/vyasa/genimage.cfg @@ -0,0 +1,22 @@ +image sdcard.img { + hdimage { + } + + partition u-boot-tpl-spl-dtb { + in-partition-table = "no" + image = "u-boot-tpl-spl-dtb.img" + offset = 32K + } + + partition u-boot-dtb { + in-partition-table = "no" + image = "u-boot-dtb.img" + offset = 8M + size = 30M # falcon mode: args @ 16M args, uImage @ 17M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/amarula/vyasa/linux_gmac.fragment b/board/amarula/vyasa/linux_gmac.fragment new file mode 100644 index 000000000..8ebf38359 --- /dev/null +++ b/board/amarula/vyasa/linux_gmac.fragment @@ -0,0 +1,3 @@ +# Currently mainline kernel exhibits issues when running rockchip gmac +# on the board, so enable it as loadable module and insert it later +CONFIG_DWMAC_ROCKCHIP=m diff --git a/board/amarula/vyasa/post-build.sh b/board/amarula/vyasa/post-build.sh new file mode 100755 index 000000000..ffbbcdeb5 --- /dev/null +++ b/board/amarula/vyasa/post-build.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +MKIMAGE=$HOST_DIR/bin/mkimage +BOARD_DIR="$(dirname $0)" + +$MKIMAGE -n rk3288 -T rksd -d $BINARIES_DIR/u-boot-tpl.bin $BINARIES_DIR/u-boot-tpl.img +cat $BINARIES_DIR/u-boot-tpl.img $BINARIES_DIR/u-boot-spl-dtb.bin > $BINARIES_DIR/u-boot-tpl-spl-dtb.img + +install -m 0644 -D $BOARD_DIR/extlinux.conf $TARGET_DIR/boot/extlinux/extlinux.conf diff --git a/board/amarula/vyasa/readme.txt b/board/amarula/vyasa/readme.txt new file mode 100644 index 000000000..b95889e81 --- /dev/null +++ b/board/amarula/vyasa/readme.txt @@ -0,0 +1,31 @@ +Vyasa RK3288 +============ + +Vyasa is RK3288 based Single board computer with fully supported opensource software. + +https://openedev.amarulasolutions.com/display/ODWIKI/Vyasa+RK3288 + +How to build it +=============== + + $ make amarula_vyasa_rk3288_defconfig + +Then you can edit the build options using + + $ make menuconfig + +Compile all and build rootfs image: + + $ make + +Prepare your SDCard +=================== + +Buildroot generates a ready-to-use SD card image that you can flash directly to +the card. The image will be in output/images/sdcard.img. +You can write this image directly to an SD card device (i.e. /dev/xxx): + + $ sudo dd if=output/images/sdcard.img of=/dev/xxx + $ sudo sync + +Finally, you can insert the SD card to the Vyasa RK3288 board, close J4 and boot it. diff --git a/board/andes/ae350/ae350.dts b/board/andes/ae350/ae350.dts new file mode 100755 index 000000000..5e5d70ab2 --- /dev/null +++ b/board/andes/ae350/ae350.dts @@ -0,0 +1,274 @@ +/dts-v1/; + +/ { + #address-cells = <2>; + #size-cells = <2>; + compatible = "andestech,ae350"; + model = "andestech,ax45"; + aliases { + uart0 = &serial0; + spi0 = &spi; + }; + + chosen { + bootargs = "console=ttyS0,38400n8 earlycon=sbi debug loglevel=7"; + stdout-path = "uart0:38400n8"; + }; + cpus { + #address-cells = <1>; + #size-cells = <0>; + timebase-frequency = <60000000>; + CPU0: cpu@0 { + device_type = "cpu"; + reg = <0>; + status = "okay"; + compatible = "riscv"; + riscv,isa = "rv64i2p0m2p0a2p0f2p0d2p0c2p0xv5-1p1xdsp0p0"; + riscv,priv-major = <1>; + riscv,priv-minor = <10>; + mmu-type = "riscv,sv48"; + clock-frequency = <60000000>; + i-cache-size = <0x8000>; + i-cache-sets = <256>; + i-cache-block-size = <64>; + i-cache-line-size = <64>; + d-cache-size = <0x8000>; + d-cache-sets = <128>; + d-cache-block-size = <64>; + d-cache-line-size = <64>; + next-level-cache = <&L2>; + CPU0_intc: interrupt-controller { + #interrupt-cells = <1>; + interrupt-controller; + compatible = "riscv,cpu-intc"; + }; + }; + CPU1: cpu@1 { + device_type = "cpu"; + reg = <1>; + status = "okay"; + compatible = "riscv"; + riscv,isa = "rv64i2p0m2p0a2p0f2p0d2p0c2p0xv5-1p1xdsp0p0"; + riscv,priv-major = <1>; + riscv,priv-minor = <10>; + mmu-type = "riscv,sv48"; + clock-frequency = <60000000>; + i-cache-size = <0x8000>; + i-cache-sets = <256>; + i-cache-block-size = <64>; + i-cache-line-size = <64>; + d-cache-size = <0x8000>; + d-cache-sets = <128>; + d-cache-block-size = <64>; + d-cache-line-size = <64>; + next-level-cache = <&L2>; + CPU1_intc: interrupt-controller { + #interrupt-cells = <1>; + interrupt-controller; + compatible = "riscv,cpu-intc"; + }; + }; + CPU2: cpu@2 { + device_type = "cpu"; + reg = <2>; + status = "okay"; + compatible = "riscv"; + riscv,isa = "rv64i2p0m2p0a2p0f2p0d2p0c2p0xv5-1p1xdsp0p0"; + riscv,priv-major = <1>; + riscv,priv-minor = <10>; + mmu-type = "riscv,sv48"; + clock-frequency = <60000000>; + i-cache-size = <0x8000>; + i-cache-sets = <256>; + i-cache-block-size = <64>; + i-cache-line-size = <64>; + d-cache-size = <0x8000>; + d-cache-sets = <128>; + d-cache-block-size = <64>; + d-cache-line-size = <64>; + next-level-cache = <&L2>; + CPU2_intc: interrupt-controller { + #interrupt-cells = <1>; + interrupt-controller; + compatible = "riscv,cpu-intc"; + }; + }; + CPU3: cpu@3 { + device_type = "cpu"; + reg = <3>; + status = "okay"; + compatible = "riscv"; + riscv,isa = "rv64i2p0m2p0a2p0f2p0d2p0c2p0xv5-1p1xdsp0p0"; + riscv,priv-major = <1>; + riscv,priv-minor = <10>; + mmu-type = "riscv,sv48"; + clock-frequency = <60000000>; + i-cache-size = <0x8000>; + i-cache-sets = <256>; + i-cache-block-size = <64>; + i-cache-line-size = <64>; + d-cache-size = <0x8000>; + d-cache-sets = <128>; + d-cache-block-size = <64>; + d-cache-line-size = <64>; + next-level-cache = <&L2>; + CPU3_intc: interrupt-controller { + #interrupt-cells = <1>; + interrupt-controller; + compatible = "riscv,cpu-intc"; + }; + }; + }; + L2: l2-cache@e0500000 { + compatible = "cache"; + cache-level = <2>; + cache-size = <0x80000>; + reg = <0x00000000 0xe0500000 0x00000000 0x00001000>; + andes,inst-prefetch = <3>; + andes,data-prefetch = <3>; + // The value format is + andes,tag-ram-ctl = <0 0>; + andes,data-ram-ctl = <0 0>; + }; + memory@0 { + reg = <0x00000000 0x00000000 0x00000000 0x80000000>; + device_type = "memory"; + }; + soc { + #address-cells = <2>; + #size-cells = <2>; + compatible = "andestech,riscv-ae350-soc", "simple-bus"; + ranges; + plic0: interrupt-controller@e4000000 { + compatible = "riscv,plic0"; + reg = <0x00000000 0xe4000000 0x00000000 0x02000000>; + interrupts-extended = < &CPU0_intc 11 &CPU0_intc 9 &CPU1_intc 11 &CPU1_intc 9 &CPU2_intc 11 &CPU2_intc 9 &CPU3_intc 11 &CPU3_intc 9>; + interrupt-controller; + #address-cells = <2>; + #interrupt-cells = <2>; + riscv,ndev = <71>; + }; + plic1: interrupt-controller@e6400000 { + compatible = "riscv,plic1"; + reg = <0x00000000 0xe6400000 0x00000000 0x00400000>; + interrupts-extended = < &CPU0_intc 3 &CPU1_intc 3 &CPU2_intc 3 &CPU3_intc 3>; + interrupt-controller; + #address-cells = <2>; + #interrupt-cells = <2>; + riscv,ndev = <4>; + }; + plmt0: plmt0@e6000000 { + compatible = "riscv,plmt0"; + reg = <0x00000000 0xe6000000 0x00000000 0x00100000>; + interrupts-extended = < &CPU0_intc 7 &CPU1_intc 7 &CPU2_intc 7 &CPU3_intc 7>; + }; + spiclk: virt_100mhz { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <100000000>; + }; + timer0: timer@f0400000 { + compatible = "andestech,atcpit100"; + reg = <0x00000000 0xf0400000 0x00000000 0x00001000>; + interrupts = <3 4>; + interrupt-parent = <&plic0>; + clock-frequency = <60000000>; + }; + pwm: pwm@f0400000 { + compatible = "andestech,atcpit100-pwm"; + reg = <0x00000000 0xf0400000 0x00000000 0x00001000>; + interrupts = <3 4>; + interrupt-parent = <&plic0>; + clock-frequency = <60000000>; + pwm-cells = <2>; + }; + wdt: wdt@f0500000 { + compatible = "andestech,atcwdt200"; + reg = <0x00000000 0xf0500000 0x00000000 0x00001000>; + interrupts = <3 4>; + interrupt-parent = <&plic0>; + clock-frequency = <15000000>; + }; + serial0: serial@f0300000 { + compatible = "andestech,uart16550", "ns16550a"; + reg = <0x00000000 0xf0300000 0x00000000 0x00001000>; + interrupts = <9 4>; + interrupt-parent = <&plic0>; + clock-frequency = <19660800>; + reg-shift = <2>; + reg-offset = <32>; + no-loopback-test = <1>; + }; + rtc0: rtc@f0600000 { + compatible = "andestech,atcrtc100"; + reg = <0x00000000 0xf0600000 0x00000000 0x00001000>; + interrupts = <1 4 2 4>; + interrupt-parent = <&plic0>; + wakeup-source; + }; + gpio: gpio@f0700000 { + compatible = "andestech,atcgpio100"; + reg = <0x00000000 0xf0700000 0x00000000 0x00001000>; + interrupts = <7 4>; + interrupt-parent = <&plic0>; + wakeup-source; + }; + mac0: mac@e0100000 { + compatible = "andestech,atmac100"; + reg = <0x00000000 0xe0100000 0x00000000 0x00001000>; + interrupts = <19 4>; + interrupt-parent = <&plic0>; + dma-coherent; + }; + smu: smu@f0100000 { + compatible = "andestech,atcsmu"; + reg = <0x00000000 0xf0100000 0x00000000 0x00001000>; + }; + mmc0: mmc@f0e00000 { + compatible = "andestech,atfsdc010"; + reg = <0x00000000 0xf0e00000 0x00000000 0x00001000>; + interrupts = <18 4>; + interrupt-parent = <&plic0>; + clock-freq-min-max = <400000 100000000>; + max-frequency = <100000000>; + fifo-depth = <16>; + cap-sd-highspeed; + dma-coherent; + }; + dma0: dma@f0c00000 { + compatible = "andestech,atcdmac300"; + reg = <0x00000000 0xf0c00000 0x00000000 0x00001000>; + interrupts = <10 4 64 4 65 4 66 4 67 4 68 4 69 4 70 4 71 4>; + interrupt-parent = <&plic0>; + dma-channels = <8>; + }; + lcd0: lcd@e0200000 { + compatible = "andestech,atflcdc100"; + reg = <0x00000000 0xe0200000 0x00000000 0x00001000>; + interrupts = <20 4>; + interrupt-parent = <&plic0>; + dma-coherent; + }; + pmu: pmu { + compatible = "riscv,andes-pmu"; + device_type = "pmu"; + }; + spi: spi@f0b00000 { + compatible = "andestech,atcspi200"; + reg = <0x00000000 0xf0b00000 0x00000000 0x00001000>; + interrupts = <4 4>; + interrupt-parent = <&plic0>; + #address-cells = <1>; + #size-cells = <0>; + num-cs = <1>; + clocks = <&spiclk>; + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0x00000000>; + spi-max-frequency = <50000000>; + spi-cpol; + spi-cpha; + }; + }; + }; +}; diff --git a/board/andes/ae350/genimage_sdcard.cfg b/board/andes/ae350/genimage_sdcard.cfg new file mode 100644 index 000000000..b8b9fe6a6 --- /dev/null +++ b/board/andes/ae350/genimage_sdcard.cfg @@ -0,0 +1,26 @@ +image boot.vfat { + vfat { + files = { + "u-boot-spl.bin", + "u-boot.itb", + "ae350.dtb", + } + } + size = 2M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + bootable = true + image = "rootfs.ext4" + } +} diff --git a/board/andes/ae350/patches/opensbi/0001-Disable-PIC-explicitly-for-assembling.patch b/board/andes/ae350/patches/opensbi/0001-Disable-PIC-explicitly-for-assembling.patch new file mode 100644 index 000000000..aeafed4c9 --- /dev/null +++ b/board/andes/ae350/patches/opensbi/0001-Disable-PIC-explicitly-for-assembling.patch @@ -0,0 +1,29 @@ +From 3ccb71eeca42dbcd5e4d00ae1877a489ae82598d Mon Sep 17 00:00:00 2001 +From: Yu Chien Peter Lin +Date: Wed, 29 Dec 2021 16:04:54 +0800 +Subject: [PATCH] Disable PIC explicitly for assembling + +This patch is necessary if the fw_dynamic load address +is not equal to link address. +However, they are equal currently, since we include an u-boot +patch for preventing fw_dynamic relocation. + +Signed-off-by: Yu Chien Peter Lin +--- + Makefile | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Makefile b/Makefile +index d6f097d..441518d 100644 +--- a/Makefile ++++ b/Makefile +@@ -225,6 +225,7 @@ ASFLAGS += -mcmodel=$(PLATFORM_RISCV_CODE_MODEL) + ASFLAGS += $(GENFLAGS) + ASFLAGS += $(platform-asflags-y) + ASFLAGS += $(firmware-asflags-y) ++ASFLAGS += -fno-pic + + ARFLAGS = rcs + +-- +2.25.1 diff --git a/board/andes/ae350/patches/opensbi/0002-Enable-cache-for-opensbi-jump-mode.patch b/board/andes/ae350/patches/opensbi/0002-Enable-cache-for-opensbi-jump-mode.patch new file mode 100644 index 000000000..ae48a760c --- /dev/null +++ b/board/andes/ae350/patches/opensbi/0002-Enable-cache-for-opensbi-jump-mode.patch @@ -0,0 +1,25 @@ +From 325328f4204b40b1fcc8db3b46c7c8805710d21c Mon Sep 17 00:00:00 2001 +From: Yu Chien Peter Lin +Date: Thu, 30 Dec 2021 08:47:34 +0800 +Subject: [PATCH] Enable cache for opensbi jump mode + +Signed-off-by: Yu Chien Peter Lin +--- + firmware/fw_base.S | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/firmware/fw_base.S b/firmware/fw_base.S +index ab33e11..155d230 100644 +--- a/firmware/fw_base.S ++++ b/firmware/fw_base.S +@@ -46,6 +46,8 @@ + .globl _start + .globl _start_warm + _start: ++ li t0, 0x80003 ++ csrw 0x7ca, t0 + /* Find preferred boot HART id */ + MOV_3R s0, a0, s1, a1, s2, a2 + call fw_boot_hart +-- +2.25.1 diff --git a/board/andes/ae350/patches/uboot/0001-Fix-mmc-no-partition-table-error.patch b/board/andes/ae350/patches/uboot/0001-Fix-mmc-no-partition-table-error.patch new file mode 100644 index 000000000..7aff3cebf --- /dev/null +++ b/board/andes/ae350/patches/uboot/0001-Fix-mmc-no-partition-table-error.patch @@ -0,0 +1,27 @@ +From ea4675215b53d16a72d29b8a6fc6a86cccf59cf0 Mon Sep 17 00:00:00 2001 +From: Yu Chien Peter Lin +Date: Wed, 5 Jan 2022 11:00:59 +0800 +Subject: [PATCH] Fix mmc no partition table error + +Signed-off-by: Yu Chien Peter Lin +--- + drivers/mmc/ftsdc010_mci.c | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/drivers/mmc/ftsdc010_mci.c b/drivers/mmc/ftsdc010_mci.c +index 570d54cf..3b1e0aa0 100644 +--- a/drivers/mmc/ftsdc010_mci.c ++++ b/drivers/mmc/ftsdc010_mci.c +@@ -438,10 +438,6 @@ static int ftsdc010_mmc_probe(struct udevice *dev) + return ret; + #endif + +- if (dev_read_bool(dev, "cap-mmc-highspeed") || \ +- dev_read_bool(dev, "cap-sd-highspeed")) +- chip->caps |= MMC_MODE_HS | MMC_MODE_HS_52MHz; +- + ftsdc_setup_cfg(&plat->cfg, dev->name, chip->buswidth, chip->caps, + priv->minmax[1] , priv->minmax[0]); + chip->mmc = &plat->mmc; +-- +2.25.1 diff --git a/board/andes/ae350/patches/uboot/0002-Prevent-fw_dynamic-from-relocation.patch b/board/andes/ae350/patches/uboot/0002-Prevent-fw_dynamic-from-relocation.patch new file mode 100644 index 000000000..c6e1896f1 --- /dev/null +++ b/board/andes/ae350/patches/uboot/0002-Prevent-fw_dynamic-from-relocation.patch @@ -0,0 +1,27 @@ +From 4c0c5378d032f2f95577585935624baf7b4decf3 Mon Sep 17 00:00:00 2001 +From: Yu Chien Peter Lin +Date: Wed, 5 Jan 2022 11:02:26 +0800 +Subject: [PATCH] Prevent fw_dynamic from relocation + +This patch prevents OpenSBI relocation, load fw_dynamic to link address + +Signed-off-by: Yu Chien Peter Lin +--- + board/AndesTech/ax25-ae350/Kconfig | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/board/AndesTech/ax25-ae350/Kconfig b/board/AndesTech/ax25-ae350/Kconfig +index e50f505a..385c4c11 100644 +--- a/board/AndesTech/ax25-ae350/Kconfig ++++ b/board/AndesTech/ax25-ae350/Kconfig +@@ -25,7 +25,7 @@ config SPL_TEXT_BASE + default 0x800000 + + config SPL_OPENSBI_LOAD_ADDR +- default 0x01000000 ++ default 0x0 + + config BOARD_SPECIFIC_OPTIONS # dummy + def_bool y +-- +2.25.1 diff --git a/board/andes/ae350/patches/uboot/0003-Fix-u-boot-proper-booting-issue.patch b/board/andes/ae350/patches/uboot/0003-Fix-u-boot-proper-booting-issue.patch new file mode 100644 index 000000000..20598fdba --- /dev/null +++ b/board/andes/ae350/patches/uboot/0003-Fix-u-boot-proper-booting-issue.patch @@ -0,0 +1,26 @@ +From 3d09501175ae6f5e3f6520b48b1358226a99ff16 Mon Sep 17 00:00:00 2001 +From: Yu Chien Peter Lin +Date: Wed, 5 Jan 2022 18:17:39 +0800 +Subject: [PATCH] Fix u-boot proper booting issue + +Signed-off-by: Yu Chien Peter Lin +--- + arch/riscv/cpu/start.S | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/arch/riscv/cpu/start.S b/arch/riscv/cpu/start.S +index 76850ec9..2ccda4f5 100644 +--- a/arch/riscv/cpu/start.S ++++ b/arch/riscv/cpu/start.S +@@ -139,7 +139,9 @@ call_harts_early_init: + * accesses gd). + */ + mv gp, s0 ++#if !CONFIG_IS_ENABLED(RISCV_SMODE) + bnez tp, secondary_hart_loop ++#endif + #endif + + jal board_init_f_init_reserve +-- +2.25.1 diff --git a/board/andes/ae350/patches/uboot/0004-Enable-printing-OpenSBI-boot-logo.patch b/board/andes/ae350/patches/uboot/0004-Enable-printing-OpenSBI-boot-logo.patch new file mode 100644 index 000000000..efd78ab26 --- /dev/null +++ b/board/andes/ae350/patches/uboot/0004-Enable-printing-OpenSBI-boot-logo.patch @@ -0,0 +1,25 @@ +From 3847a959ac4c07facbd80104ca5fa6a91fad5f35 Mon Sep 17 00:00:00 2001 +From: Yu Chien Peter Lin +Date: Thu, 6 Jan 2022 13:50:07 +0800 +Subject: [PATCH] Enable printing OpenSBI boot logo + +Signed-off-by: Yu Chien Peter Lin +--- + include/opensbi.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/opensbi.h b/include/opensbi.h +index d812cc8c..91fb8fd9 100644 +--- a/include/opensbi.h ++++ b/include/opensbi.h +@@ -20,7 +20,7 @@ + + enum sbi_scratch_options { + /** Disable prints during boot */ +- SBI_SCRATCH_NO_BOOT_PRINTS = (1 << 0), ++ SBI_SCRATCH_NO_BOOT_PRINTS = 0, + }; + + /** Representation dynamic info passed by previous booting stage */ +-- +2.25.1 diff --git a/board/andes/ae350/post-build.sh b/board/andes/ae350/post-build.sh new file mode 100755 index 000000000..0e6ce228f --- /dev/null +++ b/board/andes/ae350/post-build.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cp $BINARIES_DIR/Image $TARGET_DIR/boot +cp $BINARIES_DIR/ae350.dtb $TARGET_DIR/boot diff --git a/board/andes/ae350/readme.txt b/board/andes/ae350/readme.txt new file mode 100644 index 000000000..6825468d5 --- /dev/null +++ b/board/andes/ae350/readme.txt @@ -0,0 +1,65 @@ +Intro +===== + +Andestech AE350 Platform + +The AE350 prototype demonstrates the AE350 platform on the FPGA. + +How to build it +=============== + +Configure Buildroot +------------------- + + $ make andes_ae350_45_defconfig + +If you want to customize your configuration: + + $ make menuconfig + +Build everything +---------------- +Note: you will need to access to the network, since Buildroot will +download the packages' sources. + + $ make + +Result of the build +------------------- + +After building, you should obtain the following files: + + output/images/ + |-- ae350.dtb + |-- boot.vfat + |-- fw_dynamic.bin + |-- fw_dynamic.elf + |-- fw_jump.bin + |-- fw_jump.elf + |-- Image + |-- rootfs.ext2 + |-- rootfs.ext4 -> rootfs.ext2 + |-- sdcard.img + |-- u-boot-spl.bin + `-- u-boot.itb + +Copy the sdcard.img to a SD card with "dd": + + $ sudo dd if=sdcard.img of=/dev/sdX bs=4096 + $ sudo sync + +Your SD card partition should be: + + Disk /dev/sdb: 14.48 GiB, 15552479232 bytes, 30375936 sectors + Disk model: Multi-Card + Units: sectors of 1 * 512 = 512 bytes + Sector size (logical/physical): 512 bytes / 512 bytes + I/O size (minimum/optimal): 512 bytes / 512 bytes + Disklabel type: dos + Disk identifier: 0x00000000 + + Device Boot Start End Sectors Size Id Type + /dev/sdb1 1 4096 4096 2M c W95 FAT32 (LBA) + /dev/sdb2 * 4097 126976 122880 60M 83 Linux + +Insert SD card and reset the board, it should boot Linux from mmc. diff --git a/board/andes/ae350/rootfs_overlay/boot/extlinux/extlinux.conf b/board/andes/ae350/rootfs_overlay/boot/extlinux/extlinux.conf new file mode 100644 index 000000000..549eb93ab --- /dev/null +++ b/board/andes/ae350/rootfs_overlay/boot/extlinux/extlinux.conf @@ -0,0 +1,4 @@ +label linux + kernel /boot/Image + fdt /boot/ae350.dtb + append earlycon=sbi root=/dev/mmcblk0p2 rootwait diff --git a/board/andes/ae350/uboot.config.fragment b/board/andes/ae350/uboot.config.fragment new file mode 100644 index 000000000..4992d712a --- /dev/null +++ b/board/andes/ae350/uboot.config.fragment @@ -0,0 +1,5 @@ +CONFIG_SPL_FS_FAT=y +CONFIG_SPL_MMC=y +# CONFIG_SPL_RAM_SUPPORT is not set +# CONFIG_OF_BOARD is not set +CONFIG_OF_SEPARATE=y diff --git a/board/arcturus/aarch64-ucls1012a/post-build.sh b/board/arcturus/aarch64-ucls1012a/post-build.sh new file mode 100755 index 000000000..372df59c6 --- /dev/null +++ b/board/arcturus/aarch64-ucls1012a/post-build.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +mkdir -p ${TARGET_DIR}/lib/firmware +cp -f ${BUILD_DIR}/linux-custom/br2-ucls1012a.its ${BINARIES_DIR}/ diff --git a/board/arcturus/aarch64-ucls1012a/post-image.sh b/board/arcturus/aarch64-ucls1012a/post-image.sh new file mode 100755 index 000000000..ccfacd385 --- /dev/null +++ b/board/arcturus/aarch64-ucls1012a/post-image.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +MKIMAGE=${HOST_DIR}/usr/bin/mkimage +MKIMAGE_IN=${BINARIES_DIR}/br2-ucls1012a.its +MKIMAGE_OUT=${BINARIES_DIR}/part0-000000.itb +${MKIMAGE} -f ${MKIMAGE_IN} ${MKIMAGE_OUT} diff --git a/board/arcturus/aarch64-ucls1012a/readme.txt b/board/arcturus/aarch64-ucls1012a/readme.txt new file mode 100644 index 000000000..b486ecebc --- /dev/null +++ b/board/arcturus/aarch64-ucls1012a/readme.txt @@ -0,0 +1,74 @@ +Arcturus uCLS1012A SoM +====================== + +This tutorial describes how to use the predefined Buildroot +configuration for the Arcturus uCLS101A SoM platform. + +Additional information about the uCLS1012A System on Module can be found at +https://www.arcturusnetworks.com/products/ucls1012a +and product support for registered users at +https://www.arcturusnetworks.com/support + +Building +-------- + +Return to the top directory and execute the following commands. + + make arcturus_ucls1012a_defconfig + make + +Result of the build +------------------- + +After building, you should obtain this tree: + + output/images/ + +-- arc-ucls1012a.dtb + +-- Image.gz + +-- part0-000000.itb + +-- rootfs.cpio + +-- rootfs.cpio.gz + +-- rootfs.tar + +-- u-boot.bin + +-- br2-ucls1012a.its + +Flashing +-------- + +You'll need to program the image created by buildroot into the SPI NOR flash. + +1. Reboot your module and via the serial console press to enter the B$ +u-boot shell. + From the shell you will need to update four environment variables replacing the + IPv4 IP Address with ones that will work with your network and tftp server. + + B$ setenv ipaddr 192.168.1.81 + B$ setenv serverip 192.168.1.80 + B$ setenv gatewayip 192.168.1.1 + B$ setenv netmask 255.255.255.0 + B$ saveenv + +2. Enable tftp server to serve the /output/images/ folder. + +3. Program the new U-Boot binary (optional) + If you don't feel confident upgrading your bootloader then don't do it, + it's unnecessary most of the time. + + B$ tftp u-boot.bin + B$ run program_uboot + +4. Program the ITB image (includes Kernel, DTB and Ramdisk) + + B$ tftp part0-000000.itb + B$ run iprogram + +5. Booting your new system + + Reboot your system by reset command + B$ reset + + or + + B$ run bootcmd + +Good Luck ! diff --git a/board/arcturus/ppc-ucp1020/readme.txt b/board/arcturus/ppc-ucp1020/readme.txt new file mode 100644 index 000000000..07986f50e --- /dev/null +++ b/board/arcturus/ppc-ucp1020/readme.txt @@ -0,0 +1,74 @@ +Arcturus uCP1020 SoM +==================== + +This tutorial describes how to use the predefined Buildroot +configuration for the Arcturus uCP1020 SoM platform. + +Additional information about this module can be found at + + +Building +-------- + + make arcturus_ucp1020_defconfig + make + +Result of the build +------------------- + +After building, you should obtain this tree: + + output/images/ + +-- rootfs.jffs2 + +-- rootfs.tar + +-- u-boot.bin + +-- ucp1020.dtb + +-- uImage + +Flashing +-------- + +You'll need to program the files created by buildroot into the NOR flash. + +1. Program the new U-Boot binary (optional) + If you don't feel confident upgrading your bootloader then don't do it, + it's unnecessary most of the time. + + B$ tftp u-boot.bin + B$ protect off 0xeff80000 +$filesize + B$ erase 0xeff80000 +$filesize + B$ cp.b $loadaddr 0xeff80000 $filesize + B$ protect on 0xeff80000 +$filesize + +2. Program the kernel + + B$ tftp uImage + B$ erase 0xec140000 +$filesize + B$ cp.b $loadaddr 0xec140000 $filesize + +3. Program the DTB + + B$ tftp ucp1020.dtb + B$ erase 0xec100000 +$filesize + B$ cp.b $loadaddr 0xec100000 $filesize + +4. Program the jffs2 root filesystem + + B$ tftp rootfs.jffs2 + B$ erase 0xec800000 0xee8fffff + B$ cp.b $loadaddr 0xec800000 $filesize + +5. Booting your new system + + B$ setenv norboot 'setenv bootargs root=/dev/mtdblock1 rootfstype=jffs2 console=$consoledev,$baudrate;bootm 0xec140000 - 0xec100000' + + If you want to set this boot option as default: + + B$ setenv bootcmd 'run norboot' + B$ saveenv + + ...or for a single boot: + + B$ run norboot + +Good Luck ! diff --git a/board/arm/foundation-v8/readme.txt b/board/arm/foundation-v8/readme.txt new file mode 100644 index 000000000..b5106f015 --- /dev/null +++ b/board/arm/foundation-v8/readme.txt @@ -0,0 +1,20 @@ +This is the support for the ARM Foundation v8 machine emulated by the +ARM software simulator of the AArch64 architecture. + +First, one has to download the AArch64 software simulator from: + + https://silver.arm.com/download/download.tm?pv=4807186 + +Then, use the arm_foundationv8_defconfig configuration to build your +Buildroot system. + +Finally, boot your system with: + + ${LOCATION_OF_FOUNDATIONV8_SIMULATOR}/models/Linux64_GCC-6.4/Foundation_Platform \ + --image output/images/linux-system.axf \ + --block-device output/images/rootfs.ext2 \ + --network=nat \ + --cores 4 + +You can get network access from within the simulated environment +by requesting an IP address using DHCP (run the command 'udhcpc'). diff --git a/board/arm/juno/linux-juno-defconfig b/board/arm/juno/linux-juno-defconfig new file mode 100644 index 000000000..64598d21a --- /dev/null +++ b/board/arm/juno/linux-juno-defconfig @@ -0,0 +1,169 @@ +CONFIG_SMP=y +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +CONFIG_FHANDLE=y +CONFIG_AUDIT=y +CONFIG_NO_HZ_IDLE=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_MEMCG=y +CONFIG_MEMCG_SWAP=y +CONFIG_MEMCG_KMEM=y +CONFIG_CGROUP_HUGETLB=y +CONFIG_SCHED_AUTOGROUP=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_KALLSYMS_ALL=y +CONFIG_PROFILING=y +CONFIG_JUMP_LABEL=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_ARCH_VEXPRESS=y +CONFIG_PCI=y +CONFIG_PCI_MSI=y +CONFIG_PCI_HOST_GENERIC=y +CONFIG_PCIEPORTBUS=y +CONFIG_HOTPLUG_PCI_PCIE=y +CONFIG_HOTPLUG_PCI=y +CONFIG_NR_CPUS=6 +CONFIG_PREEMPT=y +CONFIG_KSM=y +CONFIG_TRANSPARENT_HUGEPAGE=y +CONFIG_CMA=y +CONFIG_CMDLINE="console=ttyAMA0" +CONFIG_COMPAT=y +CONFIG_CPU_IDLE=y +CONFIG_ARM_CPUIDLE=y +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_INTERACTIVE=y +CONFIG_ARM_BIG_LITTLE_CPUFREQ=y +CONFIG_ARM_DT_BL_CPUFREQ=y +CONFIG_ARM_SCPI_CPUFREQ=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +CONFIG_BPF_JIT=y +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_SD=y +CONFIG_ATA=y +CONFIG_SATA_AHCI=y +CONFIG_SATA_AHCI_PLATFORM=y +CONFIG_AHCI_XGENE=y +CONFIG_PATA_PLATFORM=y +CONFIG_PATA_OF_PLATFORM=y +CONFIG_NETDEVICES=y +CONFIG_TUN=y +CONFIG_SKY2=y +CONFIG_SMC91X=y +CONFIG_SMSC911X=y +CONFIG_INPUT_EVDEV=y +CONFIG_SERIO_AMBAKMI=y +CONFIG_LEGACY_PTY_COUNT=16 +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SERIAL_XILINX_PS_UART=y +CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_DESIGNWARE_PLATFORM=y +CONFIG_I2C_SLAVE=y +CONFIG_SPI=y +CONFIG_SPI_PL022=y +CONFIG_PTP_1588_CLOCK=m +CONFIG_GPIO_PL061=y +CONFIG_GPIO_XGENE=y +CONFIG_POWER_RESET_XGENE=y +CONFIG_POWER_RESET_SYSCON=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_VEXPRESS=m +CONFIG_DRM=y +CONFIG_DRM_I2C_NXP_TDA998X=y +CONFIG_DRM_ARM=y +CONFIG_DRM_HDLCD=y +CONFIG_DRM_VIRTUAL_HDLCD=y +CONFIG_FB_ARMCLCD=y +CONFIG_LOGO=y +CONFIG_USB=y +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_HCD_PLATFORM=y +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_PLATFORM=y +CONFIG_USB_STORAGE=y +CONFIG_USB_ISP1760=y +CONFIG_NOP_USB_XCEIV=y +CONFIG_USB_ULPI=y +CONFIG_MMC=y +CONFIG_MMC_ARMMMCI=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SPI=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_EFI=y +CONFIG_RTC_DRV_PL030=y +CONFIG_RTC_DRV_PL031=y +CONFIG_DMADEVICES=y +CONFIG_PL330_DMA=y +CONFIG_COMMON_CLK_SCPI=y +CONFIG_ARM_TIMER_SP804=y +CONFIG_MAILBOX=y +CONFIG_ARM_MHU=y +CONFIG_PHY_XGENE=y +CONFIG_ARM_SCPI_PROTOCOL=y +CONFIG_EXT2_FS=y +CONFIG_EXT3_FS=y +CONFIG_FANOTIFY=y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y +CONFIG_QUOTA=y +CONFIG_AUTOFS4_FS=y +CONFIG_FUSE_FS=y +CONFIG_CUSE=y +CONFIG_VFAT_FS=y +CONFIG_TMPFS=y +CONFIG_HUGETLBFS=y +CONFIG_EFIVAR_FS=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ISO8859_1=y +CONFIG_VIRTUALIZATION=y +CONFIG_KVM=y +CONFIG_DYNAMIC_DEBUG=y +CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_FS=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_DEBUG_KERNEL=y +CONFIG_LOCKUP_DETECTOR=y +CONFIG_SECURITY=y +CONFIG_CRYPTO_ANSI_CPRNG=y +CONFIG_ARM64_CRYPTO=y +CONFIG_CRYPTO_SHA1_ARM64_CE=y +CONFIG_CRYPTO_SHA2_ARM64_CE=y +CONFIG_CRYPTO_GHASH_ARM64_CE=y +CONFIG_CRYPTO_AES_ARM64_CE_CCM=y +CONFIG_CRYPTO_AES_ARM64_CE_BLK=y +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_SOC=y +CONFIG_SND_SIMPLE_CARD=y +CONFIG_SND_DESIGNWARE_I2S=y +CONFIG_CMA=y +CONFIG_CMA_SIZE_MBYTES=64 diff --git a/board/arm/juno/readme.txt b/board/arm/juno/readme.txt new file mode 100644 index 000000000..b292d9636 --- /dev/null +++ b/board/arm/juno/readme.txt @@ -0,0 +1,134 @@ +ARM Juno r1/r0 + +Intro +===== + +These instructions apply to all models of the ARM Juno: + - Juno r0 (does not support PCIe) + - Juno r1 (supports PCIe) + - Juno r2 (Big Cluster with A72) + +Buildroot will generate the kernel image, device tree blob, bootloader binaries +and a minimal root filesystem. + +How to build it +=============== + +Configure Buildroot +------------------- + +Configuring Buildroot is pretty simple, just execute: + + $ make arm_juno_defconfig + +Build the rootfs, kernel and DTB +-------------------------------- + +Note: you will need to have access to the network, since Buildroot will +download the packages' sources. + +You may now build your rootfs with: + + $ make + +(This may take a while) + +Result of the build +------------------- + +After building, you should obtain this tree: + + output/images/ + +-- rootfs.tar + +-- juno.dtb (if Juno r0 is used) + +-- juno-r1.dtb (if Juno r1 is used) + +-- juno-r2.dtb (if Juno r2 is used) + +-- Image + +-- bl1.bin + +-- bl2.bin + +-- bl2u.bin + +-- bl31.bin + +-- fip.bin + +-- scp-fw.bin + +-- u-boot.bin + +Preparing your rootfs +====================== + +Format your pen drive as a ext3 filesystem by executing: + + $ mkfs.ext3 /dev/ + +Preparing your rootfs +====================== + +Format your pen drive as a ext3 filesystem by executing: + + $ mkfs.ext3 /dev/ + +Installing your rootfs +====================== + +After mounting the pen drive please execute the following: + + $ sudo tar -xvf output/images/rootfs.tar -C + +When completed make sure to unmount the device: + + $ umount + +Insert the pen drive in one of the ARM Juno' USB type A connectors. + +Configure *.dtb in the boot configuration for Juno r0 +===================================================== + +SITE1/HBI0262B/images.txt +..... +NOR3UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE +NOR3ADDRESS: 0x00C00000 ;Image Flash Address +NOR3FILE: \SOFTWARE\juno.dtb ;Image File Name +NOR3NAME: board.dtb ;Specify Image name to preserve file extension +NOR3LOAD: 00000000 ;Image Load Address +NOR3ENTRY: 00000000 ;Image Entry Point +...... + +Configure *.dtb in the boot configuration for Juno r1 +===================================================== + +SITE1/HBI0262C/images.txt +...... +NOR3UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE +NOR3ADDRESS: 0x00C00000 ;Image Flash Address +NOR3FILE: \SOFTWARE\juno-r1.dtb ;Image File Name +NOR3NAME: board.dtb ;Specify target filename to preserve file extension +NOR3LOAD: 00000000 ;Image Load Address +NOR3ENTRY: 00000000 ;Image Entry Point +...... + +Configure *.dtb in the boot configuration for Juno r2 +===================================================== + +SITE1/HBI0262D/images.txt +...... +NOR3UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE +NOR3ADDRESS: 0x02000000 ;Image Flash Address +NOR3FILE: \SOFTWARE\juno-r2.dtb ;Image File Name +NOR3NAME: board.dtb ;Specify target filename to preserve file extension +NOR3LOAD: 00000000 ;Image Load Address +NOR3ENTRY: 00000000 ;Image Entry Point +...... + +Installing kernel image and DTB +=============================== + +1. Connect to the ARM Juno UART0 and execute USB_ON in the terminal +2. Connect a USB cable between your PC and ARM Juno USB type B connector + A mass storage device should appear in your desktop. +3. Open the software/ folder +4. Copy the 'Image' file to software/ +5. Copy the 'juno-r1.dtb' (r1), 'juno.dtb' (r0) or juno-r2.dtb (r2) file to software/ +6. Copy the bootloader binaries (bl1.bin and fip.bin) to software/ +7. Press the red button in the front pannel of ARM Juno + +At this time, the board will erase the Flash entry for each new item and +replace it with the lastest ones. diff --git a/board/armadeus/apf27/linux-4.12.config b/board/armadeus/apf27/linux-4.12.config new file mode 100644 index 000000000..d0fb5d35d --- /dev/null +++ b/board/armadeus/apf27/linux-4.12.config @@ -0,0 +1,216 @@ +# CONFIG_SWAP is not set +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_CGROUPS=y +CONFIG_EMBEDDED=y +# CONFIG_COMPAT_BRK is not set +CONFIG_SLAB=y +CONFIG_PROFILING=y +CONFIG_OPROFILE=m +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +# CONFIG_BLK_DEV_BSG is not set +# CONFIG_IOSCHED_DEADLINE is not set +# CONFIG_IOSCHED_CFQ is not set +# CONFIG_ARCH_MULTI_V7 is not set +CONFIG_ARCH_MXC=y +CONFIG_MACH_IMX27_DT=y +CONFIG_PREEMPT=y +CONFIG_AEABI=y +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_PM_DEBUG=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_DIAG is not set +CONFIG_CAN=m +CONFIG_CAN_VCAN=m +CONFIG_CAN_MCP251X=m +CONFIG_BT=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_HIDP=m +CONFIG_BT_HCIBTUSB=m +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_CFG80211=m +CONFIG_MAC80211=m +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_MTD=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_CFI=y +CONFIG_MTD_CFI_ADV_OPTIONS=y +CONFIG_MTD_CFI_GEOMETRY=y +# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set +# CONFIG_MTD_CFI_I2 is not set +CONFIG_MTD_CFI_INTELEXT=y +CONFIG_MTD_PHYSMAP=y +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_MXC=y +CONFIG_MTD_UBI=y +CONFIG_EEPROM_AT24=y +CONFIG_EEPROM_AT25=y +CONFIG_SCSI=y +CONFIG_BLK_DEV_SD=y +CONFIG_NETDEVICES=y +# CONFIG_NET_VENDOR_BROADCOM is not set +# CONFIG_NET_VENDOR_CIRRUS is not set +# CONFIG_NET_VENDOR_FARADAY is not set +# CONFIG_NET_VENDOR_INTEL is not set +# CONFIG_NET_VENDOR_MARVELL is not set +# CONFIG_NET_VENDOR_MICREL is not set +# CONFIG_NET_VENDOR_MICROCHIP is not set +# CONFIG_NET_VENDOR_NATSEMI is not set +# CONFIG_NET_VENDOR_SEEQ is not set +# CONFIG_NET_VENDOR_SMSC is not set +# CONFIG_NET_VENDOR_STMICRO is not set +# CONFIG_NET_VENDOR_WIZNET is not set +CONFIG_SMSC_PHY=y +CONFIG_LIBERTAS=m +CONFIG_LIBERTAS_SDIO=m +CONFIG_RT2X00=m +CONFIG_RT2500USB=m +CONFIG_RT73USB=m +CONFIG_RT2800USB=m +CONFIG_RTL8187=m +CONFIG_RTL8192CU=m +CONFIG_ZD1211RW=m +CONFIG_INPUT_JOYDEV=y +CONFIG_INPUT_EVDEV=y +CONFIG_KEYBOARD_GPIO=y +CONFIG_KEYBOARD_IMX=m +# CONFIG_INPUT_MOUSE is not set +CONFIG_INPUT_JOYSTICK=y +CONFIG_INPUT_TOUCHSCREEN=y +# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_IMX=y +CONFIG_SERIAL_IMX_CONSOLE=y +# CONFIG_HW_RANDOM is not set +CONFIG_I2C=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_IMX=y +CONFIG_SPI=y +CONFIG_SPI_IMX=y +CONFIG_SPI_SPIDEV=m +CONFIG_GPIO_SYSFS=y +CONFIG_W1=y +CONFIG_W1_MASTER_MXC=y +CONFIG_W1_SLAVE_THERM=y +CONFIG_WATCHDOG=y +CONFIG_IMX2_WDT=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_MEDIA_SUPPORT=m +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_USB_SUPPORT=y +CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_PWC=m +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_SOC_CAMERA=m +# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set +CONFIG_FB=y +# CONFIG_FB_MX3 is not set +CONFIG_BACKLIGHT_LCD_SUPPORT=y +# CONFIG_LCD_CLASS_DEVICE is not set +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_LOGO=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set +CONFIG_SOUND=m +CONFIG_SND=m +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m +# CONFIG_SND_DRIVERS is not set +# CONFIG_SND_ARM is not set +# CONFIG_SND_SPI is not set +# CONFIG_SND_USB is not set +CONFIG_SND_SOC=m +CONFIG_SND_IMX_SOC=m +CONFIG_USB=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_MXC=y +CONFIG_USB_ACM=y +CONFIG_USB_PRINTER=y +CONFIG_USB_STORAGE=y +CONFIG_USB_CHIPIDEA=y +CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_SERIAL=y +CONFIG_USB_SERIAL_FTDI_SIO=y +CONFIG_USB_SERIAL_PL2303=y +CONFIG_USB_ULPI=y +CONFIG_USB_GADGET=y +CONFIG_USB_ETH=m +CONFIG_USB_GADGETFS=m +CONFIG_USB_MASS_STORAGE=m +CONFIG_USB_G_HID=m +CONFIG_MMC=y +CONFIG_MMC_MXC=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_ONESHOT=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_BACKLIGHT=y +CONFIG_LEDS_TRIGGER_CPU=y +CONFIG_LEDS_TRIGGER_GPIO=y +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y +CONFIG_LEDS_TRIGGER_TRANSIENT=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_DS1374=y +CONFIG_RTC_DRV_MXC=m +CONFIG_DMADEVICES=y +CONFIG_IMX_DMA=y +CONFIG_IMX_SDMA=y +# CONFIG_IOMMU_SUPPORT is not set +CONFIG_IIO=y +CONFIG_MAX1027=y +CONFIG_MAX5821=y +CONFIG_PWM=y +CONFIG_PWM_IMX=y +CONFIG_EXT2_FS=y +CONFIG_EXT3_FS=y +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +# CONFIG_DNOTIFY is not set +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +# CONFIG_PROC_PAGE_MONITOR is not set +CONFIG_TMPFS=y +CONFIG_JFFS2_FS=y +CONFIG_UBIFS_FS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V4=y +CONFIG_ROOT_NFS=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_850=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_ISO8859_15=m +CONFIG_PRINTK_TIME=y +CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_FS=y +# CONFIG_SCHED_DEBUG is not set +# CONFIG_DEBUG_PREEMPT is not set +# CONFIG_FTRACE is not set +CONFIG_DEBUG_LL=y +CONFIG_EARLY_PRINTK=y +CONFIG_FONTS=y +CONFIG_FONT_8x8=y diff --git a/board/armadeus/apf51/linux-4.4.config b/board/armadeus/apf51/linux-4.4.config new file mode 100644 index 000000000..6957b635a --- /dev/null +++ b/board/armadeus/apf51/linux-4.4.config @@ -0,0 +1,278 @@ +CONFIG_EXPERIMENTAL=y +# CONFIG_LOCALVERSION_AUTO is not set +# CONFIG_SWAP is not set +CONFIG_SYSVIPC=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_EMBEDDED=y +# CONFIG_COMPAT_BRK is not set +CONFIG_SLAB=y +CONFIG_PROFILING=y +CONFIG_OPROFILE=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +# CONFIG_BLK_DEV_BSG is not set +CONFIG_PARTITION_ADVANCED=y +CONFIG_BSD_DISKLABEL=y +# CONFIG_IOSCHED_CFQ is not set +CONFIG_ARCH_MXC=y +CONFIG_MXC_IRQ_PRIOR=y +CONFIG_SOC_IMX51=y +CONFIG_ARM_THUMBEE=y +CONFIG_PREEMPT=y +CONFIG_AEABI=y +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_STAT_DETAILS=y +CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_IMX=y +CONFIG_CPU_IDLE=y +CONFIG_VFP=y +CONFIG_NEON=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +# CONFIG_SUSPEND is not set +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_PNP=y +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_LRO is not set +# CONFIG_INET_DIAG is not set +CONFIG_IPV6=y +CONFIG_CAN=m +CONFIG_CAN_RAW=m +CONFIG_CAN_BCM=m +CONFIG_CAN_VCAN=m +CONFIG_CAN_MCP251X=m +CONFIG_BT=m +CONFIG_BT_L2CAP=y +CONFIG_BT_SCO=y +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_HIDP=m +CONFIG_BT_HCIBTUSB=m +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_CFG80211=m +CONFIG_MAC80211=m +CONFIG_MAC80211_RC_PID=y +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_FW_LOADER=m +CONFIG_MTD=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_MXC=y +CONFIG_MTD_UBI=y +CONFIG_MISC_DEVICES=y +CONFIG_EEPROM_AT24=y +CONFIG_EEPROM_AT25=y +CONFIG_SCSI=y +CONFIG_BLK_DEV_SD=y +CONFIG_CHR_DEV_ST=y +CONFIG_BLK_DEV_SR=y +CONFIG_CHR_DEV_SG=y +CONFIG_CHR_DEV_SCH=y +CONFIG_SCSI_MULTI_LUN=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_SCAN_ASYNC=y +CONFIG_NETDEVICES=y +CONFIG_MII=y +CONFIG_SMSC_PHY=y +CONFIG_NET_ETHERNET=y +# CONFIG_NETDEV_1000 is not set +# CONFIG_NETDEV_10000 is not set +CONFIG_RTL8187=m +CONFIG_LIBERTAS=m +CONFIG_LIBERTAS_SDIO=m +CONFIG_RT2X00=m +CONFIG_RT73USB=m +CONFIG_ZD1211RW=m +CONFIG_INPUT_JOYDEV=y +CONFIG_INPUT_EVDEV=y +CONFIG_KEYBOARD_GPIO=m +CONFIG_KEYBOARD_IMX=m +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_WM831X=y +CONFIG_TOUCHSCREEN_MC13XXX=m +CONFIG_INPUT_MISC=y +CONFIG_INPUT_MC13783_PWRBUTTON=m +CONFIG_INPUT_UINPUT=m +CONFIG_INPUT_WM831X_ON=y +# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_8250=m +CONFIG_SERIAL_IMX=y +CONFIG_SERIAL_IMX_CONSOLE=y +# CONFIG_HW_RANDOM is not set +CONFIG_I2C=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_IMX=y +CONFIG_SPI=y +CONFIG_SPI_IMX=y +CONFIG_SPI_SPIDEV=m +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_WM831X=m +CONFIG_POWER_SUPPLY=y +CONFIG_WM831X_BACKUP=m +CONFIG_WM831X_POWER=m +CONFIG_HWMON=m +CONFIG_SENSORS_AS1531=m +CONFIG_SENSORS_MC13783_ADC=m +CONFIG_SENSORS_WM831X=m +CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_NOWAYOUT=y +CONFIG_WM831X_WATCHDOG=m +CONFIG_IMX2_WDT=y +CONFIG_MFD_MC13XXX_I2C=y +CONFIG_MFD_WM831X_I2C=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_MC13892=m +CONFIG_IMX_IPUV3_CORE=y +CONFIG_DRM=y +CONFIG_MFD_IMX_IPU_V3=y +CONFIG_MEDIA_SUPPORT=m +CONFIG_VIDEO_DEV=m +# CONFIG_RC_CORE is not set +# CONFIG_MEDIA_TUNER_SIMPLE is not set +# CONFIG_MEDIA_TUNER_TDA8290 is not set +# CONFIG_MEDIA_TUNER_TDA827X is not set +# CONFIG_MEDIA_TUNER_TDA18271 is not set +# CONFIG_MEDIA_TUNER_TDA9887 is not set +# CONFIG_MEDIA_TUNER_TEA5761 is not set +# CONFIG_MEDIA_TUNER_TEA5767 is not set +# CONFIG_MEDIA_TUNER_MT20XX is not set +# CONFIG_MEDIA_TUNER_MT2060 is not set +# CONFIG_MEDIA_TUNER_MT2266 is not set +# CONFIG_MEDIA_TUNER_MT2131 is not set +# CONFIG_MEDIA_TUNER_QT1010 is not set +# CONFIG_MEDIA_TUNER_XC2028 is not set +# CONFIG_MEDIA_TUNER_XC5000 is not set +# CONFIG_MEDIA_TUNER_MXL5005S is not set +# CONFIG_MEDIA_TUNER_MXL5007T is not set +# CONFIG_MEDIA_TUNER_MC44S803 is not set +# CONFIG_MEDIA_TUNER_MAX2165 is not set +# CONFIG_MEDIA_TUNER_TDA18218 is not set +CONFIG_VIDEO_VIVI=m +CONFIG_USB_VIDEO_CLASS=m +# CONFIG_RADIO_ADAPTERS is not set +CONFIG_FB=y +CONFIG_FB_MX5=y +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FONTS=y +CONFIG_FONT_8x8=y +CONFIG_LOGO=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set +CONFIG_SOUND=m +# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set +CONFIG_SND=m +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m +# CONFIG_SND_DRIVERS is not set +# CONFIG_SND_ARM is not set +# CONFIG_SND_SPI is not set +# CONFIG_SND_USB is not set +CONFIG_SND_SOC=m +CONFIG_SND_IMX_SOC=m +CONFIG_SND_SOC_APF51_DEV_WM8960=m +CONFIG_USB=y +CONFIG_USB_DEBUG=y +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +CONFIG_USB_DEVICEFS=y +# CONFIG_USB_DEVICE_CLASS is not set +CONFIG_USB_SUSPEND=y +CONFIG_USB_OTG=y +# CONFIG_USB_OTG_WHITELIST is not set +CONFIG_USB_MON=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_MXC=y +CONFIG_USB_ACM=y +CONFIG_USB_PRINTER=y +CONFIG_USB_WDM=y +CONFIG_USB_STORAGE=y +CONFIG_USB_CHIPIDEA=y +CONFIG_USB_CHIPIDEA_UDC=y +CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_PHY=y +CONFIG_NOP_USB_XCEIV=y +CONFIG_USB_GPIO_VBUS=y +CONFIG_USB_ULPI=y +CONFIG_USB_GADGET=y +CONFIG_USB_GADGET_DEBUG_FILES=y +CONFIG_USB_GADGET_DEBUG_FS=y +CONFIG_USB_ETH=m +CONFIG_USB_MASS_STORAGE=m +CONFIG_USB_G_SERIAL=m +CONFIG_USB_CDC_COMPOSITE=m +CONFIG_USB_G_MULTI=m +CONFIG_USB_G_MULTI_CDC=y +CONFIG_USB_G_HID=m +CONFIG_MMC=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_ESDHC_IMX=y +CONFIG_MMC_SPI=m +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_WM831X_STATUS=m +CONFIG_LEDS_MC13783=m +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_MXC=y +CONFIG_RTC_DRV_WM831X=y +CONFIG_RTC_DRV_MC13XXX=m +CONFIG_STAGING=y +CONFIG_DRM_IMX=y +CONFIG_DRM_IMX_FB_HELPER=y +CONFIG_DRM_IMX_PARALLEL_DISPLAY=y +CONFIG_DRM_IMX_TVE=y +CONFIG_DRM_IMX_IPUV3=y +CONFIG_IIO=m +CONFIG_EXT2_FS=y +CONFIG_EXT2_FS_XATTR=y +CONFIG_EXT2_FS_POSIX_ACL=y +CONFIG_EXT2_FS_SECURITY=y +CONFIG_EXT2_FS_XIP=y +CONFIG_EXT3_FS=y +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +CONFIG_EXT4_FS=y +CONFIG_AUTOFS4_FS=y +CONFIG_ISO9660_FS=y +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_TMPFS=y +CONFIG_UBIFS_FS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +CONFIG_NFS_V4=y +CONFIG_ROOT_NFS=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_850=y +CONFIG_NLS_ISO8859_1=y +CONFIG_DEBUG_FS=y +# CONFIG_CRYPTO_ANSI_CPRNG is not set +# CONFIG_CRYPTO_HW is not set diff --git a/board/armadeus/readme.txt b/board/armadeus/readme.txt new file mode 100644 index 000000000..c03508c60 --- /dev/null +++ b/board/armadeus/readme.txt @@ -0,0 +1,84 @@ +Introduction +============ + +Armadeus APFxx are Systems On Module (SOM) based on Freescale/NXP i.MX +processors associated with an FPGA (except on APF28). Non volatile +data are stored in on-module NOR or NAND Flash, depending on the +model. These SOM can be used on Armadeus development boards or with +custom docking boards. + +Supported platforms +=================== + +Buildroot currently supports the following Armadeus platforms with the +associated defconfigs: + + * APF27 SOM + devt board -> armadeus_apf27_defconfig + * APF51 SOM + devt board -> armadeus_apf51_defconfig + * APF28 SOM + devt board -> armadeus_apf28_defconfig + +Vanilla Linux versions are preferred to Freescale's one in these +configurations. + +How to build it +=============== + +Configure Buildroot +------------------- + +Let's say you own an APFxx SOM with it's corresponding development +board, all you have to do is: + + $ make armadeus_apfxx_defconfig + +where "apfxx" is the version of your SOM. + +Launch build +------------ + + $ make + +Result of the build +------------------- + +When the build is finished, you will end up with: + + output/images/ + +-- imx**-apfxxdev.dtb [1] + +-- rootfs.tar + +-- rootfs.ubi + +-- rootfs.ubifs + +-- uImage + +[1] Only if the kernel version used uses a Device Tree. + +Building U-Boot is currently not supported in these configurations. + +Installation +============ + +You will require a serial connection to the board and a TFTP server on +your Host PC. Assuming your server is configured for exporting +/tftpboot/ directory, you will have to copy the generated images to +it: + + $ cp output/images/uImage /tftpboot/apfxx-linux.bin + $ cp output/images/*.dtb /tftpboot/ + $ cp output/images/rootfs.ubi /tftpboot/apfxx-rootfs.ubi + +where "apfxx" is the version of your SOM, as used with _defconfigs. + +Then on your serial terminal, all you have to do is: + +* interrupt the boot process and access U-Boot console by pressing any + key when booting, +* configure board and server IP addresses with "ipaddr" and "serverip" + environment variables, +* if you want to update kernel: + BIOS > run update_kernel +* if you want to update device tree: + BIOS > run update_dtb +* if you want to update rootfs: + BIOS > run update_rootfs + +That's it ! diff --git a/board/arrow/avenger96/overlay/boot/extlinux/extlinux.conf b/board/arrow/avenger96/overlay/boot/extlinux/extlinux.conf new file mode 100644 index 000000000..5d506b3da --- /dev/null +++ b/board/arrow/avenger96/overlay/boot/extlinux/extlinux.conf @@ -0,0 +1,4 @@ +label stm32mp157c-dk2-buildroot + kernel /boot/zImage + devicetree /boot/stm32mp157a-dhcor-avenger96.dtb + append root=/dev/mmcblk1p4 rootwait diff --git a/board/arrow/avenger96/readme.txt b/board/arrow/avenger96/readme.txt new file mode 100644 index 000000000..19ab09eb8 --- /dev/null +++ b/board/arrow/avenger96/readme.txt @@ -0,0 +1,41 @@ +Arrow Avenger96 + +Intro +===== + +This configuration supports the Arrow Avenger96 board: + +https://wiki.dh-electronics.com/index.php/Avenger96 + +How to build +============ + + $ make avenger96_defconfig + $ make + +How to write the microSD card +============================= + +WARNING! This will destroy all the card content. Use with care! + +Once the build process is finished you will have an image called +"sdcard.img" in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an microSD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + +Boot the board +============== + + (1) Configure the boot switches for boot from microsd: 1-0-1 + + (2) Insert the microSD card in the slot + + (3) Plug a serial adapter (beware: 1v8 levels!) to the low speed + expansion connector + + (4) Plug in power cable + + (5) The system will start, with the console on UART, but also visible + on the screen. diff --git a/board/aspeed/ast2500-evb/genimage.cfg b/board/aspeed/ast2500-evb/genimage.cfg new file mode 100644 index 000000000..498a71e4d --- /dev/null +++ b/board/aspeed/ast2500-evb/genimage.cfg @@ -0,0 +1,40 @@ +# +# This config reproduces the OpenBMC flash layout defined in Linux : +# +# arch/arm/boot/dts/openbmc-flash-layout.dtsi +# +# and included by aspeed-ast2500-evb.dts +# +flash nor-32M-256 { + pebsize = 4K + numpebs = 8K + minimum-io-unit-size = 256 +} + +image flash.img { + flash { + } + flashtype = "nor-32M-256" + + partition uboot { + image = "u-boot.bin" + size = 384K + } + + partition ubootenv { + /* TODO */ + offset = 384K + size = 128K + } + + partition fitimage { + image = "image.itb" + offset = 512K + size = 4352K + } + + partition spare { + offset = 4864K + size = 27904K + } +} diff --git a/board/aspeed/ast2500-evb/linux.fragment b/board/aspeed/ast2500-evb/linux.fragment new file mode 100644 index 000000000..1cee95f84 --- /dev/null +++ b/board/aspeed/ast2500-evb/linux.fragment @@ -0,0 +1,7 @@ +CONFIG_KERNEL_XZ=y +CONFIG_ARCH_MULTI_V7=n +CONFIG_MACH_ASPEED_G6=n +CONFIG_SMP=n +CONFIG_EXT4_FS=n +CONFIG_DEBUG_FS=n +CONFIG_SUSPEND=n diff --git a/board/aspeed/ast2500-evb/readme.txt b/board/aspeed/ast2500-evb/readme.txt new file mode 100644 index 000000000..f509be553 --- /dev/null +++ b/board/aspeed/ast2500-evb/readme.txt @@ -0,0 +1,80 @@ +Aspeed AST2500 EVB + +Introduction +============ + +The AST2500 EVB is an evaluation board for the AST2500 SoC, most +commonly used as a Server Management Processor. It includes an 800MHz +ARM11 processor with DDR3 or DDR4 SDRAM (up to 1GB), SPI flash memory +devices for BMC and host firmwares and numerous controllers to drive +the server board. + + https://www.aspeedtech.com/server_ast2500/ + +How to build it +=============== + +Configure buildroot: + + $ make aspeed_ast2500evb_defconfig + +Compile everything and build the rootfs image: + + $ make + +Result of the build +=================== + +After building, the output/images directory contains: + + output/images/ + ├── aspeed-ast2500-evb.dtb + ├── flash.img + ├── image.itb + ├── rootfs.cpio + ├── rootfs.cpio.xz + ├── rootfs.tar + ├── u-boot.bin + └── zImage + +Flashing the image +================== + +To update the contents of the first flash device, copy flash.img : + + $ flashcp flash.img /dev/mtd0 + +or simply the boot loader: + + $ flashcp u-boot.bin /dev/mtd1 + +Preparing the board +=================== + + * Connect a serial line to the board + * Power-up the board + +Booting the board +================= + +The AST2500 EVB boots from the SPI flash device directly and loads a +first bootloader (usually U-Boot). U-Boot will attempt to load a Linux +kernel from the same flash device by default but other storage could +be used. + + * from U-Boot + + The FIT image image.itb can be used to boot the board from U-Boot + using tftp + + * with QEMU + + $ qemu-system-arm -M ast2500-evb \ + -drive file=output/images/flash.img,format=raw,if=mtd \ + -nographic + + $ qemu-system-arm -M ast2500-evb \ + -kernel output/images/zImage \ + -initrd output/images/rootfs.cpio \ + -dtb output/images/aspeed-ast2500-evb.dtb \ + -nographic diff --git a/board/aspeed/ast2500-evb/uboot.fragment b/board/aspeed/ast2500-evb/uboot.fragment new file mode 100644 index 000000000..8463252e5 --- /dev/null +++ b/board/aspeed/ast2500-evb/uboot.fragment @@ -0,0 +1,3 @@ +CONFIG_BOOTCOMMAND="bootm 20080000" +CONFIG_FIT=y +CONFIG_SHA256=y diff --git a/board/aspeed/ast2600-evb/genimage.cfg b/board/aspeed/ast2600-evb/genimage.cfg new file mode 100644 index 000000000..56932d478 --- /dev/null +++ b/board/aspeed/ast2600-evb/genimage.cfg @@ -0,0 +1,40 @@ +# +# This config reproduces the OpenBMC flash layout defined in Linux : +# +# arch/arm/boot/dts/openbmc-flash-layout-64.dtsi +# +# and included by aspeed-ast2600-evb.dts +# +flash nor-64M-256 { + pebsize = 4K + numpebs = 16K + minimum-io-unit-size = 256 +} + +image flash.img { + flash { + } + flashtype = "nor-64M-256" + + partition uboot { + image = "u-boot.bin" + size = 896K + } + + partition ubootenv { + /* TODO */ + offset = 896K + size = 128K + } + + partition fitimage { + image = "image.itb" + offset = 1M + size = 9M + } + + partition spare { + offset = 10M + size = 54M + } +} diff --git a/board/aspeed/ast2600-evb/readme.txt b/board/aspeed/ast2600-evb/readme.txt new file mode 100644 index 000000000..1f7ba13d5 --- /dev/null +++ b/board/aspeed/ast2600-evb/readme.txt @@ -0,0 +1,80 @@ +Aspeed AST2600 EVB + +Introduction +============ + +The AST2600 EVB is an evaluation board for the AST2600 SoC, most +commonly used as a Server Management Processor. It includes a +Dual-core ARM Cortex A7 processor with DDR4 SDRAM (up to 2GB), SPI +flash memory devices for BMC and host firmwares and numerous +controllers to drive the server board. + + https://www.aspeedtech.com/server_ast2600/ + +How to build it +=============== + +Configure buildroot: + + $ make aspeed_ast2600evb_defconfig + +Compile everything and build the rootfs image: + + $ make + +Result of the build +=================== + +After building, the output/images directory contains: + + output/images/ + ├── aspeed-ast2600-evb.dtb + ├── flash.img + ├── image.itb + ├── rootfs.cpio + ├── rootfs.cpio.xz + ├── rootfs.tar + ├── u-boot.bin + └── zImage + +Flashing the image +================== + +To update the contents of the first flash device, copy flash.img : + + $ flashcp flash.img /dev/mtd0 + +or simply the boot loader: + + $ flashcp u-boot.bin /dev/mtd1 + +Preparing the board +=================== + + * Connect a serial line to the board + * Power-up the board + +Booting the board +================= + +The AST2600 EVB boots from the SPI flash device directly and loads a +first bootloader (usually U-Boot). U-Boot will attempt to load a Linux +kernel from the same flash device by default but other storage could +be used. + + * from U-Boot + + The FIT image image.itb can be used to boot the board from U-Boot + using tftp + + * with QEMU + + $ qemu-system-arm -M ast2600-evb \ + -drive file=output/images/flash.img,format=raw,if=mtd \ + -nographic + + $ qemu-system-arm -M ast2600-evb \ + -kernel output/images/zImage \ + -initrd output/images/rootfs.cpio \ + -dtb output/images/aspeed-ast2600-evb.dtb \ + -nographic diff --git a/board/aspeed/common/image.its.template b/board/aspeed/common/image.its.template new file mode 100644 index 000000000..e3200e240 --- /dev/null +++ b/board/aspeed/common/image.its.template @@ -0,0 +1,56 @@ +/dts-v1/; + +/ { + description = "Kernel and buildroot image"; + #address-cells = <1>; + + images { + kernel-1 { + description = "Linux kernel"; + data = /incbin/("zImage"); + type = "kernel"; + arch = "arm"; + os = "linux"; + compression = "none"; + load = <0x80001000>; + entry = <0x80001000>; + hash-1 { + algo = "sha256"; + }; + }; + fdt-1 { + description = "Flattened Device Tree blob"; + data = /incbin/("%BOARD_DTB%"); + type = "flat_dt"; + arch = "arm"; + compression = "none"; + hash-1 { + algo = "sha256"; + }; + }; + ramdisk-1 { + description = "ramdisk"; + data = /incbin/("rootfs.cpio.xz"); + type = "ramdisk"; + arch = "arm"; + os = "linux"; + compression = "none"; + hash-1 { + algo = "sha256"; + }; + }; + }; + + configurations { + default = "conf-1"; + conf-1 { + description = "Boot Linux kernel with FDT blob, ramdisk"; + kernel = "kernel-1"; + fdt = "fdt-1"; + ramdisk = "ramdisk-1"; + hash-1 { + algo = "sha256"; + }; + }; + }; +}; diff --git a/board/aspeed/common/post-image.sh b/board/aspeed/common/post-image.sh new file mode 100755 index 000000000..ea65a49af --- /dev/null +++ b/board/aspeed/common/post-image.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +BOARD_DIR="$(dirname $0)" +mkimage=$HOST_DIR/bin/mkimage + +BOARD_DT=$(sed -n \ + 's/^BR2_LINUX_KERNEL_INTREE_DTS_NAME="\([a-z0-9\-]*\).*"$/\1/p' \ + ${BR2_CONFIG}) + +sed -e "s/%BOARD_DTB%/${BOARD_DT}.dtb/" \ + $BOARD_DIR/image.its.template > $BINARIES_DIR/image.its + +(cd $BINARIES_DIR && $mkimage -f image.its image.itb) + +GENIMAGE_CFG="board/aspeed/${BOARD_DT#aspeed-*}/genimage.cfg" +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + +rm -rf "${GENIMAGE_TMP}" + +genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" + +rm -f $BINARIES_DIR/image.its diff --git a/board/asus/tinker/extlinux.conf b/board/asus/tinker/extlinux.conf new file mode 100644 index 000000000..136af0deb --- /dev/null +++ b/board/asus/tinker/extlinux.conf @@ -0,0 +1,4 @@ +label Tinker linux-next + kernel /boot/uImage + devicetree /boot/rk3288-tinker.dtb + append console=ttyS2,115200n8 root=/dev/mmcblk0p1 rootwait diff --git a/board/asus/tinker/genimage.cfg b/board/asus/tinker/genimage.cfg new file mode 100644 index 000000000..a4b1e8d60 --- /dev/null +++ b/board/asus/tinker/genimage.cfg @@ -0,0 +1,15 @@ +image sdcard.img { + hdimage { + } + + partition u-boot-spl-dtb { + in-partition-table = "no" + image = "u-boot-spl-dtb.img" + offset = 32K + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/asus/tinker/post-build.sh b/board/asus/tinker/post-build.sh new file mode 100755 index 000000000..8108ed83f --- /dev/null +++ b/board/asus/tinker/post-build.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +MKIMAGE=$HOST_DIR/bin/mkimage +BOARD_DIR="$(dirname $0)" + +$MKIMAGE -n rk3288 -T rksd -d $BINARIES_DIR/u-boot-spl-dtb.bin $BINARIES_DIR/u-boot-spl-dtb.img +cat $BINARIES_DIR/u-boot-dtb.bin >> $BINARIES_DIR/u-boot-spl-dtb.img + +install -m 0644 -D $BOARD_DIR/extlinux.conf $TARGET_DIR/boot/extlinux/extlinux.conf diff --git a/board/asus/tinker/readme.txt b/board/asus/tinker/readme.txt new file mode 100644 index 000000000..7372d2952 --- /dev/null +++ b/board/asus/tinker/readme.txt @@ -0,0 +1,37 @@ +Tinker RK3288 +============= + +Tinker Board is a Single Board Computer (SBC) in an ultra-small form +factor that offers class-leading performance while leveraging outstanding +mechanical compatibility. + +Tinker link: +https://www.asus.com/in/Single-Board-Computer/Tinker-Board/ + +Wiki link: +https://openedev.amarulasolutions.com/display/ODWIKI/Tinker+RK3288 + +How to build it +=============== + + $ make asus_tinker_rk3288_defconfig + +Then you can edit the build options using + + $ make menuconfig + +Compile all and build rootfs image: + + $ make + +Prepare your SDCard +=================== + +Buildroot generates a ready-to-use SD card image that you can flash directly to +the card. The image will be in output/images/sdcard.img. +You can write this image directly to an SD card device (i.e. /dev/xxx): + + $ sudo dd if=output/images/sdcard.img of=/dev/xxx + $ sudo sync + +Finally, you can insert the SD card to the Tinker RK3288 board and boot it. diff --git a/board/atmel/at91sam9x5ek_mmc/genimage.cfg b/board/atmel/at91sam9x5ek_mmc/genimage.cfg new file mode 100644 index 000000000..d99ebd26b --- /dev/null +++ b/board/atmel/at91sam9x5ek_mmc/genimage.cfg @@ -0,0 +1,40 @@ +# Image for SD card boot on Atmel at91sam9x5ek boards +# +image boot.vfat { + vfat { + files = { + "zImage", + "at91sam9g15ek.dtb", + "at91sam9g25ek.dtb", + "at91sam9g35ek.dtb", + "at91sam9x25ek.dtb", + "at91sam9x35ek.dtb", + "boot.bin", + "u-boot.bin" + } + + file uboot.env { + image = "uboot-env.bin" + } + } + + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + offset = 1M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/board/atmel/at91sam9x5ek_mmc/uboot-env.txt b/board/atmel/at91sam9x5ek_mmc/uboot-env.txt new file mode 100644 index 000000000..568e4bc98 --- /dev/null +++ b/board/atmel/at91sam9x5ek_mmc/uboot-env.txt @@ -0,0 +1,7 @@ +bootargs=console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait video=Unknown-1:800x480-16 +bootcmd=fatload mmc 0:1 0x21000000 at91sam9g35ek.dtb; fatload mmc 0:1 0x22000000 zImage; bootz 0x22000000 - 0x21000000 +bootdelay=1 +ethact=gmac0 +stderr=serial +stdin=serial +stdout=serial diff --git a/board/atmel/flasher.sh b/board/atmel/flasher.sh new file mode 100755 index 000000000..a7409ce88 --- /dev/null +++ b/board/atmel/flasher.sh @@ -0,0 +1,145 @@ +#!/usr/bin/env bash + +BUILDIR=$1 +TTY=$2 +BOARD=$3 + +family_at91sam9260ek="at91sam9260ek" +mach_at91sam9260ek="at91sam9260-ek" +dtb_at91sam9260ek="at91sam9260ek.dtb" + +family_at91sam9g45m10ek="at91sam9m10g45ek" +mach_at91sam9g45m10ek="at91sam9m10-g45-ek" +dtb_at91sam9g45m10ek="at91sam9m10g45ek.dtb" + +family_at91sam9rlek="at91sam9rlek" +mach_at91sam9rlek="at91sam9rl64-ek" +dtb_at91sam9rlek="at91sam9rlek.dtb" + +family_at91sam9g15ek="at91sam9x5ek" +mach_at91sam9g15ek="at91sam9g15-ek" +dtb_at91sam9g15ek="at91sam9g15ek.dtb" + +family_at91sam9g20ek="at91sam9g20ek" +mach_at91sam9g20ek="at91sam9g20-ek" +dtb_at91sam9g20ek="at91sam9g20ek.dtb" + +family_at91sam9g25ek="at91sam9x5ek" +mach_at91sam9g25ek="at91sam9g25-ek" +dtb_at91sam9g25ek="at91sam9g25ek.dtb" + +family_at91sam9g35ek="at91sam9x5ek" +mach_at91sam9g35ek="at91sam9g35-ek" +dtb_at91sam9g35ek="at91sam9g35ek.dtb" + +family_at91sam9x25ek="at91sam9x5ek" +mach_at91sam9x25ek="at91sam9x25-ek" +dtb_at91sam9x25ek="at91sam9x25ek.dtb" + +family_at91sam9x35ek="at91sam9x5ek" +mach_at91sam9x35ek="at91sam9x35-ek" +dtb_at91sam9x35ek="at91sam9x35ek.dtb" + +family_sama5d31ek="sama5d3xek" +mach_sama5d31ek="at91sama5d3x-ek" +dtb_sama5d31ek="sama5d31ek.dtb" + +family_sama5d31ek_revc="sama5d3xek" +mach_sama5d31ek_revc="at91sama5d3x-ek" +dtb_sama5d31ek_revc="sama5d31ek_revc.dtb" + +family_sama5d33ek="sama5d3xek" +mach_sama5d33ek="at91sama5d3x-ek" +dtb_sama5d33ek="sama5d33ek.dtb" + +family_sama5d33ek_revc="sama5d3xek" +mach_sama5d33ek_revc="at91sama5d3x-ek" +dtb_sama5d33ek_revc="sama5d33ek_revc.dtb" + +family_sama5d34ek="sama5d3xek" +mach_sama5d34ek="at91sama5d3x-ek" +dtb_sama5d34ek="sama5d34ek.dtb" + +family_sama5d34ek_revc="sama5d3xek" +mach_sama5d34ek_revc="at91sama5d3x-ek" +dtb_sama5d34ek_revc="sama5d34ek_revc.dtb" + +family_sama5d35ek="sama5d3xek" +mach_sama5d35ek="at91sama5d3x-ek" +dtb_sama5d35ek="sama5d35ek.dtb" + +family_sama5d35ek_revc="sama5d3xek" +mach_sama5d35ek_revc="at91sama5d3x-ek" +dtb_sama5d35ek_revc="sama5d35ek_revc.dtb" + +family_sama5d36ek="sama5d3xek" +mach_sama5d36ek="at91sama5d3x-ek" +dtb_sama5d36ek="sama5d36ek.dtb" + +family_sama5d36ek_revc="sama5d3xek" +mach_sama5d36ek_revc="at91sama5d3x-ek" +dtb_sama5d36ek_revc="sama5d36ek_revc.dtb" + +family_sama5d3_xplained="sama5d3_xplained" +mach_sama5d3_xplained="at91sama5d3x-xplained" +dtb_sama5d3_xplained="at91-sama5d3_xplained.dtb" + +family_sama5d4ek="sama5d4ek" +mach_sama5d4ek="at91sama5d4x-ek" +dtb_sama5d4ek="at91-sama5d4ek.dtb" + +family_sama5d4_xplained="sama5d4_xplained" +mach_sama5d4_xplained="at91sama5d4x-ek" +dtb_sama5d4_xplained="at91-sama5d4_xplained.dtb" + +usage() { + cat << EOF +Usage: + $0 + +Available boards: + at91sam9260ek + at91sam9g45m10ek + at91sam9rlek + at91sam9g15ek + at91sam9g20ek + at91sam9g25ek + at91sam9x25ek + at91sam9g35ek + at91sam9x35ek + sama5d31ek + sama5d33ek + sama5d34ek + sama5d35ek + sama5d36ek + sama5d31ek_revc (Until rev. C) + sama5d33ek_revc (Until rev. C) + sama5d34ek_revc (Until rev. C) + sama5d35ek_revc (Until rev. C) + sama5d36ek_revc (Until rev. C) + sama5d3_xplained + sama5d4ek + sama5d4_xplained + +Example: + $0 ./output /dev/ttyACM0 at91sam9g45m10ek +EOF +} + +F="family_$BOARD" +M="mach_$BOARD" +D="dtb_$BOARD" + +if [[ $# != 3 || -z ${!F} ]]; then + usage + exit 1 +fi + +video_mode="video=LVDS-1:800x480-16" +if [[ $BOARD == "*pda4" ]]; then + video_mode="video=LVDS-1:480x272-16" +fi + +echo "Executing: ${!F} O=$1/images $1/host/bin/sam-ba $TTY ${!M} $(dirname $0)/nandflash.tcl -- ${!F} ${!D} $video_mode" +export O=$1/images +$1/host/bin/sam-ba $TTY ${!M} $(dirname $0)/nandflash.tcl -- ${!F} ${!D} $video_mode diff --git a/board/atmel/nandflash.tcl b/board/atmel/nandflash.tcl new file mode 100644 index 000000000..3955b345a --- /dev/null +++ b/board/atmel/nandflash.tcl @@ -0,0 +1,358 @@ +# ---------------------------------------------------------------------------- +# ATMEL Microcontroller +# ---------------------------------------------------------------------------- +# Copyright (c) 2015, Atmel Corporation +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# - Redistributions of source code must retain the above copyright notice, +# this list of conditions and the disclaimer below. +# +# Atmel's name may not be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE +# DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, +# OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ---------------------------------------------------------------------------- + +################################################################################ +# Script data +################################################################################ +# DBGU address for rm9200, 9260/9g20, 9261/9g10, 9rl, 9x5 +set at91_base_dbgu0 0xfffff200 +# DBGU address for 9263, 9g45, sama5d3 +set at91_base_dbgu1 0xffffee00 +# DBGU address for sama5d4 +set at91_base_dbgu2 0xfc069000 + +set arch_exid_offset 0x44 + +# arch id +set arch_id_at91sam9g20 0x019905a0 +set arch_id_at91sam9g45 0x819b05a0 +set arch_id_at91sam9x5 0x819a05a0 +set arch_id_at91sam9n12 0x819a07a0 +set arch_id_sama5d3 0x8a5c07c0 + +## Find out at91sam9x5 variant to load the corresponding dtb file +array set at91sam9x5_variant { + 0x00000000 at91sam9g15 + 0x00000001 at91sam9g35 + 0x00000002 at91sam9x35 + 0x00000003 at91sam9g25 + 0x00000004 at91sam9x25 +} + +## Find out sama5d3 variant to load the corresponding dtb file +array set sama5d3_variant { + 0x00444300 sama5d31 + 0x00414300 sama5d33 + 0x00414301 sama5d34 + 0x00584300 sama5d35 + 0x00004301 sama5d36 +} + +## Find out sama5d4 variant +array set sama5d4_variant { + 0x00000001 sama5d41 + 0x00000002 sama5d42 + 0x00000003 sama5d43 + 0x00000004 sama5d44 +} + +################################################################################ +# proc uboot_env: Convert u-boot variables in a string ready to be flashed +# in the region reserved for environment variables +################################################################################ +proc set_uboot_env {nameOfLstOfVar} { + upvar $nameOfLstOfVar lstOfVar + + # sector size is the size defined in u-boot CFG_ENV_SIZE + set sectorSize [expr 0x20000 - 5] + + set strEnv [join $lstOfVar "\0"] + while {[string length $strEnv] < $sectorSize} { + append strEnv "\0" + } + # \0 between crc and strEnv is the flag value for redundant environment + set strCrc [binary format i [::vfs::crc $strEnv]] + return "$strCrc\0$strEnv" +} + +################################################################################ +proc find_variant_name {boardType} { + global at91_base_dbgu0 + global at91_base_dbgu1 + global at91_base_dbgu2 + global arch_exid_offset + global at91sam9x5_variant + global sama5d3_variant + global sama5d4_variant + set socName "none" + + switch $boardType { + at91sam9x5ek { + set exidAddr [expr {$at91_base_dbgu0 + $arch_exid_offset}] + set chip_variant [format "0x%08x" [read_int $exidAddr]] + + foreach {key value} [array get at91sam9x5_variant] { + if {$key == $chip_variant} { + set socName "$value" + break; + } + } + } + sama5d3xek { + set exidAddr [expr {$at91_base_dbgu1 + $arch_exid_offset}] + set chip_variant [format "0x%08x" [read_int $exidAddr]] + + foreach {key value} [array get sama5d3_variant] { + #puts "-I- === $chip_variant ? $key ($value) ===" + if {$key == $chip_variant} { + set socName "$value" + break; + } + } + } + sama5d3_xplained { + set exidAddr [expr {$at91_base_dbgu1 + $arch_exid_offset}] + set chip_variant [format "0x%08x" [read_int $exidAddr]] + + foreach {key value} [array get sama5d3_variant] { + #puts "-I- === $chip_variant ? $key ($value) ===" + if {$key == $chip_variant} { + set socName "$value" + break; + } + } + } + sama5d4ek { + set exidAddr [expr {$at91_base_dbgu2 + $arch_exid_offset}] + set chip_variant [format "0x%08x" [read_int $exidAddr]] + + foreach {key value} [array get sama5d4_variant] { + #puts "-I- === $chip_variant ? $key ($value) ===" + if {$key == $chip_variant} { + set socName "$value" + break; + } + } + } + sama5d4_xplained { + set exidAddr [expr {$at91_base_dbgu2 + $arch_exid_offset}] + set chip_variant [format "0x%08x" [read_int $exidAddr]] + + foreach {key value} [array get sama5d4_variant] { + #puts "-I- === $chip_variant ? $key ($value) ===" + if {$key == $chip_variant} { + set socName "$value" + break; + } + } + } + } + + return "$socName" +} + +proc find_variant_ecc {boardType} { + set eccType "none" + + switch $boardType { + at91sam9x5ek { + set eccType 0xc0c00405 + } + at91sam9n12ek { + set eccType 0xc0c00405 + } + sama5d3xek { + set eccType 0xc0902405 + } + sama5d3_xplained { + set eccType 0xc0902405 + } + sama5d4ek { + set eccType 0xc1e04e07 + } + sama5d4_xplained { + set eccType 0xc1e04e07 + } + } + + puts "-I- === eccType is $eccType ===" + return $eccType +} + +proc get_kernel_load_addr {boardType} { + set kernel_load_addr 0x22000000 + + switch $boardType { + at91sam9m10g45ek { + set kernel_load_addr 0x72000000 + } + } + + return $kernel_load_addr +} + +proc get_dtb_load_addr {boardType} { + set dtb_load_addr 0x21000000 + + switch $boardType { + at91sam9m10g45ek { + set dtb_load_addr 0x71000000 + } + } + + return $dtb_load_addr +} + +################################################################################ +# Main script: Load the linux demo in NandFlash, +# Update the environment variables +################################################################################ + +################################################################################ + +# check for proper variable initialization +if {! [info exists boardFamily]} { + puts "-I- === Parsing script arguments ===" + if {! [info exists env(O)]} { + puts "-E- === Binaries path not defined ===" + exit + } + + set bootstrapFile "$env(O)/at91bootstrap.bin" + set ubootFile "$env(O)/u-boot.bin" + set kernelFile "$env(O)/zImage" + set rootfsFile "$env(O)/rootfs.ubi" + set build_uboot_env "yes" + + set i 1 + foreach arg $::argv { + puts "argument $i is $arg" + switch $i { + 4 { set boardFamily $arg } + 5 { set dtbFile "$env(O)/$arg" } + 6 { set videoMode $arg } + } + incr i + } +} + +puts "-I- === Board Family is $boardFamily ===" + +set pmeccConfig [find_variant_ecc $boardFamily] + +## Now check for the needed files +if {! [file exists $bootstrapFile]} { + puts "-E- === AT91Bootstrap file not found ===" + exit +} + +if {! [file exists $ubootFile]} { + puts "-E- === U-Boot file not found ===" + exit +} + +if {! [file exists $kernelFile]} { + puts "-E- === Linux kernel file not found ===" + exit +} + +if {! [file exists $dtbFile]} { + puts "-E- === Device Tree binary: $dtbFile file not found ===" + exit +} + +if {! [file exists $rootfsFile]} { + puts "-E- === Rootfs file not found ===" + exit +} + +## NandFlash Mapping +set bootStrapAddr 0x00000000 +set ubootAddr 0x00040000 +set ubootEnvAddr 0x000c0000 +set dtbAddr 0x00180000 +set kernelAddr 0x00200000 +set rootfsAddr 0x00800000 + +## u-boot variable +set kernelLoadAddr [get_kernel_load_addr $boardFamily] +set dtbLoadAddr [get_dtb_load_addr $boardFamily] + +## NandFlash Mapping +set kernelSize [format "0x%08X" [file size $kernelFile]] +set dtbSize [format "0x%08X" [file size $dtbFile]] +set bootCmd "bootcmd=nand read $dtbLoadAddr $dtbAddr $dtbSize; nand read $kernelLoadAddr $kernelAddr $kernelSize; bootz $kernelLoadAddr - $dtbLoadAddr" +set rootfsSize [format "0x%08X" [file size $rootfsFile]] + +lappend u_boot_variables \ + "bootdelay=1" \ + "baudrate=115200" \ + "stdin=serial" \ + "stdout=serial" \ + "stderr=serial" \ + "bootargs=console=ttyS0,115200 mtdparts=atmel_nand:256k(bootstrap)ro,512k(uboot)ro,256k(env),256k(env_redundant),256k(spare),512k(dtb),6M(kernel)ro,-(rootfs) rootfstype=ubifs ubi.mtd=7 root=ubi0:rootfs rw $videoMode" \ + "$bootCmd" + +## Additional files to load +set ubootEnvFile "ubootEnvtFileNandFlash.bin" + + +## Start flashing procedure ################################################## +puts "-I- === Initialize the NAND access ===" +NANDFLASH::Init + +if {$pmeccConfig != "none"} { + puts "-I- === Enable PMECC OS Parameters ===" + NANDFLASH::NandHeaderValue HEADER $pmeccConfig +} + +puts "-I- === Erase all the NAND flash blocs and test the erasing ===" +NANDFLASH::EraseAllNandFlash + +puts "-I- === Load AT91Bootstrap in the first sector ===" +if {$pmeccConfig != "none"} { + NANDFLASH::SendBootFilePmeccCmd $bootstrapFile +} else { + NANDFLASH::sendBootFile $bootstrapFile +} + +puts "-I- === Load u-boot in the next sectors ===" +send_file {NandFlash} "$ubootFile" $ubootAddr 0 + +if {$build_uboot_env == "yes"} { + puts "-I- === Load the u-boot environment variables ===" + set fh [open "$ubootEnvFile" w] + fconfigure $fh -translation binary + puts -nonewline $fh [set_uboot_env u_boot_variables] + close $fh + send_file {NandFlash} "$ubootEnvFile" $ubootEnvAddr 0 +} + +puts "-I- === Load the Kernel image and device tree database ===" +send_file {NandFlash} "$dtbFile" $dtbAddr 0 +send_file {NandFlash} "$kernelFile" $kernelAddr 0 + +if {$pmeccConfig != "none"} { + puts "-I- === Enable trimffs ===" + NANDFLASH::NandSetTrimffs 1 +} + +puts "-I- === Load the linux file system ===" +send_file {NandFlash} "$rootfsFile" $rootfsAddr 0 + +puts "-I- === DONE. ===" diff --git a/board/atmel/readme.txt b/board/atmel/readme.txt new file mode 100644 index 000000000..a9c427e90 --- /dev/null +++ b/board/atmel/readme.txt @@ -0,0 +1,181 @@ +This document explains how to set up a basic Buildroot system on +various Atmel/Microchip boards. Additional details can also be found +on the Linux4SAM website: http://www.linux4sam.org + +This guide covers the following configurations: + - at91sam9g45m10ek_defconfig + - at91sam9rlek_defconfig + - at91sam9x5ek_defconfig (at91sam9g15, at91sam9g25, at91sam9x25, + at91sam9g35 and at91sam9x35) + - atmel_sama5d3xek_defconfig (sama5d31, sama5d33, sama5d34, sama5d35, + sama5d36) + - atmel_sama5d3_xplained_defconfig + - atmel_sama5d3_xplained_dev_defconfig + - atmel_sama5d3_xplained_mmc_defconfig + - atmel_sama5d3_xplained_mmc_dev_defconfig + - atmel_sama5d4_xplained_defconfig + - atmel_sama5d4_xplained_dev_defconfig + - atmel_sama5d4_xplained_mmc_defconfig + - atmel_sama5d4_xplained_mmc_dev_defconfig + - atmel_sama5d2_xplained_mmc_defconfig + - atmel_sama5d2_xplained_mmc_dev_defconfig + - microchip_sama5d27_wlsom1_ek_mmc_defconfig + - microchip_sama5d27_wlsom1_ek_mmc_dev_defconfig + - microchip_sam9x60ek_mmc_defconfig + - microchip_sam9x60ek_mmc_dev_defconfig + - microchip_sama5d2_icp_mmc_defconfig + - microchip_sama5d2_icp_mmc_dev_defconfig + - microchip_sama7g5ek_mmc_defconfig + - microchip_sama7g5ek_mmc_dev_defconfig + +These configurations will use AT91Bootstrap, u-boot and a linux kernel from +the git trees maintained by Atmel. + +The configurations labeled as 'dev' provide a development rootfs with tools to +tests the features of the SoC: +- ALSA tools to test audio +- FFMPEG to record video from the ISI/ISC +- I2C, SPI, CAN, etc. tools +- modetest for LCD screens, HDMI +- Wilc1000/Wilc3000 firmware for the Atmel Wireless sdio module +- SSH for convenience +- GDB/GDB server for debug + +Configuring and building Buildroot +================================== + +For the Xplained/Evaluation Kit boards, the Buildroot configuration is +provided to boot from an SD card. Those configurations are labeled as +'mmc'. In this case, after building Buildroot, follow the instructions +in the "Preparing the SD card" section. + +For the other configurations listed above, the Buildroot configuration +assumes the system will be flashed on NAND. In this case, after +building Buildroot, follow the instructions in the "Flashing the NAND +using SAM-BA" section below. + +To configure and build Buildroot, run: + + make _defconfig + make + +Flashing the NAND using SAM-BA +============================== + +Flashing the board +------------------ + +Connect the board: + o at91sam9g45m10ek: DBGU: J10, USB sam-ba: J14 + o at91sam9rlek: DBGU: J19, USB sam-ba: J21 + o at91sam9x5ek: DBGU: J11, USB sam-ba: J20 + o sama5d3xek: DBGU: J14, USB sam-ba: J20 + o sama5d3 Xplained: DBGU: J23, USB sam-ba: J6 + o sama5d4ek: DBGU: J22 or J24, USB sam-ba: J1 + o sama5d4 Xplained: DBGU: J1, USB sam-ba: J11 + +Start the board in RomBOOT: + o at91sam9g45m10ek: + 1. open JP8, JP10 and JP12 + 2. start the board + 3. close JP8, JP10 and JP12 + + o at91sam9rlek: + 1. J11 on 1-2 (BMS=1), open J12 and J13 + 2. start the board + 3. close J12 and J13 + + o at91sam9x5ek: + 1. open JP9 and: + - Cogent: open *NCS jumper + - Embest: open SW1 + - Ronetix: open J1 and J2 + 2. start the board + 3. close JP9 and: + - Cogent: close *NCS jumper + - Embest: close SW1 (ON position) + - Ronetix: close J1 and J2 + + o sama5d3xek: + 1. start the board + 2. push BP4 and BP1 + 3. release BP1 + 4. release BP4 + + o sama5d3 Xplained: + 1. open JP5 (NANDCS) and JP6 (SPICS) + 2. start the board + 3. close JP5 ans JP6 + + o sama5d4ek: + 1. start the board + 2. push BP3 and BP4 + 3. release BP4 + 4. release BP3 + + o sama5d4 Xplained: + 1. close JP7 (BOOT_DIS) + 2. start the board + 3. open JP7 + +"RomBOOT" should appear on your console (this should be ttyUSBx or ttyACMx) + +Now locate the USB sam-ba interface it should be ttyACMx, usually ttyACM0 +dmesg on your machine should give: +usb 1-2.1.4: New USB device found, idVendor=03eb, idProduct=6124 +usb 1-2.1.4: New USB device strings: Mfr=0, Product=0, SerialNumber=0 +cdc_acm 1-2.1.4:1.0: ttyACM0: USB ACM device + +Look for idVendor=03eb, idProduct=6124, this is the interface you want to use. + +You can then flash the board using the provided flasher.sh script in board/atmel: + +board/atmel/flasher.sh + +For example, for an out of tree build made in +/tmp/atmel_sama5d3_xplained/ for the sama5d3 Xplained, you would use: +board/atmel/flasher.sh /tmp/atmel_sama5d3_xplained/ /dev/ttyACM0 sama5d3_xplained + +Reboot, the system should boot up to the buildroot login invite. + +Preparing the SD card +===================== + +An image named sdcard.img is automatically generated. With this image, +you no longer have to care about the creation of the partition and +copying files to the SD card. + +You need at least a 1GB SD card. All the data on the SD card will be +lost. To copy the image on the SD card: + +/!\ Caution be sure to do it on the right mmcblk device /!\ + +dd if=output/images/sdcard.img of=/dev/mmcblk0 + +Insert your SD card in your Xplained/Evaluation Kit board, and +enjoy. The default U-Boot environment will load properly the kernel +and Device Tree blob from the first partition of the SD card, so +everything works automatically. + +By default a 16MB FAT partition is created. It contains at91bootstrap, +u-boot, the kernel image and all dtb variants for your board. The dtb +used is the basic one: + +U-Boot> print +[...] +bootcmd=fatload mmc 1:1 0x21000000 at91-sama5d2_xplained.dtb; fatload mmc 1:1 0x22000000 zImage; bootz 0x22000000 - 0x21000000 +[...] + +If you want to use a variant such as the _pda7 one, you will have to +update your u-boot environment: + +U-Boot> setenv bootcmd 'fatload mmc 1:1 0x21000000 at91-sama5d2_xplained_pda7.dtb; fatload mmc 1:1 0x22000000 zImage; bootz 0x22000000 - 0x21000000' +U-Boot> save +Saving Environment to FAT... +writing uboot.env +done + +A 512MB ext4 partition is also created to store the rootfs generated. + +If you want to customize the size of the partitions and their content, +take a look at the the genimage.cfg file in the board directory. diff --git a/board/atmel/sama5d27_som1_ek_mmc/genimage.cfg b/board/atmel/sama5d27_som1_ek_mmc/genimage.cfg new file mode 100644 index 000000000..a0adecfd3 --- /dev/null +++ b/board/atmel/sama5d27_som1_ek_mmc/genimage.cfg @@ -0,0 +1,32 @@ +# Image for SD card boot on Atmel SAMA5D2 Xplained boards +# +image boot.vfat { + vfat { + files = { + "zImage", + "at91-sama5d27_som1_ek.dtb", + "boot.bin", + "u-boot.bin" + } + } + + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + offset = 1M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/board/atmel/sama5d27_wlsom1_ek_mmc/genimage.cfg b/board/atmel/sama5d27_wlsom1_ek_mmc/genimage.cfg new file mode 100644 index 000000000..cf55f46fc --- /dev/null +++ b/board/atmel/sama5d27_wlsom1_ek_mmc/genimage.cfg @@ -0,0 +1,32 @@ +# Image for SD card boot on Microchip SAMA5D27 WLSOM1 EK +# +image boot.vfat { + vfat { + files = { + "zImage", + "at91-sama5d27_wlsom1_ek.dtb", + "boot.bin", + "u-boot.bin" + } + } + + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + offset = 1M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/board/atmel/sama5d2_xplained_mmc/genimage.cfg b/board/atmel/sama5d2_xplained_mmc/genimage.cfg new file mode 100644 index 000000000..2c5a0f6dc --- /dev/null +++ b/board/atmel/sama5d2_xplained_mmc/genimage.cfg @@ -0,0 +1,32 @@ +# Image for SD card boot on Atmel SAMA5D2 Xplained boards +# +image boot.vfat { + vfat { + files = { + "zImage", + "at91-sama5d2_xplained.dtb", + "boot.bin", + "u-boot.bin" + } + } + + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + offset = 1M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/board/atmel/sama5d3_xplained_mmc/genimage.cfg b/board/atmel/sama5d3_xplained_mmc/genimage.cfg new file mode 100644 index 000000000..0456e8d5a --- /dev/null +++ b/board/atmel/sama5d3_xplained_mmc/genimage.cfg @@ -0,0 +1,32 @@ +# Image for SD card boot on Atmel SAMA5D3 Xplained boards +# +image boot.vfat { + vfat { + files = { + "zImage", + "at91-sama5d3_xplained.dtb", + "boot.bin", + "u-boot.bin" + } + } + + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + offset = 1M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/board/atmel/sama5d4_xplained_mmc/genimage.cfg b/board/atmel/sama5d4_xplained_mmc/genimage.cfg new file mode 100644 index 000000000..bd929ffab --- /dev/null +++ b/board/atmel/sama5d4_xplained_mmc/genimage.cfg @@ -0,0 +1,32 @@ +# Image for SD card boot on Atmel SAMA5D4 Xplained boards +# +image boot.vfat { + vfat { + files = { + "zImage", + "at91-sama5d4_xplained.dtb", + "boot.bin", + "u-boot.bin" + } + } + + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + offset = 1M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/board/avnet/s6lx9_microboard/lx9_mmu.dts b/board/avnet/s6lx9_microboard/lx9_mmu.dts new file mode 100644 index 000000000..8ffedd9fe --- /dev/null +++ b/board/avnet/s6lx9_microboard/lx9_mmu.dts @@ -0,0 +1,247 @@ +/* + * Device Tree Generator version: 1.3 + * + * (C) Copyright 2007-2008 Xilinx, Inc. + * (C) Copyright 2007-2009 Michal Simek + * + * Michal SIMEK + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * CAUTION: This file is automatically generated by libgen. + * Version: Xilinx EDK 13.2 EDK_O.61xd + * + * XPS project directory: device-tree_bsp_230-orig + */ + +/dts-v1/; +/ { + #address-cells = <1>; + #size-cells = <1>; + compatible = "xlnx,microblaze"; + model = "testing"; + MCB3_LPDDR: memory@80000000 { + device_type = "memory"; + reg = < 0x80000000 0x4000000 >; + } ; + aliases { + ethernet0 = &Ethernet_MAC; + serial0 = &USB_Uart; + } ; + chosen { + bootargs = "console=ttyUL0"; + linux,stdout-path = "/axi@0/serial@40600000"; + } ; + cpus { + #address-cells = <1>; + #cpus = <0x1>; + #size-cells = <0>; + microblaze_0: cpu@0 { + clock-frequency = <66666667>; + compatible = "xlnx,microblaze-8.20.a"; + d-cache-baseaddr = <0x80000000>; + d-cache-highaddr = <0x83ffffff>; + d-cache-line-size = <0x10>; + d-cache-size = <0x2000>; + device_type = "cpu"; + i-cache-baseaddr = <0x80000000>; + i-cache-highaddr = <0x83ffffff>; + i-cache-line-size = <0x10>; + i-cache-size = <0x2000>; + model = "microblaze,8.20.a"; + reg = <0>; + timebase-frequency = <66666667>; + xlnx,addr-tag-bits = <0xd>; + xlnx,allow-dcache-wr = <0x1>; + xlnx,allow-icache-wr = <0x1>; + xlnx,area-optimized = <0x0>; + xlnx,avoid-primitives = <0x0>; + xlnx,branch-target-cache-size = <0x0>; + xlnx,cache-byte-size = <0x2000>; + xlnx,d-axi = <0x1>; + xlnx,d-lmb = <0x1>; + xlnx,d-plb = <0x0>; + xlnx,data-size = <0x20>; + xlnx,dcache-addr-tag = <0xd>; + xlnx,dcache-always-used = <0x1>; + xlnx,dcache-byte-size = <0x2000>; + xlnx,dcache-data-width = <0x0>; + xlnx,dcache-force-tag-lutram = <0x0>; + xlnx,dcache-interface = <0x0>; + xlnx,dcache-line-len = <0x4>; + xlnx,dcache-use-fsl = <0x0>; + xlnx,dcache-use-writeback = <0x0>; + xlnx,dcache-victims = <0x0>; + xlnx,debug-enabled = <0x1>; + xlnx,div-zero-exception = <0x0>; + xlnx,dynamic-bus-sizing = <0x1>; + xlnx,ecc-use-ce-exception = <0x0>; + xlnx,edge-is-positive = <0x1>; + xlnx,endianness = <0x1>; + xlnx,family = "spartan6"; + xlnx,fault-tolerant = <0x0>; + xlnx,fpu-exception = <0x0>; + xlnx,freq = <0x3f940ab>; + xlnx,fsl-data-size = <0x20>; + xlnx,fsl-exception = <0x0>; + xlnx,fsl-links = <0x0>; + xlnx,i-axi = <0x0>; + xlnx,i-lmb = <0x1>; + xlnx,i-plb = <0x0>; + xlnx,icache-always-used = <0x1>; + xlnx,icache-data-width = <0x0>; + xlnx,icache-force-tag-lutram = <0x0>; + xlnx,icache-interface = <0x0>; + xlnx,icache-line-len = <0x4>; + xlnx,icache-streams = <0x0>; + xlnx,icache-use-fsl = <0x0>; + xlnx,icache-victims = <0x0>; + xlnx,ill-opcode-exception = <0x0>; + xlnx,instance = "microblaze_0"; + xlnx,interconnect = <0x2>; + xlnx,interconnect-m-axi-dc-aw-register = <0x0>; + xlnx,interconnect-m-axi-dc-read-issuing = <0x2>; + xlnx,interconnect-m-axi-dc-w-register = <0x0>; + xlnx,interconnect-m-axi-dc-write-issuing = <0x20>; + xlnx,interconnect-m-axi-dp-read-issuing = <0x1>; + xlnx,interconnect-m-axi-dp-write-issuing = <0x1>; + xlnx,interconnect-m-axi-ic-read-issuing = <0x2>; + xlnx,interconnect-m-axi-ip-read-issuing = <0x1>; + xlnx,interrupt-is-edge = <0x0>; + xlnx,lockstep-slave = <0x0>; + xlnx,mmu-dtlb-size = <0x1>; + xlnx,mmu-itlb-size = <0x1>; + xlnx,mmu-privileged-instr = <0x0>; + xlnx,mmu-tlb-access = <0x3>; + xlnx,mmu-zones = <0x2>; + xlnx,number-of-pc-brk = <0x1>; + xlnx,number-of-rd-addr-brk = <0x0>; + xlnx,number-of-wr-addr-brk = <0x0>; + xlnx,opcode-0x0-illegal = <0x0>; + xlnx,optimization = <0x0>; + xlnx,pvr = <0x0>; + xlnx,pvr-user1 = <0x0>; + xlnx,pvr-user2 = <0x0>; + xlnx,reset-msr = <0x0>; + xlnx,sco = <0x0>; + xlnx,stream-interconnect = <0x0>; + xlnx,unaligned-exceptions = <0x0>; + xlnx,use-barrel = <0x1>; + xlnx,use-branch-target-cache = <0x0>; + xlnx,use-dcache = <0x1>; + xlnx,use-div = <0x0>; + xlnx,use-ext-brk = <0x1>; + xlnx,use-ext-nm-brk = <0x1>; + xlnx,use-extended-fsl-instr = <0x0>; + xlnx,use-fpu = <0x0>; + xlnx,use-hw-mul = <0x1>; + xlnx,use-icache = <0x1>; + xlnx,use-interrupt = <0x1>; + xlnx,use-mmu = <0x3>; + xlnx,use-msr-instr = <0x1>; + xlnx,use-pcmp-instr = <0x0>; + xlnx,use-stack-protection = <0x0>; + } ; + } ; + axi4lite_0: axi@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "xlnx,axi-interconnect-1.03.a", "simple-bus"; + ranges ; + Ethernet_MAC: ethernet@40e00000 { + compatible = "xlnx,axi-ethernetlite-1.00.a", "xlnx,xps-ethernetlite-1.00.a"; + device_type = "network"; + interrupt-parent = <µblaze_0_intc>; + interrupts = < 2 0 >; + local-mac-address = [ 00 0a 35 aa de 00 ]; +// phy-handle = <&phy0>; + reg = < 0x40e00000 0x10000 >; + xlnx,duplex = <0x1>; + xlnx,family = "spartan6"; + xlnx,include-global-buffers = <0x0>; + xlnx,include-internal-loopback = <0x0>; + xlnx,include-mdio = <0x1>; + xlnx,include-phy-constraints = <0x1>; + xlnx,interconnect-s-axi-read-acceptance = <0x1>; + xlnx,interconnect-s-axi-write-acceptance = <0x1>; + xlnx,rx-ping-pong = <0x0>; + xlnx,s-axi-aclk-period-ps = <0x3a98>; + xlnx,s-axi-id-width = <0x1>; + xlnx,s-axi-supports-narrow-burst = <0x0>; + xlnx,tx-ping-pong = <0x0>; +/* + mdio { + #address-cells = <1>; + #size-cells = <0>; + phy0: phy@7 { + compatible = "marvell,88e1111"; + device_type = "ethernet-phy"; + reg = <7>; + } ; + } ; +*/ + } ; + SPI_FLASH: spi@40a00000 { + compatible = "xlnx,axi-spi-1.01.a", "xlnx,xps-spi-2.00.a"; + interrupt-parent = <µblaze_0_intc>; + interrupts = < 1 2 >; + reg = < 0x40a00000 0x10000 >; + xlnx,family = "spartan6"; + xlnx,fifo-exist = <0x1>; + xlnx,num-ss-bits = <0x1>; + xlnx,num-transfer-bits = <0x8>; + xlnx,sck-ratio = <0x4>; + } ; + USB_Uart: serial@40600000 { + clock-frequency = <66666667>; + compatible = "xlnx,axi-uartlite-1.02.a", "xlnx,xps-uartlite-1.00.a"; + current-speed = <115200>; + device_type = "serial"; + interrupt-parent = <µblaze_0_intc>; + interrupts = < 3 0 >; + port-number = <0>; + reg = < 0x40600000 0x10000 >; + xlnx,baudrate = <0x1c200>; + xlnx,data-bits = <0x8>; + xlnx,family = "spartan6"; + xlnx,odd-parity = <0x1>; + xlnx,s-axi-aclk-freq-hz = <0x3f940ab>; + xlnx,use-parity = <0x0>; + } ; + microblaze_0_intc: interrupt-controller@41200000 { + #interrupt-cells = <0x2>; + compatible = "xlnx,axi-intc-1.01.a", "xlnx,xps-intc-1.00.a"; + interrupt-controller ; + reg = < 0x41200000 0x10000 >; + xlnx,kind-of-intr = <0xc>; + xlnx,num-intr-inputs = <0x4>; + } ; + system_timer: timer@41c00000 { + clock-frequency = <66666667>; + compatible = "xlnx,axi-timer-1.02.a", "xlnx,xps-timer-1.00.a"; + interrupt-parent = <µblaze_0_intc>; + interrupts = < 0 2 >; + reg = < 0x41c00000 0x10000 >; + xlnx,count-width = <0x20>; + xlnx,family = "spartan6"; + xlnx,gen0-assert = <0x1>; + xlnx,gen1-assert = <0x1>; + xlnx,one-timer-only = <0x0>; + xlnx,trig0-assert = <0x1>; + xlnx,trig1-assert = <0x1>; + } ; + } ; +} ; diff --git a/board/avnet/s6lx9_microboard/lx9_mmu_defconfig b/board/avnet/s6lx9_microboard/lx9_mmu_defconfig new file mode 100644 index 000000000..5d01ca00a --- /dev/null +++ b/board/avnet/s6lx9_microboard/lx9_mmu_defconfig @@ -0,0 +1,68 @@ +CONFIG_EXPERIMENTAL=y +CONFIG_SYSVIPC=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="rootfs.cpio" +CONFIG_INITRAMFS_COMPRESSION_GZIP=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_EXPERT=y +CONFIG_KALLSYMS_ALL=y +CONFIG_KALLSYMS_EXTRA_PASS=y +# CONFIG_HOTPLUG is not set +# CONFIG_BASE_FULL is not set +# CONFIG_FUTEX is not set +# CONFIG_EPOLL is not set +# CONFIG_SIGNALFD is not set +# CONFIG_SHMEM is not set +CONFIG_SLAB=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +# CONFIG_BLK_DEV_BSG is not set +# CONFIG_OPT_LIB_ASM is not set +CONFIG_KERNEL_BASE_ADDR=0x80000000 +CONFIG_XILINX_MICROBLAZE0_FAMILY="spartan6" +CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR=1 +# CONFIG_XILINX_MICROBLAZE0_USE_PCMP_INSTR is not set +CONFIG_XILINX_MICROBLAZE0_USE_BARREL=1 +CONFIG_XILINX_MICROBLAZE0_USE_HW_MUL=1 +CONFIG_XILINX_MICROBLAZE0_HW_VER="8.20.a" +CONFIG_HZ_100=y +CONFIG_MMU=y +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE_FORCE=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +# CONFIG_INET_LRO is not set +# CONFIG_IPV6 is not set +CONFIG_PROC_DEVICETREE=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=8192 +CONFIG_NETDEVICES=y +CONFIG_NET_ETHERNET=y +CONFIG_XILINX_EMACLITE=y +# CONFIG_INPUT is not set +# CONFIG_SERIO is not set +# CONFIG_VT is not set +CONFIG_SERIAL_UARTLITE=y +CONFIG_SERIAL_UARTLITE_CONSOLE=y +# CONFIG_HW_RANDOM is not set +# CONFIG_HWMON is not set +# CONFIG_USB_SUPPORT is not set +CONFIG_EXT2_FS=y +# CONFIG_DNOTIFY is not set +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +CONFIG_CIFS=y +CONFIG_CIFS_STATS=y +CONFIG_CIFS_STATS2=y +CONFIG_PARTITION_ADVANCED=y +CONFIG_DEBUG_KERNEL=y +CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEBUG_SLAB=y +CONFIG_DEBUG_SPINLOCK=y +CONFIG_DEBUG_INFO=y +CONFIG_EARLY_PRINTK=y +# CONFIG_CRYPTO_ANSI_CPRNG is not set diff --git a/board/avnet/s6lx9_microboard/readme.txt b/board/avnet/s6lx9_microboard/readme.txt new file mode 100644 index 000000000..3cb2ce982 --- /dev/null +++ b/board/avnet/s6lx9_microboard/readme.txt @@ -0,0 +1,70 @@ +This is the buildroot board support for the Avnet Spartan6 LX9 MicroBoard. + +The Avnet S6LX9 Microboard is a small USB-Stick sized module containing +a Spartan6 FPGA capable of running the Microblaze softcore processor +together with RAM and FLASH memory. + +The board can be bought from Avnet (avnet.com) or from Trenz Electronic +(www.trenz-electronic.de) for a low price. + +To run the Linux built with buildroot you have to install the FPGA bitfile +and u-boot as described in the tutorial AvtS6LX9MicroBoard_SW302_PetaLinux +available on http://www.em.avnet.com/s6microboard + +On this site also is a forum containing information on how to build your own +Microblaze processor for the Microboard. + +The image file (default name is simpleImage.lx9_mmu.ub) has to be copied +to your tftp folder (often /tftpboot/) or can be programmed into the +board's SPI flash. + +Sample session: + +$ make s6lx9_microboard_defconfig +$ make +$ cp build/linux-/arch/microblaze/boot/simpleImage.lx9_mmu.ub /tftpboot/br12.2a.ub +$ minicom + + + Icache:ON + Dcache:ON + U-Boot Start:0x83f00000 +SF: Got idcode 20 ba 18 10 01 +*** Warning - bad CRC, using default environment + +Net: Xilinx_Emaclite +MAC: 00:0a:35:00:63:37 +U-BOOT for Avnet-LX9-Microboard-AXI-tiny-13.1 + +BOOTP broadcast 1 +DHCP client bound to address 192.168.11.122 +Hit any key to stop autoboot: 0 +U-Boot-PetaLinux> tftp br12.2a.ub +Using Xilinx_Emaclite device +TFTP from server 192.168.11.10; our IP address is 192.168.11.122 +Filename 'br12.2a.ub'. +Load address: 0x80002000 +Loading: ################################################################# + ################################################################# + ################################################################# + ################################################################# + ################################################################# + ############################## +done +Bytes transferred = 5207724 (4f76ac hex) +U-Boot-PetaLinux> bootm +## Booting kernel from Legacy Image at 80002000 ... + Image Name: Linux-3.1.0 + Image Type: MicroBlaze Linux Kernel Image (uncompressed) + Data Size: 5207660 Bytes = 5 MB + Load Address: 80000000 + Entry Point: 80000000 + Verifying Checksum ... OK + Loading Kernel Image ... OK +OK +## Transferring control to Linux (at address 80000000), 0x80000000 ramdisk 0x00000000, FDT 0x00000000... +Early console on uartlite at 0x40600000 +..... boot log skipped + +Welcome to Microblaze Buildroot +Microblaze login: diff --git a/board/bananapi/bananapi-m1/boot.cmd b/board/bananapi/bananapi-m1/boot.cmd new file mode 100644 index 000000000..0cf6f4d63 --- /dev/null +++ b/board/bananapi/bananapi-m1/boot.cmd @@ -0,0 +1,7 @@ +setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait + +mmc dev 0 +fatload mmc 0 $kernel_addr_r zImage +fatload mmc 0 $fdt_addr_r sun7i-a20-bananapi.dtb + +bootz $kernel_addr_r - $fdt_addr_r diff --git a/board/bananapi/bananapi-m1/genimage.cfg b/board/bananapi/bananapi-m1/genimage.cfg new file mode 100644 index 000000000..ce62fbf71 --- /dev/null +++ b/board/bananapi/bananapi-m1/genimage.cfg @@ -0,0 +1,34 @@ +image boot.vfat { + vfat { + files = { + "zImage", + "sun7i-a20-bananapi.dtb", + "boot.scr" + } + } + + size = 64M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot-sunxi-with-spl.bin" + offset = 8K + size = 1016K # 1MB - 8KB + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/bananapi/bananapi-m1/readme.txt b/board/bananapi/bananapi-m1/readme.txt new file mode 100644 index 000000000..382ba63c4 --- /dev/null +++ b/board/bananapi/bananapi-m1/readme.txt @@ -0,0 +1,37 @@ +Intro +===== + +This default configuration will allow you to start experimenting with the +buildroot environment for the Bananapi M1. With the current configuration +it will bring-up the board, and allow access through the serial console. + +Bananapi M1 link: +http://www.banana-pi.org/m1.html + +Wiki link: +https://openedev.amarulasolutions.com/display/ODWIKI/Bananapi+M1 + +This configuration uses U-Boot mainline and kernel mainline. + +How to build +============ + + $ make bananapi_m1_defconfig + $ make + +Note: you will need access to the internet to download the required +sources. + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + $ sudo sync + +Insert the micro SDcard in your Bananapi M1 and power it up. The console +is on the serial line, 115200 8N1. diff --git a/board/bananapi/bananapi-m2-ultra/boot.cmd b/board/bananapi/bananapi-m2-ultra/boot.cmd new file mode 100644 index 000000000..9c24eabff --- /dev/null +++ b/board/bananapi/bananapi-m2-ultra/boot.cmd @@ -0,0 +1,7 @@ +setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait + +mmc dev 0 +fatload mmc 0 $kernel_addr_r zImage +fatload mmc 0 $fdt_addr_r sun8i-r40-bananapi-m2-ultra.dtb + +bootz $kernel_addr_r - $fdt_addr_r diff --git a/board/bananapi/bananapi-m2-ultra/genimage.cfg b/board/bananapi/bananapi-m2-ultra/genimage.cfg new file mode 100644 index 000000000..88324f1f2 --- /dev/null +++ b/board/bananapi/bananapi-m2-ultra/genimage.cfg @@ -0,0 +1,34 @@ +image boot.vfat { + vfat { + files = { + "zImage", + "sun8i-r40-bananapi-m2-ultra.dtb", + "boot.scr" + } + } + + size = 64M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot-sunxi-with-spl.bin" + offset = 8K + size = 1016K # 1MB - 8KB + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/bananapi/bananapi-m2-ultra/readme.txt b/board/bananapi/bananapi-m2-ultra/readme.txt new file mode 100644 index 000000000..c3de84f5b --- /dev/null +++ b/board/bananapi/bananapi-m2-ultra/readme.txt @@ -0,0 +1,35 @@ +Intro +===== + +This default configuration will allow you to start experimenting with the +buildroot environment for the Bananapi M2 ULtra. With the current +configuration it will bring-up the board, and allow access through the +serial console. + +Bananapi M2 Ultra link: +http://www.banana-pi.org/m2u.html + +This configuration uses U-Boot mainline and kernel mainline. + +How to build +============ + + $ make bananapi_m2_ultra_defconfig + $ make + +Note: you will need access to the internet to download the required +sources. + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + $ sudo sync + +Insert the micro SDcard in your Bananapi M2 Ultra and power it up. The console +is on the serial line, 115200 8N1. diff --git a/board/bananapi/bananapi-m2-zero/boot.cmd b/board/bananapi/bananapi-m2-zero/boot.cmd new file mode 100644 index 000000000..081450935 --- /dev/null +++ b/board/bananapi/bananapi-m2-zero/boot.cmd @@ -0,0 +1,7 @@ +setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait + +mmc dev 0 +fatload mmc 0 $kernel_addr_r zImage +fatload mmc 0 $fdt_addr_r sun8i-h2-plus-bananapi-m2-zero.dtb + +bootz $kernel_addr_r - $fdt_addr_r diff --git a/board/bananapi/bananapi-m2-zero/genimage.cfg b/board/bananapi/bananapi-m2-zero/genimage.cfg new file mode 100644 index 000000000..1f565b523 --- /dev/null +++ b/board/bananapi/bananapi-m2-zero/genimage.cfg @@ -0,0 +1,34 @@ +image boot.vfat { + vfat { + files = { + "zImage", + "sun8i-h2-plus-bananapi-m2-zero.dtb", + "boot.scr" + } + } + + size = 64M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot-sunxi-with-spl.bin" + offset = 8K + size = 1016K # 1MB - 8KB + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/bananapi/bananapi-m2-zero/readme.txt b/board/bananapi/bananapi-m2-zero/readme.txt new file mode 100644 index 000000000..9edd477f1 --- /dev/null +++ b/board/bananapi/bananapi-m2-zero/readme.txt @@ -0,0 +1,34 @@ +Intro +===== + +This default configuration will allow you to start experimenting with the +Buildroot environment for the Bananapi M2 Zero. With the current configuration +it will bring-up the board, and allow access through the serial console. + +Bananapi M2 Zero link: +http://www.banana-pi.org/m2z.html + +This configuration uses U-Boot mainline and kernel mainline. + +How to build +============ + + $ make bananapi_m2_zero_defconfig + $ make + +Note: you will need access to the internet to download the required +sources. + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + $ sync + +Insert the micro SDcard in your Bananapi M2 Zero and power it up. The console +is on the Debug UART on the CON3 header, with serial settings 115200 8N1. diff --git a/board/bananapi/bananapi-m64/boot.cmd b/board/bananapi/bananapi-m64/boot.cmd new file mode 100644 index 000000000..d35c9b0b2 --- /dev/null +++ b/board/bananapi/bananapi-m64/boot.cmd @@ -0,0 +1,6 @@ +setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait + +fatload mmc 0 $kernel_addr_r Image +fatload mmc 0 $fdt_addr_r sun50i-a64-bananapi-m64.dtb + +booti $kernel_addr_r - $fdt_addr_r diff --git a/board/bananapi/bananapi-m64/genimage.cfg b/board/bananapi/bananapi-m64/genimage.cfg new file mode 100644 index 000000000..e922c0dba --- /dev/null +++ b/board/bananapi/bananapi-m64/genimage.cfg @@ -0,0 +1,40 @@ +image boot.vfat { + vfat { + files = { + "Image", + "sun50i-a64-bananapi-m64.dtb", + "boot.scr" + } + } + + size = 64M +} + +image sdcard.img { + hdimage { + } + + partition spl { + in-partition-table = "no" + image = "sunxi-spl.bin" + offset = 8K + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot.itb" + offset = 40K + size = 1M # 1MB - 40KB + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/bananapi/bananapi-m64/readme.txt b/board/bananapi/bananapi-m64/readme.txt new file mode 100644 index 000000000..0dec3e52e --- /dev/null +++ b/board/bananapi/bananapi-m64/readme.txt @@ -0,0 +1,37 @@ +Intro +===== + +This default configuration will allow you to start experimenting with the +buildroot environment for the Bananapi M64. With the current configuration +it will bring-up the board, and allow access through the serial console. + +Bananapi M64 link: +http://www.banana-pi.org/m64.html + +Wiki link: +https://openedev.amarulasolutions.com/display/ODWIKI/Bananapi+M64 + +This configuration uses U-Boot mainline and kernel mainline. + +How to build +============ + + $ make bananapi_m64_defconfig + $ make + +Note: you will need access to the internet to download the required +sources. + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + $ sudo sync + +Insert the micro SDcard in your Bananapi M64 and power it up. The console +is on the serial line, 115200 8N1. diff --git a/board/beagleboardx15/genimage.cfg b/board/beagleboardx15/genimage.cfg new file mode 100644 index 000000000..b1604105c --- /dev/null +++ b/board/beagleboardx15/genimage.cfg @@ -0,0 +1,27 @@ +image boot.vfat { + vfat { + files = { + "MLO", + "u-boot.img" + } + } + + size = 4M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/board/beagleboardx15/readme.txt b/board/beagleboardx15/readme.txt new file mode 100644 index 000000000..5af2c914b --- /dev/null +++ b/board/beagleboardx15/readme.txt @@ -0,0 +1,49 @@ +BeagleBoard X15 + +Intro +===== +This config currently supports the beagleboard x15, +and generates a barebone image. + +The image must be flashed to a SD card to be used. + +How to build it +=============== + + $ make beagleboardx15_defconfig + +Then you can edit the build options using + + $ make menuconfig + +Compile all and build a sdcard image: + + $ make + +Result of the build +------------------- + +After building, you should get a tree like this: + + output/images/ + +-- am57xx-beagle-x15.dtb + +-- am57xx-beagle-x15-revb1.dtb + +-- boot.vfat + +-- MLO + +--rootfs.ext2 + +-- rootfs.ext4 + +-- rootfs.tar + +-- sdcard.img + +-- u-boot.img + +-- u-boot-spl.bin + +-- zImage + +How to write the microSD card +============================= + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX diff --git a/board/beaglebone/genimage.cfg b/board/beaglebone/genimage.cfg new file mode 100644 index 000000000..42ca2cf10 --- /dev/null +++ b/board/beaglebone/genimage.cfg @@ -0,0 +1,35 @@ +image boot.vfat { + vfat { + files = { + "MLO", + "u-boot.img", + "zImage", + "uEnv.txt", + "am335x-evm.dtb", + "am335x-evmsk.dtb", + "am335x-bone.dtb", + "am335x-boneblack.dtb", + "am335x-bonegreen.dtb", + "am335x-boneblack-wireless.dtb", + } + } + + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/board/beaglebone/linux-sgx.fragment b/board/beaglebone/linux-sgx.fragment new file mode 100644 index 000000000..58d46f588 --- /dev/null +++ b/board/beaglebone/linux-sgx.fragment @@ -0,0 +1,13 @@ +CONFIG_PREEMPT=y +CONFIG_PREEMPT_COUNT=y +CONFIG_OMAP2_DSS_INIT=y +CONFIG_OMAP_DSS_BASE=y +CONFIG_OMAP2_DSS=y +CONFIG_OMAP2_DSS_DPI=y +CONFIG_DRM_OMAP=y +CONFIG_DRM_OMAP_NUM_CRTCS=2 +CONFIG_DRM_OMAP_WB_M2M=y +CONFIG_DRM_TILCDC=y +CONFIG_DRM_I2C_NXP_TDA998X=y +CONFIG_DRM=y +CONFIG_DRM_LEGACY=y diff --git a/board/beaglebone/patches/linux/0001-keep-jtag-clock-alive-for-debugger.patch b/board/beaglebone/patches/linux/0001-keep-jtag-clock-alive-for-debugger.patch new file mode 100644 index 000000000..8e36d9abc --- /dev/null +++ b/board/beaglebone/patches/linux/0001-keep-jtag-clock-alive-for-debugger.patch @@ -0,0 +1,16 @@ +This patch keeps the debugSS clock alive, it clocks the JTAG macro and enables +access to the SoC via JTAG after the kernel booted. + +Signed-off-by: Lothar Felten +--- +diff -Naur linux-orig/arch/arm/mach-omap2/omap_hwmod_33xx_data.c linux-52c4aa7cdb93d61f8008f380135beaf7b8fa6593/arch/arm/mach-omap2/omap_hwmod_33xx_data.c +--- linux-orig/arch/arm/mach-omap2/omap_hwmod_33xx_data.c 2015-10-02 17:30:56.000000000 +0200 ++++ linux-52c4aa7cdb93d61f8008f380135beaf7b8fa6593/arch/arm/mach-omap2/omap_hwmod_33xx_data.c 2016-08-15 11:28:55.017617612 +0200 +@@ -208,6 +208,7 @@ + .name = "debugss", + .class = &am33xx_debugss_hwmod_class, + .clkdm_name = "l3_aon_clkdm", ++ .flags = (HWMOD_INIT_NO_IDLE|HWMOD_INIT_NO_RESET), /* keep debugSS clock alive for JTAG */ + .main_clk = "trace_clk_div_ck", + .prcm = { + .omap4 = { diff --git a/board/beaglebone/post-build.sh b/board/beaglebone/post-build.sh new file mode 100755 index 000000000..ffdd19138 --- /dev/null +++ b/board/beaglebone/post-build.sh @@ -0,0 +1,4 @@ +#!/bin/sh +BOARD_DIR="$(dirname $0)" + +cp $BOARD_DIR/uEnv.txt $BINARIES_DIR/uEnv.txt diff --git a/board/beaglebone/readme.txt b/board/beaglebone/readme.txt new file mode 100644 index 000000000..231e977a8 --- /dev/null +++ b/board/beaglebone/readme.txt @@ -0,0 +1,62 @@ +CircuitCo BeagleBone +Texas Instuments AM335x Evaluation Module (TMDXEVM3358) + +Description +=========== + +This configuration will build a complete image for the beaglebone and +the TI AM335x-EVM, the board type is identified by the on-board +EEPROM. The configuration is based on the +ti-processor-sdk-06.01.00.08. Device tree blobs for beaglebone +variants and the evm-sk are built too. + +For Qt5 support support use the beaglebone_qt5_defconfig. + +How to build it +=============== + +Select the default configuration for the target: +$ make beaglebone_defconfig + +Optional: modify the configuration: +$ make menuconfig + +Build: +$ make + +Result of the build +=================== +output/images/ ++-- am335x-boneblack.dtb ++-- am335x-bone.dtb ++-- am335x-evm.dtb ++-- am335x-evmsk.dtb ++-- boot.vfat ++-- MLO ++-- rootfs.ext2 ++-- rootfs.tar ++-- sdcard.img ++-- u-boot.img ++-- uEnv.txt ++-- zImage + +To copy the image file to the sdcard use dd: +$ dd if=output/images/sdcard.img of=/dev/XXX + + +Running Qt5 hellowindow opengl demo: +=================== +# export QT_QPA_EGLFS_KMS_CONFIG=/etc/qt5/eglfs_kms_cfg.json +# export QT_QPA_PLATFORM=eglfs +# export QT_QPA_EGLFS_INTEGRATION=none +# /usr/lib/qt/examples/opengl/hellowindow/hellowindow + + +Tested hardware +=============== +am335x-evm (rev. 1.1A) +beagleboneblack (rev. A5A) +beaglebone (rev. A6) + +2020, Adam Duskett +2016, Lothar Felten diff --git a/board/beaglebone/rootfs_overlay/etc/qt5/eglfs_kms_cfg.json b/board/beaglebone/rootfs_overlay/etc/qt5/eglfs_kms_cfg.json new file mode 100644 index 000000000..76f5e7d37 --- /dev/null +++ b/board/beaglebone/rootfs_overlay/etc/qt5/eglfs_kms_cfg.json @@ -0,0 +1,15 @@ +{ + "device": "/dev/dri/card0", + "hwcursor": false, + "pbuffers": true, + "outputs": [ + { + "name": "VGA1", + "mode": "off" + }, + { + "name": "HDMI1", + "mode": "1024x768" + } + ] +} diff --git a/board/beaglebone/uEnv.txt b/board/beaglebone/uEnv.txt new file mode 100644 index 000000000..8fce54d87 --- /dev/null +++ b/board/beaglebone/uEnv.txt @@ -0,0 +1,11 @@ +bootpart=0:1 +devtype=mmc +bootdir= +bootfile=zImage +bootpartition=mmcblk0p2 +console=ttyS0,115200n8 +loadaddr=0x82000000 +fdtaddr=0x88000000 +set_mmc1=if test $board_name = A33515BB; then setenv bootpartition mmcblk1p2; fi +set_bootargs=setenv bootargs console=${console} root=/dev/${bootpartition} rw rootfstype=ext4 rootwait +uenvcmd=run set_mmc1; run set_bootargs;run loadimage;run loadfdt;printenv bootargs;bootz ${loadaddr} - ${fdtaddr} diff --git a/board/beagleboneai/genimage.cfg b/board/beagleboneai/genimage.cfg new file mode 100644 index 000000000..8aefd76ef --- /dev/null +++ b/board/beagleboneai/genimage.cfg @@ -0,0 +1,30 @@ +image boot.vfat { + vfat { + files = { + "MLO", + "u-boot.img", + "zImage", + "am5729-beagleboneai.dtb", + "uEnv.txt" + } + } + + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/board/beagleboneai/patches/uboot/0001-am57xx_evm-fixes.patch b/board/beagleboneai/patches/uboot/0001-am57xx_evm-fixes.patch new file mode 100644 index 000000000..9c7b12be8 --- /dev/null +++ b/board/beagleboneai/patches/uboot/0001-am57xx_evm-fixes.patch @@ -0,0 +1,839 @@ +From 702ea30b462ba06f4fbee3393f0e6c19531f1e5f Mon Sep 17 00:00:00 2001 +From: Robert Nelson +Date: Fri, 25 Jun 2021 11:33:25 -0500 +Subject: [PATCH] am57xx_evm-fixes + +Signed-off-by: Robert Nelson +[Patch from https://github.com/beagleboard/u-boot/commit/702ea30b462ba06f4fbee3393f0e6c19531f1e5f] +Signed-off-by: Peter Korsgaard +--- + arch/arm/mach-omap2/omap5/hw_data.c | 1 + + board/ti/am57xx/board.c | 167 +++++++++++- + configs/am57xx_evm_defconfig | 15 +- + include/configs/ti_armv7_common.h | 407 ++++++++++++++++++++++++++++ + include/configs/ti_omap5_common.h | 5 + + include/environment/ti/boot.h | 32 ++- + include/environment/ti/mmc.h | 49 +++- + 7 files changed, 651 insertions(+), 25 deletions(-) + +diff --git a/arch/arm/mach-omap2/omap5/hw_data.c b/arch/arm/mach-omap2/omap5/hw_data.c +index fa4e27063c..d5192b1671 100644 +--- a/arch/arm/mach-omap2/omap5/hw_data.c ++++ b/arch/arm/mach-omap2/omap5/hw_data.c +@@ -421,6 +421,7 @@ void enable_basic_clocks(void) + (*prcm)->cm_l4per_uart1_clkctrl, + (*prcm)->cm_l4per_uart3_clkctrl, + (*prcm)->cm_l4per_i2c1_clkctrl, ++ (*prcm)->cm_l4per_i2c4_clkctrl, + #ifdef CONFIG_DRIVER_TI_CPSW + (*prcm)->cm_gmac_gmac_clkctrl, + #endif +diff --git a/board/ti/am57xx/board.c b/board/ti/am57xx/board.c +index 73063faee6..ad05c41f22 100644 +--- a/board/ti/am57xx/board.c ++++ b/board/ti/am57xx/board.c +@@ -41,6 +41,7 @@ + #include + #include + #include ++#include + + #include "../common/board_detect.h" + #include "mux_data.h" +@@ -528,8 +529,10 @@ void do_board_detect(void) + + rc = ti_i2c_eeprom_am_get(CONFIG_EEPROM_BUS_ADDRESS, + CONFIG_EEPROM_CHIP_ADDRESS); +- if (rc) ++ if (rc) { + printf("ti_i2c_eeprom_init failed %d\n", rc); ++ ti_i2c_eeprom_am_set("BBONE-AI", "A"); ++ }; + + #ifdef CONFIG_SUPPORT_EMMC_BOOT + rc = board_bootmode_has_emmc(); +@@ -579,6 +582,164 @@ void do_board_detect(void) + "Board: %s REV %s\n", bname, board_ti_get_rev()); + } + ++struct am335x_cape_eeprom_id { ++ unsigned int header; ++ char eeprom_rev[2]; ++ char board_name[32]; ++ char version[4]; ++ char manufacture[16]; ++ char part_number[16]; ++ char number_of_pins[2]; ++ char serial_number[12]; ++ char pin_usage[140]; ++ char vdd_3v3exp[ 2]; ++ char vdd_5v[ 2]; ++ char sys_5v[2]; ++ char dc_supplied[2]; ++}; ++ ++#define CAPE_EEPROM_BUS_NUM 3 ++#define CAPE_EEPROM_ADDR0 0x54 ++#define CAPE_EEPROM_ADDR1 0x55 ++#define CAPE_EEPROM_ADDR2 0x56 ++#define CAPE_EEPROM_ADDR3 0x57 ++ ++#define CAPE_EEPROM_ADDR_LEN 0x10 ++ ++static int probe_cape_eeprom(struct am335x_cape_eeprom_id *cape_header) ++{ ++ int ret; ++ struct udevice *dev; ++ unsigned char addr; ++ /* /lib/firmware/BB-CAPE-DISP-CT4-00A0.dtbo */ ++ /* 14 + 16 + 1 + 4 + 5 = 40 */ ++ char hash_cape_overlay[40]; ++ char cape_overlay[26]; ++ char process_cape_part_number[16]; ++ char process_cape_version[4]; ++ char end_part_number; ++ char cape_overlay_pass_to_kernel[18]; ++ ++ strlcpy(cape_overlay_pass_to_kernel, "", 1); ++ ++ for ( addr = CAPE_EEPROM_ADDR0; addr <= CAPE_EEPROM_ADDR3; addr++ ) { ++ ret = i2c_get_chip_for_busnum(CAPE_EEPROM_BUS_NUM, addr, 1, &dev); ++ if (ret) { ++ printf("BeagleBone Cape EEPROM: no EEPROM at address: 0x%x\n", addr); ++ } else { ++ printf("BeagleBone Cape EEPROM: found EEPROM at address: 0x%x\n", addr); ++ ++ ret = i2c_set_chip_offset_len(dev, 2); ++ if (ret) { ++ printf("BeagleBone Cape EEPROM: i2c_set_chip_offset_len failure\n"); ++ } ++ ++ ret = dm_i2c_read(dev, 0, (uchar *)cape_header, sizeof(struct am335x_cape_eeprom_id)); ++ if (ret) { ++ printf("BeagleBone Cape EEPROM: Cannot read eeprom params\n"); ++ } ++ ++ if (cape_header->header == 0xEE3355AA) { ++ strlcpy(hash_cape_overlay, "/lib/firmware/", 14 + 1); ++ strlcpy(cape_overlay, "", 2); ++ strlcpy(cape_overlay_pass_to_kernel, "", 2); ++ strlcpy(process_cape_part_number, "...............", 16 + 1); ++ strlcpy(process_cape_version, "...", 4 + 1); ++ ++ strlcpy(process_cape_part_number, cape_header->part_number, 16 + 1); ++ printf("BeagleBone Cape EEPROM: debug part_number field:[%s]\n", process_cape_part_number); ++ ++ //FIXME: some capes end with '.' ++ if ( process_cape_part_number[15] == 0x2E ) { ++ puts("debug: fixup, extra . in eeprom field\n"); ++ process_cape_part_number[15] = 0x00; ++ if ( process_cape_part_number[14] == 0x2E ) { ++ process_cape_part_number[14] = 0x00; ++ } ++ } ++ ++ //Find ending 0x00 or 0xFF ++ puts("BeagleBone Cape EEPROM: debug part_number field HEX:["); ++ end_part_number=16; ++ for ( int i=0; i <= 16; i++ ) { ++ if (( process_cape_part_number[i] == 0x00 ) || ( process_cape_part_number[i] == 0xFF )) { ++ end_part_number=i; ++ i=17; ++ } else { ++ printf("%x", process_cape_part_number[i]); ++ } ++ } ++ puts("]\n"); ++ ++ strncat(cape_overlay_pass_to_kernel, process_cape_part_number, end_part_number); ++ strncat(cape_overlay_pass_to_kernel, ",", 1); ++ //printf("debug: %s\n", cape_overlay_pass_to_kernel); ++ ++ strncat(hash_cape_overlay, process_cape_part_number, end_part_number); ++ strncat(cape_overlay, process_cape_part_number, end_part_number); ++ //printf("debug: %s %s\n", hash_cape_overlay, cape_overlay); ++ ++ strncat(hash_cape_overlay, "-", 1); ++ strncat(cape_overlay, "-", 1); ++ //printf("debug: %s %s\n", hash_cape_overlay, cape_overlay); ++ ++ strlcpy(process_cape_version, cape_header->version, 4 + 1); ++ //printf("debug: version field:[%s]\n", process_cape_version); ++ ++ //Find invalid 0xFF -> 0x30 BBAI FAN Cape... ++ puts("BeagleBone Cape EEPROM: debug version field HEX:["); ++ for ( int i=0; i <= 3; i++ ) { ++ printf("%x", process_cape_version[i]); ++ if ( process_cape_version[i] == 0xFF ) { ++ process_cape_version[i] = 0x30; ++ } ++ } ++ puts("]\n"); ++ ++ strncat(hash_cape_overlay, process_cape_version, 4); ++ strncat(cape_overlay, process_cape_version, 4); ++ //printf("debug: %s %s\n", hash_cape_overlay, cape_overlay); ++ ++ strncat(hash_cape_overlay, ".dtbo", 5); ++ strncat(cape_overlay, ".dtbo", 5); ++ //printf("debug: %s %s\n", hash_cape_overlay, cape_overlay); ++ ++ printf("BeagleBone Cape EEPROM: 0x%x %s\n", addr, cape_overlay); ++ ++ switch(addr) { ++ case CAPE_EEPROM_ADDR0: ++ env_set("uboot_overlay_addr0", cape_overlay); ++ env_set("uboot_detected_capes_addr0", cape_overlay_pass_to_kernel); ++ break; ++ case CAPE_EEPROM_ADDR1: ++ env_set("uboot_overlay_addr1", cape_overlay); ++ env_set("uboot_detected_capes_addr1", cape_overlay_pass_to_kernel); ++ break; ++ case CAPE_EEPROM_ADDR2: ++ env_set("uboot_overlay_addr2", cape_overlay); ++ env_set("uboot_detected_capes_addr2", cape_overlay_pass_to_kernel); ++ break; ++ case CAPE_EEPROM_ADDR3: ++ env_set("uboot_overlay_addr3", cape_overlay); ++ env_set("uboot_detected_capes_addr3", cape_overlay_pass_to_kernel); ++ break; ++ } ++ env_set("uboot_detected_capes", "1"); ++ } else { ++ printf("BeagleBone Cape EEPROM: EEPROM contents not valid (or blank) on address: 0x%x\n", addr); ++ } ++ } ++ } ++ return 0; ++} ++ ++void do_cape_detect(void) ++{ ++ struct am335x_cape_eeprom_id cape_header; ++ ++ probe_cape_eeprom(&cape_header); ++} ++ + static void setup_board_eeprom_env(void) + { + char *name = "beagle_x15"; +@@ -782,8 +943,10 @@ int board_late_init(void) + /* Just probe the potentially supported cdce913 device */ + uclass_get_device(UCLASS_CLK, 0, &dev); + +- if (board_is_bbai()) ++ if (board_is_bbai()) { + env_set("console", "ttyS0,115200n8"); ++ do_cape_detect(); ++ } + + #if !defined(CONFIG_SPL_BUILD) + board_ti_set_ethaddr(2); +diff --git a/configs/am57xx_evm_defconfig b/configs/am57xx_evm_defconfig +index 4da4aaa1c7..ed5b8aec16 100644 +--- a/configs/am57xx_evm_defconfig ++++ b/configs/am57xx_evm_defconfig +@@ -10,16 +10,20 @@ CONFIG_SPL_TEXT_BASE=0x40300000 + CONFIG_OMAP54XX=y + CONFIG_TARGET_AM57XX_EVM=y + CONFIG_SPL=y +-CONFIG_ENV_OFFSET_REDUND=0x280000 + CONFIG_SPL_SPI_FLASH_SUPPORT=y + CONFIG_SPL_SPI_SUPPORT=y + CONFIG_ARMV7_LPAE=y +-CONFIG_DEFAULT_DEVICE_TREE="am572x-idk" ++CONFIG_DEFAULT_DEVICE_TREE="am57xx-beagle-x15-revc" + CONFIG_AHCI=y + CONFIG_DISTRO_DEFAULTS=y + CONFIG_SPL_LOAD_FIT=y + # CONFIG_USE_SPL_FIT_GENERATOR is not set + CONFIG_OF_BOARD_SETUP=y ++CONFIG_BOOTDELAY=1 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n" ++CONFIG_AUTOBOOT_DELAY_STR="d" ++CONFIG_AUTOBOOT_STOP_STR=" " + CONFIG_USE_BOOTARGS=y + CONFIG_BOOTARGS="androidboot.serialno=${serial#} console=ttyS2,115200 androidboot.console=ttyS2 androidboot.hardware=beagle_x15board" + # CONFIG_USE_BOOTCOMMAND is not set +@@ -48,13 +52,12 @@ CONFIG_BOOTP_DNS2=y + CONFIG_CMD_AVB=y + CONFIG_OF_CONTROL=y + CONFIG_SPL_OF_CONTROL=y +-CONFIG_OF_LIST="am57xx-beagle-x15 am57xx-beagle-x15-revb1 am57xx-beagle-x15-revc am5729-beagleboneai am572x-idk am571x-idk am574x-idk" ++CONFIG_OF_LIST="am57xx-beagle-x15 am57xx-beagle-x15-revb1 am57xx-beagle-x15-revc am5729-beagleboneai" + CONFIG_ENV_OVERWRITE=y +-CONFIG_ENV_IS_IN_MMC=y +-CONFIG_SYS_REDUNDAND_ENVIRONMENT=y ++# CONFIG_ENV_IS_IN_FAT is not set + CONFIG_SYS_RELOC_GD_ENV_ADDR=y +-CONFIG_SYS_MMC_ENV_DEV=1 + CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++# CONFIG_SPL_ENV_IS_NOWHERE is not set + CONFIG_VERSION_VARIABLE=y + CONFIG_BOOTP_SEND_HOSTNAME=y + CONFIG_DM=y +diff --git a/include/configs/ti_armv7_common.h b/include/configs/ti_armv7_common.h +index f13e9e5264..eabd03e27d 100644 +--- a/include/configs/ti_armv7_common.h ++++ b/include/configs/ti_armv7_common.h +@@ -92,6 +92,413 @@ + #define CONFIG_SYS_I2C + #endif + ++#define EEPROM_PROGRAMMING \ ++ "eeprom_dump=i2c dev 0; " \ ++ "i2c md 0x50 0x00.2 20; " \ ++ "\0" \ ++ "eeprom_blank=i2c dev 0; " \ ++ "i2c mw 0x50 0x00.2 ff; " \ ++ "i2c mw 0x50 0x01.2 ff; " \ ++ "i2c mw 0x50 0x02.2 ff; " \ ++ "i2c mw 0x50 0x03.2 ff; " \ ++ "i2c mw 0x50 0x04.2 ff; " \ ++ "i2c mw 0x50 0x05.2 ff; " \ ++ "i2c mw 0x50 0x06.2 ff; " \ ++ "i2c mw 0x50 0x07.2 ff; " \ ++ "i2c mw 0x50 0x08.2 ff; " \ ++ "i2c mw 0x50 0x09.2 ff; " \ ++ "i2c mw 0x50 0x0a.2 ff; " \ ++ "i2c mw 0x50 0x0b.2 ff; " \ ++ "i2c mw 0x50 0x0c.2 ff; " \ ++ "i2c mw 0x50 0x0d.2 ff; " \ ++ "i2c mw 0x50 0x0e.2 ff; " \ ++ "i2c mw 0x50 0x0f.2 ff; " \ ++ "i2c mw 0x50 0x10.2 ff; " \ ++ "i2c mw 0x50 0x11.2 ff; " \ ++ "i2c mw 0x50 0x12.2 ff; " \ ++ "i2c mw 0x50 0x13.2 ff; " \ ++ "i2c mw 0x50 0x14.2 ff; " \ ++ "i2c mw 0x50 0x15.2 ff; " \ ++ "i2c mw 0x50 0x16.2 ff; " \ ++ "i2c mw 0x50 0x17.2 ff; " \ ++ "i2c mw 0x50 0x18.2 ff; " \ ++ "i2c mw 0x50 0x19.2 ff; " \ ++ "i2c mw 0x50 0x1a.2 ff; " \ ++ "i2c mw 0x50 0x1b.2 ff; " \ ++ "i2c mw 0x50 0x1c.2 ff; " \ ++ "i2c mw 0x50 0x1d.2 ff; " \ ++ "i2c mw 0x50 0x1e.2 ff; " \ ++ "i2c mw 0x50 0x1f.2 ff; " \ ++ "i2c md 0x50 0x00.2 20; " \ ++ "\0" \ ++ "eeprom_x15_b1=i2c dev 0; " \ ++ "i2c mw 0x50 0x00.2 aa; " \ ++ "i2c mw 0x50 0x01.2 55; " \ ++ "i2c mw 0x50 0x02.2 33; " \ ++ "i2c mw 0x50 0x03.2 ee; " \ ++ "i2c mw 0x50 0x04.2 42; " \ ++ "i2c mw 0x50 0x05.2 42; " \ ++ "i2c mw 0x50 0x06.2 52; " \ ++ "i2c mw 0x50 0x07.2 44; " \ ++ "i2c mw 0x50 0x08.2 58; " \ ++ "i2c mw 0x50 0x09.2 31; " \ ++ "i2c mw 0x50 0x0a.2 35; " \ ++ "i2c mw 0x50 0x0b.2 5f; " \ ++ "i2c mw 0x50 0x0c.2 42; " \ ++ "i2c mw 0x50 0x0d.2 2e; " \ ++ "i2c mw 0x50 0x0e.2 31; " \ ++ "i2c mw 0x50 0x0f.2 30; " \ ++ "i2c mw 0x50 0x10.2 57; " \ ++ "i2c mw 0x50 0x11.2 57; " \ ++ "i2c mw 0x50 0x12.2 59; " \ ++ "i2c mw 0x50 0x13.2 59; " \ ++ "i2c mw 0x50 0x14.2 34; " \ ++ "i2c mw 0x50 0x15.2 50; " \ ++ "i2c mw 0x50 0x16.2 35; " \ ++ "i2c mw 0x50 0x17.2 35; " \ ++ "i2c mw 0x50 0x18.2 30; " \ ++ "i2c mw 0x50 0x19.2 30; " \ ++ "i2c mw 0x50 0x1a.2 30; " \ ++ "i2c mw 0x50 0x1b.2 30; " \ ++ "i2c mw 0x50 0x1c.2 ff; " \ ++ "i2c mw 0x50 0x1d.2 ff; " \ ++ "i2c mw 0x50 0x1e.2 ff; " \ ++ "i2c mw 0x50 0x1f.2 ff; " \ ++ "i2c md 0x50 0x00.2 20; " \ ++ "\0" \ ++ "eeprom_x15_c=i2c dev 0; " \ ++ "i2c mw 0x50 0x00.2 aa; " \ ++ "i2c mw 0x50 0x01.2 55; " \ ++ "i2c mw 0x50 0x02.2 33; " \ ++ "i2c mw 0x50 0x03.2 ee; " \ ++ "i2c mw 0x50 0x04.2 42; " \ ++ "i2c mw 0x50 0x05.2 42; " \ ++ "i2c mw 0x50 0x06.2 52; " \ ++ "i2c mw 0x50 0x07.2 44; " \ ++ "i2c mw 0x50 0x08.2 58; " \ ++ "i2c mw 0x50 0x09.2 31; " \ ++ "i2c mw 0x50 0x0a.2 35; " \ ++ "i2c mw 0x50 0x0b.2 5f; " \ ++ "i2c mw 0x50 0x0c.2 43; " \ ++ "i2c mw 0x50 0x0d.2 2e; " \ ++ "i2c mw 0x50 0x0e.2 30; " \ ++ "i2c mw 0x50 0x0f.2 30; " \ ++ "i2c mw 0x50 0x10.2 79; " \ ++ "i2c mw 0x50 0x11.2 79; " \ ++ "i2c mw 0x50 0x12.2 77; " \ ++ "i2c mw 0x50 0x13.2 77; " \ ++ "i2c mw 0x50 0x14.2 50; " \ ++ "i2c mw 0x50 0x15.2 58; " \ ++ "i2c mw 0x50 0x16.2 31; " \ ++ "i2c mw 0x50 0x17.2 35; " \ ++ "i2c mw 0x50 0x18.2 6e; " \ ++ "i2c mw 0x50 0x19.2 6e; " \ ++ "i2c mw 0x50 0x1a.2 6e; " \ ++ "i2c mw 0x50 0x1b.2 6e; " \ ++ "i2c mw 0x50 0x1c.2 ff; " \ ++ "i2c mw 0x50 0x1d.2 ff; " \ ++ "i2c mw 0x50 0x1e.2 ff; " \ ++ "i2c mw 0x50 0x1f.2 ff; " \ ++ "i2c md 0x50 0x00.2 20; " \ ++ "eeprom_bbai_a2=i2c dev 0; " \ ++ "i2c mw 0x50 0x00.2 aa; " \ ++ "i2c mw 0x50 0x01.2 55; " \ ++ "i2c mw 0x50 0x02.2 33; " \ ++ "i2c mw 0x50 0x03.2 ee; " \ ++ "i2c mw 0x50 0x04.2 42; " \ ++ "i2c mw 0x50 0x05.2 42; " \ ++ "i2c mw 0x50 0x06.2 4F; " \ ++ "i2c mw 0x50 0x07.2 4E; " \ ++ "i2c mw 0x50 0x08.2 45; " \ ++ "i2c mw 0x50 0x09.2 2D; " \ ++ "i2c mw 0x50 0x0a.2 41; " \ ++ "i2c mw 0x50 0x0b.2 49; " \ ++ "i2c mw 0x50 0x0c.2 30; " \ ++ "i2c mw 0x50 0x0d.2 30; " \ ++ "i2c mw 0x50 0x0e.2 41; " \ ++ "i2c mw 0x50 0x0f.2 32; " \ ++ "i2c mw 0x50 0x10.2 57; " \ ++ "i2c mw 0x50 0x11.2 57; " \ ++ "i2c mw 0x50 0x12.2 59; " \ ++ "i2c mw 0x50 0x13.2 59; " \ ++ "i2c mw 0x50 0x14.2 53; " \ ++ "i2c mw 0x50 0x15.2 42; " \ ++ "i2c mw 0x50 0x16.2 41; " \ ++ "i2c mw 0x50 0x17.2 49; " \ ++ "i2c mw 0x50 0x18.2 30; " \ ++ "i2c mw 0x50 0x19.2 30; " \ ++ "i2c mw 0x50 0x1a.2 30; " \ ++ "i2c mw 0x50 0x1b.2 30; " \ ++ "i2c mw 0x50 0x1c.2 30; " \ ++ "i2c mw 0x50 0x1d.2 30; " \ ++ "i2c mw 0x50 0x1e.2 ff; " \ ++ "i2c mw 0x50 0x1f.2 ff; " \ ++ "i2c md 0x50 0x00.2 20; " \ ++ "\0" \ ++ ++#define EEWIKI_MMC_BOOT \ ++ "mmc_boot=${devtype} dev ${mmcdev}; ${devtype} part; " \ ++ "if ${devtype} rescan; then " \ ++ "echo Scanning ${devtype} device ${mmcdev};" \ ++ "setenv bootpart ${mmcdev}:1; " \ ++ "echo Checking for: /uEnv.txt ...;" \ ++ "if test -e ${devtype} ${bootpart} /uEnv.txt; then " \ ++ "load ${devtype} ${bootpart} ${loadaddr} /uEnv.txt;" \ ++ "env import -t ${loadaddr} ${filesize};" \ ++ "echo Loaded environment from /uEnv.txt;" \ ++ "echo Checking if uenvcmd is set ...;" \ ++ "if test -n ${uenvcmd}; then " \ ++ "echo Running uenvcmd ...;" \ ++ "run uenvcmd;" \ ++ "fi;" \ ++ "fi; " \ ++ "echo Checking for: /boot/uEnv.txt ...;" \ ++ "for i in 1 2 3 4 5 6 7 ; do " \ ++ "setenv mmcpart ${i};" \ ++ "setenv bootpart ${mmcdev}:${mmcpart};" \ ++ "if test -e ${devtype} ${bootpart} /boot/uEnv.txt; then " \ ++ "load ${devtype} ${bootpart} ${loadaddr} /boot/uEnv.txt;" \ ++ "env import -t ${loadaddr} ${filesize};" \ ++ "echo Loaded environment from /boot/uEnv.txt;" \ ++ "if test -n ${dtb}; then " \ ++ "setenv fdtfile ${dtb};" \ ++ "echo debug: [dtb=${fdtfile}] ...;" \ ++ "fi;" \ ++ "echo Checking if uname_r is set in /boot/uEnv.txt ...;" \ ++ "if test -n ${uname_r}; then " \ ++ "echo debug: [uname_r=${uname_r}] ...;" \ ++ "setenv oldroot /dev/mmcblk${mmcdev}p${mmcpart};" \ ++ "run uname_boot;" \ ++ "fi;" \ ++ "fi;" \ ++ "done;" \ ++ "fi;\0" \ ++ ++#define EEWIKI_SCSI_BOOT \ ++ "scsi_boot=${devtype} reset ; " \ ++ "if ${devtype} dev ${mmcdev}; then " \ ++ "echo Scanning ${devtype} device ${mmcdev};" \ ++ "setenv bootpart ${mmcdev}:1; " \ ++ "echo Checking for: /uEnv.txt ...;" \ ++ "if test -e ${devtype} ${bootpart} /uEnv.txt; then " \ ++ "load ${devtype} ${bootpart} ${loadaddr} /uEnv.txt;" \ ++ "env import -t ${loadaddr} ${filesize};" \ ++ "echo Loaded environment from /uEnv.txt;" \ ++ "echo Checking if uenvcmd is set ...;" \ ++ "if test -n ${uenvcmd}; then " \ ++ "echo Running uenvcmd ...;" \ ++ "run uenvcmd;" \ ++ "fi;" \ ++ "fi; " \ ++ "echo Checking for: /boot/uEnv.txt ...;" \ ++ "for i in 1 2 3 4 ; do " \ ++ "setenv mmcpart ${i};" \ ++ "setenv bootpart ${mmcdev}:${mmcpart};" \ ++ "if test -e ${devtype} ${bootpart} /boot/uEnv.txt; then " \ ++ "load ${devtype} ${bootpart} ${loadaddr} /boot/uEnv.txt;" \ ++ "env import -t ${loadaddr} ${filesize};" \ ++ "echo Loaded environment from /boot/uEnv.txt;" \ ++ "if test -n ${dtb}; then " \ ++ "setenv fdtfile ${dtb};" \ ++ "echo debug: [dtb=${fdtfile}] ...;" \ ++ "fi;" \ ++ "echo Checking if uname_r is set in /boot/uEnv.txt ...;" \ ++ "if test -n ${uname_r}; then " \ ++ "echo debug: [uname_r=${uname_r}] ...;" \ ++ "setenv oldroot /dev/sda${mmcpart};" \ ++ "run uname_boot;" \ ++ "fi;" \ ++ "fi;" \ ++ "done;" \ ++ "fi;\0" \ ++ ++#define EEWIKI_USB_BOOT \ ++ "usb_boot=${devtype} reset ; " \ ++ "if ${devtype} dev ${mmcdev}; then " \ ++ "echo Scanning ${devtype} device ${mmcdev};" \ ++ "setenv bootpart ${mmcdev}:1; " \ ++ "echo Checking for: /uEnv.txt ...;" \ ++ "if test -e ${devtype} ${bootpart} /uEnv.txt; then " \ ++ "load ${devtype} ${bootpart} ${loadaddr} /uEnv.txt;" \ ++ "env import -t ${loadaddr} ${filesize};" \ ++ "echo Loaded environment from /uEnv.txt;" \ ++ "echo Checking if uenvcmd is set in /uEnv.txt ...;" \ ++ "if test -n ${uenvcmd}; then " \ ++ "echo Running uenvcmd ...;" \ ++ "run uenvcmd;" \ ++ "fi;" \ ++ "fi; " \ ++ "echo Checking for: /boot/uEnv.txt ...;" \ ++ "for i in 1 2 3 4 ; do " \ ++ "setenv mmcpart ${i};" \ ++ "setenv bootpart ${mmcdev}:${mmcpart};" \ ++ "if test -e ${devtype} ${bootpart} /boot/uEnv.txt; then " \ ++ "load ${devtype} ${bootpart} ${loadaddr} /boot/uEnv.txt;" \ ++ "env import -t ${loadaddr} ${filesize};" \ ++ "echo Loaded environment from /boot/uEnv.txt;" \ ++ "if test -n ${dtb}; then " \ ++ "setenv fdtfile ${dtb};" \ ++ "echo debug: [dtb=${fdtfile}] ...;" \ ++ "fi;" \ ++ "echo Checking if uname_r is set in /boot/uEnv.txt ...;" \ ++ "if test -n ${uname_r}; then " \ ++ "echo debug: [uname_r=${uname_r}] ...;" \ ++ "setenv oldroot /dev/sda${mmcpart};" \ ++ "run uname_boot;" \ ++ "fi;" \ ++ "fi;" \ ++ "done;" \ ++ "fi;\0" \ ++ ++#define EEWIKI_UNAME_BOOT \ ++ "uname_boot="\ ++ "setenv bootdir /boot; " \ ++ "setenv bootfile vmlinuz-${uname_r}; " \ ++ "if test -e ${devtype} ${bootpart} ${bootdir}/${bootfile}; then " \ ++ "echo loading ${bootdir}/${bootfile} ...; "\ ++ "run loadimage;" \ ++ "setenv fdtdir /boot/dtbs/${uname_r}; " \ ++ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \ ++ "run loadfdt;" \ ++ "else " \ ++ "setenv fdtdir /usr/lib/linux-image-${uname_r}; " \ ++ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \ ++ "run loadfdt;" \ ++ "else " \ ++ "setenv fdtdir /lib/firmware/${uname_r}/device-tree; " \ ++ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \ ++ "run loadfdt;" \ ++ "else " \ ++ "setenv fdtdir /boot/dtb-${uname_r}; " \ ++ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \ ++ "run loadfdt;" \ ++ "else " \ ++ "setenv fdtdir /boot/dtbs; " \ ++ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \ ++ "run loadfdt;" \ ++ "else " \ ++ "setenv fdtdir /boot/dtb; " \ ++ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \ ++ "run loadfdt;" \ ++ "else " \ ++ "setenv fdtdir /boot; " \ ++ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \ ++ "run loadfdt;" \ ++ "else " \ ++ "echo; echo unable to find ${fdtfile} ...; echo booting legacy ...;"\ ++ "run args_mmc;" \ ++ "echo debug: [${bootargs}] ... ;" \ ++ "echo debug: [bootz ${loadaddr}] ... ;" \ ++ "bootz ${loadaddr}; " \ ++ "fi;" \ ++ "fi;" \ ++ "fi;" \ ++ "fi;" \ ++ "fi;" \ ++ "fi;" \ ++ "fi; " \ ++ "if test -n ${enable_uboot_overlays}; then " \ ++ "setenv fdt_buffer 0x60000;" \ ++ "if test -n ${uboot_fdt_buffer}; then " \ ++ "setenv fdt_buffer ${uboot_fdt_buffer};" \ ++ "fi;" \ ++ "echo uboot_overlays: [fdt_buffer=${fdt_buffer}] ... ;" \ ++ "if test -n ${uboot_overlay_addr0}; then " \ ++ "if test -n ${disable_uboot_overlay_addr0}; then " \ ++ "echo uboot_overlays: uboot loading of [${uboot_overlay_addr0}] disabled by /boot/uEnv.txt [disable_uboot_overlay_addr0=1]...;" \ ++ "else " \ ++ "setenv uboot_overlay ${uboot_overlay_addr0}; " \ ++ "run virtualloadoverlay;" \ ++ "fi;" \ ++ "fi;" \ ++ "if test -n ${uboot_overlay_addr1}; then " \ ++ "if test -n ${disable_uboot_overlay_addr1}; then " \ ++ "echo uboot_overlays: uboot loading of [${uboot_overlay_addr1}] disabled by /boot/uEnv.txt [disable_uboot_overlay_addr1=1]...;" \ ++ "else " \ ++ "setenv uboot_overlay ${uboot_overlay_addr1}; " \ ++ "run virtualloadoverlay;" \ ++ "fi;" \ ++ "fi;" \ ++ "if test -n ${uboot_overlay_addr2}; then " \ ++ "if test -n ${disable_uboot_overlay_addr2}; then " \ ++ "echo uboot_overlays: uboot loading of [${uboot_overlay_addr2}] disabled by /boot/uEnv.txt [disable_uboot_overlay_addr2=1]...;" \ ++ "else " \ ++ "setenv uboot_overlay ${uboot_overlay_addr2}; " \ ++ "run virtualloadoverlay;" \ ++ "fi;" \ ++ "fi;" \ ++ "if test -n ${uboot_overlay_addr3}; then " \ ++ "if test -n ${disable_uboot_overlay_addr3}; then " \ ++ "echo uboot_overlays: uboot loading of [${uboot_overlay_addr3}] disabled by /boot/uEnv.txt [disable_uboot_overlay_addr3=1]...;" \ ++ "else " \ ++ "setenv uboot_overlay ${uboot_overlay_addr3}; " \ ++ "run virtualloadoverlay;" \ ++ "fi;" \ ++ "fi;" \ ++ "if test -n ${uboot_overlay_addr4}; then " \ ++ "setenv uboot_overlay ${uboot_overlay_addr4}; " \ ++ "run virtualloadoverlay;" \ ++ "fi;" \ ++ "if test -n ${uboot_overlay_addr5}; then " \ ++ "setenv uboot_overlay ${uboot_overlay_addr5}; " \ ++ "run virtualloadoverlay;" \ ++ "fi;" \ ++ "if test -n ${uboot_overlay_addr6}; then " \ ++ "setenv uboot_overlay ${uboot_overlay_addr6}; " \ ++ "run virtualloadoverlay;" \ ++ "fi;" \ ++ "if test -n ${uboot_overlay_addr7}; then " \ ++ "setenv uboot_overlay ${uboot_overlay_addr7}; " \ ++ "run virtualloadoverlay;" \ ++ "fi;" \ ++ "if test -n ${uboot_overlay_pru}; then " \ ++ "setenv uboot_overlay ${uboot_overlay_pru}; " \ ++ "run virtualloadoverlay;" \ ++ "fi;" \ ++ "else " \ ++ "echo uboot_overlays: add [enable_uboot_overlays=1] to /boot/uEnv.txt to enable...;" \ ++ "fi;" \ ++ "setenv rdfile initrd.img-${uname_r}; " \ ++ "if test -e ${devtype} ${bootpart} ${bootdir}/${rdfile}; then " \ ++ "echo loading ${bootdir}/${rdfile} ...; "\ ++ "run loadrd;" \ ++ "if test -n ${netinstall_enable}; then " \ ++ "run args_netinstall; run message;" \ ++ "echo debug: [${bootargs}] ... ;" \ ++ "echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;" \ ++ "bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}; " \ ++ "fi;" \ ++ "if test -n ${uenv_root}; then " \ ++ "run args_uenv_root;" \ ++ "echo debug: [${bootargs}] ... ;" \ ++ "echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;" \ ++ "bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}; " \ ++ "fi;" \ ++ "if test -n ${uuid}; then " \ ++ "run args_mmc_uuid;" \ ++ "echo debug: [${bootargs}] ... ;" \ ++ "echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;" \ ++ "bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}; " \ ++ "else " \ ++ "run args_mmc_old;" \ ++ "echo debug: [${bootargs}] ... ;" \ ++ "echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;" \ ++ "bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}; " \ ++ "fi;" \ ++ "else " \ ++ "if test -n ${uenv_root}; then " \ ++ "run args_uenv_root;" \ ++ "echo debug: [${bootargs}] ... ;" \ ++ "echo debug: [bootz ${loadaddr} - ${fdtaddr}] ... ;" \ ++ "bootz ${loadaddr} - ${fdtaddr}; " \ ++ "fi;" \ ++ "run args_mmc_old;" \ ++ "echo debug: [${bootargs}] ... ;" \ ++ "echo debug: [bootz ${loadaddr} - ${fdtaddr}] ... ;" \ ++ "bootz ${loadaddr} - ${fdtaddr}; " \ ++ "fi;" \ ++ "fi;\0" \ ++ + /* + * The following are general good-enough settings for U-Boot. We set a + * large malloc pool as we generally have a lot of DDR, and we opt for +diff --git a/include/configs/ti_omap5_common.h b/include/configs/ti_omap5_common.h +index de0a6af2fd..0cd2ccea03 100644 +--- a/include/configs/ti_omap5_common.h ++++ b/include/configs/ti_omap5_common.h +@@ -64,6 +64,11 @@ + DEFAULT_FIT_TI_ARGS \ + DEFAULT_COMMON_BOOT_TI_ARGS \ + DEFAULT_FDT_TI_ARGS \ ++ EEWIKI_USB_BOOT \ ++ EEWIKI_SCSI_BOOT \ ++ EEWIKI_MMC_BOOT \ ++ EEWIKI_UNAME_BOOT \ ++ EEPROM_PROGRAMMING \ + DFUARGS \ + NETARGS \ + NANDARGS \ +diff --git a/include/environment/ti/boot.h b/include/environment/ti/boot.h +index a9d8f28d46..1480b6e3df 100644 +--- a/include/environment/ti/boot.h ++++ b/include/environment/ti/boot.h +@@ -132,6 +132,7 @@ + "bootpart=0:2\0" \ + "bootdir=/boot\0" \ + "bootfile=zImage\0" \ ++ "board_eeprom_header=undefined\0" \ + "usbtty=cdc_acm\0" \ + "vram=16M\0" \ + AVB_VERIFY_CMD \ +@@ -183,7 +184,14 @@ + "else " \ + "echo $apart partition not found; " \ + "exit; " \ +- "fi;\0" ++ "fi;\0 " \ ++ "read_board_eeprom=" \ ++ "if test $board_eeprom_header = beagle_x15_revb1_blank; then " \ ++ "run eeprom_dump; run eeprom_x15_b1; reset; fi; " \ ++ "if test $board_eeprom_header = beagle_x15_revc_blank; then " \ ++ "run eeprom_dump; run eeprom_x15_c; reset; fi; " \ ++ "if test $board_eeprom_header = bbai_a2_blank; then " \ ++ "run eeprom_dump; run eeprom_bbai_a2; reset; fi; \0 " + + #ifdef CONFIG_OMAP54XX + +@@ -223,19 +231,17 @@ + "echo WARNING: Could not determine device tree to use; fi; \0" + + #define CONFIG_BOOTCOMMAND \ +- "if test ${dofastboot} -eq 1; then " \ +- "echo Boot fastboot requested, resetting dofastboot ...;" \ +- "setenv dofastboot 0; saveenv;" \ +- FASTBOOT_CMD \ +- "fi;" \ +- "if test ${boot_fit} -eq 1; then " \ +- "run update_to_fit;" \ +- "fi;" \ ++ "run read_board_eeprom; " \ + "run findfdt; " \ +- "run envboot; " \ +- "run mmcboot;" \ +- "run emmc_linux_boot; " \ +- "run emmc_android_boot; " \ ++ "setenv mmcdev 0; " \ ++ "setenv devtype usb; " \ ++ "echo usb_boot is currently disabled;" \ ++ "setenv devtype scsi; " \ ++ "echo scsi_boot is currently disabled;" \ ++ "setenv devtype mmc; " \ ++ "run mmc_boot;" \ ++ "setenv mmcdev 1; " \ ++ "run mmc_boot;" \ + "" + + #endif /* CONFIG_OMAP54XX */ +diff --git a/include/environment/ti/mmc.h b/include/environment/ti/mmc.h +index b86c8dc7a4..0ec09f279a 100644 +--- a/include/environment/ti/mmc.h ++++ b/include/environment/ti/mmc.h +@@ -11,11 +11,31 @@ + #define DEFAULT_MMC_TI_ARGS \ + "mmcdev=0\0" \ + "mmcrootfstype=ext4 rootwait\0" \ +- "finduuid=part uuid mmc ${bootpart} uuid\0" \ ++ "finduuid=part uuid ${devtype} ${bootpart} uuid\0" \ + "args_mmc=run finduuid;setenv bootargs console=${console} " \ + "${optargs} " \ +- "root=PARTUUID=${uuid} rw " \ +- "rootfstype=${mmcrootfstype}\0" \ ++ "root=PARTUUID=${uuid} ro " \ ++ "rootfstype=${mmcrootfstype} " \ ++ "${cmdline}\0" \ ++ "args_mmc_old=setenv bootargs console=${console} " \ ++ "${optargs} " \ ++ "root=${oldroot} ro " \ ++ "rootfstype=${mmcrootfstype} " \ ++ "${cmdline}\0" \ ++ "args_mmc_uuid=setenv bootargs console=${console} " \ ++ "${optargs} " \ ++ "root=UUID=${uuid} ro " \ ++ "rootfstype=${mmcrootfstype} " \ ++ "${cmdline}\0" \ ++ "args_uenv_root=setenv bootargs console=${console} " \ ++ "${optargs} " \ ++ "root=${uenv_root} ro " \ ++ "rootfstype=${mmcrootfstype} " \ ++ "${musb} ${cmdline}\0" \ ++ "args_netinstall=setenv bootargs ${netinstall_bootargs} " \ ++ "${optargs} " \ ++ "root=/dev/ram rw " \ ++ "${cmdline}\0" \ + "loadbootscript=load mmc ${mmcdev} ${loadaddr} boot.scr\0" \ + "bootscript=echo Running bootscript from mmc${mmcdev} ...; " \ + "source ${loadaddr}\0" \ +@@ -24,7 +44,28 @@ + "env import -t ${loadaddr} ${filesize}\0" \ + "loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenvfile}\0" \ + "loadimage=load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \ +- "loadfdt=load ${devtype} ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}\0" \ ++ "loadrd=load ${devtype} ${bootpart} ${rdaddr} ${bootdir}/${rdfile}; setenv rdsize ${filesize}\0" \ ++ "loadfdt=echo loading ${fdtdir}/${fdtfile} ...; load ${devtype} ${bootpart} ${fdtaddr} ${fdtdir}/${fdtfile}\0" \ ++ "loadoverlay=echo uboot_overlays: loading ${actual_uboot_overlay} ...; " \ ++ "load ${devtype} ${bootpart} ${rdaddr} ${actual_uboot_overlay}; " \ ++ "fdt addr ${fdtaddr}; fdt resize ${fdt_buffer}; " \ ++ "fdt apply ${rdaddr}; fdt resize ${fdt_buffer};\0" \ ++ "virtualloadoverlay=if test -e ${devtype} ${bootpart} ${fdtdir}/overlays/${uboot_overlay}; then " \ ++ "setenv actual_uboot_overlay ${fdtdir}/overlays/${uboot_overlay}; " \ ++ "run loadoverlay;" \ ++ "else " \ ++ "if test -e ${devtype} ${bootpart} /lib/firmware/${uboot_overlay}; then " \ ++ "setenv actual_uboot_overlay /lib/firmware/${uboot_overlay}; " \ ++ "run loadoverlay;" \ ++ "else " \ ++ "if test -e ${devtype} ${bootpart} ${uboot_overlay}; then " \ ++ "setenv actual_uboot_overlay ${uboot_overlay}; " \ ++ "run loadoverlay;" \ ++ "else " \ ++ "echo uboot_overlays: unable to find [${devtype} ${bootpart} ${uboot_overlay}]...;" \ ++ "fi;" \ ++ "fi;" \ ++ "fi;\0" \ + "envboot=mmc dev ${mmcdev}; " \ + "if mmc rescan; then " \ + "echo SD/MMC found on device ${mmcdev};" \ +-- +2.20.1 + diff --git a/board/beagleboneai/post-build.sh b/board/beagleboneai/post-build.sh new file mode 100755 index 000000000..34a86cc74 --- /dev/null +++ b/board/beagleboneai/post-build.sh @@ -0,0 +1,4 @@ +#!/bin/sh +BOARD_DIR="$(dirname $0)" + +cp board/beagleboneai/uEnv.txt $BINARIES_DIR/uEnv.txt diff --git a/board/beagleboneai/readme.txt b/board/beagleboneai/readme.txt new file mode 100644 index 000000000..f4c798f55 --- /dev/null +++ b/board/beagleboneai/readme.txt @@ -0,0 +1,28 @@ +Intro +===== + +This configuration will build a basic image for the BeagleBoard.org +BeagleBone AI. For more details about the board, visit: + +https://beagleboard.org/ai + +How to build it +=============== + +Configure Buildroot: + + $ make beagleboneai_defconfig + +Compile everything and build the USB flash drive image: + + $ make + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX diff --git a/board/beagleboneai/uEnv.txt b/board/beagleboneai/uEnv.txt new file mode 100644 index 000000000..d38df7727 --- /dev/null +++ b/board/beagleboneai/uEnv.txt @@ -0,0 +1,6 @@ +bootpart=0:1 +bootdir=/ +bootargs=console=ttyS0,115200n8 root=/dev/mmcblk0p2 ro rootwait +devtype=mmc +fdtfile=am5729-beagleboneai.dtb +uenvcmd=run loadimage; run loadfdt; printenv bootargs; bootz ${loadaddr} - ${fdtaddr} diff --git a/board/beaglev/extlinux.conf b/board/beaglev/extlinux.conf new file mode 100644 index 000000000..9daf6a758 --- /dev/null +++ b/board/beaglev/extlinux.conf @@ -0,0 +1,4 @@ +label linux + kernel /boot/Image + devicetree /boot/jh7100-beaglev-starlight.dtb + append console=ttyS0,115200 earlyprintk root=PARTUUID=0fef845a-c6e1-45bc-82f7-002fa720f958 rootwait diff --git a/board/beaglev/genimage.cfg b/board/beaglev/genimage.cfg new file mode 100644 index 000000000..deefdbc11 --- /dev/null +++ b/board/beaglev/genimage.cfg @@ -0,0 +1,12 @@ +image sdcard.img { + hdimage { + partition-table-type = "gpt" + } + + partition rootfs { + partition-type-uuid = 72ec70a6-cf74-40e6-bd49-4bda08e8f224 + partition-uuid = 0fef845a-c6e1-45bc-82f7-002fa720f958 + bootable = "true" + image = "rootfs.ext4" + } +} diff --git a/board/beaglev/post-build.sh b/board/beaglev/post-build.sh new file mode 100755 index 000000000..fe61fd33c --- /dev/null +++ b/board/beaglev/post-build.sh @@ -0,0 +1,11 @@ +#!/bin/sh +BOARD_DIR=$(dirname $0) + +# Bring the extlinux.conf file in. +install -D -m 0644 ${BOARD_DIR}/extlinux.conf \ + ${TARGET_DIR}/boot/extlinux/extlinux.conf + +# To be reflashed through Xmodem, the bootloader needs to be prepended +# with a 4-byte header that contains the total size of the file. +perl -e 'print pack("l", (stat @ARGV[0])[7])' ${BINARIES_DIR}/fw_payload.bin > ${BINARIES_DIR}/fw_payload.bin.out +cat ${BINARIES_DIR}/fw_payload.bin >> ${BINARIES_DIR}/fw_payload.bin.out diff --git a/board/beaglev/readme.txt b/board/beaglev/readme.txt new file mode 100644 index 000000000..472d6b1cf --- /dev/null +++ b/board/beaglev/readme.txt @@ -0,0 +1,124 @@ +BeagleV +======= + +BeagleV is a low-cost RISC-V 64-bit based platform, powered by a +Starfive JH7100 processor. The current defconfig in Buildroot has been +tested with the JH7100 chip used on the beta version of the BeagleV +board. + +How to build +============ + +$ make beaglev_defconfig +$ make + +Build results +============= + +After building, output/images contains: + ++ bootloader-JH7100-buildroot.bin.out ++ ddrinit-2133-buildroot.bin.out ++ Image ++ fw_payload.bin ++ fw_payload.bin.out ++ fw_payload.elf ++ rootfs.ext2 ++ rootfs.ext4 ++ sdcard.img ++ u-boot.bin + +The four important files are: + + - bootloader-JH7100-buildroot.bin.out, the first stage bootloader + + - ddrinit-2133-buildroot.bin.out, the DDR initialization firmware + + - fw_payload.bin.out, which is the bootloader image, containing + both OpenSBI and U-Boot. + + - sdcard.img, the SD card image, which contains the root filesystem, + kernel image and Device Tree. + +Flashing the SD card image +========================== + +$ sudo dd if=output/images/sdcard.img of=/dev/sdX + +Preparing the board +=================== + +Connect the Beagle-V fan to the 5V supply (pin 2 or 4 of the GPIO +connector) and GND (pin 6 of the GPIO connector). + +Connect a TTL UART cable to pin 8 (TX), 10 (RX) and 14 (GND). + +Insert your SD card. + +Power-up the board using an USB-C cable. + +Flashing OpenSBI/U-Boot +======================= + +The bootloader pre-flashed on the Beagle-V has a non-working +fdt_addr_r environment variable value, so it won't work +as-is. Reflashing the bootloader with the bootloader image produced by +Buildroot is necessary. + +When the board starts up, a pre-loader shows a count down of 2 +seconds, interrupt by pressing any key. You should reach a menu like +this: + +--------8<---------- + +bootloader version:210209-4547a8d +ddr 0x00000000, 1M test +ddr 0x00100000, 2M test +DDR clk 2133M,Version: 210302-5aea32f +0 +*************************************************** +*************** FLASH PROGRAMMING ***************** +*************************************************** + +0:update uboot +1:quit +select the function: + +--------8<---------- + +Press 0 and Enter. You will now see "C" characters being +displayed. Ask your serial port communication program to send +fw_payload.bin.out using the Xmodem protocol. + +After reflashing is complete, restart the board, it will automatically +start the system from the SD card, and reach the login prompt. + +Flashing low-level bootloaders +============================== + +The BeagleV comes pre-flashed with functional low-level bootloaders +(called "secondboot" and "ddrinit"). Re-flashing them is not necessary +to use this Buildroot defconfig. However, for the sake of +completeness, Buildroot builds and provides those low-level bootloader +images. + +You can flash them as follows: + + - In the same "pre-loader" menu as the one used above, instead of + entering 0 or 1, enter the magic "root@s5t" string. This enters the + "expert" features. + + - Then, press 0 and send over X-modem the + bootloader-JH7100-buildroot.bin.out file. + + - Then, press 1 and send over X-modem the + ddrinit-2133-buildroot.bin.out. + +Note that the reflashing mechanism itself relies on those low-level +bootloaders, so if you flash non-working versions, you'll have to go +through a recovery process. This requires wiring up to a separate +debug UART, which pins are located near the HDMI connector. See +https://wiki.seeedstudio.com/BeagleV-Update-bootloader-ddr-init-boot-uboot-Recover-bootloader/ +section "Recover the bootloader" for more details. The instructions +make use of a jh7100-recover tool, which Buildroot has built as part +of this defconfig: it is available as output/host/bin/jh7100-recover. diff --git a/board/beelink/gs1/extlinux.conf b/board/beelink/gs1/extlinux.conf new file mode 100644 index 000000000..046681f71 --- /dev/null +++ b/board/beelink/gs1/extlinux.conf @@ -0,0 +1,4 @@ +label linux + kernel /Image + devicetree /sun50i-h6-beelink-gs1.dtb + append console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait diff --git a/board/beelink/gs1/genimage.cfg b/board/beelink/gs1/genimage.cfg new file mode 100644 index 000000000..71578743e --- /dev/null +++ b/board/beelink/gs1/genimage.cfg @@ -0,0 +1,34 @@ +image boot.vfat { + vfat { + files = { + "Image", + "sun50i-h6-beelink-gs1.dtb", + "extlinux" + } + } + + size = 64M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot-sunxi-with-spl.bin" + offset = 8K + size = 1016K # 1MB - 8KB + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/beelink/gs1/post-build.sh b/board/beelink/gs1/post-build.sh new file mode 100755 index 000000000..ec20fca7d --- /dev/null +++ b/board/beelink/gs1/post-build.sh @@ -0,0 +1,4 @@ +#!/bin/sh +BOARD_DIR="$(dirname $0)" + +install -m 0644 -D $BOARD_DIR/extlinux.conf $BINARIES_DIR/extlinux/extlinux.conf diff --git a/board/boundarydevices/common/boot.cmd b/board/boundarydevices/common/boot.cmd new file mode 100644 index 000000000..2f2bd8d04 --- /dev/null +++ b/board/boundarydevices/common/boot.cmd @@ -0,0 +1,170 @@ +setenv bootargs '' + +m4='' +kernelimage=zImage +bootcommand=bootz +a_base=0x10000000 + +#grab 1st 2/3 characters of string +setexpr cpu2 sub "^(..?).*" "\\1" "${imx_cpu}" +setexpr cpu3 sub "^(..?.?).*" "\\1" "${imx_cpu}" +if itest.s x51 == "x${cpu2}" ; then + a_base=0x90000000 +elif itest.s x53 == "x${cpu2}"; then + a_base=0x70000000 +elif itest.s x6SX == "x${cpu3}" || itest.s x6U == "x${cpu2}" || itest.s x7D == "x${cpu2}"; then + a_base=0x80000000 +elif itest.s x8M == "x${cpu2}"; then + a_base=0x40000000 + kernelimage=Image + bootcommand=booti +fi +if itest.s "x1" == "x${m4enabled}" ; then + run m4boot; + m4='-m4'; +fi + +setexpr a_script ${a_base} + 0x00800000 +setexpr a_zImage ${a_base} + 0x00800000 +setexpr a_fdt ${a_base} + 0x03000000 +setexpr a_initrd ${a_base} + 0x03100000 +setexpr a_reset_cause_marker ${a_base} + 0x80 +setexpr a_reset_cause ${a_base} + 0x84 + +if itest.s "x" == "x${board}" ; then + echo "!!!! Error: Your u-boot is outdated. Please upgrade."; + exit; +fi + +if itest.s "x" == "x${fdt_file}" ; then + if itest.s x51 == "x${cpu2}" ; then + fdt_file=imx51-${board}${m4}.dtb; + elif itest.s x53 == "x${cpu2}" ; then + fdt_file=imx53-${board}${m4}.dtb; + elif itest.s x6DL == "x${cpu3}" || itest.s x6SO == "x${cpu3}" ; then + fdt_file=imx6dl-${board}.dtb; + elif itest.s x6QP == "x${cpu3}" ; then + fdt_file=imx6qp-${board}.dtb; + elif itest.s x6SX == "x${cpu3}" ; then + fdt_file=imx6sx-${board}${m4}.dtb; + elif itest.s x6UL == "x${cpu3}" ; then + fdt_file=imx6ull-${board}.dtb; + elif itest.s x7D == "x${cpu2}" ; then + fdt_file=imx7d-${board}${m4}.dtb; + elif itest.s x8MM == "x${cpu3}" ; then + fdt_file=imx8mm-${board}${m4}.dtb; + elif itest.s x8MN == "x${cpu3}" ; then + fdt_file=imx8mn-${board}${m4}.dtb; + elif itest.s x8MP == "x${cpu3}" ; then + if itest *0x30360800 == 0x00824310 ; then + fdt_file=imx8mp-a0-${board}${m4}.dtb; + else + fdt_file=imx8mp-${board}${m4}.dtb; + fi + elif itest.s x8MQ == "x${cpu3}" ; then + fdt_file=imx8mq-${board}${m4}.dtb; + else + fdt_file=imx6q-${board}.dtb; + fi +fi + +if itest.s x${distro_bootpart} == x ; then + distro_bootpart=1 +fi + +if load ${devtype} ${devnum}:${distro_bootpart} ${a_script} uEnv.txt ; then + env import -t ${a_script} ${filesize} +fi + +if itest.s x${console} != x ; then + setenv bootargs ${bootargs} console=${console},115200 +fi +if itest.s "x" == "x$vmalloc" ; then + vmalloc=400M +fi +if itest.s x${consoleblank} == x ; then + consoleblank=0 +fi +setenv bootargs ${bootargs} vmalloc=${vmalloc} consoleblank=${consoleblank} rootwait fixrtc cpu=${imx_cpu} board=${board} uboot_release=${uboot_release} + +if load ${devtype} ${devnum}:${distro_bootpart} ${a_fdt} ${prefix}${fdt_file} ; then + fdt addr ${a_fdt} +else + echo "!!!! Error loading ${prefix}${fdt_file}"; + exit; +fi + +fdt resize 4096 +if itest.s "x" != "x${cmd_board}" ; then + run cmd_board +fi +if itest.s "x" != "x${cmd_custom}" ; then + run cmd_custom +fi +if itest.s "x" != "x${cmd_hdmi}" ; then + run cmd_hdmi + if itest.s x != x${allow_noncea} ; then + setenv bootargs ${bootargs} mxc_hdmi.only_cea=0; + echo "non-CEA modes allowed on HDMI, audio may be affected"; + fi +fi +if itest.s "x" != "x${cmd_lcd}" ; then + run cmd_lcd +fi +if itest.s "x" != "x${cmd_lcd2}" ; then + run cmd_lcd2 +fi +if itest.s "x" != "x${cmd_lvds}" ; then + run cmd_lvds +fi +if itest.s "x" != "x${cmd_lvds2}" ; then + run cmd_lvds2 +fi +if itest.s "x" != "x${cmd_mipi}" ; then + run cmd_mipi +fi + +if test "sata" = "${devtype}" ; then + setenv bootargs "${bootargs} root=/dev/sda${distro_bootpart}" ; +elif test "usb" = "${devtype}" ; then + setenv bootargs "${bootargs} root=/dev/sda${distro_bootpart}" ; +else + setenv bootargs "${bootargs} root=/dev/mmcblk${devnum}p${distro_bootpart}" +fi + +if itest.s "x" != "x${disable_msi}" ; then + setenv bootargs ${bootargs} pci=nomsi +fi; + +if itest.s "x" != "x${disable_giga}" ; then + setenv bootargs ${bootargs} fec.disable_giga=1 +fi + +if itest.s "x" != "x${wlmac}" ; then + setenv bootargs ${bootargs} wlcore.mac=${wlmac} +fi + +if itest.s "x" != "x${gpumem}" ; then + setenv bootargs ${bootargs} galcore.contiguousSize=${gpumem} +fi + +if itest.s "x" != "x${cma}" ; then + setenv bootargs ${bootargs} cma=${cma} +fi + +if itest.s "x" != "x${loglevel}" ; then + setenv bootargs ${bootargs} loglevel=${loglevel} +fi + +if itest.s "x" != "x${show_fdt}" ; then + fdt print / +fi + +if itest.s "x" != "x${show_env}" ; then + printenv +fi + +if load ${devtype} ${devnum}:${distro_bootpart} ${a_zImage} ${prefix}${kernelimage} ; then + ${bootcommand} ${a_zImage} - ${a_fdt} +fi +echo "Error loading kernel image" diff --git a/board/boundarydevices/common/genimage.cfg b/board/boundarydevices/common/genimage.cfg new file mode 100644 index 000000000..a383fb750 --- /dev/null +++ b/board/boundarydevices/common/genimage.cfg @@ -0,0 +1,18 @@ +# Minimal SD card image for Boundary Devices platforms +# +# It does not need a boot section for a bootloader since it is booted +# from its NOR flash memory. +# +# To update the bootloader, execute the following from U-Boot prompt: +# => run upgradeu + +image sdcard.img { + hdimage { + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/board/boundarydevices/common/post-build.sh b/board/boundarydevices/common/post-build.sh new file mode 100755 index 000000000..161ec0643 --- /dev/null +++ b/board/boundarydevices/common/post-build.sh @@ -0,0 +1,29 @@ +#!/bin/sh +# post-build fixups +# for further details, see +# +# http://boundarydevices.com/u-boot-on-i-mx6/ +# + +BOARD_DIR="$(dirname $0)" +UBOOT_DEFCONFIG="$(grep BR2_TARGET_UBOOT_BOARD_DEFCONFIG ${BR2_CONFIG} | sed 's/.*\"\(.*\)\"/\1/')" + +if grep -Eq "^BR2_aarch64=y$" ${BR2_CONFIG}; then + MKIMAGE_ARCH=arm64 + UBOOT_BINARY=imx8-boot-sd.bin +else + MKIMAGE_ARCH=arm + UBOOT_BINARY=u-boot.imx +fi + +# bd u-boot looks for standard bootscript +$HOST_DIR/bin/mkimage -A $MKIMAGE_ARCH -O linux -T script -C none -a 0 -e 0 \ + -n "boot script" -d $BOARD_DIR/boot.cmd $TARGET_DIR/boot/boot.scr + +# u-boot / update script for bd upgradeu command +if [ -e $BINARIES_DIR/$UBOOT_BINARY ]; then + install -D -m 0644 $BINARIES_DIR/$UBOOT_BINARY \ + $TARGET_DIR/u-boot.$UBOOT_DEFCONFIG + $HOST_DIR/bin/mkimage -A $MKIMAGE_ARCH -O linux -T script -C none -a 0 -e 0 \ + -n "upgrade script" -d $BOARD_DIR/upgrade.cmd $TARGET_DIR/upgrade.scr +fi diff --git a/board/boundarydevices/common/post-image.sh b/board/boundarydevices/common/post-image.sh new file mode 100755 index 000000000..5c70d98e5 --- /dev/null +++ b/board/boundarydevices/common/post-image.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +support/scripts/genimage.sh -c $(dirname $0)/genimage.cfg + +exit $? diff --git a/board/boundarydevices/common/readme.txt b/board/boundarydevices/common/readme.txt new file mode 100644 index 000000000..d3169b08f --- /dev/null +++ b/board/boundarydevices/common/readme.txt @@ -0,0 +1,51 @@ +Buildroot for Boundary Devices platforms: + +https://boundarydevices.com/nitrogen-sbcs-and-soms/ + +Here is the list of targeted platforms per defconfig: + +- nitrogen6x_defconfig + - BD-SL-i.MX6 (SABRE-Lite) + - Nitrogen6X + - Nitrogen6_Lite + - Nitrogen6_MAX + - Nitrogen6_VM + - Nitrogen6_SOM + - Nitrogen6_SOMv2 + +- nitrogen6sx_defconfig + - Nitrogen6_SoloX + +- nitrogen7_defconfig + - Nitrogen7 + +- nitrogen8m_defconfig + - Nitrogen8M + - Nitrogen8M_SOM + +- nitrogen8mm_defconfig + - Nitrogen8MMini + - Nitrogen8MMini_SOM + +- nitrogen8mn_defconfig + - Nitrogen8MNano + - Nitrogen8MNano_SOM + +- nitrogen8mp_defconfig + - Nitrogen8MPlus_SOM + +To install, simply copy the image to your storage (SD, eMMC, USB): + +$ sudo dd if=output/images/sdcard.img of=/dev/sdX + +Where 'sdX' is the device node of the uSD partition. + +To upgrade u-boot, cancel autoboot and type: + +> run upgradeu + +See Boundary Devices's buildroot-external-boundary project +for additional and advanced defconfigs using Qt5, gstreamer, +NXP proprietary packages with demo applications: + +https://github.com/boundarydevices/buildroot-external-boundary diff --git a/board/boundarydevices/common/upgrade.cmd b/board/boundarydevices/common/upgrade.cmd new file mode 100644 index 000000000..a26bacd9a --- /dev/null +++ b/board/boundarydevices/common/upgrade.cmd @@ -0,0 +1,230 @@ +if itest.s a$uboot_defconfig == a; then + echo "Please set uboot_defconfig to the appropriate value" + exit +fi + +offset=0x400 +erase_size=0xC0000 +qspi_offset=0x0 +a_base=0x12000000 +block_size=0x200 + +#grab 1st 2/3 characters of string +setexpr cpu2 sub "^(..?).*" "\\1" "${imx_cpu}" +setexpr cpu3 sub "^(..?.?).*" "\\1" "${imx_cpu}" +if itest.s x51 == "x${cpu2}"; then + a_base=0x92000000 +elif itest.s x53 == "x${cpu2}"; then + a_base=0x72000000 +elif itest.s x6SX == "x${cpu3}" || itest.s x6U == "x${cpu2}" || itest.s x7D == "x${cpu2}"; then + a_base=0x82000000 +elif itest.s x8M == "x${cpu2}"; then + a_base=0x42000000 + offset=0x8400 + if itest.s x8MN == "x${cpu3}" || itest.s x8MP == "x${cpu3}"; then + offset=0x8000 + if itest ${env_part} != 0 ; then + offset=0x0 + fi + fi +fi + +qspi_match=1 +setexpr a_qspi1 ${a_base} +setexpr a_qspi2 ${a_qspi1} + 0x400000 +setexpr a_uImage1 ${a_qspi1} + 0x400 +setexpr a_uImage2 ${a_qspi2} + 0x400 +setexpr a_script ${a_base} + +if itest.s "x${vidconsole}" == "x" ; then + vidconsole=vga +fi +setenv stdout serial,${vidconsole} + +if itest.s "x${sfname}" == "x" ; then +# U-Boot resides in (e)MMC +if itest.s "x${env_dev}" == "x" || itest.s "x${env_part}" == "x"; then + echo "Please set env_dev/part to the appropriate values" + exit +fi + +# Load bootloader binary for this board +if ${fs}load ${devtype} ${devnum}:${distro_bootpart} ${a_uImage1} u-boot.$uboot_defconfig ; then +else + echo "File u-boot.$uboot_defconfig not found on SD card" ; + exit +fi + +# Compute block count for filesize and offset +setexpr cntoffset ${offset} / ${block_size} +setexpr cntfile ${filesize} / ${block_size} +# Add 1 in case the $filesize is not a multiple of $block_size +setexpr cntfile ${cntfile} + 1 + +# Select media partition (if different from main partition) +mmc dev ${env_dev} ${env_part} + +# Read and compare current U-Boot +mmc read ${a_uImage2} ${cntoffset} ${cntfile} +if cmp.b ${a_uImage1} ${a_uImage2} ${filesize} ; then + echo "------- U-Boot versions match" ; + echo "------- U-Boot upgrade NOT needed" ; + exit ; +fi + +echo "Need U-Boot upgrade" ; +echo "Program in 5 seconds" ; +for n in 5 4 3 2 1 ; do + echo $n ; + sleep 1 ; +done +mmc write ${a_uImage1} ${cntoffset} ${cntfile} + +# Make sure to boot from the proper partition +if itest ${env_part} != 0 ; then + mmc partconf ${env_dev} 1 ${env_part} 0 +fi + +# Switch back to main eMMC partition (to avoid confusion) +mmc dev ${env_dev} + +else +# U-Boot resides in NOR flash +if sf probe || sf probe || sf probe 1 27000000 || sf probe 1 27000000 ; then + echo "probed SPI ROM" ; +else + echo "Error initializing EEPROM" + exit +fi + +if itest.s "x${sfname}" == "xat45db041d" ; then + erase_size=0x7e000 +fi + +if itest.s x7D == "x${imx_cpu}"; then + echo "check qspi parameter block" ; + if ${fs}load ${devtype} ${devnum}:${distro_bootpart} ${a_qspi1} qspi-${sfname}.${uboot_defconfig} ; then + else + echo "parameter file qspi-${sfname}.${uboot_defconfig} not found on SD card" + exit + fi + if itest ${filesize} != 0x200 ; then + echo "------- qspi-${sfname}.${uboot_defconfig} 0x${filesize} != 0x200 bytes" ; + exit + fi + setexpr a_marker ${a_qspi1} + 0x1fc + if itest *${a_marker} != c0ffee01 ; then + echo "------- qspi-${sfname}.${uboot_defconfig} c0ffee01 marker missing" ; + exit + fi + if sf read ${a_qspi2} ${qspi_offset} 0x200 ; then + else + echo "Error reading qspi parameter from EEPROM" + exit + fi + if cmp.b ${a_qspi1} ${a_qspi2} 0x200 ; then + echo "------- qspi parameters match" + else + echo "------- qspi parameters mismatch" + qspi_match=0 + fi +fi + +echo "check U-Boot" ; + +if ${fs}load ${devtype} ${devnum}:${distro_bootpart} ${a_uImage1} u-boot.$uboot_defconfig ; then +else + echo "File u-boot.$uboot_defconfig not found on SD card" ; + exit +fi +echo "read $filesize bytes from SD card" ; +if sf read ${a_uImage2} $offset $filesize ; then +else + echo "Error reading boot loader from EEPROM" ; + exit +fi + +if cmp.b ${a_uImage1} ${a_uImage2} $filesize ; then + echo "------- U-Boot versions match" ; + if itest.s "${qspi_match}" == "1" ; then + echo "------- U-Boot upgrade NOT needed" ; + if itest.s "x" != "x${next}" ; then + if ${fs}load ${devtype} ${devnum}:${distro_bootpart} ${a_script} ${next} ; then + source ${a_script} + else + echo "${next} not found on SD card" + fi + fi + exit + fi + erase_size=0x1000 + if itest.s xMX25L6405D == "x${sfname}"; then + erase_size=0x10000 + fi + setexpr filesize ${erase_size} - ${offset} +fi + +echo "Need U-Boot upgrade" ; +echo "Program in 5 seconds" ; +for n in 5 4 3 2 1 ; do + echo $n ; + sleep 1 ; +done +echo "erasing" ; +sf erase 0 ${erase_size} ; + +# two steps to prevent bricking +echo "programming" ; +setexpr a1 ${a_uImage1} + 0x400 +setexpr o1 ${offset} + 0x400 +setexpr s1 ${filesize} - 0x400 +sf write ${a1} ${o1} ${s1} ; +sf write ${a_uImage1} $offset 0x400 ; + +if itest.s x7D == "x${imx_cpu}"; then + sf write ${a_qspi1} ${qspi_offset} 0x200 +fi + +echo "verifying" ; +if sf read ${a_uImage2} $offset $filesize ; then +else + echo "Error re-reading EEPROM" ; + exit +fi +if cmp.b ${a_uImage1} ${a_uImage2} $filesize ; then +else + echo "Read verification error" ; + exit +fi + +if itest.s x7D == "x${imx_cpu}"; then + if sf read ${a_qspi2} ${qspi_offset} 0x200 ; then + else + echo "Error re-reading qspi" ; + exit + fi + if cmp.b ${a_qspi1} ${a_qspi2} 0x200 ; then + else + echo "qspi parameter block verification error" ; + exit + fi +fi + +if itest.s "x" != "x${next}" ; then + if ${fs}load ${devtype} ${devnum}:${distro_bootpart} ${a_script} ${next} ; then + source ${a_script} + else + echo "${next} not found on ${devtype} ${devnum}:${distro_bootpart}" + fi +fi +fi + +if itest.s "xno" == "x${reset}" ; then + while echo "---- U-Boot upgraded. Please reset the board" ; do + sleep 120 + done +fi +echo "---- U-Boot upgraded. The board will now reset." +sleep 1 +reset +done diff --git a/board/broadcom/northstar/linux.config b/board/broadcom/northstar/linux.config new file mode 100644 index 000000000..47e699003 --- /dev/null +++ b/board/broadcom/northstar/linux.config @@ -0,0 +1,70 @@ +CONFIG_EMBEDDED=y +CONFIG_ARCH_BCM=y +CONFIG_ARCH_BCM_5301X=y +CONFIG_ARCH_BCM_53573=y +CONFIG_SMP=y +CONFIG_NR_CPUS=2 +CONFIG_HIGHMEM=y +CONFIG_ARM_APPENDED_DTB=y +CONFIG_CMDLINE="ubi.mtd=ubi root=ubi0:rootfs rootfstype=ubifs" +CONFIG_CMDLINE_FORCE=y +# CONFIG_SUSPEND is not set +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_BRIDGE=y +CONFIG_BRIDGE_VLAN_FILTERING=y +CONFIG_NET_DSA=y +CONFIG_VLAN_8021Q=y +CONFIG_PCI=y +CONFIG_BCM47XX_NVRAM=y +CONFIG_BCM47XX_SPROM=y +CONFIG_MTD=y +CONFIG_MTD_BCM47XX_PARTS=y +CONFIG_MTD_PARSER_TRX=y +CONFIG_MTD_BCM47XXSFLASH=y +CONFIG_MTD_RAW_NAND=y +CONFIG_MTD_NAND_BRCMNAND=y +CONFIG_MTD_SPI_NOR=y +CONFIG_MTD_UBI=y +CONFIG_NETDEVICES=y +CONFIG_VXLAN=y +CONFIG_VETH=y +CONFIG_B53=y +CONFIG_BGMAC_BCMA=y +CONFIG_BROADCOM_PHY=y +CONFIG_MDIO_BUS_MUX_MMIOREG=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_NR_UARTS=2 +CONFIG_SERIAL_8250_RUNTIME_UARTS=2 +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SPI=y +CONFIG_THERMAL=y +CONFIG_WATCHDOG=y +CONFIG_BCM47XX_WDT=y +CONFIG_BCMA_HOST_SOC=y +CONFIG_BCMA_DRIVER_GMAC_CMN=y +CONFIG_BCMA_DRIVER_GPIO=y +CONFIG_USB=y +CONFIG_USB_LEDS_TRIGGER_USBPORT=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_XHCI_PLATFORM=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_OHCI_HCD=y +# CONFIG_USB_OHCI_HCD_PCI is not set +CONFIG_USB_HCD_BCMA=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y +CONFIG_PHY_BCM_NS_USB2=y +CONFIG_PHY_BCM_NS_USB3=y +CONFIG_UBIFS_FS=y +CONFIG_DEBUG_LL=y +CONFIG_DEBUG_UNCOMPRESS=y +CONFIG_EARLY_PRINTK=y diff --git a/board/broadcom/northstar/post-image.sh b/board/broadcom/northstar/post-image.sh new file mode 100755 index 000000000..b6150fc53 --- /dev/null +++ b/board/broadcom/northstar/post-image.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +# $1: images directory path +# $2: device dts filename +# $3: board id +build_lxl() { + local images="$1" + local device="$2" + local board="$3" + + $HOST_DIR/bin/lzma_alone e $images/zImage.$device $images/zImage.$device.lzma -d16 + rm -f $images/zImage.$device + $HOST_DIR/bin/otrx create $images/$device.trx -f $images/zImage.$device.lzma -a 0x20000 -f $images/rootfs.ubi + rm -f $images/zImage.$device.lzma + $HOST_DIR/bin/lxlfw create $images/$device.lxl -i $images/$device.trx -b "$board" +} + +# $1: images directory path +# $2: device dts filename +build_trx() { + local images="$1" + local device="$2" + + $HOST_DIR/bin/lzma_alone e $images/zImage.$device $images/zImage.$device.lzma -d16 + rm -f $images/zImage.$device + $HOST_DIR/bin/otrx create $images/$device.trx -f $images/zImage.$device.lzma -a 0x20000 -f $images/rootfs.ubi + rm -f $images/zImage.$device.lzma +} + +devices="$(sed -n 's/^BR2_LINUX_KERNEL_INTREE_DTS_NAME="\([a-z0-9 \-]*\)"$/\1/p' ${BR2_CONFIG})" +for device in $devices; do + case "$device" in + "bcm4708-smartrg-sr400ac") + build_trx "$1" "$device" + ;; + "bcm47094-luxul-xwr-3150-v1") + build_lxl "$1" "$device" "XWR-3150" + ;; + esac +done diff --git a/board/broadcom/northstar/readme.txt b/board/broadcom/northstar/readme.txt new file mode 100644 index 000000000..523bb439e --- /dev/null +++ b/board/broadcom/northstar/readme.txt @@ -0,0 +1,38 @@ +Broadcom Northstar + +Intro +===== + +This readme covers Northstar family of Broadcom SoCs. It includes: + - BCM4708 (2 x 800 MHz) + - BCM47081 (1 x 800 MHz) + - BCM4709 (2 x 1 GHz) + - BCM47094 (2 x 1 GHz) (AKA BCM4709C0) + +Northstar platform is used in some home routers by multiple vendors. There are +over 100 market devices based on it and they can all be supported with 1 kernel. + +There is no point in having separated board for each model. This board code is +meant for all supported Northstar devices. + +All Northstar devices come with CFE bootloader by default. It's basically closed +source as sources are available for some old releases only. There is no U-Boot (or +any other) drop-in replacement or second stage loader with Northstar support. + +CFE supports flashing firmware images over TFTP and HTTP (depending on vendor / +device setup). + +How to build it +=============== + + $ make broadcom_northstar_defconfig + + $ make + +How to flash over HTTP +====================== + +Power on device and press (and hold) CTRL+C in serial console terminal. When CFE +gets into prompt mode it'll automatically start built-in HTTP server. Navigate +to http://192.168.1.1/ (unless IP was changed - verify with "ifconfig") and +upload new firmware using a web browser. diff --git a/board/canaan/k210-soc/busybox-tiny.config b/board/canaan/k210-soc/busybox-tiny.config new file mode 100644 index 000000000..9db12b560 --- /dev/null +++ b/board/canaan/k210-soc/busybox-tiny.config @@ -0,0 +1,231 @@ +# +# Additional config changes for busybox-minimal.config +# to reduce the size of the busybox executable. +# + +# +# Settings +# +# CONFIG_INCLUDE_SUSv2 is not set +# CONFIG_LONG_OPTS is not set +# CONFIG_LFS is not set +# CONFIG_FEATURE_DEVPTS is not set +# CONFIG_FEATURE_SYSLOG_INFO is not set +# CONFIG_FEATURE_SYSLOG is not set + +# +# Library Tuning +# +# CONFIG_FEATURE_RTMINMAX is not set +# CONFIG_FEATURE_RTMINMAX_USE_LIBC_DEFINITIONS is not set +# CONFIG_FEATURE_BUFFERS_USE_MALLOC is not set +CONFIG_FEATURE_BUFFERS_GO_ON_STACK=y +# CONFIG_FEATURE_EDITING_VI is not set +# CONFIG_FEATURE_EDITING_SAVEHISTORY is not set +# CONFIG_FEATURE_REVERSE_SEARCH is not set +# CONFIG_FEATURE_EDITING_WINCH is not set +# CONFIG_FEATURE_HWIB is not set + +# +# Archival Utilities +# +# CONFIG_ZCAT is not set +# CONFIG_BZCAT is not set +# CONFIG_LZCAT is not set +# CONFIG_XZCAT is not set +# CONFIG_UNLZOP is not set +# CONFIG_LZOPCAT is not set + +# +# Coreutils +# +# CONFIG_CKSUM is not set +# CONFIG_DOS2UNIX is not set +# CONFIG_UNIX2DOS is not set +# CONFIG_DU is not set +# CONFIG_FACTOR is not set +# CONFIG_FOLD is not set +# CONFIG_HEAD is not set +# CONFIG_INSTALL is not set +# CONFIG_LINK is not set +# CONFIG_LOGNAME is not set +# CONFIG_MD5SUM is not set +# CONFIG_SHA1SUM is not set +# CONFIG_SHA256SUM is not set +# CONFIG_SHA512SUM is not set +# CONFIG_SHA3SUM is not set +# CONFIG_MKFIFO is not set +# CONFIG_NICE is not set +# CONFIG_NL is not set +# CONFIG_NOHUP is not set +# CONFIG_OD is not set +# CONFIG_PASTE is not set +# CONFIG_SHRED is not set +# CONFIG_SORT is not set +# CONFIG_TAIL is not set +# CONFIG_TEE is not set +# CONFIG_TIMEOUT is not set +# CONFIG_TR is not set +# CONFIG_UNIQ is not set +# CONFIG_UUDECODE is not set +# CONFIG_BASE32 is not set +# CONFIG_UUENCODE is not set +# CONFIG_WC is not set +# CONFIG_WHOAMI is not set +# CONFIG_WHO is not set +# CONFIG_W is not set +# CONFIG_USERS is not set +# CONFIG_YES is not set + +# +# Common options +# +# CONFIG_FEATURE_VERBOSE is not set + +# +# Debian Utilities +# +# CONFIG_RUN_PARTS is not set +# CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set +# CONFIG_FEATURE_RUN_PARTS_FANCY is not set +# CONFIG_START_STOP_DAEMON is not set +# CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set +# CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set +# CONFIG_WHICH is not set + +# +# klibc-utils +# +# CONFIG_NUKE is not set +# CONFIG_RESUME is not set +# CONFIG_RUN_INIT is not set + +# +# Editors +# +# CONFIG_SED is not set +CONFIG_VI=y +CONFIG_FEATURE_VI_MAX_LEN=4096 +CONFIG_FEATURE_VI_COLON=y +CONFIG_FEATURE_VI_YANKMARK=y +CONFIG_FEATURE_VI_USE_SIGNALS=y +CONFIG_FEATURE_VI_DOT_CMD=y +CONFIG_FEATURE_VI_READONLY=y +CONFIG_FEATURE_VI_SETOPTS=y +CONFIG_FEATURE_VI_SET=y +CONFIG_FEATURE_VI_WIN_RESIZE=y +CONFIG_FEATURE_VI_ASK_TERMINAL=y +CONFIG_FEATURE_VI_UNDO=y + +# +# Finding Utilities +# +CONFIG_GREP=y +# CONFIG_EGREP is not set +# CONFIG_FGREP is not set +# CONFIG_XARGS is not set + +# +# Init Utilities +# +# CONFIG_HALT is not set +# CONFIG_POWEROFF is not set +# CONFIG_FEATURE_WAIT_FOR_INIT is not set +# CONFIG_FEATURE_CALL_TELINIT is not set +# CONFIG_INIT is not set +# CONFIG_LINUXRC is not set + +# +# Login/Password Management Utilities +# +# CONFIG_FEATURE_SHADOWPASSWDS is not set +# CONFIG_USE_BB_CRYPT is not set +# CONFIG_USE_BB_CRYPT_SHA is not set +# CONFIG_ADDUSER is not set +# CONFIG_GETTY is not set +# CONFIG_LOGIN is not set +# CONFIG_PASSWD is not set + +# +# Linux System Utilities +# +# CONFIG_FALLOCATE is not set +# CONFIG_FREERAMDISK is not set +# CONFIG_FSFREEZE is not set +# CONFIG_GETOPT is not set +# CONFIG_XXD is not set +# CONFIG_MESG is not set +# CONFIG_MKE2FS is not set +# CONFIG_MKDOSFS is not set +# CONFIG_FEATURE_MOUNT_CIFS is not set +# CONFIG_FEATURE_MOUNT_FSTAB is not set +# CONFIG_FEATURE_MOUNT_OTHERTAB is not set +# CONFIG_NOLOGIN is not set +# CONFIG_LINUX32 is not set +# CONFIG_LINUX64 is not set +# CONFIG_SETPRIV is not set + +# +# Common options for mount/umount +# +# CONFIG_FEATURE_MOUNT_LOOP is not set +# CONFIG_FEATURE_MOUNT_LOOP_CREATE is not set + +# +# Miscellaneous Utilities +# +# CONFIG_BC is not set +# CONFIG_HEXEDIT is not set +# CONFIG_I2CTRANSFER is not set +# CONFIG_LSSCSI is not set +# CONFIG_MIM is not set +# CONFIG_PARTPROBE is not set +# CONFIG_SETFATTR is not set +# CONFIG_SETSERIAL is not set +# CONFIG_TS is not set + +# +# Networking Utilities +# +# CONFIG_HOSTNAME is not set +# CONFIG_DNSDOMAINNAME is not set +# CONFIG_IFCONFIG is not set +# CONFIG_IFUP is not set +# CONFIG_IFDOWN is not set +# CONFIG_IP is not set +# CONFIG_IPADDR is not set +# CONFIG_IPLINK is not set +# CONFIG_IPROUTE is not set +# CONFIG_NC is not set +# CONFIG_NETSTAT is not set +# CONFIG_PING is not set +# CONFIG_ROUTE is not set +# CONFIG_TC is not set +# CONFIG_TELNET is not set +# CONFIG_WGET is not set +# CONFIG_UDHCPC is not set + +# +# Process Utilities +# +# CONFIG_KILLALL is not set +# CONFIG_KILLALL5 is not set + +# +# Runit Utilities +# +# CONFIG_SVC is not set +# CONFIG_SVOK is not set + +# +# Shells +# +CONFIG_BASH_IS_HUSH=y +# CONFIG_BASH_IS_NONE is not set +# CONFIG_HUSH_SAVEHISTORY is not set + +# +# Options common to all shells +# +# CONFIG_FEATURE_SH_READ_FRAC is not set +# CONFIG_FEATURE_SH_EMBEDDED_SCRIPTS is not set diff --git a/board/canaan/k210-soc/genimage.cfg b/board/canaan/k210-soc/genimage.cfg new file mode 100644 index 000000000..da7d5dbaf --- /dev/null +++ b/board/canaan/k210-soc/genimage.cfg @@ -0,0 +1,30 @@ +image boot.vfat { + vfat { + file uImage { + image = "uImage" + } + + file k210.dtb { + image = "k210.dtb" + } + } + size = 4M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + image = "boot.vfat" + bootable = "true" + offset = 4M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext2" + size = 64M + } +} diff --git a/board/canaan/k210-soc/linux-sdcard.config b/board/canaan/k210-soc/linux-sdcard.config new file mode 100644 index 000000000..4b0ead78a --- /dev/null +++ b/board/canaan/k210-soc/linux-sdcard.config @@ -0,0 +1,4 @@ +CONFIG_BUILTIN_DTB=n +CONFIG_SOC_CANAAN_K210_DTB_BUILTIN=n +CONFIG_SOC_CANAAN_K210_DTB_SOURCE="" +CONFIG_CMDLINE="earlycon console=ttySIF0 root=/dev/mmcblk0p2 rootwait ro" diff --git a/board/canaan/k210-soc/post-build.sh b/board/canaan/k210-soc/post-build.sh new file mode 100755 index 000000000..5b6f56a2c --- /dev/null +++ b/board/canaan/k210-soc/post-build.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +MKIMAGE=${HOST_DIR}/bin/mkimage + +# Generate u-Boot kernel image +${MKIMAGE} -A riscv -O linux -T kernel -C none \ + -a 0x80000000 -e 0x80000000 \ + -n Linux -d ${BINARIES_DIR}/loader.bin ${BINARIES_DIR}/uImage + +# Link the kernel-built board dtb file to using the k210.dtb generic +# name for use by genimage.cfg +BOARDDTBKPATH="$(grep BR2_LINUX_KERNEL_INTREE_DTS_NAME ${BR2_CONFIG} | cut -d'=' -f2 | tr -d \")" + +BOARDDTB="$(basename ${BOARDDTBKPATH})" +if [ -z "${BOARDDTB}" ]; then + echo "Board DTB file not specified" + exit 1 +fi + +BOARDDTB="${BINARIES_DIR}/${BOARDDTB}.dtb" +if [ ! -f "${BOARDDTB}" ]; then + echo "Board DTB file not found in ${BINARIES_DIR}" + exit 1 +fi + +TARGETDTB=${BINARIES_DIR}/k210.dtb +rm -f ${TARGETDTB} +ln -s ${BOARDDTB} ${TARGETDTB} diff --git a/board/canaan/k210-soc/rootfs_overlay/init b/board/canaan/k210-soc/rootfs_overlay/init new file mode 120000 index 000000000..a0b71977c --- /dev/null +++ b/board/canaan/k210-soc/rootfs_overlay/init @@ -0,0 +1 @@ +/sbin/init \ No newline at end of file diff --git a/board/canaan/k210-soc/rootfs_overlay/sbin/init b/board/canaan/k210-soc/rootfs_overlay/sbin/init new file mode 100755 index 000000000..d4bf53d45 --- /dev/null +++ b/board/canaan/k210-soc/rootfs_overlay/sbin/init @@ -0,0 +1,41 @@ +#!/bin/sh + +# This script replaces the default busybox init process to avoid having that +# process staying alive and sleeping in the background, (uselessly) consuming +# precious memory. + +# Mount procfs and sysfs +/bin/mount -t proc proc /proc +/bin/mount -t sysfs sysfs /sys + +# When the kernel is directly booted, devtmpfs is not automatically mounted. +# Manually mount it if needed. +devmnt=$(mount | grep -c devtmpfs) +if [ ${devmnt} -eq 0 ]; then + /bin/mount -t devtmpfs devtmpfs /dev +fi + +# Use the /dev/console device node from devtmpfs if possible to not +# confuse glibc's ttyname_r(). +# This may fail (E.G. booted with console=), and errors from exec will +# terminate the shell, so use a subshell for the test +if (exec 0/dev/null; then + exec 0/dev/console + exec 2>/dev/console +fi + +# Clear memory to reduce page fragmentation +echo 3 > /proc/sys/vm/drop_caches + +# Print a fun logo :) +echo " __ _" +echo " / / (_) ____ _ _ __ __" +echo " / / | || _ \\ | | | |\\ \\/ /" +echo " / /___| || | | || |_| | > < " +echo " /_____/|_||_| |_| \\____|/_/\\_\\" +echo " 64-bits RISC-V Kendryte K210 NOMMU" +echo "" + +# Finally, let's start an interactive shell +exec /bin/sh diff --git a/board/canaan/k210-soc/uboot.config b/board/canaan/k210-soc/uboot.config new file mode 100644 index 000000000..159085f80 --- /dev/null +++ b/board/canaan/k210-soc/uboot.config @@ -0,0 +1 @@ +# CONFIG_WATCHDOG_AUTOSTART is not set diff --git a/board/canaan/kd233/linux-cpio.config b/board/canaan/kd233/linux-cpio.config new file mode 100644 index 000000000..d5b107124 --- /dev/null +++ b/board/canaan/kd233/linux-cpio.config @@ -0,0 +1,2 @@ +CONFIG_SOC_CANAAN_K210_DTB_BUILTIN=y +CONFIG_SOC_CANAAN_K210_DTB_SOURCE="canaan_kd233" diff --git a/board/canaan/kd233/readme.txt b/board/canaan/kd233/readme.txt new file mode 100644 index 000000000..47b78fa2d --- /dev/null +++ b/board/canaan/kd233/readme.txt @@ -0,0 +1,149 @@ +Canaan KD233 Board +================== + +The Canaan KD233 is a dual-core RISC-V 64-bits board based on the Canaan +Kendryte K210 SoC. + +Prerequisite +------------ + +In order to use the kflash utility to program this board, the user must have +access to the board USB serial device file. The simplest way to do this is to +add your user to the same group as this device file. Assume the device file is +/dev/ttyUSB0, first identify the device group name. In most cases, it is +either "dialout" or "uucp". Also verify that read-write access is enabled for +the group: + +``` +$ ls -l /dev/ttyUSB0 +crw-rw---- 1 root dialout 188, 0 May 26 13:48 /dev/ttyUSB0 +``` + +Then add yourself to that group (dialout in this example): + +``` +$ sudo usermod -a -G dialout $(whoami) +``` + +To enable the above, it is sometimes necessary to logout and login again. + +Buildroot Configuration +----------------------- + +Unlike other K210 based boards (Sipeed boards), U-Boot does not work on the +KD233 board due to the different wiring for the SD-Card mmc controller. As such, +the KD233 board can only be used by directly booting into Linux Kernel. + +buildroot can be configured to do so using the canaan_kd233_defconfig +configuration file. This configuration allows building a bootable kernel image +with a built-in initramfs root file system (the board SD card is not used). The +built kernel image can be flashed directly to the board ROM for direct booting. +No boot loader is required. + +Once booted, the on-board SD card can be used by Linux. + +The configuration file will also compile and install the kflash and +pyserial-miniterm host utilities to program bootable image files to the board +and open a serial terminal console. + +Direct Linux Kernel Boot +------------------------- + +Using the canaan_kd233_defconfig configuration, the bootable kernel binary image +is built as follows. + +``` +$ make canaan_kd233_defconfig +$ make +``` + +The bootable binary image is the output/images/loader.bin file. This image file +can be written to the board boot flash using the kflash utility. + +``` +$ output/host/bin/kflash -b 1500000 -p /dev/ttyUSB0 -t output/images/loader.bin +``` + +Once the kernel image file is fully programmed, a terminal console is open and +the board can be rebooted by pressing the reset button on the board (if it does +not reboot automatically). + +The output will be similar to the following. + +``` +[ 0.000000] Linux version 5.17.0 (foo@bar.com) (riscv64-buildroot-linux-uclibc-gcc.br_real (Buildroot 2022.02-560-g6a2b542a09-dirty) 10.3.0, GNU ld (GNU Binutils) 2.32) #2 SMP Thu Apr 21 16:40:44 JST 2022 +[ 0.000000] Machine model: Kendryte KD233 +[ 0.000000] earlycon: sifive0 at MMIO 0x0000000038000000 (options '115200n8') +[ 0.000000] printk: bootconsole [sifive0] enabled +[ 0.000000] Zone ranges: +[ 0.000000] DMA32 [mem 0x0000000080000000-0x00000000807fffff] +[ 0.000000] Normal empty +[ 0.000000] Movable zone start for each node +[ 0.000000] Early memory node ranges +[ 0.000000] node 0: [mem 0x0000000080000000-0x00000000807fffff] +[ 0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000807fffff] +[ 0.000000] riscv: ISA extensions acdfim +[ 0.000000] riscv: ELF capabilities acdfim +[ 0.000000] percpu: max_distance=0x16000 too large for vmalloc space 0x0 +[ 0.000000] percpu: Embedded 11 pages/cpu s15264 r0 d29792 u45056 +[ 0.000000] percpu: wasting 10 pages per chunk +[ 0.000000] Built 1 zonelists, mobility grouping off. Total pages: 2020 +[ 0.000000] Kernel command line: earlycon console=ttySIF0 +[ 0.000000] Dentry cache hash table entries: 1024 (order: 1, 8192 bytes, linear) +[ 0.000000] Inode-cache hash table entries: 512 (order: 0, 4096 bytes, linear) +[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off +[ 0.000000] Memory: 5984K/8192K available (964K kernel code, 137K rwdata, 205K rodata, 546K init, 66K bss, 2208K reserved, 0K cma-reserved) +[ 0.000000] rcu: Hierarchical RCU implementation. +[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies. +[ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 +[ 0.000000] riscv-intc: 64 local interrupts mapped +[ 0.000000] plic: interrupt-controller@c000000: mapped 65 interrupts with 2 handlers for 4 contexts. +[ 0.000000] k210-clk: clock-controller: CPU running at 390 MHz +[ 0.000000] clint: timer@2000000: timer running at 7800000 Hz +[ 0.000000] clocksource: clint_clocksource: mask: 0xffffffffffffffff max_cycles: 0x3990be68b, max_idle_ns: 881590404272 ns +[ 0.000001] sched_clock: 64 bits at 7MHz, resolution 128ns, wraps every 4398046511054ns +[ 0.008178] Calibrating delay loop (skipped), value calculated using timer frequency.. 15.60 BogoMIPS (lpj=31200) +[ 0.018251] pid_max: default: 4096 minimum: 301 +[ 0.022861] Mount-cache hash table entries: 512 (order: 0, 4096 bytes, linear) +[ 0.029971] Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes, linear) +[ 0.040234] rcu: Hierarchical SRCU implementation. +[ 0.045110] smp: Bringing up secondary CPUs ... +[ 0.050211] smp: Brought up 1 node, 2 CPUs +[ 0.054340] devtmpfs: initialized +[ 0.070401] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns +[ 0.079473] pinctrl core: initialized pinctrl subsystem +[ 0.117795] clocksource: Switched to clocksource clint_clocksource +[ 0.130245] workingset: timestamp_bits=62 max_order=11 bucket_order=0 +[ 0.176925] k210-sysctl 50440000.syscon: K210 system controller +[ 0.192947] k210-rst 50440000.syscon:reset-controller: K210 reset controller +[ 0.200870] cacheinfo: Unable to detect cache hierarchy for CPU 0 +[ 0.210947] i2c_dev: i2c /dev entries driver +[ 0.220535] k210-fpioa 502b0000.pinmux: K210 FPIOA pin controller +[ 0.232253] 38000000.serial: ttySIF0 at MMIO 0x38000000 (irq = 1, base_baud = 115200) is a SiFive UART v0 +[ 0.241202] printk: console [ttySIF0] enabled +[ 0.241202] printk: console [ttySIF0] enabled +[ 0.249818] printk: bootconsole [sifive0] disabled +[ 0.249818] printk: bootconsole [sifive0] disabled +[ 0.261664] panel@0 enforce active low on chipselect handle +[ 0.275950] Freeing unused kernel image (initmem) memory: 540K +[ 0.281098] This architecture does not have kernel memory protection. +[ 0.287520] Run /init as init process + __ _ + / / (_) ____ _ _ __ __ + / / | || _ \ | | | |\ \/ / + / /___| || | | || |_| | > < + /_____/|_||_| |_| \____|/_/\_\ + 64-bits RISC-V Kendryte K210 NOMMU + +/ # +``` + +To open a terminal console without re-flashing the board, the pyserial-miniterm +host tool can be used. + +``` +$ output/host/bin/pyserial-miniterm --raw --eol=LF /dev/ttyUSB0 115200 +``` + +The options "--raw" and "--eol=LF" are added here to avoid a double carriage +return each time a command is entered. diff --git a/board/chromebook/elm/kernel.args b/board/chromebook/elm/kernel.args new file mode 100644 index 000000000..848e179d6 --- /dev/null +++ b/board/chromebook/elm/kernel.args @@ -0,0 +1 @@ +root=PARTUUID=%U/PARTNROFF=1 rootwait rw noinitrd kern_guid=%U console=tty0 diff --git a/board/chromebook/elm/kernel.its b/board/chromebook/elm/kernel.its new file mode 100644 index 000000000..bc4b09eab --- /dev/null +++ b/board/chromebook/elm/kernel.its @@ -0,0 +1,38 @@ +/dts-v1/; + +/ { + description = "Chrome OS kernel image with FDT"; + #address-cells = <1>; + + images { + kernel-1 { + data = /incbin/("Image"); + type = "kernel_noload"; + arch = "arm64"; + os = "linux"; + compression = "none"; + load = <0>; + entry = <0>; + }; + + fdt-1 { + description = "mt8173-elm.dtb"; + data = /incbin/("mt8173-elm.dtb"); + type = "flat_dt"; + arch = "arm64"; + compression = "none"; + + hash-1 { + algo = "sha1"; + }; + }; + }; + + configurations { + default = "conf-1"; + conf-1 { + kernel = "kernel-1"; + fdt = "fdt-1"; + }; + }; +}; diff --git a/board/chromebook/elm/linux.config b/board/chromebook/elm/linux.config new file mode 100644 index 000000000..895a3b85c --- /dev/null +++ b/board/chromebook/elm/linux.config @@ -0,0 +1,477 @@ +CONFIG_SYSVIPC=y +CONFIG_NO_HZ_IDLE=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_PREEMPT=y +CONFIG_IRQ_TIME_ACCOUNTING=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_NUMA_BALANCING=y +CONFIG_MEMCG=y +CONFIG_BLK_CGROUP=y +CONFIG_CGROUP_PIDS=y +CONFIG_CGROUP_HUGETLB=y +CONFIG_CPUSETS=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_CGROUP_PERF=y +CONFIG_USER_NS=y +CONFIG_SCHED_AUTOGROUP=y +CONFIG_RELAY=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_KALLSYMS_ALL=y +# CONFIG_COMPAT_BRK is not set +CONFIG_SLAB=y +CONFIG_PROFILING=y +CONFIG_ARCH_MEDIATEK=y +CONFIG_ARM64_VA_BITS_48=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_SMT=y +CONFIG_NR_CPUS=4 +CONFIG_NUMA=y +CONFIG_PARAVIRT=y +CONFIG_CRASH_DUMP=y +CONFIG_COMPAT=y +CONFIG_RANDOMIZE_BASE=y +# CONFIG_EFI is not set +# CONFIG_SUSPEND is not set +CONFIG_PM=y +CONFIG_PM_DEBUG=y +CONFIG_PM_ADVANCED_DEBUG=y +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_ARM_CPUIDLE=y +CONFIG_ARM_PSCI_CPUIDLE=y +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y +CONFIG_CPUFREQ_DT=y +CONFIG_ARM_SCPI_CPUFREQ=y +CONFIG_ARM_MEDIATEK_CPUFREQ=y +CONFIG_ARM_SCPI_PROTOCOL=y +CONFIG_JUMP_LABEL=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +# CONFIG_BLK_DEBUG_FS is not set +# CONFIG_MQ_IOSCHED_KYBER is not set +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_KSM=y +CONFIG_MEMORY_FAILURE=y +CONFIG_TRANSPARENT_HUGEPAGE=y +CONFIG_CMA=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_UNIX_DIAG=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_INET_UDP_DIAG=y +# CONFIG_IPV6 is not set +CONFIG_CFG80211=y +# CONFIG_CFG80211_DEFAULT_PS is not set +CONFIG_MAC80211=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_FW_LOADER_USER_HELPER=y +CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y +CONFIG_BRCMSTB_GISB_ARB=y +CONFIG_VEXPRESS_CONFIG=y +CONFIG_MTD=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_CFI=y +CONFIG_MTD_CFI_ADV_OPTIONS=y +CONFIG_MTD_CFI_INTELEXT=y +CONFIG_MTD_CFI_AMDSTD=y +CONFIG_MTD_CFI_STAA=y +CONFIG_MTD_PHYSMAP=y +CONFIG_MTD_PHYSMAP_OF=y +CONFIG_MTD_DATAFLASH=y +CONFIG_MTD_SST25L=y +CONFIG_MTD_RAW_NAND=y +CONFIG_MTD_NAND_DENALI_DT=y +CONFIG_MTD_SPI_NOR=y +CONFIG_OF_OVERLAY=y +# CONFIG_BLK_DEV is not set +CONFIG_SRAM=y +CONFIG_EEPROM_AT24=m +CONFIG_EEPROM_AT25=m +CONFIG_RAID_ATTRS=m +CONFIG_SCSI=y +# CONFIG_SCSI_PROC_FS is not set +CONFIG_BLK_DEV_SD=y +CONFIG_SCSI_SAS_LIBSAS=y +CONFIG_SCSI_UFSHCD=y +CONFIG_SCSI_UFSHCD_PLATFORM=y +CONFIG_MD=y +CONFIG_BLK_DEV_MD=m +CONFIG_BLK_DEV_DM=m +CONFIG_DM_MIRROR=m +CONFIG_DM_ZERO=m +CONFIG_NETDEVICES=y +# CONFIG_ETHERNET is not set +CONFIG_PHYLIB=y +CONFIG_USB_CATC=m +CONFIG_USB_KAWETH=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_RTL8152=m +CONFIG_USB_LAN78XX=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_CDC_EEM=m +CONFIG_USB_NET_HUAWEI_CDC_NCM=m +CONFIG_USB_NET_CDC_MBIM=m +CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_SR9700=m +CONFIG_USB_NET_SR9800=m +CONFIG_USB_NET_SMSC75XX=m +CONFIG_USB_NET_SMSC95XX=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_MCS7830=m +CONFIG_USB_NET_RNDIS_HOST=m +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AN2720=y +CONFIG_USB_EPSON2888=y +CONFIG_USB_KC2190=y +CONFIG_USB_NET_CX82310_ETH=m +CONFIG_USB_NET_KALMIA=m +CONFIG_USB_NET_QMI_WWAN=m +CONFIG_USB_NET_INT51X1=m +CONFIG_USB_IPHETH=m +CONFIG_USB_SIERRA_NET=m +CONFIG_USB_VL600=m +CONFIG_USB_NET_CH9200=m +CONFIG_USB_NET_AQC111=m +# CONFIG_WLAN_VENDOR_ADMTEK is not set +# CONFIG_WLAN_VENDOR_ATH is not set +# CONFIG_WLAN_VENDOR_ATMEL is not set +# CONFIG_WLAN_VENDOR_BROADCOM is not set +# CONFIG_WLAN_VENDOR_CISCO is not set +# CONFIG_WLAN_VENDOR_INTEL is not set +# CONFIG_WLAN_VENDOR_INTERSIL is not set +CONFIG_MWIFIEX=m +CONFIG_MWIFIEX_SDIO=m +# CONFIG_WLAN_VENDOR_MEDIATEK is not set +# CONFIG_WLAN_VENDOR_RALINK is not set +# CONFIG_WLAN_VENDOR_REALTEK is not set +# CONFIG_WLAN_VENDOR_RSI is not set +# CONFIG_WLAN_VENDOR_ST is not set +# CONFIG_WLAN_VENDOR_TI is not set +# CONFIG_WLAN_VENDOR_ZYDAS is not set +# CONFIG_WLAN_VENDOR_QUANTENNA is not set +CONFIG_INPUT_EVDEV=y +CONFIG_KEYBOARD_ADC=m +CONFIG_KEYBOARD_GPIO=y +CONFIG_KEYBOARD_CROS_EC=y +CONFIG_MOUSE_ELAN_I2C=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_ATMEL_MXT=m +CONFIG_TOUCHSCREEN_ELAN=y +CONFIG_INPUT_MISC=y +# CONFIG_SERIO_SERPORT is not set +CONFIG_SERIO_AMBAKMI=y +CONFIG_LEGACY_PTY_COUNT=16 +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_8250_DW=y +CONFIG_SERIAL_8250_MT6577=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +CONFIG_SERIAL_XILINX_PS_UART=y +CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y +CONFIG_SERIAL_FSL_LPUART=y +CONFIG_SERIAL_FSL_LPUART_CONSOLE=y +CONFIG_SERIAL_FSL_LINFLEXUART=y +CONFIG_SERIAL_FSL_LINFLEXUART_CONSOLE=y +CONFIG_SERIAL_DEV_BUS=y +CONFIG_VIRTIO_CONSOLE=y +CONFIG_IPMI_HANDLER=m +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_SI=m +CONFIG_TCG_TPM=y +CONFIG_TCG_TIS_I2C_INFINEON=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MUX_PCA954x=y +CONFIG_I2C_DESIGNWARE_PLATFORM=y +CONFIG_I2C_GPIO=m +CONFIG_I2C_MT65XX=y +CONFIG_I2C_RK3X=y +CONFIG_I2C_SLAVE=y +CONFIG_SPI=y +CONFIG_SPI_CADENCE_QUADSPI=y +CONFIG_SPI_NXP_FLEXSPI=y +CONFIG_SPI_GPIO=y +CONFIG_SPI_MT65XX=y +CONFIG_SPI_PL022=y +CONFIG_SPI_ROCKCHIP=y +CONFIG_SPI_SPIDEV=y +CONFIG_PINCTRL_SINGLE=y +CONFIG_PINCTRL_MAX77620=y +CONFIG_GPIO_ALTERA=m +CONFIG_GPIO_DWAPB=y +CONFIG_GPIO_MB86S7X=y +CONFIG_GPIO_PL061=y +CONFIG_GPIO_XGENE=y +CONFIG_GPIO_MAX732X=y +CONFIG_GPIO_PCA953X=y +CONFIG_GPIO_PCA953X_IRQ=y +CONFIG_GPIO_BD9571MWV=m +CONFIG_GPIO_MAX77620=y +CONFIG_POWER_RESET_BRCMSTB=y +CONFIG_POWER_RESET_XGENE=y +CONFIG_POWER_RESET_SYSCON=y +CONFIG_SYSCON_REBOOT_MODE=y +CONFIG_BATTERY_SBS=m +CONFIG_BATTERY_BQ27XXX=y +CONFIG_SENSORS_ARM_SCPI=y +CONFIG_SENSORS_LM90=m +CONFIG_SENSORS_PWM_FAN=m +CONFIG_SENSORS_INA2XX=m +CONFIG_SENSORS_INA3221=m +CONFIG_THERMAL=y +CONFIG_CPU_THERMAL=y +CONFIG_DEVFREQ_THERMAL=y +CONFIG_THERMAL_EMULATION=y +CONFIG_WATCHDOG=y +CONFIG_MEDIATEK_WATCHDOG=y +CONFIG_MFD_BD9571MWV=y +CONFIG_MFD_AXP20X_I2C=y +CONFIG_MFD_HI6421_PMIC=y +CONFIG_MFD_MAX77620=y +CONFIG_MFD_MT6397=y +CONFIG_MFD_RK808=y +CONFIG_MFD_SEC_CORE=y +CONFIG_MFD_ROHM_BD718XX=y +CONFIG_REGULATOR_DEBUG=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_AXP20X=y +CONFIG_REGULATOR_BD718XX=y +CONFIG_REGULATOR_BD9571MWV=y +CONFIG_REGULATOR_DA9211=y +CONFIG_REGULATOR_FAN53555=y +CONFIG_REGULATOR_GPIO=y +CONFIG_REGULATOR_HI6421V530=y +CONFIG_REGULATOR_MAX77620=y +CONFIG_REGULATOR_MAX8973=y +CONFIG_REGULATOR_MT6397=y +CONFIG_REGULATOR_PFUZE100=y +CONFIG_REGULATOR_PWM=y +CONFIG_REGULATOR_RK808=y +CONFIG_REGULATOR_S2MPS11=y +CONFIG_REGULATOR_VCTRL=m +CONFIG_MEDIA_SUPPORT=y +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_ANALOG_TV_SUPPORT=y +CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y +CONFIG_MEDIA_SDR_SUPPORT=y +CONFIG_VIDEO_V4L2_SUBDEV_API=y +CONFIG_MEDIA_USB_SUPPORT=y +CONFIG_USB_VIDEO_CLASS=m +CONFIG_DRM=y +CONFIG_DRM_I2C_CH7006=m +CONFIG_DRM_I2C_SIL164=m +CONFIG_DRM_I2C_NXP_TDA998X=m +CONFIG_DRM_MALI_DISPLAY=m +CONFIG_DRM_PANEL_LVDS=m +CONFIG_DRM_PANEL_SIMPLE=y +CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA=m +CONFIG_DRM_DISPLAY_CONNECTOR=y +CONFIG_DRM_PARADE_PS8640=y +CONFIG_DRM_SII902X=m +CONFIG_DRM_THINE_THC63LVD1024=m +CONFIG_DRM_TI_SN65DSI86=m +CONFIG_DRM_ANALOGIX_ANX78XX=y +CONFIG_DRM_I2C_ADV7511=m +CONFIG_DRM_MEDIATEK=y +CONFIG_DRM_MEDIATEK_HDMI=y +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_SIMPLE=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_PWM=y +CONFIG_BACKLIGHT_LP855X=y +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_SOC=y +CONFIG_SND_SOC_MT8173=y +CONFIG_SND_SOC_MT8173_RT5650_RT5676=y +CONFIG_I2C_HID=m +CONFIG_USB_CONN_GPIO=y +CONFIG_USB=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_HCD_PLATFORM=y +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_PLATFORM=y +CONFIG_USB_STORAGE=y +CONFIG_USB_MTU3=y +CONFIG_USB_MUSB_HDRC=y +CONFIG_USB_DWC3=y +CONFIG_USB_DWC2=y +CONFIG_USB_CHIPIDEA=y +CONFIG_USB_CHIPIDEA_UDC=y +CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_ISP1760=y +CONFIG_USB_SERIAL=y +CONFIG_USB_SERIAL_CONSOLE=y +CONFIG_USB_SERIAL_PL2303=y +CONFIG_USB_HSIC_USB3503=y +CONFIG_NOP_USB_XCEIV=y +CONFIG_USB_ULPI=y +CONFIG_USB_GADGET=y +CONFIG_USB_SNP_UDC_PLAT=y +CONFIG_USB_BDC_UDC=y +CONFIG_USB_ETH=m +CONFIG_USB_ETH_EEM=y +CONFIG_TYPEC=m +CONFIG_TYPEC_TCPM=m +CONFIG_TYPEC_FUSB302=m +CONFIG_MMC=y +CONFIG_MMC_BLOCK_MINORS=32 +CONFIG_MMC_ARMMMCI=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_OF_ARASAN=y +CONFIG_MMC_SDHCI_CADENCE=y +CONFIG_MMC_SDHCI_F_SDH30=y +CONFIG_MMC_SPI=y +CONFIG_MMC_DW=y +CONFIG_MMC_DW_EXYNOS=y +CONFIG_MMC_DW_HI3798CV200=y +CONFIG_MMC_DW_K3=y +CONFIG_MMC_MTK=y +CONFIG_MMC_SDHCI_XENON=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_PWM=y +CONFIG_LEDS_SYSCON=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_CPU=y +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y +CONFIG_LEDS_TRIGGER_PANIC=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_DS1307=m +CONFIG_RTC_DRV_MAX77686=y +CONFIG_RTC_DRV_RK808=m +CONFIG_RTC_DRV_PCF85363=m +CONFIG_RTC_DRV_RX8581=m +CONFIG_RTC_DRV_S5M=y +CONFIG_RTC_DRV_DS3232=y +CONFIG_RTC_DRV_PCF2127=m +CONFIG_RTC_DRV_PL031=y +CONFIG_DMADEVICES=y +CONFIG_FSL_EDMA=y +CONFIG_MV_XOR_V2=y +CONFIG_PL330_DMA=y +CONFIG_MTK_CQDMA=y +CONFIG_QCOM_HIDMA_MGMT=y +CONFIG_QCOM_HIDMA=y +# CONFIG_VIRTIO_MENU is not set +CONFIG_CHROME_PLATFORMS=y +CONFIG_CROS_EC=y +CONFIG_CROS_EC_I2C=y +CONFIG_CROS_EC_SPI=y +CONFIG_COMMON_CLK_RK808=y +CONFIG_COMMON_CLK_SCPI=y +CONFIG_COMMON_CLK_CS2000_CP=y +CONFIG_COMMON_CLK_S2MPS11=y +CONFIG_COMMON_CLK_XGENE=y +CONFIG_COMMON_CLK_PWM=y +CONFIG_COMMON_CLK_VC5=y +CONFIG_COMMON_CLK_MT6797_MMSYS=y +CONFIG_COMMON_CLK_MT6797_IMGSYS=y +CONFIG_COMMON_CLK_MT6797_VDECSYS=y +CONFIG_COMMON_CLK_MT6797_VENCSYS=y +CONFIG_HWSPINLOCK=y +CONFIG_ARM_MHU=y +CONFIG_PLATFORM_MHU=y +CONFIG_ARM_SMMU=y +CONFIG_ARM_SMMU_V3=y +CONFIG_MTK_IOMMU=y +CONFIG_REMOTEPROC=y +CONFIG_MTK_CMDQ=y +CONFIG_MTK_PMIC_WRAP=y +CONFIG_EXTCON_USB_GPIO=y +CONFIG_IIO=y +CONFIG_MAX9611=m +CONFIG_SENSORS_ISL29018=m +CONFIG_MPL3115=m +CONFIG_PWM=y +CONFIG_PWM_MTK_DISP=y +CONFIG_PWM_MEDIATEK=y +CONFIG_PHY_XGENE=y +CONFIG_PHY_FSL_IMX8MQ_USB=y +CONFIG_PHY_MTK_TPHY=y +CONFIG_PHY_QCOM_USB_HS=y +CONFIG_PHY_SAMSUNG_USB2=y +CONFIG_EXT2_FS=y +CONFIG_EXT3_FS=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_FANOTIFY=y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y +CONFIG_QUOTA=y +CONFIG_AUTOFS4_FS=y +CONFIG_FUSE_FS=m +CONFIG_CUSE=m +CONFIG_OVERLAY_FS=y +CONFIG_OVERLAY_FS_INDEX=y +CONFIG_OVERLAY_FS_XINO_AUTO=y +CONFIG_OVERLAY_FS_METACOPY=y +CONFIG_VFAT_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_HUGETLBFS=y +CONFIG_CONFIGFS_FS=y +CONFIG_PSTORE=y +CONFIG_NFS_FS=m +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=m +CONFIG_NFS_SWAP=y +CONFIG_CIFS=m +CONFIG_CIFS_STATS2=y +CONFIG_CIFS_WEAK_PW_HASH=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ISO8859_1=y +CONFIG_SECURITY=y +CONFIG_CRYPTO_CRYPTD=y +CONFIG_CRYPTO_DH=m +CONFIG_CRYPTO_ECDH=m +CONFIG_CRYPTO_SEQIV=y +CONFIG_CRYPTO_ECHAINIV=y +CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_ECB=y +CONFIG_CRYPTO_XXHASH=m +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA3=m +CONFIG_CRYPTO_DES=m +CONFIG_CRYPTO_ANSI_CPRNG=y +CONFIG_CRYPTO_DEV_CCREE=m +CONFIG_PACKING=y +CONFIG_INDIRECT_PIO=y +CONFIG_CRC_CCITT=m +CONFIG_CRC_T10DIF=y +CONFIG_LIBCRC32C=m +CONFIG_DMA_CMA=y +CONFIG_CMA_SIZE_MBYTES=32 +CONFIG_IRQ_POLL=y +CONFIG_PRINTK_TIME=y +CONFIG_DEBUG_INFO=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_DEBUG_FS=y +CONFIG_DEBUG_KERNEL=y +# CONFIG_SCHED_DEBUG is not set +# CONFIG_DEBUG_PREEMPT is not set +CONFIG_STACKTRACE=y +# CONFIG_FTRACE is not set +# CONFIG_STRICT_DEVMEM is not set diff --git a/board/chromebook/elm/readme.txt b/board/chromebook/elm/readme.txt new file mode 100644 index 000000000..b63e7e8bc --- /dev/null +++ b/board/chromebook/elm/readme.txt @@ -0,0 +1,56 @@ +Mediatek MT8173 aka Chromebook Elm +================================== + +This file describes booting the Chromebook from an SD card containing +Buildroot kernel and rootfs, using the original bootloader. This is +the least invasive way to get Buildroot onto the devices and a good +starting point. + +The bootloader will only boot a kernel from a GPT partition marked +bootable with cgpt tool from vboot-utils package. +The kernel image must be signed using futility from the same package. +The signing part is done by sign.sh script in this directory. + +It does not really matter where rootfs is as long as the kernel is able +to find it, but this particular configuration assumes the kernel is on +partition 1 and rootfs is on partition 2 of the SD card. +Make sure to check kernel.args if you change this. + +Making the boot media +--------------------- +Start by configuring and building the images. + + make chromebook_elm_defconfig + make menuconfig # if necessary + make + +The important files are: + + uImage.kpart (kernel and device tree, signed) + rootfs.tar + bootsd.img (SD card image containing both kernel and rootfs) + +Write the image directly to some SD card. +WARNING: make sure there is nothing important on that card, +and double-check the device name! + + SD=/dev/mmcblk1 # may be /dev/sdX on some hosts + dd if=output/images/bootsd.img of=$SD + +Switching to developer mode and booting from SD +----------------------------------------------- +Power Chromebook down, then power it up while holding Esc+F3. +BEWARE: switching to developer mode deletes all user data. +Create backups if you need them. + +While in developer mode, Chromebook will boot into a white screen saying +"OS verification is off". + +Press Ctrl-D at this screen to boot Chromium OS from eMMC. +Press Ctrl-U at this screen to boot from SD (or USB) +Press Power to power it off. +Do NOT press Space unless you mean it. +This will switch it back to normal mode. + +The is no way to get rid of the white screen without re-flashing the bootloader. + diff --git a/board/chromebook/elm/sign.sh b/board/chromebook/elm/sign.sh new file mode 100755 index 000000000..af1f9d21c --- /dev/null +++ b/board/chromebook/elm/sign.sh @@ -0,0 +1,41 @@ +#!/bin/sh + +# This script creates u-boot FIT image containing the kernel and the DT, +# then signs it using futility from vboot-utils. +# The resulting file is called uImage.kpart. + +BOARD_DIR=$(dirname $0)/${BOARD_NAME} +mkimage=$HOST_DIR/bin/mkimage +futility=$HOST_DIR/bin/futility +devkeys=$HOST_DIR/share/vboot/devkeys + +run() { echo "$@"; "$@"; } +die() { echo "$@" >&2; exit 1; } +test -f $BINARIES_DIR/Image || \ + die "No kernel image found" +test -x $mkimage || \ + die "No mkimage found (host-uboot-tools has not been built?)" +test -x $futility || \ + die "No futility found (host-vboot-utils has not been built?)" + +# kernel.its references Image and mt8173-elm.dtb, and all three +# files must be in current directory for mkimage. +run cp $BOARD_DIR/kernel.its $BINARIES_DIR/kernel.its || exit 1 +echo "# entering $BINARIES_DIR for the next command" +(cd $BINARIES_DIR && run $mkimage -f kernel.its uImage.itb) || exit 1 + +# futility requires non-empty file to be supplied with --bootloader +# even if it does not make sense for the target platform. +echo > $BINARIES_DIR/dummy.txt + +run $futility vbutil_kernel \ + --keyblock $devkeys/kernel.keyblock \ + --signprivate $devkeys/kernel_data_key.vbprivk \ + --arch aarch64 \ + --version 1 \ + --config $BOARD_DIR/kernel.args \ + --vmlinuz $BINARIES_DIR/uImage.itb \ + --bootloader $BINARIES_DIR/dummy.txt \ + --pack $BINARIES_DIR/uImage.kpart || exit 1 + +rm -f $BINARIES_DIR/kernel.its $BINARIES_DIR/dummy.txt diff --git a/board/chromebook/mksd.sh b/board/chromebook/mksd.sh new file mode 100755 index 000000000..cba1578ec --- /dev/null +++ b/board/chromebook/mksd.sh @@ -0,0 +1,69 @@ +#!/bin/sh + +# This scripts makes a minimal bootable SD card image for the Chromebook. +# The resulting file is called bootsd.img. It should be written directly +# to the card: +# +# SD=/dev/mmcblk1 # check your device name! +# dd if=output/images/bootsd.img of=$SD +# +# The partitions are created just large enough to hold the kernel and +# the rootfs image. Most of the card will be empty, and the secondary +# GPT will not be in its proper location. + +# cgpt does not create protective MBR, and the kernel refuses to read +# GPT unless there's some kind of MBR in sector 0. So we need parted +# to write that single sector before doing anything with the GPT. +cgpt=$HOST_DIR/bin/cgpt +parted=$HOST_DIR/sbin/parted +kernel=$BINARIES_DIR/uImage.kpart +rootfs=$BINARIES_DIR/rootfs.ext2 + +run() { echo "$@"; "$@"; } +die() { echo "$@" >&2; exit 1; } +test -f $kernel || die "No kernel image found" +test -f $rootfs || die "No rootfs image found" +test -x $cgpt || die "cgpt not found (host-vboot-utils have not been built?)" + +# True file sizes in bytes +kernelsize=`stat -t $kernel | cut -d\ -f2` +rootfssize=`stat -t $rootfs | cut -d\ -f2` + +# The card is partitioned in sectors of 8KB. +# 4 sectors are reserved for MBR+GPT. Their actual size turns out +# to be 33 512-blocks which is just over 2 sectors, but we align +# it to a nice round number. +sec=8192 +kernelsec=$(((kernelsize+8191)>>13)) +rootfssec=$(((rootfssize+8191)>>13)) +headersec=4 + +# There is also a copy of MBR+GPT at the end of the image. +# It's going to be useless but both tools assume it's there. +imagesec=$((2*headersec+kernelsec+rootfssec)) +bootsd="$BINARIES_DIR/bootsd.img" +run dd bs=$sec count=$imagesec if=/dev/zero of=$bootsd + +# cgpt needs offsets and sizes in 512-blocks. +block=512 +kernelstart=$((headersec<<4)) +kernelblocks=$((kernelsec<<4)) +rootfsblocks=$((rootfssec<<4)) +rootfsstart=$((kernelstart+kernelblocks)) + +# This command initializes both GPT and MBR +run $parted -s $bootsd mklabel gpt + +# The kernel partition must be marked as bootable, that's why -S -T -P +run $cgpt add -i 1 -b $kernelstart -s $kernelblocks \ + -t kernel -l kernel \ + -S 1 -T 1 -P 10 $bootsd + +# It does not really matter where the rootfs partition is located as long +# as the kernel can find it. +# However, if anything is changed here, kernel.args must be updated as well. +run $cgpt add -i 2 -b $rootfsstart -s $rootfsblocks \ + -t data -l rootfs $bootsd + +run dd bs=$block if=$kernel of=$bootsd seek=$kernelstart +run dd bs=$block if=$rootfs of=$bootsd seek=$rootfsstart diff --git a/board/chromebook/snow/kernel.args b/board/chromebook/snow/kernel.args new file mode 100644 index 000000000..1220bf84a --- /dev/null +++ b/board/chromebook/snow/kernel.args @@ -0,0 +1 @@ +console=tty1 clk_ignore_unused root=/dev/mmcblk1p2 rootfstype=ext4 ro diff --git a/board/chromebook/snow/kernel.its b/board/chromebook/snow/kernel.its new file mode 100644 index 000000000..c8766ef9e --- /dev/null +++ b/board/chromebook/snow/kernel.its @@ -0,0 +1,37 @@ +/dts-v1/; + +/ { + description = "Buildroot kernel for Chromebook Snow"; + images { + kernel@1 { + description = "kernel"; + data = /incbin/("zImage"); + type = "kernel_noload"; + arch = "arm"; + os = "linux"; + compression = "none"; + load = <0>; + entry = <0>; + hash@1 { + algo = "sha1"; + }; + }; + fdt@1{ + description = "exynos5250-snow.dtb"; + data = /incbin/("exynos5250-snow.dtb"); + type = "flat_dt"; + arch = "arm"; + compression = "none"; + hash@1 { + algo = "sha1"; + }; + }; + }; + configurations { + default = "conf@1"; + conf@1{ + kernel = "kernel@1"; + fdt = "fdt@1"; + }; + }; +}; diff --git a/board/chromebook/snow/linux-4.15-dts-tpm.patch b/board/chromebook/snow/linux-4.15-dts-tpm.patch new file mode 100644 index 000000000..c71ff1b58 --- /dev/null +++ b/board/chromebook/snow/linux-4.15-dts-tpm.patch @@ -0,0 +1,27 @@ +Some versions of u-boot for this Chromebook check for tpm node +in the device tree and fail badly (reboot) if it is not found. + +While not exactly correct, it is much easier to patch the mainline +device tree to match u-boot expectations than to fix u-boot on +this device. + +See https://code.google.com/p/chromium/issues/detail?id=220169 +and https://lkml.org/lkml/2013/3/4/242 + +Signed-off-by: Alex Suykov + +--- a/arch/arm/boot/dts/exynos5250-snow-common.dtsi ++++ b/arch/arm/boot/dts/exynos5250-snow-common.dtsi +@@ -466,6 +466,11 @@ + status = "okay"; + samsung,i2c-sda-delay = <100>; + samsung,i2c-max-bus-freq = <66000>; ++ ++ tpm { ++ compatible = "infineon,slb9635tt"; ++ reg = <0x20>; ++ }; + }; + + &i2c_5 { + diff --git a/board/chromebook/snow/linux-4.15.fragment b/board/chromebook/snow/linux-4.15.fragment new file mode 100644 index 000000000..e2786dacb --- /dev/null +++ b/board/chromebook/snow/linux-4.15.fragment @@ -0,0 +1,2 @@ +CONFIG_MWIFIEX=m +CONFIG_MWIFIEX_SDIO=m diff --git a/board/chromebook/snow/readme.txt b/board/chromebook/snow/readme.txt new file mode 100644 index 000000000..1afd94982 --- /dev/null +++ b/board/chromebook/snow/readme.txt @@ -0,0 +1,137 @@ +Samsung XE303C12 aka Chromebook Snow +==================================== + +This file describes booting the Chromebook from an SD card containing +Buildroot kernel and rootfs, using the original bootloader. This is +the least invasive way to get Buildroot onto the devices and a good +starting point. + +The bootloader will only boot a kernel from a GPT partition marked +bootable with cgpt tool from vboot-utils package. +The kernel image must be signed using futility from the same package. +The signing part is done by sign.sh script in this directory. + +It does not really matter where rootfs is as long as the kernel is able +to find it, but this particular configuration assumes the kernel is on +partition 1 and rootfs is on partition 2 of the SD card. +Make sure to check kernel.args if you change this. + +Making the boot media +--------------------- +Start by configuring and building the images. + + make chromebook_snow_defconfig + make menuconfig # if necessary + make + +The important files are: + + uImage.kpart (kernel and device tree, signed) + rootfs.tar + bootsd.img (SD card image containing both kernel and rootfs) + +Write the image directly to some SD card. +WARNING: make sure there is nothing important on that card, +and double-check the device name! + + SD=/dev/mmcblk1 # may be /dev/sdX on some hosts + dd if=output/images/bootsd.img of=$SD + +Switching to developer mode and booting from SD +----------------------------------------------- +Power Chromebook down, then power it up while holding Esc+F3. +BEWARE: switching to developer mode deletes all user data. +Create backups if you need them. + +While in developer mode, Chromebook will boot into a white screen saying +"OS verification is off". + +Press Ctrl-D at this screen to boot Chromium OS from eMMC. +Press Ctrl-U at this screen to boot from SD (or USB) +Press Power to power it off. +Do NOT press Space unless you mean it. +This will switch it back to normal mode. + +The is no way to get rid of the white screen without re-flashing the bootloader. + +Troubleshooting +--------------- +Loud *BEEP* after pressing Ctrl-U means there's no valid partition to boot from. +Which in turn means either bad GPT or improperly signed kernel. + +Return to the OS verification screen without any sounds means the code managed +to reboot the board. May indicate properly signed but invalid image. + +Blank screen means the image is valid and properly signed but cannot boot +for some reason, like missing or incorrect DT. + +In case the board becomes unresponsive: + +* Press Esc+F3+Power. The board should reboot instantly. + Remove SD card to prevent it from attempting a system recovery. + +* Hold Power button for around 10s. The board should shut down into + its soft-off mode. Press Power button again or open the lid to turn in on. + +* If that does not work, disconnect the charger and push a hidden + button on the underside with a pin of some sort. The board should shut + down completely. Opening the lid and pressing Power button will not work. + To turn it back on, connect the charger. + +Partitioning SD card manually +----------------------------- +Check mksd.sh for partitioning commands. + +Use parted and cgpt on a real device, and calculate the partition +sizes properly. The kernel partition may be as small as 4MB, but +you will probably want the rootfs to occupy the whole remaining space. + +cgpt may be used to check current layout: + + output/host/bin/cgpt show $SD + +All sizes and all offsets are in 512-byte blocks. + +Writing kernel and rootfs to a partitioned SD card +-------------------------------------------------- +Write .kpart directly to the bootable partition: + + dd if=output/images/uImage.kpart of=${SD}1 + +Make a new filesystem on the rootfs partition, and unpack rootfs.tar there: + + mkfs.ext4 ${SD}2 + mount ${SD2} /mnt/ + tar -xvf output/images/rootfs.tar -C /mnt/ + umount /mnt/ + +This will require root permissions even if you can write to $SD. + +Kernel command line +------------------- +The command line is taken from board/chromebook/snow/kernel.args and stored +in the vboot header (which also holds the signature). + +The original bootloader prepends "cros_secure console= " to the supplied +command line. The only way to suppress this is to enable CMDLINE_FORCE +in the kernel config, disabling external command line completely. + +That's not necessary however. The mainline kernel ignores cros_secure, +and supplying console=tty1 in kernel.args undoes the effect of console= + +Booting with console= suppresses all kernel output. +As a side effect, it makes /dev/console unusable, which the init in use must +be able to handle. + +WiFi card +--------- +Run modprobe mwifiex_sdio to load the driver. +The name of the device should be mlan0. + +Further reading +--------------- +https://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices/samsung-arm-chromebook +http://linux-exynos.org/wiki/Samsung_Chromebook_XE303C12/Installing_Linux +http://archlinuxarm.org/platforms/armv7/samsung/samsung-chromebook +http://www.de7ec7ed.com/2013/05/application-processor-ap-uart-samsung.html +http://www.de7ec7ed.com/2013/05/embedded-controller-ec-uart-samsung.html diff --git a/board/chromebook/snow/sign.sh b/board/chromebook/snow/sign.sh new file mode 100755 index 000000000..e8f111ff0 --- /dev/null +++ b/board/chromebook/snow/sign.sh @@ -0,0 +1,41 @@ +#!/bin/sh + +# This script creates u-boot FIT image containing the kernel and the DT, +# then signs it using futility from vboot-utils. +# The resulting file is called uImage.kpart. + +BOARD_DIR=$(dirname $0) +mkimage=$HOST_DIR/bin/mkimage +futility=$HOST_DIR/bin/futility +devkeys=$HOST_DIR/share/vboot/devkeys + +run() { echo "$@"; "$@"; } +die() { echo "$@" >&2; exit 1; } +test -f $BINARIES_DIR/zImage || \ + die "No kernel image found" +test -x $mkimage || \ + die "No mkimage found (host-uboot-tools has not been built?)" +test -x $futility || \ + die "No futility found (host-vboot-utils has not been built?)" + +# kernel.its references zImage and exynos5250-snow.dtb, and all three +# files must be in current directory for mkimage. +run cp $BOARD_DIR/kernel.its $BINARIES_DIR/kernel.its || exit 1 +echo "# entering $BINARIES_DIR for the next command" +(cd $BINARIES_DIR && run $mkimage -f kernel.its uImage.itb) || exit 1 + +# futility requires non-empty file to be supplied with --bootloader +# even if it does not make sense for the target platform. +echo > $BINARIES_DIR/dummy.txt + +run $futility vbutil_kernel \ + --keyblock $devkeys/kernel.keyblock \ + --signprivate $devkeys/kernel_data_key.vbprivk \ + --arch arm \ + --version 1 \ + --config $BOARD_DIR/kernel.args \ + --vmlinuz $BINARIES_DIR/uImage.itb \ + --bootloader $BINARIES_DIR/dummy.txt \ + --pack $BINARIES_DIR/uImage.kpart || exit 1 + +rm -f $BINARIES_DIR/kernel.its $BINARIES_DIR/dummy.txt diff --git a/board/ci20/genimage.cfg b/board/ci20/genimage.cfg new file mode 100644 index 000000000..2d4a18a99 --- /dev/null +++ b/board/ci20/genimage.cfg @@ -0,0 +1,28 @@ +image sdcard.img { + hdimage { + } + + partition uboot-spl { + in-partition-table = "no" + image = "u-boot-spl.bin" + offset = 512 + } + + partition uboot { + in-partition-table = "no" + image = "u-boot.img" + offset = 14K + } + + partition uboot-env { + in-partition-table = "no" + image = "uboot-env.bin" + offset = 526K + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + offset = 2M + } +} diff --git a/board/ci20/patches/uboot/0001-mips-Remove-default-endiannes.patch b/board/ci20/patches/uboot/0001-mips-Remove-default-endiannes.patch new file mode 100644 index 000000000..a6191804f --- /dev/null +++ b/board/ci20/patches/uboot/0001-mips-Remove-default-endiannes.patch @@ -0,0 +1,66 @@ +From b3a1e97498e7987073775d49a703932c20f2df1d Mon Sep 17 00:00:00 2001 +From: Ezequiel Garcia +Date: Mon, 12 Nov 2018 14:04:46 -0300 +Subject: [PATCH] mips: Remove default endiannes + +Currently, trying to build ci20_mmc fails on little-endian +toolchains. The problem seems to be that some targets don't +have CONFIG_SYS_LITTLE_ENDIAN properly set, and therefore +the default -EB switch is selected. + +Let's get rid of the default switch entirely, and fix this problem. +While this may be a hack, it is a quick solution until +U-Boot gets CI20 proper support. + +make ARCH=mips CROSS_COMPILE=mips-linux-gnu- ci20_mmc +Configuring for ci20_mmc - Board: ci20, Options: SPL_MMC_SUPPORT,ENV_IS_IN_MMC +make +make[1]: Entering directory '/home/zeta/repos/u-boot-ci20' +Generating include/autoconf.mk +Generating include/autoconf.mk.dep +mips-linux-gnu-gcc: error: may not use both -EB and -EL +mips-linux-gnu-gcc: error: may not use both -EB and -EL +Generating include/spl-autoconf.mk +mips-linux-gnu-gcc: error: may not use both -EB and -EL +Generating include/tpl-autoconf.mk +mips-linux-gnu-gcc: error: may not use both -EB and -EL +mips-linux-gnu-gcc -DDO_DEPS_ONLY \ + -g -Os -ffunction-sections -fdata-sections -D__KERNEL__ -I/home/zeta/repos/u-boot-ci20/include -fno-builtin -ffreestanding -nostdinc -isystem /home/zeta/repos/buildroot/mips/output/host/opt/ext-toolchain/bin/../lib/gcc/mips-linux-gnu/5.3.0/include -pipe -DCONFIG_MIPS -D__MIPS__ -G 0 -EB -msoft-float -fpic -mabicalls -march=mips32 -mabi=32 -DCONFIG_32BIT -mno-branch-likely -Wall -Wstrict-prototypes \ + -o lib/asm-offsets.s lib/asm-offsets.c -c -S +if [ -f arch/mips/cpu/xburst/jz4780/asm-offsets.c ];then \ + mips-linux-gnu-gcc -DDO_DEPS_ONLY \ + -g -Os -ffunction-sections -fdata-sections -D__KERNEL__ -I/home/zeta/repos/u-boot-ci20/include -fno-builtin -ffreestanding -nostdinc -isystem /home/zeta/repos/buildroot/mips/output/host/opt/ext-toolchain/bin/../lib/gcc/mips-linux-gnu/5.3.0/include -pipe -DCONFIG_MIPS -D__MIPS__ -G 0 -EB -msoft-float -fpic -mabicalls -march=mips32 -mabi=32 -DCONFIG_32BIT -mno-branch-likely -Wall -Wstrict-prototypes \ + -o arch/mips/cpu/xburst/jz4780/asm-offsets.s arch/mips/cpu/xburst/jz4780/asm-offsets.c -c -S; \ +else \ + touch arch/mips/cpu/xburst/jz4780/asm-offsets.s; \ +fi +mips-linux-gnu-gcc: error: may not use both -EB and -EL +make[1]: *** [Makefile:747: lib/asm-offsets.s] Error 1 +make[1]: *** Waiting for unfinished jobs.... +make[1]: Leaving directory '/home/zeta/repos/u-boot-ci20' +make: *** [.boards.depend:463: ci20_mmc] Error 2 + +Signed-off-by: Ezequiel Garcia +--- +https://github.com/MIPS/CI20_u-boot/pull/19 + + arch/mips/config.mk | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/arch/mips/config.mk b/arch/mips/config.mk +index c89279025507..43560abbc0e1 100644 +--- a/arch/mips/config.mk ++++ b/arch/mips/config.mk +@@ -20,9 +20,6 @@ ifdef CONFIG_SYS_BIG_ENDIAN + ENDIANNESS := -EB + endif + +-# Default to EB if no endianess is configured +-ENDIANNESS ?= -EB +- + PLATFORM_CPPFLAGS += -DCONFIG_MIPS -D__MIPS__ + + # +-- +2.19.1 + diff --git a/board/ci20/readme.txt b/board/ci20/readme.txt new file mode 100644 index 000000000..71d507069 --- /dev/null +++ b/board/ci20/readme.txt @@ -0,0 +1,46 @@ +********************* +* MIPS Creator CI20 * +********************* + +Introduction +============ + +The 'ci20_defconfig' will create a root filesystem and a kernel image +under the 'output/images/' directory. This document will try to explain how +to use them in order to run Buildroot in the MIPS Creator CI20 board. + +How to build it +=============== + +Configure Buildroot +------------------- + + $ make ci20_defconfig + +Build the rootfs +---------------- + +Note: you will need to have access to the network, since Buildroot will +download the packages' sources. + +You may now build your rootfs with: + + $ make + +(This may take a while, consider getting yourself a coffee ;-) ) + +How to write the SD card +======================== + +Once the build process is finished you will have an image called +"sdcard.img" in the output/images/ directory. + +Make sure the SD card is not mounted then copy the bootable "sdcard.img" onto +it with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + +Insert the SDcard into your ci20, and power it up. Your new system +should come up now and start a console on the UART HEADER. + +see: https://elinux.org/CI20_Hardware#Dedicated_UART_header diff --git a/board/ci20/uboot-env.txt b/board/ci20/uboot-env.txt new file mode 100644 index 000000000..3093496cc --- /dev/null +++ b/board/ci20/uboot-env.txt @@ -0,0 +1,10 @@ +baudrate=115200 +board_mfr=NP +bootargs=console=ttyS4,115200 console=tty0 mem=256M@0x0 mem=768M@0x30000000 rootwait root=/dev/mmcblk0p1 devtmpfs.mount=1 ip=dhcp +bootcmd=run ethargs; ext4load mmc 0:1 0x88000000 /boot/uImage; bootm 0x88000000 +bootdelay=1 +ethargs=env set bootargs ${bootargs} +loads_echo=1 +stderr=eserial0,eserial4 +stdin=eserial0,eserial4 +stdout=eserial0,eserial4 diff --git a/board/cubietech/cubieboard2/boot.cmd b/board/cubietech/cubieboard2/boot.cmd new file mode 100644 index 000000000..a9ae0e24e --- /dev/null +++ b/board/cubietech/cubieboard2/boot.cmd @@ -0,0 +1,5 @@ +setenv fdt_high ffffffff +setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait +fatload mmc 0 $kernel_addr_r zImage +fatload mmc 0 $fdt_addr_r sun7i-a20-cubieboard2.dtb +bootz $kernel_addr_r - $fdt_addr_r diff --git a/board/cubietech/cubieboard2/genimage.cfg b/board/cubietech/cubieboard2/genimage.cfg new file mode 100644 index 000000000..0ba74d6be --- /dev/null +++ b/board/cubietech/cubieboard2/genimage.cfg @@ -0,0 +1,38 @@ +# Minimal SD card image for the Cubieboard2 +# Based in the Orange Pi genimage.cfg + +image boot.vfat { + vfat { + files = { + "zImage", + "sun7i-a20-cubieboard2.dtb", + "boot.scr" + } + } + + size = 10M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot-sunxi-with-spl.bin" + offset = 8K + size = 1016K # 1MB - 8KB + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/board/cubietech/cubieboard2/post-image.sh b/board/cubietech/cubieboard2/post-image.sh new file mode 100755 index 000000000..9cca1b178 --- /dev/null +++ b/board/cubietech/cubieboard2/post-image.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" +GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg" +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + +rm -rf "${GENIMAGE_TMP}" + +genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" + +exit $? diff --git a/board/embest/riotboard/genimage.cfg b/board/embest/riotboard/genimage.cfg new file mode 100644 index 000000000..d2e851a78 --- /dev/null +++ b/board/embest/riotboard/genimage.cfg @@ -0,0 +1,17 @@ +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot.imx" + offset = 1K + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext2" + offset = 1M + size = 60M + } +} diff --git a/board/embest/riotboard/readme.txt b/board/embest/riotboard/readme.txt new file mode 100644 index 000000000..4ba836fa5 --- /dev/null +++ b/board/embest/riotboard/readme.txt @@ -0,0 +1,38 @@ +Buildroot for Embest RIoTboard +============================== + +This is a small development board, based on Freescale IMX6 Solo SoC +(single core ARM Cortex-A9). + +More details about the board can be found at: + + http://www.embest-tech.com/riotboard + +1. Compiling buildroot +---------------------- + +$ make riotboard_defconfig +$ make + +2. Installing buildroot +----------------------- + +Prepare an SD-card and plug it into your card reader. Always double +check the block device before writing to it, as writing to the wrong +block device can cause irrecoverable data loss. Now you can write the +image to your SD-card: + +sudo dd if=output/images/sdcard.img of=/dev/ bs=1M + +3. Running buildroot +-------------------- + +Position the board so you can read the label "RIoTboard" on the right +side of SW1 DIP switches. Configure the SW1 swiches like this: + +1 0 1 0 0 1 0 1 +ON OFF ON OFF OFF ON OFF ON + +Now plug your prepared SD-card in slot J6. Connect a serial console +(115200, 8, N, 1) to header J18. Connect a 5V/1A power supply to the +board and enjoy. diff --git a/board/embest/riotboard/rootfs_overlay/boot/extlinux/extlinux.conf b/board/embest/riotboard/rootfs_overlay/boot/extlinux/extlinux.conf new file mode 100644 index 000000000..23e48a0da --- /dev/null +++ b/board/embest/riotboard/rootfs_overlay/boot/extlinux/extlinux.conf @@ -0,0 +1,6 @@ +default buildroot + +label buildroot +kernel /boot/zImage +devicetree /boot/imx6dl-riotboard.dtb +append console=ttymxc1,115200 root=/dev/mmcblk1p1 rw diff --git a/board/engicam/geam6ul/genimage.cfg b/board/engicam/geam6ul/genimage.cfg new file mode 100644 index 000000000..3d290b2ea --- /dev/null +++ b/board/engicam/geam6ul/genimage.cfg @@ -0,0 +1,39 @@ +image boot.vfat { + vfat { + files = { + "uImage", + "imx6ul-geam-kit.dtb" + } + } + + size = 64M +} + +image sdcard.img { + hdimage { + } + + partition SPL { + in-partition-table = "no" + image = "SPL" + offset = 1K + } + + partition u-boot-dtb { + in-partition-table = "no" + image = "u-boot-dtb.img" + offset = 69K + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + offset = 8M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext2" + } +} diff --git a/board/engicam/geam6ul/readme.txt b/board/engicam/geam6ul/readme.txt new file mode 100644 index 000000000..ace993a66 --- /dev/null +++ b/board/engicam/geam6ul/readme.txt @@ -0,0 +1,66 @@ +******************************************** +Buildroot for Engicam GEAM6UL SOM platforms: +******************************************** + +This file documents the Buildroot support for all Engicam GEAM6UL +SOM platform boards. + +GEAM6UL SOM Starter kits: +https://www.engicam.com/vis-prod/101115 + +This configuration uses U-Boot mainline and kernel mainline. + +Build +===== + +First, configure Buildroot for the Engicam GEAM6UL SOM: + +- for GEAM6UL SOM: + + make engicam_imx6ul_geam_defconfig + +Build all components: + + make + +You will find the following files in output/images/: + - imx6ul-geam-kit.dtb + - rootfs.ext4 + - rootfs.tar + - sdcard.img + - SPL + - u-boot-dtb.img + - uImage + +Create a bootable SD card +========================= + +To determine the device associated to the SD card have a look in the +/proc/partitions file: + + cat /proc/partitions + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped on a SD card. Launch the following +command as root: + + dd if=output/images/sdcard.img of=/dev/ + sync + +*** WARNING! This will destroy all the card content. Use with care! *** + +For details about the medium image layout, see the definition in +board/engicam/geam6ul/genimage.cfg + +Boot the GEAM6UL boards with SD boot: +==================================== + +To boot your newly created system: +- insert the SD card in the SD slot of the board; +- connect 3-wire RS232 serial port J28 on board, and connect with other + serial end or USB cable(if serial-to-usb converter used) using + a terminal emulator at 115200 bps, 8n1; +- close JM3 for sd boot. +- power on the board. + +Enjoy! diff --git a/board/engicam/icorem6/genimage.cfg b/board/engicam/icorem6/genimage.cfg new file mode 100644 index 000000000..985d9e5de --- /dev/null +++ b/board/engicam/icorem6/genimage.cfg @@ -0,0 +1,42 @@ +image boot.vfat { + vfat { + files = { + "uImage", + "imx6dl-icore.dtb", + "imx6q-icore.dtb", + "imx6q-icore-ofcap10.dtb", + "imx6q-icore-ofcap12.dtb" + } + } + + size = 64M +} + +image sdcard.img { + hdimage { + } + + partition SPL { + in-partition-table = "no" + image = "SPL" + offset = 1K + } + + partition u-boot-dtb { + in-partition-table = "no" + image = "u-boot-dtb.img" + offset = 69K + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + offset = 8M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext2" + } +} diff --git a/board/engicam/icorem6/linux_qt5.fragment b/board/engicam/icorem6/linux_qt5.fragment new file mode 100644 index 000000000..5c0505e51 --- /dev/null +++ b/board/engicam/icorem6/linux_qt5.fragment @@ -0,0 +1,4 @@ +# Currently kernel mainline exhibits issues when running cpufreq as ondemand +# governor on mx6. +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y diff --git a/board/engicam/icorem6/readme.txt b/board/engicam/icorem6/readme.txt new file mode 100644 index 000000000..bd78c5a55 --- /dev/null +++ b/board/engicam/icorem6/readme.txt @@ -0,0 +1,93 @@ +********************************************* +Buildroot for Engicam i.CoreM6 SOM platforms: +********************************************* + +This file documents the Buildroot support for Engicam i.CoreM6 +platform boards. + +i.CoreM6 Quad/Dual/DualLite/Solo SOM Starter kits: +https://www.engicam.com/vis-prod/101120 +i.CoreM6 Quad/Dual/DualLite/Solo Open Frame 10.1 C.TOUCH kits: +https://www.engicam.com/vis-prod/101133 + +This configuration uses U-Boot mainline and kernel mainline. + +Build +===== + +First, configure Buildroot for the Engicam i.CoreM6: + + make engicam_imx6qdl_icore_defconfig + +Build all components: + + make + +You will find the following files in output/images/: + - imx6q-icore.dtb (for i.CoreM6 Quad/Dual) + - imx6dl-icore.dtb (for i.CoreM6 DualLite/Solo) + - imx6q-icore-ofcap10.dtb (for i.CoreM6 Quad/Dual ofcap 10) + - imx6q-icore-ofcap12.dtb (for i.CoreM6 Quad/Dual ofcap 12) + - rootfs.ext4 + - rootfs.tar + - sdcard.img + - SPL + - u-boot-dtb.img + - uImage + +Create a bootable SD card +========================= + +To determine the device associated to the SD card have a look in the +/proc/partitions file: + + cat /proc/partitions + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped on a SD card. Launch the following +command as root: + + dd if=output/images/sdcard.img of=/dev/ + sync + +*** WARNING! This will destroy all the card content. Use with care! *** + +For details about the medium image layout, see the definition in +board/engicam/icorem6/genimage.cfg + +Boot the i.CoreM6 boards with SD boot: +===================================== + +To boot your newly created system: +- insert the SD card in the SD slot of the board; +- connect 3-wire RS232 serial port J28 on board, and connect with other + serial end or USB cable(if serial-to-usb converter used) using + a terminal emulator at 115200 bps, 8n1; +- close JM3 for sd boot. +- power on the board. + +Testing graphics on i.CoreM6: +============================ + +Build with support for Etnaviv, Qt5 and demo applications: + + make engicam_imx6qdl_icore_qt5_defconfig + make + +Running kmscube +# kmscube -D /dev/dri/card1 + +Running glmark2-es2-drm +# glmark2-es2-drm + +Running Qt5 Cinematic Demo: +- for i.CoreM6 Starter Kit +# export QT_QPA_EGLFS_KMS_CONFIG=/root/imx6qdl-icore.json +- for i.CoreM6 ofcap10 +# export QT_QPA_EGLFS_KMS_CONFIG=/root/imx6qdl-icore-ofcap10.json +- for i.CoreM6 ofcap12 +# export QT_QPA_EGLFS_KMS_CONFIG=/root/imx6qdl-icore-ofcap12.json + +# CinematicExperience-demo + +Enjoy! diff --git a/board/engicam/icorem6/rootfs_overlay/root/imx6qdl-icore-ofcap10.json b/board/engicam/icorem6/rootfs_overlay/root/imx6qdl-icore-ofcap10.json new file mode 100644 index 000000000..3bfe4a236 --- /dev/null +++ b/board/engicam/icorem6/rootfs_overlay/root/imx6qdl-icore-ofcap10.json @@ -0,0 +1,11 @@ +{ + "device": "/dev/dri/card1", + "hwcursor": false, + "pbuffers": true, + "outputs": [ + { + "name": "LVDS1", + "mode": "1280x800" + } + ] +} diff --git a/board/engicam/icorem6/rootfs_overlay/root/imx6qdl-icore-ofcap12.json b/board/engicam/icorem6/rootfs_overlay/root/imx6qdl-icore-ofcap12.json new file mode 100644 index 000000000..ea5ce6f97 --- /dev/null +++ b/board/engicam/icorem6/rootfs_overlay/root/imx6qdl-icore-ofcap12.json @@ -0,0 +1,11 @@ +{ + "device": "/dev/dri/card1", + "hwcursor": false, + "pbuffers": true, + "outputs": [ + { + "name": "LVDS1", + "mode": "1280x480" + } + ] +} diff --git a/board/engicam/icorem6/rootfs_overlay/root/imx6qdl-icore.json b/board/engicam/icorem6/rootfs_overlay/root/imx6qdl-icore.json new file mode 100644 index 000000000..b4fa359b6 --- /dev/null +++ b/board/engicam/icorem6/rootfs_overlay/root/imx6qdl-icore.json @@ -0,0 +1,11 @@ +{ + "device": "/dev/dri/card1", + "hwcursor": false, + "pbuffers": true, + "outputs": [ + { + "name": "LVDS1", + "mode": "800x480" + } + ] +} diff --git a/board/engicam/icorem6_rqs/genimage.cfg b/board/engicam/icorem6_rqs/genimage.cfg new file mode 100644 index 000000000..d6936f810 --- /dev/null +++ b/board/engicam/icorem6_rqs/genimage.cfg @@ -0,0 +1,40 @@ +image boot.vfat { + vfat { + files = { + "uImage", + "imx6dl-icore-rqs.dtb", + "imx6q-icore-rqs.dtb" + } + } + + size = 64M +} + +image sdcard.img { + hdimage { + } + + partition SPL { + in-partition-table = "no" + image = "SPL" + offset = 1K + } + + partition u-boot-dtb { + in-partition-table = "no" + image = "u-boot-dtb.img" + offset = 69K + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + offset = 8M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext2" + } +} diff --git a/board/engicam/icorem6_rqs/readme.txt b/board/engicam/icorem6_rqs/readme.txt new file mode 100644 index 000000000..a0bf6f508 --- /dev/null +++ b/board/engicam/icorem6_rqs/readme.txt @@ -0,0 +1,69 @@ +************************************************* +Buildroot for Engicam i.CoreM6 RQS SOM platforms: +************************************************* + +This file documents the Buildroot support for Engicam i.CoreM6 RQS +SOM platform boards. + +i.CoreM6 Quad/Dual/DualLite/Solo RQS SOM Starter kits: +https://www.engicam.com/vis-prod/101124 + +This configuration uses U-Boot mainline and kernel mainline. + +Build +===== + +First, configure Buildroot for the Engicam i.CoreM6 RQS: + +- for i.CoreM6 RQS Quad/Dual/DualLite/Solo: + + make engicam_imx6qdl_icore_rqs_defconfig + +Build all components: + + make + +You will find the following files in output/images/: +- for i.CoreM6 Quad/Dual RQS: + - imx6q-icore-rqs.dtb +- for i.CoreM6 DualLite/Solo RQS: + - imx6dl-icore-rqs.dtb + - rootfs.ext4 + - rootfs.tar + - sdcard.img + - SPL + - u-boot-dtb.img + - uImage + +Create a bootable SD card +========================= + +To determine the device associated to the SD card have a look in the +/proc/partitions file: + + cat /proc/partitions + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped on a SD card. Launch the following +command as root: + + dd if=output/images/sdcard.img of=/dev/ + sync + +*** WARNING! This will destroy all the card content. Use with care! *** + +For details about the medium image layout, see the definition in +board/engicam/icorem6_rqs/genimage.cfg + +Boot the i.CoreM6 RQS boards with SD boot: +========================================= + +To boot your newly created system: +- insert the SD card in the SD slot of the board; +- connect 3-wire RS232 serial port J7 on board, and connect with other + serial end or USB cable(if serial-to-usb converter used) using + a terminal emulator at 115200 bps, 8n1; +- close JM2 for sd boot. +- power on the board. + +Enjoy! diff --git a/board/engicam/isiot/genimage.cfg b/board/engicam/isiot/genimage.cfg new file mode 100644 index 000000000..4e65a7011 --- /dev/null +++ b/board/engicam/isiot/genimage.cfg @@ -0,0 +1,39 @@ +image boot.vfat { + vfat { + files = { + "uImage", + "imx6ul-isiot-emmc.dtb" + } + } + + size = 64M +} + +image sdcard.img { + hdimage { + } + + partition SPL { + in-partition-table = "no" + image = "SPL" + offset = 1K + } + + partition u-boot-dtb { + in-partition-table = "no" + image = "u-boot-dtb.img" + offset = 69K + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + offset = 8M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext2" + } +} diff --git a/board/engicam/isiot/readme.txt b/board/engicam/isiot/readme.txt new file mode 100644 index 000000000..5394007ca --- /dev/null +++ b/board/engicam/isiot/readme.txt @@ -0,0 +1,66 @@ +******************************************** +Buildroot for Engicam Is.IoT SOM platforms: +******************************************** + +This file documents the Buildroot support for all Engicam Is.IoT MX6UL +SOM platform boards. + +Is.IoT MX6UL SOM Starter kits: +https://www.engicam.com/vis-prod/101122 + +This configuration uses U-Boot mainline and kernel mainline. + +Build +===== + +First, configure Buildroot for the Engicam Is.IoT MX6UL SOM: + +- for Is.IoT MX6UL SOM: + + make engicam_imx6ul_isiot_defconfig + +Build all components: + + make + +You will find the following files in output/images/: + - imx6ul-isiot-emmc.dtb + - rootfs.ext4 + - rootfs.tar + - sdcard.img + - SPL + - u-boot-dtb.img + - uImage + +Create a bootable SD card +========================= + +To determine the device associated to the SD card have a look in the +/proc/partitions file: + + cat /proc/partitions + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped on a SD card. Launch the following +command as root: + + dd if=output/images/sdcard.img of=/dev/ + sync + +*** WARNING! This will destroy all the card content. Use with care! *** + +For details about the medium image layout, see the definition in +board/engicam/isiot/genimage.cfg + +Boot the Is.IoT MX6UL boards with SD boot: +========================================= + +To boot your newly created system: +- insert the SD card in the SD slot of the board; +- connect 3-wire RS232 serial port J28 on board, and connect with other + serial end or USB cable(if serial-to-usb converter used) using + a terminal emulator at 115200 bps, 8n1; +- close JM3 for sd boot. +- power on the board. + +Enjoy! diff --git a/board/firefly/roc-rk3399-pc/extlinux.conf b/board/firefly/roc-rk3399-pc/extlinux.conf new file mode 100644 index 000000000..50a358fad --- /dev/null +++ b/board/firefly/roc-rk3399-pc/extlinux.conf @@ -0,0 +1,4 @@ +label RK3399RocPC linux + kernel /boot/Image + devicetree /boot/rk3399-roc-pc.dtb + append earlycon=uart8250,mmio32,0xff1a0000 root=/dev/mmcblk0p1 rootwait diff --git a/board/firefly/roc-rk3399-pc/genimage.cfg b/board/firefly/roc-rk3399-pc/genimage.cfg new file mode 100644 index 000000000..966c86927 --- /dev/null +++ b/board/firefly/roc-rk3399-pc/genimage.cfg @@ -0,0 +1,22 @@ +image sdcard.img { + hdimage { + } + + partition u-boot-tpl-spl-dtb { + in-partition-table = "no" + image = "idbloader.img" + offset = 32K + } + + partition u-boot-dtb { + in-partition-table = "no" + image = "u-boot.itb" + offset = 8M + size = 30M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/firefly/roc-rk3399-pc/post-build.sh b/board/firefly/roc-rk3399-pc/post-build.sh new file mode 100755 index 000000000..1f5ff6a61 --- /dev/null +++ b/board/firefly/roc-rk3399-pc/post-build.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" + +install -m 0644 -D $BOARD_DIR/extlinux.conf $TARGET_DIR/boot/extlinux/extlinux.conf diff --git a/board/firefly/roc-rk3399-pc/readme.txt b/board/firefly/roc-rk3399-pc/readme.txt new file mode 100644 index 000000000..8a6f1cdee --- /dev/null +++ b/board/firefly/roc-rk3399-pc/readme.txt @@ -0,0 +1,40 @@ +Libre Computer Board ROC-RK3399-PC +=================================== + +Build: + + $ make roc_pc_rk3399_defconfig + $ make + +Files created in output directory +================================= + +output/images + +├── bl31.elf +├── idbloader.img +├── Image +├── rk3399-roc-pc.dtb +├── rootfs.ext2 +├── rootfs.ext4 -> rootfs.ext2 +├── rootfs.tar +├── sdcard.img +├── u-boot.bin +└── u-boot.itb + +Creating bootable SD card: +========================== + +Simply invoke (as root) + +sudo dd if=output/images/sdcard.img of=/dev/sdX && sync + +Where X is your SD card device + +Serial console +-------------- + +Baudrate for this board is 1500000 + +Wiki link: +https://wiki.amarulasolutions.com/bsp/rockchip/rk3399/roc-rk3399-pc.html diff --git a/board/freescale/common/imx/genimage.cfg.template b/board/freescale/common/imx/genimage.cfg.template new file mode 100644 index 000000000..61b09bde9 --- /dev/null +++ b/board/freescale/common/imx/genimage.cfg.template @@ -0,0 +1,41 @@ +# Minimal SD card image for the Freescale boards Template +# +# We mimic the .sdcard Freescale's image format: +# * the SD card must have 1 kB free space at the beginning, +# * U-Boot is dumped as is, +# * a FAT partition at offset 8 MB is containing zImage/uImage and DTB files +# * a single root filesystem partition is required (ext2, ext3 or ext4) +# + +image boot.vfat { + vfat { + label = "boot" + files = { + %FILES% + } + } + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "%UBOOTBIN%" + offset = 1024 + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + offset = 8M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext2" + } +} diff --git a/board/freescale/common/imx/genimage.cfg.template_imx8 b/board/freescale/common/imx/genimage.cfg.template_imx8 new file mode 100644 index 000000000..568920508 --- /dev/null +++ b/board/freescale/common/imx/genimage.cfg.template_imx8 @@ -0,0 +1,41 @@ +# Minimal SD card image for the Freescale iMX8 boards +# +# We mimic the .sdcard Freescale's image format: +# * the SD card must have 33 kB free space at the beginning, +# * U-Boot is integrated into imx8-boot-sd.bin and is dumped as is, +# * a FAT partition at offset 8MB is containing Image and DTB files +# * a single root filesystem partition is required (ext2, ext3 or ext4) +# + +image boot.vfat { + vfat { + label = "boot" + files = { + %FILES% + } + } + size = 64M +} + +image sdcard.img { + hdimage { + } + + partition imx-boot { + in-partition-table = "no" + image = "imx8-boot-sd.bin" + offset = %IMXOFFSET% + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + offset = 8M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext2" + } +} diff --git a/board/freescale/common/imx/genimage.cfg.template_no_boot_part b/board/freescale/common/imx/genimage.cfg.template_no_boot_part new file mode 100644 index 000000000..b8fa43210 --- /dev/null +++ b/board/freescale/common/imx/genimage.cfg.template_no_boot_part @@ -0,0 +1,16 @@ +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "%UBOOTBIN%" + offset = 1024 + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext2" + offset = 8M + } +} diff --git a/board/freescale/common/imx/genimage.cfg.template_no_boot_part_spl b/board/freescale/common/imx/genimage.cfg.template_no_boot_part_spl new file mode 100644 index 000000000..ef015918a --- /dev/null +++ b/board/freescale/common/imx/genimage.cfg.template_no_boot_part_spl @@ -0,0 +1,31 @@ +# Minimal SD card image for the Freescale boards Template for SPL Boot +# +# We mimic the .sdcard Freescale's image format: +# * the SD card must have 1 kB free space at the beginning, +# * SPL is at the offset expected by ROM, +# * U-Boot is at the offset expected by SPL, +# * The first partition is expected to be an ext2 and have a /boot directory. +# + +image sdcard.img { + hdimage { + } + + partition spl { + in-partition-table = "no" + image = "SPL" + offset = 1024 + } + + partition u-boot { + in-partition-table = "no" + image = "%UBOOTBIN%" + offset = 69K + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext2" + offset = 8M + } +} diff --git a/board/freescale/common/imx/genimage.cfg.template_spl b/board/freescale/common/imx/genimage.cfg.template_spl new file mode 100644 index 000000000..3b0667c38 --- /dev/null +++ b/board/freescale/common/imx/genimage.cfg.template_spl @@ -0,0 +1,47 @@ +# Minimal SD card image for the Freescale boards Template for SPL Boot +# +# We mimic the .sdcard Freescale's image format: +# * the SD card must have 1 kB free space at the beginning, +# * U-Boot is dumped as is, +# * a FAT partition at offset 8MB is containing zImage/uImage and DTB files +# * a single root filesystem partition is required (ext2, ext3 or ext4) +# + +image boot.vfat { + vfat { + label = "boot" + files = { + %FILES% + } + } + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition spl { + in-partition-table = "no" + image = "SPL" + offset = 1024 + } + + partition u-boot { + in-partition-table = "no" + image = "%UBOOTBIN%" + offset = 69K + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + offset = 8M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext2" + } +} diff --git a/board/freescale/common/imx/imx8-bootloader-prepare.sh b/board/freescale/common/imx/imx8-bootloader-prepare.sh new file mode 100755 index 000000000..ace0f6d61 --- /dev/null +++ b/board/freescale/common/imx/imx8-bootloader-prepare.sh @@ -0,0 +1,74 @@ +#!/usr/bin/env bash + +main () +{ + UBOOT_DTB=$2 + if [ ! -e "$UBOOT_DTB" ]; then + echo "ERROR: couldn't find dtb: $UBOOT_DTB" + exit 1 + fi + + if grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M=y$" ${BR2_CONFIG}; then + dd if=${BINARIES_DIR}/u-boot-spl.bin of=${BINARIES_DIR}/u-boot-spl-padded.bin bs=4 conv=sync + cat ${BINARIES_DIR}/u-boot-spl-padded.bin ${BINARIES_DIR}/ddr_fw.bin > ${BINARIES_DIR}/u-boot-spl-ddr.bin + if grep -Eq "^BR2_TARGET_OPTEE_OS=y$" ${BR2_CONFIG}; then + BL31=${BINARIES_DIR}/bl31.bin BL32=${BINARIES_DIR}/tee.bin BL33=${BINARIES_DIR}/u-boot-nodtb.bin TEE_LOAD_ADDR=0xfe000000 ATF_LOAD_ADDR=0x00910000 ${HOST_DIR}/bin/mkimage_fit_atf.sh ${UBOOT_DTB} > ${BINARIES_DIR}/u-boot.its + else + BL31=${BINARIES_DIR}/bl31.bin BL33=${BINARIES_DIR}/u-boot-nodtb.bin ATF_LOAD_ADDR=0x00910000 ${HOST_DIR}/bin/mkimage_fit_atf.sh ${UBOOT_DTB} > ${BINARIES_DIR}/u-boot.its + fi + ${HOST_DIR}/bin/mkimage -E -p 0x3000 -f ${BINARIES_DIR}/u-boot.its ${BINARIES_DIR}/u-boot.itb + rm -f ${BINARIES_DIR}/u-boot.its + + ${HOST_DIR}/bin/mkimage_imx8 -fit -signed_hdmi ${BINARIES_DIR}/signed_hdmi_imx8m.bin -loader ${BINARIES_DIR}/u-boot-spl-ddr.bin 0x7E1000 -second_loader ${BINARIES_DIR}/u-boot.itb 0x40200000 0x60000 -out ${BINARIES_DIR}/imx8-boot-sd.bin + elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM=y$" ${BR2_CONFIG}; then + dd if=${BINARIES_DIR}/u-boot-spl.bin of=${BINARIES_DIR}/u-boot-spl-padded.bin bs=4 conv=sync + cat ${BINARIES_DIR}/u-boot-spl-padded.bin ${BINARIES_DIR}/ddr_fw.bin > ${BINARIES_DIR}/u-boot-spl-ddr.bin + if grep -Eq "^BR2_TARGET_OPTEE_OS=y$" ${BR2_CONFIG}; then + BL31=${BINARIES_DIR}/bl31.bin BL32=${BINARIES_DIR}/tee.bin BL33=${BINARIES_DIR}/u-boot-nodtb.bin TEE_LOAD_ADDR=0xbe000000 ATF_LOAD_ADDR=0x00920000 ${HOST_DIR}/bin/mkimage_fit_atf.sh ${UBOOT_DTB} > ${BINARIES_DIR}/u-boot.its + else + BL31=${BINARIES_DIR}/bl31.bin BL33=${BINARIES_DIR}/u-boot-nodtb.bin ATF_LOAD_ADDR=0x00920000 ${HOST_DIR}/bin/mkimage_fit_atf.sh ${UBOOT_DTB} > ${BINARIES_DIR}/u-boot.its + fi + ${HOST_DIR}/bin/mkimage -E -p 0x3000 -f ${BINARIES_DIR}/u-boot.its ${BINARIES_DIR}/u-boot.itb + rm -f ${BINARIES_DIR}/u-boot.its + + ${HOST_DIR}/bin/mkimage_imx8 -fit -loader ${BINARIES_DIR}/u-boot-spl-ddr.bin 0x7E1000 -second_loader ${BINARIES_DIR}/u-boot.itb 0x40200000 0x60000 -out ${BINARIES_DIR}/imx8-boot-sd.bin + elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN=y$" ${BR2_CONFIG}; then + dd if=${BINARIES_DIR}/u-boot-spl.bin of=${BINARIES_DIR}/u-boot-spl-padded.bin bs=4 conv=sync + cat ${BINARIES_DIR}/u-boot-spl-padded.bin ${BINARIES_DIR}/ddr_fw.bin > ${BINARIES_DIR}/u-boot-spl-ddr.bin + if grep -Eq "^BR2_TARGET_OPTEE_OS=y$" ${BR2_CONFIG}; then + BL31=${BINARIES_DIR}/bl31.bin BL32=${BINARIES_DIR}/tee.bin BL33=${BINARIES_DIR}/u-boot-nodtb.bin TEE_LOAD_ADDR=0x56000000 ATF_LOAD_ADDR=0x00960000 ${HOST_DIR}/bin/mkimage_fit_atf.sh ${UBOOT_DTB} > ${BINARIES_DIR}/u-boot.its + else + BL31=${BINARIES_DIR}/bl31.bin BL33=${BINARIES_DIR}/u-boot-nodtb.bin ATF_LOAD_ADDR=0x00960000 ${HOST_DIR}/bin/mkimage_fit_atf.sh ${UBOOT_DTB} > ${BINARIES_DIR}/u-boot.its + fi + ${HOST_DIR}/bin/mkimage -E -p 0x3000 -f ${BINARIES_DIR}/u-boot.its ${BINARIES_DIR}/u-boot.itb + rm -f ${BINARIES_DIR}/u-boot.its + + ${HOST_DIR}/bin/mkimage_imx8 -v v2 -fit -loader ${BINARIES_DIR}/u-boot-spl-ddr.bin 0x912000 -second_loader ${BINARIES_DIR}/u-boot.itb 0x40200000 0x60000 -out ${BINARIES_DIR}/imx8-boot-sd.bin + elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MP=y$" ${BR2_CONFIG}; then + dd if=${BINARIES_DIR}/u-boot-spl.bin of=${BINARIES_DIR}/u-boot-spl-padded.bin bs=4 conv=sync + cat ${BINARIES_DIR}/u-boot-spl-padded.bin ${BINARIES_DIR}/ddr_fw.bin > ${BINARIES_DIR}/u-boot-spl-ddr.bin + if grep -Eq "^BR2_TARGET_OPTEE_OS=y$" ${BR2_CONFIG}; then + BL31=${BINARIES_DIR}/bl31.bin BL32=${BINARIES_DIR}/tee.bin BL33=${BINARIES_DIR}/u-boot-nodtb.bin TEE_LOAD_ADDR=0x56000000 ATF_LOAD_ADDR=0x00970000 ${HOST_DIR}/bin/mkimage_fit_atf.sh ${UBOOT_DTB} > ${BINARIES_DIR}/u-boot.its + else + BL31=${BINARIES_DIR}/bl31.bin BL33=${BINARIES_DIR}/u-boot-nodtb.bin ATF_LOAD_ADDR=0x00970000 ${HOST_DIR}/bin/mkimage_fit_atf.sh ${UBOOT_DTB} > ${BINARIES_DIR}/u-boot.its + fi + ${HOST_DIR}/bin/mkimage -E -p 0x3000 -f ${BINARIES_DIR}/u-boot.its ${BINARIES_DIR}/u-boot.itb + rm -f ${BINARIES_DIR}/u-boot.its + + ${HOST_DIR}/bin/mkimage_imx8 -v v2 -fit -loader ${BINARIES_DIR}/u-boot-spl-ddr.bin 0x920000 -second_loader ${BINARIES_DIR}/u-boot.itb 0x40200000 0x60000 -out ${BINARIES_DIR}/imx8-boot-sd.bin + else + ${HOST_DIR}/bin/mkimage_imx8 -commit > ${BINARIES_DIR}/mkimg.commit + cat ${BINARIES_DIR}/u-boot.bin ${BINARIES_DIR}/mkimg.commit > ${BINARIES_DIR}/u-boot-hash.bin + cp ${BINARIES_DIR}/bl31.bin ${BINARIES_DIR}/u-boot-atf.bin + dd if=${BINARIES_DIR}/u-boot-hash.bin of=${BINARIES_DIR}/u-boot-atf.bin bs=1K seek=128 + if grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8=y$" ${BR2_CONFIG}; then + ${HOST_DIR}/bin/mkimage_imx8 -soc QM -rev B0 -append ${BINARIES_DIR}/ahab-container.img -c -scfw ${BINARIES_DIR}/mx8qm-mek-scfw-tcm.bin -ap ${BINARIES_DIR}/u-boot-atf.bin a53 0x80000000 -out ${BINARIES_DIR}/imx8-boot-sd.bin + else + ${HOST_DIR}/bin/mkimage_imx8 -soc QX -rev B0 -append ${BINARIES_DIR}/ahab-container.img -c -scfw ${BINARIES_DIR}/mx8qx-mek-scfw-tcm.bin -ap ${BINARIES_DIR}/u-boot-atf.bin a35 0x80000000 -out ${BINARIES_DIR}/imx8-boot-sd.bin + fi + fi + + exit $? +} + +main $@ diff --git a/board/freescale/common/imx/post-image.sh b/board/freescale/common/imx/post-image.sh new file mode 100755 index 000000000..d36f82917 --- /dev/null +++ b/board/freescale/common/imx/post-image.sh @@ -0,0 +1,113 @@ +#!/usr/bin/env bash + +# +# dtb_list extracts the list of DTB files from BR2_LINUX_KERNEL_INTREE_DTS_NAME +# in ${BR_CONFIG}, then prints the corresponding list of file names for the +# genimage configuration file +# +dtb_list() +{ + local DTB_LIST="$(sed -n 's/^BR2_LINUX_KERNEL_INTREE_DTS_NAME="\([\/a-z0-9 \-]*\)"$/\1/p' ${BR2_CONFIG})" + + for dt in $DTB_LIST; do + echo -n "\"`basename $dt`.dtb\", " + done +} + +# +# linux_image extracts the Linux image format from BR2_LINUX_KERNEL_UIMAGE in +# ${BR_CONFIG}, then prints the corresponding file name for the genimage +# configuration file +# +linux_image() +{ + if grep -Eq "^BR2_LINUX_KERNEL_UIMAGE=y$" ${BR2_CONFIG}; then + echo "\"uImage\"" + elif grep -Eq "^BR2_LINUX_KERNEL_IMAGE=y$" ${BR2_CONFIG}; then + echo "\"Image\"" + elif grep -Eq "^BR2_LINUX_KERNEL_IMAGEGZ=y$" ${BR2_CONFIG}; then + echo "\"Image.gz\"" + else + echo "\"zImage\"" + fi +} + +genimage_type() +{ + if grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8=y$" ${BR2_CONFIG}; then + echo "genimage.cfg.template_imx8" + elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M=y$" ${BR2_CONFIG}; then + echo "genimage.cfg.template_imx8" + elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM=y$" ${BR2_CONFIG}; then + echo "genimage.cfg.template_imx8" + elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN=y$" ${BR2_CONFIG}; then + echo "genimage.cfg.template_imx8" + elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MP=y$" ${BR2_CONFIG}; then + echo "genimage.cfg.template_imx8" + elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X=y$" ${BR2_CONFIG}; then + echo "genimage.cfg.template_imx8" + elif grep -Eq "^BR2_LINUX_KERNEL_INSTALL_TARGET=y$" ${BR2_CONFIG}; then + if grep -Eq "^BR2_TARGET_UBOOT_SPL=y$" ${BR2_CONFIG}; then + echo "genimage.cfg.template_no_boot_part_spl" + else + echo "genimage.cfg.template_no_boot_part" + fi + elif grep -Eq "^BR2_TARGET_UBOOT_SPL=y$" ${BR2_CONFIG}; then + echo "genimage.cfg.template_spl" + else + echo "genimage.cfg.template" + fi +} + +imx_offset() +{ + if grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M=y$" ${BR2_CONFIG}; then + echo "33K" + elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM=y$" ${BR2_CONFIG}; then + echo "33K" + else + echo "32K" + fi +} + +uboot_image() +{ + if grep -Eq "^BR2_TARGET_UBOOT_FORMAT_DTB_IMX=y$" ${BR2_CONFIG}; then + echo "u-boot-dtb.imx" + elif grep -Eq "^BR2_TARGET_UBOOT_FORMAT_IMX=y$" ${BR2_CONFIG}; then + echo "u-boot.imx" + elif grep -Eq "^BR2_TARGET_UBOOT_FORMAT_DTB_IMG=y$" ${BR2_CONFIG}; then + echo "u-boot-dtb.img" + elif grep -Eq "^BR2_TARGET_UBOOT_FORMAT_IMG=y$" ${BR2_CONFIG}; then + echo "u-boot.img" + fi +} + +main() +{ + local FILES="$(dtb_list) $(linux_image)" + local IMXOFFSET="$(imx_offset)" + local UBOOTBIN="$(uboot_image)" + local GENIMAGE_CFG="$(mktemp --suffix genimage.cfg)" + local GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + + sed -e "s/%FILES%/${FILES}/" \ + -e "s/%IMXOFFSET%/${IMXOFFSET}/" \ + -e "s/%UBOOTBIN%/${UBOOTBIN}/" \ + board/freescale/common/imx/$(genimage_type) > ${GENIMAGE_CFG} + + rm -rf "${GENIMAGE_TMP}" + + genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" + + rm -f ${GENIMAGE_CFG} + + exit $? +} + +main $@ diff --git a/board/freescale/common/mxs/genimage.cfg.template b/board/freescale/common/mxs/genimage.cfg.template new file mode 100644 index 000000000..c9da45282 --- /dev/null +++ b/board/freescale/common/mxs/genimage.cfg.template @@ -0,0 +1,40 @@ +# Minimal SD card image for the Freescale MX23/MX28 Template +# +# We mimic the .sdcard Freescale's MX23/MX28 image format: +# * u-boot.sb is placed at offset 1M, +# * a FAT partition at offset 16 MB is containing zImage/uImage and DTB files +# * a single root filesystem partition is required (ext2, ext3 or ext4) +# + +image boot.vfat { + vfat { + label = "boot" + files = { + %FILES% + } + } + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + partition-type = 0x53 + image = "u-boot.sd" + offset = 1M + size = 16M + } + + partition kernel { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext2" + } +} diff --git a/board/freescale/common/mxs/post-image.sh b/board/freescale/common/mxs/post-image.sh new file mode 100755 index 000000000..0bfb835c6 --- /dev/null +++ b/board/freescale/common/mxs/post-image.sh @@ -0,0 +1,54 @@ +#!/usr/bin/env bash + +# +# dtb_list extracts the list of DTB files from BR2_LINUX_KERNEL_INTREE_DTS_NAME +# in ${BR_CONFIG}, then prints the corresponding list of file names for the +# genimage configuration file +# +dtb_list() +{ + local DTB_LIST="$(sed -n 's/^BR2_LINUX_KERNEL_INTREE_DTS_NAME="\([a-z0-9 \-]*\)"$/\1/p' ${BR2_CONFIG})" + + for dt in $DTB_LIST; do + echo -n "\"$dt.dtb\", " + done +} + +# +# linux_image extracts the Linux image format from BR2_LINUX_KERNEL_UIMAGE in +# ${BR_CONFIG}, then prints the corresponding file name for the genimage +# configuration file +# +linux_image() +{ + if grep -Eq "^BR2_LINUX_KERNEL_UIMAGE=y$" ${BR2_CONFIG}; then + echo "\"uImage\"" + else + echo "\"zImage\"" + fi +} + +main() +{ + local FILES="$(dtb_list) $(linux_image)" + local GENIMAGE_CFG="$(mktemp --suffix genimage.cfg)" + local GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + + sed -e "s/%FILES%/${FILES}/" \ + board/freescale/common/mxs/genimage.cfg.template > ${GENIMAGE_CFG} + + rm -rf "${GENIMAGE_TMP}" + + genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" + + rm -f ${GENIMAGE_CFG} + + exit $? +} + +main $@ diff --git a/board/freescale/imx23evk/readme.txt b/board/freescale/imx23evk/readme.txt new file mode 100644 index 000000000..6574577dc --- /dev/null +++ b/board/freescale/imx23evk/readme.txt @@ -0,0 +1,48 @@ +************************** +Freescale i.MX23 EVK board +************************** + +This file documents the Buildroot support for the Freescale i.MX23 EVK board. + +Build +===== + +First, configure Buildroot for your i.MX23 EVK board: + + make imx23evk_defconfig + +Build all components: + + make + +You will find in output/images/ directory the following files: + - imx23-evk.dtb + - rootfs.tar + - u-boot.sd + - zImage + +Create a bootable SD card +========================= + +To determine the device associated to the SD card have a look in the +/proc/partitions file: + + cat /proc/partitions + +Then, run the following command: + +*** WARNING! The command will destroy all the card content. Use with care! *** + + sudo dd if=output/images/sdcard.img of=/dev/ + +Boot the i.MX23 EVK board +========================= + +- Put the Boot Mode Select jumper as 1 0 0 1 so that it can boot + from the SD card +- Insert the SD card in the SD Card slot of the board; +- Connect an RS232 UART cable to the Debug UART Port and connect using a + terminal emulator at 115200 bps, 8n1; +- power on the board. + +Enjoy! diff --git a/board/freescale/imx25pdk/readme.txt b/board/freescale/imx25pdk/readme.txt new file mode 100644 index 000000000..1aece6c9b --- /dev/null +++ b/board/freescale/imx25pdk/readme.txt @@ -0,0 +1,54 @@ +************************** +Freescale i.MX25 PDK board +************************** + +This file documents the Buildroot support for the Freescale i.MX25 PDK board. + +Build +===== + +First, configure Buildroot for the i.MX25 PDK board: + + make mx25pdk_defconfig + +Build all components: + + make + +You will find in output/images/ the following files: + - imx25-pdk.dtb + - rootfs.ext4 + - rootfs.tar + - sdcard.img + - u-boot.imx + - zImage + +Create a bootable SD card +========================= + +To determine the device associated to the SD card have a look in the +/proc/partitions file: + + cat /proc/partitions + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped on a SD card. Launch the following +command as root: + + dd if=output/images/sdcard.img of=/dev/ + +*** WARNING! This will destroy all the card content. Use with care! *** + +For details about the medium image layout, see the definition in +board/freescale/common/imx/genimage.cfg.template. + +Boot the i.MX25 PDK board +========================= + +To boot your newly created system: +- insert the SD card in the SD slot of the board; +- put a USB cable into the Debug USB Port and connect using a terminal + emulator at 115200 bps, 8n1; +- power on the board. + +Enjoy! diff --git a/board/freescale/imx28evk/readme.txt b/board/freescale/imx28evk/readme.txt new file mode 100644 index 000000000..2920cb04c --- /dev/null +++ b/board/freescale/imx28evk/readme.txt @@ -0,0 +1,57 @@ +************************** +Freescale i.MX28 EVK board +************************** + +This file documents the Buildroot support for the Freescale i.MX28 EVK board. + +Read the i.MX28 Evaluation Kit Quick Start Guide [1] for an introduction to the +board. + +Build +===== + +First, configure Buildroot for your i.MX28 EVK board: + + make freescale_imx28evk_defconfig + +Build all components: + + make + +You will find in ./output/images/ the following files: + - imx28-evk.dtb + - rootfs.tar + - u-boot.sd + - zImage + +Create a bootable SD card +========================= + +To determine the device associated to the SD card have a look in the +/proc/partitions file: + + cat /proc/partitions + +Then, run the following command as root: + +*** WARNING! The command will destroy all the card content. Use with care! *** + + sudo dd if=output/images/sdcard.img of=/dev/ + +Boot the i.MX28 EVK board +========================= + +To boot your newly created system (refer to the i.MX28 EVK Quick Start Guide +[1] for guidance): +- insert the SD card in the SD Card Socket 0 of the board; +- verify that your i.MX28 EVK board jumpers and switches are set as mentioned + in the i.MX28 EVK Quick Start Guide [1]; +- connect an RS232 UART cable to the Debug UART Port and connect using a + terminal emulator at 115200 bps, 8n1; +- power on the board. + +Enjoy! + +References +========== +[1] http://cache.freescale.com/files/32bit/doc/user_guide/EVK_imx28_QuickStart.pdf diff --git a/board/freescale/imx51evk/readme.txt b/board/freescale/imx51evk/readme.txt new file mode 100644 index 000000000..d67a3fd72 --- /dev/null +++ b/board/freescale/imx51evk/readme.txt @@ -0,0 +1,54 @@ +************************** +Freescale i.MX51 EVK board +************************** + +This file documents the Buildroot support for the Freescale i.MX51 EVK board. + +Build +===== + +First, configure Buildroot for the i.MX51 EVK board: + + make mx51evk_defconfig + +Build all components: + + make + +You will find in output/images/ the following files: + - imx51-babbage.dtb + - rootfs.ext4 + - rootfs.tar + - sdcard.img + - u-boot.imx + - zImage + +Create a bootable SD card +========================= + +To determine the device associated to the SD card have a look in the +/proc/partitions file: + + cat /proc/partitions + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped on a SD card. Launch the following +command as root: + + dd if=output/images/sdcard.img of=/dev/ + +*** WARNING! This will destroy all the card content. Use with care! *** + +For details about the medium image layout, see the definition in +board/freescale/common/imx/genimage.cfg.template. + +Boot the i.MX51 EVK board +========================= + +To boot your newly created system: +- insert the SD card in the SD slot of the board; +- put a micro USB cable into the Debug USB Port and connect using a terminal + emulator at 115200 bps, 8n1; +- power on the board. + +Enjoy! diff --git a/board/freescale/imx6-sabresd/linux_qt5.fragment b/board/freescale/imx6-sabresd/linux_qt5.fragment new file mode 100644 index 000000000..ffa5f63ea --- /dev/null +++ b/board/freescale/imx6-sabresd/linux_qt5.fragment @@ -0,0 +1,4 @@ +# Currently mx6sabresd exhibits touchscreen issues when running cpufreq as +# ondemand governor with a mainline kernel. +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y diff --git a/board/freescale/imx6-sabresd/readme.txt b/board/freescale/imx6-sabresd/readme.txt new file mode 100644 index 000000000..292dab72c --- /dev/null +++ b/board/freescale/imx6-sabresd/readme.txt @@ -0,0 +1,111 @@ +******************************* +Freescale i.MX6 Sabre SD boards +******************************* + +This file documents the Buildroot support for the Freescale i.MX6 Sabre SD +boards based on i.MX6Q, i.MX6DL and iMX6QP. + +Thanks to the SPL support in U-Boot it is possible to run a single +sdcard.img in all i.MX6 Sabre SD board variants. + +This configuration uses U-Boot mainline and kernel mainline. + +Build +===== + +First, configure Buildroot for the i.MX6 Sabre SD board: + + make imx6-sabresd_defconfig + +Build all components: + + make + +You will find the following files in output/images/ : + - imx6q-sabresd.dtb + - imx6dl-sabresd.dtb + - imx6qp-sabresd.dtb + - rootfs.ext4 + - rootfs.tar + - sdcard.img + - u-boot.imx + - zImage + +Create a bootable SD card +========================= + +To determine the device associated to the SD card have a look in the +/proc/partitions file: + + cat /proc/partitions + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped on a SD card. Launch the following +command as root: + + dd if=output/images/sdcard.img of=/dev/ + +*** WARNING! This will destroy all the card content. Use with care! *** + +For details about the medium image layout, see the definition in +board/freescale/common/imx/genimage.cfg.template. + +Boot the i.MX6 Sabre SD board +============================= + +To boot your newly created system: +- insert the SD card in the SD3 slot of the board (close to the HDMI connector); +- put a micro USB cable into the Debug USB Port and connect using a terminal + emulator at 115200 bps, 8n1; +- power on the board. + +Testing graphics on the i.MX6 Sabre SD board +============================================ + +The imx6-sabresd_qt5_defconfig allows to quickly test the graphics +capabilities of i.MX6 using the opensource Etnaviv graphics stack +and kernel mainline. + +In order to build it: + +make imx6-sabresd_qt5_defconfig +make + +Then flash the SD card as explained above. + +Running kmscube application: + +# kmscube + +Running Qt5 Cinematic Demo: + +# export QT_QPA_EGLFS_KMS_CONFIG=/root/sabresd.json +# export QT_QPA_EGLFS_ALWAYS_SET_MODE=1 +# /usr/share/Qt5/CinematicExperience/Qt5_CinematicExperience + +Running gl2mark benchmark: + +# glmark2-es2-drm + +Testing video playback on the i.MX6 Sabre SD board +================================================== + +As the mx6sabresd has two display outputs (LVDS and HDMI), it is necessary to +know what is the connector that corresponds to the HDMI output. + +This information can be found by running: + +# modetest + +And search for the HDMI connector number. In our case it shows up as 37. + +In the mx6sabresd prompt run the following Gstreamer pipeline: + +# gst-launch-1.0 filesrc location=/root/trailer_1080p_h264_mp3.avi ! avidemux ! \ +h264parse ! v4l2video1dec capture-io-mode=dmabuf ! kmssink connector-id=37 \ +name=imx-drm sync=0 + +(The video used on this example was retrieved from: +http://linode.boundarydevices.com/videos/trailer_1080p_h264_mp3.avi) + +Enjoy! diff --git a/board/freescale/imx6-sabresd/rootfs_overlay/root/sabresd.json b/board/freescale/imx6-sabresd/rootfs_overlay/root/sabresd.json new file mode 100644 index 000000000..fe92ce5b2 --- /dev/null +++ b/board/freescale/imx6-sabresd/rootfs_overlay/root/sabresd.json @@ -0,0 +1,15 @@ +{ + "device": "/dev/dri/card0", + "hwcursor": false, + "pbuffers": true, + "outputs": [ + { + "name": "HDMI1", + "mode": "off" + }, + { + "name": "LVDS1", + "mode": "1024x768" + } + ] +} diff --git a/board/freescale/imx6sabre/patches/uboot/0001-mx6qsabre_common-boot-Linux-to-init-in-mfgtools-mode.patch b/board/freescale/imx6sabre/patches/uboot/0001-mx6qsabre_common-boot-Linux-to-init-in-mfgtools-mode.patch new file mode 100644 index 000000000..a9f88c264 --- /dev/null +++ b/board/freescale/imx6sabre/patches/uboot/0001-mx6qsabre_common-boot-Linux-to-init-in-mfgtools-mode.patch @@ -0,0 +1,37 @@ +From e9a88fddc149fc52cdc5a8997f9fd3a29416c643 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Vincent=20Stehl=C3=A9?= +Date: Tue, 12 Aug 2014 10:17:31 +0200 +Subject: [PATCH] mx6qsabre_common: boot Linux to /init in mfgtools mode +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Buildroot supplies a nice /init wrapper script to use when booting from a +ramdisk. + +This patch tells u-boot to tell the kernel to boot into /init (instead of +/linuxrc) on i.MX6, when booting in mfgtools mode. This way we can boot a +buildroot system entirely through USB. + +Signed-off-by: Vincent Stehlé +Signed-off-by: Julien Olivain +--- + include/configs/imx_env.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/configs/imx_env.h b/include/configs/imx_env.h +index c03748d93f..aa1a8bf488 100644 +--- a/include/configs/imx_env.h ++++ b/include/configs/imx_env.h +@@ -29,7 +29,7 @@ + + #define CONFIG_MFG_ENV_SETTINGS_DEFAULT \ + "mfgtool_args=setenv bootargs console=${console},${baudrate} " \ +- "rdinit=/linuxrc " \ ++ "rdinit=/init " \ + "clk_ignore_unused "\ + "\0" \ + "kboot="MFG_BOOT_CMD"\0"\ +-- +2.26.2 + diff --git a/board/freescale/imx6sabre/readme.txt b/board/freescale/imx6sabre/readme.txt new file mode 100644 index 000000000..4b8db5233 --- /dev/null +++ b/board/freescale/imx6sabre/readme.txt @@ -0,0 +1,171 @@ +******************************************************** +Freescale i.MX6 Q, DL and SoloX SABRE development boards +******************************************************** + +This file documents the Buildroot support for the Freescale SABRE Board +for Smart Devices Based on the i.MX 6 and i.MX 6SoloX Series (SABRESD), +as well as the Freescale SABRE Board for Automotive Infotainment. + +Read the i.MX 6 SABRESD Quick Start Guide for an introduction to the +board: +http://cache.freescale.com/files/32bit/doc/quick_start_guide/SABRESDB_IMX6_QSG.pdf + +Read the i.MX 6 SoloX SABRESD Quick Start Guide for an introduction to +the board: +http://cache.freescale.com/files/32bit/doc/user_guide/IMX6SOLOXQSG.pdf + +Read the SABRE for Automotive Infotainment Quick Start Guide for an +introduction to the board: +http://cache.freescale.com/files/32bit/doc/user_guide/IMX6SABREINFOQSG.pdf + +Building with NXP kernel and NXP U-Boot +======================================= + +First, configure Buildroot for your SABRE board. +For i.MX6Q SABRE SD board: + + make freescale_imx6qsabresd_defconfig + +For i.MX6DL SABRE SD board: + + make freescale_imx6dlsabresd_defconfig + +For i.MX6 SoloX SABRE SD board: + + make freescale_imx6sxsabresd_defconfig + +For i.MX6Q SABRE Auto board: + + make freescale_imx6qsabreauto_defconfig + +For i.MX6DL SABRE Auto board: + + make freescale_imx6dlsabreauto_defconfig + +Build all components: + + make + +You will find in ./output/images/ the following files: + - imx6dl-sabresd.dtb or imx6q-sabresd.dtb or imx6sx-sdb.dtb or + imx6q-sabreauto.dtb or imx6dl-sabreauto.dtb + - rootfs.ext2 + - rootfs.tar + - u-boot.imx + - uImage, or zImage for i.MX6 SoloX + +Building with mainline kernel and mainline U-Boot +================================================= + +Mainline U-Boot uses SPL and can support the three +variants of mx6sabreauto boards: mx6q, mx6dl and mx6qp. + +First, configure Buildroot for your mx6sabreauto board + + make imx6-sabreauto_defconfig + +Build all components: + + make + +You will find in output/images/ the following files: + - imx6dl-sabresd.dtb, imx6q-sabresd.dtb, imx6q-sabresd.dtb + - rootfs.ext2 + - SPL and u-boot.img + - u-boot.imx + - zImage + +Create a bootable SD card +========================= + +To determine the device associated to the SD card have a look in the +/proc/partitions file: + + cat /proc/partitions + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped on a microSD card. Launch the following +command as root: + + dd if=./output/images/sdcard.img of=/dev/ + +*** WARNING! The script will destroy all the card content. Use with care! *** + +For details about the medium image layout, see the definition in +board/freescale/common/imx/genimage.cfg.template. + +Boot the SABRE board +==================== + +i.MX6 SABRE SD +-------------- + +To boot your newly created system on an i.MX6 SABRE SD Board (refer to +the i.MX6 SABRE SD Quick Start Guide for guidance): +- insert the SD card in the SD3 slot of the board; +- locate the BOOT dip switches (SW6), set dips 2 and 7 to ON, all others to OFF; +- connect a Micro USB cable to Debug Port and connect using a terminal emulator + at 115200 bps, 8n1; +- power on the board. + +i.MX6 SoloX SABRE SD +-------------------- + +To boot your newly created system on an i.MX6 SoloX SABRE SD Board +(refer to the i.MX6 SoloX SABRE SD Quick Start Guide for guidance): +- insert the SD card in the J4-SD4 socket at the bottom of the board; +- Set the SW10, SW11 and SW12 DIP switches at the top of the board in + their default position, to boot from SD card. Reference configuration: + + SW10 + 1 2 3 4 5 6 7 8 + off off off off off off off off + + SW11 + 1 2 3 4 5 6 7 8 + off off ON ON ON off off off + + SW12 + 1 2 3 4 5 6 7 8 + off ON off off off off off off + +- connect a Micro USB cable to the J16 Debug Port at the bottom of the + board. This is a dual UART debug port; connect to the first tty using + a terminal emulator at 115200 bps, 8n1; +- power on the board with the SW1-PWR switch at the top of the board. + +SABRE Auto +---------- + +To boot your newly created system on a SABRE Auto Board (refer to the SABRE for +Automotive Infotainment Quick Start Guide for guidance): +- insert the SD card in the CPU card SD card socket J14; +- Set the S1, S2 and S3 DIP switches and J3 jumper to boot from SD on CPU card. + Reference configuration: + + S1 + 1 2 3 4 5 6 7 8 9 10 + off ON off off ON off off off off off + + S2 + 1 2 3 4 + off off ON off + + S3 + 1 2 3 4 + off off ON ON + + J3: 1-2 + +- connect an RS-232 UART cable to CPU card debug port J18 UART DB9 and + connect using a terminal emulator at 115200 bps, 8n1; +- power on the board. + +Enjoy! + +References +========== + +https://community.freescale.com/docs/DOC-95015 +https://community.freescale.com/docs/DOC-95017 +https://community.freescale.com/docs/DOC-99218 diff --git a/board/freescale/imx6slevk/readme.txt b/board/freescale/imx6slevk/readme.txt new file mode 100644 index 000000000..424380e31 --- /dev/null +++ b/board/freescale/imx6slevk/readme.txt @@ -0,0 +1,14 @@ +NXP i.MX6SL EVK board +--------------------- + +To build a minimal support for this board: + +$ make imx6slevk_defconfig +$ make + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be flashed into the SD card: + +$ sudo dd if=output/images/sdcard.img of=/dev/; sync + +Then insert the SD card into the SD2 slot and boot the board. diff --git a/board/freescale/imx6sxsdb/readme.txt b/board/freescale/imx6sxsdb/readme.txt new file mode 100644 index 000000000..2779075f0 --- /dev/null +++ b/board/freescale/imx6sxsdb/readme.txt @@ -0,0 +1,14 @@ +NXP i.MX6SX SDB board +--------------------- + +To build a minimal support for this board: + +$ make imx6sx-sdb_defconfig +$ make + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be flashed into the SD card: + +$ sudo dd if=output/images/sdcard.img of=/dev/; sync + +Then insert the SD card into the SD4 boot slot and boot the board. diff --git a/board/freescale/imx6ulevk/readme.txt b/board/freescale/imx6ulevk/readme.txt new file mode 100644 index 000000000..90355f354 --- /dev/null +++ b/board/freescale/imx6ulevk/readme.txt @@ -0,0 +1,74 @@ +*************************** +Freescale i.MX6UL EVK board +*************************** + +This file documents the Buildroot support for the Freescale i.MX6UL EVK board. + +Please read the i.MX6UL Evaluation Kit Quick Start Guide [1] for an +introduction to the board. + +Build +===== + +First, configure Buildroot for your i.MX6UL EVK board: + +In order to to do so there are two supported options: + + make freescale_imx6ulevk_defconfig + +if you plan to use NXP provided U-Boot and kernel. + +or + + make imx6ulevk_defconfig + +if you plan to use mainline U-Boot and mainline kernel. + +Build all components: + + make + +You will find in ./output/images/ the following files: + - imx6ul-14x14-evk.dtb + - rootfs.ext4 + - rootfs.tar + - sdcard.img + - u-boot.imx + - zImage + +Create a bootable microSD card +============================== + +To determine the device associated to the microSD card have a look in the +/proc/partitions file: + + cat /proc/partitions + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped on a microSD card. Launch the following +command as root: + + dd if=./output/images/sdcard.img of=/dev/ + +*** WARNING! This will destroy all the card content. Use with care! *** + +For details about the medium image layout, see the definition in +board/freescale/common/imx/genimage.cfg.template. + +Boot the i.MX6UL EVK board +========================= + +To boot your newly created system (refer to the i.MX6UL EVK Quick Start Guide +[1] for guidance): +- insert the microSD card in the microSD slot of the board; +- verify that your i.MX6UL EVK board jumpers and switches are set as mentioned + in the i.MX6UL EVK Quick Start Guide [1]; +- put a micro USB cable into the Debug USB Port and connect using a terminal + emulator at 115200 bps, 8n1; +- power on the board. + +Enjoy! + +References +========== +[1] http://cache.freescale.com/files/32bit/doc/quick_start_guide/IMX6ULTRALITEQSG.pdf diff --git a/board/freescale/imx6ullevk/readme.txt b/board/freescale/imx6ullevk/readme.txt new file mode 100644 index 000000000..77acec261 --- /dev/null +++ b/board/freescale/imx6ullevk/readme.txt @@ -0,0 +1,71 @@ +**************************** +Freescale i.MX6ULL EVK board +**************************** + +This file documents the Buildroot support for the Freescale i.MX6ULL EVK board. + +Build +===== + +First, configure Buildroot for your i.MX6ULL EVK board: + +In order to to do so there are two supported options: + + make freescale_imx6ullevk_defconfig + +if you plan to use NXP provided U-Boot and kernel. + +or + + make imx6ullevk_defconfig + +if you plan to use mainline U-Boot and mainline kernel. + +Build all components: + + make + +You will find in output/images/ the following files: + - boot.vfat + - imx6ull-14x14-evk.dtb + - rootfs.ext2 + - rootfs.ext4 + - rootfs.tar + - sdcard.img + - u-boot.bin + - u-boot.imx + - zImage + +Create a bootable SD card +========================= + +To determine the device associated to the SD card have a look in the +/proc/partitions file: + + cat /proc/partitions + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped on a SD card. Launch the following +command as root: + + dd if=./output/images/sdcard.img of=/dev/ + +*** WARNING! This will destroy all the card content. Use with care! *** + +For details about the medium image layout, see the definition in +board/freescale/common/imx/genimage.cfg.template. + +Boot the i.MX6ULL EVK board +=========================== + +To boot your newly created system (refer to the i.MX 6ULL EVK Quick Start Guide [1] for guidance): +- insert the SD card in the micro SD slot of the board; +- put a micro USB cable into the Debug USB Port and connect using a terminal + emulator at 115200 bps, 8n1; +- power on the board. + +Enjoy! + +References +========== +[1] https://www.nxp.com/files-static/32bit/doc/brochure/IMX6ULLQSG.pdf diff --git a/board/freescale/imx7dsdb/readme.txt b/board/freescale/imx7dsdb/readme.txt new file mode 100644 index 000000000..c6030f696 --- /dev/null +++ b/board/freescale/imx7dsdb/readme.txt @@ -0,0 +1,54 @@ +*************************** +Freescale i.MX7D SDB board +*************************** + +This file documents the Buildroot support for the Freescale i.MX7D SDB board. + +Build +===== + +First, configure Buildroot for your i.MX7D SDB board: + + make freescale_imx7dsabresd_defconfig + +Build all components: + + make + +You will find in output/images/ the following files: + - imx7d-sdb.dtb + - rootfs.ext4 + - rootfs.tar + - sdcard.img + - u-boot.imx + - zImage + +Create a bootable SD card +========================= + +To determine the device associated to the SD card have a look in the +/proc/partitions file: + + cat /proc/partitions + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped on a SD card. Launch the following +command as root: + + dd if=./output/images/sdcard.img of=/dev/ + +*** WARNING! This will destroy all the card content. Use with care! *** + +For details about the medium image layout, see the definition in +board/freescale/common/imx/genimage.cfg.template. + +Boot the i.MX7D SDB board +========================= + +To boot your newly created system: +- insert the SD card in the SD slot of the board; +- put a micro USB cable into the Debug USB Port and connect using a terminal + emulator at 115200 bps, 8n1; +- power on the board. + +Enjoy! diff --git a/board/freescale/imx7dsdb/rootfs_overlay/boot/extlinux/extlinux.conf b/board/freescale/imx7dsdb/rootfs_overlay/boot/extlinux/extlinux.conf new file mode 100644 index 000000000..d538b5d64 --- /dev/null +++ b/board/freescale/imx7dsdb/rootfs_overlay/boot/extlinux/extlinux.conf @@ -0,0 +1,4 @@ +Label imx7d-sabresd-buildroot + kernel /boot/zImage + devicetree /boot/imx7d-sdb.dtb + append root=PARTUUID=${uuid} rootwait rw console=${console},${baudrate} diff --git a/board/freescale/imx8mmevk/readme.txt b/board/freescale/imx8mmevk/readme.txt new file mode 100644 index 000000000..7b69405d3 --- /dev/null +++ b/board/freescale/imx8mmevk/readme.txt @@ -0,0 +1,71 @@ +*************************** +Freescale i.MX8MM EVK board +*************************** + +This file documents the Buildroot support for the Freescale i.MX8MM +EVK board. + +Build +===== + +First, configure Buildroot for the i.MX8MM EVK board: + + make freescale_imx8mmevk_defconfig + +Build all components: + + make + +You will find in output/images/ the following files: + - bl31.bin + - boot.vfat + - fsl-imx8mm-evk.dtb + - Image + - imx8-boot-sd.bin + - lpddr4_pmu_train_fw.bin + - rootfs.ext2 + - rootfs.ext4 + - rootfs.tar + - sdcard.img + - u-boot.bin + - u-boot.imx + - u-boot-nodtb.bin + - u-boot-spl-ddr.bin + +Create a bootable SD card +========================= + +To determine the device associated to the SD card have a look in the +/proc/partitions file: + + cat /proc/partitions + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped on a SD card. Launch the following +command as root: + + dd if=output/images/sdcard.img of=/dev/ + +*** WARNING! This will destroy all the card content. Use with care! *** + +For details about the medium image layout, see the definition in +board/freescale/common/imx/genimage.cfg.template_imx8. + +Boot the i.MX8MM EVK board +========================== + +To boot your newly created system (refer to the i.MX8MMini EVK Quick Start Guide +[1] for guidance): +- insert the SD card in the SD slot of the board; +- Configure the switches as follows: +SW1101: 0110110010 [D1-D10] +SW1102: 0001101000 [D1-D10] +- put a micro USB cable into the Debug USB Port and connect using a terminal + emulator at 115200 bps, 8n1; +- power on the board. + +Enjoy! + +References +========== +[1] https://www.nxp.com/document/guide/Get-Started-with-the-i.MX-8M-Mini-EVK:GS-iMX-8M-Mini-EVK diff --git a/board/freescale/imx8mnevk/readme.txt b/board/freescale/imx8mnevk/readme.txt new file mode 100644 index 000000000..d7700568f --- /dev/null +++ b/board/freescale/imx8mnevk/readme.txt @@ -0,0 +1,73 @@ +*************************** +Freescale i.MX8MN EVK board +*************************** + +This file documents the Buildroot support for the i.MX8M Nano EVK board. + +Build +===== + +First, configure Buildroot for the i.MX8MN EVK board: + + make freescale_imx8mnevk_defconfig + +Build all components: + + make + +You will find in output/images/ the following files: + - bl31.bin + - boot.vfat + - ddr4_201810_fw.bin + - ddr_fw.bin + - fsl-imx8mn-ddr4-evk.dtb + - Image + - imx8-boot-sd.bin + - rootfs.ext2 + - rootfs.ext4 + - rootfs.tar + - sdcard.img + - u-boot.bin + - u-boot.imx + - u-boot.itb + - u-boot-nodtb.bin + - u-boot-spl.bin + - u-boot-spl-ddr.bin + +Create a bootable SD card +========================= + +To determine the device associated to the SD card have a look in the +/proc/partitions file: + + cat /proc/partitions + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped on a SD card. Launch the following +command as root: + + dd if=output/images/sdcard.img of=/dev/ + +*** WARNING! This will destroy all the card content. Use with care! *** + +For details about the medium image layout, see the definition in +board/freescale/common/imx/genimage.cfg.template_imx8. + +Boot the i.MX8MN EVK board +========================== + +To boot your newly created system (refer to the i.MX8MNano EVK Quick Start Guide +[1] for guidance): +- insert the SD card in the SD slot of the board; +- Configure the switches as follows (X = "don't care"): +SW1101: 1100XXXXXX [D1-D10] +SW1102: XXXXXXXXXX [D1-D10] +- put a micro USB cable into the Debug USB Port and connect using a terminal + emulator at 115200 bps, 8n1; +- power on the board. + +Enjoy! + +References +========== +[1] https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/evaluation-kit-for-the-i-mx-8m-nano-applications-processor:8MNANOD4-EVK diff --git a/board/freescale/imx8mpevk/readme.txt b/board/freescale/imx8mpevk/readme.txt new file mode 100644 index 000000000..dfc95af3e --- /dev/null +++ b/board/freescale/imx8mpevk/readme.txt @@ -0,0 +1,71 @@ +********************* +NXP i.MX8MP EVK board +********************* + +This file documents the Buildroot support for the i.MX 8M Plus EVK board. + +Build +===== + +First, configure Buildroot for the i.MX 8M Plus EVK board: + + make freescale_imx8mpevk_defconfig + +Build all components: + + make + +You will find in output/images/ the following files: + - bl31.bin + - boot.vfat + - ddr_fw.bin + - Image + - imx8-boot-sd.bin + - imx8mp-evk.dtb + - lpddr4_pmu_train_fw.bin + - rootfs.ext2 + - rootfs.ext4 + - rootfs.tar + - sdcard.img + - u-boot.bin + - u-boot.itb + - u-boot-nodtb.bin + - u-boot-spl.bin + - u-boot-spl-ddr.bin + +Create a bootable SD card +========================= + +To determine the device associated to the SD card have a look in the +/proc/partitions file: + + cat /proc/partitions + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped on a SD card. Launch the following +command as root: + + dd if=output/images/sdcard.img of=/dev/ + +*** WARNING! This will destroy all the card content. Use with care! *** + +For details about the medium image layout, see the definition in +board/freescale/common/imx/genimage.cfg.template_imx8. + +Boot the i.MX 8M Plus EVK board +=============================== + +To boot your newly created system (refer to the i.MX 8M Plus EVK Documentation +[1] for guidance): +- insert the SD card in the SD slot of the board; +- Configure the switches as follows (X = "don't care"): +SW4: 0011 SW4[1-4] +- put a micro USB cable into the Debug USB Port and connect using a terminal + emulator at 115200 bps, 8n1; +- power on the board. + +Enjoy! + +References +========== +[1] https://www.nxp.com/document/guide/get-started-with-the-i-mx-8m-plus-evk:GS-iMX-8M-Plus-EVK diff --git a/board/freescale/imx8mqevk/readme.txt b/board/freescale/imx8mqevk/readme.txt new file mode 100644 index 000000000..61fb2bc80 --- /dev/null +++ b/board/freescale/imx8mqevk/readme.txt @@ -0,0 +1,86 @@ +*************************** +Freescale i.MX8MQ EVK board +*************************** + +This file documents the Buildroot support for the Freescale i.MX8MQ +EVK board. + +Build +===== + +First, configure Buildroot for the i.MX8MQ EVK board: + +If you want to use the NXP kernel: + + make freescale_imx8mqevk_defconfig + +Or if you want to use a mainline kernel: + + make imx8mqevk_defconfig + +Build all components: + + make + +You will find in output/images/ the following files: + - bl31.bin + - boot.vfat + - fsl-imx8mq-evk.dtb + - Image + - imx8-boot-sd.bin + - lpddr4_pmu_train_fw.bin + - rootfs.ext2 + - rootfs.ext4 + - rootfs.tar + - sdcard.img + - signed_hdmi_imx8m.bin + - u-boot.bin + - u-boot.imx + - u-boot-nodtb.bin + - u-boot-spl-ddr.bin + +Create a bootable SD card +========================= + +To determine the device associated to the SD card have a look in the +/proc/partitions file: + + cat /proc/partitions + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped on a SD card. Launch the following +command as root: + + dd if=output/images/sdcard.img of=/dev/ + +*** WARNING! This will destroy all the card content. Use with care! *** + +For details about the medium image layout, see the definition in +board/freescale/common/imx/genimage.cfg.template_imx8. + +Boot the i.MX8MQ EVK board +========================== + +To boot your newly created system: +- insert the SD card in the SD slot of the board; +- Configure the switches as follows: +SW801: ON ON OFF OFF +SW802: ON OFF +- put a micro USB cable into the Debug USB Port and connect using a terminal + emulator at 115200 bps, 8n1; +- power on the board. + +Enable HDMI output +================== + +To enable HDMI output at boot you must provide the video kernel boot +argument. To set the video boot argument from U-Boot run after +stopping in U-Boot prompt: + +setenv mmcargs 'setenv bootargs console=${console} root=${mmcroot} video=HDMI-A-1:1920x1080-32@60' +saveenv +reset + +Change screen resolution to suit your connected display. + +Enjoy! diff --git a/board/freescale/imx8qmmek/readme.txt b/board/freescale/imx8qmmek/readme.txt new file mode 100644 index 000000000..b6bb3c476 --- /dev/null +++ b/board/freescale/imx8qmmek/readme.txt @@ -0,0 +1,76 @@ +*************************** +Freescale i.MX8QM MEK board +*************************** + +This file documents the Buildroot support for the NXP i.MX8QM MEK board. + +You will find a reference to the board on nxp.com: +https://www.nxp.com/design/development-boards/i.mx-evaluation-and-development-boards/i.mx-8quadmax-multisensory-enablement-kit-mek:MCIMX8QM-CPU + +You can also find the get started guide here: +https://www.nxp.com/document/guide/get-started-with-the-i.mx-8quadmax-mek:GS-iMX-8QM-MEK + +Build +===== + +First, configure Buildroot for the i.MX8QM MEK board: + +$ make freescale_imx8qmmek_defconfig + +Build all components: + +$ make + +You will find in output/images/ the following files: + - ahab-container.img + - bl31.bin + - boot.vfat + - fsl-imx8qm-mek.dtb + - Image + - imx8-boot-sd.bin + - mkimg.commit + - mx8qm-mek-scfw-tcm.bin + - mx8qm-val-scfw-tcm.bin + - mx8qm-a0-ddr4-scfw-tcm.bin + - mx8qm-a0-mek-scfw-tcm.bin + - mx8qm-a0-val-scfw-tcm.bin + - mx8qm-ddr4-scfw-tcm.bin + - rootfs.ext2 + - rootfs.ext4 + - rootfs.tar + - sdcard.img + - u-boot-atf.bin + - u-boot.bin + - u-boot-hash.bin + +Create a bootable SD card +========================= + +To determine the device associated to the SD card have a look in the +/proc/partitions file: + + cat /proc/partitions + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped on a SD card. Launch the following +command as root: + + dd if=output/images/sdcard.img of=/dev/ + +*** WARNING! This will destroy all the card content. Use with care! *** + +For details about the medium image layout, see the definition in +board/freescale/common/imx/genimage.cfg.template_imx8. + +Boot the i.MX8QM MEK board +========================== + +To boot your newly created system: +- insert the SD card in the SD slot of the board; +- Configure the boot switch as follows: +SW2: OFF OFF ON ON OFF OFF +- put a micro USB cable into the Debug USB Port and connect using a terminal + emulator at 115200 bps, 8n1; +- power on the board. + +Enjoy! diff --git a/board/freescale/imx8qxpmek/readme.txt b/board/freescale/imx8qxpmek/readme.txt new file mode 100644 index 000000000..45f7915fe --- /dev/null +++ b/board/freescale/imx8qxpmek/readme.txt @@ -0,0 +1,67 @@ +*************************** +Freescale i.MX8QXP MEK board +*************************** + +This file documents the Buildroot support for the Freescale i.MX8QXP +MEK board. + +Build +===== + +First, configure Buildroot for the i.MX8QXP MEK board: + + make freescale_imx8qxpmek_defconfig + +Build all components: + + make + +You will find in output/images/ the following files: + - ahab-container.img + - bl31.bin + - boot.vfat + - fsl-imx8qxp-mek.dtb + - Image + - imx8-boot-sd.bin + - mkimg.commit + - mx8qx-mek-scfw-tcm.bin + - mx8qx-val-scfw-tcm.bin + - rootfs.ext2 + - rootfs.ext4 + - rootfs.tar + - sdcard.img + - u-boot-atf.bin + - u-boot.bin + - u-boot-hash.bin + +Create a bootable SD card +========================= + +To determine the device associated to the SD card have a look in the +/proc/partitions file: + + cat /proc/partitions + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped on a SD card. Launch the following +command as root: + + dd if=output/images/sdcard.img of=/dev/ + +*** WARNING! This will destroy all the card content. Use with care! *** + +For details about the medium image layout, see the definition in +board/freescale/common/imx/genimage.cfg.template_imx8. + +Boot the i.MX8QXP MEK board +========================== + +To boot your newly created system: +- insert the SD card in the SD slot of the board; +- Configure the boot switch as follows: +SW2: ON ON OFF OFF +- put a micro USB cable into the Debug USB Port and connect using a terminal + emulator at 115200 bps, 8n1; +- power on the board. + +Enjoy! diff --git a/board/freescale/p1025twr/readme.txt b/board/freescale/p1025twr/readme.txt new file mode 100644 index 000000000..9179aeac6 --- /dev/null +++ b/board/freescale/p1025twr/readme.txt @@ -0,0 +1,25 @@ +The bootloader is no longer buildable in the latest Freescale/NXP tree or +upstream. As such, retrieve the "Image: SDK V1.2 e500v2 Binary ISO" from +NXP downloads and follow the release notes for reflashing. + +For programming the kernel and rootfs created by buildroot into the flash. +The fast way is to tftp transfer the files via one of the network interfaces. +Make sure your devkit has ipaddr and serverip defined to reach your tftp +server. + +(Assuming the default u-boot env from NXP) +1. Program the DTB to NOR flash + + => setenv dtbfile p1025twr.dtb + => run dtbflash + +2. Program the kernel and rootfs to NOR flash (reusing orignal rootfs + NOR location, as the kernel location is to small) + + => tftpboot $loadaddr uImage; protect off 0xeeb80000 +$filesize; erase 0xeeb80000 +$filesize; cp.b $loadaddr 0xeeb80000 $filesize; protect on 0xeeb80000 +$filesize; cmp.b $loadaddr 0xefa80000 $filesize + +3. Booting your new system + + => bootm 0xeeb80000 - 0xefe80000 + + You can login with user "root". diff --git a/board/freescale/t1040_t2080/readme.txt b/board/freescale/t1040_t2080/readme.txt new file mode 100644 index 000000000..65695295f --- /dev/null +++ b/board/freescale/t1040_t2080/readme.txt @@ -0,0 +1,51 @@ +For the bootloader, NXP has stablized at SDK2.0 (final release). It is +suggested to download the prebuilt from NXP downloads and follow the +release notes for reflashing. + +To program the kernel and rootfs created by buildroot into the flash. The +fast way is to tftp transfer the files via one of the network interfaces. +Make sure your devkit has ipaddr, netmask, and serverip defined to reach your +tftp server. Verify bootargs are reasonable (console=ttyS0,115200). + +------------------------------------------------------------------------------ + +Devkit: T1040RDB + +(Assuming the default u-boot env from NXP) +1. Program the DTB to NOR flash + + => tftpboot $loadaddr t1040d4rdb.dtb; protect off 0xe8800000 +$filesize; erase 0xe8800000 +$filesize; cp.b $loadaddr 0xe8800000 $filesize; protect on 0xe8800000 +$filesize; cmp.b $loadaddr 0xe8800000 $filesize + +2. Program the kernel and rootfs to NOR flash + + => tftpboot $loadaddr uImage; protect off 0xe8020000 +$filesize; erase 0xe8020000 +$filesize; cp.b $loadaddr 0xe8020000 $filesize; protect on 0xe8020000 +$filesize; cmp.b $loadaddr 0xe8020000 $filesize + => tftpboot $loadaddr rootfs.cpio.uboot; protect off 0xe9300000 +$filesize; erase 0xe9300000 +$filesize; cp.b $loadaddr 0xe9300000 $filesize; protect on 0xe9300000 +$filesize; cmp.b $loadaddr 0xe9300000 $filesize + +3. Booting your new system + + => boot + + You can login with user "root". +------------------------------------------------------------------------------ + +Devkit: T2080 QDS or RDB + +(Assuming the default u-boot env from NXP) +1. Netboot the kernel/rootfs/dtb + + => tftp 0x1000000 uImage && tftp 0x2000000 rootfs.cpio.uboot + + RDB => tftp 0x3000000 t2080rdb.dtb + or + QDS => tftp 0x3000000 t2080qds.dtb + +2. Booting your new system + + => bootm 0x1000000 0x2000000 0x3000000 + + You can login with user "root". + +3. If flashing is desired, a similar approach to the T1040 can be followed + with updated addresses for the flash layout. Example is in the NXP default + env. +------------------------------------------------------------------------------ diff --git a/board/freescale/warpboard/README b/board/freescale/warpboard/README new file mode 100644 index 000000000..67d4e044e --- /dev/null +++ b/board/freescale/warpboard/README @@ -0,0 +1,77 @@ +Build +===== + +First, configure Buildroot for your WarpBoard. + make warpboard_defconfig + +Build all components: + make + +You will find in ./output/images/ the following files: + - imx6sl-warp.dtb + - rootfs.ext4 + - rootfs.tar + - sdcard.img + - u-boot.imx + - zImage + +Update uboot +============ + +- Put warpboard in USB download mode by closing the j2 jumper on the + daugther board + +- Load u-boot.imx in the WarpBoard by using the imx-usb-loader host utility: + + $ ./output/host/bin/imx_usb -c output/host/etc/imx-loader.d/ output/images/u-boot.imx + +- U-Boot will appear in minicom + +- Reset the U-Boot environment to its default: + => env default -f -a + => saveenv + +- Run the DFU command in U-Boot: + => dfu 0 mmc 0 + +- Transfer U-Boot into flash by running this command in host side: + + $ sudo ./output/host/bin/dfu-util -D output/images/u-boot.imx -a boot + +- remove power and put the WarpBoard back into normal boot mode by + opening the j2 jumper. + +Update linux & rootfs +===================== + +Run the 'ums' command from the U-Boot prompt to mount the eMMC as USB mass +storage: + +=> ums 0 mmc 0 + +And then flash the sdcard.img into the eMMC: + + dd if=output/images/sdcard.img of=/dev/ + +*** WARNING! This will destroy all the eMMC content. Use it with care! *** + +Using bluetooth +================ + +Enable the bluez_utils or bluez5_utils package, and then run: + +$ hciattach /dev/ttymxc4 any +$ hciconfig hci0 up + +Using Wifi +========== + +# modprobe brcmfmac +# iwconfig wlan0 essid ACCESSPOINTNAME +# wpa_passphrase ACCESSPOINTNAME > /etc/wpa.conf +(enter the wifi password and press enter) +# wpa_supplicant -Dwext -iwlan0 -c /etc/wpa.conf & +# udhcpc -i wlan0 +# ping buildroot.org + +Enjoy! diff --git a/board/freescale/warpboard/linux.fragment b/board/freescale/warpboard/linux.fragment new file mode 100644 index 000000000..892d0cb7b --- /dev/null +++ b/board/freescale/warpboard/linux.fragment @@ -0,0 +1 @@ +CONFIG_CFG80211_WEXT=y diff --git a/board/freescale/warpboard/rootfs_overlay/lib/firmware/brcm/brcmfmac4330-sdio.txt b/board/freescale/warpboard/rootfs_overlay/lib/firmware/brcm/brcmfmac4330-sdio.txt new file mode 100644 index 000000000..9546246b9 --- /dev/null +++ b/board/freescale/warpboard/rootfs_overlay/lib/firmware/brcm/brcmfmac4330-sdio.txt @@ -0,0 +1,40 @@ +# bcm94330wlsdgb.txt +manfid=0x2d0 +prodid=0x0552 +vendid=0x14e4 +devid=0x4360 +boardtype=0x0552 +boardrev=0x11 +# this design has 2.4GHz SP3T switch +boardflags=0x00080200 +nocrc=1 +xtalfreq=37400 +boardnum=22 +macaddr=00:90:4c:c5:12:38 +ag0=255 +aa2g=1 +ccode=CN +pa0b0=0x14d0 +pa0b1=0xfd98 +pa0b2=0xff78 +rssismf2g=0xa +rssismc2g=0x3 +rssisav2g=0x7 +maxp2ga0=0x50 +sromrev=3 +il0macaddr=00:90:4c:c5:12:38 +wl0id=0x431b +cckPwrOffset=5 +ofdm2gpo=0x66666666 +mcs2gpo0=0x6666 +mcs2gpo1=0x6666 +swctrlmap_2g=0x04040404,0x02020202,0x02020404,0x10202,0x1ff +swctrlmap_5g=0x00100010,0x00280020,0x00200010,0x14202,0x2f8 +rfreg033=0x19 +rfreg033_cck=0x1f +dacrate2g=160 +txalpfbyp2g=1 +bphyscale=17 +cckPwrIdxCorr=-15 +pacalidx2g=45 +txgaintbl=1 diff --git a/board/friendlyarm/nanopc-t4/extlinux.conf b/board/friendlyarm/nanopc-t4/extlinux.conf new file mode 100644 index 000000000..31c6b30d3 --- /dev/null +++ b/board/friendlyarm/nanopc-t4/extlinux.conf @@ -0,0 +1,4 @@ +label RK3399_NanoPC_T4 linux + kernel /Image + devicetree /rk3399-nanopc-t4.dtb + append earlycon=uart8250,mmio32,0xff1a0000 root=/dev/mmcblk1p4 rootwait diff --git a/board/friendlyarm/nanopc-t4/genimage.cfg b/board/friendlyarm/nanopc-t4/genimage.cfg new file mode 100644 index 000000000..178732226 --- /dev/null +++ b/board/friendlyarm/nanopc-t4/genimage.cfg @@ -0,0 +1,39 @@ +image boot.vfat { + vfat { + files = { + "Image", + "rk3399-nanopc-t4.dtb", + "extlinux" + } + } + + size = 64M +} + +image sdcard.img { + hdimage { + partition-table-type = "gpt" + } + + partition loader1 { + image = "idbloader.img" + offset = 32K + } + + partition loader2 { + image = "u-boot.itb" + offset = 8M + } + + partition boot { + partition-type-uuid = F + bootable = "true" + image = "boot.vfat" + offset = 16M + } + + partition rootfs { + partition-type-uuid = b921b045-1df0-41c3-af44-4c6f280d3fae + image = "rootfs.ext4" + } +} diff --git a/board/friendlyarm/nanopc-t4/post-build.sh b/board/friendlyarm/nanopc-t4/post-build.sh new file mode 100755 index 000000000..ba29375c0 --- /dev/null +++ b/board/friendlyarm/nanopc-t4/post-build.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" + +install -m 0644 -D $BOARD_DIR/extlinux.conf $BINARIES_DIR/extlinux/extlinux.conf diff --git a/board/friendlyarm/nanopc-t4/readme.txt b/board/friendlyarm/nanopc-t4/readme.txt new file mode 100644 index 000000000..0989c6cc1 --- /dev/null +++ b/board/friendlyarm/nanopc-t4/readme.txt @@ -0,0 +1,45 @@ +FriendlyARM NANOPC-T4 +===================== + +Build: + + $ make friendlyarm_nanopc_t4_defconfig + $ make + +Files created in output directory +================================= + +output/images + +├── bl31.elf +├── boot.vfat +├── extlinux +├── idbloader.img +├── Image +├── rk3399-nanopc-t4.dtb +├── rootfs.ext2 +├── rootfs.ext4 -> rootfs.ext2 +├── rootfs.tar +├── sdcard.img +├── u-boot.bin +└── u-boot.itb + +Creating bootable SD card: +========================== + +Simply invoke (as root) + +sudo dd if=output/images/sdcard.img of=/dev/sdX && sync + +Where X is your SD card device + +Serial console +-------------- + +Baudrate for this board is 1500000 + +Login: +------ +Apply power and press the PWR button for 3 sec. Enter 'root' as login user, and the prompt is ready. + +https://wiki.amarulasolutions.com/bsp/rockchip/rk3399/npc_t4.html diff --git a/board/friendlyarm/nanopi-a64/boot.cmd b/board/friendlyarm/nanopi-a64/boot.cmd new file mode 100644 index 000000000..446bd8567 --- /dev/null +++ b/board/friendlyarm/nanopi-a64/boot.cmd @@ -0,0 +1,6 @@ +setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait + +fatload mmc 0 $kernel_addr_r Image +fatload mmc 0 $fdt_addr_r sun50i-a64-nanopi-a64.dtb + +booti $kernel_addr_r - $fdt_addr_r diff --git a/board/friendlyarm/nanopi-a64/genimage.cfg b/board/friendlyarm/nanopi-a64/genimage.cfg new file mode 100644 index 000000000..690731414 --- /dev/null +++ b/board/friendlyarm/nanopi-a64/genimage.cfg @@ -0,0 +1,40 @@ +image boot.vfat { + vfat { + files = { + "Image", + "sun50i-a64-nanopi-a64.dtb", + "boot.scr" + } + } + + size = 64M +} + +image sdcard.img { + hdimage { + } + + partition spl { + in-partition-table = "no" + image = "sunxi-spl.bin" + offset = 8K + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot.itb" + offset = 40K + size = 1M # 1MB - 40KB + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/friendlyarm/nanopi-a64/readme.txt b/board/friendlyarm/nanopi-a64/readme.txt new file mode 100644 index 000000000..88c4e661c --- /dev/null +++ b/board/friendlyarm/nanopi-a64/readme.txt @@ -0,0 +1,37 @@ +Intro +===== + +This default configuration will allow you to start experimenting with the +buildroot environment for the Nanopi A64. With the current configuration +it will bring-up the board, and allow access through the serial console. + +Nanopi A64 link: +http://nanopi.io/nanopi-a64.html + +Wiki link: +https://openedev.amarulasolutions.com/display/ODWIKI/FriendlyARM+Nanopi+A64 + +This configuration uses U-Boot mainline and kernel mainline. + +How to build +============ + + $ make friendlyarm_nanopi_a64_defconfig + $ make + +Note: you will need access to the internet to download the required +sources. + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + $ sudo sync + +Insert the micro SDcard in your Nanopi A64 and power it up. The console +is on the serial line, 115200 8N1. diff --git a/board/friendlyarm/nanopi-m1-plus/boot.cmd b/board/friendlyarm/nanopi-m1-plus/boot.cmd new file mode 100644 index 000000000..35a1d65d3 --- /dev/null +++ b/board/friendlyarm/nanopi-m1-plus/boot.cmd @@ -0,0 +1,8 @@ +setenv fdt_high ffffffff + +setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait + +fatload mmc 0 $kernel_addr_r zImage +fatload mmc 0 $fdt_addr_r sun8i-h3-nanopi-m1-plus.dtb + +bootz $kernel_addr_r - $fdt_addr_r diff --git a/board/friendlyarm/nanopi-m1-plus/genimage.cfg b/board/friendlyarm/nanopi-m1-plus/genimage.cfg new file mode 100644 index 000000000..5257cf89c --- /dev/null +++ b/board/friendlyarm/nanopi-m1-plus/genimage.cfg @@ -0,0 +1,36 @@ +# Minimal SD card image for the NanoPi M1 Plus +# +image boot.vfat { + vfat { + files = { + "zImage", + "sun8i-h3-nanopi-m1-plus.dtb", + "boot.scr" + } + } + + size = 10M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot-sunxi-with-spl.bin" + offset = 8K + size = 1016K # 1MB - 8KB + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/friendlyarm/nanopi-m1-plus/readme.txt b/board/friendlyarm/nanopi-m1-plus/readme.txt new file mode 100644 index 000000000..0327dec80 --- /dev/null +++ b/board/friendlyarm/nanopi-m1-plus/readme.txt @@ -0,0 +1,29 @@ +NanoPi M1 Plus + +Intro +===== + +This default configuration will allow you to start experimenting with the +buildroot environment for the NanoPi M1 Plus. With the current configuration +it will bring-up the board, and allow access through the serial console. + +How to build it +=============== + +Configure Buildroot: + + $ make friendlyarm_nanopi_m1_plus_defconfig + +Compile everything and build the SD card image: + + $ make + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX diff --git a/board/friendlyarm/nanopi-m1/boot.cmd b/board/friendlyarm/nanopi-m1/boot.cmd new file mode 100644 index 000000000..b4d612ede --- /dev/null +++ b/board/friendlyarm/nanopi-m1/boot.cmd @@ -0,0 +1,8 @@ +setenv fdt_high ffffffff + +setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait + +fatload mmc 0 $kernel_addr_r zImage +fatload mmc 0 $fdt_addr_r sun8i-h3-nanopi-m1.dtb + +bootz $kernel_addr_r - $fdt_addr_r diff --git a/board/friendlyarm/nanopi-m1/genimage.cfg b/board/friendlyarm/nanopi-m1/genimage.cfg new file mode 100644 index 000000000..3b2b82ce9 --- /dev/null +++ b/board/friendlyarm/nanopi-m1/genimage.cfg @@ -0,0 +1,37 @@ +# Minimal SD card image for the NanoPi M1 +# +image boot.vfat { + vfat { + files = { + "zImage", + "sun8i-h3-nanopi-m1.dtb", + "boot.scr" + } + } + + size = 10M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot-sunxi-with-spl.bin" + offset = 8K + size = 1016K # 1MB - 8KB + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/board/friendlyarm/nanopi-m1/readme.txt b/board/friendlyarm/nanopi-m1/readme.txt new file mode 100644 index 000000000..6a34c4239 --- /dev/null +++ b/board/friendlyarm/nanopi-m1/readme.txt @@ -0,0 +1,29 @@ +NanoPi M1 + +Intro +===== + +This default configuration will allow you to start experimenting with the +buildroot environment for the NanoPi M1. With the current configuration +it will bring-up the board, and allow access through the serial console. + +How to build it +=============== + +Configure Buildroot: + + $ make friendlyarm_nanopi_m1_defconfig + +Compile everything and build the SD card image: + + $ make + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX diff --git a/board/friendlyarm/nanopi-m4/extlinux.conf b/board/friendlyarm/nanopi-m4/extlinux.conf new file mode 100644 index 000000000..fb24f09eb --- /dev/null +++ b/board/friendlyarm/nanopi-m4/extlinux.conf @@ -0,0 +1,4 @@ +label RK3399_NANOPI_M4 linux + kernel /Image + devicetree /rk3399-nanopi-m4.dtb + append earlycon=uart8250,mmio32,0xff1a0000 root=/dev/mmcblk1p4 rw rootwait diff --git a/board/friendlyarm/nanopi-m4/genimage.cfg b/board/friendlyarm/nanopi-m4/genimage.cfg new file mode 100644 index 000000000..3e6818eab --- /dev/null +++ b/board/friendlyarm/nanopi-m4/genimage.cfg @@ -0,0 +1,39 @@ +image boot.vfat { + vfat { + files = { + "Image", + "rk3399-nanopi-m4.dtb", + "extlinux" + } + } + + size = 64M +} + +image sdcard.img { + hdimage { + partition-table-type = "gpt" + } + + partition loader1 { + image = "idbloader.img" + offset = 32K + } + + partition loader2 { + image = "u-boot.itb" + offset = 8M + } + + partition boot { + partition-type-uuid = F + bootable = "true" + image = "boot.vfat" + offset = 16M + } + + partition rootfs { + partition-type-uuid = b921b045-1df0-41c3-af44-4c6f280d3fae + image = "rootfs.ext4" + } +} diff --git a/board/friendlyarm/nanopi-m4/post-build.sh b/board/friendlyarm/nanopi-m4/post-build.sh new file mode 100755 index 000000000..ba29375c0 --- /dev/null +++ b/board/friendlyarm/nanopi-m4/post-build.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" + +install -m 0644 -D $BOARD_DIR/extlinux.conf $BINARIES_DIR/extlinux/extlinux.conf diff --git a/board/friendlyarm/nanopi-m4/readme.txt b/board/friendlyarm/nanopi-m4/readme.txt new file mode 100644 index 000000000..0553bf837 --- /dev/null +++ b/board/friendlyarm/nanopi-m4/readme.txt @@ -0,0 +1,45 @@ +FriendlyARM NANOPI-M4 +===================== + +Build: + + $ make friendlyarm_nanopi_m4_defconfig + $ make + +Files created in output directory +================================= + +output/images + +├── bl31.elf +├── boot.vfat +├── extlinux +├── idbloader.img +├── Image +├── rk3399-nanopi-m4.dtb +├── rootfs.ext2 +├── rootfs.ext4 -> rootfs.ext2 +├── rootfs.tar +├── sdcard.img +├── u-boot.bin +└── u-boot.itb + +Creating bootable SD card: +========================== + +Simply invoke (as root) + +sudo dd if=output/images/sdcard.img of=/dev/sdX && sync + +Where X is your SD card device + +Serial console +-------------- + +Baudrate for this board is 1500000 + +Login: +------ +Enter 'root' as login user, and the prompt is ready. + +https://wiki.amarulasolutions.com/bsp/rockchip/rk3399/nanopi_m4.html diff --git a/board/friendlyarm/nanopi-neo-plus2/extlinux.conf b/board/friendlyarm/nanopi-neo-plus2/extlinux.conf new file mode 100644 index 000000000..fcb6f632c --- /dev/null +++ b/board/friendlyarm/nanopi-neo-plus2/extlinux.conf @@ -0,0 +1,4 @@ +label linux + kernel /Image + devicetree /sun50i-h5-nanopi-neo-plus2.dtb + append console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait diff --git a/board/friendlyarm/nanopi-neo-plus2/genimage.cfg b/board/friendlyarm/nanopi-neo-plus2/genimage.cfg new file mode 100644 index 000000000..900020139 --- /dev/null +++ b/board/friendlyarm/nanopi-neo-plus2/genimage.cfg @@ -0,0 +1,40 @@ +image boot.vfat { + vfat { + files = { + "Image", + "sun50i-h5-nanopi-neo-plus2.dtb", + "extlinux" + } + } + + size = 64M +} + +image sdcard.img { + hdimage { + } + + partition spl { + in-partition-table = "no" + image = "sunxi-spl.bin" + offset = 8K + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot.itb" + offset = 40K + size = 1M # 1MB - 40KB + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/friendlyarm/nanopi-neo-plus2/linux-extras.config b/board/friendlyarm/nanopi-neo-plus2/linux-extras.config new file mode 100644 index 000000000..52b4b4b29 --- /dev/null +++ b/board/friendlyarm/nanopi-neo-plus2/linux-extras.config @@ -0,0 +1,10 @@ +# wireless core +CONFIG_WIRELESS=y +CONFIG_CFG80211=y +CONFIG_MAC80211=y +CONFIG_CFG80211_WEXT=y + +# wireless drivers +CONFIG_WLAN=y +CONFIG_WLAN_VENDOR_BROADCOM=y +CONFIG_BRCMFMAC=m diff --git a/board/friendlyarm/nanopi-neo-plus2/post-build.sh b/board/friendlyarm/nanopi-neo-plus2/post-build.sh new file mode 100755 index 000000000..ec20fca7d --- /dev/null +++ b/board/friendlyarm/nanopi-neo-plus2/post-build.sh @@ -0,0 +1,4 @@ +#!/bin/sh +BOARD_DIR="$(dirname $0)" + +install -m 0644 -D $BOARD_DIR/extlinux.conf $BINARIES_DIR/extlinux/extlinux.conf diff --git a/board/friendlyarm/nanopi-neo-plus2/readme.txt b/board/friendlyarm/nanopi-neo-plus2/readme.txt new file mode 100644 index 000000000..ae5995202 --- /dev/null +++ b/board/friendlyarm/nanopi-neo-plus2/readme.txt @@ -0,0 +1,37 @@ +Intro +===== + +This default configuration will allow you to start experimenting with the +buildroot environment for the Nanopi NEO Plus2. With the current configuration +it will bring-up the board, and allow access through the serial console. + +Nanopi NEO2 link: +http://nanopi.io/nanopi-neo-plus2.html + +Wiki link: +http://wiki.friendlyarm.com/wiki/index.php/NanoPi_NEO_Plus2 + +This configuration uses U-Boot mainline and kernel mainline. + +How to build +============ + + $ make friendlyarm_nanopi_neo_plus2_defconfig + $ make + +Note: you will need access to the internet to download the required +sources. + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + $ sudo sync + +Insert the micro SDcard in your Nanopi NEO Plus2 and power it up. The console +is on the serial line, 115200 8N1. diff --git a/board/friendlyarm/nanopi-neo-plus2/rootfs_overlay/lib/firmware/brcm/brcmfmac43430-sdio.friendlyarm,nanopi-neo-plus2.txt b/board/friendlyarm/nanopi-neo-plus2/rootfs_overlay/lib/firmware/brcm/brcmfmac43430-sdio.friendlyarm,nanopi-neo-plus2.txt new file mode 100644 index 000000000..740d172eb --- /dev/null +++ b/board/friendlyarm/nanopi-neo-plus2/rootfs_overlay/lib/firmware/brcm/brcmfmac43430-sdio.friendlyarm,nanopi-neo-plus2.txt @@ -0,0 +1,53 @@ +#AP6212_NVRAM_V1.0.1_20160606 +# 2.4 GHz, 20 MHz BW mode +# The following parameter values are just placeholders, need to be updated. +manfid=0x2d0 +prodid=0x0726 +vendid=0x14e4 +devid=0x43e2 +boardtype=0x0726 +boardrev=0x1101 +boardnum=22 +macaddr=00:90:4c:c5:12:38 +sromrev=11 +boardflags=0x00404201 +xtalfreq=26000 +nocrc=1 +ag0=255 +aa2g=1 +ccode=ALL + +pa0itssit=0x20 +extpagain2g=0 + +#PA parameters for 2.4GHz, measured at CHIP OUTPUT +pa2ga0=-168,7161,-820 +AvVmid_c0=0x0,0xc8 +cckpwroffset0=5 + +# PPR params +maxp2ga0=90 +txpwrbckof=6 +cckbw202gpo=0x5555 +legofdmbw202gpo=0x77777777 +mcsbw202gpo=0xaaaaaaaa + +# OFDM IIR : +ofdmdigfilttype=7 +# PAPD mode: +papdmode=2 + +il0macaddr=00:90:4c:c5:12:38 +wl0id=0x431b + +#OOB parameters +hostwake=0x40 +hostrdy=0x41 +usbrdy=0x03 +usbrdydelay=100 +deadman_to=0xffffffff +# muxenab: 0x1 for UART enable, 0x10 for Host awake +muxenab=0x10 +# CLDO PWM voltage settings - 0x4 - 1.1 volt +#cldo_pwm=0x4 +glitch_based_crsmin=1 diff --git a/board/friendlyarm/nanopi-neo2/boot.cmd b/board/friendlyarm/nanopi-neo2/boot.cmd new file mode 100644 index 000000000..9a39f4afc --- /dev/null +++ b/board/friendlyarm/nanopi-neo2/boot.cmd @@ -0,0 +1,6 @@ +setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait + +fatload mmc 0 $kernel_addr_r Image +fatload mmc 0 $fdt_addr_r sun50i-h5-nanopi-neo2.dtb + +booti $kernel_addr_r - $fdt_addr_r diff --git a/board/friendlyarm/nanopi-neo2/genimage.cfg b/board/friendlyarm/nanopi-neo2/genimage.cfg new file mode 100644 index 000000000..3163a0659 --- /dev/null +++ b/board/friendlyarm/nanopi-neo2/genimage.cfg @@ -0,0 +1,40 @@ +image boot.vfat { + vfat { + files = { + "Image", + "sun50i-h5-nanopi-neo2.dtb", + "boot.scr" + } + } + + size = 64M +} + +image sdcard.img { + hdimage { + } + + partition spl { + in-partition-table = "no" + image = "sunxi-spl.bin" + offset = 8K + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot.itb" + offset = 40K + size = 1M # 1MB - 40KB + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/friendlyarm/nanopi-neo2/readme.txt b/board/friendlyarm/nanopi-neo2/readme.txt new file mode 100644 index 000000000..0f445e2be --- /dev/null +++ b/board/friendlyarm/nanopi-neo2/readme.txt @@ -0,0 +1,37 @@ +Intro +===== + +This default configuration will allow you to start experimenting with the +buildroot environment for the Nanopi NEO2. With the current configuration +it will bring-up the board, and allow access through the serial console. + +Nanopi NEO2 link: +http://nanopi.io/nanopi-neo2.html + +Wiki link: +https://openedev.amarulasolutions.com/display/ODWIKI/FriendlyARM+NanoPi+NEO2 + +This configuration uses U-Boot mainline and kernel mainline. + +How to build +============ + + $ make friendlyarm_nanopi_neo2_defconfig + $ make + +Note: you will need access to the internet to download the required +sources. + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + $ sudo sync + +Insert the micro SDcard in your Nanopi NEO2 and power it up. The console +is on the serial line, 115200 8N1. diff --git a/board/friendlyarm/nanopi-neo4/extlinux.conf b/board/friendlyarm/nanopi-neo4/extlinux.conf new file mode 100644 index 000000000..91eef67fb --- /dev/null +++ b/board/friendlyarm/nanopi-neo4/extlinux.conf @@ -0,0 +1,4 @@ +label NanoPi Neo4 linux + kernel /boot/Image + devicetree /boot/rk3399-nanopi-neo4.dtb + append earlycon=uart8250,mmio32,0xff1a0000 root=/dev/mmcblk1p1 rootwait diff --git a/board/friendlyarm/nanopi-neo4/genimage.cfg b/board/friendlyarm/nanopi-neo4/genimage.cfg new file mode 100644 index 000000000..966c86927 --- /dev/null +++ b/board/friendlyarm/nanopi-neo4/genimage.cfg @@ -0,0 +1,22 @@ +image sdcard.img { + hdimage { + } + + partition u-boot-tpl-spl-dtb { + in-partition-table = "no" + image = "idbloader.img" + offset = 32K + } + + partition u-boot-dtb { + in-partition-table = "no" + image = "u-boot.itb" + offset = 8M + size = 30M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/friendlyarm/nanopi-neo4/post-build.sh b/board/friendlyarm/nanopi-neo4/post-build.sh new file mode 100755 index 000000000..1f5ff6a61 --- /dev/null +++ b/board/friendlyarm/nanopi-neo4/post-build.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" + +install -m 0644 -D $BOARD_DIR/extlinux.conf $TARGET_DIR/boot/extlinux/extlinux.conf diff --git a/board/friendlyarm/nanopi-neo4/readme.txt b/board/friendlyarm/nanopi-neo4/readme.txt new file mode 100644 index 000000000..7c04a5280 --- /dev/null +++ b/board/friendlyarm/nanopi-neo4/readme.txt @@ -0,0 +1,53 @@ +Intro +===== + +NanoPi Neo4 is a RK3399 SoC based ARM64 board. + + +Official wiki: http://wiki.friendlyarm.com/wiki/index.php/NanoPi_NEO4 +Mainline wiki: https://wiki.amarulasolutions.com/bsp/rockchip/rk3399/neo4.html + +Build +===== + +Run NanoPi Neo4 configuration + + $ make friendlyarm_nanopi_neo4_defconfig + +To build, run make comamnd. + + $ make + +Files created in output directory +================================= + +output/images + +├── bl31.bin +├── bl31.elf +├── Image +├── rk3399-nanopi-neo4.dtb +├── rootfs.ext2 +├── rootfs.ext4 -> rootfs.ext2 +├── rootfs.tar +├── sdcard.img +├── u-boot.bin +├── u-boot.itb +├── u-boot-spl-dtb.bin +├── u-boot-tpl-dtb.bin +├── u-boot-tpl-dtb.img +└── u-boot-tpl-spl-dtb.img + +Creating bootable SD card: +========================= + +Simply invoke (as root) + + # dd if=output/images/sdcard.img of=/dev/sdX && sync + +Where X is your SD card device + +Serial console +-------------- + +Baudrate for this board is 1500000 diff --git a/board/friendlyarm/nanopi-r1/boot.cmd b/board/friendlyarm/nanopi-r1/boot.cmd new file mode 100644 index 000000000..9f0cdbfe5 --- /dev/null +++ b/board/friendlyarm/nanopi-r1/boot.cmd @@ -0,0 +1,8 @@ +setenv fdt_high ffffffff + +setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait + +fatload mmc 0 $kernel_addr_r zImage +fatload mmc 0 $fdt_addr_r sun8i-h3-nanopi-r1.dtb + +bootz $kernel_addr_r - $fdt_addr_r diff --git a/board/friendlyarm/nanopi-r1/genimage.cfg b/board/friendlyarm/nanopi-r1/genimage.cfg new file mode 100644 index 000000000..a180311ca --- /dev/null +++ b/board/friendlyarm/nanopi-r1/genimage.cfg @@ -0,0 +1,37 @@ +# Minimal SD card image for the NanoPi M1 +# +image boot.vfat { + vfat { + files = { + "zImage", + "sun8i-h3-nanopi-r1.dtb", + "boot.scr" + } + } + + size = 10M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot-sunxi-with-spl.bin" + offset = 8K + size = 1016K # 1MB - 8KB + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/board/friendlyarm/nanopi-r1/kernel/linux-extras.config b/board/friendlyarm/nanopi-r1/kernel/linux-extras.config new file mode 100644 index 000000000..206b3810a --- /dev/null +++ b/board/friendlyarm/nanopi-r1/kernel/linux-extras.config @@ -0,0 +1,2 @@ +# USB ethernet +CONFIG_USB_RTL8152=y diff --git a/board/friendlyarm/nanopi-r1/kernel/sun8i-h3-nanopi-r1.dts b/board/friendlyarm/nanopi-r1/kernel/sun8i-h3-nanopi-r1.dts new file mode 100644 index 000000000..ca15a57be --- /dev/null +++ b/board/friendlyarm/nanopi-r1/kernel/sun8i-h3-nanopi-r1.dts @@ -0,0 +1,170 @@ +/* + * Copyright (C) 2019 Igor Pecovnik + * + * This file is dual-licensed: you can use it either under the terms + * of the GPL or the X11 license, at your option. Note that this dual + * licensing only applies to this file, and not this project as a + * whole. + * + * a) This file is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This file is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * Or, alternatively, + * + * b) Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "sun8i-h3-nanopi.dtsi" + +/ { + model = "FriendlyElec NanoPi-R1"; + compatible = "friendlyarm,nanopi-r1", "allwinner,sun8i-h3"; + + aliases { + serial1 = &uart3; + ethernet0 = &emac; + ethernet1 = &emac; + ethernet2 = &sdio_wifi; + }; + + wifi_pwrseq: wifi_pwrseq { + compatible = "mmc-pwrseq-simple"; + pinctrl-names = "default"; + reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */ + }; + + reg_gmac_3v3: gmac-3v3 { + compatible = "regulator-fixed"; + regulator-name = "gmac-3v3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + startup-delay-us = <100000>; + enable-active-high; + gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>; + }; + + leds { + /delete-node/ status; + /delete-node/ pwr; + led1 { + label = "LED1"; + gpios = <&pio 0 10 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "heartbeat"; + }; + + led2 { + label = "LED2"; + gpios = <&pio 6 11 GPIO_ACTIVE_HIGH>; + default-state = "off"; + linux,default-trigger = "netdev"; + }; + + led3 { + label = "LED3"; + gpios = <&pio 0 9 GPIO_ACTIVE_HIGH>; + default-state = "off"; + linux,default-trigger = "netdev"; + }; + }; + + r_gpio_keys { + compatible = "gpio-keys"; + input-name = "k1"; + pinctrl-names = "default"; + pinctrl-0 = <&sw_r_npi>; + + /delete-node/ k1; + reset { + label = "reset"; + linux,code = ; + gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>; + }; + }; +}; + +&emac { + pinctrl-names = "default"; + pinctrl-0 = <&emac_rgmii_pins>; + phy-supply = <®_gmac_3v3>; + phy-handle = <&ext_rgmii_phy>; + phy-mode = "rgmii"; + + status = "okay"; +}; + +&external_mdio { + ext_rgmii_phy: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <7>; + }; +}; + +&mmc1 { + vmmc-supply = <®_vcc3v3>; + vqmmc-supply = <®_vcc3v3>; + mmc-pwrseq = <&wifi_pwrseq>; + bus-width = <4>; + non-removable; + status = "okay"; + + sdio_wifi: sdio_wifi@1 { + reg = <1>; + compatible = "brcm,bcm4329-fmac"; + interrupt-parent = <&pio>; + interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10 / EINT10 */ + interrupt-names = "host-wake"; + }; +}; + +&mmc2 { + pinctrl-names = "default"; + pinctrl-0 = <&mmc2_8bit_pins>; + vmmc-supply = <®_vcc3v3>; + vqmmc-supply = <®_vcc3v3>; + bus-width = <8>; + non-removable; + status = "okay"; +}; + +&ohci0 { + status = "okay"; +}; + +&ohci1 { + status = "okay"; +}; + +&usb_otg { + dr_mode = "peripheral"; + status = "okay"; +}; + +&usbphy { + status = "okay"; +}; diff --git a/board/friendlyarm/nanopi-r1/readme.txt b/board/friendlyarm/nanopi-r1/readme.txt new file mode 100644 index 000000000..fa3114fc8 --- /dev/null +++ b/board/friendlyarm/nanopi-r1/readme.txt @@ -0,0 +1,29 @@ +NanoPi R1 + +Intro +===== + +This default configuration will allow you to start experimenting with the +buildroot environment for the NanoPi R1. With the current configuration +it will bring-up the board, and allow access through the serial console. + +How to build it +=============== + +Configure Buildroot: + + $ make friendlyarm_nanopi_r1_defconfig + +Compile everything and build the SD card image: + + $ make + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX diff --git a/board/friendlyarm/nanopi-r1/uboot/nanopi_r1_defconfig b/board/friendlyarm/nanopi-r1/uboot/nanopi_r1_defconfig new file mode 100644 index 000000000..e028b41a4 --- /dev/null +++ b/board/friendlyarm/nanopi-r1/uboot/nanopi_r1_defconfig @@ -0,0 +1,22 @@ +CONFIG_ARM=y +CONFIG_ARCH_SUNXI=y +CONFIG_SPL=y +CONFIG_MACH_SUN8I_H3=y +CONFIG_DRAM_CLK=408 +CONFIG_DRAM_ZQ=3881979 +CONFIG_DRAM_ODT_EN=y +CONFIG_MACPWR="PD6" +# CONFIG_VIDEO_DE2 is not set +CONFIG_NR_DRAM_BANKS=1 +# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set +CONFIG_CONSOLE_MUX=y +CONFIG_SYS_CLK_FREQ=480000000 +# CONFIG_CMD_FLASH is not set +# CONFIG_SPL_DOS_PARTITION is not set +# CONFIG_SPL_EFI_PARTITION is not set +CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-nanopi-r1" +CONFIG_SUN8I_EMAC=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_OHCI_HCD=y +CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y +CONFIG_MMC_SUNXI_SLOT_EXTRA=2 diff --git a/board/friendlyarm/nanopi-r1/uboot/sun8i-h3-nanopi-r1.dts b/board/friendlyarm/nanopi-r1/uboot/sun8i-h3-nanopi-r1.dts new file mode 100644 index 000000000..9c3c574e0 --- /dev/null +++ b/board/friendlyarm/nanopi-r1/uboot/sun8i-h3-nanopi-r1.dts @@ -0,0 +1,102 @@ +/* + * Copyright (C) 2019 Igor Pecovnik + * + * This file is dual-licensed: you can use it either under the terms + * of the GPL or the X11 license, at your option. Note that this dual + * licensing only applies to this file, and not this project as a + * whole. + * + * a) This file is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This file is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * Or, alternatively, + * + * b) Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "sun8i-h3-nanopi.dtsi" + +/ { + model = "FriendlyARM NanoPi R1"; + compatible = "friendlyarm,nanopi-neo", "allwinner,sun8i-h3"; + + reg_gmac_3v3: gmac-3v3 { + compatible = "regulator-fixed"; + pinctrl-names = "default"; + regulator-name = "gmac-3v3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + startup-delay-us = <100000>; + enable-active-high; + gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>; + }; + +}; + +&ehci0 { + status = "okay"; +}; + +&pio { + gmac_power_pin_nanopi: gmac_power_pin@0 { + pins = "PD6"; + function = "gpio_out"; + }; +}; + +&ohci0 { + status = "okay"; +}; + +&mmc2 { + pinctrl-names = "default"; + pinctrl-0 = <&mmc2_8bit_pins>; + vmmc-supply = <®_vcc3v3>; + bus-width = <8>; + non-removable; + cap-mmc-hw-reset; + status = "okay"; +}; + +&emac { + pinctrl-names = "default"; + pinctrl-0 = <&emac_rgmii_pins>; + phy-supply = <®_gmac_3v3>; + phy-handle = <&ext_rgmii_phy>; + phy-mode = "rgmii"; + + status = "okay"; +}; + +&external_mdio { + ext_rgmii_phy: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <7>; + }; +}; diff --git a/board/friendlyarm/nanopi-r2s/extlinux.conf b/board/friendlyarm/nanopi-r2s/extlinux.conf new file mode 100644 index 000000000..1ea0cdd8a --- /dev/null +++ b/board/friendlyarm/nanopi-r2s/extlinux.conf @@ -0,0 +1,4 @@ +label NanoPi R2S linux + kernel /boot/Image + devicetree /boot/rk3328-nanopi-r2s.dtb + append root=/dev/mmcblk0p1 rw rootwait diff --git a/board/friendlyarm/nanopi-r2s/genimage.cfg b/board/friendlyarm/nanopi-r2s/genimage.cfg new file mode 100644 index 000000000..a686b4f14 --- /dev/null +++ b/board/friendlyarm/nanopi-r2s/genimage.cfg @@ -0,0 +1,22 @@ +image sdcard.img { + hdimage { + } + + partition u-boot-tpl-spl-dtb { + in-partition-table = "no" + image = "idbloader.img" + offset = 32K + } + + partition u-boot-dtb { + in-partition-table = "no" + image = "u-boot.itb" + offset = 8M + } + + partition rootfs { + partition-type = 0x83 + offset = 16M + image = "rootfs.ext4" + } +} diff --git a/board/friendlyarm/nanopi-r2s/post-build.sh b/board/friendlyarm/nanopi-r2s/post-build.sh new file mode 100755 index 000000000..1f5ff6a61 --- /dev/null +++ b/board/friendlyarm/nanopi-r2s/post-build.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" + +install -m 0644 -D $BOARD_DIR/extlinux.conf $TARGET_DIR/boot/extlinux/extlinux.conf diff --git a/board/friendlyarm/nanopi-r2s/readme.txt b/board/friendlyarm/nanopi-r2s/readme.txt new file mode 100644 index 000000000..6d291cdd6 --- /dev/null +++ b/board/friendlyarm/nanopi-r2s/readme.txt @@ -0,0 +1,57 @@ +Intro +===== + +This default configuration will allow you to start experimenting with the +buildroot environment for the Nanopi R2S. With the current configuration +it will bring-up the board, and allow access through the serial console. + +Nanopi R2S link: +https://www.friendlyarm.com/index.php?route=product/product&path=69&product_id=282 + +This configuration uses ATF, U-Boot mainline and kernel mainline. + +How to build +============ + + $ make friendlyarm_nanopi_r2s_defconfig + $ make + +Note: you will need access to the internet to download the required +sources. + +Files created in output directory +================================= + +output/images + +├── bl31.elf +├── boot.vfat +├── extlinux +├── idbloader.img +├── Image +├── rk3328-nanopi-r2s.dtb +├── rootfs.ext2 +├── rootfs.ext4 -> rootfs.ext2 +├── rootfs.tar +├── sdcard.img +├── u-boot.bin +└── u-boot.itb + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + $ sudo sync + +Insert the micro SDcard in your Nanopi R2S and power it up. The console +is on the serial line, 1500000 8N1. + +Notes +===== + +This configuration can also be used to drive the Friendlyarm Nanopi Neo3 board. diff --git a/board/globalscale/espressobin/genimage.cfg b/board/globalscale/espressobin/genimage.cfg new file mode 100644 index 000000000..360c8f098 --- /dev/null +++ b/board/globalscale/espressobin/genimage.cfg @@ -0,0 +1,11 @@ +# Minimal image, no U-boot since v3/v5 cannot boot from sdcard, see +# readme.txt for details on configuring the on-board u-boot. +image sdcard.img { + hdimage { + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/globalscale/espressobin/linux-extras.config b/board/globalscale/espressobin/linux-extras.config new file mode 100644 index 000000000..7ce0a495c --- /dev/null +++ b/board/globalscale/espressobin/linux-extras.config @@ -0,0 +1,14 @@ +# +# The Espressobin has a switchcore with full support in the kernel. +# This fragment enables DSA and its drivers, inclding VLAN aware bridge +# support to allow users to easily set up a LAN switch + WAN interface. +# +CONFIG_NET_DSA=m +CONFIG_VLAN_8021Q=y + +CONFIG_BRIDGE=m +CONFIG_BRIDGE_IGMP_SNOOPING=y +CONFIG_BRIDGE_VLAN_FILTERING=y + +CONFIG_NET_DSA_MV88E6XXX=m +CONFIG_NET_DSA_MV88E6XXX_PTP=y diff --git a/board/globalscale/espressobin/readme.txt b/board/globalscale/espressobin/readme.txt new file mode 100644 index 000000000..c5af7e3c9 --- /dev/null +++ b/board/globalscale/espressobin/readme.txt @@ -0,0 +1,90 @@ +Marvell ESPRESSObin +=================== + +This default configuration allows you to quickly get up and running with +the Marvell ESPRESSObin board by Globalscale Technologies Inc. + +The ESPRESSObin is based on the Marvell Armada 88F3720 SoC, coupled with +a Marvell 88E6341 switch core "Topaz", with three exposed gigabit ports. + + _________________________ + |# U W L L U #| + |# S A A A S #| + |# B N N N B #| + |# 0 1 #| + |# Mini #| + |# -PCI #| + |# #| + |# 5 #| + |#__V___usb_PWR_SATA__SW_#| + + Fig 1: Overview of board + +Notice difference in Ethernet port layout compared to the Globalscale +docs. They order the ports; LAN2, LAN1, WAN (left to right in figure +above). For more information, see http://espressobin.net + + +Building +-------- + + $ make globalscale_espressobin_defconfig + $ make + +This generates the kernel image, the devicetree binary, the rootfs as a +tar.gz, and a filesystem image containing everything. + +All build artifacts are located in `output/images/` + + +Booting +------- + +To boot, you need a UART connection, using the on-board micro USB port +set to 115200 8N1. + +By default, the ESPRESSObin comes with a pre-flashed U-Boot set up to +load the kernel, device-tree and rootfs from SPI NOR flash. The board +jumpers can be changed to boot from different sources, see the quick +start guide for each board revision for details: + +- ftp://downloads.globalscaletechnologies.com/Downloads/Espressobin/ESPRESSObin%20V5/ +- ftp://downloads.globalscaletechnologies.com/Downloads/Espressobin/ESPRESSObin%20V7/ + +Note: the v5, and earlier, cannot boot from sdcard, so you have to set +up the factory U-Boot to boot into Buildroot: + +1. Flash rootfs image to sdcard drive, your `of=` device may differ: + + $ sudo dd if=output/images/sdcard.img of=/dev/mmcblk0 bs=1M + $ sync + +2. Boot board from SPI NOR, interrupt boot by pressing any key ... +3. Check with `printenv` that the default setup is OK, otherwise ensure + the following are set, and define `bootcmd` for automatic boot: + + > setenv kernel_addr 0x5000000 + > setenv fdt_addr 0x1800000 + > setenv fdt_name boot/armada-3720-espressobin.dtb + > setenv console console=ttyMV0,115200 earlycon=ar3700_uart,0xd0012000 + > setenv bootcmd 'mmc dev 0; ext4load mmc 0:1 $kernel_addr $image_name;ext4load mmc 0:1 $fdt_addr $fdt_name;setenv bootargs $console root=/dev/mmcblk0p1 rw rootwait; booti $kernel_addr - $fdt_addr' + +4. Call the boot command, or `reset` the board to start: + + > run bootcmd + + +Networking +---------- + +To enable Ethernet networking, load the `mv88e6xxx` kernel module, and +bring up each respective interface needed: + + # modprobe mv88e6xxx + # ifconfig wan up + +A more advanced scenario is setting up switching between the ports using +the Linux bridge. The kernel switchdev layer, and DSA driver, ensure +switch functions are "offloaded" to the HW switch, i.e., all traffic +between LAN ports never reach the CPU. For this you need the iproute2 +suite of tools. diff --git a/board/grinn/chiliboard/genimage.cfg b/board/grinn/chiliboard/genimage.cfg new file mode 100644 index 000000000..f335d7de4 --- /dev/null +++ b/board/grinn/chiliboard/genimage.cfg @@ -0,0 +1,32 @@ +# Minimal microSD card image for Grinn's chiliBoard +# + +image boot.vfat { + vfat { + files = { + "MLO", + "u-boot.img", + "am335x-chiliboard.dtb", + "zImage" + } + } + + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + offset = 1M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/grinn/chiliboard/readme.txt b/board/grinn/chiliboard/readme.txt new file mode 100644 index 000000000..676aa7040 --- /dev/null +++ b/board/grinn/chiliboard/readme.txt @@ -0,0 +1,46 @@ +********** +chiliBoard +********** + +Build +===== + +First, configure Buildroot for your chiliBoard: + + make grinn_chiliboard_defconfig + +Build image: + + make + +After building you should get a tree like this: + + output/images/ + ├── am335x-chiliboard.dtb + ├── boot.vfat + ├── MLO + ├── rootfs.ext2 + ├── rootfs.ext4 + ├── rootfs.tar + ├── sdcard.img + ├── u-boot.img + └── zImage + +Create a bootable microSD card +============================== + +Buildroot prepares a bootable microSD card image "sdcard.img" in output/images/ +directory, To flash SD card just run the following command: + + sudo dd if=output/images/sdcard.img of=/dev/ bs=1M + +where can be sdX or mmcblkX + +*** WARNING! This will destroy all contents of device you specify! *** + +Boot chiliBoard +=============== + +- insert the microSD card in the microSD slot of the board; +- plug micro USB cable to provide power and console interface +- use terminal emulator with 115200 bps, 8n1 diff --git a/board/grinn/liteboard/genimage.cfg b/board/grinn/liteboard/genimage.cfg new file mode 100644 index 000000000..d0b29819d --- /dev/null +++ b/board/grinn/liteboard/genimage.cfg @@ -0,0 +1,49 @@ +# Minimal microSD card image for Grinn's liteBoard +# +# We mimic the .sdcard Freescale's image format for i.MX6UL: +# * the microSD card must have 1 kB free space at the beginning, +# * SPL is dumped as is, +# * U-Boot is dumped at 69K offset, as configured in SPL +# * a FAT partition at offset 8 MB is containing zImage and dtbs, +# * a single root filesystem partition is required (Ext4 in this case). +# + +image boot.vfat { + vfat { + files = { + "imx6ul-liteboard.dtb", + "zImage" + } + } + + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition SPL { + in-partition-table = "no" + image = "SPL" + offset = 1K + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot.img" + offset = 69K + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + offset = 8M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/grinn/liteboard/readme.txt b/board/grinn/liteboard/readme.txt new file mode 100644 index 000000000..fe1386a0b --- /dev/null +++ b/board/grinn/liteboard/readme.txt @@ -0,0 +1,45 @@ +********* +liteBoard +********* + +Build +===== + +First, configure Buildroot for your liteBoard: + + make grinn_liteboard_defconfig + +Build image: + + make + +After building you should get a tree like this: + + output/images/ + ├── boot.vfat + ├── imx6ul-liteboard.dtb + ├── rootfs.ext2 + ├── rootfs.ext4 + ├── rootfs.tar + ├── sdcard.img + ├── u-boot.imx + └── zImage + +Create a bootable microSD card +============================== + +Buildroot prepares a bootable microSD card image "sdcard.img" in output/images/ +directory, To flash SD card just run the following command: + + sudo dd if=output/images/sdcard.img of=/dev/ bs=1M + +where can be sdX or mmcblkX + +*** WARNING! This will destroy all contents of device you specify! *** + +Boot liteBoard +============== + +- insert the microSD card in the microSD slot of the board; +- plug micro USB cable to provide power and console interface +- use terminal emulator with 115200 bps, 8n1 diff --git a/board/hardkernel/odroidc2/boot.cmd b/board/hardkernel/odroidc2/boot.cmd new file mode 100644 index 000000000..d800a6d44 --- /dev/null +++ b/board/hardkernel/odroidc2/boot.cmd @@ -0,0 +1,11 @@ +setenv kernel_filename "Image" +setenv fdt_filename "meson-gxbb-odroidc2.dtb" +setenv bootargs "console=ttyAML0,115200n8 earlyprintk root=/dev/mmcblk1p2 rootwait rw" + +echo > Loading Kernel... +fatload mmc 0:1 ${kernel_addr_r} ${kernel_filename} +echo > Loading FDT... +fatload mmc 0:1 ${fdt_addr_r} ${fdt_filename} + +echo > Booting System... +booti ${kernel_addr_r} - ${fdt_addr_r} diff --git a/board/hardkernel/odroidc2/genimage.cfg b/board/hardkernel/odroidc2/genimage.cfg new file mode 100644 index 000000000..f31867a59 --- /dev/null +++ b/board/hardkernel/odroidc2/genimage.cfg @@ -0,0 +1,40 @@ +image boot.vfat { + vfat { + files = { + "Image", + "meson-gxbb-odroidc2.dtb", + "boot.scr" + } + } + + size = 64M +} + +image sdcard.img { + hdimage { + } + + partition bl1 { + in-partition-table = "no" + image = "bl1.bin.hardkernel" + offset = 0 + holes = {"(440; 512)"} + } + + partition u-boot { + in-partition-table = "no" + image = "uboot-odc2.img" + offset = 49664 # 48KB + 512B + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/hardkernel/odroidc2/post-image.sh b/board/hardkernel/odroidc2/post-image.sh new file mode 100755 index 000000000..eb6fd4f09 --- /dev/null +++ b/board/hardkernel/odroidc2/post-image.sh @@ -0,0 +1,21 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" + +${HOST_DIR}/bin/fip_create \ + --bl30 ${BINARIES_DIR}/bl30.bin \ + --bl301 ${BINARIES_DIR}/bl301.bin \ + --bl31 ${BINARIES_DIR}/bl31.bin \ + --bl33 ${BINARIES_DIR}/u-boot.bin \ + ${BINARIES_DIR}/fip.bin + +${HOST_DIR}/bin/fip_create --dump ${BINARIES_DIR}/fip.bin + +cat ${BINARIES_DIR}/bl2.package ${BINARIES_DIR}/fip.bin \ + > ${BINARIES_DIR}/boot_new.bin + +${HOST_DIR}/bin/amlbootsig ${BINARIES_DIR}/boot_new.bin ${BINARIES_DIR}/u-boot.img + +dd if=${BINARIES_DIR}/u-boot.img of=${BINARIES_DIR}/uboot-odc2.img bs=512 skip=96 + +support/scripts/genimage.sh -c ${BOARD_DIR}/genimage.cfg diff --git a/board/hardkernel/odroidc2/readme.txt b/board/hardkernel/odroidc2/readme.txt new file mode 100644 index 000000000..24847827a --- /dev/null +++ b/board/hardkernel/odroidc2/readme.txt @@ -0,0 +1,64 @@ +ODROID-C2 + +Intro +===== +To be able to use ODROID-C2 board with the images generated by +Buildroot, you have to prepare the SDCard or eMMC. + +How to build it +=============== + + $ make odroidc2_defconfig + +Then you can edit the build options using + + $ make menuconfig + +Compile all and build rootfs image: + + $ make + +Note: you will need to have access to the network, since Buildroot will +download the packages' sources. + +Result of the build +------------------- + +After building, you should obtain this tree: + + output/images/ + +-- bl1.bin.hardkernel + +-- bl2.package + +-- bl301.bin + +-- bl30.bin + +-- bl31.bin + +-- boot_new.bin + +-- boot.scr [1] + +-- boot.vfat + +-- fip.bin + +-- Image [2] + +-- meson-gxbb-odroidc2.dtb + +-- rootfs.ext2 + +-- rootfs.ext4 + +-- rootfs.tar + +-- sdcard.img + +-- u-boot.bin + +-- u-boot.img + +-- uboot-odc2.img [3] + +[1] This is the ODROID-C2 configuration file used in u-boot. +[2] This is the ODROID-C2 kernel image file which will be booted. +[3] This is the ODROID-C2 signed u-boot image which will be used. + +How to write the SD card or eMMC +================================ + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card or eMMC with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + +Insert the SDcard into your ODROID-C2, and power it up. Your new system +should come up now. diff --git a/board/hardkernel/odroidc2/rootfs_overlay/etc/init.d/S09modload b/board/hardkernel/odroidc2/rootfs_overlay/etc/init.d/S09modload new file mode 100755 index 000000000..8d694a733 --- /dev/null +++ b/board/hardkernel/odroidc2/rootfs_overlay/etc/init.d/S09modload @@ -0,0 +1,23 @@ +#!/bin/sh +# + +load_drivers() +{ + echo "Loading needed modules..." + for file in $(echo "dwmac_generic dwmac-meson8b meson_dw_hdmi meson_gxbb_wdt"); do + modprobe ${file} + done +} + +case "$1" in + start) + load_drivers + ;; + stop) + ;; + restart|reload) + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 +esac diff --git a/board/hardkernel/odroidxu4/boot.ini b/board/hardkernel/odroidxu4/boot.ini new file mode 100644 index 000000000..87ac7ac13 --- /dev/null +++ b/board/hardkernel/odroidxu4/boot.ini @@ -0,0 +1,38 @@ +ODROIDXU-UBOOT-CONFIG + +# U-Boot Parameters +setenv initrd_high "0xffffffff" +setenv fdt_high "0xffffffff" + +setenv macaddr "00:1e:06:61:7a:39" +setenv bootrootfs "console=tty1 root=/dev/mmcblk1p2 rootwait rw fsck.repair=yes net.ifnames=0" +setenv bootcmd "load mmc 0:1 0x40008000 zImage; load mmc 0:1 0x44000000 exynos5422-odroidxu4.dtb; bootz 0x40008000 - 0x44000000" +setenv vout "hdmi" +setenv governor "performance" +setenv HPD "true" + +# TMDS data amplitude control. +setenv hdmi_tx_amp_lvl "31" + +# TMDS data amplitude fine control for each channel. +setenv hdmi_tx_lvl_ch0 "3" +setenv hdmi_tx_lvl_ch1 "3" +setenv hdmi_tx_lvl_ch2 "3" + +# TMDS data pre-emphasis level control. +setenv hdmi_tx_emp_lvl "6" + +# TMDS clock amplitude control. +setenv hdmi_clk_amp_lvl "31" + +# TMDS data source termination resistor control. +setenv hdmi_tx_res "0" + +setenv hdmi_phy_control "hdmi_tx_amp_lvl=${hdmi_tx_amp_lvl} hdmi_tx_lvl_ch0=${hdmi_tx_lvl_ch0} hdmi_tx_lvl_ch1=${hdmi_tx_lvl_ch1} hdmi_tx_lvl_ch2=${hdmi_tx_lvl_ch2} hdmi_tx_emp_lvl=${hdmi_tx_emp_lvl} hdmi_clk_amp_lvl=${hdmi_clk_amp_lvl} hdmi_tx_res=${hdmi_tx_res} HPD=${HPD} vout=${vout}" + +# final boot args +setenv bootargs "${bootrootfs} ${videoconfig} smsc95xx.macaddr=${macaddr} governor=${governor} ${hdmi_phy_control}" + +# Boot the board +boot + diff --git a/board/hardkernel/odroidxu4/genimage.cfg b/board/hardkernel/odroidxu4/genimage.cfg new file mode 100644 index 000000000..0a90d6be5 --- /dev/null +++ b/board/hardkernel/odroidxu4/genimage.cfg @@ -0,0 +1,55 @@ +image boot.vfat { + vfat { + files = { + "boot.ini", + "zImage", + "exynos5422-odroidxu4.dtb" + } + } + + size = 32M +} + +image sdcard.img { + hdimage { + } + + partition bl1 { + in-partition-table = "no" + image = "bl1.bin.hardkernel" + offset = 512 + size = 15K + } + + partition bl2 { + in-partition-table = "no" + image = "bl2.bin.hardkernel.720k_uboot" + offset = 15872 # 15KB + 512B + size = 16K + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot-dtb.bin" + offset = 32256 # 31KB + 512B + size = 720K + } + + partition tzsw { + in-partition-table = "no" + image = "tzsw.bin.hardkernel" + offset = 769536 # 751KB + 512B + size = 256K + } + + partition vfat { + partition-type = 0xC + image = "boot.vfat" + offset = 2M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/hardkernel/odroidxu4/post-image.sh b/board/hardkernel/odroidxu4/post-image.sh new file mode 100755 index 000000000..025906cd0 --- /dev/null +++ b/board/hardkernel/odroidxu4/post-image.sh @@ -0,0 +1,24 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" +GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg" +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + +cp ${BOARD_DIR}/boot.ini ${BINARIES_DIR}/ + +# The bl1.bin.hardkernel file provided by the uboot hardkernel repository is overwritten +# by the bl2.bin.hardkernel in the sd_fusing.sh script because it is too big. +# In order to implement this in genimage, we need to truncate the bl1.bin file +# so that it does not exceed the available place. +# An issue has been filled about this: https://github.com/hardkernel/u-boot/issues/45 +truncate -s 15360 ${BINARIES_DIR}/bl1.bin.hardkernel + +rm -rf "${GENIMAGE_TMP}" + +genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" + diff --git a/board/hardkernel/odroidxu4/readme.txt b/board/hardkernel/odroidxu4/readme.txt new file mode 100644 index 000000000..e3cba8b0c --- /dev/null +++ b/board/hardkernel/odroidxu4/readme.txt @@ -0,0 +1,37 @@ +Odroid XU-4 board with Samsung Exynos 5422 SoC + +How to build it +=============== + + $ make odroidxu4_defconfig + +Then you can edit the build options using + + $ make menuconfig + +Compile all and build rootfs image: + + $ make + +Note: you will need to have access to the network, since Buildroot will +download the packages' sources. + +Result of the build +------------------- + +After building, you should obtain all output files in output/images/ + + +How to write the SD card or eMMC +================================ + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card or eMMC with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + +Insert the SDcard into your ODROID-XU4, and power it up. Your new system +should come up now. + diff --git a/board/intel/galileo/genimage.cfg b/board/intel/galileo/genimage.cfg new file mode 100644 index 000000000..76c3d9c36 --- /dev/null +++ b/board/intel/galileo/genimage.cfg @@ -0,0 +1,29 @@ +# Create an image of the efi partition +image efi-part.vfat { + vfat { + file EFI { + image = "efi-part/EFI" + } + } + + size = 512K +} + +# Create the sdcard image, pulling in +# * the image created by buildroot +# * the efi-partition created above +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + image = "efi-part.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext2" + size = 512M + } +} diff --git a/board/intel/galileo/grub.cfg b/board/intel/galileo/grub.cfg new file mode 100644 index 000000000..dde2f762f --- /dev/null +++ b/board/intel/galileo/grub.cfg @@ -0,0 +1,11 @@ +set default="0" +set timeout="0" + +menuentry "Buildroot" { + # Grub2 supports ext4, load the kernel from the Linux rootfs partition + # Set root tells grub to search the 2nd partition for the bzImage + set root=(hd0,msdos2) + + # Set Linux to boot from the 2nd partition, SD/MMC support is baked into the kernel + linux /boot/bzImage root=/dev/mmcblk0p2 rootwait console=ttyS1,115200n8 earlycon=uart8250,mmio32,0x9000b000,115200n8 reboot=efi,warm apic=debug rw +} diff --git a/board/intel/galileo/linux-3.14.config b/board/intel/galileo/linux-3.14.config new file mode 100644 index 000000000..e7aa9cf23 --- /dev/null +++ b/board/intel/galileo/linux-3.14.config @@ -0,0 +1,308 @@ +# CONFIG_LOCALVERSION_AUTO is not set +# CONFIG_SWAP is not set +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +CONFIG_FHANDLE=y +CONFIG_KERNEL_LZMA=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=18 +CONFIG_CGROUPS=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CPUSETS=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_RESOURCE_COUNTERS=y +CONFIG_CGROUP_SCHED=y +CONFIG_NAMESPACES=y +CONFIG_RELAY=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_RD_BZIP2=y +CONFIG_RD_LZMA=y +CONFIG_SYSCTL_SYSCALL=y +# CONFIG_PCSPKR_PLATFORM is not set +CONFIG_EMBEDDED=y +# CONFIG_COMPAT_BRK is not set +CONFIG_JUMP_LABEL=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_LBDAF=y +CONFIG_PARTITION_ADVANCED=y +CONFIG_BSD_DISKLABEL=y +# CONFIG_ZONE_DMA is not set +CONFIG_X86_INTEL_QUARK=y +CONFIG_M586TSC=y +CONFIG_X86_GENERIC=y +CONFIG_HPET_TIMER=y +CONFIG_PREEMPT_VOLUNTARY=y +CONFIG_X86_UP_IOAPIC=y +# CONFIG_X86_MCE_AMD is not set +# CONFIG_X86_16BIT is not set +CONFIG_X86_REBOOTFIXUPS=y +CONFIG_MICROCODE=y +CONFIG_X86_MSR=y +CONFIG_X86_CPUID=y +CONFIG_HIGHMEM64G=y +# CONFIG_COMPACTION is not set +# CONFIG_MTRR is not set +# CONFIG_ARCH_RANDOM is not set +CONFIG_EFI=y +CONFIG_EFI_STUB=y +CONFIG_EFI_CAPSULE=m +CONFIG_HZ_100=y +CONFIG_KEXEC=y +CONFIG_PHYSICAL_START=0x400000 +CONFIG_PHYSICAL_ALIGN=0x1000000 +# CONFIG_COMPAT_VDSO is not set +CONFIG_PM_RUNTIME=y +CONFIG_PM_DEBUG=y +CONFIG_PM_TRACE_RTC=y +CONFIG_ACPI_PROCFS=y +CONFIG_ACPI_PROCFS_POWER=y +CONFIG_ACPI_EC_DEBUGFS=y +# CONFIG_ACPI_BATTERY is not set +# CONFIG_ACPI_FAN is not set +CONFIG_ACPI_DEBUG=y +CONFIG_ACPI_PCI_SLOT=y +CONFIG_PCIEPORTBUS=y +CONFIG_PCI_MSI=y +CONFIG_PCI_DEBUG=y +CONFIG_PCI_IOAPIC=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_SYN_COOKIES=y +# CONFIG_IPV6_SIT is not set +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_IPV6_SUBTREES=y +CONFIG_VLAN_8021Q=m +CONFIG_VLAN_8021Q_GVRP=y +CONFIG_CAN=m +# CONFIG_CAN_GW is not set +CONFIG_CAN_J1939=m +CONFIG_CAN_VCAN=m +CONFIG_CAN_SLCAN=m +# CONFIG_CAN_DEV is not set +CONFIG_BT=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=m +CONFIG_BT_HCIBTUSB=m +CONFIG_CFG80211=m +CONFIG_CFG80211_WEXT=y +CONFIG_MAC80211=m +CONFIG_MAC80211_LEDS=y +CONFIG_RFKILL=m +CONFIG_RFKILL_INPUT=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +# CONFIG_FW_LOADER_USER_HELPER is not set +CONFIG_DEBUG_DEVRES=y +CONFIG_MTD=y +CONFIG_MTD_BLOCK=m +# CONFIG_PNP_DEBUG_MESSAGES is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=2 +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=1 +CONFIG_BLK_DEV_RAM_SIZE=81920 +CONFIG_EEPROM_AT24=m +CONFIG_EEPROM_93CX6=m +CONFIG_SCSI=y +CONFIG_BLK_DEV_SD=y +CONFIG_CHR_DEV_SG=y +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_SPI_ATTRS=y +# CONFIG_SCSI_LOWLEVEL is not set +CONFIG_NETDEVICES=y +CONFIG_TUN=y +# CONFIG_NET_VENDOR_3COM is not set +# CONFIG_NET_VENDOR_ADAPTEC is not set +# CONFIG_NET_VENDOR_ALTEON is not set +# CONFIG_NET_VENDOR_AMD is not set +# CONFIG_NET_VENDOR_ARC is not set +# CONFIG_NET_VENDOR_ATHEROS is not set +# CONFIG_NET_VENDOR_BROADCOM is not set +# CONFIG_NET_VENDOR_BROCADE is not set +# CONFIG_NET_VENDOR_CHELSIO is not set +# CONFIG_NET_VENDOR_CISCO is not set +# CONFIG_NET_VENDOR_DEC is not set +# CONFIG_NET_VENDOR_DLINK is not set +# CONFIG_NET_VENDOR_EMULEX is not set +# CONFIG_NET_VENDOR_EXAR is not set +# CONFIG_NET_VENDOR_HP is not set +# CONFIG_NET_VENDOR_I825XX is not set +# CONFIG_NET_VENDOR_MARVELL is not set +# CONFIG_NET_VENDOR_MELLANOX is not set +# CONFIG_NET_VENDOR_MICREL is not set +# CONFIG_NET_VENDOR_MICROCHIP is not set +# CONFIG_NET_VENDOR_MYRI is not set +# CONFIG_NET_VENDOR_NATSEMI is not set +# CONFIG_NET_VENDOR_NVIDIA is not set +# CONFIG_NET_VENDOR_OKI is not set +# CONFIG_NET_PACKET_ENGINE is not set +# CONFIG_NET_VENDOR_QLOGIC is not set +# CONFIG_NET_VENDOR_REALTEK is not set +# CONFIG_NET_VENDOR_RDC is not set +# CONFIG_NET_VENDOR_SEEQ is not set +# CONFIG_NET_VENDOR_SILAN is not set +# CONFIG_NET_VENDOR_SIS is not set +# CONFIG_NET_VENDOR_SMSC is not set +CONFIG_STMMAC_ETH=m +# CONFIG_STMMAC_PLATFORM is not set +CONFIG_STMMAC_PCI=m +# CONFIG_NET_VENDOR_SUN is not set +# CONFIG_NET_VENDOR_TEHUTI is not set +# CONFIG_NET_VENDOR_TI is not set +# CONFIG_NET_VENDOR_VIA is not set +# CONFIG_NET_VENDOR_WIZNET is not set +CONFIG_PHYLIB=y +CONFIG_PPP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_ASYNC=m +# CONFIG_RTL_CARDS is not set +# CONFIG_INPUT_MOUSEDEV is not set +CONFIG_INPUT_EVDEV=m +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_SERIO is not set +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_LEGACY_PTY_COUNT=32 +CONFIG_SERIAL_NONSTANDARD=y +CONFIG_SERIAL_8250=y +# CONFIG_SERIAL_8250_PNP is not set +CONFIG_SERIAL_8250_CONSOLE=y +# CONFIG_SERIAL_8250_PCI is not set +CONFIG_SERIAL_8250_NR_UARTS=8 +CONFIG_SERIAL_8250_RUNTIME_UARTS=2 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_8250_DETECT_IRQ=y +CONFIG_SERIAL_8250_RSA=y +CONFIG_SERIAL_8250_DW=y +CONFIG_SERIAL_SC16IS7XX=m +CONFIG_SERIAL_SC16IS7XX_SPI=m +# CONFIG_HW_RANDOM is not set +CONFIG_HPET=y +# CONFIG_HPET_MMAP is not set +CONFIG_I2C=y +CONFIG_SPI_DEBUG=y +CONFIG_SPI_GPIO=y +CONFIG_SPI_PXA2XX=y +CONFIG_PTP_1588_CLOCK=y +CONFIG_GPIO_SCH=y +CONFIG_GPIO_PCA953X=y +CONFIG_GPIO_PCA953X_IRQ=y +CONFIG_GPIO_PCF857X=y +CONFIG_HWMON=m +CONFIG_SENSORS_LM75=m +# CONFIG_X86_PKG_TEMP_THERMAL is not set +CONFIG_MFD_INTEL_QUARK_HSUART_DMA=y +CONFIG_CY8C9540A=m +CONFIG_MFD_PCA9685=m +CONFIG_INTEL_QRK_GIP=m +CONFIG_INTEL_QRK_GIP_TEST=m +CONFIG_MEDIA_SUPPORT=m +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_USB_SUPPORT=y +CONFIG_USB_VIDEO_CLASS=m +# CONFIG_USB_GSPCA is not set +# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set +# CONFIG_VGA_ARB is not set +# CONFIG_VGA_CONSOLE is not set +CONFIG_SOUND=m +CONFIG_SND=m +CONFIG_SND_USB_AUDIO=m +CONFIG_USB=m +# CONFIG_USB_DEFAULT_PERSIST is not set +CONFIG_USB_EHCI_HCD=m +CONFIG_USB_OHCI_HCD=m +CONFIG_USB_UHCI_HCD=m +CONFIG_USB_ACM=m +CONFIG_USB_STORAGE=m +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_GADGET=m +CONFIG_USB_EG20T=m +CONFIG_USB_ZERO=m +CONFIG_USB_ETH=m +CONFIG_USB_MASS_STORAGE=m +CONFIG_USB_G_SERIAL=y +CONFIG_USB_G_ACM_MS=m +CONFIG_MMC=y +CONFIG_MMC_UNSAFE_RESUME=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=m +CONFIG_RTC_CLASS=y +# CONFIG_RTC_SYSTOHC is not set +CONFIG_DMADEVICES=y +CONFIG_DW_DMAC=y +CONFIG_UIO=y +CONFIG_STAGING=y +CONFIG_INTEL_QRK_THERMAL=y +CONFIG_INTEL_QRK_AUDIO_CTRL=m +CONFIG_INTEL_QRK_J1708=m +CONFIG_INTEL_QRK_ESRAM=y +# CONFIG_IOMMU_SUPPORT is not set +CONFIG_IIO=y +CONFIG_IIO_BUFFER_CB=y +CONFIG_IIO_LIS331DLH_INTEL_QRK=y +CONFIG_IIO_ST_ACCEL_3AXIS=y +CONFIG_AD7298=m +CONFIG_ADC1x8S102=m +CONFIG_IIO_SYSFS_TRIGGER=m +CONFIG_IIO_HRTIMER_TRIGGER=m +CONFIG_PWM=y +CONFIG_DMI_SYSFS=y +CONFIG_EFI_VARS=m +# CONFIG_EFI_RUNTIME_MAP is not set +CONFIG_EXT2_FS=y +CONFIG_EXT3_FS=y +# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +CONFIG_EXT4_FS=y +CONFIG_VFAT_FS=y +CONFIG_PROC_KCORE=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_HUGETLBFS=y +# CONFIG_MISC_FILESYSTEMS is not set +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_850=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +CONFIG_PRINTK_TIME=y +# CONFIG_ENABLE_WARN_DEPRECATED is not set +CONFIG_FRAME_WARN=2048 +# CONFIG_UNUSED_SYMBOLS is not set +CONFIG_HEADERS_CHECK=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_DEBUG_MEMORY_INIT=y +CONFIG_DEBUG_STACKOVERFLOW=y +CONFIG_TIMER_STATS=y +CONFIG_LATENCYTOP=y +# CONFIG_FTRACE is not set +CONFIG_X86_PTDUMP=y +# CONFIG_DEBUG_RODATA_TEST is not set +CONFIG_DEBUG_SET_MODULE_RONX=y +# CONFIG_DOUBLEFAULT is not set +CONFIG_OPTIMIZE_INLINING=y +CONFIG_KEYS=y +CONFIG_KEYS_DEBUG_PROC_KEYS=y +CONFIG_SECURITY=y +CONFIG_SECURITY_NETWORK=y +# CONFIG_VIRTUALIZATION is not set +CONFIG_CRC_T10DIF=y diff --git a/board/intel/galileo/patches/linux/0001-x86-relocs-Make-per_cpu_load_addr-static.patch b/board/intel/galileo/patches/linux/0001-x86-relocs-Make-per_cpu_load_addr-static.patch new file mode 100644 index 000000000..1d206cc6d --- /dev/null +++ b/board/intel/galileo/patches/linux/0001-x86-relocs-Make-per_cpu_load_addr-static.patch @@ -0,0 +1,39 @@ +From eeeda4cd06e828b331b15741a204ff9f5874d28d Mon Sep 17 00:00:00 2001 +From: Ben Hutchings +Date: Wed, 24 Sep 2014 13:30:12 +0100 +Subject: [PATCH] x86/relocs: Make per_cpu_load_addr static + +per_cpu_load_addr is only used for 64-bit relocations, but is +declared in both configurations of relocs.c - with different +types. This has undefined behaviour in general. GNU ld is +documented to use the larger size in this case, but other tools +may differ and some warn about this. + +References: https://bugs.debian.org/748577 +Reported-by: Michael Tautschnig +Signed-off-by: Ben Hutchings +Cc: 748577@bugs.debian.org +Cc: Linus Torvalds +Link: http://lkml.kernel.org/r/1411561812.3659.23.camel@decadent.org.uk +Signed-off-by: Ingo Molnar +Signed-off-by: Giulio Benetti +--- + arch/x86/tools/relocs.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/x86/tools/relocs.c b/arch/x86/tools/relocs.c +index bbb1d2259ecf..a5efb21d5228 100644 +--- a/arch/x86/tools/relocs.c ++++ b/arch/x86/tools/relocs.c +@@ -695,7 +695,7 @@ static void walk_relocs(int (*process)(struct section *sec, Elf_Rel *rel, + * + */ + static int per_cpu_shndx = -1; +-Elf_Addr per_cpu_load_addr; ++static Elf_Addr per_cpu_load_addr; + + static void percpu_init(void) + { +-- +2.25.1 + diff --git a/board/intel/galileo/post-build.sh b/board/intel/galileo/post-build.sh new file mode 100755 index 000000000..2b34cb43b --- /dev/null +++ b/board/intel/galileo/post-build.sh @@ -0,0 +1,2 @@ +#!/bin/sh -e +cp board/intel/galileo/grub.cfg ${BINARIES_DIR}/efi-part/EFI/BOOT/grub.cfg diff --git a/board/intel/galileo/post-image.sh b/board/intel/galileo/post-image.sh new file mode 100755 index 000000000..f9aef0b1b --- /dev/null +++ b/board/intel/galileo/post-image.sh @@ -0,0 +1,13 @@ +#!/bin/sh -e + +GENIMAGE_CFG="board/intel/galileo/genimage.cfg" +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + +rm -rf "${GENIMAGE_TMP}" + +genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" diff --git a/board/intel/galileo/readme.txt b/board/intel/galileo/readme.txt new file mode 100644 index 000000000..7a3abd4f7 --- /dev/null +++ b/board/intel/galileo/readme.txt @@ -0,0 +1,52 @@ + +Intel Galileo Gen 1/2 + +Intro +============ + +These instructions apply to both the Intel Galileo Gen 1/2 development boards +based on the Intel Quark X1000. + +How to build +============ + +Apply the defconfig for the Intel Galileo Gen 1/2 + + $ make galileo_defconfig + +Add any additional packages required and build. + + $ make + +The build process will create a SD card image and place it in output/images. + + $ ls -lh output/images/sdcard.img + -rw-r--r--. 1 foo foo 11M Nov 17 16:19 output/images/sdcard.img + +Write the image to an mSD card, insert into the Galileo and power on. + + $ dd if=output/images/sdcard.img of=/dev/mmcblk0; sync + +Accessing the console +===================== + +During power-on the console will become available on the Galileo's ttyS1. This +may be accessed as follows. + + * Galileo Gen 1 + + http://clayskits.com/products/galileo-gen-1-serial-cable + + A USB to RS-232 to 3.5mm Jack cable is required. Connect to the 3.5mm + Jack next to the Ethernet Header. + + * Galileo Gen 2 + + http://www.ftdichip.com/Products/Cables/USBTTLSerial.htm + + A FTDI TTL-232R-3V3 cable may be used to connect to the FTDI header + next to the Ethernet connector on the Galileo Gen 2. + +The console should now be visible at 115200 baud. + + $ picocom -b 115200 /dev/ttyUSB0 diff --git a/board/intel/galileo/rootfs_overlay/etc/init.d/S09modload b/board/intel/galileo/rootfs_overlay/etc/init.d/S09modload new file mode 100755 index 000000000..359d607c1 --- /dev/null +++ b/board/intel/galileo/rootfs_overlay/etc/init.d/S09modload @@ -0,0 +1,33 @@ +#!/bin/sh +# + +load_drivers() +{ + while IFS= read -r line; do + modprobe $line + done < "/etc/modules-load.galileo/$1.conf" +} + +do_board() +{ + board=$(cat /sys/devices/virtual/dmi/id/board_name) + case "$board" in + *"GalileoGen2" ) + load_drivers "galileo_gen2" ;; + *"Galileo" ) + load_drivers "galileo" ;; + esac +} + +case "$1" in + start) + do_board + ;; + stop) + ;; + restart|reload) + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 +esac diff --git a/board/intel/galileo/rootfs_overlay/etc/modules-load.galileo/galileo.conf b/board/intel/galileo/rootfs_overlay/etc/modules-load.galileo/galileo.conf new file mode 100644 index 000000000..b65826194 --- /dev/null +++ b/board/intel/galileo/rootfs_overlay/etc/modules-load.galileo/galileo.conf @@ -0,0 +1,3 @@ +intel_qrk_gip +cy8c9540a +ad7298 diff --git a/board/intel/galileo/rootfs_overlay/etc/modules-load.galileo/galileo_gen2.conf b/board/intel/galileo/rootfs_overlay/etc/modules-load.galileo/galileo_gen2.conf new file mode 100644 index 000000000..4f80a3301 --- /dev/null +++ b/board/intel/galileo/rootfs_overlay/etc/modules-load.galileo/galileo_gen2.conf @@ -0,0 +1,4 @@ +intel_qrk_gip +gpio-pca953x +pca9685 +adc1x8s102 diff --git a/board/kontron/bl-imx8mm/extlinux.conf b/board/kontron/bl-imx8mm/extlinux.conf new file mode 100644 index 000000000..d38f7f81b --- /dev/null +++ b/board/kontron/bl-imx8mm/extlinux.conf @@ -0,0 +1,4 @@ +label buildroot + kernel /boot/Image + devicetree /boot/freescale/imx8mm-kontron-n801x-s.dtb + append root=PARTUUID=%PARTUUID% rootwait rw diff --git a/board/kontron/bl-imx8mm/genimage.cfg b/board/kontron/bl-imx8mm/genimage.cfg new file mode 100644 index 000000000..c98bc4f15 --- /dev/null +++ b/board/kontron/bl-imx8mm/genimage.cfg @@ -0,0 +1,18 @@ +image sdcard.img { + hdimage { + partition-table-type = "gpt" + gpt-location = 16K + } + + partition imx-boot { + in-partition-table = "no" + image = "flash.bin" + offset = 33K + } + + partition rootfs { + image = "rootfs.ext4" + offset = 8M + partition-uuid = %PARTUUID% + } +} diff --git a/board/kontron/bl-imx8mm/post-build.sh b/board/kontron/bl-imx8mm/post-build.sh new file mode 100755 index 000000000..bf8861f6a --- /dev/null +++ b/board/kontron/bl-imx8mm/post-build.sh @@ -0,0 +1,7 @@ +#!/bin/sh +BOARD_DIR="$(dirname $0)" +PARTUUID="$($HOST_DIR/bin/uuidgen)" + +install -d "$TARGET_DIR/boot/extlinux/" +sed "s/%PARTUUID%/$PARTUUID/g" "$BOARD_DIR/extlinux.conf" > "$TARGET_DIR/boot/extlinux/extlinux.conf" +sed "s/%PARTUUID%/$PARTUUID/g" "$BOARD_DIR/genimage.cfg" > "$BINARIES_DIR/genimage.cfg" diff --git a/board/kontron/bl-imx8mm/readme.txt b/board/kontron/bl-imx8mm/readme.txt new file mode 100644 index 000000000..df47ba517 --- /dev/null +++ b/board/kontron/bl-imx8mm/readme.txt @@ -0,0 +1,85 @@ +Kontron BL i.MX8M Mini +====================== + +https://www.kontron.com/produkte/baseboard-bl-i.mx8m-mini/p158549 + + +How to build it +=============== + +Configure buildroot: + + $ make kontron_bl_imx8mm_defconfig + +Change settings to fit your needs (optional): + + $ make menuconfig + +Compile everything and build the rootfs image: + + $ make + + +Result of the build +=================== + +After building, the output/images directory contains: + + output/images/ + ├── bl31.bin + ├── boot.scr + ├── ddr_fw.bin + ├── flash.bin + ├── Image + ├── imx8mm-kontron-n801x-s.dtb + ├── lpddr4_pmu_train_1d_dmem_201904.bin + ├── lpddr4_pmu_train_1d_dmem_202006.bin + ├── lpddr4_pmu_train_1d_dmem.bin + ├── lpddr4_pmu_train_1d_dmem_pad.bin + ├── lpddr4_pmu_train_1d_fw.bin + ├── lpddr4_pmu_train_1d_imem_201904.bin + ├── lpddr4_pmu_train_1d_imem_202006.bin + ├── lpddr4_pmu_train_1d_imem.bin + ├── lpddr4_pmu_train_1d_imem_pad.bin + ├── lpddr4_pmu_train_2d_dmem_201904.bin + ├── lpddr4_pmu_train_2d_dmem_202006.bin + ├── lpddr4_pmu_train_2d_dmem.bin + ├── lpddr4_pmu_train_2d_dmem_pad.bin + ├── lpddr4_pmu_train_2d_fw.bin + ├── lpddr4_pmu_train_2d_imem_201904.bin + ├── lpddr4_pmu_train_2d_imem_202006.bin + ├── lpddr4_pmu_train_2d_imem.bin + ├── lpddr4_pmu_train_2d_imem_pad.bin + ├── lpddr4_pmu_train_fw.bin + ├── rootfs.ext2 + ├── rootfs.ext4 -> rootfs.ext2 + ├── rootfs.tar + ├── sdcard.img + ├── u-boot.bin + └── u-boot-spl.bin + + +Flashing the SD card image +========================== + +To install the image on a SDCard simply copy sdcard.img to the storage (e.g. SD, eMMC) + + $ sudo dd if=output/images/sdcard.img of= + + +Preparing the board +=================== + + * Connect a serial line to the board + * Insert the SD card + * Power-up the board + + +Booting the board +================= + +By default the bootloader will search for the first valid image, starting +with the internal eMMC. To make sure the bootloader loads bootscript from +the correct location (SD card) set the boot_targets environment variable: + + $ setenv boot_targets mmc1 diff --git a/board/kontron/pitx-imx8m/extlinux.conf b/board/kontron/pitx-imx8m/extlinux.conf new file mode 100644 index 000000000..2911acec5 --- /dev/null +++ b/board/kontron/pitx-imx8m/extlinux.conf @@ -0,0 +1,4 @@ +label buildroot + kernel /boot/Image + devicetree /boot/freescale/imx8mq-kontron-pitx-imx8m.dtb + append root=PARTUUID=%PARTUUID% rootwait rw diff --git a/board/kontron/pitx-imx8m/genimage.cfg b/board/kontron/pitx-imx8m/genimage.cfg new file mode 100644 index 000000000..bc100b171 --- /dev/null +++ b/board/kontron/pitx-imx8m/genimage.cfg @@ -0,0 +1,17 @@ +image sdcard.img { + hdimage { + partition-table-type = "gpt" + } + + partition imx-boot { + in-partition-table = "no" + image = "flash.bin" + offset = 33K + } + + partition rootfs { + offset = 8M + image = "rootfs.ext4" + partition-uuid = %PARTUUID% + } +} diff --git a/board/kontron/pitx-imx8m/patches/uboot/2022.04/0001-tools-mkeficapsule-use-pkg-config-to-get-luuid-and-l.patch b/board/kontron/pitx-imx8m/patches/uboot/2022.04/0001-tools-mkeficapsule-use-pkg-config-to-get-luuid-and-l.patch new file mode 100644 index 000000000..9530a45ef --- /dev/null +++ b/board/kontron/pitx-imx8m/patches/uboot/2022.04/0001-tools-mkeficapsule-use-pkg-config-to-get-luuid-and-l.patch @@ -0,0 +1,33 @@ +From f3523977e8f5f6b2173708777001332431ebc609 Mon Sep 17 00:00:00 2001 +From: Heiko Thiery +Date: Tue, 19 Jul 2022 16:17:09 +0200 +Subject: [PATCH 1/2] tools: mkeficapsule: use pkg-config to get -luuid and -lgnutls + +Instead of hardcoding -luuid -lgnutls as the flags needed to build +mkeficapsule, use pkg-config when available. + +We gracefully fallback on the previous behavior of hardcoding -luuid +-lgnutls if pkg-config is not available or fails with an error. + +Signed-off-by: Heiko Thiery +--- + tools/Makefile | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/tools/Makefile b/tools/Makefile +index 9f2339666a..9f6b282ad8 100644 +--- a/tools/Makefile ++++ b/tools/Makefile +@@ -242,7 +242,8 @@ hostprogs-$(CONFIG_MIPS) += mips-relocs + hostprogs-$(CONFIG_ASN1_COMPILER) += asn1_compiler + HOSTCFLAGS_asn1_compiler.o = -idirafter $(srctree)/include + +-HOSTLDLIBS_mkeficapsule += -lgnutls -luuid ++HOSTLDLIBS_mkeficapsule += \ ++ $(shell pkg-config --libs gnutls uuid 2> /dev/null || echo "-lgnutls -luuid") + hostprogs-$(CONFIG_TOOLS_MKEFICAPSULE) += mkeficapsule + + # We build some files with extra pedantic flags to try to minimize things +-- +2.30.2 + diff --git a/board/kontron/pitx-imx8m/post-build.sh b/board/kontron/pitx-imx8m/post-build.sh new file mode 100755 index 000000000..bf8861f6a --- /dev/null +++ b/board/kontron/pitx-imx8m/post-build.sh @@ -0,0 +1,7 @@ +#!/bin/sh +BOARD_DIR="$(dirname $0)" +PARTUUID="$($HOST_DIR/bin/uuidgen)" + +install -d "$TARGET_DIR/boot/extlinux/" +sed "s/%PARTUUID%/$PARTUUID/g" "$BOARD_DIR/extlinux.conf" > "$TARGET_DIR/boot/extlinux/extlinux.conf" +sed "s/%PARTUUID%/$PARTUUID/g" "$BOARD_DIR/genimage.cfg" > "$BINARIES_DIR/genimage.cfg" diff --git a/board/kontron/pitx-imx8m/readme.txt b/board/kontron/pitx-imx8m/readme.txt new file mode 100644 index 000000000..7c85dd437 --- /dev/null +++ b/board/kontron/pitx-imx8m/readme.txt @@ -0,0 +1,74 @@ +Kontron pitx-imx8m +================== + +https://www.kontron.com/produkte/pitx-imx8m/p155258 + + +How to build it +=============== + +Configure buildroot: + + $ make kontron_pitx_imx8m_defconfig + +Change settings to fit your needs (optional): + + $ make menuconfig + +Compile everything and buildr the rootfs image: + + $ make + + +Result of the build +=================== + +After building, the output/images directory contains: + + output/images/ + ├── bl31.bin + ├── boot.scr + ├── ddr_fw.bin + ├── Image + ├── imx8-boot-sd.bin + ├── imx8mq-kontron-pitx-imx8m.dtb + ├── lpddr4_pmu_train_fw.bin + ├── rootfs.ext2 + ├── rootfs.ext4 -> rootfs.ext2 + ├── rootfs.tar + ├── sdcard.img + ├── signed_hdmi_imx8m.bin + ├── u-boot.bin + ├── u-boot.itb + ├── u-boot-nodtb.bin + ├── u-boot-spl.bin + └── u-boot-spl-ddr.bin + + +Flashing the SD card image +========================== + +To install the image on a SDCard simply copy sdcard.img to the storage (e.g. SD, eMMC) + + $ sudo dd if=output/images/sdcard.img of= + + +Preparing the board +=================== + + * Connect a serial line to the board + * Insert the SD card + * Make sure the boot source selection DIP switches are set correctly + * SW1 1-4 OFF + * SW1 2-3 OFF + * Power-up the board + + +Booting the board +================= + +By default the bootloader will search for the first valid image, starting +with the internal eMMC. To make sure the bootloader loads bootscript from +the correct location (SD card) set the boot_targets environment variable: + + $ setenv boot_targets mmc1 diff --git a/board/kontron/smarc-sal28/extlinux.conf b/board/kontron/smarc-sal28/extlinux.conf new file mode 100644 index 000000000..bf60bc379 --- /dev/null +++ b/board/kontron/smarc-sal28/extlinux.conf @@ -0,0 +1,4 @@ +label buildroot + kernel /boot/Image + devicetreedir /boot + append root=PARTUUID=%PARTUUID% rootwait diff --git a/board/kontron/smarc-sal28/genimage.cfg b/board/kontron/smarc-sal28/genimage.cfg new file mode 100644 index 000000000..c885cd51a --- /dev/null +++ b/board/kontron/smarc-sal28/genimage.cfg @@ -0,0 +1,24 @@ +image sdcard-emmc.img { + hdimage { + partition-table-type = "gpt" + gpt-location = 16K + } + + partition rcw { + offset = 4K + in-partition-table = "no" + image = "rcw.bin" + } + + partition u-boot { + offset = 1M + in-partition-table = "no" + image = "u-boot.rom" + } + + partition rootfs { + offset = 2M + image = rootfs.ext4 + partition-uuid = %PARTUUID% + } +} diff --git a/board/kontron/smarc-sal28/post-build.sh b/board/kontron/smarc-sal28/post-build.sh new file mode 100755 index 000000000..bf8861f6a --- /dev/null +++ b/board/kontron/smarc-sal28/post-build.sh @@ -0,0 +1,7 @@ +#!/bin/sh +BOARD_DIR="$(dirname $0)" +PARTUUID="$($HOST_DIR/bin/uuidgen)" + +install -d "$TARGET_DIR/boot/extlinux/" +sed "s/%PARTUUID%/$PARTUUID/g" "$BOARD_DIR/extlinux.conf" > "$TARGET_DIR/boot/extlinux/extlinux.conf" +sed "s/%PARTUUID%/$PARTUUID/g" "$BOARD_DIR/genimage.cfg" > "$BINARIES_DIR/genimage.cfg" diff --git a/board/kontron/smarc-sal28/readme.txt b/board/kontron/smarc-sal28/readme.txt new file mode 100644 index 000000000..bdf2258b5 --- /dev/null +++ b/board/kontron/smarc-sal28/readme.txt @@ -0,0 +1,88 @@ +Kontron SMARC-sAL28 +=================== + +How to build it +=============== + +Configure Buildroot: + + $ make kontron_smarc_sal28_defconfig + +Change settings to fit your needs (optional): + + $ make menuconfig + +Compile everything and build the rootfs image: + + $ make + +Copying the image to a storage device +===================================== + +Buildroot builds an image which can be written to the internal eMMC +storage, a SD card or an USB thumb drive. You can use the following +command on your host: + + $ sudo dd if=output/images/sdcard-emmc.img of=/dev/sdx bs=1M + +Where /dev/sdx is the corresponding block device of your SD card or USB +thumb drive. To flash it on your internal eMMC use the following command on +the board: + + # dd if=sdcard-emmc.img of=/dev/mmcblk1 bs=1M + +Be sure you have not booted from the internal eMMC in this case! + +Booting the board +================= + +By default the bootloader will search for the first valid image, starting +with the internal eMMC. Consult the vendor documentation on how to use the +DIP switches to select specific boot devices. To use the bootloader +environment set the boot_targets correspondingly. E.g.: + + # setenv boot_targets usb0 + +To boot from an USB thumb drive. + +The device tree is loaded according to the filename in fdtfile. The +following command will set the default device tree, which works on almost +all variants (with less features of course): + + # setenv fdtfile freescale/fsl-ls1028a-kontron-sl28.dtb + +Set this to a device tree which fits your board variant. + +Connect your serial cable to SER1 and open your favorite terminal emulation +program (baudrate 115200, 8n1). E.g.: + + $ picocom -b 115200 /dev/ttyUSB0 + +You will get a warning reported by fdisk when you examine the SD card. +This is because the genimage.cfg file doesn't specify the SD card size +(as people will naturally have different sized cards), so the +secondary GPT header is placed after the rootfs rather than at the end +of the disk where it is expected to be. + +You will see something like this at boot time: + +[ 4.552797] GPT:Primary header thinks Alt. header is not at the end of the disk. +[ 4.560237] GPT:266272 != 7864319 +[ 4.563565] GPT:Alternate GPT header not at the end of the disk. +[ 4.569596] GPT:266272 != 7864319 +[ 4.572925] GPT: Use GNU Parted to correct GPT errors. + +Updating the bootloader +======================= + +Buildroot will automatically build the u-boot bootloader. The resulting +image is called u-boot.rom and you can find it in the images/ directory. + +To update the bootloader on the board you could either copy it to an +USB thumb drive or you could put it on a TFTP server. The following +example assumes you have the bootloader image copied to the root of +a thumb drive: + + # usb start + # load usb 0:1 $loadaddr u-boot.rom + # sf probe 0 && sf update $fileaddr 0x210000 $filesize diff --git a/board/kontron/smarc-sal28/rootfs_overlay/etc/udev/rules.d/70-enetc-networking.rules b/board/kontron/smarc-sal28/rootfs_overlay/etc/udev/rules.d/70-enetc-networking.rules new file mode 100644 index 000000000..8774bc558 --- /dev/null +++ b/board/kontron/smarc-sal28/rootfs_overlay/etc/udev/rules.d/70-enetc-networking.rules @@ -0,0 +1,8 @@ +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.0", DRIVERS=="fsl_enetc", NAME="eno0" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.1", DRIVERS=="fsl_enetc", NAME="eno1" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.2", DRIVERS=="fsl_enetc", NAME="eno2" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.6", DRIVERS=="fsl_enetc", NAME="eno3" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:01.0", DRIVERS=="fsl_enetc_vf", NAME="eno0vf0" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:01.1", DRIVERS=="fsl_enetc_vf", NAME="eno0vf1" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:01.2", DRIVERS=="fsl_enetc_vf", NAME="eno1vf0" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:01.3", DRIVERS=="fsl_enetc_vf", NAME="eno1vf1" diff --git a/board/kontron/smarc-sal28/rootfs_overlay/etc/udev/rules.d/70-felix-networking.rules b/board/kontron/smarc-sal28/rootfs_overlay/etc/udev/rules.d/70-felix-networking.rules new file mode 100644 index 000000000..917c0244a --- /dev/null +++ b/board/kontron/smarc-sal28/rootfs_overlay/etc/udev/rules.d/70-felix-networking.rules @@ -0,0 +1,6 @@ +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.5", DRIVERS=="mscc_felix", ATTR{phys_port_name}=="p0", NAME="swp0" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.5", DRIVERS=="mscc_felix", ATTR{phys_port_name}=="p1", NAME="swp1" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.5", DRIVERS=="mscc_felix", ATTR{phys_port_name}=="p2", NAME="swp2" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.5", DRIVERS=="mscc_felix", ATTR{phys_port_name}=="p3", NAME="swp3" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.5", DRIVERS=="mscc_felix", ATTR{phys_port_name}=="p4", NAME="swp4" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.5", DRIVERS=="mscc_felix", ATTR{phys_port_name}=="p5", NAME="swp5" diff --git a/board/kontron/smarc-sal28/rootfs_overlay/etc/udev/rules.d/71-smarc-networking.rules b/board/kontron/smarc-sal28/rootfs_overlay/etc/udev/rules.d/71-smarc-networking.rules new file mode 100644 index 000000000..8c946b05f --- /dev/null +++ b/board/kontron/smarc-sal28/rootfs_overlay/etc/udev/rules.d/71-smarc-networking.rules @@ -0,0 +1,19 @@ +# Map the GBE0 and GBE1 names from the SMARC standard to the network +# interfaces. This depends on the variant of the board. + +# get the variant compatible string +PROGRAM=="/bin/grep '^kontron,sl28-var[1-4]$' /sys/firmware/devicetree/base/compatible", ENV{sl28_compatible}="%c" + +# variant 1 +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.1", DRIVERS=="fsl_enetc", ENV{sl28_compatible}=="kontron,sl28-var1", NAME="gbe0" + +# variant 2 +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.5", DRIVERS=="mscc_felix", ATTR{phys_port_name}=="p0", ENV{sl28_compatible}=="kontron,sl28-var2", NAME="gbe0" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.5", DRIVERS=="mscc_felix", ATTR{phys_port_name}=="p1", ENV{sl28_compatible}=="kontron,sl28-var2", NAME="gbe1" + +# variant 3 +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.0", DRIVERS=="fsl_enetc", ENV{sl28_compatible}=="kontron,sl28-var3", NAME="gbe0" + +# variant 4 +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.0", DRIVERS=="fsl_enetc", ENV{sl28_compatible}=="kontron,sl28-var4", NAME="gbe0" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.1", DRIVERS=="fsl_enetc", ENV{sl28_compatible}=="kontron,sl28-var4", NAME="gbe1" diff --git a/board/lego/ev3/busybox.fragment b/board/lego/ev3/busybox.fragment new file mode 100644 index 000000000..901274d31 --- /dev/null +++ b/board/lego/ev3/busybox.fragment @@ -0,0 +1,3 @@ +CONFIG_BEEP=y +CONFIG_FEATURE_BEEP_FREQ=440 +CONFIG_FEATURE_BEEP_LENGTH_MS=250 diff --git a/board/lego/ev3/genimage.cfg b/board/lego/ev3/genimage.cfg new file mode 100644 index 000000000..3eaf3915b --- /dev/null +++ b/board/lego/ev3/genimage.cfg @@ -0,0 +1,73 @@ +# LEGO MINDSTORMS EV3 can boot from a 16MB flash or from a microSD card. +# The U-Boot bootloader from the flash is always used, even when booting +# from a microSD card. + +# The Flash image + +flash nor-16M-256 { + pebsize = 4K + numpebs = 4K + minimum-io-unit-size = 256 +} + +image flash.bin { + flash { + } + flashtype = "nor-16M-256" + + partition uboot { + image = "u-boot.bin" + size = 256K + } + + partition dtb { + image = "da850-lego-ev3.dtb" + offset = 256K + size = 64K + } + + partition uimage { + image = "uImage" + offset = 320K + size = 4M + } + + partition rootfs { + image = "rootfs.squashfs" + offset = 4416K # 4M + 320KB + size = 10M + } +} + +# The SD card image + +image boot.vfat { + vfat { + file uImage { + image = "uImage" + } + + file da850-lego-ev3.dtb { + image = "da850-lego-ev3.dtb" + } + } + + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + offset = 4M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext2" + } +} diff --git a/board/lego/ev3/linux.fragment b/board/lego/ev3/linux.fragment new file mode 100644 index 000000000..79efd27d3 --- /dev/null +++ b/board/lego/ev3/linux.fragment @@ -0,0 +1,68 @@ +CONFIG_ARM_APPENDED_DTB=n +CONFIG_ARCH_DAVINCI_DM644x=n +CONFIG_ARCH_DAVINCI_DM355=n +CONFIG_ARCH_DAVINCI_DM646x=n +CONFIG_ARCH_DAVINCI_DA830=n +CONFIG_ARCH_DAVINCI_DM365=n +CONFIG_MACH_SFFSDR=n +CONFIG_MACH_NEUROS_OSD2=n +CONFIG_MACH_DM355_LEOPARD=n +CONFIG_MACH_MITYOMAPL138=n +CONFIG_MACH_OMAPL138_HAWKBOARD=n +CONFIG_MACH_DAVINCI_DA850_EVM=n +CONFIG_ATA=n +CONFIG_MTD=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_M25P80=y +CONFIG_MTD_SPI_NOR=y +CONFIG_MTD_UBI=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=1 +CONFIG_BLK_DEV_RAM_SIZE=32768 +CONFIG_INPUT_EVDEV=y +CONFIG_INPUT_PWM_BEEPER=y +CONFIG_SPI_DAVINCI=y +CONFIG_PINCTRL_DA850_PUPD=y +CONFIG_V4L_PLATFORM_DRIVERS=n +CONFIG_SOUND=n +CONFIG_SND=n +CONFIG_SND_SOC=n +CONFIG_SND_EDMA_SOC=n +CONFIG_SND_DAVINCI_SOC_MCASP=n +CONFIG_SND_SOC_TLV320AIC3X=n +CONFIG_SND_SIMPLE_CARD=n +CONFIG_DAVINCI_WATCHDOG=y +CONFIG_USB=y +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_DAVINCI=y +CONFIG_USB_MUSB_HDRC=y +CONFIG_USB_MUSB_GADGET=y +CONFIG_USB_MUSB_DA8XX=y +CONFIG_NOP_USB_XCEIV=y +CONFIG_USB_GADGET=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_TRIGGER_MTD=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_CPU=y +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y +CONFIG_RTC_DRV_OMAP=y +CONFIG_IIO=y +CONFIG_TI_ADS7950=y +CONFIG_PWM_TIECAP=y +CONFIG_PWM_TIEHRPWM=y +CONFIG_SQUASHFS=y +CONFIG_SQUASHFS_LZ4=y +CONFIG_SQUASHFS_LZO=y +CONFIG_SQUASHFS_XZ=y +CONFIG_DRM=y +CONFIG_DRM_TILCDC=n +CONFIG_DRM_DUMB_VGA_DAC=n +CONFIG_DRM_TINYDRM=y +CONFIG_TINYDRM_ST7586=y +CONFIG_FB_DA8XX=n +CONFIG_COMMON_CLK_PWM=y +CONFIG_BT=y +CONFIG_BT_HS=n +CONFIG_BT_LE=n +CONFIG_RFKILL=y diff --git a/board/lego/ev3/post-image.sh b/board/lego/ev3/post-image.sh new file mode 100755 index 000000000..81626dc37 --- /dev/null +++ b/board/lego/ev3/post-image.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" +GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg" +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + +rm -rf "${GENIMAGE_TMP}" + +genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" diff --git a/board/lego/ev3/readme.txt b/board/lego/ev3/readme.txt new file mode 100644 index 000000000..648bca1e9 --- /dev/null +++ b/board/lego/ev3/readme.txt @@ -0,0 +1,99 @@ +Lego Mindstorms EV3 + +Intro +===== + +This is the buildroot basic board support for the Lego Mindstorms EV3 +programmable brick. + +The Lego Mindstorms EV3 brick comprises a Texas Instruments AM1808 SoC, with +an ARM 926EJ-S main processor running at 300 MHz. +See: +- https://en.wikipedia.org/wiki/Lego_Mindstorms_EV3 +- http://www.lego.com/en-us/mindstorms/products/ev3/31313-mindstorms-ev3/ +- http://www.ti.com/product/am1808 + +How it works +============ + +Boot process : +-------------- + +The EV3 boots from an EEPROM. This loads whatever is on the built-in 16MB flash +(usually U-Boot) and runs it. The U-Boot from the official LEGO firmware and +mainline U-Boot will attempt to boot a Linux kernel from the external µSD card. +It will try to load a uImage (and optional boot.scr) from the first µSD card +partition, which must be formatted with a FAT filesystem. If no µSD is found or +it does not contain a uImage file, then the EV3 will boot the uImage from the +built-in 16MB flash. + +How to build it +=============== + +Configure Buildroot +------------------- + +The lego_ev3_defconfig configuration provides basic support to boot on the Lego +Mindstorms EV3 programmable brick: + + $ make lego_ev3_defconfig + +Build everything +---------------- + +Note: you will need to have access to the network, since Buildroot will +download the packages' sources. + + $ make + +Result of the build +------------------- + +After building, you should obtain this tree: + + output/images/ + ├── boot.vfat + ├── flash.bin + ├── rootfs.ext2 + ├── rootfs.ext3 -> rootfs.ext2 + ├── rootfs.squashfs + ├── sdcard.img + ├── u-boot.bin + ├── uImage -> uImage.da850-lego-ev3 + └── uImage.da850-lego-ev3 + +Installation +============ + +You can use either flash.bin or the sdcard.img. To load flash.bin, use the +official Lego Mindstorms EV3 programming software firmware update tool to load +the image. To use sdcard.img, use a disk writing tool such as Etcher or dd to +write the image to the µSD card. + +NOTE: The sdcard.img created by lego_ev3_defconfig won't boot if the official +LEGO firmware is installed on the EV3 (it has an old version of U-Boot that +doesn't know about device tree). You must either set the kernel configuration +option to append the device tree to the kernel or you can create a boot.scr +that chainloads a newer U-Boot or you can install a newer U-Boot in the flash +memory (just flashing u-boot.bin is enough). + +Finish +====== + +To have a serial console, you will need a proper USB to Lego serial port +adapter plugged into the EV3 sensors port 1. +See: +- http://botbench.com/blog/2013/08/15/ev3-creating-console-cable/ +- http://botbench.com/blog/2013/08/05/mindsensors-ev3-usb-console-adapter/ + +The serial port config to use is 115200/8-N-1. + +Bluetooth +========= + +To enable Bluetooth: + + # modprobe hci_uart + # /usr/libexec/bluetooth/bluetoothd & + # bluetoothctl + [bluetooth]# power on diff --git a/board/lemaker/bananapro/boot.cmd b/board/lemaker/bananapro/boot.cmd new file mode 100644 index 000000000..439f5b12c --- /dev/null +++ b/board/lemaker/bananapro/boot.cmd @@ -0,0 +1,5 @@ +setenv fdt_high ffffffff +setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait +fatload mmc 0 $kernel_addr_r zImage +fatload mmc 0 $fdt_addr_r sun7i-a20-bananapro.dtb +bootz $kernel_addr_r - $fdt_addr_r diff --git a/board/lemaker/bananapro/genimage.cfg b/board/lemaker/bananapro/genimage.cfg new file mode 100644 index 000000000..9d15f35e3 --- /dev/null +++ b/board/lemaker/bananapro/genimage.cfg @@ -0,0 +1,38 @@ +# Minimal SD card image for the Banana Pro +# Based in the Orange Pi genimage.cfg + +image boot.vfat { + vfat { + files = { + "zImage", + "sun7i-a20-bananapro.dtb", + "boot.scr" + } + } + + size = 10M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot-sunxi-with-spl.bin" + offset = 8K + size = 1016K # 1MB - 8KB + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/board/lemaker/bananapro/linux-wifi.fragment b/board/lemaker/bananapro/linux-wifi.fragment new file mode 100644 index 000000000..f4ede39fa --- /dev/null +++ b/board/lemaker/bananapro/linux-wifi.fragment @@ -0,0 +1,24 @@ +# Networking support +CONFIG_WIRELESS=y +CONFIG_CFG80211=y +CONFIG_CFG80211_WEXT=y +CONFIG_RFKILL=y + +# Network device support +CONFIG_WLAN=y +CONFIG_WLAN_VENDOR_BROADCOM=y +CONFIG_BRCMFMAC=m +# CONFIG_WLAN_VENDOR_ADMTEK is not set +# CONFIG_WLAN_VENDOR_ATH is not set +# CONFIG_WLAN_VENDOR_ATMEL is not set +# CONFIG_WLAN_VENDOR_CISCO is not set +# CONFIG_WLAN_VENDOR_INTEL is not set +# CONFIG_WLAN_VENDOR_INTERSIL is not set +# CONFIG_WLAN_VENDOR_MARVELL is not set +# CONFIG_WLAN_VENDOR_MEDIATEK is not set +# CONFIG_WLAN_VENDOR_RALINK is not set +# CONFIG_WLAN_VENDOR_REALTEK is not set +# CONFIG_WLAN_VENDOR_RSI is not set +# CONFIG_WLAN_VENDOR_ST is not set +# CONFIG_WLAN_VENDOR_TI is not set +# CONFIG_WLAN_VENDOR_ZYDAS is not set diff --git a/board/lemaker/bananapro/patches/linux/0001-arch-arm-boot-dts-sun7i-a20-bananapro.dts-disable-00.patch b/board/lemaker/bananapro/patches/linux/0001-arch-arm-boot-dts-sun7i-a20-bananapro.dts-disable-00.patch new file mode 100644 index 000000000..c8e8c0375 --- /dev/null +++ b/board/lemaker/bananapro/patches/linux/0001-arch-arm-boot-dts-sun7i-a20-bananapro.dts-disable-00.patch @@ -0,0 +1,44 @@ +From 896e82ab14e7e4e361ffa7c81def787907c1bf4c Mon Sep 17 00:00:00 2001 +From: Bartosz Bilas +Date: Sun, 19 May 2019 21:04:35 +0200 +Subject: [PATCH] arch/arm/boot/dts/sun7i-a20-bananapro.dts: disable 00B + IRQ for brcm wifi module + + BugLink: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=908438 + +Signed-off-by: Hans de Goede +Signed-off-by: Bartosz Bilas +--- + arch/arm/boot/dts/sun7i-a20-bananapro.dts | 16 +++++++++++++--- + 1 file changed, 13 insertions(+), 3 deletions(-) + +diff --git a/arch/arm/boot/dts/sun7i-a20-bananapro.dts b/arch/arm/boot/dts/sun7i-a20-bananapro.dts +index 0176e9de0..93b3340f5 100644 +--- a/arch/arm/boot/dts/sun7i-a20-bananapro.dts ++++ b/arch/arm/boot/dts/sun7i-a20-bananapro.dts +@@ -160,9 +160,19 @@ + brcmf: wifi@1 { + reg = <1>; + compatible = "brcm,bcm4329-fmac"; +- interrupt-parent = <&pio>; +- interrupts = <7 15 IRQ_TYPE_LEVEL_LOW>; +- interrupt-names = "host-wake"; ++ /* ++ * OOB interrupt support is broken ATM, often the first irq ++ * does not get seen resulting in the drv probe failing with: ++ * ++ * brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout ++ * brcmfmac: brcmf_bus_started: failed: -110 ++ * brcmfmac: brcmf_attach: dongle is not responding: err=-110 ++ * brcmfmac: brcmf_sdio_firmware_callback: brcmf_attach failed ++ * ++ * interrupt-parent = <&pio>; ++ * interrupts = <7 15 IRQ_TYPE_LEVEL_LOW>; ++ * interrupt-names = "host-wake"; ++ */ + }; + }; + +-- +2.21.0 + diff --git a/board/lemaker/bananapro/post-build.sh b/board/lemaker/bananapro/post-build.sh new file mode 100755 index 000000000..a335310db --- /dev/null +++ b/board/lemaker/bananapro/post-build.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +# Remove all but the brcmfmac43362 firmware files +find $TARGET_DIR/lib/firmware/brcm -type f -not -name "brcmfmac43362*" -delete + +BOARD_DIR="$(dirname $0)" +MKIMAGE=$HOST_DIR/bin/mkimage +BOOT_CMD=$BOARD_DIR/boot.cmd +BOOT_CMD_H=$BINARIES_DIR/boot.scr + +# U-Boot script +$MKIMAGE -C none -A arm -T script -d $BOOT_CMD $BOOT_CMD_H diff --git a/board/lemaker/bananapro/post-image.sh b/board/lemaker/bananapro/post-image.sh new file mode 100755 index 000000000..9cca1b178 --- /dev/null +++ b/board/lemaker/bananapro/post-image.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" +GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg" +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + +rm -rf "${GENIMAGE_TMP}" + +genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" + +exit $? diff --git a/board/lemaker/bananapro/readme.txt b/board/lemaker/bananapro/readme.txt new file mode 100644 index 000000000..27b922e26 --- /dev/null +++ b/board/lemaker/bananapro/readme.txt @@ -0,0 +1,62 @@ +Banana Pro + +Intro +===== + +This default configuration will allow you to start experimenting with the +Buildroot environment for the Banana Pro. With the current configuration +it will bring-up the board, and allow access through the serial console. + +How to build it +=============== + +Configure Buildroot: + + $ make bananapro_defconfig + +Compile everything and build the SD card image: + + $ make + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ dd if=output/images/sdcard.img of=/dev/sdX + +Notes: + - replace 'sdX' with the actual device with your micro SD card + - you may need to be root to do that (use 'sudo') + +Insert the micro SD card in your Banana Pro and power it up. The console +is on the debug TTL UART, 115200 8N1. + +Ethernet +========== + + # udhcpc -i eth0 + +Wifi +========== + + # wpa_passphrase YOUR_SSID >> /etc/wpa_supplicant.conf + (enter the wifi password and press enter) + # wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf -B + # udhcpc -i wlan0 + +Note: + - replace 'YOUR_SSID' with the actual SSID from your access point + +Audio +========== + +Connect a headphone to the 3.5mm jack (TRRS). Note, that the Banana Pro +has an on-board microphone, too. + + # amixer cset name='Power Amplifier DAC Playback Switch' on + # amixer cset name='Power Amplifier Mute Switch' on + # amixer cset name='Power Amplifier Volume' 42 diff --git a/board/lemaker/bananapro/rootfs_overlay/lib/firmware/brcm/brcmfmac43362-sdio.lemaker,bananapro.txt b/board/lemaker/bananapro/rootfs_overlay/lib/firmware/brcm/brcmfmac43362-sdio.lemaker,bananapro.txt new file mode 120000 index 000000000..93947975e --- /dev/null +++ b/board/lemaker/bananapro/rootfs_overlay/lib/firmware/brcm/brcmfmac43362-sdio.lemaker,bananapro.txt @@ -0,0 +1 @@ +brcmfmac43362-sdio.txt \ No newline at end of file diff --git a/board/lemaker/bananapro/rootfs_overlay/lib/firmware/brcm/brcmfmac43362-sdio.txt b/board/lemaker/bananapro/rootfs_overlay/lib/firmware/brcm/brcmfmac43362-sdio.txt new file mode 100644 index 000000000..14a554fdd --- /dev/null +++ b/board/lemaker/bananapro/rootfs_overlay/lib/firmware/brcm/brcmfmac43362-sdio.txt @@ -0,0 +1,56 @@ +#AP6210_NVRAM_V1.2_03192013 +manfid=0x2d0 +prodid=0x492 +vendid=0x14e4 +devid=0x4343 +boardtype=0x0598 + +# Board Revision is P307, same nvram file can be used for P304, P305, P306 and P307 as the tssi pa params used are same +#Please force the automatic RX PER data to the respective board directory if not using P307 board, for e.g. for P305 boards force the data into the following directory /projects/BCM43362/a1_labdata/boardtests/results/sdg_rev0305 +boardrev=0x1307 +boardnum=777 +xtalfreq=26000 +boardflags=0x80201 +boardflags2=0x80 +sromrev=3 +wl0id=0x431b +macaddr=00:90:4c:07:71:12 +aa2g=1 +ag0=2 +maxp2ga0=74 +cck2gpo=0x2222 +ofdm2gpo=0x44444444 +mcs2gpo0=0x6666 +mcs2gpo1=0x6666 +pa0maxpwr=56 + +#P207 PA params +#pa0b0=5447 +#pa0b1=-658 +#pa0b2=-175 + +#Same PA params for P304,P305, P306, P307 + +pa0b0=5447 +pa0b1=-607 +pa0b2=-160 +pa0itssit=62 +pa1itssit=62 + + +cckPwrOffset=5 +ccode=0 +rssismf2g=0xa +rssismc2g=0x3 +rssisav2g=0x7 +triso2g=0 +noise_cal_enable_2g=0 +noise_cal_po_2g=0 +swctrlmap_2g=0x04040404,0x02020202,0x02020202,0x010101,0x1ff +temp_add=29767 +temp_mult=425 + +btc_flags=0x6 +btc_params0=5000 +btc_params1=1000 +btc_params6=63 diff --git a/board/librecomputer/lafrite/genimage.cfg b/board/librecomputer/lafrite/genimage.cfg new file mode 100644 index 000000000..212f82952 --- /dev/null +++ b/board/librecomputer/lafrite/genimage.cfg @@ -0,0 +1,10 @@ +image usb.img { + hdimage { + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/board/librecomputer/lafrite/overlay/extlinux/extlinux.conf b/board/librecomputer/lafrite/overlay/extlinux/extlinux.conf new file mode 100644 index 000000000..60aa9d6e7 --- /dev/null +++ b/board/librecomputer/lafrite/overlay/extlinux/extlinux.conf @@ -0,0 +1,4 @@ +label linux + kernel /boot/Image + devicetree /boot/meson-gxl-s805x-libretech-ac.dtb + append console=ttyAML0,115200 earlyprintk root=/dev/sda1 rootwait diff --git a/board/librecomputer/lafrite/readme.txt b/board/librecomputer/lafrite/readme.txt new file mode 100644 index 000000000..c439c5e91 --- /dev/null +++ b/board/librecomputer/lafrite/readme.txt @@ -0,0 +1,34 @@ +Intro +===== + +Libre Computer "La Frite" is a low cost SBC based around an Amlogic +s805x SoC (quad A53), 512MB/1GB DDR4 and a 16MB SPI NOR flash: + +https://libre.computer/products/boards/aml-s805x-ac/ + +How to build it +=============== + +Configure Buildroot: + + $ make lafrite_defconfig + +Compile everything and build the USB flash drive image: + + $ make + +How to write the USB flash drive image +====================================== + +Once the build process is finished you will have an image called "usb.img" +in the output/images/ directory. + +Copy the bootable "usb.img" onto a USB flash drive with "dd": + + $ sudo dd if=output/images/usb.img of=/dev/sdX + +How to boot +=========== + +Insert flash drive to the USB connector furthest away from the IR +receiver and power up board. The system will boot automatically. diff --git a/board/licheepi/boot.cmd b/board/licheepi/boot.cmd new file mode 100644 index 000000000..383b3473e --- /dev/null +++ b/board/licheepi/boot.cmd @@ -0,0 +1,4 @@ +setenv bootargs console=ttyS0,115200 panic=5 console=tty0 rootwait root=/dev/mmcblk0p2 earlyprintk rw +load mmc 0:1 0x41000000 zImage +load mmc 0:1 0x41800000 sun8i-v3s-licheepi-zero-dock.dtb +bootz 0x41000000 - 0x41800000 diff --git a/board/licheepi/genimage.cfg b/board/licheepi/genimage.cfg new file mode 100644 index 000000000..8dcb2e708 --- /dev/null +++ b/board/licheepi/genimage.cfg @@ -0,0 +1,36 @@ +image boot.vfat { + vfat { + files = { + "zImage", + "sun8i-v3s-licheepi-zero-dock.dtb", + "sun8i-v3s-licheepi-zero.dtb", + "boot.scr" + } + } + + size = 8M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot-sunxi-with-spl.bin" + offset = 8K + size = 504K # 512KB - 8KB + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 0 + } +} diff --git a/board/licheepi/readme.txt b/board/licheepi/readme.txt new file mode 100644 index 000000000..6b8bf94b4 --- /dev/null +++ b/board/licheepi/readme.txt @@ -0,0 +1,62 @@ +Intro +===== + +This directory contains a buildroot configuration for building a +LicheePi Zero. + +How to build it +=============== + +Configure Buildroot +------------------- + + $ make licheepi_zero_defconfig + +Build the rootfs +---------------- + +Note: you will need to have access to the network, since Buildroot +will download the packages' sources. + +You may now build your rootfs with: + + $ make + +(This may take a while, consider getting yourself a coffee ;-) ) + +Result of the build +------------------- + +After building, you should obtain this tree: + + output/images/ + +-- boot.scr + +-- boot.vfat + +-- rootfs.ext2 + +-- rootfs.ext4 -> rootfs.ext2 + +-- rootfs.tar + +-- sdcard.img + +-- sun8i-v3s-licheepi-zero-dock.dtb + +-- sun8i-v3s-licheepi-zero.dtb + +-- u-boot.bin + +-- u-boot-sunxi-with-spl.bin + `-- zImage + +How to write the SD card +======================== + +Once the build process is finished you will have an image called +"sdcard.img" in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + +Alternatively, you can use the Etcher graphical tool to burn the image +to the SD card safely and on any platform: + +https://etcher.io/ + +Once the SD card is burned, insert it into your LicheePi Zero board, +and power it up. Your new system should come up now and start a +console on the UART0 serial port. diff --git a/board/linksprite/pcduino/linux-extras.config b/board/linksprite/pcduino/linux-extras.config new file mode 100644 index 000000000..670f83fa6 --- /dev/null +++ b/board/linksprite/pcduino/linux-extras.config @@ -0,0 +1,16 @@ +# spidev +CONFIG_SPI_SPIDEV=y + +# wireless core +CONFIG_CFG80211=m +CONFIG_CFG80211_WEXT=y +CONFIG_MAC80211=m + +# wireless drivers +CONFIG_WLAN=y +CONFIG_RTL_CARDS=m +CONFIG_RTL8192CU=m +CONFIG_RTLWIFI=m +CONFIG_RTLWIFI_USB=m +CONFIG_RTLWIFI_DEBUG=y +CONFIG_RTL8192C_COMMON=m diff --git a/board/linksprite/pcduino/readme.txt b/board/linksprite/pcduino/readme.txt new file mode 100644 index 000000000..08f380fbc --- /dev/null +++ b/board/linksprite/pcduino/readme.txt @@ -0,0 +1,42 @@ +pcDuino v1 boards (http://www.linksprite.com/linksprite-pcduino) + +Intro +===== + +This default configuration will allow you to start experimenting +with the buildroot environment for the LinkSprite pcDuino v1 board +including its flavors pcDuino-Lite and pcDuino-Lite-WiFi. With the +current configuration it will bring-up the board and allow access +through the serial console as well as ethernet and wireless +network interfaces. + +How to build it +=============== + +Configure Buildroot: + + $ make linksprite_pcduino_defconfig + +Modify configuration if needed, e.g. add more packages to target: + + $ make menuconfig + +Compile everything and build the SD card image: + + $ make + +How to write the SD card +======================== + +Once the build process is finished you will have an image +called "sdcard.img" in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + +How to boot new image +===================== + +Insert SD card and reset the board. By default pcDuino board +boots from SD card. diff --git a/board/mender/x86_64/genimage-efi.cfg b/board/mender/x86_64/genimage-efi.cfg new file mode 100644 index 000000000..10cefe238 --- /dev/null +++ b/board/mender/x86_64/genimage-efi.cfg @@ -0,0 +1,40 @@ +image efi-part.vfat { + vfat { + file EFI { + image = "efi-part/EFI" + } + file bzImage { + image = "bzImage" + } + } + + size = 16M +} + +image disk.img { + hdimage { + partition-table-type = "gpt" + } + + partition boot { + partition-type-uuid = U + offset = 32K + image = "efi-part.vfat" + bootable = true + } + + partition roota { + partition-type-uuid = 4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709 + image = "rootfs.ext2" + } + + partition rootb { + partition-type-uuid = 4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709 + image = "rootfs.ext2" + } + + partition data { + partition-type-uuid = L + image = "data-part.ext4" + } +} diff --git a/board/mender/x86_64/linux.config b/board/mender/x86_64/linux.config new file mode 100644 index 000000000..f17fc18ed --- /dev/null +++ b/board/mender/x86_64/linux.config @@ -0,0 +1,64 @@ +CONFIG_SYSVIPC=y +CONFIG_SMP=y +CONFIG_HYPERVISOR_GUEST=y +CONFIG_PARAVIRT=y +CONFIG_EFI=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_NETFILTER=y +CONFIG_IP_NF_IPTABLES=y +CONFIG_IP_NF_FILTER=y +CONFIG_CFG80211=m +CONFIG_CFG80211_WEXT=y +CONFIG_MAC80211=m +CONFIG_PCI=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_VIRTIO_BLK=y +CONFIG_BLK_DEV_SD=y +CONFIG_SCSI_VIRTIO=y +CONFIG_ATA=y +CONFIG_NETDEVICES=y +CONFIG_VIRTIO_NET=y +CONFIG_ATH9K=m +CONFIG_ATH9K_HTC=m +CONFIG_CARL9170=m +CONFIG_ATH10K=m +CONFIG_RT2X00=m +CONFIG_RT73USB=m +CONFIG_RT2800USB=m +CONFIG_RT2800USB_RT3573=y +CONFIG_RT2800USB_RT53XX=y +CONFIG_RT2800USB_RT55XX=y +# CONFIG_RTL_CARDS is not set +CONFIG_RTL8XXXU=m +CONFIG_INPUT_EVDEV=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_VIRTIO_CONSOLE=y +CONFIG_HW_RANDOM_VIRTIO=m +CONFIG_DRM=y +CONFIG_DRM_VIRTIO_GPU=y +CONFIG_FB_VESA=y +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_USB=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_STORAGE=y +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_BALLOON=y +CONFIG_VIRTIO_INPUT=y +CONFIG_VIRTIO_MMIO=y +CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y +CONFIG_EXT4_FS=y +CONFIG_FUSE_FS=y +CONFIG_VFAT_FS=y +CONFIG_SQUASHFS=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ISO8859_1=y +CONFIG_UNWINDER_FRAME_POINTER=y diff --git a/board/mender/x86_64/mender_grubenv_defines b/board/mender/x86_64/mender_grubenv_defines new file mode 100644 index 000000000..77f68fe6b --- /dev/null +++ b/board/mender/x86_64/mender_grubenv_defines @@ -0,0 +1,25 @@ +################################################################################ +# Mandatory +################################################################################ +# Warning: This file is an example and should be customized to fit your needs! + +# Partition index of root filesystem A +mender_rootfsa_part=2 + +# Partition index of root filesystem B +mender_rootfsb_part=3 + +# Device file corresponding to the root filesystem partitions, without index. +mender_kernel_root_base=/dev/vda + +# Name of the storage device containing root filesystem partitions in GRUB +# format. +mender_grub_storage_device=hd0 + +# Type of kernel (bzImage or zImage) +kernel_imagetype=bzImage + +# Type of initrd image. +# Note: An initrd image is not strictly necessary, and the system will boot and +# update without a initrd image. +# initrd_imagetype=initrd.img diff --git a/board/mender/x86_64/overlay/etc/fstab b/board/mender/x86_64/overlay/etc/fstab new file mode 100644 index 000000000..45a7ba026 --- /dev/null +++ b/board/mender/x86_64/overlay/etc/fstab @@ -0,0 +1,7 @@ +# +/dev/root / ext4 rw,noauto 0 1 +/dev/vda1 /boot vfat defaults 0 0 +/dev/vda4 /var/lib/mender ext4 rw,relatime 0 0 +proc /proc proc defaults 0 0 +devpts /dev/pts devpts defaults,gid=5,mode=620,ptmxmode=0666 0 0 +sysfs /sys sysfs defaults 0 0 diff --git a/board/mender/x86_64/overlay/etc/mender/mender.conf b/board/mender/x86_64/overlay/etc/mender/mender.conf new file mode 100644 index 000000000..5f423fb2c --- /dev/null +++ b/board/mender/x86_64/overlay/etc/mender/mender.conf @@ -0,0 +1,11 @@ +{ + "InventoryPollIntervalSeconds": 1800, + "UpdatePollIntervalSeconds": 1800, + "RetryPollIntervalSeconds": 300, + "RootfsPartA": "/dev/vda2", + "RootfsPartB": "/dev/vda3", + "ServerCertificate": "/etc/mender/server.crt", + "ServerURL": "https://docker.mender.io", + "TenantToken": "dummy", + "DeviceTypeFile": "/etc/mender/device_type" +} diff --git a/board/mender/x86_64/post-build.sh b/board/mender/x86_64/post-build.sh new file mode 100755 index 000000000..23d1120d4 --- /dev/null +++ b/board/mender/x86_64/post-build.sh @@ -0,0 +1,54 @@ +#!/usr/bin/env bash +set -e +DEVICE_TYPE="buildroot-x86_64" +ARTIFACT_NAME="1.0" + +function parse_args { + local o O opts + o='a:o:d:' + O='artifact-name:,data-part-size:,device-type:' + opts="$(getopt -o "${o}" -l "${O}" -- "${@}")" + eval set -- "${opts}" + while [ ${#} -gt 0 ]; do + case "${1}" in + (-o|--data-part-size) + # Ignored to have same options as other scripts + shift 2 + ;; + (-d|--device-type) + DEVICE_TYPE="${2}"; shift 2 + ;; + (-a|--artifact-name) + ARTIFACT_NAME="${2}"; shift 2 + ;; + (--) + shift; break + ;; + esac + done +} + + # Create a persistent directory to mount the data partition at. +function mender_fixup { + pushd "${TARGET_DIR}" + if [[ -L var/lib/mender ]]; then + rm var/lib/mender + mkdir -p var/lib/mender + fi + + # The common paradigm is to have the persistent data volume at /data for mender. + if [[ ! -L data ]]; then + ln -s var/lib/mender data + fi + + popd +} + +function main { + parse_args "${@}" + mender_fixup + echo "device_type=${DEVICE_TYPE}" > "${TARGET_DIR}/etc/mender/device_type" + echo "artifact_name=${ARTIFACT_NAME}" > "${TARGET_DIR}/etc/mender/artifact_info" +} + +main "${@}" diff --git a/board/mender/x86_64/post-image-efi.sh b/board/mender/x86_64/post-image-efi.sh new file mode 100755 index 000000000..97b9e06d2 --- /dev/null +++ b/board/mender/x86_64/post-image-efi.sh @@ -0,0 +1,72 @@ +#!/usr/bin/env bash +set -e +BOARD_DIR="$(realpath "$(dirname "$0")")" +DATA_PART_SIZE="32M" +DEVICE_TYPE="buildroot-x86_64" +ARTIFACT_NAME="1.0" + + +# Parse arguments. +function parse_args { + local o O opts + o='a:o:d:' + O='artifact-name:,data-part-size:,device-type:' + opts="$(getopt -o "${o}" -l "${O}" -- "${@}")" + eval set -- "${opts}" + while [ ${#} -gt 0 ]; do + case "${1}" in + (-o|--data-part-size) + DATA_PART_SIZE="${2}"; shift 2 + ;; + (-d|--device-type) + DEVICE_TYPE="${2}"; shift 2 + ;; + (-a|--artifact-name) + ARTIFACT_NAME="${2}"; shift 2 + ;; + (--) + shift; break + ;; + esac + done +} + +# Create the data partition +function make_data_partition { + "${HOST_DIR}/sbin/mkfs.ext4" \ + -F \ + -r 1 \ + -N 0 \ + -m 5 \ + -L "data" \ + "${BINARIES_DIR}/data-part.ext4" "${DATA_PART_SIZE}" +} + + +# Create a mender image. +function generate_mender_image { + echo "Creating ${BINARIES_DIR}/${DEVICE_TYPE}-${ARTIFACT_NAME}.mender" + "${HOST_DIR}/bin/mender-artifact" \ + --compression lzma \ + write rootfs-image \ + -t "${DEVICE_TYPE}" \ + -n "${BR2_VERSION}" \ + -f "${BINARIES_DIR}/rootfs.ext2" \ + -o "${BINARIES_DIR}/${DEVICE_TYPE}-${ARTIFACT_NAME}.mender" +} + + +function generate_image { + sh support/scripts/genimage.sh -c "${BOARD_DIR}/genimage-efi.cfg" +} + +# Main function. +function main { + parse_args "${@}" + make_data_partition + generate_image + generate_mender_image + exit $? +} + +main "${@}" diff --git a/board/mender/x86_64/readme.txt b/board/mender/x86_64/readme.txt new file mode 100644 index 000000000..a9755ec58 --- /dev/null +++ b/board/mender/x86_64/readme.txt @@ -0,0 +1,69 @@ +Mender UEFI PC sample config +===================== + +1. Build + + $ make mender_x86_64_efi_defconfig + + Add any additional packages required. Update the files in board/mender/x86_64 + and change /dev/vda to what is relevant for your platform: typically + /dev/mmcblk0p for eMMC and /dev/sda for USB or SATA. + + $ make + +2. Write the Pendrive + + The build process will create a Pendrive image called disk.img in + output/images. + + Write the image to a pendrive: + + $ dd if=output/images/disk.img of=/dev/${pendrive}; sync + + Once the process is complete, insert it into the target PC and boot. + + Remember that if said PC has another boot device you might need to + select this alternative for it to boot. + + You might need to disable Secure Boot from the setup as well. + +3. Enjoy + +Emulation in qemu +======================== + +Run the emulation with: + +qemu-system-x86_64 \ + -M pc \ + -drive file=output/images/disk.img,if=virtio,format=raw \ + -net nic,model=virtio \ + -net user \ + -serial stdio \ + -bios + +Note that needs to point to a valid x86_64 UEFI +firmware image for qemu. It may be provided by your distribution as an +edk2 or OVMF package, in a path such as /usr/share/edk2/ovmf/OVMF_CODE.fd. + +Optional arguments: + - -enable-kvm to speed up qemu. This requires a loaded kvm module on the host + system. + - Add -smp N to emulate an SMP system with N CPUs. + +The login prompt will appear in the serial window. + +Tested with QEMU 4.1.1 on Fedora 31 + +Creating a mender-artifact +======================== + +The mender artifact is created in output/images/buildroot-x86_64-1.0.mender + +You may wish to change --artifact-name=1.0 to a name that best suits your +particular needs, as this option changes the mender artifact name. + +Using mender +======================== +Please read the mender documentation at: +https://docs.mender.io/2.2/getting-started diff --git a/board/microchip/sam9x60ek_mmc/genimage.cfg b/board/microchip/sam9x60ek_mmc/genimage.cfg new file mode 100644 index 000000000..629caf3ef --- /dev/null +++ b/board/microchip/sam9x60ek_mmc/genimage.cfg @@ -0,0 +1,32 @@ +# Image for SD card boot on Microchip SAM9X60-EK +# +image boot.vfat { + vfat { + files = { + "zImage", + "at91-sam9x60ek.dtb", + "boot.bin", + "u-boot.bin" + } + } + + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + offset = 1M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/board/microchip/sama5d2_icp/genimage.cfg b/board/microchip/sama5d2_icp/genimage.cfg new file mode 100644 index 000000000..eecb2ef11 --- /dev/null +++ b/board/microchip/sama5d2_icp/genimage.cfg @@ -0,0 +1,32 @@ +# Image for SD card boot on Microchip SAMA5D2 ICP (Industrial Connectivity Platform) +# +image boot.vfat { + vfat { + files = { + "zImage", + "at91-sama5d2_icp.dtb", + "boot.bin", + "u-boot.bin" + } + } + + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + offset = 1M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/board/microchip/sama7g5ek/genimage.cfg b/board/microchip/sama7g5ek/genimage.cfg new file mode 100644 index 000000000..ade29e4b5 --- /dev/null +++ b/board/microchip/sama7g5ek/genimage.cfg @@ -0,0 +1,31 @@ +# Image for SD card boot on Microchip SAMA7G5EK (sama7g5 evaluation kit) +# +image boot.vfat { + vfat { + files = { + "zImage", + "at91-sama7g5ek.dtb", + "boot.bin", + "u-boot.bin" + } + } + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + offset = 1M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/board/minnowboard/genimage.cfg b/board/minnowboard/genimage.cfg new file mode 100644 index 000000000..b169d1d06 --- /dev/null +++ b/board/minnowboard/genimage.cfg @@ -0,0 +1,33 @@ +# Create an image of the efi partition +image efi-part.vfat { + vfat { + file EFI { + image = "efi-part/EFI" + } + file bzImage { + image = "bzImage" + } + } + + size = 10M +} + +# Create the sdcard image, pulling in +# * the image created by buildroot +# * the efi-partition created above +image sdcard.img { + hdimage { + partition-table-type = "gpt" + } + + partition boot { + partition-type-uuid = U + image = "efi-part.vfat" + } + + partition rootfs { + partition-type-uuid = L + image = "rootfs.ext4" + size = 512M + } +} diff --git a/board/minnowboard/grub.cfg b/board/minnowboard/grub.cfg new file mode 100644 index 000000000..1f75f4d7c --- /dev/null +++ b/board/minnowboard/grub.cfg @@ -0,0 +1,6 @@ +set default="0" +set timeout="5" + +menuentry "Buildroot" { + linux /bzImage root=PARTLABEL=rootfs rootwait console=tty0 console=ttyS0,115200 net.ifnames=0 +} diff --git a/board/minnowboard/linux.config b/board/minnowboard/linux.config new file mode 100644 index 000000000..928e353c1 --- /dev/null +++ b/board/minnowboard/linux.config @@ -0,0 +1,61 @@ +CONFIG_SYSVIPC=y +CONFIG_NO_HZ=y +CONFIG_SMP=y +CONFIG_X86_INTEL_LPSS=y +CONFIG_MATOM=y +CONFIG_EFI=y +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y +CONFIG_X86_INTEL_PSTATE=y +CONFIG_X86_ACPI_CPUFREQ=y +CONFIG_INTEL_IDLE=y +CONFIG_IA32_EMULATION=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_PCI=y +CONFIG_BLK_DEV_SD=y +CONFIG_CHR_DEV_SG=y +CONFIG_ATA=y +CONFIG_SATA_AHCI=y +CONFIG_ATA_PIIX=y +CONFIG_NETDEVICES=y +CONFIG_R8169=y +CONFIG_IGB=y +CONFIG_INPUT_EVDEV=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_DW=y +CONFIG_I2C_I801=y +CONFIG_I2C_DESIGNWARE_PLATFORM=y +CONFIG_I2C_DESIGNWARE_PCI=y +CONFIG_SPI=y +CONFIG_SPI_DESIGNWARE=y +CONFIG_SPI_PXA2XX=y +CONFIG_PINCTRL_BAYTRAIL=y +CONFIG_GPIOLIB=y +CONFIG_GPIO_SYSFS=y +CONFIG_AGP=y +CONFIG_DRM=y +CONFIG_DRM_LOAD_EDID_FIRMWARE=y +CONFIG_DRM_I915=y +CONFIG_SOUND=y +CONFIG_SND=y +# CONFIG_SND_DRIVERS is not set +CONFIG_SND_HDA_INTEL=y +CONFIG_SND_HDA_CODEC_HDMI=y +# CONFIG_SND_SPI is not set +# CONFIG_SND_USB is not set +CONFIG_USB=y +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_STORAGE=y +CONFIG_NOP_USB_XCEIV=y +CONFIG_MMC=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PCI=y +CONFIG_MMC_SDHCI_ACPI=y +CONFIG_PWM=y +CONFIG_EXT4_FS=y +CONFIG_UNWINDER_FRAME_POINTER=y diff --git a/board/minnowboard/post-build.sh b/board/minnowboard/post-build.sh new file mode 100755 index 000000000..24b8c0539 --- /dev/null +++ b/board/minnowboard/post-build.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +cp -v board/minnowboard/grub.cfg ${BINARIES_DIR}/efi-part/EFI/BOOT/grub.cfg + +# Add a console on tty1 +if [ -e ${TARGET_DIR}/etc/inittab ]; then + grep -qE '^tty1::' ${TARGET_DIR}/etc/inittab || \ + sed -i '/GENERIC_SERIAL/a\ +tty1::respawn:/sbin/getty -L tty1 0 vt100 # HDMI console' ${TARGET_DIR}/etc/inittab +fi diff --git a/board/minnowboard/readme.txt b/board/minnowboard/readme.txt new file mode 100644 index 000000000..fdbb81e3a --- /dev/null +++ b/board/minnowboard/readme.txt @@ -0,0 +1,28 @@ +How to get started with the MinnowBoard MAX +=========================================== + +1. Build + + Apply the defconfig: + + $ make minnowboard_max_defconfig + + Add any additional packages required and build: + + $ make + +2. Write the SD card + + The build process will create a SD card image in output/images. + Write the image to an mSD card, insert into the MinnowBoard MAX + and power the board on. + + $ dd if=output/images/sdcard.img of=/dev/mmcblk0; sync + + The system starts two consoles: one on the serial port + and one on HDMI. + +3. Enjoy + +Additional information about this board can be found at +http://www.minnowboard.org/. diff --git a/board/nexbox/a95x/boot.txt b/board/nexbox/a95x/boot.txt new file mode 100644 index 000000000..eef1c8ca5 --- /dev/null +++ b/board/nexbox/a95x/boot.txt @@ -0,0 +1,11 @@ +setenv bootargs console=ttyAML0,115200 earlyprintk root=PARTUUID=feedc0de-02 rootwait + +fatload mmc 0:1 0x01080000 uImage + +if itest.s "${aml_dt}" == "gxl_p212_2g"; then + fatload mmc 0:1 $dtb_mem_addr meson-gxl-s905x-nexbox-a95x.dtb +else + fatload mmc 0:1 $dtb_mem_addr meson-gxbb-nexbox-a95x.dtb +fi + +bootm 0x1080000 - $dtb_mem_addr diff --git a/board/nexbox/a95x/genimage.cfg b/board/nexbox/a95x/genimage.cfg new file mode 100644 index 000000000..81bcc82c9 --- /dev/null +++ b/board/nexbox/a95x/genimage.cfg @@ -0,0 +1,31 @@ +image boot.vfat { + vfat { + files = { + "uImage", + "meson-gxbb-nexbox-a95x.dtb", + "meson-gxl-s905x-nexbox-a95x.dtb", + "boot.scr" + } + } + + size = 32M +} + +image sdcard.img { + hdimage { + # for root=PARTUUID support + disk-signature = 0xfeedc0de + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/board/nexbox/a95x/post-build.sh b/board/nexbox/a95x/post-build.sh new file mode 100755 index 000000000..f8706f2df --- /dev/null +++ b/board/nexbox/a95x/post-build.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" +MKIMAGE=$HOST_DIR/bin/mkimage + +$MKIMAGE -C none -A arm64 -T script -d $BOARD_DIR/boot.txt $BINARIES_DIR/boot.scr + +# vendor u-boot uses uImage +if [ -e $BINARIES_DIR/Image ]; then + $MKIMAGE -A arm64 -O linux -T kernel -C none -a 0x1080000 -e 0x1080000 \ + -n linux -d $BINARIES_DIR/Image $BINARIES_DIR/uImage +fi diff --git a/board/nexbox/a95x/post-image.sh b/board/nexbox/a95x/post-image.sh new file mode 100755 index 000000000..359b4c9e7 --- /dev/null +++ b/board/nexbox/a95x/post-image.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" +GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg" +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + +rm -rf "${GENIMAGE_TMP}" + +genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" diff --git a/board/nexbox/a95x/readme.txt b/board/nexbox/a95x/readme.txt new file mode 100644 index 000000000..e08b4e4e6 --- /dev/null +++ b/board/nexbox/a95x/readme.txt @@ -0,0 +1,48 @@ +Nexbox A95X + +Intro +===== + +Nexbox A95X is a low cost Android STB based around an Amlogic s905(x) SoC +(quad A53), 8/16GB eMMC and 1/2GB RAM. To use this defconfig, wires to the +internal UART solder pads must be added. See the linux-meson page for +details: + +http://linux-meson.com/doku.php?id=nexbox_a95x_s905 + +Both the s905 (gxbb) and s905x (gxl) variant is supported. + +This default configuration will allow you to start experimenting with the +buildroot environment for the A95X. With the current configuration it will +bring-up the board from microSD, and allow access through the serial +console. + +How to build it +=============== + +Configure Buildroot: + + $ make nexbox_a95x_defconfig + +Compile everything and build the SD card image: + + $ make + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto a microSD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + +How to boot +=========== + +Insert microSD card and connect serial cable. Power board and stop +U-Boot by pressing any key. Boot the system by typing: + +fatload mmc 0:1 0x1070000 boot.scr +autoscr 0x1070000 diff --git a/board/nezha/genimage.cfg b/board/nezha/genimage.cfg new file mode 100644 index 000000000..783391fb9 --- /dev/null +++ b/board/nezha/genimage.cfg @@ -0,0 +1,37 @@ +# Minimal SD card image for the Allwinner Nezha + +image sdcard.img { + hdimage { + } + + partition boot0-1 { + in-partition-table = "no" + image = "boot0_sdcard_sun20iw1p1.bin" + offset = 8K + } + + partition boot0-2 { + in-partition-table = "no" + image = "boot0_sdcard_sun20iw1p1.bin" + offset = 128K + } + + partition u-boot-1 { + in-partition-table = "no" + image = "u-boot.toc1" + offset = 12M + } + + partition u-boot-2 { + in-partition-table = "no" + image = "u-boot.toc1" + offset = 16400K + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + bootable = "true" + offset = 18M + } +} diff --git a/board/nezha/overlay/boot/extlinux/extlinux.conf b/board/nezha/overlay/boot/extlinux/extlinux.conf new file mode 100644 index 000000000..02232f4d1 --- /dev/null +++ b/board/nezha/overlay/boot/extlinux/extlinux.conf @@ -0,0 +1,4 @@ +label linux + kernel /boot/Image + devicetree /boot/sun20i-d1-nezha.dtb + append console=ttyS0,115200 root=/dev/mmcblk0p1 ro rootwait diff --git a/board/nezha/patches/uboot/0001-arch-riscv-dts-sun20i-d1.dtsi-adjust-plic-compatible.patch b/board/nezha/patches/uboot/0001-arch-riscv-dts-sun20i-d1.dtsi-adjust-plic-compatible.patch new file mode 100644 index 000000000..3524f44a6 --- /dev/null +++ b/board/nezha/patches/uboot/0001-arch-riscv-dts-sun20i-d1.dtsi-adjust-plic-compatible.patch @@ -0,0 +1,36 @@ +From 99cf8f37ceb1def9e7bbaccc395cf2275723e03d Mon Sep 17 00:00:00 2001 +From: Peter Korsgaard +Date: Thu, 4 Nov 2021 22:15:13 +0100 +Subject: [PATCH] arch/riscv/dts/sun20i-d1.dtsi: adjust plic compatible to + match opensbi + +The T-HEAD PLIC is by default not accessible from S-mode, and access must be +enabled by opensbi to make it accessible to Linux. + +The DTB is used both by U-Boot and opensbi (but the PLIC node is ignored by +U-Boot), so change the compatible to match what opensbi expects to fix a +crash during Linux boot: + +https://github.com/riscv-software-src/opensbi/commit/78c2b19218bd + +Signed-off-by: Peter Korsgaard +--- + arch/riscv/dts/sun20i-d1.dtsi | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/riscv/dts/sun20i-d1.dtsi b/arch/riscv/dts/sun20i-d1.dtsi +index 280e0336d4..56d02c33b0 100644 +--- a/arch/riscv/dts/sun20i-d1.dtsi ++++ b/arch/riscv/dts/sun20i-d1.dtsi +@@ -1136,7 +1136,7 @@ + + plic: interrupt-controller@10000000 { + compatible = "allwinner,sun20i-d1-plic", +- "sifive,plic-1.0.0"; ++ "thead,c900-plic"; + reg = <0x10000000 0x4000000>; + #address-cells = <0>; + interrupts-extended = <&cpu0_intc 11>, +-- +2.20.1 + diff --git a/board/nezha/patches/uboot/0002-Makefile-HACK-Support-building-u-boot.toc1-for-nezda.patch b/board/nezha/patches/uboot/0002-Makefile-HACK-Support-building-u-boot.toc1-for-nezda.patch new file mode 100644 index 000000000..6e89a921d --- /dev/null +++ b/board/nezha/patches/uboot/0002-Makefile-HACK-Support-building-u-boot.toc1-for-nezda.patch @@ -0,0 +1,54 @@ +From 4a923e0e4ef6d2b41cb89d658e269adada847573 Mon Sep 17 00:00:00 2001 +From: Peter Korsgaard +Date: Thu, 4 Nov 2021 22:32:04 +0100 +Subject: [PATCH] Makefile: HACK: Support building u-boot.toc1 for nezda board + +For easier integration into Buildroot. The boot0 / toc1 logic is WIP until +U-Boot gains SPL support for the D1, so add a hack to make it easier to +integrate in Buildroot as-is. + +Signed-off-by: Peter Korsgaard +--- + Makefile | 9 +++++++++ + nezha.cfg | 9 +++++++++ + 2 files changed, 18 insertions(+) + create mode 100644 nezha.cfg + +diff --git a/Makefile b/Makefile +index f911f70344..259d93bf80 100644 +--- a/Makefile ++++ b/Makefile +@@ -1084,6 +1084,15 @@ endif + .binman_stamp: FORCE + @touch $@ + ++fw_dynamic.bin: $(OPENSBI) ++ $(call if_changed,copy) ++ ++MKIMAGEFLAGS_u-boot.toc1 = -T sunxi_toc1 ++u-boot.toc1: nezha.cfg fw_dynamic.bin inputs ++ $(call if_changed,mkimage) ++ ++all: u-boot.toc1 ++ + ifeq ($(CONFIG_DEPRECATED),y) + $(warning "You have deprecated configuration options enabled in your .config! Please check your configuration.") + endif +diff --git a/nezha.cfg b/nezha.cfg +new file mode 100644 +index 0000000000..2d23b9b388 +--- /dev/null ++++ b/nezha.cfg +@@ -0,0 +1,9 @@ ++[opensbi] ++file = fw_dynamic.bin ++addr = 0x40000000 ++[dtb] ++file = arch/riscv/dts/sun20i-d1-nezha.dtb ++addr = 0x44000000 ++[u-boot] ++file = u-boot-nodtb.bin ++addr = 0x4a000000 +-- +2.20.1 + diff --git a/board/nezha/readme.txt b/board/nezha/readme.txt new file mode 100644 index 000000000..fd4c6707d --- /dev/null +++ b/board/nezha/readme.txt @@ -0,0 +1,24 @@ +Allwinner Nezha +=============== + +Nezha is is a low-cost RISC-V 64-bit based platform, powered by an +Allwinner D1 SoC. + +How to build +============ + +$ make nezha_defconfig +$ make + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + +Connect a TTL UART to the debug connector, insert the microSD card and +plug in a USB-C cable to the PWR connector to boot the system. diff --git a/board/octavo/osd32mp1-brk/genimage.cfg b/board/octavo/osd32mp1-brk/genimage.cfg new file mode 100644 index 000000000..c632090ef --- /dev/null +++ b/board/octavo/osd32mp1-brk/genimage.cfg @@ -0,0 +1,23 @@ +image sdcard.img { + hdimage { + partition-table-type = "gpt" + } + + partition fsbl1 { + image = "tf-a-stm32mp157c-osd32mp1-brk.stm32" + } + + partition fsbl2 { + image = "tf-a-stm32mp157c-osd32mp1-brk.stm32" + } + + partition ssbl { + image = "u-boot.stm32" + size = 2M + } + + partition rootfs { + image = "rootfs.ext4" + bootable = "yes" + } +} diff --git a/board/octavo/osd32mp1-brk/linux-dts/stm32mp157c-osd32mp1-brk.dts b/board/octavo/osd32mp1-brk/linux-dts/stm32mp157c-osd32mp1-brk.dts new file mode 100644 index 000000000..48ae3bfab --- /dev/null +++ b/board/octavo/osd32mp1-brk/linux-dts/stm32mp157c-osd32mp1-brk.dts @@ -0,0 +1,1167 @@ +/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */ +/* + * Copyright (C) Octavo Systems LLC 2020 - All Rights Reserved + */ + +/* For more information on Device Tree configuration, please refer to + * https://wiki.st.com/stm32mpu/wiki/Category:Device_tree_configuration + */ + +/dts-v1/; +#include + +#include "stm32mp157.dtsi" +#include "stm32mp15xc.dtsi" +#include "stm32mp15xxac-pinctrl.dtsi" +#include "stm32mp157-m4-srm.dtsi" +#include +#include + +/ { + model = "Octavo OSD32MP1 BRK board"; + compatible = "st,stm32mp157c-osd32mp1-brk", "st,stm32mp157"; + + memory@c0000000 { + device_type = "memory"; + reg = <0xc0000000 0x20000000>; + }; + + reserved-memory { + #address-cells = <1>; + #size-cells = <1>; + ranges; + + mcuram2:mcuram2@10000000{ + compatible = "shared-dma-pool"; + reg = <0x10000000 0x40000>; + no-map; + }; + + vdev0vring0:vdev0vring0@10040000{ + compatible = "shared-dma-pool"; + reg = <0x10040000 0x1000>; + no-map; + }; + + vdev0vring1:vdev0vring1@10041000{ + compatible = "shared-dma-pool"; + reg = <0x10041000 0x1000>; + no-map; + }; + + vdev0buffer:vdev0buffer@10042000{ + compatible = "shared-dma-pool"; + reg = <0x10042000 0x4000>; + no-map; + }; + + mcuram:mcuram@30000000{ + compatible = "shared-dma-pool"; + reg = <0x30000000 0x40000>; + no-map; + }; + + retram:retram@38000000{ + compatible = "shared-dma-pool"; + reg = <0x38000000 0x10000>; + no-map; + }; + + gpu_reserved:gpu@da000000{ + reg = <0xda000000 0x4000000>; + no-map; + }; + + optee_memory:optee@0xde000000{ + reg = <0xde000000 0x02000000>; + no-map; + status = "okay"; + }; + }; + + led{ + compatible = "gpio-leds"; + + red1{ + label = "LED1_RED"; + gpios = <&gpioz 6 GPIO_ACTIVE_LOW>; + linux,default-trigger = "heartbeat"; + status = "okay"; + default-state = "off"; + }; + + green1{ + label = "LED1_GRN"; + gpios = <&gpioz 7 GPIO_ACTIVE_LOW>; + status = "okay"; + default-state = "on"; + }; + + red2{ + label = "LED2_RED"; + gpios = <&gpioi 8 GPIO_ACTIVE_LOW>; + status = "okay"; + default-state = "off"; + }; + + green2{ + label = "LED2_GRN"; + gpios = <&gpioi 9 GPIO_ACTIVE_LOW>; + default-state = "off"; + }; + }; + + usb_phy_tuning:usb-phy-tuning{ + st,hs-dc-level = <2>; + st,fs-rftime-tuning; + st,hs-rftime-reduction; + st,hs-current-trim = <15>; + st,hs-impedance-trim = <1>; + st,squelch-level = <3>; + st,hs-rx-offset = <2>; + st,no-lsfs-sc; + }; + + vin:vin{ + compatible = "regulator-fixed"; + regulator-name = "vin"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + regulator-always-on; + }; + + aliases{ + serial0 = &uart4; + serial2 = &usart2; + serial5 = &uart5; + serial7 = &uart7; + serial1 = &uart8; + }; + + chosen{ + stdout-path = "serial0:115200n8"; + }; + + clocks { + +#ifndef CONFIG_STM32MP1_TRUSTED + clk_lsi: clk-lsi { + clock-frequency = <32000>; + }; + clk_hsi: clk-hsi { + clock-frequency = <64000000>; + }; + clk_csi: clk-csi { + clock-frequency = <4000000>; + }; + clk_lse: clk-lse { + clock-frequency = <32768>; + }; + clk_hse: clk-hse { + clock-frequency = <24000000>; + }; +#endif /*CONFIG_STM32MP1_TRUSTED*/ + }; + +}; /*root*/ + +&pinctrl { + u-boot,dm-pre-reloc; + + i2c1_pins_mx: i2c1-0 { + pins { + pinmux = , /* I2C1_SCL */ + ; /* I2C1_SDA */ + bias-disable; + drive-open-drain; + slew-rate = <0>; + }; + }; + + i2c1_pins_sleep_mx: i2c1-1 { + pins { + pinmux = , /* I2C1_SCL */ + ; /* I2C1_SDA */ + }; + }; + + i2c2_pins_mx: i2c2-0 { + pins { + pinmux = , /* I2C2_SCL */ + ; /* I2C2_SDA */ + bias-disable; + drive-open-drain; + slew-rate = <0>; + }; + }; + + i2c2_pins_sleep_mx: i2c2-1 { + pins { + pinmux = , /* I2C2_SCL */ + ; /* I2C2_SDA */ + }; + }; + + i2c5_pins_mx: i2c5-0 { + pins { + pinmux = , /* I2C5_SCL */ + ; /* I2C5_SDA */ + bias-disable; + drive-open-drain; + slew-rate = <0>; + }; + }; + + i2c5_pins_sleep_mx: i2c5-1 { + pins { + pinmux = , /* I2C5_SCL */ + ; /* I2C5_SDA */ + }; + }; + + spi2_pins_mx: spi2-0 { + pins1 { + pinmux = , /* SPI2_SCK */ + ; /* SPI2_MOSI */ + bias-disable; + drive-push-pull; + slew-rate = <1>; + }; + + pins2 { + pinmux = ; /* SPI2_MISO */ + bias-disable; + }; + }; + + spi2_sleep_pins_mx: spi2-sleep-0 { + pins { + pinmux = , /* SPI2_SCK */ + , /* SPI2_MISO */ + ; /* SPI2_MOSI */ + }; + }; + + spi4_pins_mx: spi4-0 { + pins1 { + pinmux = , /* SPI4_SCK */ + ; /* SPI4_MOSI */ + bias-disable; + drive-push-pull; + slew-rate = <1>; + }; + + pins2 { + pinmux = ; /* SPI4_MISO */ + bias-disable; + }; + }; + + spi4_sleep_pins_mx: spi4-sleep-0 { + pins { + pinmux = , /* SPI2_SCK */ + , /* SPI2_MISO */ + ; /* SPI2_MOSI */ + }; + }; + + usart2_pins_mx: usart2-0 { + pins1 { + pinmux = ; /* USART2_TX */ + bias-disable; + drive-push-pull; + slew-rate = <0>; + }; + pins2 { + pinmux = ; /* USART2_RX */ + bias-disable; + }; + }; + + usart2_idle_pins_mx: usart2-idle-0 { + pins1 { + pinmux = ; /* USART2_TX */ + }; + pins2 { + pinmux = ; /* USART2_RX */ + bias-disable; + }; + }; + + usart2_sleep_pins_mx: usart2-sleep-0 { + pins { + pinmux = , /* USART2_TX */ + ; /* USART2_RX */ + }; + }; + + uart5_pins_mx: uart5-0 { + pins1 { + pinmux = ; /* USART5_TX */ + bias-disable; + drive-push-pull; + slew-rate = <0>; + }; + pins2 { + pinmux = ; /* USART5_RX */ + bias-disable; + }; + }; + + uart5_idle_pins_mx: uart5-idle-0 { + pins1 { + pinmux = ; /* USART5_TX */ + }; + pins2 { + pinmux = ; /* USART5_RX */ + bias-disable; + }; + }; + + uart5_sleep_pins_mx: uart5-sleep-0 { + pins { + pinmux = , /* USART5_TX */ + ; /* USART5_RX */ + }; + }; + + uart7_pins_mx: uart7-0 { + pins1 { + pinmux = ; /* USART7_TX */ + bias-disable; + drive-push-pull; + slew-rate = <0>; + }; + pins2 { + pinmux = ; /* USART7_RX */ + bias-disable; + }; + }; + + uart7_idle_pins_mx: uart7-idle-0 { + pins1 { + pinmux = ; /* USART7_TX */ + }; + pins2 { + pinmux = ; /* USART7_RX */ + bias-disable; + }; + }; + + uart7_sleep_pins_mx: uart7-sleep-0 { + pins { + pinmux = , /* USART7_TX */ + ; /* USART7_RX */ + }; + }; + + uart8_pins_mx: uart8-0 { + pins1 { + pinmux = ; /* USART8_TX */ + bias-disable; + drive-push-pull; + slew-rate = <0>; + }; + pins2 { + pinmux = ; /* USART8_RX */ + bias-disable; + }; + }; + + uart8_idle_pins_mx: uart8-idle-0 { + pins1 { + pinmux = ; /* USART8_TX */ + }; + pins2 { + pinmux = ; /* USART8_RX */ + bias-disable; + }; + }; + + uart8_sleep_pins_mx: uart8-sleep-0 { + pins { + pinmux = , /* USART8_TX */ + ; /* USART8_RX */ + }; + }; + + m_can1_pins_mx: m-can1-0 { + pins1 { + pinmux = ; /* CAN1_TX */ + slew-rate = <0>; + drive-push-pull; + bias-disable; + }; + pins2 { + pinmux = ; /* CAN1_RX */ + bias-disable; + }; + }; + + m_can1_sleep_pins_mx: m_can1-sleep@0 { + pins { + pinmux = , /* CAN1_TX */ + ; /* CAN1_RX */ + }; + }; + + pwm1_pins_mx: pwm1-0 { + pins { + pinmux = ; /* TIM1_CH2 */ + bias-pull-down; + drive-push-pull; + slew-rate = <0>; + }; + }; + + pwm1_sleep_pins_mx: pwm1-sleep-0 { + pins { + pinmux = ; /* TIM1_CH1 */ + }; + }; + + pwm3_pins_mx: pwm3-0 { + pins { + pinmux = ; /* TIM3_CH2 */ + bias-pull-down; + drive-push-pull; + slew-rate = <0>; + }; + }; + + pwm3_sleep_pins_mx: pwm3-sleep-0 { + pins { + pinmux = ; /* TIM3_CH2 */ + }; + }; + + pwm4_pins_mx: pwm4-0 { + pins { + pinmux = ; /* TIM4_CH2 */ + bias-pull-down; + drive-push-pull; + slew-rate = <0>; + }; + }; + + pwm4_sleep_pins_mx: pwm4-sleep-0 { + pins { + pinmux = ; /* TIM4_CH2 */ + }; + }; + + pwm8_pins_mx: pwm8-0 { + pins { + pinmux = ; /* TIM8_CH2 */ + bias-pull-down; + drive-push-pull; + slew-rate = <0>; + }; + }; + + pwm8_sleep_pins_mx: pwm8-sleep-0 { + pins { + pinmux = ; /* TIM8_CH2 */ + }; + }; + + + pwm12_pins_mx: pwm12-0 { + pins { + pinmux = ; /* TIM12_CH2 */ + bias-pull-down; + drive-push-pull; + slew-rate = <0>; + }; + }; + + pwm12_sleep_pins_mx: pwm12-sleep-0 { + pins { + pinmux = ; /* TIM12_CH2 */ + }; + }; + + sdmmc1_pins_mx: sdmmc1_mx-0 { + u-boot,dm-pre-reloc; + pins1 { + u-boot,dm-pre-reloc; + pinmux = , /* SDMMC1_D0 */ + , /* SDMMC1_D1 */ + , /* SDMMC1_D2 */ + , /* SDMMC1_D3 */ + ; /* SDMMC1_CMD */ + bias-disable; + drive-push-pull; + slew-rate = <1>; + }; + pins2 { + u-boot,dm-pre-reloc; + pinmux = ; /* SDMMC1_CK */ + bias-disable; + drive-push-pull; + slew-rate = <2>; + }; + }; + + sdmmc1_opendrain_pins_mx: sdmmc1_opendrain_mx-0 { + u-boot,dm-pre-reloc; + pins1 { + u-boot,dm-pre-reloc; + pinmux = , /* SDMMC1_D0 */ + , /* SDMMC1_D1 */ + , /* SDMMC1_D2 */ + ; /* SDMMC1_D3 */ + bias-disable; + drive-push-pull; + slew-rate = <1>; + }; + pins2 { + u-boot,dm-pre-reloc; + pinmux = ; /* SDMMC1_CK */ + bias-disable; + drive-push-pull; + slew-rate = <2>; + }; + pins3 { + u-boot,dm-pre-reloc; + pinmux = ; /* SDMMC1_CMD */ + bias-disable; + drive-open-drain; + slew-rate = <1>; + }; + }; + + sdmmc1_sleep_pins_mx: sdmmc1_sleep_mx-0 { + u-boot,dm-pre-reloc; + pins { + u-boot,dm-pre-reloc; + pinmux = , /* SDMMC1_D0 */ + , /* SDMMC1_D1 */ + , /* SDMMC1_D2 */ + , /* SDMMC1_D3 */ + , /* SDMMC1_CK */ + ; /* SDMMC1_CMD */ + }; + }; + + uart4_pins_mx: uart4_mx-0 { + u-boot,dm-pre-reloc; + pins1 { + u-boot,dm-pre-reloc; + pinmux = ; /* UART4_RX */ + /* pull-up on rx to avoid floating level */ + bias-pull-up; + }; + pins2 { + u-boot,dm-pre-reloc; + pinmux = ; /* UART4_TX */ + bias-disable; + drive-push-pull; + slew-rate = <0>; + }; + }; + + uart4_sleep_pins_mx: uart4_sleep_mx-0 { + u-boot,dm-pre-reloc; + pins { + u-boot,dm-pre-reloc; + pinmux = , /* UART4_RX */ + ; /* UART4_TX */ + }; + }; +}; + +&pinctrl_z { + u-boot,dm-pre-reloc; + + i2c4_pins_z_mx: i2c4_mx-0 { + u-boot,dm-pre-reloc; + pins { + u-boot,dm-pre-reloc; + pinmux = , /* I2C4_SCL */ + ; /* I2C4_SDA */ + bias-disable; + drive-open-drain; + slew-rate = <0>; + }; + }; + + i2c4_sleep_pins_z_mx: i2c4_sleep_mx-0 { + u-boot,dm-pre-reloc; + pins { + u-boot,dm-pre-reloc; + pinmux = , /* I2C4_SCL */ + ; /* I2C4_SDA */ + }; + }; + + spi6_pins_mx: spi6-0 { + pins1 { + pinmux = , /* SPI6_SCK */ + ; /* SPI6_MOSI */ + bias-disable; + drive-push-pull; + slew-rate = <1>; + }; + + pins2 { + pinmux = ; /* SPI6_MISO */ + bias-disable; + }; + }; + + spi6_sleep_pins_mx: spi6-sleep-0 { + pins { + pinmux = , /* SPI6_SCK */ + , /* SPI6_MISO */ + ; /* SPI6_MOSI */ + }; + }; +}; + +&m4_rproc{ + /*Restriction: "memory-region" property is not managed - please to use User-Section if needed*/ + mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>; + mbox-names = "vq0", "vq1", "shutdown"; + status = "okay"; + memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>, + <&vdev0vring1>, <&vdev0buffer>; + interrupt-parent = <&exti>; + interrupts = <68 1>; + wakeup-source; +}; + +&pwr_regulators { + vdd-supply = <&vdd>; + vdd_3v3_usbfs-supply = <&vdd_usb>; +}; + +&bsec{ + status = "okay"; +}; + +&crc1{ + status = "okay"; +}; + +&cryp1{ + u-boot,dm-pre-reloc; + status = "okay"; +}; + +&dma1{ + status = "okay"; + sram = <&dma_pool>; +}; + +&dma2{ + status = "okay"; + sram = <&dma_pool>; +}; + +&dmamux1{ + + dma-masters = <&dma1 &dma2>; + dma-channels = <16>; + + status = "okay"; +}; + +&dts{ + status = "okay"; +}; + +&gpu{ + status = "okay"; + contiguous-area = <&gpu_reserved>; +}; + +&hash1{ + u-boot,dm-pre-reloc; + status = "okay"; +}; + +&hsem{ + status = "okay"; +}; + +&i2c1 { + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&i2c1_pins_mx>; + pinctrl-1 = <&i2c1_pins_sleep_mx>; + i2c-scl-rising-time-ns = <100>; + i2c-scl-falling-time-ns = <7>; + status = "okay"; + /delete-property/dmas; + /delete-property/dma-names; +}; + +&i2c2 { + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&i2c2_pins_mx>; + pinctrl-1 = <&i2c2_pins_sleep_mx>; + i2c-scl-rising-time-ns = <100>; + i2c-scl-falling-time-ns = <7>; + status = "okay"; + /delete-property/dmas; + /delete-property/dma-names; +}; + +&i2c5 { + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&i2c5_pins_mx>; + pinctrl-1 = <&i2c5_pins_sleep_mx>; + i2c-scl-rising-time-ns = <100>; + i2c-scl-falling-time-ns = <7>; + status = "okay"; + /delete-property/dmas; + /delete-property/dma-names; +}; + +&i2c4{ + u-boot,dm-pre-reloc; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&i2c4_pins_z_mx>; + pinctrl-1 = <&i2c4_sleep_pins_z_mx>; + status = "okay"; + + i2c-scl-rising-time-ns = <185>; + i2c-scl-falling-time-ns = <20>; + clock-frequency = <400000>; + /delete-property/ dmas; + /delete-property/ dma-names; + + pmic:stpmic@33{ + compatible = "st,stpmic1"; + reg = <0x33>; + interrupts-extended = <&exti_pwr 55 IRQ_TYPE_EDGE_FALLING>; + interrupt-controller; + #interrupt-cells = <2>; + status = "okay"; + + regulators{ + compatible = "st,stpmic1-regulators"; + buck1-supply = <&vin>; + buck2-supply = <&vin>; + buck3-supply = <&vin>; + buck4-supply = <&vin>; + ldo1-supply = <&v3v3>; + ldo2-supply = <&vin>; + ldo3-supply = <&vdd_ddr>; + ldo4-supply = <&vin>; + ldo5-supply = <&vin>; + ldo6-supply = <&v3v3>; + vref_ddr-supply = <&vin>; + boost-supply = <&vin>; + pwr_sw1-supply = <&bst_out>; + pwr_sw2-supply = <&bst_out>; + + vddcore:buck1{ + regulator-name = "vddcore"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1350000>; + regulator-always-on; + regulator-initial-mode = <0>; + regulator-over-current-protection; + }; + + vdd_ddr:buck2{ + regulator-name = "vdd_ddr"; + regulator-min-microvolt = <1350000>; + regulator-max-microvolt = <1350000>; + regulator-always-on; + regulator-initial-mode = <0>; + regulator-over-current-protection; + }; + + vdd:buck3{ + regulator-name = "vdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + st,mask-reset; + regulator-initial-mode = <0>; + regulator-over-current-protection; + }; + + v3v3:buck4{ + regulator-name = "v3v3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + regulator-over-current-protection; + regulator-initial-mode = <0>; + }; + + v1v8_audio:ldo1{ + regulator-name = "v1v8_audio"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + interrupts = ; + }; + + v3v3_hdmi:ldo2{ + regulator-name = "v3v3_hdmi"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + interrupts = ; + }; + + vtt_ddr:ldo3{ + regulator-name = "vtt_ddr"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <750000>; + regulator-always-on; + regulator-over-current-protection; + }; + + vdd_usb:ldo4{ + regulator-name = "vdd_usb"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + interrupts = ; + regulator-always-on; + }; + + vdda:ldo5{ + regulator-name = "vdda"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + interrupts = ; + regulator-boot-on; + }; + + v1v2_hdmi:ldo6{ + regulator-name = "v1v2_hdmi"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + interrupts = ; + }; + + vref_ddr:vref_ddr{ + regulator-name = "vref_ddr"; + regulator-always-on; + regulator-over-current-protection; + }; + + bst_out:boost{ + regulator-name = "bst_out"; + interrupts = ; + }; + + vbus_otg:pwr_sw1{ + regulator-name = "vbus_otg"; + interrupts = ; + }; + + vbus_sw:pwr_sw2{ + regulator-name = "vbus_sw"; + interrupts = ; + regulator-active-discharge = <1>; + }; + }; + + onkey{ + compatible = "st,stpmic1-onkey"; + interrupts = , ; + interrupt-names = "onkey-falling", "onkey-rising"; + power-off-time-sec = <10>; + status = "okay"; + }; + + watchdog { + compatible = "st,stpmic1-wdt"; + status = "disabled"; + }; + }; + eeprom@50 { + compatible = "atmel,24c02"; + reg = <0x50>; + pagesize = <16>; + }; +}; + +&ipcc{ + status = "okay"; +}; + +&iwdg2{ + status = "okay"; + timeout-sec = <32>; +}; + +&mdma1{ + status = "okay"; +}; + +&rcc{ + u-boot,dm-pre-reloc; + status = "okay"; +}; + +&rng1{ + status = "okay"; +}; + +&rtc{ + status = "okay"; +}; + +&sdmmc1{ + u-boot,dm-pre-reloc; + pinctrl-names = "default", "opendrain", "sleep"; + pinctrl-0 = <&sdmmc1_pins_mx>; + pinctrl-1 = <&sdmmc1_opendrain_pins_mx>; + pinctrl-2 = <&sdmmc1_sleep_pins_mx>; + status = "okay"; + + cd-gpios = <&gpiog 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; + disable-wp; + st,neg-edge; + bus-width = <4>; + vmmc-supply = <&v3v3>; +}; + +&tamp{ + status = "okay"; +}; + +&uart4{ + u-boot,dm-pre-reloc; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&uart4_pins_mx>; + pinctrl-1 = <&uart4_sleep_pins_mx>; + status = "okay"; + + /delete-property/ dmas; + /delete-property/ dma-names; +}; + +&usbh_ehci{ + status = "okay"; + phys = <&usbphyc_port0>; +}; + +&usbh_ohci{ + status = "okay"; +}; + +&usbotg_hs{ + u-boot,dm-pre-reloc; + status = "okay"; + phys = <&usbphyc_port1 0>; + phy-names = "usb2-phy"; +}; + +&usbphyc{ + u-boot,dm-pre-reloc; + status = "okay"; +}; + +&usbphyc_port0{ + u-boot,dm-pre-reloc; + status = "okay"; + phy-supply = <&vdd_usb>; + st,phy-tuning = <&usb_phy_tuning>; +}; + +&usbphyc_port1{ + u-boot,dm-pre-reloc; + status = "okay"; + phy-supply = <&vdd_usb>; + st,phy-tuning = <&usb_phy_tuning>; +}; + +&adc { + vdd-supply = <&vdd>; + vdda-supply = <&vdda>; + vref-supply = <&vdda>; + status = "okay"; + adc1: adc@0 { + st,min-sample-time-nsecs = <5000>; + st,adc-channels = <0 1>; + status = "okay"; + }; + + adc2: adc@100 { + status = "okay"; + }; + + adc_temp: temp { + status = "okay"; + }; +}; + +&usbh_ohci{ + phys = <&usbphyc_port0>; +}; + +&cpu0{ + cpu-supply = <&vddcore>; +}; + +&cpu1{ + cpu-supply = <&vddcore>; +}; + +&sram{ + dma_pool:dma_pool@0{ + reg = <0x50000 0x10000>; + pool; + }; +}; + +&optee{ + status = "okay"; +}; + +&spi2 { + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&spi2_pins_mx>; + pinctrl-1 = <&spi2_sleep_pins_mx>; + cs-gpios = <&gpioi 0 0>; + status = "okay"; + + spidev2: spidev2@0{ + compatible = "rohm,dh2228fv"; + spi-max-frequency = <30000000>; + reg = <0>; + }; +}; + +&spi4 { + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&spi4_pins_mx>; + pinctrl-1 = <&spi4_sleep_pins_mx>; + cs-gpios = <&gpioe 11 0>; + status = "okay"; + + spidev4: spidev4@0{ + compatible = "rohm,dh2228fv"; + spi-max-frequency = <30000000>; + reg = <0>; + }; +}; + +&spi6 { + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&spi6_pins_mx>; + pinctrl-1 = <&spi6_sleep_pins_mx>; + cs-gpios = <&gpioz 3 0>; + status = "okay"; + + spidev6: spidev6@0{ + compatible = "rohm,dh2228fv"; + spi-max-frequency = <30000000>; + reg = <0>; + }; +}; + +&usart2 { + pinctrl-names = "default", "sleep", "idle"; + pinctrl-0 = <&usart2_pins_mx>; + pinctrl-1 = <&usart2_sleep_pins_mx>; + pinctrl-2 = <&usart2_idle_pins_mx>; + status = "okay"; +}; + +&uart5 { + pinctrl-names = "default", "sleep", "idle"; + pinctrl-0 = <&uart5_pins_mx>; + pinctrl-1 = <&uart5_sleep_pins_mx>; + pinctrl-2 = <&uart5_idle_pins_mx>; + status = "okay"; +}; + +&uart7 { + pinctrl-names = "default", "sleep", "idle"; + pinctrl-0 = <&uart7_pins_mx>; + pinctrl-1 = <&uart7_sleep_pins_mx>; + pinctrl-2 = <&uart7_idle_pins_mx>; + status = "okay"; +}; + +&uart8 { + pinctrl-names = "default", "sleep", "idle"; + pinctrl-0 = <&uart8_pins_mx>; + pinctrl-1 = <&uart8_sleep_pins_mx>; + pinctrl-2 = <&uart8_idle_pins_mx>; + status = "okay"; +}; + +&m_can1 { + pinctrl-names = "default"; + pinctrl-0 = <&m_can1_pins_mx>; + status = "okay"; + can-transceiver { + max-bitrate = <5000000>; + }; +}; + +&timers1 { + status = "okay"; + /* spare dmas for other usage */ + /delete-property/dmas; + /delete-property/dma-names; + pwm1: pwm { + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&pwm1_pins_mx>; + pinctrl-1 = <&pwm1_sleep_pins_mx>; + status = "okay"; + }; +}; + +&timers3 { + status = "okay"; + /* spare dmas for other usage */ + /delete-property/dmas; + /delete-property/dma-names; + pwm3: pwm { + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&pwm3_pins_mx>; + pinctrl-1 = <&pwm3_sleep_pins_mx>; + status = "okay"; + }; +}; + +&timers4 { + status = "okay"; + /* spare dmas for other usage */ + /delete-property/dmas; + /delete-property/dma-names; + pwm4: pwm { + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&pwm4_pins_mx>; + pinctrl-1 = <&pwm4_sleep_pins_mx>; + status = "okay"; + }; +}; + +&timers8 { + status = "okay"; + /* spare dmas for other usage */ + /delete-property/dmas; + /delete-property/dma-names; + pwm8: pwm { + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&pwm8_pins_mx>; + pinctrl-1 = <&pwm8_sleep_pins_mx>; + status = "okay"; + }; +}; + +&timers12 { + status = "okay"; + /* spare dmas for other usage */ + /delete-property/dmas; + /delete-property/dma-names; + pwm12: pwm { + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&pwm12_pins_mx>; + pinctrl-1 = <&pwm12_sleep_pins_mx>; + status = "okay"; + }; +}; diff --git a/board/octavo/osd32mp1-brk/overlay/boot/extlinux/extlinux.conf b/board/octavo/osd32mp1-brk/overlay/boot/extlinux/extlinux.conf new file mode 100644 index 000000000..a1ca2e58d --- /dev/null +++ b/board/octavo/osd32mp1-brk/overlay/boot/extlinux/extlinux.conf @@ -0,0 +1,4 @@ +label osd32mp1-brk-buildroot + kernel /boot/zImage + devicetree /boot/stm32mp157c-osd32mp1-brk.dtb + append root=/dev/mmcblk0p4 rootwait diff --git a/board/octavo/osd32mp1-brk/patches/uboot/0001-osd32mp1-BRK-board-added.patch b/board/octavo/osd32mp1-brk/patches/uboot/0001-osd32mp1-BRK-board-added.patch new file mode 100644 index 000000000..aaf89b761 --- /dev/null +++ b/board/octavo/osd32mp1-brk/patches/uboot/0001-osd32mp1-BRK-board-added.patch @@ -0,0 +1,2349 @@ +From 64aed58135378718dc3afd5072278a3648d997ec Mon Sep 17 00:00:00 2001 +From: Martin Lesniak +Date: Thu, 27 Aug 2020 14:44:46 -0500 +Subject: [PATCH] osd32mp1 BRK board added + +New board definition for Octavo's OSD32MP1-BRK +Signed-off-by: neeraj.dantu +[Kory: taken from https://github.com/octavosystems/BRK_Developer_Package_patches/tree/master/u-boot-v2020.01-stm32mp] +Signed-off-by: Kory Maincent +--- + arch/arm/dts/Makefile | 3 +- + .../dts/stm32mp15-osd32mp1-ddr3-1x4Gb.dtsi | 119 ++ + .../dts/stm32mp157c-osd32mp1-brk-u-boot.dtsi | 203 +++ + arch/arm/dts/stm32mp157c-osd32mp1-brk.dts | 1167 +++++++++++++++++ + arch/arm/dts/stm32mp15xx-dkx.dtsi | 3 +- + arch/arm/mach-stm32mp/Kconfig | 10 +- + board/octavo/osd32mp1-brk/Kconfig | 13 + + board/octavo/osd32mp1-brk/MAINTAINERS | 7 + + board/octavo/osd32mp1-brk/Makefile | 9 + + board/octavo/osd32mp1-brk/board.c | 547 ++++++++ + configs/osd32mp1_brk_trusted_defconfig | 148 +++ + 11 files changed, 2226 insertions(+), 3 deletions(-) + create mode 100644 arch/arm/dts/stm32mp15-osd32mp1-ddr3-1x4Gb.dtsi + create mode 100644 arch/arm/dts/stm32mp157c-osd32mp1-brk-u-boot.dtsi + create mode 100644 arch/arm/dts/stm32mp157c-osd32mp1-brk.dts + create mode 100644 board/octavo/osd32mp1-brk/Kconfig + create mode 100644 board/octavo/osd32mp1-brk/MAINTAINERS + create mode 100644 board/octavo/osd32mp1-brk/Makefile + create mode 100644 board/octavo/osd32mp1-brk/board.c + create mode 100644 configs/osd32mp1_brk_trusted_defconfig + +diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile +index c3fd89b8be..7494fca9bb 100644 +--- a/arch/arm/dts/Makefile ++++ b/arch/arm/dts/Makefile +@@ -837,7 +837,8 @@ dtb-$(CONFIG_STM32MP15x) += \ + stm32mp157f-dk2.dtb \ + stm32mp157f-ed1.dtb \ + stm32mp157f-ev1.dtb \ +- stm32mp15xx-dhcom-pdk2.dtb ++ stm32mp15xx-dhcom-pdk2.dtb \ ++ stm32mp157c-osd32mp1-brk.dtb + + dtb-$(CONFIG_SOC_K3_AM6) += k3-am654-base-board.dtb k3-am654-r5-base-board.dtb + dtb-$(CONFIG_SOC_K3_J721E) += k3-j721e-common-proc-board.dtb \ +diff --git a/arch/arm/dts/stm32mp15-osd32mp1-ddr3-1x4Gb.dtsi b/arch/arm/dts/stm32mp15-osd32mp1-ddr3-1x4Gb.dtsi +new file mode 100644 +index 0000000000..362f3281b8 +--- /dev/null ++++ b/arch/arm/dts/stm32mp15-osd32mp1-ddr3-1x4Gb.dtsi +@@ -0,0 +1,119 @@ ++/* ++ * Copyright (C) 2015-2018, STMicroelectronics - All Rights Reserved ++ * ++ * SPDX-License-Identifier: GPL-2.0+ BSD-3-Clause ++ * ++ */ ++ ++/* ++ * File generated by STMicroelectronics STM32CubeMX DDR Tool for MPUs ++ * DDR type: DDR3 / DDR3L ++ * DDR width: 16bits ++ * DDR density: 4Gb ++ * System frequency: 533000Khz ++ * Relaxed Timing Mode: false ++ * Address mapping type: RBC ++ * ++ * Save Date: 2020.08.20, save Time: 10:57:25 ++ */ ++ ++#define DDR_MEM_NAME "DDR3-DDR3L 16bits 533000Khz" ++#define DDR_MEM_SPEED 533000 ++#define DDR_MEM_SIZE 0x20000000 ++ ++#define DDR_MSTR 0x00041401 ++#define DDR_MRCTRL0 0x00000010 ++#define DDR_MRCTRL1 0x00000000 ++#define DDR_DERATEEN 0x00000000 ++#define DDR_DERATEINT 0x00800000 ++#define DDR_PWRCTL 0x00000000 ++#define DDR_PWRTMG 0x00400010 ++#define DDR_HWLPCTL 0x00000000 ++#define DDR_RFSHCTL0 0x00210000 ++#define DDR_RFSHCTL3 0x00000000 ++#define DDR_RFSHTMG 0x0081008B ++#define DDR_CRCPARCTL0 0x00000000 ++#define DDR_DRAMTMG0 0x121B2414 ++#define DDR_DRAMTMG1 0x000A041C ++#define DDR_DRAMTMG2 0x0608090F ++#define DDR_DRAMTMG3 0x0050400C ++#define DDR_DRAMTMG4 0x08040608 ++#define DDR_DRAMTMG5 0x06060403 ++#define DDR_DRAMTMG6 0x02020002 ++#define DDR_DRAMTMG7 0x00000202 ++#define DDR_DRAMTMG8 0x00001005 ++#define DDR_DRAMTMG14 0x000000A0 ++#define DDR_ZQCTL0 0xC2000040 ++#define DDR_DFITMG0 0x02060105 ++#define DDR_DFITMG1 0x00000202 ++#define DDR_DFILPCFG0 0x07000000 ++#define DDR_DFIUPD0 0xC0400003 ++#define DDR_DFIUPD1 0x00000000 ++#define DDR_DFIUPD2 0x00000000 ++#define DDR_DFIPHYMSTR 0x00000000 ++#define DDR_ODTCFG 0x06000600 ++#define DDR_ODTMAP 0x00000001 ++#define DDR_SCHED 0x00000C01 ++#define DDR_SCHED1 0x00000000 ++#define DDR_PERFHPR1 0x01000001 ++#define DDR_PERFLPR1 0x08000200 ++#define DDR_PERFWR1 0x08000400 ++#define DDR_DBG0 0x00000000 ++#define DDR_DBG1 0x00000000 ++#define DDR_DBGCMD 0x00000000 ++#define DDR_POISONCFG 0x00000000 ++#define DDR_PCCFG 0x00000010 ++#define DDR_PCFGR_0 0x00010000 ++#define DDR_PCFGW_0 0x00000000 ++#define DDR_PCFGQOS0_0 0x02100C03 ++#define DDR_PCFGQOS1_0 0x00800100 ++#define DDR_PCFGWQOS0_0 0x01100C03 ++#define DDR_PCFGWQOS1_0 0x01000200 ++#define DDR_PCFGR_1 0x00010000 ++#define DDR_PCFGW_1 0x00000000 ++#define DDR_PCFGQOS0_1 0x02100C03 ++#define DDR_PCFGQOS1_1 0x00800040 ++#define DDR_PCFGWQOS0_1 0x01100C03 ++#define DDR_PCFGWQOS1_1 0x01000200 ++#define DDR_ADDRMAP1 0x00070707 ++#define DDR_ADDRMAP2 0x00000000 ++#define DDR_ADDRMAP3 0x1F000000 ++#define DDR_ADDRMAP4 0x00001F1F ++#define DDR_ADDRMAP5 0x06060606 ++#define DDR_ADDRMAP6 0x0F060606 ++#define DDR_ADDRMAP9 0x00000000 ++#define DDR_ADDRMAP10 0x00000000 ++#define DDR_ADDRMAP11 0x00000000 ++#define DDR_PGCR 0x01442E02 ++#define DDR_PTR0 0x0022AA5B ++#define DDR_PTR1 0x04841104 ++#define DDR_PTR2 0x042DA068 ++#define DDR_ACIOCR 0x10400812 ++#define DDR_DXCCR 0x00000C40 ++#define DDR_DSGCR 0xF200011F ++#define DDR_DCR 0x0000000B ++#define DDR_DTPR0 0x38D488D0 ++#define DDR_DTPR1 0x098B00D8 ++#define DDR_DTPR2 0x10023600 ++#define DDR_MR0 0x00000840 ++#define DDR_MR1 0x00000000 ++#define DDR_MR2 0x00000208 ++#define DDR_MR3 0x00000000 ++#define DDR_ODTCR 0x00010000 ++#define DDR_ZQ0CR1 0x00000038 ++#define DDR_DX0GCR 0x0000CE81 ++#define DDR_DX0DLLCR 0x40000000 ++#define DDR_DX0DQTR 0xFFFFFFFF ++#define DDR_DX0DQSTR 0x3DB02000 ++#define DDR_DX1GCR 0x0000CE81 ++#define DDR_DX1DLLCR 0x40000000 ++#define DDR_DX1DQTR 0xFFFFFFFF ++#define DDR_DX1DQSTR 0x3DB02000 ++#define DDR_DX2GCR 0x0000CE80 ++#define DDR_DX2DLLCR 0x40000000 ++#define DDR_DX2DQTR 0xFFFFFFFF ++#define DDR_DX2DQSTR 0x3DB02000 ++#define DDR_DX3GCR 0x0000CE80 ++#define DDR_DX3DLLCR 0x40000000 ++#define DDR_DX3DQTR 0xFFFFFFFF ++#define DDR_DX3DQSTR 0x3DB02000 +diff --git a/arch/arm/dts/stm32mp157c-osd32mp1-brk-u-boot.dtsi b/arch/arm/dts/stm32mp157c-osd32mp1-brk-u-boot.dtsi +new file mode 100644 +index 0000000000..38a0458838 +--- /dev/null ++++ b/arch/arm/dts/stm32mp157c-osd32mp1-brk-u-boot.dtsi +@@ -0,0 +1,203 @@ ++/* SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause*/ ++/* ++ * Copyright (C) 2020, Octavo Systems LLC - All Rights Reserved ++ */ ++ ++/* For more information on Device Tree configuration, please refer to ++ * https://wiki.st.com/stm32mpu/wiki/Category:Device_tree_configuration ++ */ ++ ++#include ++#include "stm32mp15-osd32mp1-ddr3-1x4Gb.dtsi" ++ ++#include "stm32mp15-u-boot.dtsi" ++#include "stm32mp15-ddr.dtsi" ++ ++ ++/ { ++ ++ aliases{ ++ i2c0 = &i2c4; ++ mmc0 = &sdmmc1; ++ usb0 = &usbotg_hs; ++ }; ++ ++ config{ ++ u-boot,boot-led = "LED2_GRN"; ++ u-boot,error-led = "LED2_RED"; ++ u-boot,mmc-env-partition = "ssbl"; ++ st,stm32prog-gpios = <&gpiod 9 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; ++ }; ++ ++ clocks { ++ u-boot,dm-pre-reloc; ++ ++#ifndef CONFIG_STM32MP1_TRUSTED ++ clk_lsi: clk-lsi { ++ u-boot,dm-pre-reloc; ++ }; ++ clk_hsi: clk-hsi { ++ u-boot,dm-pre-reloc; ++ }; ++ clk_csi: clk-csi { ++ u-boot,dm-pre-reloc; ++ status = "disabled"; ++ }; ++ clk_lse: clk-lse { ++ u-boot,dm-pre-reloc; ++ st,drive = < LSEDRV_MEDIUM_HIGH >; ++ }; ++ clk_hse: clk-hse { ++ u-boot,dm-pre-reloc; ++ st,digbypass; ++ }; ++#endif /*CONFIG_STM32MP1_TRUSTED*/ ++ }; ++ ++}; /*root*/ ++ ++#ifndef CONFIG_STM32MP1_TRUSTED ++ ++&rcc { ++ u-boot,dm-pre-reloc; ++ st,clksrc = < ++ CLK_MPU_PLL1P ++ CLK_AXI_PLL2P ++ CLK_MCU_PLL3P ++ CLK_PLL12_HSE ++ CLK_PLL3_HSE ++ CLK_PLL4_HSE ++ CLK_RTC_LSE ++ CLK_MCO1_DISABLED ++ CLK_MCO2_DISABLED ++ >; ++ st,clkdiv = < ++ 1 /*MPU*/ ++ 0 /*AXI*/ ++ 0 /*MCU*/ ++ 1 /*APB1*/ ++ 1 /*APB2*/ ++ 1 /*APB3*/ ++ 1 /*APB4*/ ++ 2 /*APB5*/ ++ 23 /*RTC*/ ++ 0 /*MCO1*/ ++ 0 /*MCO2*/ ++ >; ++ st,pkcs = < ++ CLK_CKPER_HSE ++ CLK_FMC_ACLK ++ CLK_QSPI_ACLK ++ CLK_ETH_DISABLED ++ CLK_SDMMC12_PLL4P ++ CLK_DSI_DSIPLL ++ CLK_STGEN_HSE ++ CLK_USBPHY_HSE ++ CLK_SPI2S1_PLL3Q ++ CLK_SPI2S23_PLL3Q ++ CLK_SPI45_HSI ++ CLK_SPI6_HSI ++ CLK_I2C46_HSI ++ CLK_SDMMC3_PLL4P ++ CLK_USBO_USBPHY ++ CLK_ADC_CKPER ++ CLK_CEC_LSE ++ CLK_I2C12_HSI ++ CLK_I2C35_HSI ++ CLK_UART1_HSI ++ CLK_UART24_HSI ++ CLK_UART35_HSI ++ CLK_UART6_HSI ++ CLK_UART78_HSI ++ CLK_SPDIF_PLL4P ++ CLK_FDCAN_PLL4R ++ CLK_SAI1_PLL3Q ++ CLK_SAI2_PLL3Q ++ CLK_SAI3_PLL3Q ++ CLK_SAI4_PLL3Q ++ CLK_RNG1_LSI ++ CLK_RNG2_LSI ++ CLK_LPTIM1_PCLK1 ++ CLK_LPTIM23_PCLK3 ++ CLK_LPTIM45_LSE ++ >; ++ pll2:st,pll@1 { ++ compatible = "st,stm32mp1-pll"; ++ reg = <1>; ++ cfg = < 2 65 1 0 0 PQR(1,1,1) >; ++ frac = < 0x1400 >; ++ u-boot,dm-pre-reloc; ++ }; ++ pll3:st,pll@2 { ++ compatible = "st,stm32mp1-pll"; ++ reg = <2>; ++ cfg = < 1 33 1 16 36 PQR(1,1,1) >; ++ frac = < 0x1a04 >; ++ u-boot,dm-pre-reloc; ++ }; ++ pll4:st,pll@3 { ++ compatible = "st,stm32mp1-pll"; ++ reg = <3>; ++ cfg = < 3 98 5 7 7 PQR(1,1,1) >; ++ u-boot,dm-pre-reloc; ++ }; ++}; ++ ++&i2c4{ ++ u-boot,dm-pre-reloc; ++}; ++ ++&sdmmc1{ ++ u-boot,dm-pre-reloc; ++}; ++ ++#endif /*CONFIG_STM32MP1_TRUSTED*/ ++ ++&cryp1{ ++ u-boot,dm-pre-reloc; ++}; ++ ++&hash1{ ++ u-boot,dm-pre-reloc; ++}; ++ ++&uart4{ ++ u-boot,dm-pre-reloc; ++}; ++ ++&usbotg_hs{ ++ u-boot,dm-pre-reloc; ++ u-boot,force-b-session-valid; ++ hnp-srp-disable; ++ dr_mode = "peripheral"; ++}; ++ ++&usbphyc{ ++ u-boot,dm-pre-reloc; ++}; ++ ++&usbphyc_port0{ ++ u-boot,dm-pre-reloc; ++}; ++ ++&usbphyc_port1{ ++ u-boot,dm-pre-reloc; ++}; ++ ++&adc{ ++ status = "okay"; ++}; ++ ++#ifndef CONFIG_STM32MP1_TRUSTED ++&i2s2{ ++ clocks = <&rcc SPI2>, <&rcc SPI2_K>, <&rcc PLL3_Q>, <&rcc PLL3_R>; ++}; ++ ++&pmic{ ++ u-boot,dm-pre-reloc; ++}; ++ ++&sai2{ ++ clocks = <&rcc SAI2>, <&rcc PLL3_Q>, <&rcc PLL3_R>; ++}; ++#endif /*CONFIG_STM32MP1_TRUSTED*/ +diff --git a/arch/arm/dts/stm32mp157c-osd32mp1-brk.dts b/arch/arm/dts/stm32mp157c-osd32mp1-brk.dts +new file mode 100644 +index 0000000000..d763b48945 +--- /dev/null ++++ b/arch/arm/dts/stm32mp157c-osd32mp1-brk.dts +@@ -0,0 +1,1167 @@ ++/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */ ++/* ++ * Copyright (C) Octavo Systems LLC 2020 - All Rights Reserved ++ */ ++ ++/* For more information on Device Tree configuration, please refer to ++ * https://wiki.st.com/stm32mpu/wiki/Category:Device_tree_configuration ++ */ ++ ++/dts-v1/; ++#include ++ ++#include "stm32mp157.dtsi" ++#include "stm32mp15xc.dtsi" ++#include "stm32mp15xxac-pinctrl.dtsi" ++#include "stm32mp157-m4-srm.dtsi" ++#include ++#include ++ ++/ { ++ model = "Octavo OSD32MP1 BRK board"; ++ compatible = "st,stm32mp157c-osd32mp1-brk", "st,stm32mp157"; ++ ++ memory@c0000000 { ++ device_type = "memory"; ++ reg = <0xc0000000 0x20000000>; ++ }; ++ ++ reserved-memory { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ranges; ++ ++ mcuram2:mcuram2@10000000{ ++ compatible = "shared-dma-pool"; ++ reg = <0x10000000 0x40000>; ++ no-map; ++ }; ++ ++ vdev0vring0:vdev0vring0@10040000{ ++ compatible = "shared-dma-pool"; ++ reg = <0x10040000 0x1000>; ++ no-map; ++ }; ++ ++ vdev0vring1:vdev0vring1@10041000{ ++ compatible = "shared-dma-pool"; ++ reg = <0x10041000 0x1000>; ++ no-map; ++ }; ++ ++ vdev0buffer:vdev0buffer@10042000{ ++ compatible = "shared-dma-pool"; ++ reg = <0x10042000 0x4000>; ++ no-map; ++ }; ++ ++ mcuram:mcuram@30000000{ ++ compatible = "shared-dma-pool"; ++ reg = <0x30000000 0x40000>; ++ no-map; ++ }; ++ ++ retram:retram@38000000{ ++ compatible = "shared-dma-pool"; ++ reg = <0x38000000 0x10000>; ++ no-map; ++ }; ++ ++ gpu_reserved:gpu@da000000{ ++ reg = <0xda000000 0x4000000>; ++ no-map; ++ }; ++ ++ optee_memory:optee@0xde000000{ ++ reg = <0xde000000 0x02000000>; ++ no-map; ++ status = "okay"; ++ }; ++ }; ++ ++ led{ ++ compatible = "gpio-leds"; ++ ++ red1{ ++ label = "LED1_RED"; ++ gpios = <&gpioz 6 GPIO_ACTIVE_LOW>; ++ linux,default-trigger = "heartbeat"; ++ status = "okay"; ++ default-state = "off"; ++ }; ++ ++ green1{ ++ label = "LED1_GRN"; ++ gpios = <&gpioz 7 GPIO_ACTIVE_LOW>; ++ status = "okay"; ++ default-state = "on"; ++ }; ++ ++ red2{ ++ label = "LED2_RED"; ++ gpios = <&gpioi 8 GPIO_ACTIVE_LOW>; ++ status = "okay"; ++ default-state = "off"; ++ }; ++ ++ green2{ ++ label = "LED2_GRN"; ++ gpios = <&gpioi 9 GPIO_ACTIVE_LOW>; ++ default-state = "off"; ++ }; ++ }; ++ ++ usb_phy_tuning:usb-phy-tuning{ ++ st,hs-dc-level = <2>; ++ st,fs-rftime-tuning; ++ st,hs-rftime-reduction; ++ st,hs-current-trim = <15>; ++ st,hs-impedance-trim = <1>; ++ st,squelch-level = <3>; ++ st,hs-rx-offset = <2>; ++ st,no-lsfs-sc; ++ }; ++ ++ vin:vin{ ++ compatible = "regulator-fixed"; ++ regulator-name = "vin"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ regulator-always-on; ++ }; ++ ++ aliases{ ++ serial0 = &uart4; ++ serial2 = &usart2; ++ serial5 = &uart5; ++ serial7 = &uart7; ++ serial1 = &uart8; ++ }; ++ ++ chosen{ ++ stdout-path = "serial0:115200n8"; ++ }; ++ ++ clocks { ++ ++#ifndef CONFIG_STM32MP1_TRUSTED ++ clk_lsi: clk-lsi { ++ clock-frequency = <32000>; ++ }; ++ clk_hsi: clk-hsi { ++ clock-frequency = <64000000>; ++ }; ++ clk_csi: clk-csi { ++ clock-frequency = <4000000>; ++ }; ++ clk_lse: clk-lse { ++ clock-frequency = <32768>; ++ }; ++ clk_hse: clk-hse { ++ clock-frequency = <24000000>; ++ }; ++#endif /*CONFIG_STM32MP1_TRUSTED*/ ++ }; ++ ++}; /*root*/ ++ ++&pinctrl { ++ u-boot,dm-pre-reloc; ++ ++ i2c1_pins_mx: i2c1-0 { ++ pins { ++ pinmux = , /* I2C1_SCL */ ++ ; /* I2C1_SDA */ ++ bias-disable; ++ drive-open-drain; ++ slew-rate = <0>; ++ }; ++ }; ++ ++ i2c1_pins_sleep_mx: i2c1-1 { ++ pins { ++ pinmux = , /* I2C1_SCL */ ++ ; /* I2C1_SDA */ ++ }; ++ }; ++ ++ i2c2_pins_mx: i2c2-0 { ++ pins { ++ pinmux = , /* I2C2_SCL */ ++ ; /* I2C2_SDA */ ++ bias-disable; ++ drive-open-drain; ++ slew-rate = <0>; ++ }; ++ }; ++ ++ i2c2_pins_sleep_mx: i2c2-1 { ++ pins { ++ pinmux = , /* I2C2_SCL */ ++ ; /* I2C2_SDA */ ++ }; ++ }; ++ ++ i2c5_pins_mx: i2c5-0 { ++ pins { ++ pinmux = , /* I2C5_SCL */ ++ ; /* I2C5_SDA */ ++ bias-disable; ++ drive-open-drain; ++ slew-rate = <0>; ++ }; ++ }; ++ ++ i2c5_pins_sleep_mx: i2c5-1 { ++ pins { ++ pinmux = , /* I2C5_SCL */ ++ ; /* I2C5_SDA */ ++ }; ++ }; ++ ++ spi2_pins_mx: spi2-0 { ++ pins1 { ++ pinmux = , /* SPI2_SCK */ ++ ; /* SPI2_MOSI */ ++ bias-disable; ++ drive-push-pull; ++ slew-rate = <1>; ++ }; ++ ++ pins2 { ++ pinmux = ; /* SPI2_MISO */ ++ bias-disable; ++ }; ++ }; ++ ++ spi2_sleep_pins_mx: spi2-sleep-0 { ++ pins { ++ pinmux = , /* SPI2_SCK */ ++ , /* SPI2_MISO */ ++ ; /* SPI2_MOSI */ ++ }; ++ }; ++ ++ spi4_pins_mx: spi4-0 { ++ pins1 { ++ pinmux = , /* SPI4_SCK */ ++ ; /* SPI4_MOSI */ ++ bias-disable; ++ drive-push-pull; ++ slew-rate = <1>; ++ }; ++ ++ pins2 { ++ pinmux = ; /* SPI4_MISO */ ++ bias-disable; ++ }; ++ }; ++ ++ spi4_sleep_pins_mx: spi4-sleep-0 { ++ pins { ++ pinmux = , /* SPI2_SCK */ ++ , /* SPI2_MISO */ ++ ; /* SPI2_MOSI */ ++ }; ++ }; ++ ++ usart2_pins_mx: usart2-0 { ++ pins1 { ++ pinmux = ; /* USART2_TX */ ++ bias-disable; ++ drive-push-pull; ++ slew-rate = <0>; ++ }; ++ pins2 { ++ pinmux = ; /* USART2_RX */ ++ bias-disable; ++ }; ++ }; ++ ++ usart2_idle_pins_mx: usart2-idle-0 { ++ pins1 { ++ pinmux = ; /* USART2_TX */ ++ }; ++ pins2 { ++ pinmux = ; /* USART2_RX */ ++ bias-disable; ++ }; ++ }; ++ ++ usart2_sleep_pins_mx: usart2-sleep-0 { ++ pins { ++ pinmux = , /* USART2_TX */ ++ ; /* USART2_RX */ ++ }; ++ }; ++ ++ uart5_pins_mx: uart5-0 { ++ pins1 { ++ pinmux = ; /* USART5_TX */ ++ bias-disable; ++ drive-push-pull; ++ slew-rate = <0>; ++ }; ++ pins2 { ++ pinmux = ; /* USART5_RX */ ++ bias-disable; ++ }; ++ }; ++ ++ uart5_idle_pins_mx: uart5-idle-0 { ++ pins1 { ++ pinmux = ; /* USART5_TX */ ++ }; ++ pins2 { ++ pinmux = ; /* USART5_RX */ ++ bias-disable; ++ }; ++ }; ++ ++ uart5_sleep_pins_mx: uart5-sleep-0 { ++ pins { ++ pinmux = , /* USART5_TX */ ++ ; /* USART5_RX */ ++ }; ++ }; ++ ++ uart7_pins_mx: uart7-0 { ++ pins1 { ++ pinmux = ; /* USART7_TX */ ++ bias-disable; ++ drive-push-pull; ++ slew-rate = <0>; ++ }; ++ pins2 { ++ pinmux = ; /* USART7_RX */ ++ bias-disable; ++ }; ++ }; ++ ++ uart7_idle_pins_mx: uart7-idle-0 { ++ pins1 { ++ pinmux = ; /* USART7_TX */ ++ }; ++ pins2 { ++ pinmux = ; /* USART7_RX */ ++ bias-disable; ++ }; ++ }; ++ ++ uart7_sleep_pins_mx: uart7-sleep-0 { ++ pins { ++ pinmux = , /* USART7_TX */ ++ ; /* USART7_RX */ ++ }; ++ }; ++ ++ uart8_pins_mx: uart8-0 { ++ pins1 { ++ pinmux = ; /* USART8_TX */ ++ bias-disable; ++ drive-push-pull; ++ slew-rate = <0>; ++ }; ++ pins2 { ++ pinmux = ; /* USART8_RX */ ++ bias-disable; ++ }; ++ }; ++ ++ uart8_idle_pins_mx: uart8-idle-0 { ++ pins1 { ++ pinmux = ; /* USART8_TX */ ++ }; ++ pins2 { ++ pinmux = ; /* USART8_RX */ ++ bias-disable; ++ }; ++ }; ++ ++ uart8_sleep_pins_mx: uart8-sleep-0 { ++ pins { ++ pinmux = , /* USART8_TX */ ++ ; /* USART8_RX */ ++ }; ++ }; ++ ++ m_can1_pins_mx: m-can1-0 { ++ pins1 { ++ pinmux = ; /* CAN1_TX */ ++ slew-rate = <0>; ++ drive-push-pull; ++ bias-disable; ++ }; ++ pins2 { ++ pinmux = ; /* CAN1_RX */ ++ bias-disable; ++ }; ++ }; ++ ++ m_can1_sleep_pins_mx: m_can1-sleep@0 { ++ pins { ++ pinmux = , /* CAN1_TX */ ++ ; /* CAN1_RX */ ++ }; ++ }; ++ ++ pwm1_pins_mx: pwm1-0 { ++ pins { ++ pinmux = ; /* TIM1_CH2 */ ++ bias-pull-down; ++ drive-push-pull; ++ slew-rate = <0>; ++ }; ++ }; ++ ++ pwm1_sleep_pins_mx: pwm1-sleep-0 { ++ pins { ++ pinmux = ; /* TIM1_CH1 */ ++ }; ++ }; ++ ++ pwm3_pins_mx: pwm3-0 { ++ pins { ++ pinmux = ; /* TIM3_CH2 */ ++ bias-pull-down; ++ drive-push-pull; ++ slew-rate = <0>; ++ }; ++ }; ++ ++ pwm3_sleep_pins_mx: pwm3-sleep-0 { ++ pins { ++ pinmux = ; /* TIM3_CH2 */ ++ }; ++ }; ++ ++ pwm4_pins_mx: pwm4-0 { ++ pins { ++ pinmux = ; /* TIM4_CH2 */ ++ bias-pull-down; ++ drive-push-pull; ++ slew-rate = <0>; ++ }; ++ }; ++ ++ pwm4_sleep_pins_mx: pwm4-sleep-0 { ++ pins { ++ pinmux = ; /* TIM4_CH2 */ ++ }; ++ }; ++ ++ pwm8_pins_mx: pwm8-0 { ++ pins { ++ pinmux = ; /* TIM8_CH2 */ ++ bias-pull-down; ++ drive-push-pull; ++ slew-rate = <0>; ++ }; ++ }; ++ ++ pwm8_sleep_pins_mx: pwm8-sleep-0 { ++ pins { ++ pinmux = ; /* TIM8_CH2 */ ++ }; ++ }; ++ ++ ++ pwm12_pins_mx: pwm12-0 { ++ pins { ++ pinmux = ; /* TIM12_CH2 */ ++ bias-pull-down; ++ drive-push-pull; ++ slew-rate = <0>; ++ }; ++ }; ++ ++ pwm12_sleep_pins_mx: pwm12-sleep-0 { ++ pins { ++ pinmux = ; /* TIM12_CH2 */ ++ }; ++ }; ++ ++ sdmmc1_pins_mx: sdmmc1_mx-0 { ++ u-boot,dm-pre-reloc; ++ pins1 { ++ u-boot,dm-pre-reloc; ++ pinmux = , /* SDMMC1_D0 */ ++ , /* SDMMC1_D1 */ ++ , /* SDMMC1_D2 */ ++ , /* SDMMC1_D3 */ ++ ; /* SDMMC1_CMD */ ++ bias-disable; ++ drive-push-pull; ++ slew-rate = <1>; ++ }; ++ pins2 { ++ u-boot,dm-pre-reloc; ++ pinmux = ; /* SDMMC1_CK */ ++ bias-disable; ++ drive-push-pull; ++ slew-rate = <2>; ++ }; ++ }; ++ ++ sdmmc1_opendrain_pins_mx: sdmmc1_opendrain_mx-0 { ++ u-boot,dm-pre-reloc; ++ pins1 { ++ u-boot,dm-pre-reloc; ++ pinmux = , /* SDMMC1_D0 */ ++ , /* SDMMC1_D1 */ ++ , /* SDMMC1_D2 */ ++ ; /* SDMMC1_D3 */ ++ bias-disable; ++ drive-push-pull; ++ slew-rate = <1>; ++ }; ++ pins2 { ++ u-boot,dm-pre-reloc; ++ pinmux = ; /* SDMMC1_CK */ ++ bias-disable; ++ drive-push-pull; ++ slew-rate = <2>; ++ }; ++ pins3 { ++ u-boot,dm-pre-reloc; ++ pinmux = ; /* SDMMC1_CMD */ ++ bias-disable; ++ drive-open-drain; ++ slew-rate = <1>; ++ }; ++ }; ++ ++ sdmmc1_sleep_pins_mx: sdmmc1_sleep_mx-0 { ++ u-boot,dm-pre-reloc; ++ pins { ++ u-boot,dm-pre-reloc; ++ pinmux = , /* SDMMC1_D0 */ ++ , /* SDMMC1_D1 */ ++ , /* SDMMC1_D2 */ ++ , /* SDMMC1_D3 */ ++ , /* SDMMC1_CK */ ++ ; /* SDMMC1_CMD */ ++ }; ++ }; ++ ++ uart4_pins_mx: uart4_mx-0 { ++ u-boot,dm-pre-reloc; ++ pins1 { ++ u-boot,dm-pre-reloc; ++ pinmux = ; /* UART4_RX */ ++ /* pull-up on rx to avoid floating level */ ++ bias-pull-up; ++ }; ++ pins2 { ++ u-boot,dm-pre-reloc; ++ pinmux = ; /* UART4_TX */ ++ bias-disable; ++ drive-push-pull; ++ slew-rate = <0>; ++ }; ++ }; ++ ++ uart4_sleep_pins_mx: uart4_sleep_mx-0 { ++ u-boot,dm-pre-reloc; ++ pins { ++ u-boot,dm-pre-reloc; ++ pinmux = , /* UART4_RX */ ++ ; /* UART4_TX */ ++ }; ++ }; ++}; ++ ++&pinctrl_z { ++ u-boot,dm-pre-reloc; ++ ++ i2c4_pins_z_mx: i2c4_mx-0 { ++ u-boot,dm-pre-reloc; ++ pins { ++ u-boot,dm-pre-reloc; ++ pinmux = , /* I2C4_SCL */ ++ ; /* I2C4_SDA */ ++ bias-disable; ++ drive-open-drain; ++ slew-rate = <0>; ++ }; ++ }; ++ ++ i2c4_sleep_pins_z_mx: i2c4_sleep_mx-0 { ++ u-boot,dm-pre-reloc; ++ pins { ++ u-boot,dm-pre-reloc; ++ pinmux = , /* I2C4_SCL */ ++ ; /* I2C4_SDA */ ++ }; ++ }; ++ ++ spi6_pins_mx: spi6-0 { ++ pins1 { ++ pinmux = , /* SPI6_SCK */ ++ ; /* SPI6_MOSI */ ++ bias-disable; ++ drive-push-pull; ++ slew-rate = <1>; ++ }; ++ ++ pins2 { ++ pinmux = ; /* SPI6_MISO */ ++ bias-disable; ++ }; ++ }; ++ ++ spi6_sleep_pins_mx: spi6-sleep-0 { ++ pins { ++ pinmux = , /* SPI6_SCK */ ++ , /* SPI6_MISO */ ++ ; /* SPI6_MOSI */ ++ }; ++ }; ++}; ++ ++&m4_rproc{ ++ /*Restriction: "memory-region" property is not managed - please to use User-Section if needed*/ ++ mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>; ++ mbox-names = "vq0", "vq1", "shutdown"; ++ status = "okay"; ++ memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>, ++ <&vdev0vring1>, <&vdev0buffer>; ++ interrupt-parent = <&exti>; ++ interrupts = <68 1>; ++ wakeup-source; ++}; ++ ++&pwr_regulators { ++ vdd-supply = <&vdd>; ++ vdd_3v3_usbfs-supply = <&vdd_usb>; ++}; ++ ++&bsec{ ++ status = "okay"; ++}; ++ ++&crc1{ ++ status = "okay"; ++}; ++ ++&cryp1{ ++ u-boot,dm-pre-reloc; ++ status = "okay"; ++}; ++ ++&dma1{ ++ status = "okay"; ++ sram = <&dma_pool>; ++}; ++ ++&dma2{ ++ status = "okay"; ++ sram = <&dma_pool>; ++}; ++ ++&dmamux1{ ++ ++ dma-masters = <&dma1 &dma2>; ++ dma-channels = <16>; ++ ++ status = "okay"; ++}; ++ ++&dts{ ++ status = "okay"; ++}; ++ ++&gpu{ ++ status = "okay"; ++ contiguous-area = <&gpu_reserved>; ++}; ++ ++&hash1{ ++ u-boot,dm-pre-reloc; ++ status = "okay"; ++}; ++ ++&hsem{ ++ status = "okay"; ++}; ++ ++&i2c1 { ++ pinctrl-names = "default", "sleep"; ++ pinctrl-0 = <&i2c1_pins_mx>; ++ pinctrl-1 = <&i2c1_pins_sleep_mx>; ++ i2c-scl-rising-time-ns = <100>; ++ i2c-scl-falling-time-ns = <7>; ++ status = "okay"; ++ /delete-property/dmas; ++ /delete-property/dma-names; ++}; ++ ++&i2c2 { ++ pinctrl-names = "default", "sleep"; ++ pinctrl-0 = <&i2c2_pins_mx>; ++ pinctrl-1 = <&i2c2_pins_sleep_mx>; ++ i2c-scl-rising-time-ns = <100>; ++ i2c-scl-falling-time-ns = <7>; ++ status = "okay"; ++ /delete-property/dmas; ++ /delete-property/dma-names; ++}; ++ ++&i2c5 { ++ pinctrl-names = "default", "sleep"; ++ pinctrl-0 = <&i2c5_pins_mx>; ++ pinctrl-1 = <&i2c5_pins_sleep_mx>; ++ i2c-scl-rising-time-ns = <100>; ++ i2c-scl-falling-time-ns = <7>; ++ status = "okay"; ++ /delete-property/dmas; ++ /delete-property/dma-names; ++}; ++ ++&i2c4{ ++ u-boot,dm-pre-reloc; ++ pinctrl-names = "default", "sleep"; ++ pinctrl-0 = <&i2c4_pins_z_mx>; ++ pinctrl-1 = <&i2c4_sleep_pins_z_mx>; ++ status = "okay"; ++ ++ i2c-scl-rising-time-ns = <185>; ++ i2c-scl-falling-time-ns = <20>; ++ clock-frequency = <400000>; ++ /delete-property/ dmas; ++ /delete-property/ dma-names; ++ ++ pmic:stpmic@33{ ++ compatible = "st,stpmic1"; ++ reg = <0x33>; ++ interrupts-extended = <&exti_pwr 55 IRQ_TYPE_EDGE_FALLING>; ++ interrupt-controller; ++ #interrupt-cells = <2>; ++ status = "okay"; ++ ++ regulators{ ++ compatible = "st,stpmic1-regulators"; ++ buck1-supply = <&vin>; ++ buck2-supply = <&vin>; ++ buck3-supply = <&vin>; ++ buck4-supply = <&vin>; ++ ldo1-supply = <&v3v3>; ++ ldo2-supply = <&vin>; ++ ldo3-supply = <&vdd_ddr>; ++ ldo4-supply = <&vin>; ++ ldo5-supply = <&vin>; ++ ldo6-supply = <&v3v3>; ++ vref_ddr-supply = <&vin>; ++ boost-supply = <&vin>; ++ pwr_sw1-supply = <&bst_out>; ++ pwr_sw2-supply = <&bst_out>; ++ ++ vddcore:buck1{ ++ regulator-name = "vddcore"; ++ regulator-min-microvolt = <1200000>; ++ regulator-max-microvolt = <1350000>; ++ regulator-always-on; ++ regulator-initial-mode = <0>; ++ regulator-over-current-protection; ++ }; ++ ++ vdd_ddr:buck2{ ++ regulator-name = "vdd_ddr"; ++ regulator-min-microvolt = <1350000>; ++ regulator-max-microvolt = <1350000>; ++ regulator-always-on; ++ regulator-initial-mode = <0>; ++ regulator-over-current-protection; ++ }; ++ ++ vdd:buck3{ ++ regulator-name = "vdd"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-always-on; ++ st,mask-reset; ++ regulator-initial-mode = <0>; ++ regulator-over-current-protection; ++ }; ++ ++ v3v3:buck4{ ++ regulator-name = "v3v3"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-always-on; ++ regulator-over-current-protection; ++ regulator-initial-mode = <0>; ++ }; ++ ++ v1v8_audio:ldo1{ ++ regulator-name = "v1v8_audio"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-always-on; ++ interrupts = ; ++ }; ++ ++ v3v3_hdmi:ldo2{ ++ regulator-name = "v3v3_hdmi"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-always-on; ++ interrupts = ; ++ }; ++ ++ vtt_ddr:ldo3{ ++ regulator-name = "vtt_ddr"; ++ regulator-min-microvolt = <500000>; ++ regulator-max-microvolt = <750000>; ++ regulator-always-on; ++ regulator-over-current-protection; ++ }; ++ ++ vdd_usb:ldo4{ ++ regulator-name = "vdd_usb"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ interrupts = ; ++ regulator-always-on; ++ }; ++ ++ vdda:ldo5{ ++ regulator-name = "vdda"; ++ regulator-min-microvolt = <2900000>; ++ regulator-max-microvolt = <2900000>; ++ interrupts = ; ++ regulator-boot-on; ++ }; ++ ++ v1v2_hdmi:ldo6{ ++ regulator-name = "v1v2_hdmi"; ++ regulator-min-microvolt = <1200000>; ++ regulator-max-microvolt = <1200000>; ++ regulator-always-on; ++ interrupts = ; ++ }; ++ ++ vref_ddr:vref_ddr{ ++ regulator-name = "vref_ddr"; ++ regulator-always-on; ++ regulator-over-current-protection; ++ }; ++ ++ bst_out:boost{ ++ regulator-name = "bst_out"; ++ interrupts = ; ++ }; ++ ++ vbus_otg:pwr_sw1{ ++ regulator-name = "vbus_otg"; ++ interrupts = ; ++ }; ++ ++ vbus_sw:pwr_sw2{ ++ regulator-name = "vbus_sw"; ++ interrupts = ; ++ regulator-active-discharge = <1>; ++ }; ++ }; ++ ++ onkey{ ++ compatible = "st,stpmic1-onkey"; ++ interrupts = , ; ++ interrupt-names = "onkey-falling", "onkey-rising"; ++ power-off-time-sec = <10>; ++ status = "okay"; ++ }; ++ ++ watchdog { ++ compatible = "st,stpmic1-wdt"; ++ status = "disabled"; ++ }; ++ }; ++ eeprom@50 { ++ compatible = "atmel,24c02"; ++ reg = <0x50>; ++ pagesize = <16>; ++ }; ++}; ++ ++&ipcc{ ++ status = "okay"; ++}; ++ ++&iwdg2{ ++ status = "okay"; ++ timeout-sec = <32>; ++}; ++ ++&mdma1{ ++ status = "okay"; ++}; ++ ++&rcc{ ++ u-boot,dm-pre-reloc; ++ status = "okay"; ++}; ++ ++&rng1{ ++ status = "okay"; ++}; ++ ++&rtc{ ++ status = "okay"; ++}; ++ ++&sdmmc1{ ++ u-boot,dm-pre-reloc; ++ pinctrl-names = "default", "opendrain", "sleep"; ++ pinctrl-0 = <&sdmmc1_pins_mx>; ++ pinctrl-1 = <&sdmmc1_opendrain_pins_mx>; ++ pinctrl-2 = <&sdmmc1_sleep_pins_mx>; ++ status = "okay"; ++ ++ cd-gpios = <&gpiog 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; ++ disable-wp; ++ st,neg-edge; ++ bus-width = <4>; ++ vmmc-supply = <&v3v3>; ++}; ++ ++&tamp{ ++ status = "okay"; ++}; ++ ++&uart4{ ++ u-boot,dm-pre-reloc; ++ pinctrl-names = "default", "sleep"; ++ pinctrl-0 = <&uart4_pins_mx>; ++ pinctrl-1 = <&uart4_sleep_pins_mx>; ++ status = "okay"; ++ ++ /delete-property/ dmas; ++ /delete-property/ dma-names; ++}; ++ ++&usbh_ehci{ ++ status = "okay"; ++ phys = <&usbphyc_port0>; ++}; ++ ++&usbh_ohci{ ++ status = "okay"; ++}; ++ ++&usbotg_hs{ ++ u-boot,dm-pre-reloc; ++ status = "okay"; ++ phys = <&usbphyc_port1 0>; ++ phy-names = "usb2-phy"; ++}; ++ ++&usbphyc{ ++ u-boot,dm-pre-reloc; ++ status = "okay"; ++}; ++ ++&usbphyc_port0{ ++ u-boot,dm-pre-reloc; ++ status = "okay"; ++ phy-supply = <&vdd_usb>; ++ st,phy-tuning = <&usb_phy_tuning>; ++}; ++ ++&usbphyc_port1{ ++ u-boot,dm-pre-reloc; ++ status = "okay"; ++ phy-supply = <&vdd_usb>; ++ st,phy-tuning = <&usb_phy_tuning>; ++}; ++ ++&adc { ++ vdd-supply = <&vdd>; ++ vdda-supply = <&vdda>; ++ vref-supply = <&vdda>; ++ status = "okay"; ++ adc1: adc@0 { ++ st,min-sample-time-nsecs = <5000>; ++ st,adc-channels = <0 1>; ++ status = "okay"; ++ }; ++ ++ adc2: adc@100 { ++ status = "okay"; ++ }; ++ ++ adc_temp: temp { ++ status = "okay"; ++ }; ++}; ++ ++&usbh_ohci{ ++ phys = <&usbphyc_port0>; ++}; ++ ++&cpu0{ ++ cpu-supply = <&vddcore>; ++}; ++ ++&cpu1{ ++ cpu-supply = <&vddcore>; ++}; ++ ++&sram{ ++ dma_pool:dma_pool@0{ ++ reg = <0x50000 0x10000>; ++ pool; ++ }; ++}; ++ ++&optee{ ++ status = "okay"; ++}; ++ ++&spi2 { ++ pinctrl-names = "default", "sleep"; ++ pinctrl-0 = <&spi2_pins_mx>; ++ pinctrl-1 = <&spi2_sleep_pins_mx>; ++ cs-gpios = <&gpioi 0 0>; ++ status = "okay"; ++ ++ spidev2: spidev2@0{ ++ compatible = "rohm,dh2228fv"; ++ spi-max-frequency = <30000000>; ++ reg = <0>; ++ }; ++}; ++ ++&spi4 { ++ pinctrl-names = "default", "sleep"; ++ pinctrl-0 = <&spi4_pins_mx>; ++ pinctrl-1 = <&spi4_sleep_pins_mx>; ++ cs-gpios = <&gpioe 11 0>; ++ status = "okay"; ++ ++ spidev4: spidev4@0{ ++ compatible = "rohm,dh2228fv"; ++ spi-max-frequency = <30000000>; ++ reg = <0>; ++ }; ++}; ++ ++&spi6 { ++ pinctrl-names = "default", "sleep"; ++ pinctrl-0 = <&spi6_pins_mx>; ++ pinctrl-1 = <&spi6_sleep_pins_mx>; ++ cs-gpios = <&gpioz 3 0>; ++ status = "okay"; ++ ++ spidev6: spidev6@0{ ++ compatible = "rohm,dh2228fv"; ++ spi-max-frequency = <30000000>; ++ reg = <0>; ++ }; ++}; ++ ++&usart2 { ++ pinctrl-names = "default", "sleep", "idle"; ++ pinctrl-0 = <&usart2_pins_mx>; ++ pinctrl-1 = <&usart2_sleep_pins_mx>; ++ pinctrl-2 = <&usart2_idle_pins_mx>; ++ status = "okay"; ++}; ++ ++&uart5 { ++ pinctrl-names = "default", "sleep", "idle"; ++ pinctrl-0 = <&uart5_pins_mx>; ++ pinctrl-1 = <&uart5_sleep_pins_mx>; ++ pinctrl-2 = <&uart5_idle_pins_mx>; ++ status = "okay"; ++}; ++ ++&uart7 { ++ pinctrl-names = "default", "sleep", "idle"; ++ pinctrl-0 = <&uart7_pins_mx>; ++ pinctrl-1 = <&uart7_sleep_pins_mx>; ++ pinctrl-2 = <&uart7_idle_pins_mx>; ++ status = "okay"; ++}; ++ ++&uart8 { ++ pinctrl-names = "default", "sleep", "idle"; ++ pinctrl-0 = <&uart8_pins_mx>; ++ pinctrl-1 = <&uart8_sleep_pins_mx>; ++ pinctrl-2 = <&uart8_idle_pins_mx>; ++ status = "okay"; ++}; ++ ++&m_can1 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&m_can1_pins_mx>; ++ status = "okay"; ++ can-transceiver { ++ max-bitrate = <5000000>; ++ }; ++}; ++ ++&timers1 { ++ status = "okay"; ++ /* spare dmas for other usage */ ++ /delete-property/dmas; ++ /delete-property/dma-names; ++ pwm1: pwm { ++ pinctrl-names = "default", "sleep"; ++ pinctrl-0 = <&pwm1_pins_mx>; ++ pinctrl-1 = <&pwm1_sleep_pins_mx>; ++ status = "okay"; ++ }; ++}; ++ ++&timers3 { ++ status = "okay"; ++ /* spare dmas for other usage */ ++ /delete-property/dmas; ++ /delete-property/dma-names; ++ pwm3: pwm { ++ pinctrl-names = "default", "sleep"; ++ pinctrl-0 = <&pwm3_pins_mx>; ++ pinctrl-1 = <&pwm3_sleep_pins_mx>; ++ status = "okay"; ++ }; ++}; ++ ++&timers4 { ++ status = "okay"; ++ /* spare dmas for other usage */ ++ /delete-property/dmas; ++ /delete-property/dma-names; ++ pwm4: pwm { ++ pinctrl-names = "default", "sleep"; ++ pinctrl-0 = <&pwm4_pins_mx>; ++ pinctrl-1 = <&pwm4_sleep_pins_mx>; ++ status = "okay"; ++ }; ++}; ++ ++&timers8 { ++ status = "okay"; ++ /* spare dmas for other usage */ ++ /delete-property/dmas; ++ /delete-property/dma-names; ++ pwm8: pwm { ++ pinctrl-names = "default", "sleep"; ++ pinctrl-0 = <&pwm8_pins_mx>; ++ pinctrl-1 = <&pwm8_sleep_pins_mx>; ++ status = "okay"; ++ }; ++}; ++ ++&timers12 { ++ status = "okay"; ++ /* spare dmas for other usage */ ++ /delete-property/dmas; ++ /delete-property/dma-names; ++ pwm12: pwm { ++ pinctrl-names = "default", "sleep"; ++ pinctrl-0 = <&pwm12_pins_mx>; ++ pinctrl-1 = <&pwm12_sleep_pins_mx>; ++ status = "okay"; ++ }; ++}; +diff --git a/arch/arm/dts/stm32mp15xx-dkx.dtsi b/arch/arm/dts/stm32mp15xx-dkx.dtsi +index 35169385fd..f43c45bd3d 100644 +--- a/arch/arm/dts/stm32mp15xx-dkx.dtsi ++++ b/arch/arm/dts/stm32mp15xx-dkx.dtsi +@@ -572,7 +572,8 @@ + pinctrl-0 = <&sdmmc1_b4_pins_a>; + pinctrl-1 = <&sdmmc1_b4_od_pins_a>; + pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>; +- cd-gpios = <&gpiob 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; ++ //cd-gpios = <&gpiob 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; ++ cd-gpios = <&gpiog 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; + disable-wp; + st,neg-edge; + bus-width = <4>; +diff --git a/arch/arm/mach-stm32mp/Kconfig b/arch/arm/mach-stm32mp/Kconfig +index f9f79437e4..ff54cb4cfa 100644 +--- a/arch/arm/mach-stm32mp/Kconfig ++++ b/arch/arm/mach-stm32mp/Kconfig +@@ -85,6 +85,14 @@ config TARGET_DH_STM32MP1_PDK2 + help + Target the DH PDK2 development kit with STM32MP15x SoM. + ++config TARGET_OCTAVO_OSD32MP1_BRK ++ bool "Octavo OSD32MP1 BRK" ++ select STM32MP15x ++ imply BOOTCOUNT_LIMIT ++ imply CMD_BOOTCOUNT ++ help ++ Target the Octavo BRK board based on OSD32MP1 SiP. ++ + endchoice + + config STM32MP1_TRUSTED +@@ -178,5 +186,5 @@ endif + + source "board/st/stm32mp1/Kconfig" + source "board/dhelectronics/dh_stm32mp1/Kconfig" +- ++source "board/octavo/osd32mp1-brk/Kconfig" + endif +diff --git a/board/octavo/osd32mp1-brk/Kconfig b/board/octavo/osd32mp1-brk/Kconfig +new file mode 100644 +index 0000000000..907a09c170 +--- /dev/null ++++ b/board/octavo/osd32mp1-brk/Kconfig +@@ -0,0 +1,13 @@ ++if TARGET_OCTAVO_OSD32MP1_BRK ++ ++config SYS_BOARD ++ default "osd32mp1-brk" ++ ++config SYS_VENDOR ++ default "octavo" ++ ++config SYS_CONFIG_NAME ++ default "stm32mp1" ++ ++source "board/st/common/Kconfig" ++endif +diff --git a/board/octavo/osd32mp1-brk/MAINTAINERS b/board/octavo/osd32mp1-brk/MAINTAINERS +new file mode 100644 +index 0000000000..5c4fc6eea2 +--- /dev/null ++++ b/board/octavo/osd32mp1-brk/MAINTAINERS +@@ -0,0 +1,7 @@ ++OCTAVO osd32mp1-brk BOARD ++M: Martin Lesniak ++S: Maintained ++F: arch/arm/dts/stm32mp157c-osd32mp1-brk* ++F: board/Octavo/osd32mp1-brk/ ++F: configs/osd32mp1_brk_trusted_defconfig ++F: include/configs/stm32mp1.h +diff --git a/board/octavo/osd32mp1-brk/Makefile b/board/octavo/osd32mp1-brk/Makefile +new file mode 100644 +index 0000000000..381579c590 +--- /dev/null ++++ b/board/octavo/osd32mp1-brk/Makefile +@@ -0,0 +1,9 @@ ++# SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause ++# ++# Copyright (C) 2018, STMicroelectronics - All Rights Reserved ++# ++ ++obj-y += ../../st/stm32mp1/board.o board.o ++ ++obj-$(CONFIG_SYS_MTDPARTS_RUNTIME) += ../../st/common/stm32mp_mtdparts.o ++obj-$(CONFIG_SET_DFU_ALT_INFO) += ../../st/common/stm32mp_dfu.o +diff --git a/board/octavo/osd32mp1-brk/board.c b/board/octavo/osd32mp1-brk/board.c +new file mode 100644 +index 0000000000..53325e87f6 +--- /dev/null ++++ b/board/octavo/osd32mp1-brk/board.c +@@ -0,0 +1,547 @@ ++// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause ++/* ++ * Copyright (C) 2018, STMicroelectronics - All Rights Reserved ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* SYSCFG registers */ ++#define SYSCFG_BOOTR 0x00 ++#define SYSCFG_PMCSETR 0x04 ++#define SYSCFG_IOCTRLSETR 0x18 ++#define SYSCFG_ICNR 0x1C ++#define SYSCFG_CMPCR 0x20 ++#define SYSCFG_CMPENSETR 0x24 ++#define SYSCFG_PMCCLRR 0x44 ++ ++#define SYSCFG_BOOTR_BOOT_MASK GENMASK(2, 0) ++#define SYSCFG_BOOTR_BOOTPD_SHIFT 4 ++ ++#define SYSCFG_IOCTRLSETR_HSLVEN_TRACE BIT(0) ++#define SYSCFG_IOCTRLSETR_HSLVEN_QUADSPI BIT(1) ++#define SYSCFG_IOCTRLSETR_HSLVEN_ETH BIT(2) ++#define SYSCFG_IOCTRLSETR_HSLVEN_SDMMC BIT(3) ++#define SYSCFG_IOCTRLSETR_HSLVEN_SPI BIT(4) ++ ++#define SYSCFG_CMPCR_SW_CTRL BIT(1) ++#define SYSCFG_CMPCR_READY BIT(8) ++ ++#define SYSCFG_CMPENSETR_MPU_EN BIT(0) ++ ++#define SYSCFG_PMCSETR_ETH_CLK_SEL BIT(16) ++#define SYSCFG_PMCSETR_ETH_REF_CLK_SEL BIT(17) ++ ++#define SYSCFG_PMCSETR_ETH_SELMII BIT(20) ++ ++#define SYSCFG_PMCSETR_ETH_SEL_MASK GENMASK(23, 21) ++#define SYSCFG_PMCSETR_ETH_SEL_GMII_MII 0 ++#define SYSCFG_PMCSETR_ETH_SEL_RGMII BIT(21) ++#define SYSCFG_PMCSETR_ETH_SEL_RMII BIT(23) ++ ++/* ++ * Get a global data pointer ++ */ ++DECLARE_GLOBAL_DATA_PTR; ++ ++int setup_mac_address(void) ++{ ++ struct udevice *dev; ++ ofnode eeprom; ++ unsigned char enetaddr[6]; ++ int ret; ++ ++ ret = eth_env_get_enetaddr("ethaddr", enetaddr); ++ if (ret) /* ethaddr is already set */ ++ return 0; ++ ++ eeprom = ofnode_path("/soc/i2c@5c002000/eeprom@50"); ++ if (!ofnode_valid(eeprom)) { ++ printf("Invalid hardware path to EEPROM!\n"); ++ return -ENODEV; ++ } ++ ++ ret = uclass_get_device_by_ofnode(UCLASS_I2C_EEPROM, eeprom, &dev); ++ if (ret) { ++ printf("Cannot find EEPROM!\n"); ++ return ret; ++ } ++ ++ ret = i2c_eeprom_read(dev, 0xfa, enetaddr, 0x6); ++ if (ret) { ++ printf("Error reading configuration EEPROM!\n"); ++ return ret; ++ } ++ ++ if (is_valid_ethaddr(enetaddr)) ++ eth_env_set_enetaddr("ethaddr", enetaddr); ++ ++ return 0; ++} ++ ++int checkboard(void) ++{ ++ char *mode; ++ const char *fdt_compat; ++ int fdt_compat_len; ++ ++ if (IS_ENABLED(CONFIG_STM32MP1_TRUSTED)) ++ mode = "trusted"; ++ else ++ mode = "basic"; ++ ++ printf("Board: stm32mp1 in %s mode", mode); ++ fdt_compat = fdt_getprop(gd->fdt_blob, 0, "compatible", ++ &fdt_compat_len); ++ if (fdt_compat && fdt_compat_len) ++ printf(" (%s)", fdt_compat); ++ puts("\n"); ++ ++ return 0; ++} ++ ++static void board_key_check(void) ++{ ++#if defined(CONFIG_FASTBOOT) || defined(CONFIG_CMD_STM32PROG) ++ ofnode node; ++ struct gpio_desc gpio; ++ enum forced_boot_mode boot_mode = BOOT_NORMAL; ++ ++ node = ofnode_path("/config"); ++ if (!ofnode_valid(node)) { ++ debug("%s: no /config node?\n", __func__); ++ return; ++ } ++#ifdef CONFIG_FASTBOOT ++ if (gpio_request_by_name_nodev(node, "st,fastboot-gpios", 0, ++ &gpio, GPIOD_IS_IN)) { ++ debug("%s: could not find a /config/st,fastboot-gpios\n", ++ __func__); ++ } else { ++ if (dm_gpio_get_value(&gpio)) { ++ puts("Fastboot key pressed, "); ++ boot_mode = BOOT_FASTBOOT; ++ } ++ ++ dm_gpio_free(NULL, &gpio); ++ } ++#endif ++#ifdef CONFIG_CMD_STM32PROG ++ if (gpio_request_by_name_nodev(node, "st,stm32prog-gpios", 0, ++ &gpio, GPIOD_IS_IN)) { ++ debug("%s: could not find a /config/st,stm32prog-gpios\n", ++ __func__); ++ } else { ++ if (dm_gpio_get_value(&gpio)) { ++ puts("STM32Programmer key pressed, "); ++ boot_mode = BOOT_STM32PROG; ++ } ++ dm_gpio_free(NULL, &gpio); ++ } ++#endif ++ ++ if (boot_mode != BOOT_NORMAL) { ++ puts("entering download mode...\n"); ++ clrsetbits_le32(TAMP_BOOT_CONTEXT, ++ TAMP_BOOT_FORCED_MASK, ++ boot_mode); ++ } ++#endif ++} ++ ++#if defined(CONFIG_USB_GADGET) && defined(CONFIG_USB_GADGET_DWC2_OTG) ++ ++#include ++int g_dnl_board_usb_cable_connected(void) ++{ ++ struct udevice *dwc2_udc_otg; ++ int ret; ++ ++ ret = uclass_get_device_by_driver(UCLASS_USB_GADGET_GENERIC, ++ DM_GET_DRIVER(dwc2_udc_otg), ++ &dwc2_udc_otg); ++ if (!ret) ++ debug("dwc2_udc_otg init failed\n"); ++ ++ return dwc2_udc_B_session_valid(dwc2_udc_otg); ++} ++ ++#define STM32MP1_G_DNL_DFU_PRODUCT_NUM 0xdf11 ++#define STM32MP1_G_DNL_FASTBOOT_PRODUCT_NUM 0x0afb ++ ++int g_dnl_bind_fixup(struct usb_device_descriptor *dev, const char *name) ++{ ++ if (!strcmp(name, "usb_dnl_dfu")) ++ put_unaligned(STM32MP1_G_DNL_DFU_PRODUCT_NUM, &dev->idProduct); ++ else if (!strcmp(name, "usb_dnl_fastboot")) ++ put_unaligned(STM32MP1_G_DNL_FASTBOOT_PRODUCT_NUM, ++ &dev->idProduct); ++ else ++ put_unaligned(CONFIG_USB_GADGET_PRODUCT_NUM, &dev->idProduct); ++ ++ return 0; ++} ++ ++#endif /* CONFIG_USB_GADGET */ ++ ++#ifdef CONFIG_LED ++static int get_led(struct udevice **dev, char *led_string) ++{ ++ char *led_name; ++ int ret; ++ ++ led_name = fdtdec_get_config_string(gd->fdt_blob, led_string); ++ if (!led_name) { ++ pr_debug("%s: could not find %s config string\n", ++ __func__, led_string); ++ return -ENOENT; ++ } ++ ret = led_get_by_label(led_name, dev); ++ if (ret) { ++ debug("%s: get=%d\n", __func__, ret); ++ return ret; ++ } ++ ++ return 0; ++} ++ ++static int setup_led(enum led_state_t cmd) ++{ ++ struct udevice *dev; ++ int ret; ++ ++ ret = get_led(&dev, "u-boot,boot-led"); ++ if (ret) ++ return ret; ++ ++ ret = led_set_state(dev, cmd); ++ return ret; ++} ++#endif ++ ++static void __maybe_unused led_error_blink(u32 nb_blink) ++{ ++#ifdef CONFIG_LED ++ int ret; ++ struct udevice *led; ++ u32 i; ++#endif ++ ++ if (!nb_blink) ++ return; ++ ++#ifdef CONFIG_LED ++ ret = get_led(&led, "u-boot,error-led"); ++ if (!ret) { ++ /* make u-boot,error-led blinking */ ++ /* if U32_MAX and 125ms interval, for 17.02 years */ ++ for (i = 0; i < 2 * nb_blink; i++) { ++ led_set_state(led, LEDST_TOGGLE); ++ mdelay(125); ++ WATCHDOG_RESET(); ++ } ++ } ++#endif ++ ++ /* infinite: the boot process must be stopped */ ++ if (nb_blink == U32_MAX) ++ hang(); ++} ++ ++static void sysconf_init(void) ++{ ++#ifndef CONFIG_STM32MP1_TRUSTED ++ u8 *syscfg; ++#ifdef CONFIG_DM_REGULATOR ++ struct udevice *pwr_dev; ++ struct udevice *pwr_reg; ++ struct udevice *dev; ++ int ret; ++ u32 otp = 0; ++#endif ++ u32 bootr; ++ ++ syscfg = (u8 *)syscon_get_first_range(STM32MP_SYSCON_SYSCFG); ++ ++ /* interconnect update : select master using the port 1 */ ++ /* LTDC = AXI_M9 */ ++ /* GPU = AXI_M8 */ ++ /* today information is hardcoded in U-Boot */ ++ writel(BIT(9), syscfg + SYSCFG_ICNR); ++ ++ /* disable Pull-Down for boot pin connected to VDD */ ++ bootr = readl(syscfg + SYSCFG_BOOTR); ++ bootr &= ~(SYSCFG_BOOTR_BOOT_MASK << SYSCFG_BOOTR_BOOTPD_SHIFT); ++ bootr |= (bootr & SYSCFG_BOOTR_BOOT_MASK) << SYSCFG_BOOTR_BOOTPD_SHIFT; ++ writel(bootr, syscfg + SYSCFG_BOOTR); ++ ++#ifdef CONFIG_DM_REGULATOR ++ /* High Speed Low Voltage Pad mode Enable for SPI, SDMMC, ETH, QSPI ++ * and TRACE. Needed above ~50MHz and conditioned by AFMUX selection. ++ * The customer will have to disable this for low frequencies ++ * or if AFMUX is selected but the function not used, typically for ++ * TRACE. Otherwise, impact on power consumption. ++ * ++ * WARNING: ++ * enabling High Speed mode while VDD>2.7V ++ * with the OTP product_below_2v5 (OTP 18, BIT 13) ++ * erroneously set to 1 can damage the IC! ++ * => U-Boot set the register only if VDD < 2.7V (in DT) ++ * but this value need to be consistent with board design ++ */ ++ ret = uclass_get_device_by_driver(UCLASS_PMIC, ++ DM_GET_DRIVER(stm32mp_pwr_pmic), ++ &pwr_dev); ++ if (!ret) { ++ ret = uclass_get_device_by_driver(UCLASS_MISC, ++ DM_GET_DRIVER(stm32mp_bsec), ++ &dev); ++ if (ret) { ++ pr_err("Can't find stm32mp_bsec driver\n"); ++ return; ++ } ++ ++ ret = misc_read(dev, STM32_BSEC_SHADOW(18), &otp, 4); ++ if (ret > 0) ++ otp = otp & BIT(13); ++ ++ /* get VDD = vdd-supply */ ++ ret = device_get_supply_regulator(pwr_dev, "vdd-supply", ++ &pwr_reg); ++ ++ /* check if VDD is Low Voltage */ ++ if (!ret) { ++ if (regulator_get_value(pwr_reg) < 2700000) { ++ writel(SYSCFG_IOCTRLSETR_HSLVEN_TRACE | ++ SYSCFG_IOCTRLSETR_HSLVEN_QUADSPI | ++ SYSCFG_IOCTRLSETR_HSLVEN_ETH | ++ SYSCFG_IOCTRLSETR_HSLVEN_SDMMC | ++ SYSCFG_IOCTRLSETR_HSLVEN_SPI, ++ syscfg + SYSCFG_IOCTRLSETR); ++ ++ if (!otp) ++ pr_err("product_below_2v5=0: HSLVEN protected by HW\n"); ++ } else { ++ if (otp) ++ pr_err("product_below_2v5=1: HSLVEN update is destructive, no update as VDD>2.7V\n"); ++ } ++ } else { ++ debug("VDD unknown"); ++ } ++ } ++#endif ++ ++ /* activate automatic I/O compensation ++ * warning: need to ensure CSI enabled and ready in clock driver ++ */ ++ writel(SYSCFG_CMPENSETR_MPU_EN, syscfg + SYSCFG_CMPENSETR); ++ ++ while (!(readl(syscfg + SYSCFG_CMPCR) & SYSCFG_CMPCR_READY)) ++ ; ++ clrbits_le32(syscfg + SYSCFG_CMPCR, SYSCFG_CMPCR_SW_CTRL); ++#endif ++} ++ ++/* board dependent setup after realloc */ ++int board_init(void) ++{ ++ struct udevice *dev; ++ ++ /* address of boot parameters */ ++ gd->bd->bi_boot_params = STM32_DDR_BASE + 0x100; ++ ++ /* probe all PINCTRL for hog */ ++ for (uclass_first_device(UCLASS_PINCTRL, &dev); ++ dev; ++ uclass_next_device(&dev)) { ++ pr_debug("probe pincontrol = %s\n", dev->name); ++ } ++ ++ board_key_check(); ++ ++#ifdef CONFIG_DM_REGULATOR ++ regulators_enable_boot_on(_DEBUG); ++#endif ++ ++ sysconf_init(); ++ ++ if (CONFIG_IS_ENABLED(LED)) ++ led_default_state(); ++ ++ return 0; ++} ++ ++int board_late_init(void) ++{ ++ char *boot_device; ++#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG ++ const void *fdt_compat; ++ int fdt_compat_len; ++ ++ fdt_compat = fdt_getprop(gd->fdt_blob, 0, "compatible", ++ &fdt_compat_len); ++ if (fdt_compat && fdt_compat_len) { ++ if (strncmp(fdt_compat, "st,", 3) != 0) ++ env_set("board_name", fdt_compat); ++ else ++ env_set("board_name", fdt_compat + 3); ++ } ++#endif ++ ++ /* Check the boot-source to disable bootdelay */ ++ boot_device = env_get("boot_device"); ++ if (!strcmp(boot_device, "serial") || !strcmp(boot_device, "usb")) ++ env_set("bootdelay", "0"); ++ ++ return 0; ++} ++ ++void board_quiesce_devices(void) ++{ ++#ifdef CONFIG_LED ++ setup_led(LEDST_OFF); ++#endif ++} ++ ++/* eth init function : weak called in eqos driver */ ++int board_interface_eth_init(struct udevice *dev, ++ phy_interface_t interface_type) ++{ ++ u8 *syscfg; ++ u32 value; ++ bool eth_clk_sel_reg = false; ++ bool eth_ref_clk_sel_reg = false; ++ ++ /* Gigabit Ethernet 125MHz clock selection. */ ++ eth_clk_sel_reg = dev_read_bool(dev, "st,eth_clk_sel"); ++ ++ /* Ethernet 50Mhz RMII clock selection */ ++ eth_ref_clk_sel_reg = ++ dev_read_bool(dev, "st,eth_ref_clk_sel"); ++ ++ syscfg = (u8 *)syscon_get_first_range(STM32MP_SYSCON_SYSCFG); ++ ++ if (!syscfg) ++ return -ENODEV; ++ ++ switch (interface_type) { ++ case PHY_INTERFACE_MODE_MII: ++ value = SYSCFG_PMCSETR_ETH_SEL_GMII_MII | ++ SYSCFG_PMCSETR_ETH_REF_CLK_SEL; ++ debug("%s: PHY_INTERFACE_MODE_MII\n", __func__); ++ break; ++ case PHY_INTERFACE_MODE_GMII: ++ if (eth_clk_sel_reg) ++ value = SYSCFG_PMCSETR_ETH_SEL_GMII_MII | ++ SYSCFG_PMCSETR_ETH_CLK_SEL; ++ else ++ value = SYSCFG_PMCSETR_ETH_SEL_GMII_MII; ++ debug("%s: PHY_INTERFACE_MODE_GMII\n", __func__); ++ break; ++ case PHY_INTERFACE_MODE_RMII: ++ if (eth_ref_clk_sel_reg) ++ value = SYSCFG_PMCSETR_ETH_SEL_RMII | ++ SYSCFG_PMCSETR_ETH_REF_CLK_SEL; ++ else ++ value = SYSCFG_PMCSETR_ETH_SEL_RMII; ++ debug("%s: PHY_INTERFACE_MODE_RMII\n", __func__); ++ break; ++ case PHY_INTERFACE_MODE_RGMII: ++ case PHY_INTERFACE_MODE_RGMII_ID: ++ case PHY_INTERFACE_MODE_RGMII_RXID: ++ case PHY_INTERFACE_MODE_RGMII_TXID: ++ if (eth_clk_sel_reg) ++ value = SYSCFG_PMCSETR_ETH_SEL_RGMII | ++ SYSCFG_PMCSETR_ETH_CLK_SEL; ++ else ++ value = SYSCFG_PMCSETR_ETH_SEL_RGMII; ++ debug("%s: PHY_INTERFACE_MODE_RGMII\n", __func__); ++ break; ++ default: ++ debug("%s: Do not manage %d interface\n", ++ __func__, interface_type); ++ /* Do not manage others interfaces */ ++ return -EINVAL; ++ } ++ ++ /* clear and set ETH configuration bits */ ++ writel(SYSCFG_PMCSETR_ETH_SEL_MASK | SYSCFG_PMCSETR_ETH_SELMII | ++ SYSCFG_PMCSETR_ETH_REF_CLK_SEL | SYSCFG_PMCSETR_ETH_CLK_SEL, ++ syscfg + SYSCFG_PMCCLRR); ++ writel(value, syscfg + SYSCFG_PMCSETR); ++ ++ return 0; ++} ++ ++enum env_location env_get_location(enum env_operation op, int prio) ++{ ++ if (prio) ++ return ENVL_UNKNOWN; ++ ++#ifdef CONFIG_ENV_IS_IN_SPI_FLASH ++ return ENVL_SPI_FLASH; ++#else ++ return ENVL_NOWHERE; ++#endif ++} ++ ++#if defined(CONFIG_OF_BOARD_SETUP) ++int ft_board_setup(void *blob, bd_t *bd) ++{ ++ return 0; ++} ++#endif ++ ++static void board_copro_image_process(ulong fw_image, size_t fw_size) ++{ ++ int ret, id = 0; /* Copro id fixed to 0 as only one coproc on mp1 */ ++ ++ if (!rproc_is_initialized()) ++ if (rproc_init()) { ++ printf("Remote Processor %d initialization failed\n", ++ id); ++ return; ++ } ++ ++ ret = rproc_load(id, fw_image, fw_size); ++ printf("Load Remote Processor %d with data@addr=0x%08lx %u bytes:%s\n", ++ id, fw_image, fw_size, ret ? " Failed!" : " Success!"); ++ ++ if (!ret) { ++ rproc_start(id); ++ env_set("copro_state", "booted"); ++ } ++} ++ ++U_BOOT_FIT_LOADABLE_HANDLER(IH_TYPE_COPRO, board_copro_image_process); +diff --git a/configs/osd32mp1_brk_trusted_defconfig b/configs/osd32mp1_brk_trusted_defconfig +new file mode 100644 +index 0000000000..dd94f6155c +--- /dev/null ++++ b/configs/osd32mp1_brk_trusted_defconfig +@@ -0,0 +1,148 @@ ++CONFIG_ARM=y ++CONFIG_ARCH_STM32MP=y ++CONFIG_SYS_MALLOC_F_LEN=0x3000 ++CONFIG_ENV_OFFSET=0x280000 ++# CONFIG_TARGET_ST_STM32MP15x=y ++CONFIG_TARGET_OCTAVO_OSD32MP1_BRK=y ++CONFIG_CMD_STM32PROG=y ++CONFIG_ENV_SECT_SIZE=0x40000 ++CONFIG_ENV_OFFSET_REDUND=0x2C0000 ++CONFIG_DISTRO_DEFAULTS=y ++CONFIG_FIT=y ++CONFIG_BOOTCOMMAND="run bootcmd_stm32mp" ++CONFIG_SYS_PROMPT="OSD32MP> " ++# CONFIG_CMD_BOOTD is not set ++CONFIG_CMD_DTIMG=y ++# CONFIG_CMD_ELF is not set ++# CONFIG_CMD_IMI is not set ++# CONFIG_CMD_XIMG is not set ++# CONFIG_CMD_EXPORTENV is not set ++# CONFIG_CMD_IMPORTENV is not set ++CONFIG_CMD_EEPROM=y ++CONFIG_CMD_ERASEENV=y ++CONFIG_CMD_MEMINFO=y ++CONFIG_CMD_MEMTEST=y ++CONFIG_CMD_ADC=y ++CONFIG_CMD_CLK=y ++CONFIG_CMD_DFU=y ++CONFIG_CMD_FUSE=y ++CONFIG_CMD_GPIO=y ++CONFIG_CMD_I2C=y ++CONFIG_CMD_MMC=y ++CONFIG_CMD_REMOTEPROC=y ++CONFIG_CMD_SPI=y ++CONFIG_CMD_USB=y ++CONFIG_CMD_USB_MASS_STORAGE=y ++CONFIG_CMD_BMP=y ++CONFIG_CMD_CACHE=y ++CONFIG_CMD_TIME=y ++CONFIG_CMD_TIMER=y ++CONFIG_CMD_PMIC=y ++CONFIG_CMD_REGULATOR=y ++CONFIG_CMD_EXT4_WRITE=y ++CONFIG_CMD_MTDPARTS=y ++CONFIG_CMD_UBI=y ++CONFIG_DEFAULT_DEVICE_TREE="stm32mp157c-osd32mp1-brk" ++CONFIG_ENV_IS_NOWHERE=y ++CONFIG_ENV_IS_IN_MMC=y ++//CONFIG_ENV_IS_IN_SPI_FLASH=y ++CONFIG_ENV_IS_IN_UBI=y ++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y ++CONFIG_ENV_UBI_PART="UBI" ++CONFIG_ENV_UBI_VOLUME="uboot_config" ++CONFIG_ENV_UBI_VOLUME_REDUND="uboot_config_r" ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_STM32_ADC=y ++CONFIG_CLK_SCMI=y ++CONFIG_SET_DFU_ALT_INFO=y ++CONFIG_USB_FUNCTION_FASTBOOT=y ++CONFIG_FASTBOOT_BUF_ADDR=0xC0000000 ++CONFIG_FASTBOOT_BUF_SIZE=0x02000000 ++CONFIG_FASTBOOT_USB_DEV=1 ++CONFIG_FASTBOOT_FLASH=y ++CONFIG_FASTBOOT_FLASH_MMC_DEV=1 ++CONFIG_FASTBOOT_MMC_BOOT_SUPPORT=y ++CONFIG_FASTBOOT_MMC_BOOT1_NAME="mmc1boot0" ++CONFIG_FASTBOOT_MMC_BOOT2_NAME="mmc1boot1" ++CONFIG_FASTBOOT_MMC_USER_SUPPORT=y ++CONFIG_FASTBOOT_MMC_USER_NAME="mmc1" ++CONFIG_FASTBOOT_CMD_OEM_FORMAT=y ++CONFIG_FASTBOOT_CMD_OEM_PARTCONF=y ++CONFIG_FASTBOOT_CMD_OEM_BOOTBUS=y ++CONFIG_GPIO_HOG=y ++CONFIG_DM_HWSPINLOCK=y ++CONFIG_HWSPINLOCK_STM32=y ++CONFIG_DM_I2C=y ++CONFIG_SYS_I2C_STM32F7=y ++CONFIG_LED=y ++CONFIG_LED_GPIO=y ++CONFIG_DM_MAILBOX=y ++CONFIG_STM32_IPCC=y ++CONFIG_I2C_EEPROM=y ++CONFIG_ARM_SMC_MAILBOX=y ++CONFIG_DM_MMC=y ++CONFIG_SUPPORT_EMMC_BOOT=y ++CONFIG_STM32_SDMMC2=y ++CONFIG_MTD=y ++CONFIG_DM_MTD=y ++CONFIG_SYS_MTDPARTS_RUNTIME=y ++CONFIG_MTD_RAW_NAND=y ++CONFIG_NAND_STM32_FMC2=y ++CONFIG_MTD_SPI_NAND=y ++CONFIG_DM_SPI_FLASH=y ++CONFIG_SPI_FLASH_MACRONIX=y ++CONFIG_SPI_FLASH_SPANSION=y ++CONFIG_SPI_FLASH_STMICRO=y ++CONFIG_SPI_FLASH_WINBOND=y ++# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set ++CONFIG_SPI_FLASH_MTD=y ++CONFIG_PHY_REALTEK=y ++CONFIG_DM_ETH=y ++CONFIG_DWC_ETH_QOS=y ++CONFIG_PHY=y ++CONFIG_PHY_STM32_USBPHYC=y ++CONFIG_PINCONF=y ++CONFIG_PINCTRL_STMFX=y ++CONFIG_DM_PMIC=y ++CONFIG_PMIC_STPMIC1=y ++CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y ++CONFIG_DM_REGULATOR_STM32_VREFBUF=y ++CONFIG_DM_REGULATOR_STPMIC1=y ++CONFIG_REMOTEPROC_STM32_COPRO=y ++CONFIG_RESET_SCMI=y ++CONFIG_DM_RTC=y ++CONFIG_RTC_STM32=y ++CONFIG_SERIAL_RX_BUFFER=y ++CONFIG_SPI=y ++CONFIG_DM_SPI=y ++CONFIG_STM32_QSPI=y ++CONFIG_STM32_SPI=y ++CONFIG_TEE=y ++CONFIG_OPTEE=y ++# CONFIG_OPTEE_TA_AVB is not set ++CONFIG_USB=y ++CONFIG_DM_USB=y ++CONFIG_DM_USB_GADGET=y ++CONFIG_USB_EHCI_HCD=y ++CONFIG_USB_EHCI_GENERIC=y ++CONFIG_USB_GADGET=y ++CONFIG_USB_GADGET_MANUFACTURER="STMicroelectronics" ++CONFIG_USB_GADGET_VENDOR_NUM=0x0483 ++CONFIG_USB_GADGET_PRODUCT_NUM=0x5720 ++CONFIG_USB_GADGET_DWC2_OTG=y ++CONFIG_DM_VIDEO=y ++CONFIG_BACKLIGHT_GPIO=y ++CONFIG_VIDEO_BPP8=y ++CONFIG_VIDEO_BPP16=y ++CONFIG_VIDEO_BPP32=y ++CONFIG_VIDEO_LCD_ORISETECH_OTM8009A=y ++CONFIG_VIDEO_LCD_RAYDIUM_RM68200=y ++CONFIG_VIDEO_STM32=y ++CONFIG_VIDEO_STM32_DSI=y ++CONFIG_VIDEO_STM32_MAX_XRES=1280 ++CONFIG_VIDEO_STM32_MAX_YRES=800 ++CONFIG_WDT=y ++CONFIG_WDT_STM32MP=y ++CONFIG_ERRNO_STR=y ++CONFIG_FDT_FIXUP_PARTITIONS=y +-- +2.25.1 + diff --git a/board/octavo/osd32mp1-brk/readme.txt b/board/octavo/osd32mp1-brk/readme.txt new file mode 100644 index 000000000..8aae419f9 --- /dev/null +++ b/board/octavo/osd32mp1-brk/readme.txt @@ -0,0 +1,35 @@ +OSD32MP1-BRK + +Intro +===== + +This configuration supports the OSD32MP1-BRK platform: + + https://octavosystems.com/octavo_products/osd32mp1-brk/ + +How to build +============ + + $ make octavo_osd32mp1_brk_defconfig + $ make + +How to write the microSD card +============================= + +Once the build process is finished you will have an image called +"sdcard.img" in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an microSD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + +Boot the board +============== + + (1) Insert the microSD card. + + (2) Plug an USB-SERIAL cable on the RX, TX and GND pins + + (3) Plug a micro-USB cable to power-up the board. + + (4) The system will start, with the console on UART. diff --git a/board/octavo/osd32mp1-brk/tfa-dts/osd32mp1_ddr.dtsi b/board/octavo/osd32mp1-brk/tfa-dts/osd32mp1_ddr.dtsi new file mode 100644 index 000000000..e8c9eebfc --- /dev/null +++ b/board/octavo/osd32mp1-brk/tfa-dts/osd32mp1_ddr.dtsi @@ -0,0 +1,119 @@ +/* + * Copyright (C) 2015-2018, STMicroelectronics - All Rights Reserved + * + * SPDX-License-Identifier: GPL-2.0+ BSD-3-Clause + * + */ + +/* + * File generated by STMicroelectronics STM32CubeMX DDR Tool for MPUs + * DDR type: DDR3 / DDR3L + * DDR width: 16bits + * DDR density: 4Gb + * System frequency: 533000Khz + * Relaxed Timing Mode: false + * Address mapping type: RBC + * + * Save Date: 2020.08.27, save Time: 15:22:11 + */ + +#define DDR_MEM_NAME "DDR3-DDR3L 16bits 533000Khz" +#define DDR_MEM_SPEED 533000 +#define DDR_MEM_SIZE 0x20000000 + +#define DDR_MSTR 0x00041401 +#define DDR_MRCTRL0 0x00000010 +#define DDR_MRCTRL1 0x00000000 +#define DDR_DERATEEN 0x00000000 +#define DDR_DERATEINT 0x00800000 +#define DDR_PWRCTL 0x00000000 +#define DDR_PWRTMG 0x00400010 +#define DDR_HWLPCTL 0x00000000 +#define DDR_RFSHCTL0 0x00210000 +#define DDR_RFSHCTL3 0x00000000 +#define DDR_RFSHTMG 0x0081008B +#define DDR_CRCPARCTL0 0x00000000 +#define DDR_DRAMTMG0 0x121B2414 +#define DDR_DRAMTMG1 0x000A041C +#define DDR_DRAMTMG2 0x0608090F +#define DDR_DRAMTMG3 0x0050400C +#define DDR_DRAMTMG4 0x08040608 +#define DDR_DRAMTMG5 0x06060403 +#define DDR_DRAMTMG6 0x02020002 +#define DDR_DRAMTMG7 0x00000202 +#define DDR_DRAMTMG8 0x00001005 +#define DDR_DRAMTMG14 0x000000A0 +#define DDR_ZQCTL0 0xC2000040 +#define DDR_DFITMG0 0x02060105 +#define DDR_DFITMG1 0x00000202 +#define DDR_DFILPCFG0 0x07000000 +#define DDR_DFIUPD0 0xC0400003 +#define DDR_DFIUPD1 0x00000000 +#define DDR_DFIUPD2 0x00000000 +#define DDR_DFIPHYMSTR 0x00000000 +#define DDR_ODTCFG 0x06000600 +#define DDR_ODTMAP 0x00000001 +#define DDR_SCHED 0x00000C01 +#define DDR_SCHED1 0x00000000 +#define DDR_PERFHPR1 0x01000001 +#define DDR_PERFLPR1 0x08000200 +#define DDR_PERFWR1 0x08000400 +#define DDR_DBG0 0x00000000 +#define DDR_DBG1 0x00000000 +#define DDR_DBGCMD 0x00000000 +#define DDR_POISONCFG 0x00000000 +#define DDR_PCCFG 0x00000010 +#define DDR_PCFGR_0 0x00010000 +#define DDR_PCFGW_0 0x00000000 +#define DDR_PCFGQOS0_0 0x02100C03 +#define DDR_PCFGQOS1_0 0x00800100 +#define DDR_PCFGWQOS0_0 0x01100C03 +#define DDR_PCFGWQOS1_0 0x01000200 +#define DDR_PCFGR_1 0x00010000 +#define DDR_PCFGW_1 0x00000000 +#define DDR_PCFGQOS0_1 0x02100C03 +#define DDR_PCFGQOS1_1 0x00800040 +#define DDR_PCFGWQOS0_1 0x01100C03 +#define DDR_PCFGWQOS1_1 0x01000200 +#define DDR_ADDRMAP1 0x00070707 +#define DDR_ADDRMAP2 0x00000000 +#define DDR_ADDRMAP3 0x1F000000 +#define DDR_ADDRMAP4 0x00001F1F +#define DDR_ADDRMAP5 0x06060606 +#define DDR_ADDRMAP6 0x0F060606 +#define DDR_ADDRMAP9 0x00000000 +#define DDR_ADDRMAP10 0x00000000 +#define DDR_ADDRMAP11 0x00000000 +#define DDR_PGCR 0x01442E02 +#define DDR_PTR0 0x0022AA5B +#define DDR_PTR1 0x04841104 +#define DDR_PTR2 0x042DA068 +#define DDR_ACIOCR 0x10400812 +#define DDR_DXCCR 0x00000C40 +#define DDR_DSGCR 0xF200011F +#define DDR_DCR 0x0000000B +#define DDR_DTPR0 0x38D488D0 +#define DDR_DTPR1 0x098B00D8 +#define DDR_DTPR2 0x10023600 +#define DDR_MR0 0x00000840 +#define DDR_MR1 0x00000000 +#define DDR_MR2 0x00000208 +#define DDR_MR3 0x00000000 +#define DDR_ODTCR 0x00010000 +#define DDR_ZQ0CR1 0x00000038 +#define DDR_DX0GCR 0x0000CE81 +#define DDR_DX0DLLCR 0x40000000 +#define DDR_DX0DQTR 0x00112121 +#define DDR_DX0DQSTR 0x3D200000 +#define DDR_DX1GCR 0x0000CE81 +#define DDR_DX1DLLCR 0x40000000 +#define DDR_DX1DQTR 0x11100121 +#define DDR_DX1DQSTR 0x3D200000 +#define DDR_DX2GCR 0x0000CE80 +#define DDR_DX2DLLCR 0x40000000 +#define DDR_DX2DQTR 0xFFFFFFFF +#define DDR_DX2DQSTR 0x3DB02000 +#define DDR_DX3GCR 0x0000CE80 +#define DDR_DX3DLLCR 0x40000000 +#define DDR_DX3DQTR 0xFFFFFFFF +#define DDR_DX3DQSTR 0x3DB02000 diff --git a/board/octavo/osd32mp1-brk/tfa-dts/stm32mp157c-osd32mp1-brk.dts b/board/octavo/osd32mp1-brk/tfa-dts/stm32mp157c-osd32mp1-brk.dts new file mode 100644 index 000000000..1820c6016 --- /dev/null +++ b/board/octavo/osd32mp1-brk/tfa-dts/stm32mp157c-osd32mp1-brk.dts @@ -0,0 +1,581 @@ +/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */ +/* + * Copyright (C) STMicroelectronics 2020 - All Rights Reserved + * Author: STM32CubeMX code generation for STMicroelectronics. + */ + +/* For more information on Device Tree configuration, please refer to + * https://wiki.st.com/stm32mpu/wiki/Category:Device_tree_configuration + */ + +/dts-v1/; +#include +#include +#include +#include + +#include "osd32mp1_ddr.dtsi" +#include "stm32mp157.dtsi" +#include "stm32mp15xc.dtsi" +#include "stm32mp15xxac-pinctrl.dtsi" +#include "stm32mp15-ddr.dtsi" + +/ { + model = "Octavo OSD32MP1 BRK board"; + compatible = "st,stm32mp157c-osd32mp1-brk", "st,stm32mp157"; + + memory@c0000000{ + device_type = "memory"; + reg = <0xc0000000 0x20000000>; + }; + + vin:vin{ + compatible = "regulator-fixed"; + regulator-name = "vin"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + regulator-always-on; + }; + + aliases{ + serial0 = &uart4; + }; + + chosen{ + stdout-path = "serial0:115200n8"; + }; + + clocks { + clk_lse: clk-lse { + st,drive = < LSEDRV_MEDIUM_HIGH >; + }; + }; + +}; + +&clk_hse { + st,digbypass; +}; + +&pinctrl { + sdmmc1_pins_mx: sdmmc1_mx-0 { + pins1 { + pinmux = , /* SDMMC1_D0 */ + , /* SDMMC1_D1 */ + , /* SDMMC1_D2 */ + , /* SDMMC1_D3 */ + ; /* SDMMC1_CMD */ + bias-disable; + drive-push-pull; + slew-rate = <1>; + }; + pins2 { + pinmux = ; /* SDMMC1_CK */ + bias-disable; + drive-push-pull; + slew-rate = <2>; + }; + }; + + uart4_pins_mx: uart4_mx-0 { + pins1 { + pinmux = ; /* UART4_RX */ + bias-disable; + }; + pins2 { + pinmux = ; /* UART4_TX */ + bias-disable; + drive-push-pull; + slew-rate = <0>; + }; + }; + + /* USER CODE BEGIN pinctrl */ + /* USER CODE END pinctrl */ +}; + +&pinctrl_z { + i2c4_pins_z_mx: i2c4_mx-0 { + pins { + pinmux = , /* I2C4_SCL */ + ; /* I2C4_SDA */ + bias-disable; + drive-open-drain; + slew-rate = <0>; + }; + }; + + /* USER CODE BEGIN pinctrl_z */ + /* USER CODE END pinctrl_z */ +}; + +&rcc { + st,hsi-cal; + st,csi-cal; + st,cal-sec = <60>; + st,clksrc = < + CLK_MPU_PLL1P + CLK_AXI_PLL2P + CLK_MCU_PLL3P + CLK_PLL12_HSE + CLK_PLL3_HSE + CLK_PLL4_HSE + CLK_RTC_LSE + CLK_MCO1_DISABLED + CLK_MCO2_DISABLED + >; + + st,clkdiv = < + 1 /*MPU*/ + 0 /*AXI*/ + 0 /*MCU*/ + 1 /*APB1*/ + 1 /*APB2*/ + 1 /*APB3*/ + 1 /*APB4*/ + 2 /*APB5*/ + 23 /*RTC*/ + 0 /*MCO1*/ + 0 /*MCO2*/ + >; + + st,pkcs = < + CLK_CKPER_HSE + CLK_FMC_ACLK + CLK_QSPI_ACLK + CLK_ETH_DISABLED + CLK_SDMMC12_PLL4P + CLK_DSI_DSIPLL + CLK_STGEN_HSE + CLK_USBPHY_HSE + CLK_SPI2S1_PLL3Q + CLK_SPI2S23_PLL3Q + CLK_SPI45_HSI + CLK_SPI6_HSI + CLK_I2C46_HSI + CLK_SDMMC3_PLL4P + CLK_USBO_USBPHY + CLK_ADC_CKPER + CLK_CEC_LSE + CLK_I2C12_HSI + CLK_I2C35_HSI + CLK_UART1_HSI + CLK_UART24_HSI + CLK_UART35_HSI + CLK_UART6_HSI + CLK_UART78_HSI + CLK_SPDIF_PLL4P + CLK_FDCAN_PLL4R + CLK_SAI1_PLL3Q + CLK_SAI2_PLL3Q + CLK_SAI3_PLL3Q + CLK_SAI4_PLL3Q + CLK_RNG1_LSI + CLK_RNG2_LSI + CLK_LPTIM1_PCLK1 + CLK_LPTIM23_PCLK3 + CLK_LPTIM45_LSE + >; + + /* VCO = 1066.0 MHz => P = 266 (AXI), Q = 533 (GPU), R = 533 (DDR) */ + pll2: st,pll@1 { + compatible = "st,stm32mp1-pll"; + reg = <1>; + cfg = <2 65 1 0 0 PQR(1,1,1)>; + frac = <0x1400>; + }; + + /* VCO = 417.8 MHz => P = 209, Q = 24, R = 11 */ + pll3: st,pll@2 { + compatible = "st,stm32mp1-pll"; + reg = <2>; + cfg = <1 33 1 16 36 PQR(1,1,1)>; + frac = <0x1a04>; + }; + + /* VCO = 594.0 MHz => P = 99, Q = 74, R = 74 */ + pll4: st,pll@3 { + compatible = "st,stm32mp1-pll"; + reg = <3>; + cfg = <3 98 5 7 7 PQR(1,1,1)>; + }; +}; + +&bsec{ + board_id:board_id@ec{ + reg = <0xec 0x4>; + st,non-secure-otp; + }; +}; + +&cryp1{ + status = "okay"; + + /* USER CODE BEGIN cryp1 */ + /* USER CODE END cryp1 */ +}; + +&etzpc{ + st,decprot = < + DECPROT(STM32MP1_ETZPC_USART1_ID, DECPROT_NS_RW, DECPROT_UNLOCK) + DECPROT(STM32MP1_ETZPC_SPI6_ID, DECPROT_NS_RW, DECPROT_UNLOCK) + DECPROT(STM32MP1_ETZPC_I2C4_ID, DECPROT_NS_RW, DECPROT_UNLOCK) + DECPROT(STM32MP1_ETZPC_I2C6_ID, DECPROT_NS_RW, DECPROT_UNLOCK) + DECPROT(STM32MP1_ETZPC_RNG1_ID, DECPROT_NS_RW, DECPROT_UNLOCK) + DECPROT(STM32MP1_ETZPC_HASH1_ID, DECPROT_NS_RW, DECPROT_UNLOCK) + DECPROT(STM32MP1_ETZPC_CRYP1_ID, DECPROT_NS_RW, DECPROT_UNLOCK) + DECPROT(STM32MP1_ETZPC_DDRCTRL_ID, DECPROT_S_RW, DECPROT_LOCK) + DECPROT(STM32MP1_ETZPC_DDRPHYC_ID, DECPROT_S_RW, DECPROT_LOCK) + DECPROT(STM32MP1_ETZPC_STGENC_ID, DECPROT_S_RW, DECPROT_LOCK) + DECPROT(STM32MP1_ETZPC_BKPSRAM_ID, DECPROT_S_RW, DECPROT_LOCK) + DECPROT(STM32MP1_ETZPC_IWDG1_ID, DECPROT_S_RW, DECPROT_LOCK) + >; + secure-status = "okay"; +}; + +&hash1{ + status = "okay"; +}; + +&i2c4{ + pinctrl-names = "default"; + pinctrl-0 = <&i2c4_pins_z_mx>; + status = "okay"; + secure-status = "okay"; + i2c-scl-rising-time-ns = <185>; + i2c-scl-falling-time-ns = <20>; + clock-frequency = <400000>; + + pmic:stpmic@33{ + compatible = "st,stpmic1"; + reg = <0x33>; + interrupts-extended = <&exti_pwr 55 IRQ_TYPE_EDGE_FALLING>; + interrupt-controller; + #interrupt-cells = <2>; + status = "okay"; + secure-status = "okay"; + + regulators{ + compatible = "st,stpmic1-regulators"; + buck1-supply = <&vin>; + buck2-supply = <&vin>; + buck3-supply = <&vin>; + buck4-supply = <&vin>; + ldo1-supply = <&v3v3>; + ldo2-supply = <&vin>; + ldo3-supply = <&vdd_ddr>; + ldo4-supply = <&vin>; + ldo5-supply = <&vin>; + ldo6-supply = <&v3v3>; + vref_ddr-supply = <&vin>; + boost-supply = <&vin>; + pwr_sw1-supply = <&bst_out>; + pwr_sw2-supply = <&bst_out>; + + vddcore:buck1{ + regulator-name = "vddcore"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1350000>; + regulator-always-on; + regulator-initial-mode = <0>; + regulator-over-current-protection; + lp-stop{ + regulator-on-in-suspend; + regulator-suspend-microvolt = <1200000>; + }; + standby-ddr-sr{ + regulator-off-in-suspend; + }; + standby-ddr-off{ + regulator-off-in-suspend; + }; + }; + + vdd_ddr:buck2{ + regulator-name = "vdd_ddr"; + regulator-min-microvolt = <1350000>; + regulator-max-microvolt = <1350000>; + regulator-always-on; + regulator-initial-mode = <0>; + regulator-over-current-protection; + lp-stop{ + regulator-suspend-microvolt = <1350000>; + regulator-on-in-suspend; + }; + standby-ddr-sr{ + regulator-suspend-microvolt = <1350000>; + regulator-on-in-suspend; + }; + standby-ddr-off{ + regulator-off-in-suspend; + }; + }; + + vdd:buck3{ + regulator-name = "vdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + st,mask-reset; + regulator-initial-mode = <0>; + regulator-over-current-protection; + lp-stop{ + regulator-suspend-microvolt = <3300000>; + regulator-on-in-suspend; + }; + standby-ddr-sr{ + regulator-suspend-microvolt = <3300000>; + regulator-on-in-suspend; + }; + standby-ddr-off{ + regulator-suspend-microvolt = <3300000>; + regulator-on-in-suspend; + }; + }; + + v3v3:buck4{ + regulator-name = "v3v3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + regulator-over-current-protection; + regulator-initial-mode = <0>; + lp-stop{ + regulator-suspend-microvolt = <3300000>; + regulator-on-in-suspend; + }; + standby-ddr-sr{ + regulator-off-in-suspend; + }; + standby-ddr-off{ + regulator-off-in-suspend; + }; + }; + + v1v8_audio:ldo1{ + regulator-name = "v1v8_audio"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + standby-ddr-sr{ + regulator-off-in-suspend; + }; + standby-ddr-off{ + regulator-off-in-suspend; + }; + }; + + v3v3_hdmi:ldo2{ + regulator-name = "v3v3_hdmi"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + standby-ddr-sr{ + regulator-off-in-suspend; + }; + standby-ddr-off{ + regulator-off-in-suspend; + }; + }; + + vtt_ddr:ldo3{ + regulator-name = "vtt_ddr"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <750000>; + regulator-always-on; + regulator-over-current-protection; + lp-stop{ + regulator-off-in-suspend; + }; + standby-ddr-sr{ + regulator-off-in-suspend; + }; + standby-ddr-off{ + regulator-off-in-suspend; + }; + }; + + vdd_usb:ldo4{ + regulator-name = "vdd_usb"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + standby-ddr-sr{ + regulator-on-in-suspend; + }; + standby-ddr-off{ + regulator-off-in-suspend; + }; + }; + + vdda:ldo5{ + regulator-name = "vdda"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + regulator-boot-on; + standby-ddr-sr{ + regulator-off-in-suspend; + }; + standby-ddr-off{ + regulator-off-in-suspend; + }; + }; + + v1v2_hdmi:ldo6{ + regulator-name = "v1v2_hdmi"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + standby-ddr-sr{ + regulator-off-in-suspend; + }; + standby-ddr-off{ + regulator-off-in-suspend; + }; + }; + + vref_ddr:vref_ddr{ + regulator-name = "vref_ddr"; + regulator-always-on; + regulator-over-current-protection; + lp-stop{ + regulator-on-in-suspend; + }; + standby-ddr-sr{ + regulator-on-in-suspend; + }; + standby-ddr-off{ + regulator-off-in-suspend; + }; + }; + + bst_out:boost{ + regulator-name = "bst_out"; + }; + + vbus_otg:pwr_sw1{ + regulator-name = "vbus_otg"; + }; + + vbus_sw:pwr_sw2{ + regulator-name = "vbus_sw"; + regulator-active-discharge = <1>; + }; + }; + }; + /* USER CODE END i2c4 */ +}; + +&iwdg2{ + status = "okay"; + secure-status = "okay"; + timeout-sec = <32>; +}; + +&rcc{ + status = "okay"; + secure-status = "okay"; + + /* USER CODE BEGIN rcc */ + /* USER CODE END rcc */ +}; + +&rng1{ + status = "okay"; + secure-status = "okay"; +}; + +&rtc{ + status = "okay"; + secure-status = "okay"; +}; + +&sdmmc1{ + pinctrl-names = "default"; + pinctrl-0 = <&sdmmc1_pins_mx>; + status = "okay"; + disable-wp; + st,neg-edge; + bus-width = <4>; + vmmc-supply = <&v3v3>; +}; + +&tamp{ + status = "okay"; + secure-status = "okay"; + + /* USER CODE BEGIN tamp */ + /* USER CODE END tamp */ +}; + +&uart4{ + pinctrl-names = "default"; + pinctrl-0 = <&uart4_pins_mx>; + status = "okay"; +}; + +&usbotg_hs{ + status = "okay"; + phys = <&usbphyc_port1 0>; + phy-names = "usb2-phy"; + usb-role-switch; +}; + +&usbphyc{ + status = "okay"; +}; + +&usbphyc_port0{ + phy-supply = <&vdd_usb>; +}; + +&usbphyc_port1{ + phy-supply = <&vdd_usb>; +}; + +&cpu0{ + cpu-supply = <&vddcore>; +}; + +&cpu1{ + cpu-supply = <&vddcore>; +}; + +&pwr_regulators { + system_suspend_supported_soc_modes = < + STM32_PM_CSLEEP_RUN + STM32_PM_CSTOP_ALLOW_LP_STOP + STM32_PM_CSTOP_ALLOW_STANDBY_DDR_SR + >; + system_off_soc_mode = ; + vdd-supply = <&vdd>; + vdd_3v3_usbfs-supply = <&vdd_usb>; +}; + +&nvmem_layout{ + nvmem-cells = <&cfg0_otp>, + <&part_number_otp>, + <&monotonic_otp>, + <&nand_otp>, + <&uid_otp>, + <&package_otp>, + <&hw2_otp>, + <&pkh_otp>, + <&board_id>; + + nvmem-cell-names = "cfg0_otp", + "part_number_otp", + "monotonic_otp", + "nand_otp", + "uid_otp", + "package_otp", + "hw2_otp", + "pkh_otp", + "board_id"; +}; + +&timers15{ + secure-status = "okay"; + st,hsi-cal-input = <7>; + st,csi-cal-input = <8>; +}; diff --git a/board/octavo/osd32mp1-red/genimage.cfg b/board/octavo/osd32mp1-red/genimage.cfg new file mode 100644 index 000000000..3f86579b9 --- /dev/null +++ b/board/octavo/osd32mp1-red/genimage.cfg @@ -0,0 +1,23 @@ +image sdcard.img { + hdimage { + partition-table-type = "gpt" + } + + partition fsbl1 { + image = "tf-a-osd32mp1-red.stm32" + } + + partition fsbl2 { + image = "tf-a-osd32mp1-red.stm32" + } + + partition ssbl { + image = "u-boot.stm32" + size = 2M + } + + partition rootfs { + image = "rootfs.ext4" + bootable = "yes" + } +} diff --git a/board/octavo/osd32mp1-red/linux-dts/osd32mp1-red.dts b/board/octavo/osd32mp1-red/linux-dts/osd32mp1-red.dts new file mode 100644 index 000000000..32a6d5cb4 --- /dev/null +++ b/board/octavo/osd32mp1-red/linux-dts/osd32mp1-red.dts @@ -0,0 +1,1469 @@ +/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */ +/* + * Copyright (C) STMicroelectronics 2020 - All Rights Reserved + * Author: STM32CubeMX code generation for STMicroelectronics. + */ + +/* For more information on Device Tree configuration, please refer to + * https://wiki.st.com/stm32mpu/wiki/Category:Device_tree_configuration + */ + +/dts-v1/; +#include "stm32mp157c-osd32mp1-red.dtsi" +#include "stm32mp157cac-pinctrl.dtsi" +#include "stm32mp157c-m4-srm.dtsi" + + +#include +#include +#include + + +/ { + model = "Octavo OSD32MP1-RED board"; + compatible = "octavo,osd32mp1-red", "st,stm32mp157"; + + memory@c0000000 { + reg = <0xc0000000 0x20000000>; + }; + + wifi_pwrseq: wifi-pwrseq { + compatible = "mmc-pwrseq-simple"; + reset-gpios = <&gpiog 5 GPIO_ACTIVE_LOW>; + }; + + reserved-memory { + #address-cells = <1>; + #size-cells = <1>; + ranges; + + + + retram: retram@0x38000000 { + compatible = "shared-dma-pool"; + reg = <0x38000000 0x10000>; + no-map; + }; + + mcuram: mcuram@0x30000000 { + compatible = "shared-dma-pool"; + reg = <0x30000000 0x40000>; + no-map; + }; + + mcuram2: mcuram2@0x10000000 { + compatible = "shared-dma-pool"; + reg = <0x10000000 0x40000>; + no-map; + }; + + vdev0vring0: vdev0vring0@10040000 { + compatible = "shared-dma-pool"; + reg = <0x10040000 0x2000>; + no-map; + }; + + vdev0vring1: vdev0vring1@10042000 { + compatible = "shared-dma-pool"; + reg = <0x10042000 0x2000>; + no-map; + }; + + vdev0buffer: vdev0buffer@10044000 { + compatible = "shared-dma-pool"; + reg = <0x10044000 0x4000>; + no-map; + }; + + + gpu_reserved: gpu@d4000000 { + reg = <0xd4000000 0x4000000>; + no-map; + }; + }; + + + aliases { + ethernet0 = ðernet0; + serial0 = &uart4; + serial1 = &usart3; + serial2 = &uart7; + serial3 = &usart2; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + sram: sram@10050000 { + compatible = "mmio-sram"; + reg = <0x10050000 0x10000>; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0x10050000 0x10000>; + + dma_pool: dma_pool@0 { + reg = <0x0 0x10000>; + pool; + }; + }; + + led { + compatible = "gpio-leds"; + blue { + label = "heartbeat"; + gpios = <&gpiod 11 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "heartbeat"; + default-state = "off"; + }; + + }; + + sound { + compatible = "audio-graph-card"; + label = "STM32MP1-DK"; + routing = + "Playback" , "MCLK", + "Capture" , "MCLK", + "MICL" , "Mic Bias"; + dais = <&i2s2_port>; + status = "okay"; + }; + + usb_phy_tuning: usb-phy-tuning { + st,hs-dc-level = <2>; + st,fs-rftime-tuning; + st,hs-rftime-reduction; + st,hs-current-trim = <15>; + st,hs-impedance-trim = <1>; + st,squelch-level = <3>; + st,hs-rx-offset = <2>; + st,no-lsfs-sc; + }; + + + + clocks { + + clk_ext_camera: clk-ext-camera { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <24000000>; + }; + + + clk_lsi: clk-lsi { + clock-frequency = <32000>; + }; + + clk_hsi: clk-hsi { + clock-frequency = <64000000>; + }; + + clk_csi: clk-csi { + clock-frequency = <4000000>; + }; + + clk_lse: clk-lse { + clock-frequency = <32768>; + }; + + clk_hse: clk-hse { + clock-frequency = <24000000>; + }; + }; + +}; /*root*/ + +&pinctrl { + u-boot,dm-pre-reloc; + + dcmi_pins_mx: dcmi_mx-0 { + pins { + pinmux = , /* DCMI_HSYNC */ + , /* DCMI_PIXCLK */ + , /* DCMI_D1 */ + , /* DCMI_D7 */ + , /* DCMI_D0 */ + , /* DCMI_D2 */ + , /* DCMI_D3 */ + , /* DCMI_D4 */ + , /* DCMI_D6 */ + , /* DCMI_VSYNC */ + , /* DCMI_D8 */ + , /* DCMI_D9 */ + , /* DCMI_D11 */ + , /* DCMI_D10 */ + ; /* DCMI_D5 */ + bias-disable; + }; + }; + + dcmi_sleep_pins_mx: dcmi_sleep_mx-0 { + pins { + pinmux = , /* DCMI_HSYNC */ + , /* DCMI_PIXCLK */ + , /* DCMI_D1 */ + , /* DCMI_D7 */ + , /* DCMI_D0 */ + , /* DCMI_D2 */ + , /* DCMI_D3 */ + , /* DCMI_D4 */ + , /* DCMI_D6 */ + , /* DCMI_VSYNC */ + , /* DCMI_D8 */ + , /* DCMI_D9 */ + , /* DCMI_D11 */ + , /* DCMI_D10 */ + ; /* DCMI_D5 */ + }; + }; + + eth1_pins_mx: eth1_mx-0 { + pins1 { + pinmux = , /* ETH1_RX_CLK */ + , /* ETH1_RX_CTL */ + , /* ETH1_RXD2 */ + , /* ETH1_RXD3 */ + , /* ETH1_RXD0 */ + ; /* ETH1_RXD1 */ + bias-disable; + }; + pins2 { + pinmux = ; /* ETH1_MDIO */ + bias-disable; + drive-push-pull; + slew-rate = <0>; + }; + pins3 { + pinmux = , /* ETH1_TX_CTL */ + , /* ETH1_MDC */ + , /* ETH1_TXD2 */ + , /* ETH1_TXD3 */ + , /* ETH1_GTX_CLK */ + , /* ETH1_TXD0 */ + ; /* ETH1_TXD1 */ + bias-disable; + drive-push-pull; + slew-rate = <2>; + }; + }; + + eth1_sleep_pins_mx: eth1_sleep_mx-0 { + pins { + pinmux = , /* ETH1_RX_CLK */ + , /* ETH1_MDIO */ + , /* ETH1_RX_CTL */ + , /* ETH1_RXD2 */ + , /* ETH1_RXD3 */ + , /* ETH1_TX_CTL */ + , /* ETH1_MDC */ + , /* ETH1_TXD2 */ + , /* ETH1_RXD0 */ + , /* ETH1_RXD1 */ + , /* ETH1_TXD3 */ + , /* ETH1_GTX_CLK */ + , /* ETH1_TXD0 */ + ; /* ETH1_TXD1 */ + }; + }; + + i2c1_pins_mx: i2c1_mx-0 { + pins { + pinmux = , /* I2C1_SCL */ + ; /* I2C1_SDA */ + bias-disable; + drive-open-drain; + slew-rate = <0>; + }; + }; + + i2c1_sleep_pins_mx: i2c1_sleep_mx-0 { + pins { + pinmux = , /* I2C1_SCL */ + ; /* I2C1_SDA */ + }; + }; + + i2c2_pins_mx: i2c2_mx-0 { + pins { + pinmux = ; /* I2C2_SDA */ + bias-disable; + drive-open-drain; + slew-rate = <0>; + }; + }; + + i2c2_sleep_pins_mx: i2c2_sleep_mx-0 { + pins { + pinmux = ; /* I2C2_SDA */ + }; + }; + + i2c5_pins_mx: i2c5_mx-0 { + pins { + pinmux = , /* I2C5_SCL */ + ; /* I2C5_SDA */ + bias-disable; + drive-open-drain; + slew-rate = <0>; + }; + }; + + i2c5_sleep_pins_mx: i2c5_sleep_mx-0 { + pins { + pinmux = , /* I2C5_SCL */ + ; /* I2C5_SDA */ + }; + }; + + i2s2_pins_mx: i2s2_mx-0 { + pins { + pinmux = , /* I2S2_WS */ + , /* I2S2_CK */ + ; /* I2S2_SDO */ + bias-disable; + drive-push-pull; + slew-rate = <1>; + }; + }; + + i2s2_sleep_pins_mx: i2s2_sleep_mx-0 { + pins { + pinmux = , /* I2S2_WS */ + , /* I2S2_CK */ + ; /* I2S2_SDO */ + }; + }; + + ltdc_pins_mx: ltdc_mx-0 { + pins1 { + pinmux = , /* LTDC_B5 */ + , /* LTDC_B6 */ + , /* LTDC_R5 */ + , /* LTDC_B7 */ + , /* LTDC_B0 */ + , /* LTDC_B3 */ + , /* LTDC_G1 */ + , /* LTDC_B4 */ + , /* LTDC_G0 */ + , /* LTDC_R7 */ + , /* LTDC_DE */ + , /* LTDC_B2 */ + , /* LTDC_B1 */ + , /* LTDC_R0 */ + , /* LTDC_R1 */ + , /* LTDC_G4 */ + , /* LTDC_R2 */ + , /* LTDC_R3 */ + , /* LTDC_R4 */ + , /* LTDC_R6 */ + , /* LTDC_G2 */ + , /* LTDC_G3 */ + , /* LTDC_G5 */ + , /* LTDC_G6 */ + , /* LTDC_G7 */ + , /* LTDC_CLK */ + , /* LTDC_VSYNC */ + ; /* LTDC_HSYNC */ + bias-disable; + drive-push-pull; + slew-rate = <1>; + }; + }; + + ltdc_sleep_pins_mx: ltdc_sleep_mx-0 { + pins { + pinmux = , /* LTDC_B5 */ + , /* LTDC_B6 */ + , /* LTDC_R5 */ + , /* LTDC_B7 */ + , /* LTDC_B0 */ + , /* LTDC_B3 */ + , /* LTDC_G1 */ + , /* LTDC_B4 */ + , /* LTDC_G0 */ + , /* LTDC_R7 */ + , /* LTDC_DE */ + , /* LTDC_CLK */ + , /* LTDC_B2 */ + , /* LTDC_B1 */ + , /* LTDC_R0 */ + , /* LTDC_R1 */ + , /* LTDC_G4 */ + , /* LTDC_R2 */ + , /* LTDC_R3 */ + , /* LTDC_R4 */ + , /* LTDC_R6 */ + , /* LTDC_G2 */ + , /* LTDC_G3 */ + , /* LTDC_G5 */ + , /* LTDC_G6 */ + , /* LTDC_G7 */ + , /* LTDC_VSYNC */ + ; /* LTDC_HSYNC */ + }; + }; + + sdmmc1_pins_mx: sdmmc1_mx-0 { + u-boot,dm-pre-reloc; + pins1 { + u-boot,dm-pre-reloc; + pinmux = , /* SDMMC1_D0 */ + , /* SDMMC1_D1 */ + , /* SDMMC1_D2 */ + , /* SDMMC1_D3 */ + ; /* SDMMC1_CMD */ + bias-disable; + drive-push-pull; + slew-rate = <1>; + }; + pins2 { + u-boot,dm-pre-reloc; + pinmux = ; /* SDMMC1_CK */ + bias-disable; + drive-push-pull; + slew-rate = <3>; + }; + }; + + sdmmc1_opendrain_pins_mx: sdmmc1_opendrain_mx-0 { + u-boot,dm-pre-reloc; + pins1 { + u-boot,dm-pre-reloc; + pinmux = , /* SDMMC1_D0 */ + , /* SDMMC1_D1 */ + , /* SDMMC1_D2 */ + ; /* SDMMC1_D3 */ + bias-disable; + drive-push-pull; + slew-rate = <1>; + }; + pins2 { + u-boot,dm-pre-reloc; + pinmux = ; /* SDMMC1_CK */ + bias-disable; + drive-push-pull; + slew-rate = <3>; + }; + pins3 { + u-boot,dm-pre-reloc; + pinmux = ; /* SDMMC1_CMD */ + bias-disable; + drive-open-drain; + slew-rate = <1>; + }; + }; + + sdmmc1_sleep_pins_mx: sdmmc1_sleep_mx-0 { + u-boot,dm-pre-reloc; + pins { + u-boot,dm-pre-reloc; + pinmux = , /* SDMMC1_D0 */ + , /* SDMMC1_D1 */ + , /* SDMMC1_D2 */ + , /* SDMMC1_D3 */ + , /* SDMMC1_CK */ + ; /* SDMMC1_CMD */ + }; + }; + + sdmmc2_pins_mx: sdmmc2_mx-0 { + u-boot,dm-pre-reloc; + pins1 { + u-boot,dm-pre-reloc; + pinmux = , /* SDMMC2_D4 */ + , /* SDMMC2_D5 */ + , /* SDMMC2_D2 */ + , /* SDMMC2_D3 */ + , /* SDMMC2_D0 */ + , /* SDMMC2_D1 */ + , /* SDMMC2_D7 */ + , /* SDMMC2_D6 */ + ; /* SDMMC2_CMD */ + bias-pull-up; + drive-push-pull; + slew-rate = <1>; + }; + pins2 { + u-boot,dm-pre-reloc; + pinmux = ; /* SDMMC2_CK */ + bias-pull-up; + drive-push-pull; + slew-rate = <2>; + }; + }; + + sdmmc2_opendrain_pins_mx: sdmmc2_opendrain_mx-0 { + u-boot,dm-pre-reloc; + pins1 { + u-boot,dm-pre-reloc; + pinmux = , /* SDMMC2_D4 */ + , /* SDMMC2_D5 */ + , /* SDMMC2_D2 */ + , /* SDMMC2_D3 */ + , /* SDMMC2_D0 */ + , /* SDMMC2_D1 */ + , /* SDMMC2_D7 */ + ; /* SDMMC2_D6 */ + bias-pull-up; + drive-push-pull; + slew-rate = <1>; + }; + pins2 { + u-boot,dm-pre-reloc; + pinmux = ; /* SDMMC2_CK */ + bias-pull-up; + drive-push-pull; + slew-rate = <2>; + }; + pins3 { + u-boot,dm-pre-reloc; + pinmux = ; /* SDMMC2_CMD */ + bias-pull-up; + drive-open-drain; + slew-rate = <1>; + }; + }; + + sdmmc2_sleep_pins_mx: sdmmc2_sleep_mx-0 { + u-boot,dm-pre-reloc; + pins { + u-boot,dm-pre-reloc; + pinmux = , /* SDMMC2_D4 */ + , /* SDMMC2_D5 */ + , /* SDMMC2_D2 */ + , /* SDMMC2_D3 */ + , /* SDMMC2_D0 */ + , /* SDMMC2_D1 */ + , /* SDMMC2_D7 */ + , /* SDMMC2_CK */ + , /* SDMMC2_D6 */ + ; /* SDMMC2_CMD */ + }; + }; + + sdmmc3_pins_mx: sdmmc3_mx-0 { + u-boot,dm-pre-reloc; + pins1 { + u-boot,dm-pre-reloc; + pinmux = , /* SDMMC3_D3 */ + , /* SDMMC3_D0 */ + , /* SDMMC3_CMD */ + , /* SDMMC3_D1 */ + ; /* SDMMC3_D2 */ + bias-disable; + drive-push-pull; + slew-rate = <1>; + }; + pins2 { + u-boot,dm-pre-reloc; + pinmux = ; /* SDMMC3_CK */ + bias-disable; + drive-push-pull; + slew-rate = <2>; + }; + }; + + sdmmc3_opendrain_pins_mx: sdmmc3_opendrain_mx-0 { + u-boot,dm-pre-reloc; + pins1 { + u-boot,dm-pre-reloc; + pinmux = , /* SDMMC3_D3 */ + , /* SDMMC3_D0 */ + , /* SDMMC3_D1 */ + ; /* SDMMC3_D2 */ + bias-disable; + drive-push-pull; + slew-rate = <1>; + }; + pins2 { + u-boot,dm-pre-reloc; + pinmux = ; /* SDMMC3_CMD */ + bias-disable; + drive-open-drain; + slew-rate = <1>; + }; + pins3 { + u-boot,dm-pre-reloc; + pinmux = ; /* SDMMC3_CK */ + bias-disable; + drive-push-pull; + slew-rate = <2>; + }; + }; + + sdmmc3_sleep_pins_mx: sdmmc3_sleep_mx-0 { + u-boot,dm-pre-reloc; + pins { + u-boot,dm-pre-reloc; + pinmux = , /* SDMMC3_D3 */ + , /* SDMMC3_D0 */ + , /* SDMMC3_CMD */ + , /* SDMMC3_D1 */ + , /* SDMMC3_D2 */ + ; /* SDMMC3_CK */ + }; + }; + + spi5_pins_mx: spi5_mx-0 { + pins { + pinmux = , /* SPI5_SCK */ + , /* SPI5_MISO */ + ; /* SPI5_MOSI */ + bias-disable; + drive-push-pull; + slew-rate = <1>; + }; + }; + + spi5_sleep_pins_mx: spi5_sleep_mx-0 { + pins { + pinmux = , /* SPI5_SCK */ + , /* SPI5_MISO */ + ; /* SPI5_MOSI */ + }; + }; + + tim5_pwm_pins_mx: tim5_pwm_mx-0 { + pins { + pinmux = ; /* TIM5_CH2 */ + bias-disable; + drive-push-pull; + slew-rate = <0>; + }; + }; + + tim5_pwm_sleep_pins_mx: tim5_pwm_sleep_mx-0 { + pins { + pinmux = ; /* TIM5_CH2 */ + }; + }; + + uart4_pins_mx: uart4_mx-0 { + u-boot,dm-pre-reloc; + pins1 { + u-boot,dm-pre-reloc; + pinmux = ; /* UART4_RX */ + bias-disable; + }; + pins2 { + u-boot,dm-pre-reloc; + pinmux = ; /* UART4_TX */ + bias-disable; + drive-push-pull; + slew-rate = <0>; + }; + }; + + uart4_sleep_pins_mx: uart4_sleep_mx-0 { + u-boot,dm-pre-reloc; + pins { + u-boot,dm-pre-reloc; + pinmux = , /* UART4_RX */ + ; /* UART4_TX */ + }; + }; + + usart2_pins_mx: usart2_mx-0 { + pins1 { + pinmux = , /* USART2_CTS */ + ; /* USART2_RX */ + bias-disable; + }; + pins2 { + pinmux = , /* USART2_RTS */ + ; /* USART2_TX */ + bias-disable; + drive-push-pull; + slew-rate = <0>; + }; + }; + + usart2_idle_pins_mx: usart2_sleep_mx-0 { + pins1 { + pinmux = , /* USART2_TX */ + , /* USART2_RTS */ + ; /* USART2_CTS_NSS */ + }; + pins2 { + pinmux = ; /* USART2_RX */ + bias-disable; + }; + }; + + usart2_sleep_pins_mx: usart2_sleep_mx-0 { + pins { + pinmux = , /* USART2_CTS */ + , /* USART2_RTS */ + , /* USART2_TX */ + ; /* USART2_RX */ + }; + }; + + m_can1_pins_mx: m_can1_sleep_mx-0 { + pins1 { + pinmux = ; /* CAN1_TX */ + slew-rate = <0>; + drive-push-pull; + bias-disable; + }; + pins2 { + pinmux = ; /* CAN1_RX */ + bias-disable; + }; + }; + + m_can1_sleep_pins_mx: m_can1_sleep-0 { + pins { + pinmux = , /* CAN1_TX */ + ; /* CAN1_RX */ + }; + }; + + + + stusb1600_pins_mx: stusb1600_mx-0 { + pins { + pinmux = ; + bias-pull-up; + }; + }; + +}; + +&pinctrl_z { + u-boot,dm-pre-reloc; + + i2c2_pins_z_mx: i2c2_mx-0 { + pins { + pinmux = ; /* I2C2_SCL */ + bias-disable; + drive-open-drain; + slew-rate = <0>; + }; + }; + + i2c2_sleep_pins_z_mx: i2c2_sleep_mx-0 { + pins { + pinmux = ; /* I2C2_SCL */ + }; + }; + + i2c4_pins_z_mx: i2c4_mx-0 { + u-boot,dm-pre-reloc; + pins { + u-boot,dm-pre-reloc; + pinmux = , /* I2C4_SCL */ + ; /* I2C4_SDA */ + bias-disable; + drive-open-drain; + slew-rate = <0>; + }; + }; + + i2c4_sleep_pins_z_mx: i2c4_sleep_mx-0 { + u-boot,dm-pre-reloc; + pins { + u-boot,dm-pre-reloc; + pinmux = , /* I2C4_SCL */ + ; /* I2C4_SDA */ + }; + }; + +}; + +&m4_rproc { + memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>, + <&vdev0vring1>, <&vdev0buffer>; + mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>; + mbox-names = "vq0", "vq1", "shutdown"; + interrupt-parent = <&exti>; + interrupts = <68 1>; + interrupt-names = "wdg"; + wakeup-source; + recovery; + status = "okay"; +}; + +&bsec{ + status = "okay"; + +}; + +&dcmi{ + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&dcmi_pins_mx>; + pinctrl-1 = <&dcmi_sleep_pins_mx>; + status = "okay"; + + + + port { + dcmi_0: endpoint { + remote-endpoint = <&ov5640_0>; + bus-width = <8>; + hsync-active = <0>; + vsync-active = <0>; + pclk-sample = <1>; + pclk-max-frequency = <77000000>; + }; + }; + +}; + +&dsi{ + status = "okay"; + + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + dsi_in: endpoint { + remote-endpoint = <<dc_ep1_out>; + }; + }; + + port@1 { + reg = <1>; + dsi_out: endpoint { + remote-endpoint = <&panel_in>; + }; + }; + }; + + panel@0 { + compatible = "orisetech,otm8009a"; + reg = <0>; + reset-gpios = <&gpioe 9 GPIO_ACTIVE_LOW>; + power-supply = <&v3v3>; + status = "okay"; + + port { + panel_in: endpoint { + remote-endpoint = <&dsi_out>; + }; + }; + }; + + +}; + +ðernet0{ + pinctrl-names = "default", "sleep"; + pinctrl-0 = <ð1_pins_mx>; + pinctrl-1 = <ð1_sleep_pins_mx>; + status = "okay"; + + + st,eth_clk_sel = <1>; + phy-mode = "rgmii-id"; + max-speed = <1000>; + phy-handle = <&phy0>; + + mdio0 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "snps,dwmac-mdio"; + phy0: ethernet-phy@0 { + reg = <3>; + }; + }; + +}; + +&gpu{ + status = "okay"; + + + contiguous-area = <&gpu_reserved>; + +}; + +&hsem{ + status = "okay"; + +}; + +&i2c1{ + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&i2c1_pins_mx>; + pinctrl-1 = <&i2c1_sleep_pins_mx>; + status = "okay"; + + + + i2c-scl-rising-time-ns = <100>; + i2c-scl-falling-time-ns = <7>; + + /delete-property/dmas; + /delete-property/dma-names; + + + touchscreen@2a { + compatible = "focaltech,ft6236"; + reg = <0x2a>; + interrupts = <2 2>; + interrupt-parent = <&gpiof>; + interrupt-controller; + touchscreen-size-x = <480>; + touchscreen-size-y = <800>; + status = "okay"; + }; + touchscreen@38 { + compatible = "focaltech,ft6336"; + reg = <0x38>; + interrupts = <2 2>; + interrupt-parent = <&gpiof>; + interrupt-controller; + touchscreen-size-x = <480>; + touchscreen-size-y = <800>; + status = "okay"; + }; + hdmi-transmitter@39 { + compatible = "sil,sii9022"; + reg = <0x39>; + reset-gpios = <&gpiog 0 GPIO_ACTIVE_LOW>; + interrupts = <1 IRQ_TYPE_EDGE_FALLING>; + interrupt-parent = <&gpiog>; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <<dc_pins_mx>; + pinctrl-1 = <<dc_sleep_pins_mx>; + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + sii9022_in: endpoint { + remote-endpoint = <<dc_ep0_out>; + }; + }; + + port@1 { + reg = <1>; + sii9022_tx_endpoint: endpoint { + remote-endpoint = <&i2s2_endpoint>; + }; + }; + }; + }; + +}; + +&i2c2{ + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&i2c2_pins_mx &i2c2_pins_z_mx>; + pinctrl-1 = <&i2c2_sleep_pins_mx &i2c2_sleep_pins_z_mx>; + status = "okay"; + + i2c-scl-rising-time-ns = <185>; + i2c-scl-falling-time-ns = <20>; + + /delete-property/dmas; + /delete-property/dma-names; + + ov5640: camera@3c { + compatible = "ovti,ov5640"; + reg = <0x3c>; + clocks = <&clk_ext_camera>; + clock-names = "xclk"; + DOVDD-supply = <&v3v3>; + rotation = <180>; + status = "okay"; + + port { + ov5640_0: endpoint { + remote-endpoint = <&dcmi_0>; + bus-width = <8>; + data-shift = <2>; /* lines 9:2 are used */ + hsync-active = <0>; + vsync-active = <0>; + pclk-sample = <1>; + pclk-max-frequency = <77000000>; + }; + }; + }; + +}; + +&i2c4{ + u-boot,dm-pre-reloc; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&i2c4_pins_z_mx>; + pinctrl-1 = <&i2c4_sleep_pins_z_mx>; + status = "okay"; + + + i2c-scl-rising-time-ns = <185>; + i2c-scl-falling-time-ns = <20>; + /delete-property/dmas; + /delete-property/dma-names; + + typec: stusb1600@28 { + compatible = "st,stusb1600"; + reg = <0x28>; + interrupt-parent = <&gpioe>; + interrupts = <8 IRQ_TYPE_EDGE_FALLING>; + pinctrl-0 = <&stusb1600_pins_mx>; + pinctrl-names = "default"; + status = "okay"; + + typec_con: connector { + compatible = "usb-c-connector"; + label = "USB-C"; + power-role = "dual"; + power-opmode = "default"; + }; + }; + + pmic: stpmic@33 { + compatible = "st,stpmic1"; + reg = <0x33>; + interrupts-extended = <&exti_pwr 55 IRQ_TYPE_EDGE_FALLING>; + interrupt-controller; + #interrupt-cells = <2>; + status = "okay"; + + st,main-control-register = <0x04>; + st,vin-control-register = <0xc0>; + st,usb-control-register = <0x20>; + + regulators { + compatible = "st,stpmic1-regulators"; + + ldo1-supply = <&v3v3>; + ldo3-supply = <&vdd_ddr>; + ldo6-supply = <&v3v3>; + pwr_sw1-supply = <&bst_out>; + pwr_sw2-supply = <&bst_out>; + + vddcore: buck1 { + regulator-name = "vddcore"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1350000>; + regulator-always-on; + regulator-initial-mode = <0>; + regulator-over-current-protection; + }; + + vdd_ddr: buck2 { + regulator-name = "vdd_ddr"; + regulator-min-microvolt = <1350000>; + regulator-max-microvolt = <1350000>; + regulator-always-on; + regulator-initial-mode = <0>; + regulator-over-current-protection; + }; + + vdd: buck3 { + regulator-name = "vdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + st,mask-reset; + regulator-initial-mode = <0>; + regulator-over-current-protection; + }; + + v3v3: buck4 { + regulator-name = "v3v3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + regulator-over-current-protection; + regulator-initial-mode = <0>; + }; + + v1v8_ldo1: ldo1 { + regulator-name = "v1v8_ldo1"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + interrupts = ; + + }; + + v2v8_ldo2: ldo2 { //custom + regulator-name = "v2v8_ldo2"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-always-on; + interrupts = ; + + }; + + vtt_ddr: ldo3 { + regulator-name = "vtt_ddr"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <750000>; + regulator-always-on; + regulator-over-current-protection; + }; + + vdd_usb: ldo4 { + regulator-name = "vdd_usb"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + interrupts = ; + }; + + v3v3_eth: ldo5 { + regulator-name = "v3v3_eth"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + interrupts = ; + regulator-boot-on; + }; + + v3v3_dsi: ldo6 { + regulator-name = "v3v3_dsi"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + interrupts = ; + + }; + + vref_ddr: vref_ddr { + regulator-name = "vref_ddr"; + regulator-always-on; + regulator-over-current-protection; + }; + + bst_out: boost { + regulator-name = "bst_out"; + interrupts = ; + regulator-always-on; + }; + + vbus_otg: pwr_sw1 { + regulator-name = "vbus_otg"; + interrupts = ; + regulator-active-discharge; + regulator-always-on; + }; + + vbus_sw: pwr_sw2 { + regulator-name = "vbus_sw"; + interrupts = ; + regulator-active-discharge; + regulator-always-on; + }; + }; + + onkey { + compatible = "st,stpmic1-onkey"; + interrupts = , ; + interrupt-names = "onkey-falling", "onkey-rising"; + status = "okay"; + }; + + watchdog { + compatible = "st,stpmic1-wdt"; + status = "disabled"; + }; + }; +}; + +&i2c5{ + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&i2c5_pins_mx>; + pinctrl-1 = <&i2c5_sleep_pins_mx>; + status = "okay"; + + /delete-property/dmas; + /delete-property/dma-names; + +}; + +&i2s2{ + clocks = <&rcc SPI2>, <&rcc SPI2_K>, <&rcc PLL3_Q>, <&rcc PLL3_R>; + clock-names = "pclk", "i2sclk", "x8k", "x11k"; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&i2s2_pins_mx>; + pinctrl-1 = <&i2s2_sleep_pins_mx>; + status = "okay"; + + i2s2_port: port { + i2s2_endpoint: endpoint { + remote-endpoint = <&sii9022_tx_endpoint>; + format = "i2s"; + mclk-fs = <256>; + }; + }; + +}; + +&ipcc{ + status = "okay"; + +}; + +&iwdg2{ + status = "okay"; + + + timeout-sec = <32>; + +}; + +<dc{ + + status = "okay"; + + port { + #address-cells = <1>; + #size-cells = <0>; + + ltdc_ep0_out: endpoint@0 { + reg = <0>; + remote-endpoint = <&sii9022_in>; + }; + + ltdc_ep1_out: endpoint@1 { + reg = <1>; + remote-endpoint = <&dsi_in>; + }; + + }; + +}; + +&pwr{ + status = "okay"; + + + pwr-regulators { + vdd-supply = <&vdd>; + vdd_3v3_usbfs-supply = <&vdd_usb>; + }; + +}; + +&rcc{ + u-boot,dm-pre-reloc; + status = "okay"; + +}; + +&rng1{ + status = "okay"; + +}; + +&rtc{ + status = "okay"; + st,lsco = ; +}; + +&sdmmc1{ + u-boot,dm-pre-reloc; + pinctrl-names = "default", "opendrain", "sleep"; + pinctrl-0 = <&sdmmc1_pins_mx>; + pinctrl-1 = <&sdmmc1_opendrain_pins_mx>; + pinctrl-2 = <&sdmmc1_sleep_pins_mx>; + status = "okay"; + broken-cd; + st,neg-edge; + bus-width = <4>; + vmmc-supply = <&v3v3>; + +}; + +&sdmmc2{ + u-boot,dm-pre-reloc; + pinctrl-names = "default", "opendrain", "sleep"; + pinctrl-0 = <&sdmmc2_pins_mx>; + pinctrl-1 = <&sdmmc2_opendrain_pins_mx>; + pinctrl-2 = <&sdmmc2_sleep_pins_mx>; + status = "okay"; + non-removable; + no-sd; + no-sdio; + st,neg-edge; + bus-width = <8>; + vmmc-supply = <&v3v3>; + vqmmc-supply = <&v3v3>; + mmc-ddr-3_3v; + +}; + +&sdmmc3{ + u-boot,dm-pre-reloc; + pinctrl-names = "default", "opendrain", "sleep"; + pinctrl-0 = <&sdmmc3_pins_mx>; + pinctrl-1 = <&sdmmc3_opendrain_pins_mx>; + pinctrl-2 = <&sdmmc3_sleep_pins_mx>; + status = "okay"; + + + arm,primecell-periphid = <0x10153180>; + non-removable; + st,neg-edge; + bus-width = <4>; + vmmc-supply = <&v3v3>; + mmc-pwrseq = <&wifi_pwrseq>; + #address-cells = <1>; + #size-cells = <0>; + keep-power-in-suspend; + status = "okay"; + + brcmf: bcrmf@1 { + reg = <1>; + compatible = "brcm,bcm4329-fmac"; + status = "okay"; + }; + +}; + +&tamp{ + status = "okay"; + +}; + +&timers5 { + /delete-property/dmas; + /delete-property/dma-names; + status = "okay"; + pwm { + pinctrl-0 = <&tim5_pwm_pins_mx>; + pinctrl-1 = <&tim5_pwm_sleep_pins_mx>; + pinctrl-names = "default", "sleep"; + status = "okay"; + }; + timer@4 { + status = "okay"; + }; +}; + +&uart4{ + u-boot,dm-pre-reloc; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&uart4_pins_mx>; + pinctrl-1 = <&uart4_sleep_pins_mx>; + status = "okay"; + +}; + +&usart2{ + pinctrl-names = "default", "sleep", "idle"; + pinctrl-0 = <&usart2_pins_mx>; + pinctrl-1 = <&usart2_sleep_pins_mx>; + pinctrl-2 = <&usart2_idle_pins_mx>; + st,hw-flow-ctrl; + status = "okay"; + + bluetooth { + shutdown-gpios = <&gpioe 10 GPIO_ACTIVE_HIGH>; + compatible = "brcm,bcm43438-bt"; + max-speed = <3000000>; + }; +}; + + +&m4_rproc { +memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>, + <&vdev0vring1>, <&vdev0buffer>; +}; + +&dma1 { + sram = <&dma_pool>; +}; + +&dma2 { + sram = <&dma_pool>; +}; + + +&usbh_ehci { + phys = <&usbphyc_port0>; + phy-names = "usb"; + status = "okay"; +}; + +&usbh_ohci{ + phys = <&usbphyc_port0>; + phy-names = "usb"; + status = "okay"; +}; + +&usbotg_hs { + extcon = <&typec>; + phys = <&usbphyc_port1 0>; + phy-names = "usb2-phy"; + status = "okay"; +}; + +&usbphyc { + vdd3v3-supply = <&vdd_usb>; + status = "okay"; +}; + +&usbphyc_port0 { + st,phy-tuning = <&usb_phy_tuning>; +}; + +&usbphyc_port1 { + st,phy-tuning = <&usb_phy_tuning>; +}; + +&spi5 { + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&spi5_pins_mx>; + pinctrl-1 = <&spi5_sleep_pins_mx>; + cs-gpios = <&gpiof 6 0>; + status = "okay"; + + spidev: spidev@0 { + compatible = "rohm,dh2228fv"; + spi-max-frequency = <30000000>; + reg = <0>; + }; +}; + +// WARNING: Do not try to enable DAC1 and DCMI +// This devices share the same pin PA4 +&dac { + pinctrl-names = "default"; + vref-supply = <&vrefbuf>; + status = "okay"; + dac1: dac@1 { + pinctrl-0 = <&dac_ch1_pins_a>; + status = "disabled"; + }; + dac2: dac@2 { + pinctrl-0 = <&dac_ch2_pins_a>; + status = "okay"; + }; +}; + +&adc { + vdd-supply = <&vdd>; + vdda-supply = <&vdd>; + vref-supply = <&v3v3_eth>; + status = "okay"; + adc1: adc@0 { + st,adc-channels = <0 1>; //ANA0 ANA1 + status = "okay"; + }; + adc2: adc@100 { + //st,adc-channels = <0 1 2 6 12 18 19>; + status = "okay"; + }; +}; + +&m_can1 { + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&m_can1_pins_mx>; + pinctrl-1 = <&m_can1_sleep_pins_mx>; + status = "okay"; +}; diff --git a/board/octavo/osd32mp1-red/linux-dts/stm32mp157c-osd32mp1-red.dtsi b/board/octavo/osd32mp1-red/linux-dts/stm32mp157c-osd32mp1-red.dtsi new file mode 100644 index 000000000..b1e630395 --- /dev/null +++ b/board/octavo/osd32mp1-red/linux-dts/stm32mp157c-osd32mp1-red.dtsi @@ -0,0 +1,2077 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) +/*// + * Copyright (C) STMicroelectronics 2017 - All Rights Reserved + * Author: Ludovic Barre for STMicroelectronics. + */ +#include +#include +#include +#include + +/ { + #address-cells = <1>; + #size-cells = <1>; + + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu0: cpu@0 { + compatible = "arm,cortex-a7"; + device_type = "cpu"; + reg = <0>; + clocks = <&rcc CK_MPU>; + clock-names = "cpu"; + operating-points-v2 = <&cpu0_opp_table>; + nvmem-cells = <&part_number_otp>; + nvmem-cell-names = "part_number"; + }; + + cpu1: cpu@1 { + compatible = "arm,cortex-a7"; + device_type = "cpu"; + reg = <1>; + clocks = <&rcc CK_MPU>; + clock-names = "cpu"; + operating-points-v2 = <&cpu0_opp_table>; + }; + }; + + cpu0_opp_table: cpu0-opp-table { + compatible = "operating-points-v2"; + opp-shared; + + opp-650000000 { + opp-hz = /bits/ 64 <650000000>; + opp-microvolt = <1200000>; + opp-supported-hw = <0x1>; + }; + opp-800000000 { + opp-hz = /bits/ 64 <800000000>; + opp-microvolt = <1350000>; + opp-supported-hw = <0x2>; + }; + }; + + arm-pmu { + compatible = "arm,cortex-a7-pmu"; + interrupts = , + ; + interrupt-affinity = <&cpu0>, <&cpu1>; + interrupt-parent = <&intc>; + }; + + psci { + compatible = "arm,psci-1.0"; + method = "smc"; + }; + + intc: interrupt-controller@a0021000 { + compatible = "arm,cortex-a7-gic"; + #interrupt-cells = <3>; + interrupt-controller; + reg = <0xa0021000 0x1000>, + <0xa0022000 0x2000>; + }; + + timer { + compatible = "arm,armv7-timer"; + interrupts = , + , + , + ; + interrupt-parent = <&intc>; + always-on; + }; + + clocks { + clk_hse: clk-hse { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <24000000>; + }; + + clk_hsi: clk-hsi { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <64000000>; + }; + + clk_lse: clk-lse { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <32768>; + }; + + clk_lsi: clk-lsi { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <32000>; + }; + + clk_csi: clk-csi { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <4000000>; + }; + + clk_i2s_ckin: i2s_ckin { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; + }; + + clk_dsi_phy: ck_dsi_phy { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; + }; + }; + + pm_domain { + #address-cells = <1>; + #size-cells = <0>; + compatible = "st,stm32mp157c-pd"; + + pd_core_ret: core-ret-power-domain@1 { + #address-cells = <1>; + #size-cells = <0>; + reg = <1>; + #power-domain-cells = <0>; + label = "CORE-RETENTION"; + + pd_core: core-power-domain@2 { + reg = <2>; + #power-domain-cells = <0>; + label = "CORE"; + }; + }; + }; + + thermal-zones { + cpu_thermal: cpu-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&dts>; + + trips { + cpu-crit { + temperature = <120000>; + hysteresis = <0>; + type = "critical"; + }; + }; + + cooling-maps { + }; + }; + }; + + reboot { + compatible = "syscon-reboot"; + regmap = <&rcc>; + offset = <0x404>; + mask = <0x1>; + }; + + replicator { + /* + * non-configurable replicators don't show up on the + * AMBA bus. As such no need to add "arm,primecell" + */ + compatible = "arm,coresight-replicator"; + clocks = <&rcc CK_TRACE>; + clock-names = "apb_pclk"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + /* replicator output ports */ + port@0 { + reg = <0>; + replicator_out_port0: endpoint { + remote-endpoint = <&funnel_in_port4>; + }; + }; + }; + }; + + soc { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + interrupt-parent = <&intc>; + ranges; + + timers2: timer@40000000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "st,stm32-timers"; + reg = <0x40000000 0x400>; + clocks = <&rcc TIM2_K>; + clock-names = "int"; + dmas = <&dmamux1 18 0x400 0x5>, + <&dmamux1 19 0x400 0x5>, + <&dmamux1 20 0x400 0x5>, + <&dmamux1 21 0x400 0x5>, + <&dmamux1 22 0x400 0x5>; + dma-names = "ch1", "ch2", "ch3", "ch4", "up"; + status = "disabled"; + + pwm { + compatible = "st,stm32-pwm"; + #pwm-cells = <3>; + status = "disabled"; + }; + + timer@1 { + compatible = "st,stm32h7-timer-trigger"; + reg = <1>; + status = "disabled"; + }; + }; + + timers3: timer@40001000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "st,stm32-timers"; + reg = <0x40001000 0x400>; + clocks = <&rcc TIM3_K>; + clock-names = "int"; + dmas = <&dmamux1 23 0x400 0x5>, + <&dmamux1 24 0x400 0x5>, + <&dmamux1 25 0x400 0x5>, + <&dmamux1 26 0x400 0x5>, + <&dmamux1 27 0x400 0x5>, + <&dmamux1 28 0x400 0x5>; + dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig"; + status = "disabled"; + + pwm { + compatible = "st,stm32-pwm"; + #pwm-cells = <3>; + status = "disabled"; + }; + + timer@2 { + compatible = "st,stm32h7-timer-trigger"; + reg = <2>; + status = "disabled"; + }; + }; + + timers4: timer@40002000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "st,stm32-timers"; + reg = <0x40002000 0x400>; + clocks = <&rcc TIM4_K>; + clock-names = "int"; + dmas = <&dmamux1 29 0x400 0x5>, + <&dmamux1 30 0x400 0x5>, + <&dmamux1 31 0x400 0x5>, + <&dmamux1 32 0x400 0x5>; + dma-names = "ch1", "ch2", "ch3", "ch4"; + status = "disabled"; + + pwm { + compatible = "st,stm32-pwm"; + #pwm-cells = <3>; + status = "disabled"; + }; + + timer@3 { + compatible = "st,stm32h7-timer-trigger"; + reg = <3>; + status = "disabled"; + }; + }; + + timers5: timer@40003000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "st,stm32-timers"; + reg = <0x40003000 0x400>; + clocks = <&rcc TIM5_K>; + clock-names = "int"; + dmas = <&dmamux1 55 0x400 0x5>, + <&dmamux1 56 0x400 0x5>, + <&dmamux1 57 0x400 0x5>, + <&dmamux1 58 0x400 0x5>, + <&dmamux1 59 0x400 0x5>, + <&dmamux1 60 0x400 0x5>; + dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig"; + status = "disabled"; + + pwm { + compatible = "st,stm32-pwm"; + #pwm-cells = <3>; + status = "disabled"; + }; + + timer@4 { + compatible = "st,stm32h7-timer-trigger"; + reg = <4>; + status = "disabled"; + }; + }; + + timers6: timer@40004000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "st,stm32-timers"; + reg = <0x40004000 0x400>; + clocks = <&rcc TIM6_K>; + clock-names = "int"; + dmas = <&dmamux1 69 0x400 0x5>; + dma-names = "up"; + status = "disabled"; + + timer@5 { + compatible = "st,stm32h7-timer-trigger"; + reg = <5>; + status = "disabled"; + }; + }; + + timers7: timer@40005000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "st,stm32-timers"; + reg = <0x40005000 0x400>; + clocks = <&rcc TIM7_K>; + clock-names = "int"; + dmas = <&dmamux1 70 0x400 0x5>; + dma-names = "up"; + status = "disabled"; + + timer@6 { + compatible = "st,stm32h7-timer-trigger"; + reg = <6>; + status = "disabled"; + }; + }; + + timers12: timer@40006000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "st,stm32-timers"; + reg = <0x40006000 0x400>; + clocks = <&rcc TIM12_K>; + clock-names = "int"; + status = "disabled"; + + pwm { + compatible = "st,stm32-pwm"; + #pwm-cells = <3>; + status = "disabled"; + }; + + timer@11 { + compatible = "st,stm32h7-timer-trigger"; + reg = <11>; + status = "disabled"; + }; + }; + + timers13: timer@40007000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "st,stm32-timers"; + reg = <0x40007000 0x400>; + clocks = <&rcc TIM13_K>; + clock-names = "int"; + status = "disabled"; + + pwm { + compatible = "st,stm32-pwm"; + #pwm-cells = <3>; + status = "disabled"; + }; + + timer@12 { + compatible = "st,stm32h7-timer-trigger"; + reg = <12>; + status = "disabled"; + }; + }; + + timers14: timer@40008000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "st,stm32-timers"; + reg = <0x40008000 0x400>; + clocks = <&rcc TIM14_K>; + clock-names = "int"; + status = "disabled"; + + pwm { + compatible = "st,stm32-pwm"; + #pwm-cells = <3>; + status = "disabled"; + }; + + timer@13 { + compatible = "st,stm32h7-timer-trigger"; + reg = <13>; + status = "disabled"; + }; + }; + + lptimer1: timer@40009000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "st,stm32-lptimer"; + reg = <0x40009000 0x400>; + clocks = <&rcc LPTIM1_K>; + clock-names = "mux"; + power-domains = <&pd_core>; + status = "disabled"; + + pwm { + compatible = "st,stm32-pwm-lp"; + #pwm-cells = <3>; + status = "disabled"; + }; + + trigger@0 { + compatible = "st,stm32-lptimer-trigger"; + reg = <0>; + status = "disabled"; + }; + + counter { + compatible = "st,stm32-lptimer-counter"; + status = "disabled"; + }; + }; + + spi2: spi@4000b000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "st,stm32h7-spi"; + reg = <0x4000b000 0x400>; + interrupts = ; + clocks = <&rcc SPI2_K>; + resets = <&rcc SPI2_R>; + dmas = <&dmamux1 39 0x400 0x01>, + <&dmamux1 40 0x400 0x01>; + dma-names = "rx", "tx"; + power-domains = <&pd_core>; + status = "disabled"; + }; + + i2s2: audio-controller@4000b000 { + compatible = "st,stm32h7-i2s"; + #sound-dai-cells = <0>; + reg = <0x4000b000 0x400>; + interrupts = ; + dmas = <&dmamux1 39 0x400 0x01>, + <&dmamux1 40 0x400 0x01>; + dma-names = "rx", "tx"; + status = "disabled"; + }; + + spi3: spi@4000c000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "st,stm32h7-spi"; + reg = <0x4000c000 0x400>; + interrupts = ; + clocks = <&rcc SPI3_K>; + resets = <&rcc SPI3_R>; + dmas = <&dmamux1 61 0x400 0x01>, + <&dmamux1 62 0x400 0x01>; + dma-names = "rx", "tx"; + power-domains = <&pd_core>; + status = "disabled"; + }; + + i2s3: audio-controller@4000c000 { + compatible = "st,stm32h7-i2s"; + #sound-dai-cells = <0>; + reg = <0x4000c000 0x400>; + interrupts = ; + dmas = <&dmamux1 61 0x400 0x01>, + <&dmamux1 62 0x400 0x01>; + dma-names = "rx", "tx"; + status = "disabled"; + }; + + spdifrx: audio-controller@4000d000 { + compatible = "st,stm32h7-spdifrx"; + #sound-dai-cells = <0>; + reg = <0x4000d000 0x400>; + clocks = <&rcc SPDIF_K>; + clock-names = "kclk"; + interrupts = ; + dmas = <&dmamux1 93 0x400 0x01>, + <&dmamux1 94 0x400 0x01>; + dma-names = "rx", "rx-ctrl"; + status = "disabled"; + }; + + usart2: serial@4000e000 { + compatible = "st,stm32h7-uart"; + reg = <0x4000e000 0x400>; + interrupt-names = "event", "wakeup"; + interrupts-extended = <&intc GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>, + <&exti 27 1>; + clocks = <&rcc USART2_K>; + resets = <&rcc USART2_R>; + wakeup-source; + power-domains = <&pd_core>; + dmas = <&dmamux1 43 0x400 0x21>, + <&dmamux1 44 0x400 0x1>; + dma-names = "rx", "tx"; + status = "disabled"; + }; + + usart3: serial@4000f000 { + compatible = "st,stm32h7-uart"; + reg = <0x4000f000 0x400>; + interrupt-names = "event", "wakeup"; + interrupts-extended = <&intc GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>, + <&exti 28 1>; + clocks = <&rcc USART3_K>; + resets = <&rcc USART3_R>; + wakeup-source; + power-domains = <&pd_core>; + dmas = <&dmamux1 45 0x400 0x21>, + <&dmamux1 46 0x400 0x1>; + dma-names = "rx", "tx"; + status = "disabled"; + }; + + uart4: serial@40010000 { + compatible = "st,stm32h7-uart"; + reg = <0x40010000 0x400>; + interrupt-names = "event", "wakeup"; + interrupts-extended = <&intc GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>, + <&exti 30 1>; + clocks = <&rcc UART4_K>; + resets = <&rcc UART4_R>; + wakeup-source; + power-domains = <&pd_core>; + dmas = <&dmamux1 63 0x400 0x21>, + <&dmamux1 64 0x400 0x1>; + dma-names = "rx", "tx"; + status = "disabled"; + }; + + uart5: serial@40011000 { + compatible = "st,stm32h7-uart"; + reg = <0x40011000 0x400>; + interrupt-names = "event", "wakeup"; + interrupts-extended = <&intc GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, + <&exti 31 1>; + clocks = <&rcc UART5_K>; + resets = <&rcc UART5_R>; + wakeup-source; + power-domains = <&pd_core>; + dmas = <&dmamux1 65 0x400 0x21>, + <&dmamux1 66 0x400 0x1>; + dma-names = "rx", "tx"; + status = "disabled"; + }; + + i2c1: i2c@40012000 { + compatible = "st,stm32f7-i2c"; + reg = <0x40012000 0x400>; + interrupt-names = "event", "error", "wakeup"; + interrupts-extended = <&intc GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>, + <&intc GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>, + <&exti 21 1>; + clocks = <&rcc I2C1_K>; + resets = <&rcc I2C1_R>; + #address-cells = <1>; + #size-cells = <0>; + dmas = <&dmamux1 33 0x400 0x05>, + <&dmamux1 34 0x400 0x05>; + dma-names = "rx", "tx"; + power-domains = <&pd_core>; + st,syscfg-fmp = <&syscfg 0x4 0x1>; + st,syscfg-fmp-clr = <&syscfg 0x44 0x1>; + status = "disabled"; + }; + + i2c2: i2c@40013000 { + compatible = "st,stm32f7-i2c"; + reg = <0x40013000 0x400>; + interrupt-names = "event", "error", "wakeup"; + interrupts-extended = <&intc GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>, + <&intc GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>, + <&exti 22 1>; + clocks = <&rcc I2C2_K>; + resets = <&rcc I2C2_R>; + #address-cells = <1>; + #size-cells = <0>; + dmas = <&dmamux1 35 0x400 0x05>, + <&dmamux1 36 0x400 0x05>; + dma-names = "rx", "tx"; + power-domains = <&pd_core>; + st,syscfg-fmp = <&syscfg 0x4 0x2>; + st,syscfg-fmp-clr = <&syscfg 0x44 0x2>; + status = "disabled"; + }; + + i2c3: i2c@40014000 { + compatible = "st,stm32f7-i2c"; + reg = <0x40014000 0x400>; + interrupt-names = "event", "error", "wakeup"; + interrupts-extended = <&intc GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, + <&intc GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>, + <&exti 23 1>; + clocks = <&rcc I2C3_K>; + resets = <&rcc I2C3_R>; + #address-cells = <1>; + #size-cells = <0>; + dmas = <&dmamux1 73 0x400 0x05>, + <&dmamux1 74 0x400 0x05>; + dma-names = "rx", "tx"; + power-domains = <&pd_core>; + st,syscfg-fmp = <&syscfg 0x4 0x4>; + st,syscfg-fmp-clr = <&syscfg 0x44 0x4>; + status = "disabled"; + }; + + i2c5: i2c@40015000 { + compatible = "st,stm32f7-i2c"; + reg = <0x40015000 0x400>; + interrupt-names = "event", "error", "wakeup"; + interrupts-extended = <&intc GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>, + <&intc GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>, + <&exti 25 1>; + clocks = <&rcc I2C5_K>; + resets = <&rcc I2C5_R>; + #address-cells = <1>; + #size-cells = <0>; + dmas = <&dmamux1 115 0x400 0x05>, + <&dmamux1 116 0x400 0x05>; + dma-names = "rx", "tx"; + power-domains = <&pd_core>; + st,syscfg-fmp = <&syscfg 0x4 0x10>; + st,syscfg-fmp-clr = <&syscfg 0x44 0x10>; + status = "disabled"; + }; + + cec: cec@40016000 { + compatible = "st,stm32-cec"; + reg = <0x40016000 0x400>; + interrupts = ; + clocks = <&rcc CEC_K>, <&rcc CEC>; + clock-names = "cec", "hdmi-cec"; + power-domains = <&pd_core>; + status = "disabled"; + }; + + dac: dac@40017000 { + compatible = "st,stm32h7-dac-core"; + reg = <0x40017000 0x400>; + clocks = <&rcc DAC12>; + clock-names = "pclk"; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + + dac1: dac@1 { + compatible = "st,stm32-dac"; + #io-channels-cells = <1>; + reg = <1>; + status = "disabled"; + }; + + dac2: dac@2 { + compatible = "st,stm32-dac"; + #io-channels-cells = <1>; + reg = <2>; + status = "disabled"; + }; + }; + + uart7: serial@40018000 { + compatible = "st,stm32h7-uart"; + reg = <0x40018000 0x400>; + interrupt-names = "event", "wakeup"; + interrupts-extended = <&intc GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>, + <&exti 32 1>; + clocks = <&rcc UART7_K>; + resets = <&rcc UART7_R>; + wakeup-source; + power-domains = <&pd_core>; + dmas = <&dmamux1 79 0x400 0x21>, + <&dmamux1 80 0x400 0x1>; + dma-names = "rx", "tx"; + status = "disabled"; + }; + + uart8: serial@40019000 { + compatible = "st,stm32h7-uart"; + reg = <0x40019000 0x400>; + interrupt-names = "event", "wakeup"; + interrupts-extended = <&intc GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>, + <&exti 33 1>; + clocks = <&rcc UART8_K>; + resets = <&rcc UART8_R>; + wakeup-source; + power-domains = <&pd_core>; + dmas = <&dmamux1 81 0x400 0x21>, + <&dmamux1 82 0x400 0x1>; + dma-names = "rx", "tx"; + status = "disabled"; + }; + + timers1: timer@44000000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "st,stm32-timers"; + reg = <0x44000000 0x400>; + clocks = <&rcc TIM1_K>; + clock-names = "int"; + dmas = <&dmamux1 11 0x400 0x5>, + <&dmamux1 12 0x400 0x5>, + <&dmamux1 13 0x400 0x5>, + <&dmamux1 14 0x400 0x5>, + <&dmamux1 15 0x400 0x5>, + <&dmamux1 16 0x400 0x5>, + <&dmamux1 17 0x400 0x5>; + dma-names = "ch1", "ch2", "ch3", "ch4", + "up", "trig", "com"; + status = "disabled"; + + pwm { + compatible = "st,stm32-pwm"; + #pwm-cells = <3>; + status = "disabled"; + }; + + timer@0 { + compatible = "st,stm32h7-timer-trigger"; + reg = <0>; + status = "disabled"; + }; + }; + + timers8: timer@44001000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "st,stm32-timers"; + reg = <0x44001000 0x400>; + clocks = <&rcc TIM8_K>; + clock-names = "int"; + dmas = <&dmamux1 47 0x400 0x5>, + <&dmamux1 48 0x400 0x5>, + <&dmamux1 49 0x400 0x5>, + <&dmamux1 50 0x400 0x5>, + <&dmamux1 51 0x400 0x5>, + <&dmamux1 52 0x400 0x5>, + <&dmamux1 53 0x400 0x5>; + dma-names = "ch1", "ch2", "ch3", "ch4", + "up", "trig", "com"; + status = "disabled"; + + pwm { + compatible = "st,stm32-pwm"; + #pwm-cells = <3>; + status = "disabled"; + }; + + timer@7 { + compatible = "st,stm32h7-timer-trigger"; + reg = <7>; + status = "disabled"; + }; + }; + + usart6: serial@44003000 { + compatible = "st,stm32h7-uart"; + reg = <0x44003000 0x400>; + interrupt-names = "event", "wakeup"; + interrupts-extended = <&intc GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>, + <&exti 29 1>; + clocks = <&rcc USART6_K>; + resets = <&rcc USART6_R>; + wakeup-source; + power-domains = <&pd_core>; + dmas = <&dmamux1 71 0x400 0x21>, + <&dmamux1 72 0x400 0x1>; + dma-names = "rx", "tx"; + status = "disabled"; + }; + + spi1: spi@44004000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "st,stm32h7-spi"; + reg = <0x44004000 0x400>; + interrupts = ; + clocks = <&rcc SPI1_K>; + resets = <&rcc SPI1_R>; + dmas = <&dmamux1 37 0x400 0x01>, + <&dmamux1 38 0x400 0x01>; + dma-names = "rx", "tx"; + power-domains = <&pd_core>; + status = "disabled"; + }; + + i2s1: audio-controller@44004000 { + compatible = "st,stm32h7-i2s"; + #sound-dai-cells = <0>; + reg = <0x44004000 0x400>; + interrupts = ; + dmas = <&dmamux1 37 0x400 0x01>, + <&dmamux1 38 0x400 0x01>; + dma-names = "rx", "tx"; + status = "disabled"; + }; + + spi4: spi@44005000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "st,stm32h7-spi"; + reg = <0x44005000 0x400>; + interrupts = ; + clocks = <&rcc SPI4_K>; + resets = <&rcc SPI4_R>; + dmas = <&dmamux1 83 0x400 0x01>, + <&dmamux1 84 0x400 0x01>; + dma-names = "rx", "tx"; + power-domains = <&pd_core>; + status = "disabled"; + }; + + timers15: timer@44006000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "st,stm32-timers"; + reg = <0x44006000 0x400>; + clocks = <&rcc TIM15_K>; + clock-names = "int"; + dmas = <&dmamux1 105 0x400 0x5>, + <&dmamux1 106 0x400 0x5>, + <&dmamux1 107 0x400 0x5>, + <&dmamux1 108 0x400 0x5>; + dma-names = "ch1", "up", "trig", "com"; + status = "disabled"; + + pwm { + compatible = "st,stm32-pwm"; + #pwm-cells = <3>; + status = "disabled"; + }; + + timer@14 { + compatible = "st,stm32h7-timer-trigger"; + reg = <14>; + status = "disabled"; + }; + }; + + timers16: timer@44007000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "st,stm32-timers"; + reg = <0x44007000 0x400>; + clocks = <&rcc TIM16_K>; + clock-names = "int"; + dmas = <&dmamux1 109 0x400 0x5>, + <&dmamux1 110 0x400 0x5>; + dma-names = "ch1", "up"; + status = "disabled"; + + pwm { + compatible = "st,stm32-pwm"; + #pwm-cells = <3>; + status = "disabled"; + }; + timer@15 { + compatible = "st,stm32h7-timer-trigger"; + reg = <15>; + status = "disabled"; + }; + }; + + timers17: timer@44008000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "st,stm32-timers"; + reg = <0x44008000 0x400>; + clocks = <&rcc TIM17_K>; + clock-names = "int"; + dmas = <&dmamux1 111 0x400 0x5>, + <&dmamux1 112 0x400 0x5>; + dma-names = "ch1", "up"; + status = "disabled"; + + pwm { + compatible = "st,stm32-pwm"; + #pwm-cells = <3>; + status = "disabled"; + }; + + timer@16 { + compatible = "st,stm32h7-timer-trigger"; + reg = <16>; + status = "disabled"; + }; + }; + + spi5: spi@44009000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "st,stm32h7-spi"; + reg = <0x44009000 0x400>; + interrupts = ; + clocks = <&rcc SPI5_K>; + resets = <&rcc SPI5_R>; + dmas = <&dmamux1 85 0x400 0x01>, + <&dmamux1 86 0x400 0x01>; + dma-names = "rx", "tx"; + power-domains = <&pd_core>; + status = "disabled"; + }; + + sai1: sai@4400a000 { + compatible = "st,stm32h7-sai"; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0x4400a000 0x400>; + reg = <0x4400a000 0x4>; + interrupts = ; + resets = <&rcc SAI1_R>; + status = "disabled"; + + sai1a: audio-controller@4400a004 { + #sound-dai-cells = <0>; + + compatible = "st,stm32-sai-sub-a"; + reg = <0x4 0x1c>; + clocks = <&rcc SAI1_K>; + clock-names = "sai_ck"; + dmas = <&dmamux1 87 0x400 0x01>; + status = "disabled"; + }; + + sai1b: audio-controller@4400a024 { + #sound-dai-cells = <0>; + compatible = "st,stm32-sai-sub-b"; + reg = <0x24 0x1c>; + clocks = <&rcc SAI1_K>; + clock-names = "sai_ck"; + dmas = <&dmamux1 88 0x400 0x01>; + status = "disabled"; + }; + }; + + sai2: sai@4400b000 { + compatible = "st,stm32h7-sai"; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0x4400b000 0x400>; + reg = <0x4400b000 0x4>; + interrupts = ; + resets = <&rcc SAI2_R>; + status = "disabled"; + + sai2a: audio-controller@4400b004 { + #sound-dai-cells = <0>; + compatible = "st,stm32-sai-sub-a"; + reg = <0x4 0x1c>; + clocks = <&rcc SAI2_K>; + clock-names = "sai_ck"; + dmas = <&dmamux1 89 0x400 0x01>; + status = "disabled"; + }; + + sai2b: audio-controller@4400b024 { + #sound-dai-cells = <0>; + compatible = "st,stm32-sai-sub-b"; + reg = <0x24 0x1c>; + clocks = <&rcc SAI2_K>; + clock-names = "sai_ck"; + dmas = <&dmamux1 90 0x400 0x01>; + status = "disabled"; + }; + }; + + sai3: sai@4400c000 { + compatible = "st,stm32h7-sai"; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0x4400c000 0x400>; + reg = <0x4400c000 0x4>; + interrupts = ; + resets = <&rcc SAI3_R>; + status = "disabled"; + + sai3a: audio-controller@4400c004 { + #sound-dai-cells = <0>; + compatible = "st,stm32-sai-sub-a"; + reg = <0x04 0x1c>; + clocks = <&rcc SAI3_K>; + clock-names = "sai_ck"; + dmas = <&dmamux1 113 0x400 0x01>; + status = "disabled"; + }; + + sai3b: audio-controller@4400c024 { + #sound-dai-cells = <0>; + compatible = "st,stm32-sai-sub-b"; + reg = <0x24 0x1c>; + clocks = <&rcc SAI3_K>; + clock-names = "sai_ck"; + dmas = <&dmamux1 114 0x400 0x01>; + status = "disabled"; + }; + }; + + dfsdm: dfsdm@4400d000 { + compatible = "st,stm32mp1-dfsdm"; + reg = <0x4400d000 0x800>; + clocks = <&rcc DFSDM_K>; + clock-names = "dfsdm"; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + + dfsdm0: filter@0 { + compatible = "st,stm32-dfsdm-adc"; + #io-channel-cells = <1>; + reg = <0>; + interrupts = ; + dmas = <&dmamux1 101 0x400 0x01>; + dma-names = "rx"; + status = "disabled"; + }; + + dfsdm1: filter@1 { + compatible = "st,stm32-dfsdm-adc"; + #io-channel-cells = <1>; + reg = <1>; + interrupts = ; + dmas = <&dmamux1 102 0x400 0x01>; + dma-names = "rx"; + status = "disabled"; + }; + + dfsdm2: filter@2 { + compatible = "st,stm32-dfsdm-adc"; + #io-channel-cells = <1>; + reg = <2>; + interrupts = ; + dmas = <&dmamux1 103 0x400 0x01>; + dma-names = "rx"; + status = "disabled"; + }; + + dfsdm3: filter@3 { + compatible = "st,stm32-dfsdm-adc"; + #io-channel-cells = <1>; + reg = <3>; + interrupts = ; + dmas = <&dmamux1 104 0x400 0x01>; + dma-names = "rx"; + status = "disabled"; + }; + + dfsdm4: filter@4 { + compatible = "st,stm32-dfsdm-adc"; + #io-channel-cells = <1>; + reg = <4>; + interrupts = ; + dmas = <&dmamux1 91 0x400 0x01>; + dma-names = "rx"; + status = "disabled"; + }; + + dfsdm5: filter@5 { + compatible = "st,stm32-dfsdm-adc"; + #io-channel-cells = <1>; + reg = <5>; + interrupts = ; + dmas = <&dmamux1 92 0x400 0x01>; + dma-names = "rx"; + status = "disabled"; + }; + }; + + m_can1: can@4400e000 { + compatible = "bosch,m_can"; + reg = <0x4400e000 0x400>, <0x44011000 0x1400>; + reg-names = "m_can", "message_ram"; + interrupts = , + ; + interrupt-names = "int0", "int1"; + clocks = <&rcc FDCAN>, <&rcc FDCAN_K>; + clock-names = "hclk", "cclk"; + bosch,mram-cfg = <0x0 0 0 32 0 0 2 2>; + status = "disabled"; + }; + + m_can2: can@4400f000 { + compatible = "bosch,m_can"; + reg = <0x4400f000 0x400>, <0x44011000 0x2800>; + reg-names = "m_can", "message_ram"; + interrupts = , + ; + interrupt-names = "int0", "int1"; + clocks = <&rcc FDCAN>, <&rcc FDCAN_K>; + clock-names = "hclk", "cclk"; + bosch,mram-cfg = <0x1400 0 0 32 0 0 2 2>; + status = "disabled"; + }; + + dma1: dma@48000000 { + compatible = "st,stm32-dma"; + reg = <0x48000000 0x400>; + interrupts = , + , + , + , + , + , + , + ; + clocks = <&rcc DMA1>; + resets = <&rcc DMA1_R>; + #dma-cells = <4>; + st,mem2mem; + dma-requests = <8>; + dmas = <&mdma1 0 0x3 0x1200000a 0x48000008 0x00000020 1>, + <&mdma1 1 0x3 0x1200000a 0x48000008 0x00000800 1>, + <&mdma1 2 0x3 0x1200000a 0x48000008 0x00200000 1>, + <&mdma1 3 0x3 0x1200000a 0x48000008 0x08000000 1>, + <&mdma1 4 0x3 0x1200000a 0x4800000C 0x00000020 1>, + <&mdma1 5 0x3 0x1200000a 0x4800000C 0x00000800 1>, + <&mdma1 6 0x3 0x1200000a 0x4800000C 0x00200000 1>, + <&mdma1 7 0x3 0x1200000a 0x4800000C 0x08000000 1>; + dma-names = "ch0", "ch1", "ch2", "ch3", "ch4", "ch5", "ch6", "ch7"; + }; + + dma2: dma@48001000 { + compatible = "st,stm32-dma"; + reg = <0x48001000 0x400>; + interrupts = , + , + , + , + , + , + , + ; + clocks = <&rcc DMA2>; + resets = <&rcc DMA2_R>; + #dma-cells = <4>; + st,mem2mem; + dma-requests = <8>; + dmas = <&mdma1 8 0x3 0x1200000a 0x48001008 0x00000020 1>, + <&mdma1 9 0x3 0x1200000a 0x48001008 0x00000800 1>, + <&mdma1 10 0x3 0x1200000a 0x48001008 0x00200000 1>, + <&mdma1 11 0x3 0x1200000a 0x48001008 0x08000000 1>, + <&mdma1 12 0x3 0x1200000a 0x4800100C 0x00000020 1>, + <&mdma1 13 0x3 0x1200000a 0x4800100C 0x00000800 1>, + <&mdma1 14 0x3 0x1200000a 0x4800100C 0x00200000 1>, + <&mdma1 15 0x3 0x1200000a 0x4800100C 0x08000000 1>; + dma-names = "ch0", "ch1", "ch2", "ch3", "ch4", "ch5", "ch6", "ch7"; + }; + + dmamux1: dma-router@48002000 { + compatible = "st,stm32h7-dmamux"; + reg = <0x48002000 0x1c>; + #dma-cells = <3>; + dma-requests = <128>; + dma-masters = <&dma1 &dma2>; + dma-channels = <16>; + clocks = <&rcc DMAMUX>; + resets = <&rcc DMAMUX_R>; + }; + + adc: adc@48003000 { + compatible = "st,stm32mp1-adc-core"; + reg = <0x48003000 0x400>; + interrupts = , + ; + clocks = <&rcc ADC12>, <&rcc ADC12_K>; + clock-names = "bus", "adc"; + interrupt-controller; + st,syscfg-vbooster = <&syscfg 0x4 0x100>; + st,syscfg-vbooster-clr = <&syscfg 0x44 0x100>; + st,syscfg-anaswvdd = <&syscfg 0x4 0x200>; + st,syscfg-anaswvdd-clr = <&syscfg 0x44 0x200>; + #interrupt-cells = <1>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + + adc1: adc@0 { + compatible = "st,stm32mp1-adc"; + #io-channel-cells = <1>; + reg = <0x0>; + interrupt-parent = <&adc>; + interrupts = <0>; + dmas = <&dmamux1 9 0x400 0x05>; + dma-names = "rx"; + status = "disabled"; + }; + + adc2: adc@100 { + compatible = "st,stm32mp1-adc"; + #io-channel-cells = <1>; + reg = <0x100>; + interrupt-parent = <&adc>; + interrupts = <1>; + dmas = <&dmamux1 10 0x400 0x05>; + dma-names = "rx"; + /* temperature sensor */ + st,adc-channels = <12>; + st,min-sample-time-nsecs = <10000>; + status = "disabled"; + }; + + jadc1: jadc@0 { + compatible = "st,stm32mp1-adc"; + st,injected; + #io-channel-cells = <1>; + reg = <0x0>; + interrupt-parent = <&adc>; + interrupts = <3>; + status = "disabled"; + }; + + jadc2: jadc@100 { + compatible = "st,stm32mp1-adc"; + st,injected; + #io-channel-cells = <1>; + reg = <0x100>; + interrupt-parent = <&adc>; + interrupts = <4>; + /* temperature sensor */ + st,adc-channels = <12>; + st,min-sample-time-nsecs = <10000>; + status = "disabled"; + }; + + adc_temp: temp { + compatible = "st,stm32mp1-adc-temp"; + io-channels = <&adc2 12>; + nvmem-cells = <&ts_cal1>, <&ts_cal2>; + nvmem-cell-names = "ts_cal1", "ts_cal2"; + #io-channel-cells = <0>; + #thermal-sensor-cells = <0>; + status = "disabled"; + }; + }; + + sdmmc3: sdmmc@48004000 { + compatible = "arm,pl18x", "arm,primecell"; + arm,primecell-periphid = <0x00253180>; + reg = <0x48004000 0x400>, <0x48005000 0x400>; + interrupts = ; + interrupt-names = "cmd_irq"; + clocks = <&rcc SDMMC3_K>; + clock-names = "apb_pclk"; + resets = <&rcc SDMMC3_R>; + cap-sd-highspeed; + cap-mmc-highspeed; + max-frequency = <120000000>; + status = "disabled"; + }; + + usbotg_hs: usb-otg@49000000 { + compatible = "st,stm32mp1-hsotg", "snps,dwc2"; + reg = <0x49000000 0x10000>; + clocks = <&rcc USBO_K>; + clock-names = "otg"; + resets = <&rcc USBO_R>; + reset-names = "dwc2"; + interrupts-extended = <&intc GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>, + <&exti 44 1>; + interrupt-names = "event", "wakeup"; + g-rx-fifo-size = <256>; + g-np-tx-fifo-size = <32>; + g-tx-fifo-size = <128 128 64 64 64 64 32 32>; + dr_mode = "otg"; + usb33d-supply = <&usb33>; + power-domains = <&pd_core>; + wakeup-source; + status = "disabled"; + }; + + hsem: hwspinlock@4c000000 { + compatible = "st,stm32-hwspinlock"; + #hwlock-cells = <1>; + reg = <0x4c000000 0x400>; + clocks = <&rcc HSEM>; + clock-names = "hsem"; + status = "okay"; + }; + + ipcc: mailbox@4c001000 { + compatible = "st,stm32mp1-ipcc"; + #mbox-cells = <1>; + reg = <0x4c001000 0x400>; + st,proc-id = <0>; + interrupts-extended = + <&intc GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>, + <&intc GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>, + <&exti 61 1>; + interrupt-names = "rx", "tx", "wakeup"; + clocks = <&rcc IPCC>; + wakeup-source; + power-domains = <&pd_core>; + status = "disabled"; + }; + + dcmi: dcmi@4c006000 { + compatible = "st,stm32-dcmi"; + reg = <0x4c006000 0x400>; + interrupts = ; + resets = <&rcc CAMITF_R>; + clocks = <&rcc DCMI>; + clock-names = "mclk"; + dmas = <&dmamux1 75 0x400 0x1d>; + dma-names = "tx"; + status = "disabled"; + }; + + rcc: rcc@50000000 { + compatible = "st,stm32mp1-rcc", "syscon"; + reg = <0x50000000 0x1000>; + #clock-cells = <1>; + #reset-cells = <1>; + interrupts = ; + }; + + pwr: pwr@50001000 { + compatible = "st,stm32mp1-pwr", "syscon", "simple-mfd"; + reg = <0x50001000 0x400>; + + interrupts = ; + + interrupt-controller; + #interrupt-cells = <3>; + + wakeup-gpios = <&gpioa 0 GPIO_ACTIVE_HIGH>, + <&gpioa 2 GPIO_ACTIVE_HIGH>, + <&gpioc 13 GPIO_ACTIVE_HIGH>, + <&gpioi 8 GPIO_ACTIVE_HIGH>, + <&gpioi 11 GPIO_ACTIVE_HIGH>, + <&gpioc 1 GPIO_ACTIVE_HIGH>; + + pwr-regulators { + compatible = "st,stm32mp1,pwr-reg"; + st,tzcr = <&rcc 0x0 0x1>; + + reg11: reg11 { + regulator-name = "reg11"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + }; + + reg18: reg18 { + regulator-name = "reg18"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + usb33: usb33 { + regulator-name = "usb33"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + }; + + exti: interrupt-controller@5000d000 { + compatible = "st,stm32mp1-exti", "syscon"; + interrupt-controller; + #interrupt-cells = <2>; + reg = <0x5000d000 0x400>; + hwlocks = <&hsem 1>; + + /* exti_pwr is an extra interrupt controller used for + * EXTI 55 to 60. It's mapped on pwr interrupt + * controller. + */ + exti_pwr: exti-pwr { + interrupt-controller; + #interrupt-cells = <2>; + interrupt-parent = <&pwr>; + st,irq-number = <6>; + }; + }; + + syscfg: syscon@50020000 { + compatible = "st,stm32mp157-syscfg", "syscon"; + reg = <0x50020000 0x400>; + clocks = <&rcc SYSCFG>; + }; + + lptimer2: timer@50021000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "st,stm32-lptimer"; + reg = <0x50021000 0x400>; + clocks = <&rcc LPTIM2_K>; + clock-names = "mux"; + power-domains = <&pd_core>; + status = "disabled"; + + pwm { + compatible = "st,stm32-pwm-lp"; + #pwm-cells = <3>; + status = "disabled"; + }; + + trigger@1 { + compatible = "st,stm32-lptimer-trigger"; + reg = <1>; + status = "disabled"; + }; + + counter { + compatible = "st,stm32-lptimer-counter"; + status = "disabled"; + }; + }; + + lptimer3: timer@50022000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "st,stm32-lptimer"; + reg = <0x50022000 0x400>; + clocks = <&rcc LPTIM3_K>; + clock-names = "mux"; + power-domains = <&pd_core>; + status = "disabled"; + + pwm { + compatible = "st,stm32-pwm-lp"; + #pwm-cells = <3>; + status = "disabled"; + }; + + trigger@2 { + compatible = "st,stm32-lptimer-trigger"; + reg = <2>; + status = "disabled"; + }; + }; + + lptimer4: timer@50023000 { + compatible = "st,stm32-lptimer"; + reg = <0x50023000 0x400>; + clocks = <&rcc LPTIM4_K>; + clock-names = "mux"; + power-domains = <&pd_core>; + status = "disabled"; + + pwm { + compatible = "st,stm32-pwm-lp"; + #pwm-cells = <3>; + status = "disabled"; + }; + }; + + lptimer5: timer@50024000 { + compatible = "st,stm32-lptimer"; + reg = <0x50024000 0x400>; + clocks = <&rcc LPTIM5_K>; + clock-names = "mux"; + power-domains = <&pd_core>; + status = "disabled"; + + pwm { + compatible = "st,stm32-pwm-lp"; + #pwm-cells = <3>; + status = "disabled"; + }; + }; + + vrefbuf: vrefbuf@50025000 { + compatible = "st,stm32-vrefbuf"; + reg = <0x50025000 0x8>; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <2500000>; + clocks = <&rcc VREF>; + status = "disabled"; + }; + + sai4: sai@50027000 { + compatible = "st,stm32h7-sai"; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0x50027000 0x400>; + reg = <0x50027000 0x4>; + interrupts = ; + resets = <&rcc SAI4_R>; + status = "disabled"; + + sai4a: audio-controller@50027004 { + #sound-dai-cells = <0>; + compatible = "st,stm32-sai-sub-a"; + reg = <0x04 0x1c>; + clocks = <&rcc SAI4_K>; + clock-names = "sai_ck"; + dmas = <&dmamux1 99 0x400 0x01>; + status = "disabled"; + }; + + sai4b: audio-controller@50027024 { + #sound-dai-cells = <0>; + compatible = "st,stm32-sai-sub-b"; + reg = <0x24 0x1c>; + clocks = <&rcc SAI4_K>; + clock-names = "sai_ck"; + dmas = <&dmamux1 100 0x400 0x01>; + status = "disabled"; + }; + }; + + dts: thermal@50028000 { + compatible = "st,stm32-thermal"; + reg = <0x50028000 0x100>; + interrupts = ; + clocks = <&rcc TMPSENS>; + clock-names = "pclk"; + #thermal-sensor-cells = <0>; + status = "disabled"; + }; + + hdp: hdp@5002a000 { + compatible = "st,stm32mp1-hdp"; + reg = <0x5002a000 0x400>; + clocks = <&rcc HDP>; + clock-names = "hdp"; + status = "disabled"; + }; + + funnel: funnel@50091000 { + compatible = "arm,coresight-funnel", "arm,primecell"; + reg = <0x50091000 0x1000>; + clocks = <&rcc CK_TRACE>; + clock-names = "apb_pclk"; + ports { + #address-cells = <1>; + #size-cells = <0>; + + /* funnel input ports */ + port@0 { + reg = <0>; + funnel_in_port0: endpoint { + slave-mode; + remote-endpoint = <&stm_out_port>; + }; + }; + + port@1 { + reg = <1>; + funnel_in_port1: endpoint { + slave-mode; /* A7-1 input */ + remote-endpoint = <&etm1_out_port>; + }; + }; + + port@2 { + reg = <2>; + funnel_in_port2: endpoint { + slave-mode; /* A7-2 input */ + remote-endpoint = <&etm2_out_port>; + }; + }; + + port@4 { + reg = <4>; + funnel_in_port4: endpoint { + slave-mode; /* REPLICATOR input */ + remote-endpoint = <&replicator_out_port0>; + }; + }; + + port@5 { + reg = <0>; + funnel_out_port0: endpoint { + remote-endpoint = <&etf_in_port>; + }; + }; + }; + }; + + etf: etf@50092000 { + compatible = "arm,coresight-tmc", "arm,primecell"; + reg = <0x50092000 0x1000>; + clocks = <&rcc CK_TRACE>; + clock-names = "apb_pclk"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + etf_in_port: endpoint { + slave-mode; + remote-endpoint = <&funnel_out_port0>; + }; + }; + + port@1 { + reg = <0>; + etf_out_port: endpoint { + remote-endpoint = <&tpiu_in_port>; + }; + }; + }; + }; + + tpiu: tpiu@50093000 { + compatible = "arm,coresight-tpiu", "arm,primecell"; + reg = <0x50093000 0x1000>; + clocks = <&rcc CK_TRACE>; + clock-names = "apb_pclk"; + + port { + tpiu_in_port: endpoint { + slave-mode; + remote-endpoint = <&etf_out_port>; + }; + }; + }; + + stm: stm@500a0000 { + compatible = "arm,coresight-stm", "arm,primecell"; + reg = <0x500a0000 0x1000>, <0x90000000 0x1000000>, + <0x50094000 0x1000>; + reg-names = "stm-base", "stm-stimulus-base", "cti-base"; + + clocks = <&rcc CK_TRACE>; + clock-names = "apb_pclk"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + stm_out_port: endpoint { + remote-endpoint = <&funnel_in_port0>; + }; + }; + }; + }; + + /* Cortex A7-1 */ + etm1: etm@500dc000 { + compatible = "arm,coresight-etm3x", "arm,primecell"; + reg = <0x500dc000 0x1000>; + cpu = <&cpu0>; + clocks = <&rcc CK_TRACE>; + clock-names = "apb_pclk"; + port { + etm1_out_port: endpoint { + remote-endpoint = <&funnel_in_port1>; + }; + }; + }; + + /* Cortex A7-2 */ + etm2: etm@500dd000 { + compatible = "arm,coresight-etm3x", "arm,primecell"; + reg = <0x500dd000 0x1000>; + cpu = <&cpu1>; + clocks = <&rcc CK_TRACE>; + clock-names = "apb_pclk"; + + port { + etm2_out_port: endpoint { + remote-endpoint = <&funnel_in_port2>; + }; + }; + }; + + cryp1: cryp@54001000 { + compatible = "st,stm32mp1-cryp"; + reg = <0x54001000 0x400>; + interrupts = ; + clocks = <&rcc CRYP1>; + resets = <&rcc CRYP1_R>; + status = "disabled"; + }; + + hash1: hash@54002000 { + compatible = "st,stm32f756-hash"; + reg = <0x54002000 0x400>; + interrupts = ; + clocks = <&rcc HASH1>; + resets = <&rcc HASH1_R>; + dmas = <&mdma1 31 0x2 0x1000A02 0x0 0x0 0x0>; + dma-names = "in"; + dma-maxburst = <2>; + status = "disabled"; + }; + + rng1: rng@54003000 { + compatible = "st,stm32-rng"; + reg = <0x54003000 0x400>; + clocks = <&rcc RNG1_K>; + resets = <&rcc RNG1_R>; + status = "disabled"; + }; + + mdma1: dma@58000000 { + compatible = "st,stm32h7-mdma"; + reg = <0x58000000 0x1000>; + interrupts = ; + clocks = <&rcc MDMA>; + resets = <&rcc MDMA_R>; + #dma-cells = <6>; + dma-channels = <32>; + dma-requests = <48>; + }; + + fmc: nand-controller@58002000 { + compatible = "st,stm32mp15-fmc2"; + reg = <0x58002000 0x1000>, + <0x80000000 0x1000>, + <0x88010000 0x1000>, + <0x88020000 0x1000>, + <0x81000000 0x1000>, + <0x89010000 0x1000>, + <0x89020000 0x1000>; + interrupts = ; + dmas = <&mdma1 20 0x2 0x12000A02 0x0 0x0 0>, + <&mdma1 20 0x2 0x12000A08 0x0 0x0 0>, + <&mdma1 21 0x2 0x12000A0A 0x0 0x0 0>; + dma-names = "tx", "rx", "ecc"; + clocks = <&rcc FMC_K>; + resets = <&rcc FMC_R>; + status = "disabled"; + }; + + qspi: spi@58003000 { + compatible = "st,stm32f469-qspi"; + reg = <0x58003000 0x1000>, <0x70000000 0x10000000>; + reg-names = "qspi", "qspi_mm"; + interrupts = ; + dmas = <&mdma1 22 0x2 0x100002 0x0 0x0 0x0>, + <&mdma1 22 0x2 0x100008 0x0 0x0 0x0>; + dma-names = "tx", "rx"; + clocks = <&rcc QSPI_K>; + resets = <&rcc QSPI_R>; + status = "disabled"; + }; + + sdmmc1: sdmmc@58005000 { + compatible = "arm,pl18x", "arm,primecell"; + arm,primecell-periphid = <0x00253180>; + reg = <0x58005000 0x1000>, <0x58006000 0x1000>; + interrupts = ; + interrupt-names = "cmd_irq"; + clocks = <&rcc SDMMC1_K>; + clock-names = "apb_pclk"; + resets = <&rcc SDMMC1_R>; + cap-sd-highspeed; + cap-mmc-highspeed; + max-frequency = <120000000>; + status = "disabled"; + }; + + sdmmc2: sdmmc@58007000 { + compatible = "arm,pl18x", "arm,primecell"; + arm,primecell-periphid = <0x00253180>; + reg = <0x58007000 0x1000>, <0x58008000 0x1000>; + interrupts = ; + interrupt-names = "cmd_irq"; + clocks = <&rcc SDMMC2_K>; + clock-names = "apb_pclk"; + resets = <&rcc SDMMC2_R>; + cap-sd-highspeed; + cap-mmc-highspeed; + max-frequency = <120000000>; + status = "disabled"; + }; + + crc1: crc@58009000 { + compatible = "st,stm32f7-crc"; + reg = <0x58009000 0x400>; + clocks = <&rcc CRC1>; + status = "disabled"; + }; + + stmmac_axi_config_0: stmmac-axi-config { + snps,wr_osr_lmt = <0x7>; + snps,rd_osr_lmt = <0x7>; + snps,blen = <0 0 0 0 16 8 4>; + }; + + ethernet0: ethernet@5800a000 { + compatible = "st,stm32mp1-dwmac", "snps,dwmac-4.20a"; + reg = <0x5800a000 0x2000>; + reg-names = "stmmaceth"; + interrupts-extended = <&intc GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>, + <&intc GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>, + <&exti 70 1>; + interrupt-names = "macirq", + "eth_wake_irq", + "stm32_pwr_wakeup"; + clock-names = "stmmaceth", + "mac-clk-tx", + "mac-clk-rx", + "eth-ck", //custom + "syscfg-clk", //custom + "ethstp"; + clocks = <&rcc ETHMAC>, + <&rcc ETHTX>, + <&rcc ETHRX>, + <&rcc ETHCK_K>, //custom + <&rcc SYSCFG>, //custom + <&rcc ETHSTP>; + st,syscon = <&syscfg 0x4>; + snps,mixed-burst; + snps,pbl = <2>; + snps,en-tx-lpi-clockgating; + snps,axi-config = <&stmmac_axi_config_0>; + snps,tso; + power-domains = <&pd_core>; + status = "disabled"; + }; + + usbh_ohci: usbh-ohci@5800c000 { + compatible = "generic-ohci"; + reg = <0x5800c000 0x1000>; + clocks = <&rcc USBH>; + resets = <&rcc USBH_R>; + interrupts = ; + status = "disabled"; + }; + + usbh_ehci: usbh-ehci@5800d000 { + compatible = "generic-ehci"; + reg = <0x5800d000 0x1000>; + clocks = <&rcc USBH>; + resets = <&rcc USBH_R>; + interrupts-extended = <&intc GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>, + <&exti 43 1>; + interrupt-names = "event", "wakeup"; + companion = <&usbh_ohci>; + power-domains = <&pd_core>; + wakeup-source; + status = "disabled"; + }; + + gpu: gpu@59000000 { + compatible = "vivante,gc"; + reg = <0x59000000 0x800>; + interrupts = ; + clocks = <&rcc GPU>, <&rcc GPU_K>; + clock-names = "bus" ,"core"; + resets = <&rcc GPU_R>; + status = "disabled"; + }; + + dsi: dsi@5a000000 { + compatible = "st,stm32-dsi"; + reg = <0x5a000000 0x800>; + clocks = <&rcc DSI_K>, <&clk_hse>, <&rcc DSI_PX>; + clock-names = "pclk", "ref", "px_clk"; + resets = <&rcc DSI_R>; + reset-names = "apb"; + phy-dsi-supply = <®18>; + status = "disabled"; + }; + + ltdc: display-controller@5a001000 { + compatible = "st,stm32-ltdc"; + reg = <0x5a001000 0x400>; + interrupts = , + ; + clocks = <&rcc LTDC_PX>; + clock-names = "lcd"; + resets = <&rcc LTDC_R>; + status = "disabled"; + }; + + iwdg2: watchdog@5a002000 { + compatible = "st,stm32mp1-iwdg"; + reg = <0x5a002000 0x400>; + clocks = <&rcc IWDG2>, <&rcc CK_LSI>; + clock-names = "pclk", "lsi"; + status = "disabled"; + }; + + usbphyc: usbphyc@5a006000 { + #address-cells = <1>; + #size-cells = <0>; + #clock-cells = <0>; + compatible = "st,stm32mp1-usbphyc"; + reg = <0x5a006000 0x1000>; + clocks = <&rcc USBPHY_K>; + resets = <&rcc USBPHY_R>; + vdda1v1-supply = <®11>; + vdda1v8-supply = <®18>; + status = "disabled"; + + usbphyc_port0: usb-phy@0 { + #phy-cells = <0>; + reg = <0>; + }; + + usbphyc_port1: usb-phy@1 { + #phy-cells = <1>; + reg = <1>; + }; + }; + + ddrperfm: perf@5a007000 { + compatible = "st,stm32-ddr-pmu"; + reg = <0x5a007000 0x400>; + clocks = <&rcc DDRPERFM>, <&rcc PLL2_R>; + clock-names = "bus", "ddr"; + resets = <&rcc DDRPERFM_R>; + status = "okay"; + }; + + usart1: serial@5c000000 { + compatible = "st,stm32h7-uart"; + reg = <0x5c000000 0x400>; + interrupt-names = "event", "wakeup"; + interrupts-extended = <&intc GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>, + <&exti 26 1>; + clocks = <&rcc USART1_K>; + resets = <&rcc USART1_R>; + wakeup-source; + power-domains = <&pd_core>; + status = "disabled"; + }; + + spi6: spi@5c001000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "st,stm32h7-spi"; + reg = <0x5c001000 0x400>; + interrupts = ; + clocks = <&rcc SPI6_K>; + resets = <&rcc SPI6_R>; + dmas = <&mdma1 34 0x0 0x40008 0x0 0x0 0x0>, + <&mdma1 35 0x0 0x40002 0x0 0x0 0x0>; + dma-names = "rx", "tx"; + power-domains = <&pd_core>; + status = "disabled"; + }; + + i2c4: i2c@5c002000 { + compatible = "st,stm32f7-i2c"; + reg = <0x5c002000 0x400>; + interrupt-names = "event", "error", "wakeup"; + interrupts-extended = <&intc GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>, + <&intc GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>, + <&exti 24 1>; + clocks = <&rcc I2C4_K>; + resets = <&rcc I2C4_R>; + #address-cells = <1>; + #size-cells = <0>; + dmas = <&mdma1 36 0x0 0x40008 0x0 0x0 0>, + <&mdma1 37 0x0 0x40002 0x0 0x0 0>; + dma-names = "rx", "tx"; + power-domains = <&pd_core>; + st,syscfg-fmp = <&syscfg 0x4 0x8>; + st,syscfg-fmp-clr = <&syscfg 0x44 0x8>; + status = "disabled"; + }; + + rtc: rtc@5c004000 { + compatible = "st,stm32mp1-rtc"; + reg = <0x5c004000 0x400>; + clocks = <&rcc RTCAPB>, <&rcc RTC>; + clock-names = "pclk", "rtc_ck"; + interrupts-extended = <&intc GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>, + <&exti 19 1>; + status = "disabled"; + }; + + bsec: nvmem@5c005000 { + compatible = "st,stm32mp15-bsec"; + reg = <0x5c005000 0x400>; + #address-cells = <1>; + #size-cells = <1>; + + part_number_otp: part_number_otp@4 { + reg = <0x4 0x1>; + }; + ts_cal1: calib@5c { + reg = <0x5c 0x2>; + }; + ts_cal2: calib@5e { + reg = <0x5e 0x2>; + }; + }; + + i2c6: i2c@5c009000 { + compatible = "st,stm32f7-i2c"; + reg = <0x5c009000 0x400>; + interrupt-names = "event", "error", "wakeup"; + interrupts-extended = <&intc GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>, + <&intc GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>, + <&exti 54 1>; + clocks = <&rcc I2C6_K>; + resets = <&rcc I2C6_R>; + #address-cells = <1>; + #size-cells = <0>; + dmas = <&mdma1 38 0x0 0x40008 0x0 0x0 0>, + <&mdma1 39 0x0 0x40002 0x0 0x0 0>; + dma-names = "rx", "tx"; + power-domains = <&pd_core>; + st,syscfg-fmp = <&syscfg 0x4 0x20>; + st,syscfg-fmp-clr = <&syscfg 0x44 0x20>; + status = "disabled"; + }; + + tamp: tamp@5c00a000 { + compatible = "simple-bus", "syscon", "simple-mfd"; + reg = <0x5c00a000 0x400>; + + reboot-mode { + compatible = "syscon-reboot-mode"; + offset = <0x150>; /* reg20 */ + mask = <0xff>; + mode-normal = <0>; + mode-fastboot = <0x1>; + mode-recovery = <0x2>; + mode-stm32cubeprogrammer = <0x3>; + mode-ums_mmc0 = <0x10>; + mode-ums_mmc1 = <0x11>; + mode-ums_mmc2 = <0x12>; + }; + }; + }; + + m4_rproc: m4@0 { + compatible = "st,stm32mp1-rproc"; + #address-cells = <1>; + #size-cells = <1>; + + ranges = <0x00000000 0x38000000 0x10000>, + <0x30000000 0x30000000 0x60000>, + <0x10000000 0x10000000 0x60000>; + resets = <&rcc MCU_R>; + reset-names = "mcu_rst"; + st,syscfg-pdds = <&pwr 0x014 0x1>; + st,syscfg-holdboot = <&rcc 0x10C 0x1>; + st,syscfg-tz = <&rcc 0x000 0x1>; + st,syscfg-rsc-tbl = <&tamp 0x144 0xFFFFFFFF>; + status = "disabled"; + + m4_system_resources { + compatible = "rproc-srm-core"; + status = "disabled"; + }; + }; + + firmware { + optee { + compatible = "linaro,optee-tz"; + method = "smc"; + }; + }; +}; diff --git a/board/octavo/osd32mp1-red/overlay/boot/extlinux/extlinux.conf b/board/octavo/osd32mp1-red/overlay/boot/extlinux/extlinux.conf new file mode 100644 index 000000000..c082c2462 --- /dev/null +++ b/board/octavo/osd32mp1-red/overlay/boot/extlinux/extlinux.conf @@ -0,0 +1,4 @@ +label osd32mp1-red-buildroot + kernel /boot/zImage + devicetree /boot/osd32mp1-red.dtb + append root=/dev/mmcblk1p4 rootwait diff --git a/board/octavo/osd32mp1-red/patches/uboot/0001-Add-OSD32MP1-RED-Device-Tree-support.patch b/board/octavo/osd32mp1-red/patches/uboot/0001-Add-OSD32MP1-RED-Device-Tree-support.patch new file mode 100644 index 000000000..aa83fde0d --- /dev/null +++ b/board/octavo/osd32mp1-red/patches/uboot/0001-Add-OSD32MP1-RED-Device-Tree-support.patch @@ -0,0 +1,1730 @@ +From ad8ef01e630f1c60ac9fa22a1e05af61ce1c0569 Mon Sep 17 00:00:00 2001 +From: "neeraj.dantu" +Date: Sun, 31 Jan 2021 21:03:30 -0600 +Subject: [PATCH 1/2] Add OSD32MP1-RED Device Tree support + +Signed-off-by: neeraj.dantu +[Kory: from https://github.com/octavosystems/osd32mp1-build-tools/tree/395ebd1f4832353c2bc66bbf3346b07d5243e44d/patches/u-boot-2018.11] +Signed-off-by: Kory Maincent +--- + arch/arm/dts/osd32mp1-red-u-boot.dtsi | 242 +++ + arch/arm/dts/osd32mp1-red.dts | 1311 +++++++++++++++++ + ...m32mp15-osd32mp1-ddr3-1x4Gb-1066-binG.dtsi | 119 ++ + arch/arm/dts/stm32mp157c.dtsi | 4 + + 4 files changed, 1676 insertions(+) + create mode 100644 arch/arm/dts/osd32mp1-red-u-boot.dtsi + create mode 100644 arch/arm/dts/osd32mp1-red.dts + create mode 100644 arch/arm/dts/stm32mp15-osd32mp1-ddr3-1x4Gb-1066-binG.dtsi + +diff --git a/arch/arm/dts/osd32mp1-red-u-boot.dtsi b/arch/arm/dts/osd32mp1-red-u-boot.dtsi +new file mode 100644 +index 0000000000..801b021145 +--- /dev/null ++++ b/arch/arm/dts/osd32mp1-red-u-boot.dtsi +@@ -0,0 +1,242 @@ ++/* SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause*/ ++/* ++ * Copyright (C) 2020, STMicroelectronics - All Rights Reserved ++ * Author: STM32CubeMX code generation for STMicroelectronics. ++ */ ++ ++/* For more information on Device Tree configuration, please refer to ++ * https://wiki.st.com/stm32mpu/wiki/Category:Device_tree_configuration ++ */ ++ ++#include ++#include "stm32mp15-osd32mp1-ddr3-1x4Gb-1066-binG.dtsi" ++ ++#include "stm32mp157-u-boot.dtsi" ++#include "stm32mp15-ddr.dtsi" ++ ++ ++ ++ ++/ { ++ ++ ++ aliases { ++ i2c3 = &i2c4; ++ mmc0 = &sdmmc1; //orig ++ //mmc0 = &sdmmc2; //custom ++ }; ++ config { ++ u-boot,boot-led = "heartbeat"; ++ u-boot,error-led = "error"; ++ st,adc_usb_pd = <&adc1 18>, <&adc1 19>; ++ //st,fastboot-gpios = <&gpioa 13 GPIO_ACTIVE_LOW>; //custom ++ //st,stm32prog-gpios = <&gpioa 14 GPIO_ACTIVE_LOW>; //custom ++ }; ++ led { ++ red { ++ label = "error"; ++ gpios = <&gpioa 13 GPIO_ACTIVE_LOW>; ++ default-state = "off"; ++ status = "okay"; ++ }; ++ ++ blue { ++ default-state = "on"; ++ }; ++ }; ++ ++ ++ clocks { ++ u-boot,dm-pre-reloc; ++ ++ ++ ++ ++ clk_lsi: clk-lsi { ++ u-boot,dm-pre-reloc; ++ ++ ++ ++ }; ++ ++ clk_hsi: clk-hsi { ++ u-boot,dm-pre-reloc; ++ ++ ++ ++ }; ++ ++ clk_csi: clk-csi { ++ u-boot,dm-pre-reloc; ++ status = "disabled"; ++ ++ ++ ++ }; ++ ++ clk_lse: clk-lse { ++ u-boot,dm-pre-reloc; ++ st,drive = < LSEDRV_MEDIUM_HIGH >; ++ ++ ++ ++ }; ++ ++ clk_hse: clk-hse { ++ u-boot,dm-pre-reloc; ++ st,digbypass; ++ ++ ++ ++ }; ++ }; ++ ++}; /*root*/ ++ ++&rcc { ++ u-boot,dm-pre-reloc; ++ st,clksrc = < ++ CLK_MPU_PLL1P ++ CLK_AXI_PLL2P ++ CLK_MCU_PLL3P ++ CLK_PLL12_HSE ++ CLK_PLL3_HSE ++ CLK_PLL4_HSE ++ CLK_RTC_LSE ++ CLK_MCO1_DISABLED ++ CLK_MCO2_DISABLED ++ >; ++ st,clkdiv = < ++ 1 /*MPU*/ ++ 0 /*AXI*/ ++ 0 /*MCU*/ ++ 1 /*APB1*/ ++ 1 /*APB2*/ ++ 1 /*APB3*/ ++ 1 /*APB4*/ ++ 2 /*APB5*/ ++ 23 /*RTC*/ ++ 0 /*MCO1*/ ++ 0 /*MCO2*/ ++ >; ++ st,pkcs = < ++ CLK_CKPER_DISABLED ++ CLK_ETH_PLL3Q ++ CLK_SDMMC12_PLL4P ++ CLK_DSI_DSIPLL ++ CLK_STGEN_HSE ++ CLK_USBPHY_DISABLED ++ CLK_SPI2S1_DISABLED ++ CLK_SPI2S23_PLL3Q ++ CLK_SPI45_DISABLED ++ CLK_SPI6_DISABLED ++ CLK_I2C46_HSI ++ CLK_SDMMC3_PLL4P ++ CLK_ADC_DISABLED ++ CLK_CEC_DISABLED ++ CLK_I2C12_HSI ++ CLK_I2C35_DISABLED ++ CLK_UART1_DISABLED ++ CLK_UART24_HSI ++ CLK_UART35_DISABLED ++ CLK_UART6_DISABLED ++ CLK_UART78_DISABLED ++ CLK_SPDIF_DISABLED ++ CLK_SAI2_CKPER ++ CLK_SAI2_DISABLED ++ CLK_SAI3_DISABLED ++ CLK_SAI4_DISABLED ++ CLK_RNG1_LSI ++ CLK_LPTIM1_DISABLED ++ CLK_LPTIM23_DISABLED ++ CLK_LPTIM45_DISABLED ++ >; ++ pll1:st,pll@0 { ++ cfg = < 2 80 0 1 1 PQR(1,0,0) >; ++ frac = < 0x800>; ++ u-boot,dm-pre-reloc; ++ }; ++ pll2:st,pll@1 { ++ cfg = < 2 65 1 0 0 PQR(1,1,1) >; ++ frac = < 0x1400>; ++ u-boot,dm-pre-reloc; ++ }; ++ pll3:st,pll@2 { ++ cfg = < 1 61 3 5 36 PQR(1,1,0) >; ++ frac = < 0x1000 >; ++ u-boot,dm-pre-reloc; ++ }; ++ pll4:st,pll@3 { ++ cfg = < 3 98 5 7 7 PQR(1,1,1) >; ++ u-boot,dm-pre-reloc; ++ }; ++}; ++ ++&i2c4{ ++ u-boot,dm-pre-reloc; ++ ++ ++ ++}; ++ ++&rcc{ ++ u-boot,dm-pre-reloc; ++ ++ ++ ++}; ++ ++&sdmmc1{ ++ u-boot,dm-pre-reloc; ++ ++ ++ ++}; ++ ++&sdmmc2{ ++ u-boot,dm-pre-reloc; ++ ++ ++ ++}; ++ ++&sdmmc3{ ++ u-boot,dm-pre-reloc; ++ ++ ++ ++}; ++ ++&uart4{ ++ u-boot,dm-pre-reloc; ++ ++ ++ ++}; ++ ++ ++&pmic { ++ u-boot,dm-pre-reloc; ++}; ++ ++&v3v3 { ++ regulator-always-on; ++}; ++ ++&uart4_pins_mx { ++ u-boot,dm-pre-reloc; ++ pins1 { ++ u-boot,dm-pre-reloc; ++ /* pull-up on rx to avoid floating level */ ++ bias-pull-up; ++ }; ++ pins2 { ++ u-boot,dm-pre-reloc; ++ }; ++}; ++ ++&adc { ++ status = "okay"; ++}; ++ ++ +diff --git a/arch/arm/dts/osd32mp1-red.dts b/arch/arm/dts/osd32mp1-red.dts +new file mode 100644 +index 0000000000..2cc1961d08 +--- /dev/null ++++ b/arch/arm/dts/osd32mp1-red.dts +@@ -0,0 +1,1311 @@ ++/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */ ++/* ++ * Copyright (C) STMicroelectronics 2020 - All Rights Reserved ++ * Author: STM32CubeMX code generation for STMicroelectronics. ++ */ ++ ++/* For more information on Device Tree configuration, please refer to ++ * https://wiki.st.com/stm32mpu/wiki/Category:Device_tree_configuration ++ */ ++ ++/dts-v1/; ++#include "stm32mp157c.dtsi" ++#include "stm32mp157cac-pinctrl.dtsi" ++#include "stm32mp157c-m4-srm.dtsi" ++ ++ ++#include ++#include ++#include ++ ++ ++/ { ++ model = "Octavo OSD32MP1-RED board"; ++ compatible = "octavo,osd32mp1-red", "st,stm32mp157"; ++ ++ memory@c0000000 { ++ reg = <0xc0000000 0x20000000>; ++ ++ ++ wifi_pwrseq: wifi-pwrseq { ++ compatible = "mmc-pwrseq-simple"; ++ reset-gpios = <&gpiog 5 GPIO_ACTIVE_LOW>; //custom ++ }; ++ ++ }; ++ ++ reserved-memory { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ranges; ++ ++ ++ ++ retram: retram@0x38000000 { ++ compatible = "shared-dma-pool"; ++ reg = <0x38000000 0x10000>; ++ no-map; ++ }; ++ ++ mcuram: mcuram@0x30000000 { ++ compatible = "shared-dma-pool"; ++ reg = <0x30000000 0x40000>; ++ no-map; ++ }; ++ ++ mcuram2: mcuram2@0x10000000 { ++ compatible = "shared-dma-pool"; ++ reg = <0x10000000 0x40000>; ++ no-map; ++ }; ++ ++ vdev0vring0: vdev0vring0@10040000 { ++ compatible = "shared-dma-pool"; ++ reg = <0x10040000 0x2000>; ++ no-map; ++ }; ++ ++ vdev0vring1: vdev0vring1@10042000 { ++ compatible = "shared-dma-pool"; ++ reg = <0x10042000 0x2000>; ++ no-map; ++ }; ++ ++ vdev0buffer: vdev0buffer@10044000 { ++ compatible = "shared-dma-pool"; ++ reg = <0x10044000 0x4000>; ++ no-map; ++ }; ++ ++ ++ gpu_reserved: gpu@d4000000 { ++ reg = <0xd4000000 0x4000000>; ++ no-map; ++ }; ++ }; ++ ++ ++ aliases { ++ ethernet0 = ðernet0; ++ serial0 = &uart4; ++ serial1 = &usart3; ++ serial2 = &uart7; ++ serial3 = &usart2; ++ }; ++ ++ chosen { ++ stdout-path = "serial0:115200n8"; ++ }; ++ ++ sram: sram@10050000 { ++ compatible = "mmio-sram"; ++ reg = <0x10050000 0x10000>; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ranges = <0 0x10050000 0x10000>; ++ ++ dma_pool: dma_pool@0 { ++ reg = <0x0 0x10000>; ++ pool; ++ }; ++ }; ++ ++ led { ++ compatible = "gpio-leds"; ++ blue { ++ label = "heartbeat"; ++ gpios = <&gpiod 11 GPIO_ACTIVE_HIGH>; ++ linux,default-trigger = "heartbeat"; ++ default-state = "off"; ++ }; ++ ++ //custom_gpios{ //custom ++ //gpios = <&gpiod 11 GPIO_ACTIVE_HIGH>; ++ //default-state = "on"; ++ //}; ++ }; ++ ++ /*sound { ++ compatible = "audio-graph-card"; ++ label = "STM32MP1-DK"; ++ routing = ++ "Playback" , "MCLK", ++ "Capture" , "MCLK", ++ "MICL" , "Mic Bias"; ++ dais = <&sai2a_port &sai2b_port &i2s2_port>; ++ status = "okay"; ++ }; */ ++ ++ usb_phy_tuning: usb-phy-tuning { ++ st,hs-dc-level = <2>; ++ st,fs-rftime-tuning; ++ st,hs-rftime-reduction; ++ st,hs-current-trim = <15>; ++ st,hs-impedance-trim = <1>; ++ st,squelch-level = <3>; ++ st,hs-rx-offset = <2>; ++ st,no-lsfs-sc; ++ }; ++ ++ ++ ++ clocks { ++ ++ clk_ext_camera: clk-ext-camera { ++ #clock-cells = <0>; ++ compatible = "fixed-clock"; ++ clock-frequency = <24000000>; ++ }; ++ ++ ++ clk_lsi: clk-lsi { ++ clock-frequency = <32000>; ++ }; ++ ++ clk_hsi: clk-hsi { ++ clock-frequency = <64000000>; ++ }; ++ ++ clk_csi: clk-csi { ++ clock-frequency = <4000000>; ++ }; ++ ++ clk_lse: clk-lse { ++ clock-frequency = <32768>; ++ }; ++ ++ clk_hse: clk-hse { ++ clock-frequency = <24000000>; ++ }; ++ }; ++ ++}; /*root*/ ++ ++&pinctrl { ++ u-boot,dm-pre-reloc; ++ ++ dcmi_pins_mx: dcmi_mx-0 { ++ pins { ++ pinmux = , /* DCMI_HSYNC */ ++ , /* DCMI_PIXCLK */ ++ , /* DCMI_D1 */ ++ , /* DCMI_D7 */ ++ , /* DCMI_D0 */ ++ , /* DCMI_D2 */ ++ , /* DCMI_D3 */ ++ , /* DCMI_D4 */ ++ , /* DCMI_D6 */ ++ , /* DCMI_VSYNC */ ++ , /* DCMI_D8 */ ++ , /* DCMI_D9 */ ++ , /* DCMI_D11 */ ++ , /* DCMI_D10 */ ++ ; /* DCMI_D5 */ ++ bias-disable; ++ }; ++ }; ++ ++ dcmi_sleep_pins_mx: dcmi_sleep_mx-0 { ++ pins { ++ pinmux = , /* DCMI_HSYNC */ ++ , /* DCMI_PIXCLK */ ++ , /* DCMI_D1 */ ++ , /* DCMI_D7 */ ++ , /* DCMI_D0 */ ++ , /* DCMI_D2 */ ++ , /* DCMI_D3 */ ++ , /* DCMI_D4 */ ++ , /* DCMI_D6 */ ++ , /* DCMI_VSYNC */ ++ , /* DCMI_D8 */ ++ , /* DCMI_D9 */ ++ , /* DCMI_D11 */ ++ , /* DCMI_D10 */ ++ ; /* DCMI_D5 */ ++ }; ++ }; ++ ++ eth1_pins_mx: eth1_mx-0 { ++ pins1 { ++ pinmux = , /* ETH1_RX_CLK */ ++ , /* ETH1_RX_CTL */ ++ , /* ETH1_RXD2 */ ++ , /* ETH1_RXD3 */ ++ , /* ETH1_RXD0 */ ++ ; /* ETH1_RXD1 */ ++ bias-disable; ++ }; ++ pins2 { ++ pinmux = ; /* ETH1_MDIO */ ++ bias-disable; ++ drive-push-pull; ++ slew-rate = <0>; ++ }; ++ pins3 { ++ pinmux = , /* ETH1_TX_CTL */ ++ , /* ETH1_MDC */ ++ , /* ETH1_TXD2 */ ++ , /* ETH1_TXD3 */ ++ , /* ETH1_GTX_CLK */ ++ , /* ETH1_TXD0 */ ++ ; /* ETH1_TXD1 */ ++ bias-disable; ++ drive-push-pull; ++ slew-rate = <2>; ++ }; ++ }; ++ ++ eth1_sleep_pins_mx: eth1_sleep_mx-0 { ++ pins { ++ pinmux = , /* ETH1_RX_CLK */ ++ , /* ETH1_MDIO */ ++ , /* ETH1_RX_CTL */ ++ , /* ETH1_RXD2 */ ++ , /* ETH1_RXD3 */ ++ , /* ETH1_TX_CTL */ ++ , /* ETH1_MDC */ ++ , /* ETH1_TXD2 */ ++ , /* ETH1_RXD0 */ ++ , /* ETH1_RXD1 */ ++ , /* ETH1_TXD3 */ ++ , /* ETH1_GTX_CLK */ ++ , /* ETH1_TXD0 */ ++ ; /* ETH1_TXD1 */ ++ }; ++ }; ++ ++ i2c1_pins_mx: i2c1_mx-0 { ++ pins { ++ pinmux = , /* I2C1_SCL */ ++ ; /* I2C1_SDA */ ++ bias-disable; ++ drive-open-drain; ++ slew-rate = <0>; ++ }; ++ }; ++ ++ i2c1_sleep_pins_mx: i2c1_sleep_mx-0 { ++ pins { ++ pinmux = , /* I2C1_SCL */ ++ ; /* I2C1_SDA */ ++ }; ++ }; ++ ++ i2c2_pins_mx: i2c2_mx-0 { ++ pins { ++ pinmux = ; /* I2C2_SDA */ ++ bias-disable; ++ drive-open-drain; ++ slew-rate = <0>; ++ }; ++ }; ++ ++ i2c2_sleep_pins_mx: i2c2_sleep_mx-0 { ++ pins { ++ pinmux = ; /* I2C2_SDA */ ++ }; ++ }; ++ ++ i2s2_pins_mx: i2s2_mx-0 { ++ pins { ++ pinmux = , /* I2S2_WS */ ++ , /* I2S2_CK */ ++ ; /* I2S2_SDO */ ++ bias-disable; ++ drive-push-pull; ++ slew-rate = <1>; ++ }; ++ }; ++ ++ i2s2_sleep_pins_mx: i2s2_sleep_mx-0 { ++ pins { ++ pinmux = , /* I2S2_WS */ ++ , /* I2S2_CK */ ++ ; /* I2S2_SDO */ ++ }; ++ }; ++ ++ ltdc_pins_mx: ltdc_mx-0 { ++ pins1 { ++ pinmux = , /* LTDC_B5 */ ++ , /* LTDC_B6 */ ++ , /* LTDC_R5 */ ++ , /* LTDC_B7 */ ++ , /* LTDC_B0 */ ++ , /* LTDC_B3 */ ++ , /* LTDC_G1 */ ++ , /* LTDC_B4 */ ++ , /* LTDC_G0 */ ++ , /* LTDC_R7 */ ++ , /* LTDC_DE */ ++ , /* LTDC_B2 */ ++ , /* LTDC_B1 */ ++ , /* LTDC_R0 */ ++ , /* LTDC_R1 */ ++ , /* LTDC_G4 */ ++ , /* LTDC_R2 */ ++ , /* LTDC_R3 */ ++ , /* LTDC_R4 */ ++ , /* LTDC_R6 */ ++ , /* LTDC_G2 */ ++ , /* LTDC_G3 */ ++ , /* LTDC_G5 */ ++ , /* LTDC_G6 */ ++ , /* LTDC_G7 */ ++ , /* LTDC_VSYNC */ ++ ; /* LTDC_HSYNC */ ++ bias-disable; ++ drive-push-pull; ++ slew-rate = <0>; ++ }; ++ pins2 { ++ pinmux = ; /* LTDC_CLK */ ++ bias-disable; ++ drive-push-pull; ++ slew-rate = <1>; ++ }; ++ }; ++ ++ ltdc_sleep_pins_mx: ltdc_sleep_mx-0 { ++ pins { ++ pinmux = , /* LTDC_B5 */ ++ , /* LTDC_B6 */ ++ , /* LTDC_R5 */ ++ , /* LTDC_B7 */ ++ , /* LTDC_B0 */ ++ , /* LTDC_B3 */ ++ , /* LTDC_G1 */ ++ , /* LTDC_B4 */ ++ , /* LTDC_G0 */ ++ , /* LTDC_R7 */ ++ , /* LTDC_DE */ ++ , /* LTDC_CLK */ ++ , /* LTDC_B2 */ ++ , /* LTDC_B1 */ ++ , /* LTDC_R0 */ ++ , /* LTDC_R1 */ ++ , /* LTDC_G4 */ ++ , /* LTDC_R2 */ ++ , /* LTDC_R3 */ ++ , /* LTDC_R4 */ ++ , /* LTDC_R6 */ ++ , /* LTDC_G2 */ ++ , /* LTDC_G3 */ ++ , /* LTDC_G5 */ ++ , /* LTDC_G6 */ ++ , /* LTDC_G7 */ ++ , /* LTDC_VSYNC */ ++ ; /* LTDC_HSYNC */ ++ }; ++ }; ++ ++ sdmmc1_pins_mx: sdmmc1_mx-0 { ++ u-boot,dm-pre-reloc; ++ pins1 { ++ u-boot,dm-pre-reloc; ++ pinmux = , /* SDMMC1_D0 */ ++ , /* SDMMC1_D1 */ ++ , /* SDMMC1_D2 */ ++ , /* SDMMC1_D3 */ ++ ; /* SDMMC1_CMD */ ++ bias-disable; ++ drive-push-pull; ++ slew-rate = <1>; ++ }; ++ pins2 { ++ u-boot,dm-pre-reloc; ++ pinmux = ; /* SDMMC1_CK */ ++ bias-disable; ++ drive-push-pull; ++ slew-rate = <3>; ++ }; ++ }; ++ ++ sdmmc1_opendrain_pins_mx: sdmmc1_opendrain_mx-0 { ++ u-boot,dm-pre-reloc; ++ pins1 { ++ u-boot,dm-pre-reloc; ++ pinmux = , /* SDMMC1_D0 */ ++ , /* SDMMC1_D1 */ ++ , /* SDMMC1_D2 */ ++ ; /* SDMMC1_D3 */ ++ bias-disable; ++ drive-push-pull; ++ slew-rate = <1>; ++ }; ++ pins2 { ++ u-boot,dm-pre-reloc; ++ pinmux = ; /* SDMMC1_CK */ ++ bias-disable; ++ drive-push-pull; ++ slew-rate = <3>; ++ }; ++ pins3 { ++ u-boot,dm-pre-reloc; ++ pinmux = ; /* SDMMC1_CMD */ ++ bias-disable; ++ drive-open-drain; ++ slew-rate = <1>; ++ }; ++ }; ++ ++ sdmmc1_sleep_pins_mx: sdmmc1_sleep_mx-0 { ++ u-boot,dm-pre-reloc; ++ pins { ++ u-boot,dm-pre-reloc; ++ pinmux = , /* SDMMC1_D0 */ ++ , /* SDMMC1_D1 */ ++ , /* SDMMC1_D2 */ ++ , /* SDMMC1_D3 */ ++ , /* SDMMC1_CK */ ++ ; /* SDMMC1_CMD */ ++ }; ++ }; ++ ++ sdmmc2_pins_mx: sdmmc2_mx-0 { ++ u-boot,dm-pre-reloc; ++ pins1 { ++ u-boot,dm-pre-reloc; ++ pinmux = , /* SDMMC2_D4 */ ++ , /* SDMMC2_D5 */ ++ , /* SDMMC2_D2 */ ++ , /* SDMMC2_D3 */ ++ , /* SDMMC2_D0 */ ++ , /* SDMMC2_D1 */ ++ , /* SDMMC2_D7 */ ++ , /* SDMMC2_D6 */ ++ ; /* SDMMC2_CMD */ ++ bias-pull-up; ++ drive-push-pull; ++ slew-rate = <1>; ++ }; ++ pins2 { ++ u-boot,dm-pre-reloc; ++ pinmux = ; /* SDMMC2_CK */ ++ bias-pull-up; ++ drive-push-pull; ++ slew-rate = <2>; ++ }; ++ }; ++ ++ sdmmc2_opendrain_pins_mx: sdmmc2_opendrain_mx-0 { ++ u-boot,dm-pre-reloc; ++ pins1 { ++ u-boot,dm-pre-reloc; ++ pinmux = , /* SDMMC2_D4 */ ++ , /* SDMMC2_D5 */ ++ , /* SDMMC2_D2 */ ++ , /* SDMMC2_D3 */ ++ , /* SDMMC2_D0 */ ++ , /* SDMMC2_D1 */ ++ , /* SDMMC2_D7 */ ++ ; /* SDMMC2_D6 */ ++ bias-pull-up; ++ drive-push-pull; ++ slew-rate = <1>; ++ }; ++ pins2 { ++ u-boot,dm-pre-reloc; ++ pinmux = ; /* SDMMC2_CK */ ++ bias-pull-up; ++ drive-push-pull; ++ slew-rate = <2>; ++ }; ++ pins3 { ++ u-boot,dm-pre-reloc; ++ pinmux = ; /* SDMMC2_CMD */ ++ bias-pull-up; ++ drive-open-drain; ++ slew-rate = <1>; ++ }; ++ }; ++ ++ sdmmc2_sleep_pins_mx: sdmmc2_sleep_mx-0 { ++ u-boot,dm-pre-reloc; ++ pins { ++ u-boot,dm-pre-reloc; ++ pinmux = , /* SDMMC2_D4 */ ++ , /* SDMMC2_D5 */ ++ , /* SDMMC2_D2 */ ++ , /* SDMMC2_D3 */ ++ , /* SDMMC2_D0 */ ++ , /* SDMMC2_D1 */ ++ , /* SDMMC2_D7 */ ++ , /* SDMMC2_CK */ ++ , /* SDMMC2_D6 */ ++ ; /* SDMMC2_CMD */ ++ }; ++ }; ++ ++ sdmmc3_pins_mx: sdmmc3_mx-0 { ++ u-boot,dm-pre-reloc; ++ pins1 { ++ u-boot,dm-pre-reloc; ++ pinmux = , /* SDMMC3_D3 */ ++ , /* SDMMC3_D0 */ ++ , /* SDMMC3_CMD */ ++ , /* SDMMC3_D1 */ ++ ; /* SDMMC3_D2 */ ++ bias-disable; ++ drive-push-pull; ++ slew-rate = <1>; ++ }; ++ pins2 { ++ u-boot,dm-pre-reloc; ++ pinmux = ; /* SDMMC3_CK */ ++ bias-disable; ++ drive-push-pull; ++ slew-rate = <2>; ++ }; ++ }; ++ ++ sdmmc3_opendrain_pins_mx: sdmmc3_opendrain_mx-0 { ++ u-boot,dm-pre-reloc; ++ pins1 { ++ u-boot,dm-pre-reloc; ++ pinmux = , /* SDMMC3_D3 */ ++ , /* SDMMC3_D0 */ ++ , /* SDMMC3_D1 */ ++ ; /* SDMMC3_D2 */ ++ bias-disable; ++ drive-push-pull; ++ slew-rate = <1>; ++ }; ++ pins2 { ++ u-boot,dm-pre-reloc; ++ pinmux = ; /* SDMMC3_CMD */ ++ bias-disable; ++ drive-open-drain; ++ slew-rate = <1>; ++ }; ++ pins3 { ++ u-boot,dm-pre-reloc; ++ pinmux = ; /* SDMMC3_CK */ ++ bias-disable; ++ drive-push-pull; ++ slew-rate = <2>; ++ }; ++ }; ++ ++ sdmmc3_sleep_pins_mx: sdmmc3_sleep_mx-0 { ++ u-boot,dm-pre-reloc; ++ pins { ++ u-boot,dm-pre-reloc; ++ pinmux = , /* SDMMC3_D3 */ ++ , /* SDMMC3_D0 */ ++ , /* SDMMC3_CMD */ ++ , /* SDMMC3_D1 */ ++ , /* SDMMC3_D2 */ ++ ; /* SDMMC3_CK */ ++ }; ++ }; ++ ++ uart4_pins_mx: uart4_mx-0 { ++ u-boot,dm-pre-reloc; ++ pins1 { ++ u-boot,dm-pre-reloc; ++ pinmux = ; /* UART4_RX */ ++ bias-disable; ++ }; ++ pins2 { ++ u-boot,dm-pre-reloc; ++ pinmux = ; /* UART4_TX */ ++ bias-disable; ++ drive-push-pull; ++ slew-rate = <0>; ++ }; ++ }; ++ ++ uart4_sleep_pins_mx: uart4_sleep_mx-0 { ++ u-boot,dm-pre-reloc; ++ pins { ++ u-boot,dm-pre-reloc; ++ pinmux = , /* UART4_RX */ ++ ; /* UART4_TX */ ++ }; ++ }; ++ ++ usart2_pins_mx: usart2_mx-0 { ++ pins1 { ++ pinmux = , /* USART2_CTS */ ++ ; /* USART2_RX */ ++ bias-disable; ++ }; ++ pins2 { ++ pinmux = , /* USART2_RTS */ ++ ; /* USART2_TX */ ++ bias-disable; ++ drive-push-pull; ++ slew-rate = <0>; ++ }; ++ }; ++ ++ usart2_sleep_pins_mx: usart2_sleep_mx-0 { ++ pins { ++ pinmux = , /* USART2_CTS */ ++ , /* USART2_RTS */ ++ , /* USART2_TX */ ++ ; /* USART2_RX */ ++ }; ++ }; ++ ++ ++ ++}; ++ ++&pinctrl_z { ++ u-boot,dm-pre-reloc; ++ ++ i2c2_pins_z_mx: i2c2_mx-0 { ++ pins { ++ pinmux = ; /* I2C2_SCL */ ++ bias-disable; ++ drive-open-drain; ++ slew-rate = <0>; ++ }; ++ }; ++ ++ i2c2_sleep_pins_z_mx: i2c2_sleep_mx-0 { ++ pins { ++ pinmux = ; /* I2C2_SCL */ ++ }; ++ }; ++ ++ i2c4_pins_z_mx: i2c4_mx-0 { ++ u-boot,dm-pre-reloc; ++ pins { ++ u-boot,dm-pre-reloc; ++ pinmux = , /* I2C4_SCL */ ++ ; /* I2C4_SDA */ ++ bias-disable; ++ drive-open-drain; ++ slew-rate = <0>; ++ }; ++ }; ++ ++ i2c4_sleep_pins_z_mx: i2c4_sleep_mx-0 { ++ u-boot,dm-pre-reloc; ++ pins { ++ u-boot,dm-pre-reloc; ++ pinmux = , /* I2C4_SCL */ ++ ; /* I2C4_SDA */ ++ }; ++ }; ++ ++ ++ ++}; ++ ++&m4_rproc{ ++ /*Restriction: "memory-region" property is not managed - please to use User-Section if needed*/ ++ mboxes = <&ipcc 2>; ++ mbox-names = "shutdown"; ++ recovery; ++ status = "okay"; ++ ++ ++ interrupt-parent = <&exti>; ++ interrupts = <68 1>; ++ interrupt-names = "wdg"; ++ wakeup-source; ++ ++}; ++ ++&bsec{ ++ status = "okay"; ++ ++ ++ ++}; ++ ++&dcmi{ ++ pinctrl-names = "default", "sleep"; ++ pinctrl-0 = <&dcmi_pins_mx>; ++ pinctrl-1 = <&dcmi_sleep_pins_mx>; ++ status = "okay"; ++ ++ ++ ++ port { ++ dcmi_0: endpoint { ++ remote-endpoint = <&ov5640_0>; ++ bus-width = <8>; ++ hsync-active = <0>; ++ vsync-active = <0>; ++ pclk-sample = <1>; ++ pclk-max-frequency = <77000000>; ++ }; ++ }; ++ ++ ++}; ++ ++&dsi{ ++ status = "okay"; ++ ++ ++ ++ #address-cells = <1>; ++ #size-cells = <0>; ++ status = "okay"; ++ ++ ports { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ port@0 { ++ reg = <0>; ++ dsi_in: endpoint { ++ remote-endpoint = <<dc_ep1_out>; ++ }; ++ }; ++ ++ port@1 { ++ reg = <1>; ++ dsi_out: endpoint { ++ remote-endpoint = <&panel_in>; ++ }; ++ }; ++ }; ++ ++ panel@0 { ++ compatible = "orisetech,otm8009a"; ++ reg = <0>; ++ reset-gpios = <&gpioe 9 GPIO_ACTIVE_LOW>; ++ power-supply = <&v3v3>; ++ status = "okay"; ++ ++ port { ++ panel_in: endpoint { ++ remote-endpoint = <&dsi_out>; ++ }; ++ }; ++ }; ++ ++ ++}; ++ ++ðernet0{ ++ pinctrl-names = "default", "sleep"; ++ pinctrl-0 = <ð1_pins_mx>; ++ pinctrl-1 = <ð1_sleep_pins_mx>; ++ status = "okay"; ++ ++ ++ st,eth_clk_sel = <1>; //custom ++ phy-mode = "rgmii-id"; ++ max-speed = <1000>; ++ phy-handle = <&phy0>; ++ ++ mdio0 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ compatible = "snps,dwmac-mdio"; ++ phy0: ethernet-phy@0 { ++ reg = <0>; ++ }; ++ }; ++ ++ ++}; ++ ++&gpu{ ++ status = "okay"; ++ ++ ++ contiguous-area = <&gpu_reserved>; ++ ++}; ++ ++&hsem{ ++ status = "okay"; ++ ++ ++ ++}; ++ ++&i2c1{ ++ pinctrl-names = "default", "sleep"; ++ pinctrl-0 = <&i2c1_pins_mx>; ++ pinctrl-1 = <&i2c1_sleep_pins_mx>; ++ status = "okay"; ++ ++ ++ ++ i2c-scl-rising-time-ns = <100>; ++ i2c-scl-falling-time-ns = <7>; ++ ++ /delete-property/dmas; ++ /delete-property/dma-names; ++ ++ ++ touchscreen@2a { ++ compatible = "focaltech,ft6236"; ++ reg = <0x2a>; ++ interrupts = <2 2>; ++ interrupt-parent = <&gpiof>; ++ interrupt-controller; ++ touchscreen-size-x = <480>; ++ touchscreen-size-y = <800>; ++ status = "okay"; ++ }; ++ touchscreen@38 { ++ compatible = "focaltech,ft6336"; ++ reg = <0x38>; ++ interrupts = <2 2>; ++ interrupt-parent = <&gpiof>; ++ interrupt-controller; ++ touchscreen-size-x = <480>; ++ touchscreen-size-y = <800>; ++ status = "okay"; ++ }; ++ ++ ++}; ++ ++&i2c2{ ++ pinctrl-names = "default", "sleep"; ++ pinctrl-0 = <&i2c2_pins_mx &i2c2_pins_z_mx>; ++ pinctrl-1 = <&i2c2_sleep_pins_mx &i2c2_sleep_pins_z_mx>; ++ status = "okay"; ++ ++ ++ ++ i2c-scl-rising-time-ns = <185>; ++ i2c-scl-falling-time-ns = <20>; ++ ++ /delete-property/dmas; ++ /delete-property/dma-names; ++ ++ ov5640: camera@3c { ++ compatible = "ovti,ov5640"; ++ reg = <0x3c>; ++ clocks = <&clk_ext_camera>; ++ clock-names = "xclk"; ++ DOVDD-supply = <&v3v3>; ++ //powerdown-gpios = <&stmfx_pinctrl 18 (GPIO_ACTIVE_HIGH | GPIO_PUSH_PULL)>; ++ //reset-gpios = <&stmfx_pinctrl 19 (GPIO_ACTIVE_LOW | GPIO_PUSH_PULL)>; ++ //powerdown-gpios = <&gpioc 3 GPIO_ACTIVE_HIGH>; //custom ++ //reset-gpios = <&gpioa 14 GPIO_ACTIVE_LOW>; //custom ++ rotation = <180>; ++ status = "okay"; ++ ++ port { ++ ov5640_0: endpoint { ++ remote-endpoint = <&dcmi_0>; ++ bus-width = <8>; ++ data-shift = <2>; /* lines 9:2 are used */ ++ hsync-active = <0>; ++ vsync-active = <0>; ++ pclk-sample = <1>; ++ pclk-max-frequency = <77000000>; ++ }; ++ }; ++ }; ++ ++ ++}; ++ ++&i2c4{ ++ u-boot,dm-pre-reloc; ++ pinctrl-names = "default", "sleep"; ++ pinctrl-0 = <&i2c4_pins_z_mx>; ++ pinctrl-1 = <&i2c4_sleep_pins_z_mx>; ++ status = "okay"; ++ ++ ++ i2c-scl-rising-time-ns = <185>; ++ i2c-scl-falling-time-ns = <20>; ++ /delete-property/dmas; ++ /delete-property/dma-names; ++ ++ typec: stusb1600@28 { ++ compatible = "st,stusb1600"; ++ reg = <0x28>; ++ interrupt-parent = <&gpioe>; ++ interrupts = <8 IRQ_TYPE_EDGE_FALLING>; ++ pinctrl-0 = <&stusb1600_pins_a>; ++ pinctrl-names = "default"; ++ status = "okay"; ++ ++ typec_con: connector { ++ compatible = "usb-c-connector"; ++ label = "USB-C"; ++ power-role = "dual"; ++ power-opmode = "default"; ++ }; ++ }; ++ ++ pmic: stpmic@33 { ++ compatible = "st,stpmic1"; ++ reg = <0x33>; ++ interrupts-extended = <&exti_pwr 55 IRQ_TYPE_EDGE_FALLING>; ++ interrupt-controller; ++ #interrupt-cells = <2>; ++ status = "okay"; ++ ++ st,main-control-register = <0x04>; ++ st,vin-control-register = <0xc0>; ++ st,usb-control-register = <0x20>; ++ ++ regulators { ++ compatible = "st,stpmic1-regulators"; ++ ++ ldo1-supply = <&v3v3>; ++ ldo3-supply = <&vdd_ddr>; ++ ldo6-supply = <&v3v3>; ++ pwr_sw1-supply = <&bst_out>; ++ pwr_sw2-supply = <&bst_out>; ++ ++ vddcore: buck1 { ++ regulator-name = "vddcore"; ++ regulator-min-microvolt = <1200000>; ++ regulator-max-microvolt = <1350000>; ++ regulator-always-on; ++ regulator-initial-mode = <0>; ++ regulator-over-current-protection; ++ }; ++ ++ vdd_ddr: buck2 { ++ regulator-name = "vdd_ddr"; ++ regulator-min-microvolt = <1350000>; ++ regulator-max-microvolt = <1350000>; ++ regulator-always-on; ++ regulator-initial-mode = <0>; ++ regulator-over-current-protection; ++ }; ++ ++ vdd: buck3 { ++ regulator-name = "vdd"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-always-on; ++ st,mask-reset; ++ regulator-initial-mode = <0>; ++ regulator-over-current-protection; ++ }; ++ ++ v3v3: buck4 { ++ regulator-name = "v3v3"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-always-on; ++ regulator-over-current-protection; ++ regulator-initial-mode = <0>; ++ }; ++ ++ v1v8_audio: ldo1 { ++ regulator-name = "v1v8_audio"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-always-on; ++ interrupts = ; ++ ++ }; ++ ++ v3v3_hdmi: ldo2 { ++ regulator-name = "v3v3_hdmi"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-always-on; ++ interrupts = ; ++ ++ }; ++ ++ vtt_ddr: ldo3 { ++ regulator-name = "vtt_ddr"; ++ regulator-min-microvolt = <500000>; ++ regulator-max-microvolt = <750000>; ++ regulator-always-on; ++ regulator-over-current-protection; ++ }; ++ ++ vdd_usb: ldo4 { ++ regulator-name = "vdd_usb"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ interrupts = ; ++ }; ++ ++ v3v3_eth: ldo5 { //custom ++ regulator-name = "v3v3_eth"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ interrupts = ; ++ regulator-boot-on; ++ }; ++ ++ v3v3_dsi: ldo6 { //custom ++ regulator-name = "v3v3_dsi"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-always-on; ++ interrupts = ; ++ ++ }; ++ ++ vref_ddr: vref_ddr { ++ regulator-name = "vref_ddr"; ++ regulator-always-on; ++ regulator-over-current-protection; ++ }; ++ ++ bst_out: boost { ++ regulator-name = "bst_out"; ++ interrupts = ; ++ regulator-always-on; //custom ++ }; ++ ++ vbus_otg: pwr_sw1 { ++ regulator-name = "vbus_otg"; ++ interrupts = ; ++ regulator-active-discharge; ++ regulator-always-on; //custom ++ }; ++ ++ vbus_sw: pwr_sw2 { ++ regulator-name = "vbus_sw"; ++ interrupts = ; ++ regulator-active-discharge; ++ regulator-always-on; //custom ++ }; ++ }; ++ ++ onkey { ++ compatible = "st,stpmic1-onkey"; ++ interrupts = , ; ++ interrupt-names = "onkey-falling", "onkey-rising"; ++ status = "okay"; ++ }; ++ ++ watchdog { ++ compatible = "st,stpmic1-wdt"; ++ status = "disabled"; ++ }; ++ }; ++ ++}; ++ ++&i2s2{ ++ pinctrl-names = "default", "sleep"; ++ pinctrl-0 = <&i2s2_pins_mx>; ++ pinctrl-1 = <&i2s2_sleep_pins_mx>; ++ status = "okay"; ++ ++ ++ ++}; ++ ++&ipcc{ ++ status = "okay"; ++ ++ ++ ++}; ++ ++&iwdg2{ ++ status = "okay"; ++ ++ ++ timeout-sec = <32>; ++ ++}; ++ ++<dc{ ++ pinctrl-names = "default", "sleep"; ++ pinctrl-0 = <<dc_pins_mx>; ++ pinctrl-1 = <<dc_sleep_pins_mx>; ++ status = "okay"; ++ ++ ++ ++ port { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ ltdc_ep1_out: endpoint@1 { ++ reg = <1>; ++ remote-endpoint = <&dsi_in>; ++ }; ++ }; ++ ++ ++ ++}; ++ ++&pwr{ ++ status = "okay"; ++ ++ ++ pwr-regulators { ++ vdd-supply = <&vdd>; ++ vdd_3v3_usbfs-supply = <&vdd_usb>; ++ }; ++ ++}; ++ ++&rcc{ ++ u-boot,dm-pre-reloc; ++ status = "okay"; ++ ++ ++ ++}; ++ ++&rng1{ ++ status = "okay"; ++ ++ ++ ++}; ++ ++&rtc{ ++ status = "okay"; ++ ++ ++ st,lsco = ; ++ ++}; ++ ++&sdmmc1{ ++ u-boot,dm-pre-reloc; ++ pinctrl-names = "default", "opendrain", "sleep"; ++ pinctrl-0 = <&sdmmc1_pins_mx>; ++ pinctrl-1 = <&sdmmc1_opendrain_pins_mx>; ++ pinctrl-2 = <&sdmmc1_sleep_pins_mx>; ++ status = "okay"; ++ ++ ++ broken-cd; ++ st,neg-edge; ++ bus-width = <4>; ++ vmmc-supply = <&v3v3>; ++ ++}; ++ ++&sdmmc2{ ++ u-boot,dm-pre-reloc; ++ pinctrl-names = "default", "opendrain", "sleep"; ++ pinctrl-0 = <&sdmmc2_pins_mx>; ++ pinctrl-1 = <&sdmmc2_opendrain_pins_mx>; ++ pinctrl-2 = <&sdmmc2_sleep_pins_mx>; ++ status = "okay"; ++ ++ ++ non-removable; ++ no-sd; ++ no-sdio; ++ st,neg-edge; ++ bus-width = <8>; ++ vmmc-supply = <&v3v3>; ++ vqmmc-supply = <&v3v3>; ++ mmc-ddr-3_3v; ++ ++ ++}; ++ ++&sdmmc3{ ++ u-boot,dm-pre-reloc; ++ pinctrl-names = "default", "opendrain", "sleep"; ++ pinctrl-0 = <&sdmmc3_pins_mx>; ++ pinctrl-1 = <&sdmmc3_opendrain_pins_mx>; ++ pinctrl-2 = <&sdmmc3_sleep_pins_mx>; ++ //status = "okay"; ++ ++ ++ arm,primecell-periphid = <0x10153180>; ++ non-removable; ++ st,neg-edge; ++ bus-width = <4>; ++ vmmc-supply = <&v3v3>; ++ //mmc-pwrseq = <&wifi_pwrseq>; //messes up sdmmc alias shifting when used ++ #address-cells = <1>; ++ #size-cells = <0>; ++ keep-power-in-suspend; ++ //status = "okay"; ++ ++ brcmf: bcrmf@1 { ++ reg = <1>; ++ compatible = "brcm,bcm4329-fmac"; ++ }; ++ ++ ++}; ++ ++&tamp{ ++ status = "okay"; ++ ++ ++ ++}; ++ ++&uart4{ ++ u-boot,dm-pre-reloc; ++ pinctrl-names = "default", "sleep"; ++ pinctrl-0 = <&uart4_pins_mx>; ++ pinctrl-1 = <&uart4_sleep_pins_mx>; ++ status = "okay"; ++ ++ ++ ++}; ++ ++&usart2{ ++ pinctrl-names = "default", "sleep"; ++ pinctrl-0 = <&usart2_pins_mx>; ++ pinctrl-1 = <&usart2_sleep_pins_mx>; ++ status = "okay"; ++ ++ ++ bluetooth { ++ shutdown-gpios = <&gpioe 10 GPIO_ACTIVE_HIGH>; ++ compatible = "brcm,bcm43438-bt"; ++ max-speed = <3000000>; ++ }; ++ ++}; ++ ++ ++&m4_rproc { ++memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>, ++ <&vdev0vring1>, <&vdev0buffer>; ++}; ++ ++&dma1 { ++ sram = <&dma_pool>; ++}; ++ ++&dma2 { ++ sram = <&dma_pool>; ++}; ++ ++&adc { ++ status = "disabled"; ++}; ++ ++ ++&usbh_ehci { ++ phys = <&usbphyc_port0>; ++ phy-names = "usb"; ++ status = "okay"; ++}; ++ ++&usbotg_hs { ++ extcon = <&typec>; ++ phys = <&usbphyc_port1 0>; ++ phy-names = "usb2-phy"; ++ status = "okay"; ++}; ++ ++&usbphyc { ++ vdd3v3-supply = <&vdd_usb>; ++ status = "okay"; ++}; ++ ++&usbphyc_port0 { ++ st,phy-tuning = <&usb_phy_tuning>; ++}; ++ ++&usbphyc_port1 { ++ st,phy-tuning = <&usb_phy_tuning>; ++}; +diff --git a/arch/arm/dts/stm32mp15-osd32mp1-ddr3-1x4Gb-1066-binG.dtsi b/arch/arm/dts/stm32mp15-osd32mp1-ddr3-1x4Gb-1066-binG.dtsi +new file mode 100644 +index 0000000000..f33886f2b4 +--- /dev/null ++++ b/arch/arm/dts/stm32mp15-osd32mp1-ddr3-1x4Gb-1066-binG.dtsi +@@ -0,0 +1,119 @@ ++/* ++ * Copyright (C) 2015-2018, STMicroelectronics - All Rights Reserved ++ * ++ * SPDX-License-Identifier: GPL-2.0+ BSD-3-Clause ++ * ++ */ ++ ++/* ++ * File generated by STMicroelectronics STM32CubeMX DDR Tool for MPUs ++ * DDR type: DDR3 / DDR3L ++ * DDR width: 16bits ++ * DDR density: 4Gb ++ * System frequency: 533000Khz ++ * Relaxed Timing Mode: false ++ * Address mapping type: RBC ++ * ++ * Save Date: 2020.02.08, save Time: 23:22:33 ++ */ ++ ++#define DDR_MEM_NAME "DDR3-DDR3L 16bits 533000Khz" ++#define DDR_MEM_SPEED 533000 ++#define DDR_MEM_SIZE 0x20000000 ++ ++#define DDR_MSTR 0x00041401 ++#define DDR_MRCTRL0 0x00000010 ++#define DDR_MRCTRL1 0x00000000 ++#define DDR_DERATEEN 0x00000000 ++#define DDR_DERATEINT 0x00800000 ++#define DDR_PWRCTL 0x00000000 ++#define DDR_PWRTMG 0x00400010 ++#define DDR_HWLPCTL 0x00000000 ++#define DDR_RFSHCTL0 0x00210000 ++#define DDR_RFSHCTL3 0x00000000 ++#define DDR_RFSHTMG 0x0081008B ++#define DDR_CRCPARCTL0 0x00000000 ++#define DDR_DRAMTMG0 0x121B2414 ++#define DDR_DRAMTMG1 0x000A041C ++#define DDR_DRAMTMG2 0x0608090F ++#define DDR_DRAMTMG3 0x0050400C ++#define DDR_DRAMTMG4 0x08040608 ++#define DDR_DRAMTMG5 0x06060403 ++#define DDR_DRAMTMG6 0x02020002 ++#define DDR_DRAMTMG7 0x00000202 ++#define DDR_DRAMTMG8 0x00001005 ++#define DDR_DRAMTMG14 0x000000A0 ++#define DDR_ZQCTL0 0xC2000040 ++#define DDR_DFITMG0 0x02060105 ++#define DDR_DFITMG1 0x00000202 ++#define DDR_DFILPCFG0 0x07000000 ++#define DDR_DFIUPD0 0xC0400003 ++#define DDR_DFIUPD1 0x00000000 ++#define DDR_DFIUPD2 0x00000000 ++#define DDR_DFIPHYMSTR 0x00000000 ++#define DDR_ODTCFG 0x06000600 ++#define DDR_ODTMAP 0x00000001 ++#define DDR_SCHED 0x00000C01 ++#define DDR_SCHED1 0x00000000 ++#define DDR_PERFHPR1 0x01000001 ++#define DDR_PERFLPR1 0x08000200 ++#define DDR_PERFWR1 0x08000400 ++#define DDR_DBG0 0x00000000 ++#define DDR_DBG1 0x00000000 ++#define DDR_DBGCMD 0x00000000 ++#define DDR_POISONCFG 0x00000000 ++#define DDR_PCCFG 0x00000010 ++#define DDR_PCFGR_0 0x00010000 ++#define DDR_PCFGW_0 0x00000000 ++#define DDR_PCFGQOS0_0 0x02100C03 ++#define DDR_PCFGQOS1_0 0x00800100 ++#define DDR_PCFGWQOS0_0 0x01100C03 ++#define DDR_PCFGWQOS1_0 0x01000200 ++#define DDR_PCFGR_1 0x00010000 ++#define DDR_PCFGW_1 0x00000000 ++#define DDR_PCFGQOS0_1 0x02100C03 ++#define DDR_PCFGQOS1_1 0x00800040 ++#define DDR_PCFGWQOS0_1 0x01100C03 ++#define DDR_PCFGWQOS1_1 0x01000200 ++#define DDR_ADDRMAP1 0x00070707 ++#define DDR_ADDRMAP2 0x00000000 ++#define DDR_ADDRMAP3 0x1F000000 ++#define DDR_ADDRMAP4 0x00001F1F ++#define DDR_ADDRMAP5 0x06060606 ++#define DDR_ADDRMAP6 0x0F060606 ++#define DDR_ADDRMAP9 0x00000000 ++#define DDR_ADDRMAP10 0x00000000 ++#define DDR_ADDRMAP11 0x00000000 ++#define DDR_PGCR 0x01442E02 ++#define DDR_PTR0 0x0022AA5B ++#define DDR_PTR1 0x04841104 ++#define DDR_PTR2 0x042DA068 ++#define DDR_ACIOCR 0x10400812 ++#define DDR_DXCCR 0x00000C40 ++#define DDR_DSGCR 0xF200011F ++#define DDR_DCR 0x0000000B ++#define DDR_DTPR0 0x38D488D0 ++#define DDR_DTPR1 0x098B00D8 ++#define DDR_DTPR2 0x10023600 ++#define DDR_MR0 0x00000840 ++#define DDR_MR1 0x00000000 ++#define DDR_MR2 0x00000208 ++#define DDR_MR3 0x00000000 ++#define DDR_ODTCR 0x00010000 ++#define DDR_ZQ0CR1 0x00000038 ++#define DDR_DX0GCR 0x0000CE81 ++#define DDR_DX0DLLCR 0x40000000 ++#define DDR_DX0DQTR 0xFFFFFFFF ++#define DDR_DX0DQSTR 0x3DB02000 ++#define DDR_DX1GCR 0x0000CE81 ++#define DDR_DX1DLLCR 0x40000000 ++#define DDR_DX1DQTR 0xFFFFFFFF ++#define DDR_DX1DQSTR 0x3DB02000 ++#define DDR_DX2GCR 0x0000CE80 ++#define DDR_DX2DLLCR 0x40000000 ++#define DDR_DX2DQTR 0xFFFFFFFF ++#define DDR_DX2DQSTR 0x3DB02000 ++#define DDR_DX3GCR 0x0000CE80 ++#define DDR_DX3DLLCR 0x40000000 ++#define DDR_DX3DQTR 0xFFFFFFFF ++#define DDR_DX3DQSTR 0x3DB02000 +diff --git a/arch/arm/dts/stm32mp157c.dtsi b/arch/arm/dts/stm32mp157c.dtsi +index 80081dde4e..0463e8813c 100644 +--- a/arch/arm/dts/stm32mp157c.dtsi ++++ b/arch/arm/dts/stm32mp157c.dtsi +@@ -1775,10 +1775,14 @@ + clock-names = "stmmaceth", + "mac-clk-tx", + "mac-clk-rx", ++ "eth-ck", //custom ++ "syscfg-clk", //custom + "ethstp"; + clocks = <&rcc ETHMAC>, + <&rcc ETHTX>, + <&rcc ETHRX>, ++ <&rcc ETHCK_K>, //custom ++ <&rcc SYSCFG>, //custom + <&rcc ETHSTP>; + st,syscon = <&syscfg 0x4>; + snps,mixed-burst; +-- +2.25.1 + diff --git a/board/octavo/osd32mp1-red/patches/uboot/0002-configs-stm32mp15_trusted_defconfig-disable-environm.patch b/board/octavo/osd32mp1-red/patches/uboot/0002-configs-stm32mp15_trusted_defconfig-disable-environm.patch new file mode 100644 index 000000000..cc43b80f2 --- /dev/null +++ b/board/octavo/osd32mp1-red/patches/uboot/0002-configs-stm32mp15_trusted_defconfig-disable-environm.patch @@ -0,0 +1,32 @@ +From 3feee3e00dcb9467b5345671300e7c73f3e05f93 Mon Sep 17 00:00:00 2001 +From: Kory Maincent +Date: Tue, 5 Oct 2021 14:31:28 +0200 +Subject: [PATCH 2/2] configs/stm32mp15_trusted_defconfig: disable environment + +select only ENV_IS_NOWHERE + +Signed-off-by: Kory Maincent +--- + configs/stm32mp15_trusted_defconfig | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/configs/stm32mp15_trusted_defconfig b/configs/stm32mp15_trusted_defconfig +index 7635d7f6c7..6ec4bcd080 100644 +--- a/configs/stm32mp15_trusted_defconfig ++++ b/configs/stm32mp15_trusted_defconfig +@@ -38,12 +38,6 @@ CONFIG_CMD_MTDPARTS=y + CONFIG_CMD_UBI=y + CONFIG_DEFAULT_DEVICE_TREE="stm32mp157c-ev1" + CONFIG_ENV_IS_NOWHERE=y +-CONFIG_ENV_IS_IN_EXT4=y +-CONFIG_ENV_IS_IN_SPI_FLASH=y +-CONFIG_ENV_IS_IN_UBI=y +-CONFIG_ENV_EXT4_INTERFACE="mmc" +-CONFIG_ENV_EXT4_DEVICE_AND_PART="0:auto" +-CONFIG_ENV_EXT4_FILE="/uboot.env" + CONFIG_STM32_ADC=y + CONFIG_USB_FUNCTION_FASTBOOT=y + CONFIG_FASTBOOT_BUF_ADDR=0xC0000000 +-- +2.25.1 + diff --git a/board/octavo/osd32mp1-red/readme.txt b/board/octavo/osd32mp1-red/readme.txt new file mode 100644 index 000000000..e087e3864 --- /dev/null +++ b/board/octavo/osd32mp1-red/readme.txt @@ -0,0 +1,37 @@ +OSD32MP1-RED + +Intro +===== + +This configuration supports the OSD32MP1-RED platform: + + https://octavosystems.com/octavo_products/osd32mp1-red/ + +How to build +============ + + $ make octavo_osd32mp1_red_defconfig + $ make + +How to write the microSD card +============================= + +Once the build process is finished you will have an image called +"sdcard.img" in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an microSD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + +Boot the board +============== + + (1) Insert the microSD card in connector X5. + + (2) Plug an USB-SERIAL cable in the JP4 pin connector and run your serial + communication program on /dev/ttySTM0. + + (3) Plug an USB-C cable in the J2 connector or use barrel power supply to + power-up the board. + + (4) The system will start, with the console on UART. diff --git a/board/octavo/osd32mp1-red/tfa-dts/osd32mp1-red.dts b/board/octavo/osd32mp1-red/tfa-dts/osd32mp1-red.dts new file mode 100644 index 000000000..a37b048a7 --- /dev/null +++ b/board/octavo/osd32mp1-red/tfa-dts/osd32mp1-red.dts @@ -0,0 +1,615 @@ +/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */ +/* + * Copyright (C) STMicroelectronics 2020 - All Rights Reserved + * Author: STM32CubeMX code generation for STMicroelectronics. + */ + +/* For more information on Device Tree configuration, please refer to + * https://wiki.st.com/stm32mpu/wiki/Category:Device_tree_configuration + */ + +/dts-v1/; +#include +#include "stm32mp15-osd32mp1-ddr3-1x4Gb-1066-binG.dtsi" + +#include "stm32mp157c.dtsi" +#include "stm32mp157cac-pinctrl.dtsi" +#include "stm32mp15-ddr.dtsi" +#include "stm32mp157c-security.dtsi" +#include + + +/ { + model = "Octavo OSD32MP1-RED board"; + compatible = "octavo,osd32mp1-red", "st,stm32mp157"; + + + chosen { + stdout-path = "serial0:115200n8"; + }; + + aliases { + serial0 = &uart4; + serial1 = &usart3; + serial2 = &uart7; + gpio0 = &gpioa; + gpio1 = &gpiob; + gpio2 = &gpioc; + gpio3 = &gpiod; + gpio4 = &gpioe; + gpio5 = &gpiof; + gpio6 = &gpiog; + gpio7 = &gpioh; + gpio8 = &gpioi; + gpio25 = &gpioz; + i2c3 = &i2c4; + }; + + + clocks { + + + + clk_lse: clk-lse { + st,drive = < LSEDRV_MEDIUM_HIGH >; + + + + }; + + clk_hse: clk-hse { + st,digbypass; + + + + }; + }; + +}; /*root*/ + +&pinctrl { + sdmmc1_pins_mx: sdmmc1_mx-0 { + pins1 { + pinmux = , /* SDMMC1_D0 */ + , /* SDMMC1_D1 */ + , /* SDMMC1_D2 */ + , /* SDMMC1_D3 */ + ; /* SDMMC1_CMD */ + bias-disable; + drive-push-pull; + slew-rate = <1>; + }; + pins2 { + pinmux = ; /* SDMMC1_CK */ + bias-disable; + drive-push-pull; + slew-rate = <3>; + }; + }; + + sdmmc2_pins_mx: sdmmc2_mx-0 { + pins1 { + pinmux = , /* SDMMC2_D4 */ + , /* SDMMC2_D5 */ + , /* SDMMC2_D2 */ + , /* SDMMC2_D3 */ + , /* SDMMC2_D0 */ + , /* SDMMC2_D1 */ + , /* SDMMC2_D7 */ + , /* SDMMC2_D6 */ + ; /* SDMMC2_CMD */ + bias-pull-up; + drive-push-pull; + slew-rate = <1>; + }; + pins2 { + pinmux = ; /* SDMMC2_CK */ + bias-pull-up; + drive-push-pull; + slew-rate = <2>; + }; + }; + + sdmmc3_pins_mx: sdmmc3_mx-0 { + pins1 { + pinmux = , /* SDMMC3_D3 */ + , /* SDMMC3_D0 */ + , /* SDMMC3_CMD */ + , /* SDMMC3_D1 */ + ; /* SDMMC3_D2 */ + bias-disable; + drive-push-pull; + slew-rate = <1>; + }; + pins2 { + pinmux = ; /* SDMMC3_CK */ + bias-disable; + drive-push-pull; + slew-rate = <2>; + }; + }; + + uart4_pins_mx: uart4_mx-0 { + pins1 { + pinmux = ; /* UART4_RX */ + bias-disable; + }; + pins2 { + pinmux = ; /* UART4_TX */ + bias-disable; + drive-push-pull; + slew-rate = <0>; + }; + }; + + + +}; + +&pinctrl_z { + i2c4_pins_z_mx: i2c4_mx-0 { + pins { + pinmux = , /* I2C4_SCL */ + ; /* I2C4_SDA */ + bias-disable; + drive-open-drain; + slew-rate = <0>; + }; + }; + + + +}; + +&rcc { + st,csi-cal; + st,hsi-cal; + st,cal-sec = <60>; + st,clksrc = < + CLK_MPU_PLL1P + CLK_AXI_PLL2P + CLK_MCU_PLL3P + CLK_PLL12_HSE + CLK_PLL3_HSE + CLK_PLL4_HSE + CLK_RTC_LSE + CLK_MCO1_DISABLED + CLK_MCO2_DISABLED + >; + st,clkdiv = < + 1 /*MPU*/ + 0 /*AXI*/ + 0 /*MCU*/ + 1 /*APB1*/ + 1 /*APB2*/ + 1 /*APB3*/ + 1 /*APB4*/ + 2 /*APB5*/ + 23 /*RTC*/ + 0 /*MCO1*/ + 0 /*MCO2*/ + >; + st,pkcs = < + CLK_CKPER_HSE + CLK_ETH_PLL3Q + CLK_SDMMC12_PLL4P + CLK_DSI_DSIPLL + CLK_STGEN_HSE + CLK_USBPHY_HSE + CLK_SPI2S1_DISABLED + CLK_SPI2S23_PLL3Q + CLK_SPI45_PCLK2 + CLK_SPI6_DISABLED + CLK_I2C46_HSI + CLK_SDMMC3_PLL4P + CLK_USBO_USBPHY + CLK_ADC_CKPER + CLK_CEC_DISABLED + CLK_I2C12_HSI + CLK_I2C35_PCLK1 + CLK_UART1_DISABLED + CLK_UART24_HSI + CLK_UART35_HSI + CLK_UART6_DISABLED + CLK_UART78_DISABLED + CLK_SPDIF_DISABLED + CLK_SAI1_DISABLED + CLK_SAI2_CKPER + CLK_SAI3_DISABLED + CLK_SAI4_DISABLED + CLK_RNG1_LSI + CLK_LPTIM1_DISABLED + CLK_LPTIM23_DISABLED + CLK_LPTIM45_DISABLED + >; + pll1:st,pll@0 { + cfg = < 2 80 0 1 1 PQR(1,0,0) >; + frac = < 0x800>; + }; + pll2:st,pll@1 { + cfg = < 2 65 1 0 0 PQR(1,1,1) >; + frac = < 0x1400>; + }; + pll3:st,pll@2 { + cfg = < 1 61 3 5 36 PQR(1,1,0) >; + frac = < 0x1000 >; + }; + /* VCO = 594.0 MHz => P = 99, Q = 74, R = 74 */ + pll4: st,pll@3 { + cfg = < 3 98 5 7 7 PQR(1,1,1) >; + }; +}; + +&bsec{ + status = "okay"; + secure-status = "okay"; + + + board_id: board_id@ec { + reg = <0xec 0x4>; + status = "okay"; + secure-status = "okay"; + }; + +}; + +&etzpc{ + st,decprot = < + /*"Non Secured" peripherals*/ + DECPROT(STM32MP1_ETZPC_DCMI_ID, DECPROT_NS_RW, DECPROT_UNLOCK) + DECPROT(STM32MP1_ETZPC_ETH_ID, DECPROT_NS_RW, DECPROT_UNLOCK) + DECPROT(STM32MP1_ETZPC_I2C1_ID, DECPROT_NS_RW, DECPROT_UNLOCK) + DECPROT(STM32MP1_ETZPC_I2C2_ID, DECPROT_NS_RW, DECPROT_UNLOCK) + DECPROT(STM32MP1_ETZPC_I2C4_ID, DECPROT_NS_RW, DECPROT_UNLOCK) + DECPROT(STM32MP1_ETZPC_I2C5_ID, DECPROT_NS_RW, DECPROT_UNLOCK) + DECPROT(STM32MP1_ETZPC_SPI2_ID, DECPROT_NS_RW, DECPROT_UNLOCK) + DECPROT(STM32MP1_ETZPC_RNG1_ID, DECPROT_NS_RW, DECPROT_UNLOCK) + DECPROT(STM32MP1_ETZPC_SAI2_ID, DECPROT_NS_RW, DECPROT_UNLOCK) + DECPROT(STM32MP1_ETZPC_SDMMC3_ID, DECPROT_NS_RW, DECPROT_UNLOCK) + DECPROT(STM32MP1_ETZPC_DLYBSD3_ID, DECPROT_NS_RW, DECPROT_UNLOCK) + DECPROT(STM32MP1_ETZPC_SPI5_ID, DECPROT_NS_RW, DECPROT_UNLOCK) + DECPROT(STM32MP1_ETZPC_TIM5_ID, DECPROT_NS_RW, DECPROT_UNLOCK) + DECPROT(STM32MP1_ETZPC_UART4_ID, DECPROT_NS_RW, DECPROT_UNLOCK) + DECPROT(STM32MP1_ETZPC_USART2_ID, DECPROT_NS_RW, DECPROT_UNLOCK) + + /*Restriction: following IDs are not managed - please to use User-Section if needed: + STM32MP1_ETZPC_DMA1_ID, STM32MP1_ETZPC_DMA2_ID, STM32MP1_ETZPC_DMAMUX_ID, + STM32MP1_ETZPC_SRAMx_ID, STM32MP1_ETZPC_RETRAM_ID, STM32MP1_ETZPC_BKPSRAM_ID*/ + + + /*STM32CubeMX generates a basic and standard configuration for ETZPC. + Additional device configurations can be added here if needed. + "etzpc" node could be also overloaded in "addons" User-Section.*/ + + >; + + secure-status = "okay"; + + + +}; + +&i2c4{ + pinctrl-names = "default"; + pinctrl-0 = <&i2c4_pins_z_mx>; + status = "okay"; + secure-status = "okay"; + + + i2c-scl-rising-time-ns = <185>; + i2c-scl-falling-time-ns = <20>; + + pmic: stpmic@33 { + compatible = "st,stpmic1"; + reg = <0x33>; + interrupts-extended = <&exti_pwr 55 IRQ_TYPE_EDGE_FALLING>; + interrupt-controller; + #interrupt-cells = <2>; + status = "okay"; + + st,main-control-register = <0x04>; + st,vin-control-register = <0xc0>; + st,usb-control-register = <0x20>; + + regulators { + compatible = "st,stpmic1-regulators"; + + ldo1-supply = <&v3v3>; + ldo3-supply = <&vdd_ddr>; + ldo6-supply = <&v3v3>; + + vddcore: buck1 { + regulator-name = "vddcore"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1350000>; + regulator-always-on; + regulator-initial-mode = <0>; + regulator-over-current-protection; + lp-stop { + regulator-on-in-suspend; + regulator-suspend-microvolt = <1200000>; + }; + standby-ddr-sr { + regulator-off-in-suspend; + }; + standby-ddr-off { + regulator-off-in-suspend; + }; + }; + + vdd_ddr: buck2 { + regulator-name = "vdd_ddr"; + regulator-min-microvolt = <1350000>; + regulator-max-microvolt = <1350000>; + regulator-always-on; + regulator-initial-mode = <0>; + regulator-over-current-protection; + lp-stop { + regulator-suspend-microvolt = <1350000>; + regulator-on-in-suspend; + }; + standby-ddr-sr { + regulator-suspend-microvolt = <1350000>; + regulator-on-in-suspend; + }; + standby-ddr-off { + regulator-off-in-suspend; + }; + }; + + vdd: buck3 { + regulator-name = "vdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + st,mask-reset; + regulator-initial-mode = <0>; + regulator-over-current-protection; + lp-stop { + regulator-suspend-microvolt = <3300000>; + regulator-on-in-suspend; + }; + standby-ddr-sr { + regulator-suspend-microvolt = <3300000>; + regulator-on-in-suspend; + }; + standby-ddr-off { + regulator-suspend-microvolt = <3300000>; + regulator-on-in-suspend; + }; + }; + + v3v3: buck4 { + regulator-name = "v3v3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + regulator-over-current-protection; + regulator-initial-mode = <0>; + lp-stop { + regulator-suspend-microvolt = <3300000>; + regulator-on-in-suspend; + }; + standby-ddr-sr { + regulator-off-in-suspend; + }; + standby-ddr-off { + regulator-off-in-suspend; + }; + }; + + v1v8_audio: ldo1 { + regulator-name = "v1v8_audio"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + standby-ddr-sr { + regulator-off-in-suspend; + }; + standby-ddr-off { + regulator-off-in-suspend; + }; + }; + + v3v3_hdmi: ldo2 { + regulator-name = "v3v3_hdmi"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + standby-ddr-sr { + regulator-off-in-suspend; + }; + standby-ddr-off { + regulator-off-in-suspend; + }; + }; + + vtt_ddr: ldo3 { + regulator-name = "vtt_ddr"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <750000>; + regulator-always-on; + regulator-over-current-protection; + lp-stop { + regulator-off-in-suspend; + }; + standby-ddr-sr { + regulator-off-in-suspend; + }; + standby-ddr-off { + regulator-off-in-suspend; + }; + }; + + vdd_usb: ldo4 { + regulator-name = "vdd_usb"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + standby-ddr-sr { + regulator-off-in-suspend; + }; + standby-ddr-off { + regulator-off-in-suspend; + }; + }; + + vdda: ldo5 { + regulator-name = "vdda"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + regulator-boot-on; + standby-ddr-sr { + regulator-off-in-suspend; + }; + standby-ddr-off { + regulator-off-in-suspend; + }; + }; + + v1v2_hdmi: ldo6 { + regulator-name = "v1v2_hdmi"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + standby-ddr-sr { + regulator-off-in-suspend; + }; + standby-ddr-off { + regulator-off-in-suspend; + }; + }; + + vref_ddr: vref_ddr { + regulator-name = "vref_ddr"; + regulator-always-on; + regulator-over-current-protection; + lp-stop { + regulator-on-in-suspend; + }; + standby-ddr-sr { + regulator-on-in-suspend; + }; + standby-ddr-off { + regulator-off-in-suspend; + }; + }; + }; + }; + +}; + +&iwdg2{ + status = "okay"; + secure-status = "okay"; + + + timeout-sec = <32>; + +}; + +&pwr{ + status = "okay"; + secure-status = "okay"; + + + system_suspend_supported_soc_modes = < + STM32_PM_CSLEEP_RUN + STM32_PM_CSTOP_ALLOW_LP_STOP + STM32_PM_CSTOP_ALLOW_STANDBY_DDR_SR + >; + system_off_soc_mode = ; + + pwr-regulators { + vdd-supply = <&vdd>; + }; + +}; + +&rcc{ + status = "okay"; + secure-status = "okay"; + + + +}; + +&rng1{ + status = "okay"; + secure-status = "okay"; + + + +}; + +&rtc{ + status = "okay"; + secure-status = "okay"; + + + +}; + +&sdmmc1{ + pinctrl-names = "default"; + pinctrl-0 = <&sdmmc1_pins_mx>; + status = "okay"; + + + broken-cd; + st,neg-edge; + bus-width = <4>; + vmmc-supply = <&v3v3>; + +}; + +&sdmmc2{ + pinctrl-names = "default"; + pinctrl-0 = <&sdmmc2_pins_mx>; + status = "okay"; + + + +}; + +&sdmmc3{ + pinctrl-names = "default"; + pinctrl-0 = <&sdmmc3_pins_mx>; + status = "okay"; + + + +}; + +&tamp{ + status = "okay"; + secure-status = "okay"; + + + +}; + +&uart4{ + pinctrl-names = "default"; + pinctrl-0 = <&uart4_pins_mx>; + status = "okay"; + + + +}; + + +/delete-node/ &qspi_bk1_pins_a; +/delete-node/ &qspi_bk2_pins_a; +/delete-node/ &qspi_clk_pins_a; +/delete-node/ &sdmmc1_b4_pins_a; +/delete-node/ &sdmmc1_dir_pins_a; +/delete-node/ &sdmmc1_dir_pins_b; +/delete-node/ &sdmmc2_b4_pins_a; +/delete-node/ &sdmmc2_d47_pins_a; +/delete-node/ &uart4_pins_a; +/delete-node/ &uart7_pins_a; +/delete-node/ &usart3_pins_a; +/delete-node/ &usart3_pins_b; +/delete-node/ &i2c4_pins_a; + + diff --git a/board/octavo/osd32mp1-red/tfa-dts/stm32mp15-osd32mp1-ddr3-1x4Gb-1066-binG.dtsi b/board/octavo/osd32mp1-red/tfa-dts/stm32mp15-osd32mp1-ddr3-1x4Gb-1066-binG.dtsi new file mode 100644 index 000000000..f33886f2b --- /dev/null +++ b/board/octavo/osd32mp1-red/tfa-dts/stm32mp15-osd32mp1-ddr3-1x4Gb-1066-binG.dtsi @@ -0,0 +1,119 @@ +/* + * Copyright (C) 2015-2018, STMicroelectronics - All Rights Reserved + * + * SPDX-License-Identifier: GPL-2.0+ BSD-3-Clause + * + */ + +/* + * File generated by STMicroelectronics STM32CubeMX DDR Tool for MPUs + * DDR type: DDR3 / DDR3L + * DDR width: 16bits + * DDR density: 4Gb + * System frequency: 533000Khz + * Relaxed Timing Mode: false + * Address mapping type: RBC + * + * Save Date: 2020.02.08, save Time: 23:22:33 + */ + +#define DDR_MEM_NAME "DDR3-DDR3L 16bits 533000Khz" +#define DDR_MEM_SPEED 533000 +#define DDR_MEM_SIZE 0x20000000 + +#define DDR_MSTR 0x00041401 +#define DDR_MRCTRL0 0x00000010 +#define DDR_MRCTRL1 0x00000000 +#define DDR_DERATEEN 0x00000000 +#define DDR_DERATEINT 0x00800000 +#define DDR_PWRCTL 0x00000000 +#define DDR_PWRTMG 0x00400010 +#define DDR_HWLPCTL 0x00000000 +#define DDR_RFSHCTL0 0x00210000 +#define DDR_RFSHCTL3 0x00000000 +#define DDR_RFSHTMG 0x0081008B +#define DDR_CRCPARCTL0 0x00000000 +#define DDR_DRAMTMG0 0x121B2414 +#define DDR_DRAMTMG1 0x000A041C +#define DDR_DRAMTMG2 0x0608090F +#define DDR_DRAMTMG3 0x0050400C +#define DDR_DRAMTMG4 0x08040608 +#define DDR_DRAMTMG5 0x06060403 +#define DDR_DRAMTMG6 0x02020002 +#define DDR_DRAMTMG7 0x00000202 +#define DDR_DRAMTMG8 0x00001005 +#define DDR_DRAMTMG14 0x000000A0 +#define DDR_ZQCTL0 0xC2000040 +#define DDR_DFITMG0 0x02060105 +#define DDR_DFITMG1 0x00000202 +#define DDR_DFILPCFG0 0x07000000 +#define DDR_DFIUPD0 0xC0400003 +#define DDR_DFIUPD1 0x00000000 +#define DDR_DFIUPD2 0x00000000 +#define DDR_DFIPHYMSTR 0x00000000 +#define DDR_ODTCFG 0x06000600 +#define DDR_ODTMAP 0x00000001 +#define DDR_SCHED 0x00000C01 +#define DDR_SCHED1 0x00000000 +#define DDR_PERFHPR1 0x01000001 +#define DDR_PERFLPR1 0x08000200 +#define DDR_PERFWR1 0x08000400 +#define DDR_DBG0 0x00000000 +#define DDR_DBG1 0x00000000 +#define DDR_DBGCMD 0x00000000 +#define DDR_POISONCFG 0x00000000 +#define DDR_PCCFG 0x00000010 +#define DDR_PCFGR_0 0x00010000 +#define DDR_PCFGW_0 0x00000000 +#define DDR_PCFGQOS0_0 0x02100C03 +#define DDR_PCFGQOS1_0 0x00800100 +#define DDR_PCFGWQOS0_0 0x01100C03 +#define DDR_PCFGWQOS1_0 0x01000200 +#define DDR_PCFGR_1 0x00010000 +#define DDR_PCFGW_1 0x00000000 +#define DDR_PCFGQOS0_1 0x02100C03 +#define DDR_PCFGQOS1_1 0x00800040 +#define DDR_PCFGWQOS0_1 0x01100C03 +#define DDR_PCFGWQOS1_1 0x01000200 +#define DDR_ADDRMAP1 0x00070707 +#define DDR_ADDRMAP2 0x00000000 +#define DDR_ADDRMAP3 0x1F000000 +#define DDR_ADDRMAP4 0x00001F1F +#define DDR_ADDRMAP5 0x06060606 +#define DDR_ADDRMAP6 0x0F060606 +#define DDR_ADDRMAP9 0x00000000 +#define DDR_ADDRMAP10 0x00000000 +#define DDR_ADDRMAP11 0x00000000 +#define DDR_PGCR 0x01442E02 +#define DDR_PTR0 0x0022AA5B +#define DDR_PTR1 0x04841104 +#define DDR_PTR2 0x042DA068 +#define DDR_ACIOCR 0x10400812 +#define DDR_DXCCR 0x00000C40 +#define DDR_DSGCR 0xF200011F +#define DDR_DCR 0x0000000B +#define DDR_DTPR0 0x38D488D0 +#define DDR_DTPR1 0x098B00D8 +#define DDR_DTPR2 0x10023600 +#define DDR_MR0 0x00000840 +#define DDR_MR1 0x00000000 +#define DDR_MR2 0x00000208 +#define DDR_MR3 0x00000000 +#define DDR_ODTCR 0x00010000 +#define DDR_ZQ0CR1 0x00000038 +#define DDR_DX0GCR 0x0000CE81 +#define DDR_DX0DLLCR 0x40000000 +#define DDR_DX0DQTR 0xFFFFFFFF +#define DDR_DX0DQSTR 0x3DB02000 +#define DDR_DX1GCR 0x0000CE81 +#define DDR_DX1DLLCR 0x40000000 +#define DDR_DX1DQTR 0xFFFFFFFF +#define DDR_DX1DQSTR 0x3DB02000 +#define DDR_DX2GCR 0x0000CE80 +#define DDR_DX2DLLCR 0x40000000 +#define DDR_DX2DQTR 0xFFFFFFFF +#define DDR_DX2DQSTR 0x3DB02000 +#define DDR_DX3GCR 0x0000CE80 +#define DDR_DX3DLLCR 0x40000000 +#define DDR_DX3DQTR 0xFFFFFFFF +#define DDR_DX3DQSTR 0x3DB02000 diff --git a/board/olimex/a10_olinuxino/boot.cmd b/board/olimex/a10_olinuxino/boot.cmd new file mode 120000 index 000000000..612c74550 --- /dev/null +++ b/board/olimex/a10_olinuxino/boot.cmd @@ -0,0 +1 @@ +../a20_olinuxino/boot.cmd \ No newline at end of file diff --git a/board/olimex/a10_olinuxino/genimage.cfg b/board/olimex/a10_olinuxino/genimage.cfg new file mode 120000 index 000000000..c21932fee --- /dev/null +++ b/board/olimex/a10_olinuxino/genimage.cfg @@ -0,0 +1 @@ +../a20_olinuxino/genimage.cfg \ No newline at end of file diff --git a/board/olimex/a10_olinuxino/post-build.sh b/board/olimex/a10_olinuxino/post-build.sh new file mode 120000 index 000000000..b34689602 --- /dev/null +++ b/board/olimex/a10_olinuxino/post-build.sh @@ -0,0 +1 @@ +../a20_olinuxino/post-build.sh \ No newline at end of file diff --git a/board/olimex/a10_olinuxino/readme.txt b/board/olimex/a10_olinuxino/readme.txt new file mode 100644 index 000000000..ba4bf6912 --- /dev/null +++ b/board/olimex/a10_olinuxino/readme.txt @@ -0,0 +1,57 @@ +A10-OLinuXino-LIME + +Intro +===== + +These are open hardware boards, all based on the Allwinner A10 SoC. + +for more details about the boards see the following pages: + - https://www.olimex.com/Products/OLinuXino/open-source-hardware + - https://www.olimex.com/Products/OLinuXino/A10/A10-OLinuXino-LIME/ + +The following defconfigs are available: + - olimex_a10_olinuxino_lime_defconfig + for the A10-OLinuXino-LIME board using mainline kernel + +(see http://linux-sunxi.org/Linux_Kernel for more details) + +How to build it +=============== + +Configure Buildroot: + + $ make _defconfig + +Compile everything and build the rootfs image: + + $ make + +Result of the build +------------------- + +After building, you should get a tree like this: + + output/images/ + +-- boot.scr + +-- rootfs.ext2 + +-- rootfs.ext4 -> rootfs.ext2 + +-- sdcard.img + +-- sun4i-a10-olinuxino-lime.dtb (lime, mainline) + +-- u-boot.bin + +-- u-boot-sunxi-with-spl.bin + `-- zImage + + +How to write the SD card +======================== + +The sdcard.img file is a complete bootable image ready to be written +on the boot medium. To install it, simply copy the image to a uSD +card: + + # dd if=output/images/sdcard.img of=/dev/sdX + +Where 'sdX' is the device node of the uSD. + +Eject the SD card, insert it in the A10-OLinuXino board, and power it up. + diff --git a/board/olimex/a13_olinuxino/boot.cmd b/board/olimex/a13_olinuxino/boot.cmd new file mode 100644 index 000000000..4dd1c7b75 --- /dev/null +++ b/board/olimex/a13_olinuxino/boot.cmd @@ -0,0 +1,7 @@ +setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait + +mmc dev 0 +fatload mmc 0 $kernel_addr_r zImage +fatload mmc 0 $fdt_addr_r sun5i-a13-olinuxino.dtb + +bootz $kernel_addr_r - $fdt_addr_r diff --git a/board/olimex/a13_olinuxino/genimage.cfg b/board/olimex/a13_olinuxino/genimage.cfg new file mode 100644 index 000000000..4eb14eb52 --- /dev/null +++ b/board/olimex/a13_olinuxino/genimage.cfg @@ -0,0 +1,34 @@ +image boot.vfat { + vfat { + files = { + "zImage", + "sun5i-a13-olinuxino.dtb", + "boot.scr" + } + } + + size = 64M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot-sunxi-with-spl.bin" + offset = 8K + size = 1016K # 1MB - 8KB + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/olimex/a13_olinuxino/post-build.sh b/board/olimex/a13_olinuxino/post-build.sh new file mode 100755 index 000000000..aa2a76bdd --- /dev/null +++ b/board/olimex/a13_olinuxino/post-build.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +MKIMAGE=$HOST_DIR/bin/mkimage + +$MKIMAGE -A arm -O linux -T script -C none \ + -d board/olimex/a13_olinuxino/boot.cmd \ + ${BINARIES_DIR}/boot.scr diff --git a/board/olimex/a13_olinuxino/readme.txt b/board/olimex/a13_olinuxino/readme.txt new file mode 100644 index 000000000..b64e339fd --- /dev/null +++ b/board/olimex/a13_olinuxino/readme.txt @@ -0,0 +1,43 @@ +A13-OLinuXino + +Intro +===== + +This default configuration will allow you to start experimenting with +the buildroot environment for the A13-OLinuXino. With the current +configuration it will bring-up the board, and allow access through the +serial console. + +For more details about the A13-OLinuXino: + +https://www.olimex.com/Products/OLinuXino/A13/A13-OLinuXino/open-source-hardware + +How to build it +=============== + +Configure Buildroot: + + $ make olimex_a13_olinuxino_defconfig + +Compile everything and build the rootfs image: + + $ make + +Note: you will need access to the internet to download the required +sources. + +How to write the SD card +======================== + +The sdcard.img file is a complete bootable image ready to be written +on the boot medium. To install it, simply copy the image to a micro SD +card: + + # dd if=output/images/sdcard.img of=/dev/sdX + +Notes: + - replace 'sdX' with the actual device with your micro SDcard, + - you may need to be root to do that (use 'sudo'). + +Eject the SD card, insert it in the A13-OLinuXino board, and power it +up. diff --git a/board/olimex/a20_olinuxino/boot.cmd b/board/olimex/a20_olinuxino/boot.cmd new file mode 100644 index 000000000..44d9239a9 --- /dev/null +++ b/board/olimex/a20_olinuxino/boot.cmd @@ -0,0 +1,5 @@ +setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p1 rootwait panic=10 ${extra} +ext4load mmc 0 0x49000000 /boot/${fdtfile} +ext4load mmc 0 0x46000000 /boot/zImage +env set fdt_high ffffffff +bootz 0x46000000 - 0x49000000 diff --git a/board/olimex/a20_olinuxino/genimage.cfg b/board/olimex/a20_olinuxino/genimage.cfg new file mode 100644 index 000000000..b48e12a83 --- /dev/null +++ b/board/olimex/a20_olinuxino/genimage.cfg @@ -0,0 +1,17 @@ +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot-sunxi-with-spl.bin" + offset = 8K + size = 1016K # 1MB - 8KB + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/board/olimex/a20_olinuxino/linux-disable-lima.fragment b/board/olimex/a20_olinuxino/linux-disable-lima.fragment new file mode 100644 index 000000000..4c36f8aab --- /dev/null +++ b/board/olimex/a20_olinuxino/linux-disable-lima.fragment @@ -0,0 +1,2 @@ +# Disable LIMA in favour of Mali +# CONFIG_DRM_LIMA is not set diff --git a/board/olimex/a20_olinuxino/post-build.sh b/board/olimex/a20_olinuxino/post-build.sh new file mode 100755 index 000000000..d3f612f81 --- /dev/null +++ b/board/olimex/a20_olinuxino/post-build.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +cp $BINARIES_DIR/boot.scr $TARGET_DIR/boot/boot.scr diff --git a/board/olimex/a20_olinuxino/readme.txt b/board/olimex/a20_olinuxino/readme.txt new file mode 100644 index 000000000..504483b51 --- /dev/null +++ b/board/olimex/a20_olinuxino/readme.txt @@ -0,0 +1,69 @@ +A20-OLinuXino-LIME and A20-OLinuXino-MICRO + +Intro +===== + +These are open hardware boards, all based on the Allwinner A20 SoC. + +for more details about the boards see the following pages: + - https://www.olimex.com/Products/OLinuXino/open-source-hardware + - https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXino-MICRO/ + - https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXino-LIME/ + - https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXino-LIME2/ + +The following defconfigs are available: + - olimex_a20_olinuxino_micro_defconfig + for the A20-OLinuXino-MICRO board using mainline kernel + - olimex_a20_olinuxino_lime_defconfig + for the A20-OLinuXino-LIME board using mainline kernel + - olimex_a20_olinuxino_lime2_defconfig + for the A20-OLinuXino-LIME2 board using mainline kernel + +The Mainline Kernel is already a much better choice for a headless server. +And also the mainline kernel works fine even for a basic Linux desktop +system running on top of a simple framebuffer, which may be good enough for +the users who do not need fancy 3D graphics or video playback acceleration. + +(see http://linux-sunxi.org/Linux_Kernel for more details) + +How to build it +=============== + +Configure Buildroot: + + $ make _defconfig + +Compile everything and build the rootfs image: + + $ make + +Result of the build +------------------- + +After building, you should get a tree like this: + + output/images/ + +-- rootfs.ext2 + +-- rootfs.ext4 -> rootfs.ext2 + +-- sdcard.img + +-- sun7i-a20-olinuxino-lime.dtb (lime, mainline) + +-- sun7i-a20-olinuxino-lime2.dtb (lime2, mainline) + +-- sun7i-a20-olinuxino-micro.dtb (micro, mainline) + +-- u-boot.bin + +-- u-boot-sunxi-with-spl.bin + `-- zImage + + +How to write the SD card +======================== + +The sdcard.img file is a complete bootable image ready to be written +on the boot medium. To install it, simply copy the image to a uSD +card: + + # dd if=output/images/sdcard.img of=/dev/sdX + +Where 'sdX' is the device node of the uSD. + +Eject the SD card, insert it in the A20-OLinuXino board, and power it up. + diff --git a/board/olimex/a20_olinuxino/rootfs_overlay/boot/extlinux/extlinux.conf b/board/olimex/a20_olinuxino/rootfs_overlay/boot/extlinux/extlinux.conf new file mode 100644 index 000000000..358bda056 --- /dev/null +++ b/board/olimex/a20_olinuxino/rootfs_overlay/boot/extlinux/extlinux.conf @@ -0,0 +1,4 @@ +label Olinuxino + kernel /boot/zImage + fdtdir /boot + append console=ttyS0,115200 root=/dev/mmcblk0p1 rootwait panic=10 drm_kms_helper.drm_leak_fbdev_smem=1 drm_kms_helper.drm_fbdev_overalloc=200 ${extra} diff --git a/board/olimex/a33_olinuxino/boot.cmd b/board/olimex/a33_olinuxino/boot.cmd new file mode 100644 index 000000000..44d9239a9 --- /dev/null +++ b/board/olimex/a33_olinuxino/boot.cmd @@ -0,0 +1,5 @@ +setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p1 rootwait panic=10 ${extra} +ext4load mmc 0 0x49000000 /boot/${fdtfile} +ext4load mmc 0 0x46000000 /boot/zImage +env set fdt_high ffffffff +bootz 0x46000000 - 0x49000000 diff --git a/board/olimex/a33_olinuxino/genimage.cfg b/board/olimex/a33_olinuxino/genimage.cfg new file mode 100644 index 000000000..b48e12a83 --- /dev/null +++ b/board/olimex/a33_olinuxino/genimage.cfg @@ -0,0 +1,17 @@ +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot-sunxi-with-spl.bin" + offset = 8K + size = 1016K # 1MB - 8KB + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/board/olimex/a33_olinuxino/post-build.sh b/board/olimex/a33_olinuxino/post-build.sh new file mode 100755 index 000000000..b41812065 --- /dev/null +++ b/board/olimex/a33_olinuxino/post-build.sh @@ -0,0 +1,2 @@ +#!/bin/sh +cp $BINARIES_DIR/boot.scr $TARGET_DIR/boot/boot.scr diff --git a/board/olimex/a33_olinuxino/readme.txt b/board/olimex/a33_olinuxino/readme.txt new file mode 100644 index 000000000..b19060200 --- /dev/null +++ b/board/olimex/a33_olinuxino/readme.txt @@ -0,0 +1,50 @@ +A33-OLinuXino + +Intro +===== + +This board is based on Allwinner A33 SoC. + +Home Page: https://www.olimex.com/Products/OLinuXino/A33/A33-OLinuXino/open-source-hardware +Wiki: https://wiki.amarulasolutions.com/bsp/sunxi/a33/Olimex-A33-Olinuxino.html + +How to build it +=============== + +Configure Buildroot: + + $ make olimex_a33_olinuxino_defconfig + +Build everything by running: + + $ make + +Result of the build +------------------- + +After building, you should get a tree like this: + +output/images/ +├── boot.scr +├── rootfs.ext2 +├── rootfs.ext4 -> rootfs.ext2 +├── rootfs.tar +├── sdcard.img +├── sun8i-a33-olinuxino.dtb +├── u-boot.bin +├── u-boot-sunxi-with-spl.bin +└── zImage + + +How to write the SD card +======================== + +The sdcard.img file is a complete bootable image ready to be written +on the boot medium. To install it, simply copy the image to a uSD +card: + + # dd if=output/images/sdcard.img of=/dev/sdX + +Where 'sdX' is the device node of the uSD. + +Eject the SD card, insert it in the A33-OLinuXino board, and power it up. diff --git a/board/olimex/a64-olinuxino/boot.cmd b/board/olimex/a64-olinuxino/boot.cmd new file mode 100644 index 000000000..28ed6d9dc --- /dev/null +++ b/board/olimex/a64-olinuxino/boot.cmd @@ -0,0 +1,6 @@ +setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait + +fatload mmc 0 $kernel_addr_r Image +fatload mmc 0 $fdt_addr_r sun50i-a64-olinuxino.dtb + +booti $kernel_addr_r - $fdt_addr_r diff --git a/board/olimex/a64-olinuxino/genimage.cfg b/board/olimex/a64-olinuxino/genimage.cfg new file mode 100644 index 000000000..ac59e915d --- /dev/null +++ b/board/olimex/a64-olinuxino/genimage.cfg @@ -0,0 +1,34 @@ +image boot.vfat { + vfat { + files = { + "Image", + "sun50i-a64-olinuxino.dtb", + "boot.scr" + } + } + + size = 64M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot-sunxi-with-spl.bin" + offset = 8K + size = 1032K # 1MB - 8KB + 16KB(GPT) + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/olimex/a64-olinuxino/readme.txt b/board/olimex/a64-olinuxino/readme.txt new file mode 100644 index 000000000..342bdc77d --- /dev/null +++ b/board/olimex/a64-olinuxino/readme.txt @@ -0,0 +1,37 @@ +Intro +===== + +This default configuration will allow you to start experimenting with the +buildroot environment for the A64-OLinuXino. With the current configuration +it will bring-up the board, and allow access through the serial console. + +A64-OLinuXino link: +https://www.olimex.com/Products/OLinuXino/A64/ + +Wiki link: +https://openedev.amarulasolutions.com/display/ODWIKI/Olimex+A64-Olinuxino + +This configuration uses U-Boot mainline and kernel mainline. + +How to build +============ + + $ make olimex_a64_olinuxino_defconfig + $ make + +Note: you will need access to the internet to download the required +sources. + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + $ sudo sync + +Insert the micro SDcard in your A64-OLinuXino and power it up. The console +is on the serial line, 115200 8N1. diff --git a/board/olimex/imx233_olinuxino/linux-wifi.fragment b/board/olimex/imx233_olinuxino/linux-wifi.fragment new file mode 100644 index 000000000..b70dea2c6 --- /dev/null +++ b/board/olimex/imx233_olinuxino/linux-wifi.fragment @@ -0,0 +1,18 @@ +# Network testing +CONFIG_WIRELESS=y +CONFIG_CFG80211=y +CONFIG_CFG80211_WEXT=y +CONFIG_MAC80211=y +# MII PHY device drivers +CONFIG_WLAN=y +CONFIG_RTL8187=m +CONFIG_ATH9K_HTC=m +CONFIG_RT2X00=m +CONFIG_RT73USB=m +CONFIG_RT2800USB=m +CONFIG_RT2800USB_RT53XX=y +CONFIG_RT2800USB_RT55XX=y +CONFIG_RT2800USB_UNKNOWN=y +CONFIG_RTL_CARDS=m +CONFIG_RTL8192CU=m +CONFIG_ZD1211RW=m diff --git a/board/olimex/imx233_olinuxino/readme.txt b/board/olimex/imx233_olinuxino/readme.txt new file mode 100644 index 000000000..1e676c45d --- /dev/null +++ b/board/olimex/imx233_olinuxino/readme.txt @@ -0,0 +1,29 @@ +This configuration is intended as a base image. +It includes kernel and firmware support for the common USB WiFi hardware. +Packages for WiFi support are up to the user, you'll probably want +one or more of: hostapd, iw, wireless_tools and/or wpa_supplicant. + +It also pulls up the console on the serial port, not on TV output. + +=== Output files after building ============================================== + +output/images ++-- boot.vfat (VFAT kernel partition image generated by genimage) ++-- imx23-olinuxino.dtb (device tree blob) ++-- rootfs.ext2 (Root file system) ++-- sdcard.img (Complete SD card image generated by genimage) ++-- u-boot.sd (U-Boot image) ++-- uImage (Kernel binary) + +=== Use of generated SD card image =========================================== + +To determine the device associated to the SD card have a look in the +/proc/partitions file: + + cat /proc/partitions + +Then, run the following command as root: + +*** WARNING! The command will destroy all the card content. Use with care! *** + + sudo dd if=output/images/sdcard.img of=/dev/ diff --git a/board/olimex/stmp1_olinuxino/genimage.cfg b/board/olimex/stmp1_olinuxino/genimage.cfg new file mode 100644 index 000000000..02800db8d --- /dev/null +++ b/board/olimex/stmp1_olinuxino/genimage.cfg @@ -0,0 +1,25 @@ +image sdcard.img { + hdimage { + partition-table-type = "gpt" + } + + partition fsbl1 { + image = "u-boot-spl.stm32" + size = 256K + } + + partition fsbl2 { + image = "u-boot-spl.stm32" + size = 256K + } + + partition ssbl { + image = "u-boot.img" + size = 2M + } + + partition rootfs { + image = "rootfs.ext4" + bootable = "yes" + } +} diff --git a/board/olimex/stmp1_olinuxino/linux.config b/board/olimex/stmp1_olinuxino/linux.config new file mode 100644 index 000000000..592c44368 --- /dev/null +++ b/board/olimex/stmp1_olinuxino/linux.config @@ -0,0 +1,125 @@ +CONFIG_SYSVIPC=y +CONFIG_PREEMPT=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_NAMESPACES=y +CONFIG_EMBEDDED=y +CONFIG_ARCH_STM32=y +CONFIG_ARM_THUMBEE=y +CONFIG_SMP=y +CONFIG_HIGHMEM=y +CONFIG_VFP=y +CONFIG_NEON=y +CONFIG_KERNEL_MODE_NEON=y +CONFIG_ARM_CRYPTO=y +CONFIG_MODULES=y +CONFIG_MODULE_FORCE_LOAD=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_CAN=m +CONFIG_CAN_M_CAN=m +CONFIG_CAN_M_CAN_PLATFORM=m +CONFIG_UEVENT_HELPER=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_OF_OVERLAY=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=4 +CONFIG_NETDEVICES=y +CONFIG_STMMAC_ETH=y +CONFIG_MICREL_PHY=y +CONFIG_INPUT_MOUSEDEV=m +CONFIG_INPUT_EVDEV=m +CONFIG_INPUT_MISC=y +CONFIG_INPUT_AXP20X_PEK=m +CONFIG_SERIAL_STM32=y +CONFIG_SERIAL_STM32_CONSOLE=y +CONFIG_NULL_TTY=m +CONFIG_SERIAL_DEV_BUS=m +CONFIG_HW_RANDOM=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MUX=y +CONFIG_I2C_STM32F7=y +CONFIG_SPI=y +CONFIG_SPI_MEM=y +CONFIG_SPI_STM32=m +CONFIG_SPI_STM32_QSPI=m +CONFIG_PINCTRL_AXP209=m +CONFIG_POWER_RESET=y +CONFIG_POWER_RESET_GPIO=y +CONFIG_POWER_RESET_GPIO_RESTART=y +CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE=y +CONFIG_CPU_THERMAL=y +CONFIG_WATCHDOG=y +CONFIG_MFD_AXP20X_I2C=y +CONFIG_MFD_STM32_LPTIMER=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_AXP20X=y +CONFIG_REGULATOR_STM32_VREFBUF=y +CONFIG_REGULATOR_STM32_PWR=y +CONFIG_DRM=y +CONFIG_DRM_STM=m +CONFIG_DRM_STM_DSI=m +CONFIG_DRM_PANEL_LVDS=m +CONFIG_DRM_PANEL_SIMPLE=m +CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO=m +CONFIG_DRM_ITE_IT66121=m +CONFIG_DRM_ETNAVIV=m +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_PWM=m +CONFIG_BACKLIGHT_GPIO=m +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_LOGO=y +CONFIG_USB=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_OHCI_HCD=y +CONFIG_MMC=y +CONFIG_MMC_ARMMMCI=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_STM32=y +CONFIG_DMADEVICES=y +CONFIG_STM32_DMA=y +CONFIG_STM32_DMAMUX=y +CONFIG_STM32_MDMA=y +CONFIG_UIO=m +CONFIG_UIO_PDRV_GENIRQ=m +CONFIG_UIO_DMEM_GENIRQ=m +CONFIG_HWSPINLOCK=y +CONFIG_HWSPINLOCK_STM32=y +CONFIG_CLKSRC_STM32_LP=y +CONFIG_STM32_IPCC=y +CONFIG_REMOTEPROC=y +CONFIG_STM32_RPROC=y +CONFIG_IIO=y +CONFIG_IIO_SW_TRIGGER=y +CONFIG_SD_ADC_MODULATOR=y +CONFIG_STM32_ADC_CORE=y +CONFIG_STM32_ADC=y +CONFIG_STM32_DFSDM_ADC=y +CONFIG_STM32_DAC=y +CONFIG_IIO_HRTIMER_TRIGGER=y +CONFIG_IIO_STM32_LPTIMER_TRIGGER=y +CONFIG_PWM=y +CONFIG_PWM_STM32=m +CONFIG_PWM_STM32_LP=m +CONFIG_PHY_STM32_USBPHYC=y +CONFIG_NVMEM_STM32_ROMEM=y +CONFIG_EXT4_FS=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_VFAT_FS=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_UTF8=y +CONFIG_PRINTK_TIME=y diff --git a/board/olimex/stmp1_olinuxino/readme.txt b/board/olimex/stmp1_olinuxino/readme.txt new file mode 100644 index 000000000..8c641c6c8 --- /dev/null +++ b/board/olimex/stmp1_olinuxino/readme.txt @@ -0,0 +1,53 @@ +STMP157-OLinuXino-LIME2 + +Intro +===== + +These are open hardware boards, all based on the STmicro STMP157 SoC. + +for more details about the board see the following pages: + - https://www.olimex.com/Products/OLinuXino/open-source-hardware + - https://www.olimex.com/Products/OLinuXino/STMP1/STMP157-OLinuXino-LIME2/ + +The following defconfigs are available: + - olimex_stmp157_olinuxino_lime_defconfig + +How to build it +=============== + +Configure Buildroot: + + $ make _defconfig + +Compile everything and build the rootfs image: + + $ make + +Result of the build +------------------- + +After building, you should get a tree like this: + + output/images/ + +-- rootfs.ext2 + +-- rootfs.ext4 -> rootfs.ext2 + +-- sdcard.img + +-- stm32mp1xx-olinuxino-lime.dtb + +-- u-boot-spl.stm32 + +-- u-boot.img + `-- zImage + + +How to write the SD card +======================== + +The sdcard.img file is a complete bootable image ready to be written +on the boot medium. To install it, simply copy the image to a uSD +card: + + # dd if=output/images/sdcard.img of=/dev/sdX + +Where 'sdX' is the device node of the uSD. + +Eject the SD card, insert it in the STMP1-OLinuXino board, and power it up. + diff --git a/board/olimex/stmp1_olinuxino/rootfs_overlay/boot/extlinux/extlinux.conf b/board/olimex/stmp1_olinuxino/rootfs_overlay/boot/extlinux/extlinux.conf new file mode 100644 index 000000000..edb601c7c --- /dev/null +++ b/board/olimex/stmp1_olinuxino/rootfs_overlay/boot/extlinux/extlinux.conf @@ -0,0 +1,4 @@ +label stmp1-olinuxino-buildroot + kernel /boot/zImage + devicetree /boot/stm32mp1xx-olinuxino-lime.dtb + append root=/dev/mmcblk0p4 rootwait diff --git a/board/olpc/genimage.cfg b/board/olpc/genimage.cfg new file mode 100644 index 000000000..baafe3171 --- /dev/null +++ b/board/olpc/genimage.cfg @@ -0,0 +1,9 @@ +image sdcard.img { + hdimage { + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/olpc/linux.config b/board/olpc/linux.config new file mode 100644 index 000000000..538f7c594 --- /dev/null +++ b/board/olpc/linux.config @@ -0,0 +1,71 @@ +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_PREEMPT=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_CFG80211=y +CONFIG_CFG80211_WEXT=y +CONFIG_MAC80211=y +CONFIG_RFKILL=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_SCSI=y +CONFIG_BLK_DEV_SD=y +CONFIG_BLK_DEV_SR=y +CONFIG_CHR_DEV_SG=y +CONFIG_MTD=y +CONFIG_MTD_BLOCK=y +CONFIG_GPIO_SYSFS=y +CONFIG_NETDEVICES=y +CONFIG_LIBERTAS=m +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1200 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=900 +CONFIG_INPUT_EVDEV=y +CONFIG_INPUT_TABLET=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_POWER_SUPPLY=y +CONFIG_BATTERY_OLPC=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_MEDIA_SUPPORT=y +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_CONTROLLER=y +CONFIG_VIDEO_V4L2_SUBDEV_API=y +CONFIG_MEDIA_USB_SUPPORT=y +CONFIG_USB_VIDEO_CLASS=m +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_DRM=y +CONFIG_DRM_PANEL_SIMPLE=m +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FB_SIMPLE=y +CONFIG_LCD_CLASS_DEVICE=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_USB=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_STORAGE=y +CONFIG_MMC=y +CONFIG_MMC_SDHCI=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y +CONFIG_RTC_CLASS=y +CONFIG_EXT4_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_FONTS=y +CONFIG_FONT_TER16x32=y diff --git a/board/olpc/olpc.fth b/board/olpc/olpc.fth new file mode 100644 index 000000000..b4cbecf11 --- /dev/null +++ b/board/olpc/olpc.fth @@ -0,0 +1,47 @@ +\ OLPC XO boot script + +: (visible) " unfreeze visible" evaluate ; +' (visible) catch drop forget (visible) + +" /aliases" find-device " last" get-property +abort" No last alias" +" /pci/sd@c" 2over substring? if " root=/dev/mmcblk0p1 " to boot-file then +" /sd/sdhci@d4280000" 2over substring? if " root=/dev/mmcblk1p1 " to boot-file then +" /pci/usb@" 2over substring? if " root=/dev/sda1 " to boot-file then +" /usb@" 2over substring? if " root=/dev/sda1 " to boot-file then +" /pci/nandflash@c" 2over substring? if " root=/dev/mtdblock0 rootfstype=jffs2 " to boot-file then +2drop + +root-device " compatible" get-property dend if 0 0 then ( compatible$ ) +" olpc,xo-1.75" 2over sindex -1 > if ( compatible$ ) + \ Version check on XO-1.75 + " mrvl,mmp2" 2over sindex -1 = if ( compatible$ ) + 2drop ( ) + cr + ." Firmware Q4E00 or newer is needed to boot a Devicetree enabled kernel." cr + cr + ." One way to update is to copy http://dev.laptop.org/~quozl/q4e00ja.rom" cr + ." to a FAT partition on a USB flash stick and run ""flash u:\q4e00ja.rom""" cr + cr + ." Aborting boot." cr + " show-sad" evaluate + abort + then +then ( compatible$ ) + +" mmp" 2swap sindex -1 > if + \ A Marvell MMP-based machine + " last:\boot\zImage" to boot-device + boot-file " console=ttyS2,115200 " $cat2 to boot-file +else + \ Assume XO-1 + " last:\boot\bzImage" to boot-device + boot-file " console=ttyS0,115200 reboot=pci " $cat2 to boot-file +then + +\ Pick a terminal that looks better on the XO screen +root-device " architecture" get-property dend if 0 0 else 1- then +" OLPC" $= if boot-file " fbcon=font:TER16x32 vt.color=0xf0 " $cat2 to boot-file then + +boot-file " console=tty0 rootwait" $cat2 to boot-file +boot diff --git a/board/olpc/post-build.sh b/board/olpc/post-build.sh new file mode 100755 index 000000000..4d4cf9708 --- /dev/null +++ b/board/olpc/post-build.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" +install -m 0644 -D $BOARD_DIR/olpc.fth $TARGET_DIR/boot/olpc.fth diff --git a/board/olpc/readme.txt b/board/olpc/readme.txt new file mode 100644 index 000000000..f1110c82c --- /dev/null +++ b/board/olpc/readme.txt @@ -0,0 +1,98 @@ +OLPC XO Laptops +=============== + +This document explains how to build and run images that run on the OLPC +XO laptops. + +Supported models +---------------- + +* OLPC XO-1 + The original NS Geode based OLPC laptop, uses the x86 architecture. + Can be booted either from an internal MTD device formatted with JFFS2 + or from a FAT or EXT4 partition on a SD card or a USB flash stick. + +* OLPC XO-7.5 + The ARM-based laptop. Needs a recent enough firmware to provide a good + enough flattened device tree to the kernel. Can be from a FAT or EXT4 + partition on a internal eMMC, a SD card or a USB flash stick. + +Configure and build +=================== + + $ make olpc_xo1_defconfig # Configure for XO-1 + +or: + + $ make olpc_xo175_defconfig # Configure for XO-1.75 + +Then: + + $ make menuconfig # Customize the build configuration + $ make # Build + +Preparing the machine +===================== + +Firmware security +----------------- + +Most OLPC machines were shipped with the security system that disallows +booting unsigned software. If this is the case with your machine, in order +to run the image you've built on it you'll need to get a developer key and +deactivate the security system. + +The procedure is descriped in the OLPC wiki: +http://wiki.laptop.org/go/Activation_and_Developer_Keys + +Firmware upgrade +---------------- + +It is always preferrable to use an up to date firmware. The firmware images +are available at http://wiki.laptop.org/go/Firmware. For the XO-1.75 laptop +to boot the mainline kernel a firmware Q4E00JA or newer is needed. You can +get it at http://dev.laptop.org/~quozl/q4e00ja.rom. + +To update the firmware, place the .rom file on to your bootable media, +connect a charged battery pack and a wall adapter, and enter the Open +Firmware prompt by pressing ESC during the early boot (needs an unlocked +laptop -- see "Firmware security" above). Then use the "flash" command +to update the firmware: + + ok flash ext:\q4e00ja.rom \ Flash the "q4e00ja.rom" from the SD card + ok flash u:\q4e00ja.rom \ Flash the "q4e00ja.rom" from USB stick + +Create the bootable SD card or USB flash stick +============================================== + +When the build is finished, an image file called "sdcard.img" will be created. +It is suitable for writing directly to a SD card, USB flash stick or (on a +XO-1.75) the internal eMMC flash. + +Before writing the image, please double check that you're using the right +device (e.g. with "lsblk" command). Doing the following will DESTROY ALL DATA +that's currently on the media. + + # cat output/images/sdcard.img >/dev/ + +Flashing the JFFS2 image (XO-1 only) +==================================== + +Unlike XO-1.75, the internal NAND flash on XO-1 is accessed without a +FTL and needs a flash-friendly filesystem. A build configured for XO-1 +creates a file named "root.jffs2" that can be written to it. + +One way to write it is from the Open Firmware prompt. First, partition +and format a USB flash disk with a FAT file system and place the +"root.jffs2" file onto it. Then power on the machine, enter the +Open Firmware port by pressing the ESC key and run the following: + + ok patch noop ?open-crcs copy-nand \ Disable CRC check + ok copy-nand u:\root.jffs2 + +Booting the machine +=================== + +Once your machine is unlocked, it will automatically boot from your media +wherever it will detect it attached to the USB bus or the SD card slot, +otherwise it will proceed booting from the internal flash. diff --git a/board/olpc/xo-1.75/linux.config b/board/olpc/xo-1.75/linux.config new file mode 100644 index 000000000..937cc38bd --- /dev/null +++ b/board/olpc/xo-1.75/linux.config @@ -0,0 +1,55 @@ +CONFIG_ARCH_MMP=y +CONFIG_MACH_MMP2_DT=y +CONFIG_MACH_MMP3_DT=y +CONFIG_USB_EHCI_MV_U2O=y +CONFIG_SMP=y +CONFIG_NR_CPUS=2 +CONFIG_HIGHMEM=y +CONFIG_FORCE_MAX_ZONEORDER=16 +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_ARM_APPENDED_DTB=y +CONFIG_ARM_ATAG_DTB_COMPAT=y +CONFIG_VFP=y +CONFIG_NEON=y +CONFIG_SENSORS_LIS3_SPI=y +CONFIG_SERIO_OLPC_APSP=y +CONFIG_REGULATOR_88PG86X=m +CONFIG_MEDIA_PLATFORM_SUPPORT=y +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_VIDEO_MMP_CAMERA=y +CONFIG_DRM_ARMADA=y +CONFIG_DRM_CHRONTEL_CH7033=m +CONFIG_DRM_DISPLAY_CONNECTOR=m +CONFIG_DRM_SIMPLE_BRIDGE=m +CONFIG_DRM_ETNAVIV=m +CONFIG_USB_EHCI_MV=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_PXAV3=y +CONFIG_OLPC_XO175=y +CONFIG_OLPC_XO175_EC=y +CONFIG_PHY_PXA_USB=y +CONFIG_PHY_MMP3_USB=y +CONFIG_CRYPTO_LZO=m +CONFIG_LIBERTAS_SDIO=m +CONFIG_LIBERTAS_THINFIRM=m +CONFIG_MWIFIEX=m +CONFIG_MWIFIEX_SDIO=m +CONFIG_MTD_SPI_NOR=m +CONFIG_SRAM=y +CONFIG_I2C_PXA=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SPI=y +CONFIG_SPI_PXA2XX=y +CONFIG_SPI_SLAVE=y +CONFIG_SND_SOC=y +CONFIG_SND_MMP_SOC_SSPA=y +CONFIG_SND_SOC_RT5631=y +CONFIG_SND_AUDIO_GRAPH_CARD=y +CONFIG_PWRSEQ_SD8787=m +CONFIG_RTC_DRV_DS1307=y +CONFIG_DMADEVICES=y +CONFIG_MMP_TDMA=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_ZFORCE=y +CONFIG_COMMON_CLK_MMP2_AUDIO=y diff --git a/board/olpc/xo-1/linux.config b/board/olpc/xo-1/linux.config new file mode 100644 index 000000000..12919471a --- /dev/null +++ b/board/olpc/xo-1/linux.config @@ -0,0 +1,80 @@ +# CONFIG_64BIT is not set +CONFIG_IOSF_MBI=y +CONFIG_MGEODE_LX=y +CONFIG_X86_MSR=y +CONFIG_HZ_100=y +CONFIG_KEXEC=y +CONFIG_CMDLINE_BOOL=y +CONFIG_ACPI=y +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_OLPC=y +CONFIG_OLPC_XO1_PM=y +CONFIG_OLPC_XO1_RTC=y +CONFIG_OLPC_XO1_SCI=y +# CONFIG_VIRTUALIZATION is not set +CONFIG_SPARSEMEM_MANUAL=y +CONFIG_CMA=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_REDBOOT_PARTS=y +CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=0 +CONFIG_MTD_ONENAND=y +CONFIG_MTD_ONENAND_GENERIC=y +CONFIG_MTD_RAW_NAND=y +CONFIG_MTD_NAND_CAFE=y +CONFIG_MTD_UBI=y +CONFIG_CS5535_MFGPT=y +CONFIG_CS5535_CLOCK_EVENT_SRC=y +CONFIG_MOUSE_PS2_OLPC=y +CONFIG_SERIAL_8250_NR_UARTS=1 +CONFIG_SERIAL_8250_RUNTIME_UARTS=1 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_8250_DETECT_IRQ=y +CONFIG_SERIAL_8250_RSA=y +CONFIG_HW_RANDOM=y +# CONFIG_HW_RANDOM_VIA is not set +CONFIG_NVRAM=y +CONFIG_SCx200_ACB=y +CONFIG_PINCTRL=y +CONFIG_PINCTRL_SINGLE=y +CONFIG_GPIO_CS5535=y +CONFIG_THERMAL=y +CONFIG_WATCHDOG=y +CONFIG_GEODE_WDT=y +CONFIG_MFD_CS5535=y +CONFIG_MFD_MAX8925=y +CONFIG_VIDEO_CAFE_CCIC=y +CONFIG_FB_TILEBLITTING=y +CONFIG_FB_VESA=y +CONFIG_FB_GEODE=y +CONFIG_FB_GEODE_LX=y +CONFIG_BACKLIGHT_MAX8925=y +CONFIG_VGACON_SOFT_SCROLLBACK=y +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y +CONFIG_SND_OSSEMUL=y +CONFIG_SND_DYNAMIC_MINORS=y +CONFIG_SND_AC97_POWER_SAVE=y +CONFIG_SND_CS5535AUDIO=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_OHCI_HCD=y +CONFIG_MMC_SDHCI_PCI=y +CONFIG_STAGING=y +CONFIG_FB_OLPC_DCON=y +CONFIG_XO1_RFKILL=y +CONFIG_RESET_CONTROLLER=y +CONFIG_GENERIC_PHY=y +CONFIG_PROC_KCORE=y +CONFIG_HUGETLBFS=y +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_FS_WBUF_VERIFY=y +CONFIG_JFFS2_SUMMARY=y +CONFIG_JFFS2_FS_XATTR=y +CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_UBIFS_FS=y +CONFIG_PCI=y +CONFIG_LIBERTAS_USB=m +CONFIG_LIBERTAS_MESH=y +CONFIG_LIBERTAS_THINFIRM=m +CONFIG_LIBERTAS_THINFIRM_USB=m diff --git a/board/openblocks/a6/readme.txt b/board/openblocks/a6/readme.txt new file mode 100644 index 000000000..10a78bb79 --- /dev/null +++ b/board/openblocks/a6/readme.txt @@ -0,0 +1,78 @@ +Openblocks A6 + +Intro +===== + +This default configuration will allow you to start experimenting with the +buildroot environment for the Openblocks A6. With the current configuration +it will bring-up the board, and allow access through the serial console. + +How to build it +=============== + +Configure Buildroot: + + $ make openblocks_a6_defconfig + +Compile everything: + + $ make + +Updating board over TFTP +======================== + +Copy the content of output/images to the root of your TFTP server. + +Connect serial and ethernet, power up board and stop it in U-Boot: + +DRAM (DDR2) CAS Latency = 5 tRP = 5 tRAS = 14 tRCD=5 +DRAM CS[0] base 0x00000000 size 512MB +DRAM Total size 512MB 16bit width +Addresses 8M - 0M are saved for the U-Boot usage. +Mem malloc Initialization (8M - 7M): Done +NAND:64 MB +POST: mac verify Eth0 PASSED + +CPU : Marvell Feroceon (Rev 1) + +Streaming disabled +Write allocate disabled + + +USB 0: host mode +Net: egiga0 +Hit any key to stop autoboot: 0 +openblocks>> + + +Load kernel from tftp: + +setenv serverip +setenv bootfile uImage.kirkwood-openblocks_a6 +bootp && tftp + + +Write it to nand: + +nand erase 0x590000 0x1c5c000 +nand write.e $loadaddr 0x590000 0x1c5c000 + + +Load rootfs from tftp: + +setenv serverip +setenv bootfile rootfs.jffs2 +bootp && tftp + + +Write it to nand: + +nand erase 0x2214000 0x1dc4000 +nand write.jffs2 $loadaddr 0x2214000 0x1dc4000 + + +Configure kernel to use rootfs: + +setenv root /dev/mtdblock5 rootfstype=jffs2 +saveenv +boot diff --git a/board/orangepi/common/extlinux.conf b/board/orangepi/common/extlinux.conf new file mode 100644 index 000000000..12f496b1f --- /dev/null +++ b/board/orangepi/common/extlinux.conf @@ -0,0 +1,4 @@ +LABEL default + kernel /boot/%LINUXIMAGE% + devicetreedir /boot + append root=PARTUUID=%PARTUUID% rootwait console=${console} rootfstype=ext4 quiet panic=10 diff --git a/board/orangepi/common/genimage.cfg b/board/orangepi/common/genimage.cfg new file mode 100644 index 000000000..c748108ca --- /dev/null +++ b/board/orangepi/common/genimage.cfg @@ -0,0 +1,20 @@ +image sdcard.img { + partition u-boot { + in-partition-table = false + image = "u-boot-sunxi-with-spl.bin" + offset = 8K + size = 1000K # 1MB - 8KB(offset) - 16KB(GPT) + } + + hdimage { + partition-table-type = "gpt" + gpt-location = 1008K # 1MB - 16KB(GPT) + gpt-no-backup = true + } + + partition rootfs { + offset = 1M + image = "rootfs.ext4" + partition-uuid = %PARTUUID% + } +} diff --git a/board/orangepi/common/post-build.sh b/board/orangepi/common/post-build.sh new file mode 100755 index 000000000..296f94b17 --- /dev/null +++ b/board/orangepi/common/post-build.sh @@ -0,0 +1,34 @@ +#!/bin/sh + +linux_image() +{ + if grep -Eq "^BR2_LINUX_KERNEL_UIMAGE=y$" ${BR2_CONFIG}; then + echo "uImage" + elif grep -Eq "^BR2_LINUX_KERNEL_IMAGE=y$" ${BR2_CONFIG}; then + echo "Image" + elif grep -Eq "^BR2_LINUX_KERNEL_IMAGEGZ=y$" ${BR2_CONFIG}; then + echo "Image.gz" + else + echo "zImage" + fi +} + +generic_getty() +{ + if grep -Eq "^BR2_TARGET_GENERIC_GETTY=y$" ${BR2_CONFIG}; then + echo "" + else + echo "s/\s*console=\S*//" + fi +} + +PARTUUID="$($HOST_DIR/bin/uuidgen)" + +install -d "$TARGET_DIR/boot/extlinux/" + +sed -e "$(generic_getty)" \ + -e "s/%LINUXIMAGE%/$(linux_image)/g" \ + -e "s/%PARTUUID%/$PARTUUID/g" \ + "board/orangepi/common/extlinux.conf" > "$TARGET_DIR/boot/extlinux/extlinux.conf" + +sed "s/%PARTUUID%/$PARTUUID/g" "board/orangepi/common/genimage.cfg" > "$BINARIES_DIR/genimage.cfg" diff --git a/board/orangepi/orangepi-lite/boot.cmd b/board/orangepi/orangepi-lite/boot.cmd new file mode 100644 index 000000000..5c29dabfe --- /dev/null +++ b/board/orangepi/orangepi-lite/boot.cmd @@ -0,0 +1,8 @@ +setenv fdt_high ffffffff + +setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait + +fatload mmc 0 $kernel_addr_r zImage +fatload mmc 0 $fdt_addr_r sun8i-h3-orangepi-lite.dtb + +bootz $kernel_addr_r - $fdt_addr_r diff --git a/board/orangepi/orangepi-lite/genimage.cfg b/board/orangepi/orangepi-lite/genimage.cfg new file mode 100644 index 000000000..b422a751a --- /dev/null +++ b/board/orangepi/orangepi-lite/genimage.cfg @@ -0,0 +1,37 @@ +# Minimal SD card image for the OrangePi Lite +# +image boot.vfat { + vfat { + files = { + "zImage", + "sun8i-h3-orangepi-lite.dtb", + "boot.scr" + } + } + + size = 10M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot-sunxi-with-spl.bin" + offset = 8K + size = 1016K # 1MB - 8KB + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/board/orangepi/orangepi-lite/linux-extras.config b/board/orangepi/orangepi-lite/linux-extras.config new file mode 100644 index 000000000..6bb716903 --- /dev/null +++ b/board/orangepi/orangepi-lite/linux-extras.config @@ -0,0 +1,15 @@ +# wireless core +CONFIG_WIRELESS=y +CONFIG_CFG80211=y +CONFIG_MAC80211=y +CONFIG_CFG80211_WEXT=y + +# wireless drivers +CONFIG_WLAN=y + +# hdmi +CONFIG_DRM_SUN8I_DW_HDMI=y +CONFIG_SUN8I_DE2_CCU=y + +# analog audio +CONFIG_SND_SUN8I_CODEC_ANALOG=y diff --git a/board/orangepi/orangepi-lite/readme.txt b/board/orangepi/orangepi-lite/readme.txt new file mode 100644 index 000000000..5f402bf20 --- /dev/null +++ b/board/orangepi/orangepi-lite/readme.txt @@ -0,0 +1,29 @@ +OrangePi Lite + +Intro +===== + +This default configuration will allow you to start experimenting with the +buildroot environment for the OrangePi Lite. With the current configuration +it will bring-up the board, and allow access through the serial console. + +How to build it +=============== + +Configure Buildroot: + + $ make orangepi_lite_defconfig + +Compile everything and build the SD card image: + + $ make + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX diff --git a/board/orangepi/orangepi-lite2/extlinux.conf b/board/orangepi/orangepi-lite2/extlinux.conf new file mode 100644 index 000000000..1966186a2 --- /dev/null +++ b/board/orangepi/orangepi-lite2/extlinux.conf @@ -0,0 +1,4 @@ +label linux + kernel /Image + devicetree /sun50i-h6-orangepi-lite2.dtb + append console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait diff --git a/board/orangepi/orangepi-lite2/genimage.cfg b/board/orangepi/orangepi-lite2/genimage.cfg new file mode 100644 index 000000000..bc981eed5 --- /dev/null +++ b/board/orangepi/orangepi-lite2/genimage.cfg @@ -0,0 +1,34 @@ +image boot.vfat { + vfat { + files = { + "Image", + "sun50i-h6-orangepi-lite2.dtb", + "extlinux" + } + } + + size = 64M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot-sunxi-with-spl.bin" + offset = 8K + size = 1016K # 1MB - 8KB + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/orangepi/orangepi-lite2/post-build.sh b/board/orangepi/orangepi-lite2/post-build.sh new file mode 100755 index 000000000..ec20fca7d --- /dev/null +++ b/board/orangepi/orangepi-lite2/post-build.sh @@ -0,0 +1,4 @@ +#!/bin/sh +BOARD_DIR="$(dirname $0)" + +install -m 0644 -D $BOARD_DIR/extlinux.conf $BINARIES_DIR/extlinux/extlinux.conf diff --git a/board/orangepi/orangepi-lite2/readme.txt b/board/orangepi/orangepi-lite2/readme.txt new file mode 100644 index 000000000..bed561b56 --- /dev/null +++ b/board/orangepi/orangepi-lite2/readme.txt @@ -0,0 +1,44 @@ +Intro +===== + +This default configuration will allow you to start experimenting with the +buildroot environment for the Orangepi Lite2. With the current configuration +it will bring-up the board, and allow access through the serial console. + +Orangepi Lite2 link: +http://www.orangepi.org/Orange%20Pi%20Lite%202/ + +Wiki link: +https://openedev.amarulasolutions.com/display/ODWIKI/Orangepi+Lite2 + +How to build +============ + + $ make orangepi_lite2_defconfig + $ make + +Note: you will need access to the internet to download the required +sources. + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + $ sudo sync + +Insert the micro SDcard in your Orangepi Lite2 and power it up. The console +is on the serial line, 115200 8N1. + +WiFi +==== + + # wpa_passphrase ACCESSPOINTNAME >> /etc/wpa_supplicant.conf + (type password and enter) + # wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf -B + # udhcpc -i wlan0 + # ping google.com diff --git a/board/orangepi/orangepi-lite2/rootfs_overlay/lib/firmware/brcm/brcmfmac43455-sdio.txt b/board/orangepi/orangepi-lite2/rootfs_overlay/lib/firmware/brcm/brcmfmac43455-sdio.txt new file mode 100755 index 000000000..c1cc4c3c2 --- /dev/null +++ b/board/orangepi/orangepi-lite2/rootfs_overlay/lib/firmware/brcm/brcmfmac43455-sdio.txt @@ -0,0 +1,82 @@ +#AP6255_NVRAM_V1.0_29052015 + +NVRAMRev=$Rev: 498373 $ +sromrev=11 +vendid=0x14e4 +devid=0x43ab +manfid=0x2d0 +prodid=0x06e4 +macaddr=00:90:4c:c5:12:38 +nocrc=1 +boardtype=0x6e4 +boardrev=0x1304 +xtalfreq=37400 +#boardflags: 5GHz eTR switch by default +#2.4GHz eTR switch by default +#bit1 for btcoex +boardflags=0x00080201 +boardflags2=0x40000000 +boardflags3=0x48200100 +rxgains2gelnagaina0=0 +rxgains2gtrisoa0=0 +rxgains2gtrelnabypa0=0 +rxgains5gelnagaina0=0 +rxgains5gtrisoa0=0 +rxgains5gtrelnabypa0=0 +rxchain=1 +txchain=1 +aa2g=1 +aa5g=1 +tssipos5g=1 +tssipos2g=1 +femctrl=0 +AvVmid_c0=0,157,1,126,1,126,1,126,1,126 +pa2ga0=-112,6296,-662 +pa2ga1=-165,3699,-515 +pa5ga0=-143,6016,-683,-141,6013,-678,-137,5988,-670,-136,5982,-670 +pa5ga1=-161,3544,-499,-166,3543,-497,-169,3569,-497,-171,3598,-498 +itrsw=1 +pdoffset2g40ma0=10 +pdoffset40ma0=0xaaaa +pdoffset80ma0=0xaaaa +extpagain5g=2 +extpagain2g=2 +tworangetssi2g=1 +tworangetssi5g=1 +# LTECX flags +# WCI2 +ltecxmux=0 +ltecxpadnum=0x0504 +ltecxfnsel=0x22 +ltecxgcigpio=0x32 + +maxp2ga0=64 +ofdmlrbw202gpo=0x0033 +dot11agofdmhrbw202gpo=0x1553 +mcsbw202gpo=0x99355533 + +maxp5ga0=80,82,76,77 + +mcsbw205glpo=0x99755000 +mcsbw205gmpo=0x9df55000 +mcsbw205ghpo=0x99855000 + +mcsbw405glpo=0xb8555000 +mcsbw405gmpo=0xed955000 +mcsbw405ghpo=0xd9755000 + +mcsbw805glpo=0xc8555000 +mcsbw805gmpo=0xe9555000 +mcsbw805ghpo=0xd9555000 + +swctrlmap_2g=0x00040004,0x00020002,0x00040004,0x010a02,0x1ff +swctrlmap_5g=0x00100010,0x00200020,0x00100010,0x010a02,0x2f4 +swctrlmapext_5g=0x00000000,0x00000000,0x00000000,0x000000,0x000 +swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x000 + +vcodivmode=1 +deadman_to=481500000 +ed_thresh2g=-54 +ed_thresh5g=-54 + +muxenab=0x10 diff --git a/board/orangepi/orangepi-one-plus/extlinux.conf b/board/orangepi/orangepi-one-plus/extlinux.conf new file mode 100644 index 000000000..f573aa17d --- /dev/null +++ b/board/orangepi/orangepi-one-plus/extlinux.conf @@ -0,0 +1,4 @@ +label linux + kernel /Image + devicetree /sun50i-h6-orangepi-one-plus.dtb + append console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait diff --git a/board/orangepi/orangepi-one-plus/genimage.cfg b/board/orangepi/orangepi-one-plus/genimage.cfg new file mode 100644 index 000000000..80b83b021 --- /dev/null +++ b/board/orangepi/orangepi-one-plus/genimage.cfg @@ -0,0 +1,34 @@ +image boot.vfat { + vfat { + files = { + "Image", + "sun50i-h6-orangepi-one-plus.dtb", + "extlinux" + } + } + + size = 64M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot-sunxi-with-spl.bin" + offset = 8K + size = 1016K # 1MB - 8KB + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/orangepi/orangepi-one-plus/post-build.sh b/board/orangepi/orangepi-one-plus/post-build.sh new file mode 100755 index 000000000..ec20fca7d --- /dev/null +++ b/board/orangepi/orangepi-one-plus/post-build.sh @@ -0,0 +1,4 @@ +#!/bin/sh +BOARD_DIR="$(dirname $0)" + +install -m 0644 -D $BOARD_DIR/extlinux.conf $BINARIES_DIR/extlinux/extlinux.conf diff --git a/board/orangepi/orangepi-one-plus/readme.txt b/board/orangepi/orangepi-one-plus/readme.txt new file mode 100644 index 000000000..87f6de851 --- /dev/null +++ b/board/orangepi/orangepi-one-plus/readme.txt @@ -0,0 +1,37 @@ +Intro +===== + +This default configuration will allow you to start experimenting with the +buildroot environment for the Orangepi One Plus. With the current configuration +it will bring-up the board, and allow access through the serial console. + +Orangepi One Plus link: +http://www.orangepi.org/OrangePiOneplus/ + +Wiki link: +https://openedev.amarulasolutions.com/display/ODWIKI/Orangepi+One+Plus + +This configuration uses U-Boot mainline and kernel mainline. + +How to build +============ + + $ make orangepi_one_plus_defconfig + $ make + +Note: you will need access to the internet to download the required +sources. + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + $ sudo sync + +Insert the micro SDcard in your Orangepi One Plus and power it up. The console +is on the serial line, 115200 8N1. diff --git a/board/orangepi/orangepi-one/readme.txt b/board/orangepi/orangepi-one/readme.txt new file mode 100644 index 000000000..e650f82d1 --- /dev/null +++ b/board/orangepi/orangepi-one/readme.txt @@ -0,0 +1,29 @@ +OrangePi One + +Intro +===== + +This default configuration will allow you to start experimenting with the +buildroot environment for the OrangePi One. With the current configuration +it will bring-up the board, and allow access through the serial console. + +How to build it +=============== + +Configure Buildroot: + + $ make orangepi_one_defconfig + +Compile everything and build the SD card image: + + $ make + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX diff --git a/board/orangepi/orangepi-pc-plus/linux-extras.config b/board/orangepi/orangepi-pc-plus/linux-extras.config new file mode 100644 index 000000000..5e3af2b83 --- /dev/null +++ b/board/orangepi/orangepi-pc-plus/linux-extras.config @@ -0,0 +1,8 @@ +# wireless core +CONFIG_WIRELESS=y +CONFIG_CFG80211=y +CONFIG_MAC80211=y +CONFIG_CFG80211_WEXT=y + +# wireless drivers +CONFIG_WLAN=y diff --git a/board/orangepi/orangepi-pc-plus/readme.txt b/board/orangepi/orangepi-pc-plus/readme.txt new file mode 100644 index 000000000..49206949c --- /dev/null +++ b/board/orangepi/orangepi-pc-plus/readme.txt @@ -0,0 +1,29 @@ +OrangePi PC Plus + +Intro +===== + +This default configuration will allow you to start experimenting with the +buildroot environment for the OrangePi PC Plus. With the current configuration +it will bring-up the board, and allow access through the serial console. + +How to build it +=============== + +Configure Buildroot: + + $ make orangepi_pc_plus_defconfig + +Compile everything and build the SD card image: + + $ make + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX diff --git a/board/orangepi/orangepi-pc/linux.fragment b/board/orangepi/orangepi-pc/linux.fragment new file mode 100644 index 000000000..b1dda162b --- /dev/null +++ b/board/orangepi/orangepi-pc/linux.fragment @@ -0,0 +1,3 @@ +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y +CONFIG_REGULATOR_SY8106A=y +CONFIG_SUN8I_DE2_CCU=y diff --git a/board/orangepi/orangepi-pc/readme.txt b/board/orangepi/orangepi-pc/readme.txt new file mode 100644 index 000000000..d316b6fc1 --- /dev/null +++ b/board/orangepi/orangepi-pc/readme.txt @@ -0,0 +1,29 @@ +OrangePi PC + +Intro +===== + +This default configuration will allow you to start experimenting with the +buildroot environment for the OrangePi PC. With the current configuration +it will bring-up the board, and allow access through the serial console. + +How to build it +=============== + +Configure Buildroot: + + $ make orangepi_pc_defconfig + +Compile everything and build the SD card image: + + $ make + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX diff --git a/board/orangepi/orangepi-pc2/boot.cmd b/board/orangepi/orangepi-pc2/boot.cmd new file mode 100644 index 000000000..4d4fc7bf6 --- /dev/null +++ b/board/orangepi/orangepi-pc2/boot.cmd @@ -0,0 +1,6 @@ +setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait + +fatload mmc 0 $kernel_addr_r Image +fatload mmc 0 $fdt_addr_r sun50i-h5-orangepi-pc2.dtb + +booti $kernel_addr_r - $fdt_addr_r diff --git a/board/orangepi/orangepi-pc2/genimage.cfg b/board/orangepi/orangepi-pc2/genimage.cfg new file mode 100644 index 000000000..cc8695c9f --- /dev/null +++ b/board/orangepi/orangepi-pc2/genimage.cfg @@ -0,0 +1,40 @@ +image boot.vfat { + vfat { + files = { + "Image", + "sun50i-h5-orangepi-pc2.dtb", + "boot.scr" + } + } + + size = 64M +} + +image sdcard.img { + hdimage { + } + + partition spl { + in-partition-table = "no" + image = "sunxi-spl.bin" + offset = 8K + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot.itb" + offset = 40K + size = 1M # 1MB - 40KB + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/orangepi/orangepi-pc2/readme.txt b/board/orangepi/orangepi-pc2/readme.txt new file mode 100644 index 000000000..120048195 --- /dev/null +++ b/board/orangepi/orangepi-pc2/readme.txt @@ -0,0 +1,37 @@ +Intro +===== + +This default configuration will allow you to start experimenting with the +buildroot environment for the Orangepi PC2. With the current configuration +it will bring-up the board, and allow access through the serial console. + +Orangepi PC2 link: +http://www.orangepi.org/orangepipc2/ + +Wiki link: +https://openedev.amarulasolutions.com/display/ODWIKI/Orangepi+PC2 + +This configuration uses U-Boot mainline and kernel mainline. + +How to build +============ + + $ make orangepi_pc2_defconfig + $ make + +Note: you will need access to the internet to download the required +sources. + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + $ sudo sync + +Insert the micro SDcard in your Orangepi PC2 and power it up. The console +is on the serial line, 115200 8N1. diff --git a/board/orangepi/orangepi-plus/boot.cmd b/board/orangepi/orangepi-plus/boot.cmd new file mode 100644 index 000000000..1a378cb91 --- /dev/null +++ b/board/orangepi/orangepi-plus/boot.cmd @@ -0,0 +1,8 @@ +setenv fdt_high ffffffff + +setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait + +fatload mmc 0 $kernel_addr_r zImage +fatload mmc 0 $fdt_addr_r sun8i-h3-orangepi-plus.dtb + +bootz $kernel_addr_r - $fdt_addr_r diff --git a/board/orangepi/orangepi-plus/genimage.cfg b/board/orangepi/orangepi-plus/genimage.cfg new file mode 100644 index 000000000..1ca30258d --- /dev/null +++ b/board/orangepi/orangepi-plus/genimage.cfg @@ -0,0 +1,36 @@ +# Minimal SD card image for the OrangePi Plus\Plus2 +# +image boot.vfat { + vfat { + files = { + "zImage", + "sun8i-h3-orangepi-plus.dtb", + "boot.scr" + } + } + + size = 10M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot-sunxi-with-spl.bin" + offset = 8K + size = 1016K # 1MB - 8KB + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/orangepi/orangepi-plus/readme.txt b/board/orangepi/orangepi-plus/readme.txt new file mode 100644 index 000000000..7f871bcfa --- /dev/null +++ b/board/orangepi/orangepi-plus/readme.txt @@ -0,0 +1,29 @@ +OrangePi Plus/Plus2 + +Intro +===== + +This default configuration will allow you to start experimenting with the +buildroot environment for the OrangePi Plus/Plus2. With the current configuration +it will bring-up the board, and allow access through the serial console. + +How to build it +=============== + +Configure Buildroot: + + $ make orangepi_plus_defconfig + +Compile everything and build the SD card image: + + $ make + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX diff --git a/board/orangepi/orangepi-prime/boot.cmd b/board/orangepi/orangepi-prime/boot.cmd new file mode 100644 index 000000000..34887880d --- /dev/null +++ b/board/orangepi/orangepi-prime/boot.cmd @@ -0,0 +1,6 @@ +setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait + +fatload mmc 0 $kernel_addr_r Image +fatload mmc 0 $fdt_addr_r sun50i-h5-orangepi-prime.dtb + +booti $kernel_addr_r - $fdt_addr_r diff --git a/board/orangepi/orangepi-prime/genimage.cfg b/board/orangepi/orangepi-prime/genimage.cfg new file mode 100644 index 000000000..dde9a6485 --- /dev/null +++ b/board/orangepi/orangepi-prime/genimage.cfg @@ -0,0 +1,40 @@ +image boot.vfat { + vfat { + files = { + "Image", + "sun50i-h5-orangepi-prime.dtb", + "boot.scr" + } + } + + size = 64M +} + +image sdcard.img { + hdimage { + } + + partition spl { + in-partition-table = "no" + image = "sunxi-spl.bin" + offset = 8K + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot.itb" + offset = 40K + size = 1M # 1MB - 40KB + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/orangepi/orangepi-prime/readme.txt b/board/orangepi/orangepi-prime/readme.txt new file mode 100644 index 000000000..5811884d4 --- /dev/null +++ b/board/orangepi/orangepi-prime/readme.txt @@ -0,0 +1,37 @@ +Intro +===== + +This default configuration will allow you to start experimenting with the +buildroot environment for the Orangepi Prime. With the current configuration +it will bring-up the board, and allow access through the serial console. + +Orangepi Prime link: +http://www.orangepi.org/OrangePiPrime/ + +Wiki link: +https://openedev.amarulasolutions.com/display/ODWIKI/Orangepi+Prime + +This configuration uses U-Boot mainline and kernel mainline. + +How to build +============ + + $ make orangepi_prime_defconfig + $ make + +Note: you will need access to the internet to download the required +sources. + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + $ sudo sync + +Insert the micro SDcard in your Orangepi Prime and power it up. The console +is on the serial line, 115200 8N1. diff --git a/board/orangepi/orangepi-r1/boot.cmd b/board/orangepi/orangepi-r1/boot.cmd new file mode 100644 index 000000000..50745f7e5 --- /dev/null +++ b/board/orangepi/orangepi-r1/boot.cmd @@ -0,0 +1,8 @@ +setenv fdt_high ffffffff + +setenv bootargs console=ttyS0,115200 earlyprintk root=PARTLABEL=rootfs rootwait + +fatload mmc 0 $kernel_addr_r zImage +fatload mmc 0 $fdt_addr_r sun8i-h2-plus-orangepi-r1.dtb + +bootz $kernel_addr_r - $fdt_addr_r diff --git a/board/orangepi/orangepi-r1/genimage.cfg b/board/orangepi/orangepi-r1/genimage.cfg new file mode 100644 index 000000000..78b69269b --- /dev/null +++ b/board/orangepi/orangepi-r1/genimage.cfg @@ -0,0 +1,43 @@ +# Minimal SD card image for the OrangePi R1 +# +image boot.vfat { + vfat { + files = { + "zImage", + "sun8i-h2-plus-orangepi-r1.dtb", + "boot.scr" + } + } + + size = 10M +} + +image sdcard.img { + hdimage { + # for root=PARTLABEL support + partition-table-type = "gpt" + # default GPT location conflicts with spl, move it after + gpt-location = 1M + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot-sunxi-with-spl.bin" + offset = 8K + size = 1016K # 1MB - 8KB + } + + partition boot { + partition-type-uuid = F + bootable = "true" + image = "boot.vfat" + } + + # 'rootfs' will be used as the partition label, used + # with root=PARTLABEL=rootfs kernel command line + partition rootfs { + partition-type-uuid = L + image = "rootfs.ext4" + size = 512M + } +} diff --git a/board/orangepi/orangepi-r1/linux-extras.config b/board/orangepi/orangepi-r1/linux-extras.config new file mode 100644 index 000000000..47ba88f67 --- /dev/null +++ b/board/orangepi/orangepi-r1/linux-extras.config @@ -0,0 +1,11 @@ +# spi nor +CONFIG_MTD=y +CONFIG_MTD_OF_PARTS=y +CONFIG_MTD_SPI_NOR=y +CONFIG_MTD_M25P80=y + +# ondemand cpufreq governor +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y + +# USB ethernet +CONFIG_USB_RTL8152=y diff --git a/board/orangepi/orangepi-r1/readme.txt b/board/orangepi/orangepi-r1/readme.txt new file mode 100644 index 000000000..826649936 --- /dev/null +++ b/board/orangepi/orangepi-r1/readme.txt @@ -0,0 +1,29 @@ +OrangePi R1 + +Intro +===== + +This default configuration will allow you to start experimenting with the +buildroot environment for the OrangePi R1. With the current configuration +it will bring-up the board, and allow access through the serial console. + +How to build it +=============== + +Configure Buildroot: + + $ make orangepi_r1_defconfig + +Compile everything and build the SD card image: + + $ make + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX diff --git a/board/orangepi/orangepi-rk3399/extlinux.conf b/board/orangepi/orangepi-rk3399/extlinux.conf new file mode 100644 index 000000000..157c6a715 --- /dev/null +++ b/board/orangepi/orangepi-rk3399/extlinux.conf @@ -0,0 +1,4 @@ +label RK3399_ORANGEPI linux + kernel /Image + devicetree /rk3399-orangepi.dtb + append earlycon=uart8250,mmio32,0xff1a0000 root=/dev/mmcblk1p4 rw rootwait diff --git a/board/orangepi/orangepi-rk3399/genimage.cfg b/board/orangepi/orangepi-rk3399/genimage.cfg new file mode 100644 index 000000000..a02166172 --- /dev/null +++ b/board/orangepi/orangepi-rk3399/genimage.cfg @@ -0,0 +1,38 @@ +image boot.vfat { + vfat { + files = { + "Image", + "rk3399-orangepi.dtb", + "extlinux" + } + } + + size = 64M +} + +image sdcard.img { + hdimage { + partition-table-type = "gpt" + } + + partition loader1 { + image = "idbloader.img" + offset = 32K + } + + partition loader2 { + image = "u-boot.itb" + offset = 8M + } + + partition boot { + partition-type-uuid = F + bootable = "true" + image = "boot.vfat" + offset = 16M + } + + partition rootfs { + image = "rootfs.ext4" + } +} diff --git a/board/orangepi/orangepi-rk3399/post-build.sh b/board/orangepi/orangepi-rk3399/post-build.sh new file mode 100755 index 000000000..ba29375c0 --- /dev/null +++ b/board/orangepi/orangepi-rk3399/post-build.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" + +install -m 0644 -D $BOARD_DIR/extlinux.conf $BINARIES_DIR/extlinux/extlinux.conf diff --git a/board/orangepi/orangepi-rk3399/readme.txt b/board/orangepi/orangepi-rk3399/readme.txt new file mode 100644 index 000000000..197e1fb44 --- /dev/null +++ b/board/orangepi/orangepi-rk3399/readme.txt @@ -0,0 +1,56 @@ +Orangepi Rk3399 +================ +http://www.orangepi.org/Orange%20Pi%20RK3399/ + +Build: +====== + $ make orangepi_rk3399_defconfig + $ make + +Files created in output directory +================================= + +output/images + +├── bl31.elf +├── boot.vfat +├── extlinux +├── idbloader.img +├── Image +├── rk3399-orangepi.dtb +├── rootfs.ext2 +├── rootfs.ext4 -> rootfs.ext2 +├── rootfs.tar +├── sdcard.img +├── u-boot.bin +└── u-boot.itb + +Creating bootable SD card: +========================== + +Simply invoke (as root) + +sudo dd if=output/images/sdcard.img of=/dev/sdX && sync + +Where X is your SD card device. + +Booting: +======== +Orangepi-RK3399 by default boots from emmc. For SD card boot to +happen, emmc should be empty. If emmc happens to have any bootable +image then erase emmc so that bootrom will look for a proper image in SD. + +emmc can be erased once after booted into linux as shown in below link. + +https://wiki.amarulasolutions.com/bsp/setup/rockchip/rk3399_emmc.html + +Serial console: +--------------- + +Baudrate for this board is 1500000. + +Login: +------ +Enter 'root' as login user, and the prompt is ready. + +https://wiki.amarulasolutions.com/bsp/rockchip/rk3399/orangepi.html diff --git a/board/orangepi/orangepi-win/boot.cmd b/board/orangepi/orangepi-win/boot.cmd new file mode 100644 index 000000000..2ddb769d6 --- /dev/null +++ b/board/orangepi/orangepi-win/boot.cmd @@ -0,0 +1,6 @@ +setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait + +fatload mmc 0 $kernel_addr_r Image +fatload mmc 0 $fdt_addr_r sun50i-a64-orangepi-win.dtb + +booti $kernel_addr_r - $fdt_addr_r diff --git a/board/orangepi/orangepi-win/genimage.cfg b/board/orangepi/orangepi-win/genimage.cfg new file mode 100644 index 000000000..98fd1a033 --- /dev/null +++ b/board/orangepi/orangepi-win/genimage.cfg @@ -0,0 +1,40 @@ +image boot.vfat { + vfat { + files = { + "Image", + "sun50i-a64-orangepi-win.dtb", + "boot.scr" + } + } + + size = 64M +} + +image sdcard.img { + hdimage { + } + + partition spl { + in-partition-table = "no" + image = "sunxi-spl.bin" + offset = 8K + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot.itb" + offset = 40K + size = 1M # 1MB - 40KB + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/orangepi/orangepi-win/readme.txt b/board/orangepi/orangepi-win/readme.txt new file mode 100644 index 000000000..93adddd86 --- /dev/null +++ b/board/orangepi/orangepi-win/readme.txt @@ -0,0 +1,37 @@ +Intro +===== + +This default configuration will allow you to start experimenting with the +buildroot environment for the Orangepi Win/Win Plus. With the current configuration +it will bring-up the board, and allow access through the serial console. + +Orangepi Win/Win Plus link: +http://www.orangepi.org/OrangePiWin_WinPlus/ + +Wiki link: +https://openedev.amarulasolutions.com/display/ODWIKI/Orangepi+Win + +This configuration uses U-Boot mainline and kernel mainline. + +How to build +============ + + $ make orangepi_win_defconfig + $ make + +Note: you will need access to the internet to download the required +sources. + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + $ sudo sync + +Insert the micro SDcard in your Orangepi Win/Win Plus and power it up. The console +is on the serial line, 115200 8N1. diff --git a/board/orangepi/orangepi-zero-plus/boot.cmd b/board/orangepi/orangepi-zero-plus/boot.cmd new file mode 100644 index 000000000..18c4d521a --- /dev/null +++ b/board/orangepi/orangepi-zero-plus/boot.cmd @@ -0,0 +1,6 @@ +setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait + +fatload mmc 0 $kernel_addr_r Image +fatload mmc 0 $fdt_addr_r sun50i-h5-orangepi-zero-plus.dtb + +booti $kernel_addr_r - $fdt_addr_r diff --git a/board/orangepi/orangepi-zero-plus/genimage.cfg b/board/orangepi/orangepi-zero-plus/genimage.cfg new file mode 100644 index 000000000..a8f3161c3 --- /dev/null +++ b/board/orangepi/orangepi-zero-plus/genimage.cfg @@ -0,0 +1,40 @@ +image boot.vfat { + vfat { + files = { + "Image", + "sun50i-h5-orangepi-zero-plus.dtb", + "boot.scr" + } + } + + size = 64M +} + +image sdcard.img { + hdimage { + } + + partition spl { + in-partition-table = "no" + image = "sunxi-spl.bin" + offset = 8K + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot.itb" + offset = 40K + size = 1M # 1MB - 40KB + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/orangepi/orangepi-zero-plus/readme.txt b/board/orangepi/orangepi-zero-plus/readme.txt new file mode 100644 index 000000000..5556eae89 --- /dev/null +++ b/board/orangepi/orangepi-zero-plus/readme.txt @@ -0,0 +1,34 @@ +Intro +===== + +This default configuration will allow you to start experimenting with the +buildroot environment for the Orangepi Zero Plus. With the current configuration +it will bring-up the board, and allow access through the serial console. + +Orangepi Zero Plus link: +http://www.orangepi.org/OrangePiZeroPlus/ + +This configuration uses U-Boot mainline and kernel mainline. + +How to build +============ + + $ make orangepi_zero_plus_defconfig + $ make + +Note: you will need access to the internet to download the required +sources. + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + $ sudo sync + +Insert the micro SDcard in your Orangepi Zero Plus and power it up. The console +is on the serial line, 115200 8N1. diff --git a/board/orangepi/orangepi-zero-plus2/linux-extras.config b/board/orangepi/orangepi-zero-plus2/linux-extras.config new file mode 100644 index 000000000..52b4b4b29 --- /dev/null +++ b/board/orangepi/orangepi-zero-plus2/linux-extras.config @@ -0,0 +1,10 @@ +# wireless core +CONFIG_WIRELESS=y +CONFIG_CFG80211=y +CONFIG_MAC80211=y +CONFIG_CFG80211_WEXT=y + +# wireless drivers +CONFIG_WLAN=y +CONFIG_WLAN_VENDOR_BROADCOM=y +CONFIG_BRCMFMAC=m diff --git a/board/orangepi/orangepi-zero-plus2/readme.txt b/board/orangepi/orangepi-zero-plus2/readme.txt new file mode 100644 index 000000000..322ba0e12 --- /dev/null +++ b/board/orangepi/orangepi-zero-plus2/readme.txt @@ -0,0 +1,37 @@ +Intro +===== + +This default configuration will allow you to start experimenting with the +buildroot environment for the Orangepi Zero Plus2. With the current configuration +it will bring-up the board, and allow access through the serial console. + +Orangepi Zero Plus2 link: +http://www.orangepi.org/OrangePiZeroPlus2/ + +Wiki link: +https://openedev.amarulasolutions.com/display/ODWIKI/Orangepi+Zero+Plus2 + +This configuration uses U-Boot mainline and kernel mainline. + +How to build +============ + + $ make orangepi_zero_plus2_defconfig + $ make + +Note: you will need access to the internet to download the required +sources. + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + $ sudo sync + +Insert the micro SDcard in your Orangepi Zero Plus2 and power it up. The console +is on the serial line, 115200 8N1. diff --git a/board/orangepi/orangepi-zero-plus2/rootfs_overlay/lib/firmware/brcm/brcmfmac43430-sdio.txt b/board/orangepi/orangepi-zero-plus2/rootfs_overlay/lib/firmware/brcm/brcmfmac43430-sdio.txt new file mode 100644 index 000000000..8f0bf6906 --- /dev/null +++ b/board/orangepi/orangepi-zero-plus2/rootfs_overlay/lib/firmware/brcm/brcmfmac43430-sdio.txt @@ -0,0 +1,54 @@ +#AP6212_NVRAM_V1.0_20140603 +# 2.4 GHz, 20 MHz BW mode + +# The following parameter values are just placeholders, need to be updated. +manfid=0x2d0 +prodid=0x0726 +vendid=0x14e4 +devid=0x43e2 +boardtype=0x0726 +boardrev=0x1101 +boardnum=22 +macaddr=00:90:4c:c5:12:38 +sromrev=11 +boardflags=0x00404201 +xtalfreq=26000 +nocrc=1 +ag0=255 +aa2g=1 +ccode=ALL + +pa0itssit=0x20 +extpagain2g=0 + +#PA parameters for 2.4GHz, measured at CHIP OUTPUT +pa2ga0=-168,7161,-820 +AvVmid_c0=0x0,0xc8 +cckpwroffset0=5 + +# PPR params +maxp2ga0=90 +txpwrbckof=6 +cckbw202gpo=0x5555 +legofdmbw202gpo=0x77777777 +mcsbw202gpo=0xaaaaaaaa + +# OFDM IIR : +ofdmdigfilttype=7 +# PAPD mode: +papdmode=2 + +il0macaddr=00:90:4c:c5:12:38 +wl0id=0x431b + +#OOB parameters +hostwake=0x40 +hostrdy=0x41 +usbrdy=0x03 +usbrdydelay=100 +deadman_to=0xffffffff +# muxenab: 0x1 for UART enable, 0x10 for Host awake +muxenab=0x10 +# CLDO PWM voltage settings - 0x4 - 1.1 volt +#cldo_pwm=0x4 + diff --git a/board/orangepi/orangepi-zero/linux-extras.fragment b/board/orangepi/orangepi-zero/linux-extras.fragment new file mode 100644 index 000000000..2db241de2 --- /dev/null +++ b/board/orangepi/orangepi-zero/linux-extras.fragment @@ -0,0 +1,20 @@ +# spidev +CONFIG_SPI_SPIDEV=y + +# spi nor +CONFIG_MTD=y +CONFIG_MTD_OF_PARTS=y +CONFIG_MTD_SPI_NOR=y +CONFIG_MTD_M25P80=y + +# wireless core +CONFIG_WIRELESS=y +CONFIG_CFG80211=y +CONFIG_MAC80211=y +CONFIG_CFG80211_WEXT=y + +# wireless drivers +CONFIG_WLAN=y + +# ondemand cpufreq governor +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y diff --git a/board/orangepi/orangepi-zero/patches/linux/0001-ARM-dts-orange-pi-zero-interrupt-triggering-xr819.patch b/board/orangepi/orangepi-zero/patches/linux/0001-ARM-dts-orange-pi-zero-interrupt-triggering-xr819.patch new file mode 100644 index 000000000..16207afcb --- /dev/null +++ b/board/orangepi/orangepi-zero/patches/linux/0001-ARM-dts-orange-pi-zero-interrupt-triggering-xr819.patch @@ -0,0 +1,35 @@ +From 321faaf4b78d46a0c77782c1798856746f0619e9 Mon Sep 17 00:00:00 2001 +From: Sergey Matyukevich +Date: Fri, 19 May 2017 23:39:48 +0300 +Subject: [PATCH] ARM: dts: orange-pi-zero: specify XR819 WiFi chip + interrupts + +The orange-pi-zero board has Allwinner XR819 SDIO wifi chip. The board +dts file provides a node enabling mmc1 controller. Together with an +out-of-tree driver https://github.com/fifteenhex/xradio this node +enables using the wifi chip. + +This commit specifies XR819 interrupt configuration for the driver. + +Signed-off-by: Sergey Matyukevich +--- + arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts +index b7ca916d871d..4e1a9050c6b4 100644 +--- a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts ++++ b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts +@@ -125,6 +125,9 @@ + */ + xr819: sdio_wifi@1 { + reg = <1>; ++ compatible = "xradio,xr819"; ++ interrupt-parent = <&pio>; ++ interrupts = <6 10 IRQ_TYPE_EDGE_RISING>; + }; + }; + +-- +2.11.0 + diff --git a/board/orangepi/orangepi-zero/patches/linux/0002-ARM-dts-orange-pi-zero-enable-spi-nor.patch b/board/orangepi/orangepi-zero/patches/linux/0002-ARM-dts-orange-pi-zero-enable-spi-nor.patch new file mode 100644 index 000000000..e4c52ab91 --- /dev/null +++ b/board/orangepi/orangepi-zero/patches/linux/0002-ARM-dts-orange-pi-zero-enable-spi-nor.patch @@ -0,0 +1,42 @@ +From 068c3baff3048a3db4ef2518ff917ce749cd8169 Mon Sep 17 00:00:00 2001 +From: Sergey Matyukevich +Date: Sat, 20 May 2017 11:24:26 +0300 +Subject: [PATCH] ARM: dts: orange-pi-zero: enable SPI NOR + +Enable SPI NOR on orange-pi-zero board. + +For more information see: +- http://linux-sunxi.org/Orange_Pi_Zero#SPI_NOR_flash + +Signed-off-by: Sergey Matyukevich +--- + arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +diff --git a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts +index 4e1a9050c6b4..cdf19821b1f3 100644 +--- a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts ++++ b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts +@@ -161,3 +161,19 @@ + /* USB VBUS is always on */ + status = "okay"; + }; ++ ++&spi0 { ++ status = "okay"; ++ ++ flash@0 { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ compatible = "mxicy,mx25l1606e", "winbond,w25q128"; ++ reg = <0>; ++ spi-max-frequency = <40000000>; ++ ++ partition@00000000 { ++ reg = <0x00000000 0x200000>; /* 2Mb */ ++ }; ++ }; ++}; +-- +2.11.0 + diff --git a/board/orangepi/orangepi-zero/patches/linux/0003-ARM-dts-orange-pi-zero-enable-spidev.patch b/board/orangepi/orangepi-zero/patches/linux/0003-ARM-dts-orange-pi-zero-enable-spidev.patch new file mode 100644 index 000000000..ae0ed9ba3 --- /dev/null +++ b/board/orangepi/orangepi-zero/patches/linux/0003-ARM-dts-orange-pi-zero-enable-spidev.patch @@ -0,0 +1,42 @@ +From 8dd1b2a696bb7e9914abd11cc6f5c0f54c33d626 Mon Sep 17 00:00:00 2001 +From: Sergey Matyukevich +Date: Sat, 20 May 2017 15:36:51 +0300 +Subject: [PATCH] ARM: dts: orange-pi-zero: enable spidev + +On orange-pi-zero board SPI1 pins are accessible via GPIO expansion port. +This patch enables spidev driver for SPI1. + +Signed-off-by: Sergey Matyukevich +--- + arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts +index cdf19821b1f3..7242aaecb14f 100644 +--- a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts ++++ b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts +@@ -59,6 +59,7 @@ + serial0 = &uart0; + /* ethernet0 is the H3 emac, defined in sun8i-h3.dtsi */ + ethernet1 = &xr819; ++ spi1 = &spi1; + }; + + chosen { +@@ -177,3 +178,13 @@ + }; + }; + }; ++ ++&spi1 { ++ status = "okay"; ++ ++ spidev@0 { ++ compatible = "rohm,dh2228fv"; ++ reg = <0>; ++ spi-max-frequency = <10000000>; ++ }; ++}; +-- +2.11.0 + diff --git a/board/orangepi/orangepi-zero/patches/linux/0004-ARM-dts-orange-pi-zero-enable-uart.patch b/board/orangepi/orangepi-zero/patches/linux/0004-ARM-dts-orange-pi-zero-enable-uart.patch new file mode 100644 index 000000000..839bc1608 --- /dev/null +++ b/board/orangepi/orangepi-zero/patches/linux/0004-ARM-dts-orange-pi-zero-enable-uart.patch @@ -0,0 +1,35 @@ +From e8768cc1f0f1231cbd4864417de629330e21222d Mon Sep 17 00:00:00 2001 +From: Sergey Kuzminov +Date: Sun, 21 Nov 2021 00:58:32 +0300 +Subject: [PATCH] ARM: dts: orange-pi-zero: enable uart + +Enable uart1 and uart2 on orange-pi-zero board. + +Signed-off-by: Sergey Kuzminov +--- + arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts +index f19ed981da9d..03acf166ab70 100644 +--- a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts ++++ b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts +@@ -184,13 +184,13 @@ &uart0 { + &uart1 { + pinctrl-names = "default"; + pinctrl-0 = <&uart1_pins>; +- status = "disabled"; ++ status = "okay"; + }; + + &uart2 { + pinctrl-names = "default"; + pinctrl-0 = <&uart2_pins>; +- status = "disabled"; ++ status = "okay"; + }; + + &usb_otg { +-- +2.32.0 + diff --git a/board/orangepi/orangepi-zero/readme.txt b/board/orangepi/orangepi-zero/readme.txt new file mode 100644 index 000000000..1afdbb784 --- /dev/null +++ b/board/orangepi/orangepi-zero/readme.txt @@ -0,0 +1,29 @@ +OrangePi Zero + +Intro +===== + +This default configuration will allow you to start experimenting with the +buildroot environment for the OrangePi Zero. With the current configuration +it will bring-up the board, and allow access through the serial console. + +How to build it +=============== + +Configure Buildroot: + + $ make orangepi_zero_defconfig + +Compile everything and build the SD card image: + + $ make + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX diff --git a/board/pandaboard/genimage.cfg b/board/pandaboard/genimage.cfg new file mode 100644 index 000000000..dfe388227 --- /dev/null +++ b/board/pandaboard/genimage.cfg @@ -0,0 +1,27 @@ +image boot.vfat { + vfat { + files = { + "MLO", + "u-boot.img" + } + } + + size = 8M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/board/pandaboard/readme.txt b/board/pandaboard/readme.txt new file mode 100644 index 000000000..80a20c274 --- /dev/null +++ b/board/pandaboard/readme.txt @@ -0,0 +1,46 @@ +Pandaboard +========== + +This file documents the Buildroot support for the Pandaboard, a +low-power, low-cost single-board computer development platform based +on the Texas Instruments OMAP4 system on a chip (SoC). + +Configuring and building Buildroot +---------------------------------- + +Start from the defconfig: + + $ make pandaboard_defconfig + +You can edit build options the usual way: + + $ make menuconfig + +When you are happy with the setup, run: + + $ make + +The result of the build with the default settings should be these files: + + output/images + +-- MLO + +-- omap4-panda-a4.dtb + +-- omap4-panda.dtb + +-- omap4-panda-es.dtb + +-- rootfs.ext4 + +-- sdcard.img + +-- u-boot.img + +-- zImage + +How to write the SD card +------------------------ + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + +Where /dev/sdX is the device node of your SD card (may be /dev/mmcblkX +instead depending on setup). diff --git a/board/pc/genimage-bios.cfg b/board/pc/genimage-bios.cfg new file mode 100644 index 000000000..54026f652 --- /dev/null +++ b/board/pc/genimage-bios.cfg @@ -0,0 +1,23 @@ +image disk.img { + hdimage { + } + + partition boot { + in-partition-table = "no" + image = "boot.img" + offset = 0 + size = 512 + holes = {"(440; 512)"} + } + + partition grub { + in-partition-table = "no" + image = "grub.img" + offset = 512 + } + + partition root { + partition-type = 0x83 + image = "rootfs.ext2" + } +} diff --git a/board/pc/genimage-efi.cfg b/board/pc/genimage-efi.cfg new file mode 100644 index 000000000..c231e1b9b --- /dev/null +++ b/board/pc/genimage-efi.cfg @@ -0,0 +1,32 @@ +image efi-part.vfat { + vfat { + file EFI { + image = "efi-part/EFI" + } + + file bzImage { + image = "bzImage" + } + } + + size = 16352K # 16MB - 32KB +} + +image disk.img { + hdimage { + partition-table-type = "gpt" + } + + partition boot { + image = "efi-part.vfat" + partition-type-uuid = U + offset = 32K + bootable = true + } + + partition root { + partition-type-uuid = 44479540-f297-41b2-9af7-d131d5f0458a + partition-uuid = UUID_TMP + image = "rootfs.ext2" + } +} diff --git a/board/pc/grub-bios.cfg b/board/pc/grub-bios.cfg new file mode 100644 index 000000000..bd3e3f000 --- /dev/null +++ b/board/pc/grub-bios.cfg @@ -0,0 +1,6 @@ +set default="0" +set timeout="5" + +menuentry "Buildroot" { + linux /boot/bzImage root=/dev/sda1 rootwait console=tty1 +} diff --git a/board/pc/grub-efi.cfg b/board/pc/grub-efi.cfg new file mode 100644 index 000000000..bd4466640 --- /dev/null +++ b/board/pc/grub-efi.cfg @@ -0,0 +1,6 @@ +set default="0" +set timeout="5" + +menuentry "Buildroot" { + linux /bzImage root=PARTUUID=UUID_TMP rootwait console=tty1 +} diff --git a/board/pc/linux.config b/board/pc/linux.config new file mode 100644 index 000000000..f86352e1e --- /dev/null +++ b/board/pc/linux.config @@ -0,0 +1,85 @@ +CONFIG_SYSVIPC=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_SMP=y +CONFIG_HYPERVISOR_GUEST=y +CONFIG_PARAVIRT=y +CONFIG_EFI=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_NETFILTER=y +CONFIG_IP_NF_IPTABLES=y +CONFIG_IP_NF_FILTER=y +CONFIG_CFG80211=m +CONFIG_CFG80211_WEXT=y +CONFIG_MAC80211=m +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_VIRTIO_BLK=y +CONFIG_BLK_DEV_SD=y +CONFIG_SCSI_VIRTIO=y +CONFIG_ATA=y +CONFIG_ATA_PIIX=y +CONFIG_NETDEVICES=y +CONFIG_VIRTIO_NET=y +CONFIG_ATL2=m +CONFIG_ATL1=m +CONFIG_ATL1E=m +CONFIG_ATL1C=m +CONFIG_ALX=m +CONFIG_E100=m +CONFIG_E1000=m +CONFIG_E1000E=m +CONFIG_IGB=m +CONFIG_NE2K_PCI=y +CONFIG_8139CP=y +CONFIG_R8169=m +CONFIG_ATH9K=m +CONFIG_ATH9K_HTC=m +CONFIG_CARL9170=m +CONFIG_ATH10K=m +CONFIG_ATH10K_PCI=m +CONFIG_IWL4965=m +CONFIG_IWL3945=m +CONFIG_IWLWIFI=m +CONFIG_RT2X00=m +CONFIG_RT2800PCI=m +CONFIG_RT73USB=m +CONFIG_RT2800USB=m +CONFIG_RT2800USB_RT3573=y +CONFIG_RT2800USB_RT53XX=y +CONFIG_RT2800USB_RT55XX=y +# CONFIG_RTL_CARDS is not set +CONFIG_RTL8XXXU=m +CONFIG_INPUT_EVDEV=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_VIRTIO_CONSOLE=y +CONFIG_HW_RANDOM_VIRTIO=m +CONFIG_DRM=y +CONFIG_DRM_I915=y +CONFIG_DRM_QXL=y +CONFIG_DRM_BOCHS=y +CONFIG_DRM_VIRTIO_GPU=y +CONFIG_FB_VESA=y +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_HDA_INTEL=y +CONFIG_SND_HDA_GENERIC=y +CONFIG_USB=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_UHCI_HCD=y +CONFIG_USB_STORAGE=y +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_BALLOON=y +CONFIG_VIRTIO_INPUT=y +CONFIG_VIRTIO_MMIO=y +CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y +CONFIG_EXT4_FS=y +CONFIG_FUSE_FS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_SQUASHFS=y +CONFIG_UNWINDER_FRAME_POINTER=y diff --git a/board/pc/post-build.sh b/board/pc/post-build.sh new file mode 100755 index 000000000..c76dee267 --- /dev/null +++ b/board/pc/post-build.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +set -e + +BOARD_DIR=$(dirname "$0") + +# Detect boot strategy, EFI or BIOS +if [ -d "$BINARIES_DIR/efi-part/" ]; then + cp -f "$BOARD_DIR/grub-efi.cfg" "$BINARIES_DIR/efi-part/EFI/BOOT/grub.cfg" +else + cp -f "$BOARD_DIR/grub-bios.cfg" "$TARGET_DIR/boot/grub/grub.cfg" + + # Copy grub 1st stage to binaries, required for genimage + cp -f "$TARGET_DIR/lib/grub/i386-pc/boot.img" "$BINARIES_DIR" +fi diff --git a/board/pc/post-image-efi.sh b/board/pc/post-image-efi.sh new file mode 100755 index 000000000..a0df70a6a --- /dev/null +++ b/board/pc/post-image-efi.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +set -e + +UUID=$(dumpe2fs "$BINARIES_DIR/rootfs.ext2" 2>/dev/null | sed -n 's/^Filesystem UUID: *\(.*\)/\1/p') +sed -i "s/UUID_TMP/$UUID/g" "$BINARIES_DIR/efi-part/EFI/BOOT/grub.cfg" +sed "s/UUID_TMP/$UUID/g" board/pc/genimage-efi.cfg > "$BINARIES_DIR/genimage-efi.cfg" +support/scripts/genimage.sh -c "$BINARIES_DIR/genimage-efi.cfg" diff --git a/board/pc/readme.txt b/board/pc/readme.txt new file mode 100644 index 000000000..41aec50d3 --- /dev/null +++ b/board/pc/readme.txt @@ -0,0 +1,72 @@ +Bare PC sample config +===================== + +1. Build + + First select the appropriate target you want. + + For BIOS-based boot strategy: + + $ make pc_x86_64_bios_defconfig + + For EFI-based boot strategy on a GPT-partitioned disk: + + $ make pc_x86_64_efi_defconfig + + Add any additional packages required and build: + + $ make + +2. Write the pendrive + + The build process will create a pendrive image called sdcard.img in + output/images. + + Write the image to a pendrive: + + $ dd if=output/images/disk.img of=/dev/sdc; sync + + Once it's done insert it into the target PC and boot. + + Remember that if said PC has another boot device you might need to + select this alternative for it to boot. + + In the case of EFI boot you might need to disable Secure Boot from + the setup as well. + +3. Enjoy + +Emulation in qemu (BIOS) +======================== + +1. Edit grub-bios.cfg + + Since the driver will show up in the virtual machine as /dev/vda, + change board/pc/grub-bios.cfg to use root=/dev/vda2 instead of + root=/dev/sda2. Then rebuild grub2 and the image. + +2. Run the emulation with: + +qemu-system-x86_64 \ + -M pc \ + -drive file=output/images/disk.img,if=virtio,format=raw \ + -net nic,model=virtio \ + -net user + + +Emulation in qemu (UEFI) +======================== + +Run the emulation with: + +qemu-system-x86_64 \ + -M pc \ + -bios \ + -drive file=output/images/disk.img,if=virtio,format=raw \ + -net nic,model=virtio \ + -net user + +Note that needs to point to a valid x86_64 UEFI +firmware image for qemu. It may be provided by your distribution as a +edk2 or OVMF package, in path such as +/usr/share/edk2/ovmf/OVMF_CODE.fd . diff --git a/board/pcengines/apu2/isolinux.cfg b/board/pcengines/apu2/isolinux.cfg new file mode 100644 index 000000000..cb19b5a89 --- /dev/null +++ b/board/pcengines/apu2/isolinux.cfg @@ -0,0 +1,6 @@ +serial 0 115200 +default 1 +label 1 + kernel __KERNEL_PATH__ + initrd __INITRD_PATH__ + append root=/dev/sr0 console=ttyS0,115200n8 diff --git a/board/pcengines/apu2/linux.config b/board/pcengines/apu2/linux.config new file mode 100644 index 000000000..5e3593b01 --- /dev/null +++ b/board/pcengines/apu2/linux.config @@ -0,0 +1,51 @@ +CONFIG_SYSVIPC=y +CONFIG_CGROUPS=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_SMP=y +CONFIG_HYPERVISOR_GUEST=y +CONFIG_PARAVIRT=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +# CONFIG_WIRELESS is not set +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_VIRTIO_BLK=y +CONFIG_BLK_DEV_SD=y +CONFIG_SCSI_VIRTIO=y +CONFIG_ATA=y +CONFIG_SATA_AHCI=y +CONFIG_ATA_PIIX=y +CONFIG_NETDEVICES=y +CONFIG_VIRTIO_NET=y +CONFIG_IGB=y +CONFIG_NE2K_PCI=y +CONFIG_8139CP=y +# CONFIG_WLAN is not set +CONFIG_INPUT_EVDEV=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_VIRTIO_CONSOLE=y +CONFIG_HW_RANDOM_VIRTIO=m +CONFIG_DRM=y +CONFIG_SOUND=y +CONFIG_SND=y +# CONFIG_SND_PCI is not set +CONFIG_USB=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_UHCI_HCD=y +CONFIG_USB_STORAGE=y +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_BALLOON=y +CONFIG_VIRTIO_INPUT=y +CONFIG_VIRTIO_MMIO=y +CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y +CONFIG_EXT4_FS=y +CONFIG_AUTOFS4_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_UNWINDER_FRAME_POINTER=y diff --git a/board/pcengines/apu2/readme.txt b/board/pcengines/apu2/readme.txt new file mode 100644 index 000000000..9da1b802c --- /dev/null +++ b/board/pcengines/apu2/readme.txt @@ -0,0 +1,40 @@ +Intro +===== + +This is a board configuration for the apu2 platform by PC Engines. + +https://pcengines.ch/apu2.htm + +Since the apu2 does not have any graphical output, the default configuration +will ensure that the kernel output as well as the login prompt will be sent to +the serial port. + +How to build +============ + +The provided defconfig creates a hybrid isolinux image that can be booted from +either an USB stick or a CD. + + $ make pcengines_apu2_defconfig + $ make + +How to write to an USB stick +============================ + +Once the build process is finished you will have an image +called "rootfs.iso9660" in the output/images/ directory. + +Copy the bootable "rootfs.iso9660" onto the USB stick with "dd": + + $ sudo dd if=output/images/rootfs.iso9660 of=/dev/sdX bs=1M conv=fsync + $ sudo sync + +How to connect to the apu2 +========================== + +Connect to the DB9 serial port of the apu2 board (either directly or through a +USB adapter) with a baudrate of 115200. + +For example with miniterm (part of pyserial): + + $ miniterm.py -f direct /dev/ttyUSB0 115200 diff --git a/board/pine64/pine64/boot.cmd b/board/pine64/pine64/boot.cmd new file mode 100644 index 000000000..14f561044 --- /dev/null +++ b/board/pine64/pine64/boot.cmd @@ -0,0 +1,6 @@ +setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait + +fatload mmc 0 $kernel_addr_r Image +fatload mmc 0 $fdt_addr_r sun50i-a64-pine64.dtb + +booti $kernel_addr_r - $fdt_addr_r diff --git a/board/pine64/pine64/genimage.cfg b/board/pine64/pine64/genimage.cfg new file mode 100644 index 000000000..06b4ed105 --- /dev/null +++ b/board/pine64/pine64/genimage.cfg @@ -0,0 +1,40 @@ +image boot.vfat { + vfat { + files = { + "Image", + "sun50i-a64-pine64.dtb", + "boot.scr" + } + } + + size = 64M +} + +image sdcard.img { + hdimage { + } + + partition spl { + in-partition-table = "no" + image = "sunxi-spl.bin" + offset = 8K + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot.itb" + offset = 40K + size = 1M # 1MB - 40KB + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/pine64/pine64/readme.txt b/board/pine64/pine64/readme.txt new file mode 100644 index 000000000..85226fdd1 --- /dev/null +++ b/board/pine64/pine64/readme.txt @@ -0,0 +1,38 @@ +Intro +===== + +This default configuration will allow you to start experimenting with the +buildroot environment for the Pine64. With the current configuration +it will bring-up the board, and allow access through the serial console. + +Pine64 link: +https://www.pine64.org/?page_id=1194 + +Wiki link: +https://openedev.amarulasolutions.com/display/ODWIKI/Pine64 + +This configuration uses U-Boot mainline and kernel mainline. + +How to build +============ + + $ make pine64_defconfig + + $ make + +Note: you will need access to the internet to download the required +sources. + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + $ sudo sync + +Insert the micro SDcard in your Pine64 and power it up. The console +is on the serial line, 115200 8N1. diff --git a/board/pine64/rock64/extlinux.conf b/board/pine64/rock64/extlinux.conf new file mode 100644 index 000000000..bf71982a9 --- /dev/null +++ b/board/pine64/rock64/extlinux.conf @@ -0,0 +1,4 @@ +label rock64-buildroot + kernel /boot/Image + devicetree /boot/rk3328-rock64.dtb + append console=ttyS2,1500000n8 root=/dev/mmcblk0p1 ro rootwait diff --git a/board/pine64/rock64/genimage.cfg b/board/pine64/rock64/genimage.cfg new file mode 100644 index 000000000..7b749d1dd --- /dev/null +++ b/board/pine64/rock64/genimage.cfg @@ -0,0 +1,23 @@ +image sdcard.img { + hdimage { + } + + partition uboot-spl { + in-partition-table = "no" + image = "u-boot-tpl-spl.img" + offset = 32K # 512 * 0x40 from start of sd card + } + + partition uboot { + in-partition-table = "no" + image = "u-boot.itb" + offset = 256K # 512 * 0x200 from start of sd card + } + + partition rootfs { + partition-type = 0x83 + bootable = "yes" + image = "rootfs.ext2" + size = 500M + } +} diff --git a/board/pine64/rock64/patches/uboot/0001-Makefile-rk3328-needs-itb-image-to-boot-properly.patch b/board/pine64/rock64/patches/uboot/0001-Makefile-rk3328-needs-itb-image-to-boot-properly.patch new file mode 100644 index 000000000..2d35b78da --- /dev/null +++ b/board/pine64/rock64/patches/uboot/0001-Makefile-rk3328-needs-itb-image-to-boot-properly.patch @@ -0,0 +1,32 @@ +From 211bf049084e6e374dac253138fa813682910146 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20=C5=81yszczek?= +Date: Tue, 5 Feb 2019 22:08:54 +0100 +Subject: [PATCH] Makefile: rk3328 needs itb image to boot properly +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: MichaÅ‚ Åyszczek +--- + Makefile | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/Makefile b/Makefile +index 8086f3c93e..a6425b5b03 100644 +--- a/Makefile ++++ b/Makefile +@@ -799,6 +799,11 @@ ifneq ($(BUILD_ROM),) + ALL-$(CONFIG_X86_RESET_VECTOR) += u-boot.rom + endif + ++# rk3328 needs itb image to boot properly ++ifeq ($(CONFIG_ROCKCHIP_RK3328),y) ++ALL-y += u-boot.itb ++endif ++ + # enable combined SPL/u-boot/dtb rules for tegra + ifeq ($(CONFIG_TEGRA)$(CONFIG_SPL),yy) + ALL-y += u-boot-tegra.bin u-boot-nodtb-tegra.bin +-- +2.18.1 + diff --git a/board/pine64/rock64/post-build.sh b/board/pine64/rock64/post-build.sh new file mode 100755 index 000000000..26b53cba8 --- /dev/null +++ b/board/pine64/rock64/post-build.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +MKIMAGE=$HOST_DIR/bin/mkimage +BOARD_DIR="$(dirname $0)" + +$MKIMAGE -n rk3328 -T rksd -d $BINARIES_DIR/u-boot-tpl.bin $BINARIES_DIR/u-boot-tpl.img +cat $BINARIES_DIR/u-boot-tpl.img $BINARIES_DIR/u-boot-spl.bin > $BINARIES_DIR/u-boot-tpl-spl.img + +install -m 0644 -D $BOARD_DIR/extlinux.conf $TARGET_DIR/boot/extlinux/extlinux.conf diff --git a/board/pine64/rock64/readme.txt b/board/pine64/rock64/readme.txt new file mode 100644 index 000000000..029c67641 --- /dev/null +++ b/board/pine64/rock64/readme.txt @@ -0,0 +1,95 @@ +Intro +===== + +This default configuration will allow you to start experimenting with the +buildroot environment for the Rock64. With this default configuration you +can log in into board via uart and look around. + +Board homepage: https://www.pine64.org/?page_id=7147 + +Build +===== + +First, load rock64 config for buildroot + + $ make rock64_defconfig + +Optionally make changes to buildroot config (to install more programs) + + $ make menuconfig + +And then build everything + + $ make + +When completed, following files will be generated in output/images directory: + + . + ├── Image + ├── bl31.bin + ├── bl31.elf + ├── rk3328-rock64.dtb + ├── rootfs.ext2 + ├── rootfs.ext4 -> rootfs.ext2 + ├── rootfs.tar + ├── sdcard.img + ├── u-boot-spl.bin + ├── u-boot-tpl-spl.img + ├── u-boot-tpl.bin + ├── u-boot-tpl.img + ├── u-boot.bin + └── u-boot.itb + +Creating bootable SD card +========================= + +!!! THIS COMMAND MAY WIPE YOUR DISK! +!!! MAKE SURE YOU PASSED CORRECT DEVICE! +!!! OR IT THIS WILL WIPE YOUR DISK! + +Simply invoke (as root) + + # dd if=output/images/sdcard.img of=/dev/sdX && sync + +Where X is your SD card device (not partition), of= argument may also be +/dev/mmcblk0 if you are using built-in sd card reader. + +Runtime +======= + +Login +----- + +By default, buildroot has no password, just type 'root' as login user, and +you will be logged in. + +Serial console +-------------- + +Serial console needs to be connected to pins (into 40pin rpi compatible part) + +pin 6: gnd +pin 8: tx +pin 10: rx + +Pin numbers are printed on board. + +Uart configuration is not standard. Rock64 uses 1500000 (1,5M) baudrate +with standard 8n1. + +Ethernet +-------- + +To enable ethernet you need to load modules for it: + +# modprobe stmmac +# modprobe dwmac-rk + +and since by default there is no dhcp installed, you need to configure ip +address, remember to change address to fit your network. + +# ifconfig eth0 up +# ip addr add 10.1.1.180/24 dev eth0 +# ping 10.1.1.1 +PING 10.1.1.1 (10.1.1.1): 56 data bytes +64 bytes from 10.1.1.1: seq=0 ttl=64 time=0.695 ms diff --git a/board/pine64/rockpro64/extlinux.conf b/board/pine64/rockpro64/extlinux.conf new file mode 100644 index 000000000..ea081a1f0 --- /dev/null +++ b/board/pine64/rockpro64/extlinux.conf @@ -0,0 +1,4 @@ +label RK3399_ROCKPRO64 linux + kernel /Image + devicetree /rk3399-rockpro64.dtb + append earlycon=uart8250,mmio32,0xff1a0000 root=/dev/mmcblk0p4 rw rootwait diff --git a/board/pine64/rockpro64/genimage.cfg b/board/pine64/rockpro64/genimage.cfg new file mode 100644 index 000000000..94fa2f7c0 --- /dev/null +++ b/board/pine64/rockpro64/genimage.cfg @@ -0,0 +1,39 @@ +image boot.vfat { + vfat { + files = { + "Image", + "rk3399-rockpro64.dtb", + "extlinux" + } + } + + size = 64M +} + +image sdcard.img { + hdimage { + partition-table-type = "gpt" + } + + partition loader1 { + image = "idbloader.img" + offset = 32K + } + + partition loader2 { + image = "u-boot.itb" + offset = 8M + } + + partition boot { + partition-type-uuid = F + bootable = "true" + image = "boot.vfat" + offset = 16M + } + + partition rootfs { + partition-type-uuid = b921b045-1df0-41c3-af44-4c6f280d3fae + image = "rootfs.ext4" + } +} diff --git a/board/pine64/rockpro64/post-build.sh b/board/pine64/rockpro64/post-build.sh new file mode 100755 index 000000000..ba29375c0 --- /dev/null +++ b/board/pine64/rockpro64/post-build.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" + +install -m 0644 -D $BOARD_DIR/extlinux.conf $BINARIES_DIR/extlinux/extlinux.conf diff --git a/board/pine64/rockpro64/readme.txt b/board/pine64/rockpro64/readme.txt new file mode 100644 index 000000000..de8697010 --- /dev/null +++ b/board/pine64/rockpro64/readme.txt @@ -0,0 +1,60 @@ +PINE64 ROCKPro64 +================ +https://www.pine64.org/rockpro64/ + +Build: +====== + $ make rockpro64_defconfig + $ make + +Files created in output directory +================================= + +output/images + +├── bl31.elf +├── boot.vfat +├── extlinux +├── idbloader.img +├── Image +├── rk3399-rockpro64.dtb +├── rootfs.ext2 +├── rootfs.ext4 -> rootfs.ext2 +├── rootfs.tar +├── sdcard.img +├── u-boot.bin +└── u-boot.itb + +Creating bootable SD card: +========================== + +Simply invoke (as root) + +sudo dd if=output/images/sdcard.img of=/dev/sdX && sync + +Where X is your SD card device. + +Booting: +======== +RockPro64 has a 40-pin PI-2 GPIO Bus. + +Connect a jumper between pin 23 and pin 25 for SD card boot. + +Serial console: +--------------- +The pin layout for serial console on PI-2 GPIO Bus is as follows: + +pin 6: gnd +pin 8: tx +pin 10: rx + +Initially connect pin 6 and pin 8(transmit). Apply power to RockPro64, once the +power is on then connect pin 10(receive). + +Baudrate for this board is 1500000. + +Login: +------ +Enter 'root' as login user, and the prompt is ready. + +https://wiki.amarulasolutions.com/bsp/rockchip/rk3399/rockpro64.html diff --git a/board/pine64/sopine/boot.cmd b/board/pine64/sopine/boot.cmd new file mode 100644 index 000000000..2eab64237 --- /dev/null +++ b/board/pine64/sopine/boot.cmd @@ -0,0 +1,6 @@ +setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait + +fatload mmc 0 $kernel_addr_r Image +fatload mmc 0 $fdt_addr_r sun50i-a64-sopine-baseboard.dtb + +booti $kernel_addr_r - $fdt_addr_r diff --git a/board/pine64/sopine/genimage.cfg b/board/pine64/sopine/genimage.cfg new file mode 100644 index 000000000..9300f3d60 --- /dev/null +++ b/board/pine64/sopine/genimage.cfg @@ -0,0 +1,40 @@ +image boot.vfat { + vfat { + files = { + "Image", + "sun50i-a64-sopine-baseboard.dtb", + "boot.scr" + } + } + + size = 64M +} + +image sdcard.img { + hdimage { + } + + partition spl { + in-partition-table = "no" + image = "sunxi-spl.bin" + offset = 8K + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot.itb" + offset = 40K + size = 1M # 1MB - 40KB + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/pine64/sopine/readme.txt b/board/pine64/sopine/readme.txt new file mode 100644 index 000000000..08cb380b4 --- /dev/null +++ b/board/pine64/sopine/readme.txt @@ -0,0 +1,38 @@ +Intro +===== + +This default configuration will allow you to start experimenting with the +buildroot environment for the SoPine. With the current configuration +it will bring-up the board, and allow access through the serial console. + +SoPINE link: +https://www.pine64.org/?page_id=1491 + +Wiki link: +https://openedev.amarulasolutions.com/display/ODWIKI/SoPine + +This configuration uses U-Boot mainline and kernel mainline. + +How to build +============ + + $ make pine64_sopine_defconfig + + $ make + +Note: you will need access to the internet to download the required +sources. + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + $ sudo sync + +Insert the micro SDcard in your SoPine and power it up. The console +is on the serial line, 115200 8N1. diff --git a/board/qemu/aarch64-sbsa/assemble-flash-images b/board/qemu/aarch64-sbsa/assemble-flash-images new file mode 100755 index 000000000..abcc276b0 --- /dev/null +++ b/board/qemu/aarch64-sbsa/assemble-flash-images @@ -0,0 +1,11 @@ +#!/bin/bash + +set -e + +BOARD_DIR="$(dirname $0)" + +cp -f ${BOARD_DIR}/grub.cfg ${BINARIES_DIR}/efi-part/EFI/BOOT/grub.cfg + +# The QEMU sbsa machine expects flash devices to be 256M. +truncate -s 256M ${BINARIES_DIR}/SBSA_FLASH0.fd +truncate -s 256M ${BINARIES_DIR}/SBSA_FLASH1.fd diff --git a/board/qemu/aarch64-sbsa/genimage.cfg b/board/qemu/aarch64-sbsa/genimage.cfg new file mode 100644 index 000000000..e7ac7f2ee --- /dev/null +++ b/board/qemu/aarch64-sbsa/genimage.cfg @@ -0,0 +1,31 @@ +image efi-part.vfat { + vfat { + file EFI { + image = "efi-part/EFI" + } + + file Image { + image = "Image" + } + } + + size = 64M +} + +image disk.img { + hdimage { + partition-table-type = "gpt" + } + + partition boot { + image = "efi-part.vfat" + partition-type-uuid = U + offset = 32K + bootable = true + } + + partition root { + partition-type-uuid = b921b045-1df0-41c3-af44-4c6f280d3fae + image = "rootfs.ext2" + } +} diff --git a/board/qemu/aarch64-sbsa/grub.cfg b/board/qemu/aarch64-sbsa/grub.cfg new file mode 100644 index 000000000..cd486caf4 --- /dev/null +++ b/board/qemu/aarch64-sbsa/grub.cfg @@ -0,0 +1,6 @@ +set default="0" +set timeout="5" + +menuentry "Buildroot" { + linux /Image root=/dev/sda2 rootwait console=ttyAMA0 +} diff --git a/board/qemu/aarch64-sbsa/linux.config b/board/qemu/aarch64-sbsa/linux.config new file mode 100644 index 000000000..a60cce02e --- /dev/null +++ b/board/qemu/aarch64-sbsa/linux.config @@ -0,0 +1,68 @@ +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +CONFIG_NO_HZ_IDLE=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_TASKSTATS=y +CONFIG_SCHED_AUTOGROUP=y +CONFIG_PROFILING=y +CONFIG_ARCH_VEXPRESS=y +CONFIG_COMPAT=y +CONFIG_FW_CFG_SYSFS=y +CONFIG_FW_CFG_SYSFS_CMDLINE=y +CONFIG_ACPI=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_BLK_DEV_BSGLIB=y +CONFIG_BINFMT_MISC=y +CONFIG_TRANSPARENT_HUGEPAGE=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_PACKET_DIAG=y +CONFIG_UNIX=y +CONFIG_NET_KEY=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_BRIDGE=m +CONFIG_NET_SCHED=y +CONFIG_VSOCKETS=y +CONFIG_PCI=y +CONFIG_PCI_HOST_GENERIC=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_VIRTIO_BLK=y +CONFIG_BLK_DEV_SD=y +CONFIG_CHR_DEV_SG=y +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_SCAN_ASYNC=y +CONFIG_SCSI_VIRTIO=y +CONFIG_ATA=y +CONFIG_SATA_AHCI_PLATFORM=y +CONFIG_NETDEVICES=y +CONFIG_DUMMY=y +CONFIG_MACVLAN=y +CONFIG_VIRTIO_NET=y +CONFIG_NLMON=y +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +CONFIG_VIRTIO_CONSOLE=y +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_VIRTIO=y +CONFIG_TCG_TPM=y +CONFIG_TCG_TIS=y +CONFIG_DRM=y +CONFIG_DRM_VIRTIO_GPU=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_PL031=y +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_MMIO=y +CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y +CONFIG_MAILBOX=y +CONFIG_PL320_MBOX=y +CONFIG_ARM_SMMU_V3=y +CONFIG_EXT4_FS=y +CONFIG_FUSE_FS=y +CONFIG_VIRTIO_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y diff --git a/board/qemu/aarch64-sbsa/readme.txt b/board/qemu/aarch64-sbsa/readme.txt new file mode 100644 index 000000000..cf5f66d4d --- /dev/null +++ b/board/qemu/aarch64-sbsa/readme.txt @@ -0,0 +1,32 @@ +Intro +===== + +The QEMU sbsa-ref machine is primarily meant for firmware development +and testing according to ARM's SBSA and SBBR standards. + +Build +===== + + $ make qemu_aarch64_sbsa_defconfig + $ make + +Emulation +========= + +Run the emulation with: + + qemu-system-aarch64 \ + -M sbsa-ref \ + -cpu cortex-a57 \ + -smp 4 \ + -m 1024 \ + -nographic \ + -pflash output/images/SBSA_FLASH0.fd \ + -pflash output/images/SBSA_FLASH1.fd \ + -hda output/images/disk.img # qemu_aarch64_sbsa_defconfig + +Note that if you want to run sbsa-ref emulation with QEMU provided by +your distro (i.e., not host-qemu by Buildroot) then you may need to +install the SeaBIOS package for some required drivers. On Debian: + + # apt install seabios diff --git a/board/qemu/aarch64-virt/linux.config b/board/qemu/aarch64-virt/linux.config new file mode 100644 index 000000000..f9763b73b --- /dev/null +++ b/board/qemu/aarch64-virt/linux.config @@ -0,0 +1,75 @@ +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +CONFIG_NO_HZ_IDLE=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_TASKSTATS=y +CONFIG_MEMCG=y +CONFIG_BLK_CGROUP=y +CONFIG_CPUSETS=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_SCHED_AUTOGROUP=y +CONFIG_PROFILING=y +CONFIG_ARCH_VEXPRESS=y +CONFIG_COMPAT=y +CONFIG_FW_CFG_SYSFS=y +CONFIG_FW_CFG_SYSFS_CMDLINE=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_BLK_DEV_BSGLIB=y +CONFIG_BINFMT_MISC=y +CONFIG_TRANSPARENT_HUGEPAGE=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_PACKET_DIAG=y +CONFIG_UNIX=y +CONFIG_NET_KEY=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_BRIDGE=m +CONFIG_NET_SCHED=y +CONFIG_VSOCKETS=y +CONFIG_PCI=y +CONFIG_PCI_HOST_GENERIC=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_VIRTIO_BLK=y +CONFIG_BLK_DEV_SD=y +CONFIG_CHR_DEV_SG=y +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_SCAN_ASYNC=y +CONFIG_SCSI_VIRTIO=y +CONFIG_ATA=y +CONFIG_NETDEVICES=y +CONFIG_DUMMY=y +CONFIG_MACVLAN=y +CONFIG_VIRTIO_NET=y +CONFIG_NLMON=y +CONFIG_INPUT_EVDEV=y +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +CONFIG_VIRTIO_CONSOLE=y +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_VIRTIO=y +CONFIG_TCG_TPM=y +CONFIG_TCG_TIS=y +CONFIG_DRM=y +CONFIG_DRM_VIRTIO_GPU=y +CONFIG_FB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_PL031=y +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_INPUT=y +CONFIG_VIRTIO_MMIO=y +CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y +CONFIG_MAILBOX=y +CONFIG_PL320_MBOX=y +CONFIG_ARM_SMMU_V3=y +CONFIG_EXT4_FS=y +CONFIG_FUSE_FS=y +CONFIG_VIRTIO_FS=y +CONFIG_OVERLAY_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y diff --git a/board/qemu/aarch64-virt/readme.txt b/board/qemu/aarch64-virt/readme.txt new file mode 100644 index 000000000..db35a3a7a --- /dev/null +++ b/board/qemu/aarch64-virt/readme.txt @@ -0,0 +1,5 @@ +Run the emulation with: + + qemu-system-aarch64 -M virt -cpu cortex-a53 -nographic -smp 1 -kernel output/images/Image -append "rootwait root=/dev/vda console=ttyAMA0" -netdev user,id=eth0 -device virtio-net-device,netdev=eth0 -drive file=output/images/rootfs.ext4,if=none,format=raw,id=hd0 -device virtio-blk-device,drive=hd0 # qemu_aarch64_virt_defconfig + +The login prompt will appear in the terminal that started Qemu. diff --git a/board/qemu/arm-versatile/linux.fragment b/board/qemu/arm-versatile/linux.fragment new file mode 100644 index 000000000..0aed55831 --- /dev/null +++ b/board/qemu/arm-versatile/linux.fragment @@ -0,0 +1,66 @@ +# CONFIG_BLK_DEV_INITRD is not set +# CONFIG_BLK_DEV_RAM is not set +# CONFIG_CMA is not set +# CONFIG_CRAMFS is not set +CONFIG_CMDLINE="" +CONFIG_CRC16=y +CONFIG_CRYPTO=y +# CONFIG_DEBUG_FS is not set +# CONFIG_DEBUG_KERNEL is not set +# CONFIG_DEBUG_USER is not set +CONFIG_DEVTMPFS=y +# CONFIG_DRM is not set +# CONFIG_EEPROM_LEGACY is not set +# CONFIG_EXT2_FS is not set +CONFIG_EXT4_FS=y +CONFIG_FB_ARMCLCD=y +# CONFIG_FONTS is not set +CONFIG_FONT_8x16=y +CONFIG_FONT_8x8=y +# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +# CONFIG_FTRACE is not set +# CONFIG_GPIOLIB is not set +# CONFIG_HIGH_RES_TIMERS is not set +CONFIG_HWMON=y +CONFIG_HZ_PERIODIC=y +# CONFIG_I2C_VERSATILE is not set +CONFIG_INET_DIAG=y +CONFIG_INPUT_EVDEV=y +CONFIG_IPV6=y +# CONFIG_IP_MULTICAST is not set +# CONFIG_IP_PNP is not set +CONFIG_LOCALVERSION_AUTO=y +# CONFIG_LOGO is not set +CONFIG_LOG_BUF_SHIFT=17 +CONFIG_MDIO_DEVICE=y +# CONFIG_MINIX_FS is not set +# CONFIG_MMC is not set +# CONFIG_MTD is not set +# CONFIG_NEW_LEDS is not set +# CONFIG_NFSD is not set +# CONFIG_NFS_FS is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_ISO8859_1 is not set +# CONFIG_NO_HZ_IDLE is not set +# CONFIG_NVMEM is not set +# CONFIG_OABI_COMPAT is not set +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_PCI=y +CONFIG_PCI_VERSATILE=y +CONFIG_PHYLIB=y +# CONFIG_ROMFS_FS is not set +# CONFIG_RTC_CLASS is not set +CONFIG_SCSI=y +CONFIG_SCSI_SPI_ATTRS=y +CONFIG_SCSI_SYM53C8XX_2=y +CONFIG_SERIO_SERPORT=y +CONFIG_SLUB=y +# CONFIG_SPI is not set +# CONFIG_SYNC_FILE is not set +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMPFS_XATTR=y +# CONFIG_VFP is not set +# CONFIG_XZ_DEC is not set +CONFIG_8139CP=y +CONFIG_BLK_DEV_SD=y diff --git a/board/qemu/arm-versatile/readme.txt b/board/qemu/arm-versatile/readme.txt new file mode 100644 index 000000000..757ef378e --- /dev/null +++ b/board/qemu/arm-versatile/readme.txt @@ -0,0 +1,6 @@ +Run the emulation with: + + qemu-system-arm -M versatilepb -kernel output/images/zImage -dtb output/images/versatile-pb.dtb -drive file=output/images/rootfs.ext2,if=scsi,format=raw -append "rootwait root=/dev/sda console=ttyAMA0,115200" -serial stdio -net nic,model=rtl8139 -net user # qemu_arm_versatile_defconfig + +The login prompt will appear in the terminal that started Qemu. The +graphical window is the framebuffer. diff --git a/board/qemu/arm-vexpress-tz/linux.fragment b/board/qemu/arm-vexpress-tz/linux.fragment new file mode 100644 index 000000000..1537d938f --- /dev/null +++ b/board/qemu/arm-vexpress-tz/linux.fragment @@ -0,0 +1,3 @@ +### Enable OP-TEE +CONFIG_TEE=y +CONFIG_OPTEE=y diff --git a/board/qemu/arm-vexpress-tz/post-build.sh b/board/qemu/arm-vexpress-tz/post-build.sh new file mode 100755 index 000000000..97cc53791 --- /dev/null +++ b/board/qemu/arm-vexpress-tz/post-build.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +set -u +set -e + +# Create flash.bin TF-A FIP image from bl1.bin and fip.bin +cd "$BINARIES_DIR" +dd if=bl1.bin of=flash.bin bs=4096 +dd if=fip.bin of=flash.bin seek=64 bs=4096 conv=notrunc diff --git a/board/qemu/arm-vexpress-tz/readme.txt b/board/qemu/arm-vexpress-tz/readme.txt new file mode 100644 index 000000000..3036dd54c --- /dev/null +++ b/board/qemu/arm-vexpress-tz/readme.txt @@ -0,0 +1,135 @@ +Board qemu_arm_vexpress_tz builds a QEMU ARMv7-A target system with +OP-TEE running in the TrustZone secure world and a Linux based +OS running in the non-secure world. The board configuration enables +builds of the QEMU host ARM target emulator. + + make qemu_arm_vexpress_tz_defconfig + make + +The BIOS used in the QEMU host is the ARM Trusted Firmware-A (TF-A). +In our configuration, U-Boot uses QEMU semihosting file access to load the +kernel and rootfs image files. For this reason the emulation needs to be run +from the image directory: + + cd output/images && ../host/bin/qemu-system-arm \ + -machine virt -machine secure=on -cpu cortex-a15 \ + -smp 1 -s -m 1024 -d unimp \ + -serial stdio \ + -netdev user,id=vmnic -device virtio-net-device,netdev=vmnic \ + -semihosting-config enable=on,target=native \ + -bios flash.bin # qemu_arm_vexpress_tz_defconfig + +The boot stage traces (if any) followed by the login prompt will appear +in the terminal that started QEMU. + +If you want to emulate more cores, use "-smp {1|2|3|4}" to select the +number of cores. + +Note: "-netdev user,id=vmnic -device virtio-net-device,netdev=vmnic" +brings network support that is used i.e. in OP-TEE regression tests. + + +-- Boot Details -- + +TF-A is used as QEMU BIOS. Its BL1 image boots and load its BL2 image. In turn, +this image loads the OP-TEE secure world (ARMv7-A BL32 stage) and the U-boot as +non-secure bootloader (BL33 stage). + +QEMU natively hosts and loads in RAM the QEMU ARM target device tree. OP-TEE +reads and modifies its content according to OP-TEE configuration. + +Enable TF-A traces from LOG_LEVEL (I.e LOG_LEVEL=40) from +BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES. + + +-- OP-TEE Traces -- + +Secure boot stages and/or secure runtime services may use a serial link for +their traces. + +The ARM Trusted Firmware outputs its traces on the QEMU standard (first) +serial interface. + +The OP-TEE OS uses the QEMU second serial interface. + +To get the OP-TEE OS traces, append a second -serial argument after +-serial stdio in the QEMU command line. I.e, the following enables 2 serial +consoles over telnet connections: + + cd output/images && ../host/bin/qemu-system-arm \ + -machine virt -machine secure=on -cpu cortex-a15 \ + -smp 1 -s -m 1024 -d unimp \ + -serial telnet:127.0.0.1:1235,server \ + -serial telnet:127.0.0.1:1236,server \ + -netdev user,id=vmnic -device virtio-net-device,netdev=vmnic \ + -semihosting-config enable,target=native \ + -bios flash.bin + +QEMU is now waiting for the telnet connection. From another shell, open a +telnet connection on the port for the U-boot and Linux consoles: + + telnet 127.0.0.1 1235 + +and again for the secure console + + telnet 127.0.0.1 1236 + + +-- Using gdb -- + +One can debug the OP-TEE secure world using GDB through the QEMU host. +To do so, simply run the qemu-system-arm emulation, then run a GDB client +and connect the QEMU internal GDB server. + +The example below assumes we run QEMU and the GDB client from the same +host computer. We use option -S of qemu-system-arm to make QEMU +waiting for the GDB continue instruction before booting the images. + +From a first shell: + cd output/images && ../host/bin/qemu-system-arm \ + -machine virt -machine secure=on -cpu cortex-a15 \ + -smp 1 -s -m 1024 -d unimp \ + -serial stdio \ + -netdev user,id=vmnic -device virtio-net-device,netdev=vmnic \ + -semihosting-config enable,target=native \ + -bios flash.bin \ + -S + +From a second shell: + ./output/host/bin/arm-linux-gdb + GNU gdb (GNU Toolchain for the A-profile Architecture 8.2-2018-08 (arm-rel-8.23)) 8.1.1.20180704-git + Copyright (C) 2018 Free Software Foundation, Inc. + ... + For help, type "help". + Type "apropos word" to search for commands related to "word". + (gdb) + +From this GDB console, connect to the target, load the OP-TEE core symbols, +set a breakpoint to its entry point (__text_start) and start emulation: + + (gdb) target remote 127.0.0.1:1234 + (gdb) symbol-file ./output/build/optee-os-/out/core/tee.elf + (gdb) hbreak __text_start + Hardware assisted breakpoint 1 at 0xe100000: file core/arch/arm/kernel/generic_entry_a32.S, line 246. + (gdb) cont + Continuing. + + Thread 1 hit Breakpoint 1, _start () at core/arch/arm/kernel/generic_entry_a32.S:246 + 246 bootargs_entry + (gdb) + + +Emulation has started, TF-A has loaded OP-TEE and U-boot images in memory and +has booted OP-TEE. Emulation stopped at OP-TEE core entry. + +Note: QEMU hosts a GDB service listening to TCP port 1234, as set through +qemu-system-arm command line option -s. + +Note: To build the GDB server, the following extra options have to be added to +the Buildroot configuration: + + BR2_ENABLE_DEBUG=y + BR2_PACKAGE_GDB=y + BR2_PACKAGE_HOST_GDB=y + BR2_TOOLCHAIN_BUILDROOT_CXX=y + BR2_TOOLCHAIN_BUILDROOT_GLIBC=y diff --git a/board/qemu/arm-vexpress-tz/u-boot.config b/board/qemu/arm-vexpress-tz/u-boot.config new file mode 100644 index 000000000..48b1d06fd --- /dev/null +++ b/board/qemu/arm-vexpress-tz/u-boot.config @@ -0,0 +1,8 @@ +CONFIG_SYS_TEXT_BASE=0x60000000 +CONFIG_BOOTCOMMAND="smhload zImage ${kernel_addr_r} && smhload rootfs.cpio.uboot ${ramdisk_addr_r} && setenv bootargs console=ttyAMA0,115200 earlyprintk=serial,ttyAMA0,115200 && bootz ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr}" +CONFIG_SEMIHOSTING=y +# Drop flash accesses +CONFIG_ENV_IS_IN_FLASH=n +CONFIG_MTD=n +CONFIG_MTD_NOR_FLASH=n +CONFIG_ENV_IS_NOWHERE=y diff --git a/board/qemu/arm-vexpress/readme.txt b/board/qemu/arm-vexpress/readme.txt new file mode 100644 index 000000000..8d1bb72f8 --- /dev/null +++ b/board/qemu/arm-vexpress/readme.txt @@ -0,0 +1,9 @@ +Run the emulation with: + + qemu-system-arm -M vexpress-a9 -smp 1 -m 256 -kernel output/images/zImage -dtb output/images/vexpress-v2p-ca9.dtb -drive file=output/images/rootfs.ext2,if=sd,format=raw -append "console=ttyAMA0,115200 rootwait root=/dev/mmcblk0" -serial stdio -net nic,model=lan9118 -net user # qemu_arm_vexpress_defconfig + +The login prompt will appear in the terminal that started Qemu. The +graphical window is the framebuffer. + +If you want to emulate more cores change "-smp 1" to "-smp 2" for +dual-core or even "smp -4" for a quad-core configuration. diff --git a/board/qemu/m68k-mcf5208/linux.config b/board/qemu/m68k-mcf5208/linux.config new file mode 100644 index 000000000..09a89d725 --- /dev/null +++ b/board/qemu/m68k-mcf5208/linux.config @@ -0,0 +1,28 @@ +CONFIG_M68K=y +CONFIG_COLDFIRE=y +# CONFIG_MMU is not set +CONFIG_M520x=y +CONFIG_CLOCK_SET=y +CONFIG_CLOCK_FREQ=66666666 +CONFIG_CLOCK_DIV=1 +CONFIG_M5208EVB=y +CONFIG_FREESCALE=y +CONFIG_RAMBASE=0x40000000 +CONFIG_RAMSIZE=0x0 +CONFIG_VECTORBASE=0x40000000 +CONFIG_KERNELBASE=0x40020000 +CONFIG_4KSTACKS=y +CONFIG_RAMKERNEL=y +CONFIG_BINFMT_FLAT=y +CONFIG_SERIAL_MCF=y +CONFIG_SERIAL_MCF_BAUDRATE=115200 +CONFIG_SERIAL_MCF_CONSOLE=y +CONFIG_BOOTPARAM=y +CONFIG_BOOTPARAM_STRING="console=ttyS0,115200" +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_NETDEVICES=y +CONFIG_NET_VENDOR_FREESCALE=y +CONFIG_FEC=y diff --git a/board/qemu/m68k-mcf5208/readme.txt b/board/qemu/m68k-mcf5208/readme.txt new file mode 100644 index 000000000..79bf7146a --- /dev/null +++ b/board/qemu/m68k-mcf5208/readme.txt @@ -0,0 +1,5 @@ +Run the emulation with: + + qemu-system-m68k -M mcf5208evb -cpu m5208 -kernel output/images/vmlinux -nographic # qemu_m68k_mcf5208_defconfig + +The login prompt will appear in the terminal that started Qemu. diff --git a/board/qemu/m68k-q800/linux.config b/board/qemu/m68k-q800/linux.config new file mode 100644 index 000000000..44eb70e2d --- /dev/null +++ b/board/qemu/m68k-q800/linux.config @@ -0,0 +1,26 @@ +CONFIG_M68K=y +CONFIG_M68040=y +CONFIG_M68KFPU_EMU=y +CONFIG_MAC=y +CONFIG_MACINTOSH_DRIVERS=y +CONFIG_ADB=y +CONFIG_ADB_MACII=y +CONFIG_TTY=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_NETDEVICES=y +CONFIG_MACSONIC=y +CONFIG_SCSI=y +CONFIG_SCSI_DMA=y +CONFIG_SCSI_LOWLEVEL=y +CONFIG_SCSI_MAC_ESP=y +CONFIG_BLK_DEV_SD=y +CONFIG_SERIAL_PMACZILOG=y +CONFIG_SERIAL_PMACZILOG_TTYS=y +CONFIG_SERIAL_PMACZILOG_CONSOLE=y +CONFIG_EXT4_FS=y +CONFIG_TMPFS=y diff --git a/board/qemu/m68k-q800/readme.txt b/board/qemu/m68k-q800/readme.txt new file mode 100644 index 000000000..f1db57d52 --- /dev/null +++ b/board/qemu/m68k-q800/readme.txt @@ -0,0 +1,5 @@ +Run the emulation with: + + qemu-system-m68k -M q800 -kernel output/images/vmlinux -nographic -drive file=output/images/rootfs.ext2,format=raw -append "rootwait root=/dev/sda console=ttyS0" # qemu_m68k_q800_defconfig + +The login prompt will appear in the terminal that started Qemu. diff --git a/board/qemu/microblazebe-mmu/0001-net-xilinx-xemaclite-add-2.00.b-revision.patch b/board/qemu/microblazebe-mmu/0001-net-xilinx-xemaclite-add-2.00.b-revision.patch new file mode 100644 index 000000000..eb3859f85 --- /dev/null +++ b/board/qemu/microblazebe-mmu/0001-net-xilinx-xemaclite-add-2.00.b-revision.patch @@ -0,0 +1,34 @@ +From e96b73478232aa42b773cd19371808af69fd4b95 Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Sat, 25 Apr 2020 09:49:11 +0200 +Subject: [PATCH] net: xilinx: xemaclite: add 2.00.b revision + +Patch added for the kernel 3.14 +- fix networking in Qemu using a small patch +- disable DTS, because linux.bin does not include any DTB the + default Qemu included DTB is used and this is okay and works fine + +https://git.buildroot.net/buildroot/commit/board/qemu/microblazebe-mmu/xilinx-xemaclite.patch?id=fa2798548368d51998fad18d7f6d1ae0ed065b33 + +[Romain: convert to git format] +Signed-off-by: Romain Naour +Cc: Waldemar Brodkorb +--- + drivers/net/ethernet/xilinx/xilinx_emaclite.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/net/ethernet/xilinx/xilinx_emaclite.c b/drivers/net/ethernet/xilinx/xilinx_emaclite.c +index 0de52e70abcc..d8c13140ca77 100644 +--- a/drivers/net/ethernet/xilinx/xilinx_emaclite.c ++++ b/drivers/net/ethernet/xilinx/xilinx_emaclite.c +@@ -1278,6 +1278,7 @@ static const struct of_device_id xemaclite_of_match[] = { + { .compatible = "xlnx,opb-ethernetlite-1.01.b", }, + { .compatible = "xlnx,xps-ethernetlite-1.00.a", }, + { .compatible = "xlnx,xps-ethernetlite-2.00.a", }, ++ { .compatible = "xlnx,xps-ethernetlite-2.00.b", }, + { .compatible = "xlnx,xps-ethernetlite-2.01.a", }, + { .compatible = "xlnx,xps-ethernetlite-3.00.a", }, + { /* end of list */ }, +-- +2.25.3 + diff --git a/board/qemu/microblazebe-mmu/linux.config b/board/qemu/microblazebe-mmu/linux.config new file mode 100644 index 000000000..7bcd38206 --- /dev/null +++ b/board/qemu/microblazebe-mmu/linux.config @@ -0,0 +1,20 @@ +CONFIG_SYSVIPC=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_OPT_LIB_ASM=y +CONFIG_XILINX_MICROBLAZE0_FAMILY="spartan3adsp" +CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR=1 +CONFIG_XILINX_MICROBLAZE0_USE_PCMP_INSTR=1 +CONFIG_XILINX_MICROBLAZE0_USE_BARREL=1 +CONFIG_XILINX_MICROBLAZE0_USE_HW_MUL=1 +CONFIG_MMU=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_NETDEVICES=y +CONFIG_XILINX_EMACLITE=y +CONFIG_SERIAL_UARTLITE=y +CONFIG_SERIAL_UARTLITE_CONSOLE=y +# CONFIG_VGA_CONSOLE is not set +CONFIG_TMPFS=y diff --git a/board/qemu/microblazebe-mmu/readme.txt b/board/qemu/microblazebe-mmu/readme.txt new file mode 100644 index 000000000..7bb986422 --- /dev/null +++ b/board/qemu/microblazebe-mmu/readme.txt @@ -0,0 +1,5 @@ +Run the emulation with: + + qemu-system-microblaze -M petalogix-s3adsp1800 -kernel output/images/linux.bin -serial stdio # qemu_microblazebe_mmu_defconfig + +The login prompt will appear in the terminal that started Qemu. diff --git a/board/qemu/microblazeel-mmu/0001-net-xilinx-xemaclite-add-2.00.b-revision.patch b/board/qemu/microblazeel-mmu/0001-net-xilinx-xemaclite-add-2.00.b-revision.patch new file mode 100644 index 000000000..eb3859f85 --- /dev/null +++ b/board/qemu/microblazeel-mmu/0001-net-xilinx-xemaclite-add-2.00.b-revision.patch @@ -0,0 +1,34 @@ +From e96b73478232aa42b773cd19371808af69fd4b95 Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Sat, 25 Apr 2020 09:49:11 +0200 +Subject: [PATCH] net: xilinx: xemaclite: add 2.00.b revision + +Patch added for the kernel 3.14 +- fix networking in Qemu using a small patch +- disable DTS, because linux.bin does not include any DTB the + default Qemu included DTB is used and this is okay and works fine + +https://git.buildroot.net/buildroot/commit/board/qemu/microblazebe-mmu/xilinx-xemaclite.patch?id=fa2798548368d51998fad18d7f6d1ae0ed065b33 + +[Romain: convert to git format] +Signed-off-by: Romain Naour +Cc: Waldemar Brodkorb +--- + drivers/net/ethernet/xilinx/xilinx_emaclite.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/net/ethernet/xilinx/xilinx_emaclite.c b/drivers/net/ethernet/xilinx/xilinx_emaclite.c +index 0de52e70abcc..d8c13140ca77 100644 +--- a/drivers/net/ethernet/xilinx/xilinx_emaclite.c ++++ b/drivers/net/ethernet/xilinx/xilinx_emaclite.c +@@ -1278,6 +1278,7 @@ static const struct of_device_id xemaclite_of_match[] = { + { .compatible = "xlnx,opb-ethernetlite-1.01.b", }, + { .compatible = "xlnx,xps-ethernetlite-1.00.a", }, + { .compatible = "xlnx,xps-ethernetlite-2.00.a", }, ++ { .compatible = "xlnx,xps-ethernetlite-2.00.b", }, + { .compatible = "xlnx,xps-ethernetlite-2.01.a", }, + { .compatible = "xlnx,xps-ethernetlite-3.00.a", }, + { /* end of list */ }, +-- +2.25.3 + diff --git a/board/qemu/microblazeel-mmu/linux.config b/board/qemu/microblazeel-mmu/linux.config new file mode 100644 index 000000000..a6228280b --- /dev/null +++ b/board/qemu/microblazeel-mmu/linux.config @@ -0,0 +1,19 @@ +CONFIG_SYSVIPC=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_XILINX_MICROBLAZE0_FAMILY="spartan3adsp" +CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR=1 +CONFIG_XILINX_MICROBLAZE0_USE_PCMP_INSTR=1 +CONFIG_XILINX_MICROBLAZE0_USE_BARREL=1 +CONFIG_XILINX_MICROBLAZE0_USE_HW_MUL=1 +CONFIG_MMU=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_NETDEVICES=y +CONFIG_XILINX_EMACLITE=y +CONFIG_SERIAL_UARTLITE=y +CONFIG_SERIAL_UARTLITE_CONSOLE=y +# CONFIG_VGA_CONSOLE is not set +CONFIG_TMPFS=y diff --git a/board/qemu/microblazeel-mmu/readme.txt b/board/qemu/microblazeel-mmu/readme.txt new file mode 100644 index 000000000..20fa0072e --- /dev/null +++ b/board/qemu/microblazeel-mmu/readme.txt @@ -0,0 +1,5 @@ +Run the emulation with: + + qemu-system-microblazeel -M petalogix-s3adsp1800 -kernel output/images/linux.bin -serial stdio # qemu_microblazeel_mmu_defconfig + +The login prompt will appear in the terminal that started Qemu. diff --git a/board/qemu/mips32r2-malta/linux.config b/board/qemu/mips32r2-malta/linux.config new file mode 100644 index 000000000..db8ad1760 --- /dev/null +++ b/board/qemu/mips32r2-malta/linux.config @@ -0,0 +1,28 @@ +CONFIG_MIPS_MALTA=y +CONFIG_CPU_MIPS32_R2=y +CONFIG_MIPS_MT_SMP=y +CONFIG_NR_CPUS=2 +CONFIG_SYSVIPC=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_PCI=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_BLK_DEV_SD=y +CONFIG_ATA=y +CONFIG_ATA_PIIX=y +CONFIG_NETDEVICES=y +CONFIG_PCNET32=y +CONFIG_INPUT_EVDEV=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_FB=y +CONFIG_FB_CIRRUS=y +CONFIG_USB=y +CONFIG_USB_UHCI_HCD=y +CONFIG_EXT4_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y diff --git a/board/qemu/mips32r2-malta/readme.txt b/board/qemu/mips32r2-malta/readme.txt new file mode 100644 index 000000000..77518ccec --- /dev/null +++ b/board/qemu/mips32r2-malta/readme.txt @@ -0,0 +1,7 @@ +Run the emulation with: + + qemu-system-mips -M malta -kernel output/images/vmlinux -serial stdio -drive file=output/images/rootfs.ext2,format=raw -append "rootwait root=/dev/sda" -net nic,model=pcnet -net user # qemu_mips32r2_malta_defconfig + +The login prompt will appear in the terminal that started Qemu. The +graphical window is the framebuffer. No keyboard support has been +enabled. diff --git a/board/qemu/mips32r2el-malta/linux.config b/board/qemu/mips32r2el-malta/linux.config new file mode 100644 index 000000000..916e52229 --- /dev/null +++ b/board/qemu/mips32r2el-malta/linux.config @@ -0,0 +1,29 @@ +CONFIG_MIPS_MALTA=y +CONFIG_CPU_LITTLE_ENDIAN=y +CONFIG_CPU_MIPS32_R2=y +CONFIG_MIPS_MT_SMP=y +CONFIG_NR_CPUS=2 +CONFIG_SYSVIPC=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_PCI=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_BLK_DEV_SD=y +CONFIG_ATA=y +CONFIG_ATA_PIIX=y +CONFIG_NETDEVICES=y +CONFIG_PCNET32=y +CONFIG_INPUT_EVDEV=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_FB=y +CONFIG_FB_CIRRUS=y +CONFIG_USB=y +CONFIG_USB_UHCI_HCD=y +CONFIG_EXT4_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y diff --git a/board/qemu/mips32r2el-malta/readme.txt b/board/qemu/mips32r2el-malta/readme.txt new file mode 100644 index 000000000..2a1e84a0f --- /dev/null +++ b/board/qemu/mips32r2el-malta/readme.txt @@ -0,0 +1,7 @@ +Run the emulation with: + + qemu-system-mipsel -M malta -kernel output/images/vmlinux -serial stdio -drive file=output/images/rootfs.ext2,format=raw -append "rootwait root=/dev/sda" -net nic,model=pcnet -net user # qemu_mips32r2el_malta_defconfig + +The login prompt will appear in the terminal that started Qemu. The +graphical window is the framebuffer. No keyboard support has been +enabled. diff --git a/board/qemu/mips32r6-malta/linux.config b/board/qemu/mips32r6-malta/linux.config new file mode 100644 index 000000000..fbfffe206 --- /dev/null +++ b/board/qemu/mips32r6-malta/linux.config @@ -0,0 +1,28 @@ +CONFIG_MIPS_MALTA=y +CONFIG_CPU_MIPS32_R6=y +CONFIG_MIPS_MT_SMP=y +CONFIG_NR_CPUS=2 +CONFIG_SYSVIPC=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_PCI=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_BLK_DEV_SD=y +CONFIG_ATA=y +CONFIG_ATA_PIIX=y +CONFIG_NETDEVICES=y +CONFIG_PCNET32=y +CONFIG_INPUT_EVDEV=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_FB=y +CONFIG_FB_CIRRUS=y +CONFIG_USB=y +CONFIG_USB_UHCI_HCD=y +CONFIG_EXT4_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y diff --git a/board/qemu/mips32r6-malta/readme.txt b/board/qemu/mips32r6-malta/readme.txt new file mode 100644 index 000000000..ff5f1e36b --- /dev/null +++ b/board/qemu/mips32r6-malta/readme.txt @@ -0,0 +1,5 @@ +Run the emulation with: + + qemu-system-mips -M malta -cpu mips32r6-generic -kernel output/images/vmlinux -drive file=output/images/rootfs.ext2,format=raw -append "rootwait root=/dev/sda" -nographic # qemu_mips32r6_malta_defconfig + +The login prompt will appear in the terminal that started Qemu. diff --git a/board/qemu/mips32r6el-malta/linux.config b/board/qemu/mips32r6el-malta/linux.config new file mode 100644 index 000000000..fbfffe206 --- /dev/null +++ b/board/qemu/mips32r6el-malta/linux.config @@ -0,0 +1,28 @@ +CONFIG_MIPS_MALTA=y +CONFIG_CPU_MIPS32_R6=y +CONFIG_MIPS_MT_SMP=y +CONFIG_NR_CPUS=2 +CONFIG_SYSVIPC=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_PCI=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_BLK_DEV_SD=y +CONFIG_ATA=y +CONFIG_ATA_PIIX=y +CONFIG_NETDEVICES=y +CONFIG_PCNET32=y +CONFIG_INPUT_EVDEV=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_FB=y +CONFIG_FB_CIRRUS=y +CONFIG_USB=y +CONFIG_USB_UHCI_HCD=y +CONFIG_EXT4_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y diff --git a/board/qemu/mips32r6el-malta/readme.txt b/board/qemu/mips32r6el-malta/readme.txt new file mode 100644 index 000000000..29a5a1e02 --- /dev/null +++ b/board/qemu/mips32r6el-malta/readme.txt @@ -0,0 +1,5 @@ +Run the emulation with: + + qemu-system-mipsel -M malta -cpu mips32r6-generic -kernel output/images/vmlinux -drive file=output/images/rootfs.ext2,format=raw -append "rootwait root=/dev/sda" -net nic,model=pcnet -net user -nographic # qemu_mips32r6el_malta_defconfig + +The login prompt will appear in the terminal that started Qemu. diff --git a/board/qemu/mips64-malta/linux.config b/board/qemu/mips64-malta/linux.config new file mode 100644 index 000000000..66932fb3d --- /dev/null +++ b/board/qemu/mips64-malta/linux.config @@ -0,0 +1,32 @@ +CONFIG_MIPS_MALTA=y +CONFIG_CPU_MIPS64_R1=y +CONFIG_64BIT=y +CONFIG_MIPS_MT_SMP=y +CONFIG_NR_CPUS=2 +CONFIG_SYSVIPC=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_PCI=y +CONFIG_MIPS32_COMPAT=y +CONFIG_MIPS32_O32=y +CONFIG_MIPS32_N32=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_BLK_DEV_SD=y +CONFIG_ATA=y +CONFIG_ATA_PIIX=y +CONFIG_NETDEVICES=y +CONFIG_PCNET32=y +CONFIG_INPUT_EVDEV=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_FB=y +CONFIG_FB_CIRRUS=y +CONFIG_USB=y +CONFIG_USB_UHCI_HCD=y +CONFIG_EXT4_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y diff --git a/board/qemu/mips64-malta/readme.txt b/board/qemu/mips64-malta/readme.txt new file mode 100644 index 000000000..d148a1394 --- /dev/null +++ b/board/qemu/mips64-malta/readme.txt @@ -0,0 +1,6 @@ +Run the emulation with: + + qemu-system-mips64 -M malta -kernel output/images/vmlinux -serial stdio -drive file=output/images/rootfs.ext2,format=raw -append "rootwait root=/dev/sda" # qemu_mips64_malta_defconfig + +The login prompt will appear in the terminal that started Qemu. The +graphical window is the framebuffer. diff --git a/board/qemu/mips64el-malta/linux.config b/board/qemu/mips64el-malta/linux.config new file mode 100644 index 000000000..516b05b5c --- /dev/null +++ b/board/qemu/mips64el-malta/linux.config @@ -0,0 +1,33 @@ +CONFIG_MIPS_MALTA=y +CONFIG_CPU_LITTLE_ENDIAN=y +CONFIG_CPU_MIPS64_R1=y +CONFIG_64BIT=y +CONFIG_MIPS_MT_SMP=y +CONFIG_NR_CPUS=2 +CONFIG_SYSVIPC=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_PCI=y +CONFIG_MIPS32_COMPAT=y +CONFIG_MIPS32_O32=y +CONFIG_MIPS32_N32=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_BLK_DEV_SD=y +CONFIG_ATA=y +CONFIG_ATA_PIIX=y +CONFIG_NETDEVICES=y +CONFIG_PCNET32=y +CONFIG_INPUT_EVDEV=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_FB=y +CONFIG_FB_CIRRUS=y +CONFIG_USB=y +CONFIG_USB_UHCI_HCD=y +CONFIG_EXT4_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y diff --git a/board/qemu/mips64el-malta/readme.txt b/board/qemu/mips64el-malta/readme.txt new file mode 100644 index 000000000..4545fcd9d --- /dev/null +++ b/board/qemu/mips64el-malta/readme.txt @@ -0,0 +1,6 @@ +Run the emulation with: + + qemu-system-mips64el -M malta -kernel output/images/vmlinux -serial stdio -drive file=output/images/rootfs.ext2,format=raw -append "rootwait root=/dev/sda" # qemu_mips64el_malta_defconfig + +The login prompt will appear in the terminal that started Qemu. The +graphical window is the framebuffer. diff --git a/board/qemu/mips64r6-malta/linux.config b/board/qemu/mips64r6-malta/linux.config new file mode 100644 index 000000000..020e02f1d --- /dev/null +++ b/board/qemu/mips64r6-malta/linux.config @@ -0,0 +1,32 @@ +CONFIG_MIPS_MALTA=y +CONFIG_CPU_MIPS64_R6=y +CONFIG_64BIT=y +CONFIG_MIPS_MT_SMP=y +CONFIG_NR_CPUS=2 +CONFIG_SYSVIPC=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_PCI=y +CONFIG_MIPS32_COMPAT=y +CONFIG_MIPS32_O32=y +CONFIG_MIPS32_N32=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_BLK_DEV_SD=y +CONFIG_ATA=y +CONFIG_ATA_PIIX=y +CONFIG_NETDEVICES=y +CONFIG_PCNET32=y +CONFIG_INPUT_EVDEV=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_FB=y +CONFIG_FB_CIRRUS=y +CONFIG_USB=y +CONFIG_USB_UHCI_HCD=y +CONFIG_EXT4_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y diff --git a/board/qemu/mips64r6-malta/readme.txt b/board/qemu/mips64r6-malta/readme.txt new file mode 100644 index 000000000..6712d668c --- /dev/null +++ b/board/qemu/mips64r6-malta/readme.txt @@ -0,0 +1,5 @@ +Run the emulation with: + + qemu-system-mips64 -M malta -cpu I6400 -kernel output/images/vmlinux -drive file=output/images/rootfs.ext2,format=raw -append "rootwait root=/dev/sda" -nographic # qemu_mips64r6_malta_defconfig + +The login prompt will appear in the terminal that started Qemu. diff --git a/board/qemu/mips64r6el-malta/linux.config b/board/qemu/mips64r6el-malta/linux.config new file mode 100644 index 000000000..020e02f1d --- /dev/null +++ b/board/qemu/mips64r6el-malta/linux.config @@ -0,0 +1,32 @@ +CONFIG_MIPS_MALTA=y +CONFIG_CPU_MIPS64_R6=y +CONFIG_64BIT=y +CONFIG_MIPS_MT_SMP=y +CONFIG_NR_CPUS=2 +CONFIG_SYSVIPC=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_PCI=y +CONFIG_MIPS32_COMPAT=y +CONFIG_MIPS32_O32=y +CONFIG_MIPS32_N32=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_BLK_DEV_SD=y +CONFIG_ATA=y +CONFIG_ATA_PIIX=y +CONFIG_NETDEVICES=y +CONFIG_PCNET32=y +CONFIG_INPUT_EVDEV=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_FB=y +CONFIG_FB_CIRRUS=y +CONFIG_USB=y +CONFIG_USB_UHCI_HCD=y +CONFIG_EXT4_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y diff --git a/board/qemu/mips64r6el-malta/readme.txt b/board/qemu/mips64r6el-malta/readme.txt new file mode 100644 index 000000000..150ce7522 --- /dev/null +++ b/board/qemu/mips64r6el-malta/readme.txt @@ -0,0 +1,5 @@ +Run the emulation with: + + qemu-system-mips64el -M malta -cpu I6400 -kernel output/images/vmlinux -drive file=output/images/rootfs.ext2,format=raw -append "rootwait root=/dev/sda" -nographic # qemu_mips64r6el_malta_defconfig + +The login prompt will appear in the terminal that started Qemu. diff --git a/board/qemu/nios2-10m50/linux.fragment b/board/qemu/nios2-10m50/linux.fragment new file mode 100644 index 000000000..c7647cee8 --- /dev/null +++ b/board/qemu/nios2-10m50/linux.fragment @@ -0,0 +1,3 @@ +# Embed the DTB in the kernel image +CONFIG_NIOS2_DTB_SOURCE_BOOL=y +CONFIG_NIOS2_DTB_SOURCE="10m50_devboard.dts" diff --git a/board/qemu/nios2-10m50/readme.txt b/board/qemu/nios2-10m50/readme.txt new file mode 100644 index 000000000..f8f8f3b3a --- /dev/null +++ b/board/qemu/nios2-10m50/readme.txt @@ -0,0 +1,5 @@ +Run the emulation with: + + qemu-system-nios2 -kernel output/images/vmlinux -nographic # qemu_nios2_10m50_defconfig + +The login prompt will appear in the terminal that started Qemu. diff --git a/board/qemu/or1k/linux.config b/board/qemu/or1k/linux.config new file mode 100644 index 000000000..0a817b1e7 --- /dev/null +++ b/board/qemu/or1k/linux.config @@ -0,0 +1,30 @@ +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="${BR_BINARIES_DIR}/rootfs.cpio" +CONFIG_OPENRISC_BUILTIN_DTB="or1ksim" +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_IPV6 is not set +# CONFIG_WIRELESS is not set +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_TMPFS=y +CONFIG_NETDEVICES=y +CONFIG_ETHOC=y +# CONFIG_WLAN is not set +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_SERIO is not set +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_OF_PLATFORM=y +# CONFIG_HWMON is not set +# CONFIG_VGA_CONSOLE is not set +# CONFIG_USB_SUPPORT is not set diff --git a/board/qemu/or1k/readme.txt b/board/qemu/or1k/readme.txt new file mode 100644 index 000000000..2ea797440 --- /dev/null +++ b/board/qemu/or1k/readme.txt @@ -0,0 +1,7 @@ +Run the emulation with: + + qemu-system-or1k -kernel output/images/vmlinux -nographic # qemu_or1k_defconfig + +The login prompt will appear in the terminal that started Qemu. + +Ethernet support is not working, yet. diff --git a/board/qemu/post-image.sh b/board/qemu/post-image.sh new file mode 100755 index 000000000..88f041349 --- /dev/null +++ b/board/qemu/post-image.sh @@ -0,0 +1,61 @@ +#!/bin/bash + +QEMU_BOARD_DIR="$(dirname $0)" +DEFCONFIG_NAME="$(basename $2)" +README_FILES="${QEMU_BOARD_DIR}/*/readme.txt" +START_QEMU_SCRIPT="${BINARIES_DIR}/start-qemu.sh" + +if [[ "${DEFCONFIG_NAME}" =~ ^"qemu_*" ]]; then + # Not a Qemu defconfig, can't test. + exit 0 +fi + +# Search for "# qemu_*_defconfig" tag in all readme.txt files. +# Qemu command line on multilines using back slash are accepted. +QEMU_CMD_LINE=$(sed -r ':a; /\\$/N; s/\\\n//; s/\t/ /; ta; /# '${DEFCONFIG_NAME}'$/!d; s/#.*//' ${README_FILES}) + +if [ -z "${QEMU_CMD_LINE}" ]; then + # No Qemu cmd line found, can't test. + exit 0 +fi + +# Remove output/images path since the script will be in +# the same directory as the kernel and the rootfs images. +QEMU_CMD_LINE="${QEMU_CMD_LINE//output\/images\//}" + +# Remove -serial stdio if present, keep it as default args +DEFAULT_ARGS="$(sed -r -e '/-serial stdio/!d; s/.*(-serial stdio).*/\1/' <<<"${QEMU_CMD_LINE}")" +QEMU_CMD_LINE="${QEMU_CMD_LINE//-serial stdio/}" + +# Remove any string before qemu-system-* +QEMU_CMD_LINE="$(sed -r -e 's/^.*(qemu-system-)/\1/' <<<"${QEMU_CMD_LINE}")" + +# Disable graphical output and redirect serial I/Os to console +case ${DEFCONFIG_NAME} in + (qemu_sh4eb_r2d_defconfig|qemu_sh4_r2d_defconfig) + # Special case for SH4 + SERIAL_ARGS="-serial stdio -display none" + ;; + (*) + SERIAL_ARGS="-nographic" + ;; +esac + +cat <<-_EOF_ > "${START_QEMU_SCRIPT}" + #!/bin/sh + ( + BINARIES_DIR="\${0%/*}/" + cd \${BINARIES_DIR} + + if [ "\${1}" = "serial-only" ]; then + EXTRA_ARGS='${SERIAL_ARGS}' + else + EXTRA_ARGS='${DEFAULT_ARGS}' + fi + + export PATH="${HOST_DIR}/bin:\${PATH}" + exec ${QEMU_CMD_LINE} \${EXTRA_ARGS} + ) +_EOF_ + +chmod +x "${START_QEMU_SCRIPT}" diff --git a/board/qemu/ppc-bamboo/linux.fragment b/board/qemu/ppc-bamboo/linux.fragment new file mode 100644 index 000000000..cc272d054 --- /dev/null +++ b/board/qemu/ppc-bamboo/linux.fragment @@ -0,0 +1,6 @@ +# Enable virtio (blk, rng and net devices) +CONFIG_VIRTIO=y +CONFIG_VIRTIO_PCI=y +CONFIG_HW_RANDOM_VIRTIO=y +CONFIG_VIRTIO_BLK=y +CONFIG_VIRTIO_NET=y diff --git a/board/qemu/ppc-bamboo/readme.txt b/board/qemu/ppc-bamboo/readme.txt new file mode 100644 index 000000000..53d197069 --- /dev/null +++ b/board/qemu/ppc-bamboo/readme.txt @@ -0,0 +1,5 @@ +Run the emulation with: + +qemu-system-ppc -nographic -M bamboo -kernel output/images/vmlinux -net nic,model=virtio-net-pci -net user # qemu_ppc_bamboo_defconfig + +The login prompt will appear in the terminal that started Qemu. diff --git a/board/qemu/ppc-e500mc/linux.fragment b/board/qemu/ppc-e500mc/linux.fragment new file mode 100644 index 000000000..35a8dccf8 --- /dev/null +++ b/board/qemu/ppc-e500mc/linux.fragment @@ -0,0 +1,10 @@ +# Enables generic PPC e500 base arch support for QEMU. +# The e500mc is a variant of the e500 arch. +CONFIG_PPC_QEMU_E500=y + +# Enable virtio (blk, rng and net devices) +CONFIG_VIRTIO=y +CONFIG_VIRTIO_PCI=y +CONFIG_HW_RANDOM_VIRTIO=y +CONFIG_VIRTIO_BLK=y +CONFIG_VIRTIO_NET=y diff --git a/board/qemu/ppc-e500mc/readme.txt b/board/qemu/ppc-e500mc/readme.txt new file mode 100644 index 000000000..76bad015d --- /dev/null +++ b/board/qemu/ppc-e500mc/readme.txt @@ -0,0 +1,5 @@ +Run the emulation with: + + qemu-system-ppc -M ppce500 -cpu e500mc -m 256 -kernel output/images/uImage -drive file=output/images/rootfs.ext2,if=virtio,format=raw -net nic,model=virtio-net-pci -net user -append "console=ttyS0 rootwait root=/dev/vda" -serial mon:stdio -nographic # qemu_ppc_e500mc_defconfig + +The login prompt will appear in the terminal that started Qemu. diff --git a/board/qemu/ppc-g3beige/linux.config b/board/qemu/ppc-g3beige/linux.config new file mode 100644 index 000000000..f94488424 --- /dev/null +++ b/board/qemu/ppc-g3beige/linux.config @@ -0,0 +1,28 @@ +CONFIG_ALTIVEC=y +CONFIG_SYSVIPC=y +CONFIG_HIGHMEM=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_PCCARD=y +CONFIG_YENTA=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_BLK_DEV_SD=y +CONFIG_BLK_DEV_SR=y +CONFIG_ATA=y +CONFIG_PATA_MACIO=y +CONFIG_ADB=y +CONFIG_ADB_CUDA=y +CONFIG_ADB_PMU=y +CONFIG_NETDEVICES=y +CONFIG_PCNET32=y +CONFIG_8139CP=y +CONFIG_SERIAL_PMACZILOG=y +CONFIG_SERIAL_PMACZILOG_TTYS=y +CONFIG_SERIAL_PMACZILOG_CONSOLE=y +CONFIG_EXT4_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_BOOTX_TEXT=y diff --git a/board/qemu/ppc-g3beige/readme.txt b/board/qemu/ppc-g3beige/readme.txt new file mode 100644 index 000000000..e39579ade --- /dev/null +++ b/board/qemu/ppc-g3beige/readme.txt @@ -0,0 +1,6 @@ +Run the emulation with: + + qemu-system-ppc -M g3beige -kernel output/images/vmlinux -drive file=output/images/rootfs.ext2,format=raw -append "console=ttyS0 rootwait root=/dev/sda" -serial stdio -net nic,model=rtl8139 -net user # qemu_ppc_g3beige_defconfig + +The login prompt will appear in the terminal that started Qemu. The +graphical window is the framebuffer. diff --git a/board/qemu/ppc-mac99/linux.fragment b/board/qemu/ppc-mac99/linux.fragment new file mode 100644 index 000000000..b1975f825 --- /dev/null +++ b/board/qemu/ppc-mac99/linux.fragment @@ -0,0 +1,3 @@ +CONFIG_SERIAL_PMACZILOG=y +CONFIG_SERIAL_PMACZILOG_TTYS=y +CONFIG_SERIAL_PMACZILOG_CONSOLE=y diff --git a/board/qemu/ppc-mac99/readme.txt b/board/qemu/ppc-mac99/readme.txt new file mode 100644 index 000000000..fb94a7837 --- /dev/null +++ b/board/qemu/ppc-mac99/readme.txt @@ -0,0 +1,3 @@ +Run the emulation with: + + qemu-system-ppc -nographic -vga none -M mac99 -cpu g4 -m 1G -kernel output/images/vmlinux -drive file=output/images/rootfs.ext2,format=raw -net nic,model=sungem -net user -append "root=/dev/sda" # qemu_ppc_mac99_defconfig diff --git a/board/qemu/ppc-mpc8544ds/linux.config b/board/qemu/ppc-mpc8544ds/linux.config new file mode 100644 index 000000000..b36847c93 --- /dev/null +++ b/board/qemu/ppc-mpc8544ds/linux.config @@ -0,0 +1,38 @@ +CONFIG_PPC_85xx=y +CONFIG_PHYS_64BIT=y +CONFIG_SYSVIPC=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="${BR_BINARIES_DIR}/rootfs.cpio" +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MPC8540_ADS=y +CONFIG_MPC85xx_DS=y +CONFIG_HIGHMEM=y +CONFIG_MATH_EMULATION=y +CONFIG_PCI=y +CONFIG_PCIEPORTBUS=y +CONFIG_PCI_MSI=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_NETDEVICES=y +CONFIG_E1000=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_NR_UARTS=6 +CONFIG_SERIAL_8250_RUNTIME_UARTS=6 +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_DETECT_IRQ=y +CONFIG_SERIAL_8250_RSA=y +CONFIG_USB=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_FSL=y +CONFIG_USB_OHCI_HCD=y +CONFIG_TMPFS=y diff --git a/board/qemu/ppc-mpc8544ds/patches/linux/0001-powerpc-Fix-mcpu-options-for-SPE-only-compiler.patch b/board/qemu/ppc-mpc8544ds/patches/linux/0001-powerpc-Fix-mcpu-options-for-SPE-only-compiler.patch new file mode 100644 index 000000000..b8c8a7258 --- /dev/null +++ b/board/qemu/ppc-mpc8544ds/patches/linux/0001-powerpc-Fix-mcpu-options-for-SPE-only-compiler.patch @@ -0,0 +1,53 @@ +From a0919e3177295f4aaa9006915adcddc31788d809 Mon Sep 17 00:00:00 2001 +From: Ben Hutchings +Date: Wed, 26 Dec 2018 00:00:40 +0000 +Subject: [PATCH] powerpc: Fix -mcpu= options for SPE-only compiler + +GCC for Debian's "powerpcspe" architecture only supports 32-bit +SPE targets, and using -mcpu=powerpc or -mcpu=powerpc64 is a fatal +error. + +* Change the test for a biarch compiler to pass both the -m32 and -m64 + options, so that it doesn't catch 32-bit-only compilers +* Add an ifdef CONFIG_PPC64 around the 64-bit CPU option definitions + +Signed-off-by: Ben Hutchings +[Romain: Patch from Debian repository: +https://salsa.debian.org/kernel-team/linux/-/blob/buster/debian/patches/bugfix/powerpc/powerpc-fix-mcpu-options-for-spe-only-compiler.patch] +Signed-off-by: Romain Naour +--- + arch/powerpc/Makefile | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile +index 5c8c06215dd4..e3dbea6d7ae0 100644 +--- a/arch/powerpc/Makefile ++++ b/arch/powerpc/Makefile +@@ -12,7 +12,7 @@ + # Rewritten by Cort Dougan and Paul Mackerras + # + +-HAS_BIARCH := $(call cc-option-yn, -m32) ++HAS_BIARCH := $(call cc-option-yn, -m32 -m64) + + # Set default 32 bits cross compilers for vdso and boot wrapper + CROSS32_COMPILE ?= +@@ -164,6 +164,7 @@ CFLAGS-$(CONFIG_PPC32) += $(call cc-option, $(MULTIPLEWORD)) + + CFLAGS-$(CONFIG_PPC32) += $(call cc-option,-mno-readonly-in-sdata) + ++ifdef CONFIG_PPC64 + ifdef CONFIG_PPC_BOOK3S_64 + ifdef CONFIG_CPU_LITTLE_ENDIAN + CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=power8 +@@ -175,6 +176,7 @@ endif + else + CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=powerpc64 + endif ++endif + + ifdef CONFIG_FUNCTION_TRACER + CC_FLAGS_FTRACE := -pg +-- +2.17.1 + diff --git a/board/qemu/ppc-mpc8544ds/readme.txt b/board/qemu/ppc-mpc8544ds/readme.txt new file mode 100644 index 000000000..d34d64c33 --- /dev/null +++ b/board/qemu/ppc-mpc8544ds/readme.txt @@ -0,0 +1,5 @@ +Run the emulation with: + + qemu-system-ppc -M mpc8544ds -kernel output/images/vmlinux -serial stdio -net nic,model=e1000 -net user # qemu_ppc_mpc8544ds_defconfig + +The login prompt will appear in the terminal that started Qemu. diff --git a/board/qemu/ppc64-e5500/linux.fragment b/board/qemu/ppc64-e5500/linux.fragment new file mode 100644 index 000000000..071a55ccf --- /dev/null +++ b/board/qemu/ppc64-e5500/linux.fragment @@ -0,0 +1,10 @@ +# Enables generic PPC e500 base arch support for QEMU. +# The e5500 is a variant of the e500 arch. +CONFIG_PPC_QEMU_E500=y + +# Enable virtio (blk, rng and net devices) +CONFIG_VIRTIO=y +CONFIG_VIRTIO_PCI=y +CONFIG_HW_RANDOM_VIRTIO=y +CONFIG_VIRTIO_BLK=y +CONFIG_VIRTIO_NET=y diff --git a/board/qemu/ppc64-e5500/readme.txt b/board/qemu/ppc64-e5500/readme.txt new file mode 100644 index 000000000..7c8c80af4 --- /dev/null +++ b/board/qemu/ppc64-e5500/readme.txt @@ -0,0 +1,5 @@ +Run the emulation with: + + qemu-system-ppc64 -M ppce500 -cpu e5500 -m 256 -kernel output/images/uImage -drive file=output/images/rootfs.ext2,if=virtio,format=raw -net nic,model=virtio-net-pci -net user -append "console=ttyS0 rootwait root=/dev/vda" -serial mon:stdio -nographic # qemu_ppc64_e5500_defconfig + +The login prompt will appear in the terminal that started Qemu. diff --git a/board/qemu/ppc64-pseries/readme.txt b/board/qemu/ppc64-pseries/readme.txt new file mode 100644 index 000000000..cbd3c6ca2 --- /dev/null +++ b/board/qemu/ppc64-pseries/readme.txt @@ -0,0 +1,5 @@ +Run the emulation with: + + qemu-system-ppc64 -M pseries -cpu POWER7 -m 256 -kernel output/images/vmlinux -append "console=hvc0 rootwait root=/dev/sda" -drive file=output/images/rootfs.ext2,if=scsi,index=0,format=raw -serial stdio -display curses # qemu_ppc64_pseries_defconfig + +The login prompt will appear in the terminal that started Qemu. diff --git a/board/qemu/ppc64le-powernv8/readme.txt b/board/qemu/ppc64le-powernv8/readme.txt new file mode 100644 index 000000000..059f55fbc --- /dev/null +++ b/board/qemu/ppc64le-powernv8/readme.txt @@ -0,0 +1,5 @@ +Run the emulation with: + +qemu-system-ppc64 -M powernv9 -kernel vmlinux -append "console=hvc0 rootwait root=/dev/nvme0n1" -device nvme,bus=pcie.3,addr=0x0,drive=drive0,serial=1234 -drive file=./rootfs.ext2,if=none,id=drive0,format=raw,cache=none -device e1000e,netdev=net0,mac=C0:FF:EE:00:01:03,bus=pcie.1,addr=0x0 -netdev user,id=net0 -serial mon:stdio -nographic # qemu_ppc64le_powernv8_defconfig + +The login prompt will appear in the terminal window. diff --git a/board/qemu/ppc64le-pseries/readme.txt b/board/qemu/ppc64le-pseries/readme.txt new file mode 100644 index 000000000..3d5577aa3 --- /dev/null +++ b/board/qemu/ppc64le-pseries/readme.txt @@ -0,0 +1,5 @@ +Run the emulation with: + +qemu-system-ppc64 -M pseries,x-vof=on -cpu POWER8 -m 256 -kernel output/images/vmlinux -append "console=hvc0 rootwait root=/dev/sda" -drive file=output/images/rootfs.ext2,if=scsi,index=0,format=raw -serial stdio -display curses # qemu_ppc64le_pseries_defconfig + +The login prompt will appear in the terminal window. diff --git a/board/qemu/riscv32-virt/readme.txt b/board/qemu/riscv32-virt/readme.txt new file mode 100644 index 000000000..32b433351 --- /dev/null +++ b/board/qemu/riscv32-virt/readme.txt @@ -0,0 +1,5 @@ +Run Linux in emulation with: + + qemu-system-riscv32 -M virt -bios output/images/fw_jump.elf -kernel output/images/Image -append "rootwait root=/dev/vda ro" -drive file=output/images/rootfs.ext2,format=raw,id=hd0 -device virtio-blk-device,drive=hd0 -netdev user,id=net0 -device virtio-net-device,netdev=net0 -nographic # qemu_riscv32_virt_defconfig + +The login prompt will appear in the terminal that started Qemu. diff --git a/board/qemu/riscv64-virt/readme.txt b/board/qemu/riscv64-virt/readme.txt new file mode 100644 index 000000000..9e4cfc8c5 --- /dev/null +++ b/board/qemu/riscv64-virt/readme.txt @@ -0,0 +1,7 @@ +Run Linux in emulation with: + + qemu-system-riscv64 -M virt -bios output/images/fw_jump.elf -kernel output/images/Image -append "rootwait root=/dev/vda ro" -drive file=output/images/rootfs.ext2,format=raw,id=hd0 -device virtio-blk-device,drive=hd0 -netdev user,id=net0 -device virtio-net-device,netdev=net0 -nographic # qemu_riscv64_virt_defconfig + + qemu-system-riscv64 -M virt -bios none -kernel output/images/Image -append "rootwait root=/dev/vda ro" -drive file=output/images/rootfs.ext2,format=raw,id=hd0 -device virtio-blk-device,drive=hd0 -nographic -cpu rv64,mmu=off # qemu_riscv64_nommu_virt_defconfig + +The login prompt will appear in the terminal that started Qemu. diff --git a/board/qemu/s390x/readme.txt b/board/qemu/s390x/readme.txt new file mode 100644 index 000000000..63e899c76 --- /dev/null +++ b/board/qemu/s390x/readme.txt @@ -0,0 +1,8 @@ +Run the emulation with: + + qemu-system-s390x -M s390-ccw-virtio -cpu max,zpci=on -m 4G -smp 2 \ + -kernel output/images/bzImage -drive file=output/images/rootfs.ext2,if=virtio,format=raw \ + -append "rootwait root=/dev/vda net.ifnames=0 biosdevname=0" -display none -serial mon:stdio \ + -net nic,model=virtio -net user # qemu_s390x_defconfig + +The login prompt will appear in the terminal that started Qemu. diff --git a/board/qemu/sh4-r2d/linux.config b/board/qemu/sh4-r2d/linux.config new file mode 100644 index 000000000..a3d654454 --- /dev/null +++ b/board/qemu/sh4-r2d/linux.config @@ -0,0 +1,38 @@ +CONFIG_SYSVIPC=y +CONFIG_MODULES=y +CONFIG_CPU_SUBTYPE_SH7751R=y +CONFIG_MEMORY_START=0x0c000000 +CONFIG_FLATMEM_MANUAL=y +CONFIG_SH_RTS7751R2D=y +CONFIG_RTS7751R2D_PLUS=y +CONFIG_HEARTBEAT=y +CONFIG_PCI=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_BLK_DEV_SD=y +CONFIG_ATA=y +CONFIG_PATA_PLATFORM=y +CONFIG_NETDEVICES=y +CONFIG_8139CP=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_SH_SCI=y +CONFIG_SERIAL_SH_SCI_CONSOLE=y +CONFIG_SPI=y +CONFIG_SPI_SH_SCI=y +CONFIG_MFD_SM501=y +CONFIG_FB=y +CONFIG_FB_SH_MOBILE_LCDC=y +CONFIG_FB_SH_MOBILE_HDMI=y +CONFIG_FB_SM501=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_LOGO=y +CONFIG_SOUND=y +CONFIG_SND_YMFPCI=y +CONFIG_SOUND_PRIME=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_R9701=y +CONFIG_EXT4_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y diff --git a/board/qemu/sh4-r2d/readme.txt b/board/qemu/sh4-r2d/readme.txt new file mode 100644 index 000000000..b0799e47a --- /dev/null +++ b/board/qemu/sh4-r2d/readme.txt @@ -0,0 +1,6 @@ +Run the emulation with: + + qemu-system-sh4 -M r2d -kernel output/images/zImage -drive file=output/images/rootfs.ext2,if=ide,format=raw -append "rootwait root=/dev/sda console=ttySC1,115200 noiotrap" -serial null -serial stdio -net nic,model=rtl8139 -net user # qemu_sh4_r2d_defconfig + +The login prompt will appear in the terminal that started Qemu. +The graphical window is the framebuffer. diff --git a/board/qemu/sh4eb-r2d/linux.config b/board/qemu/sh4eb-r2d/linux.config new file mode 100644 index 000000000..6ead626c4 --- /dev/null +++ b/board/qemu/sh4eb-r2d/linux.config @@ -0,0 +1,38 @@ +CONFIG_SYSVIPC=y +CONFIG_MODULES=y +CONFIG_CPU_SUBTYPE_SH7751R=y +CONFIG_MEMORY_START=0x0c000000 +CONFIG_FLATMEM_MANUAL=y +CONFIG_CPU_BIG_ENDIAN=y +CONFIG_SH_RTS7751R2D=y +CONFIG_RTS7751R2D_PLUS=y +CONFIG_HEARTBEAT=y +CONFIG_PCI=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_BLK_DEV_SD=y +CONFIG_ATA=y +CONFIG_PATA_PLATFORM=y +CONFIG_NETDEVICES=y +CONFIG_8139CP=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_SH_SCI=y +CONFIG_SERIAL_SH_SCI_CONSOLE=y +CONFIG_SPI=y +CONFIG_SPI_SH_SCI=y +CONFIG_MFD_SM501=y +CONFIG_FB=y +CONFIG_FB_SH_MOBILE_LCDC=y +CONFIG_FB_SH_MOBILE_HDMI=y +CONFIG_FB_SM501=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_LOGO=y +CONFIG_SND_YMFPCI=y +CONFIG_SOUND_PRIME=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_R9701=y +CONFIG_EXT4_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y diff --git a/board/qemu/sh4eb-r2d/readme.txt b/board/qemu/sh4eb-r2d/readme.txt new file mode 100644 index 000000000..9f3dd8b20 --- /dev/null +++ b/board/qemu/sh4eb-r2d/readme.txt @@ -0,0 +1,6 @@ +Run the emulation with: + + qemu-system-sh4eb -M r2d -kernel output/images/zImage -drive file=output/images/rootfs.ext2,if=ide,format=raw -append "rootwait root=/dev/sda console=ttySC1,115200 noiotrap" -serial null -serial stdio -net nic,model=rtl8139 -net user # qemu_sh4eb_r2d_defconfig + +The login prompt will appear in the terminal that started Qemu. +The graphical window is the framebuffer. diff --git a/board/qemu/sparc-ss10/linux.config b/board/qemu/sparc-ss10/linux.config new file mode 100644 index 000000000..cb8d01dc0 --- /dev/null +++ b/board/qemu/sparc-ss10/linux.config @@ -0,0 +1,31 @@ +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_PCI=y +CONFIG_SUN_OPENPROMFS=m +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +# CONFIG_WIRELESS is not set +CONFIG_SCSI=y +CONFIG_BLK_DEV_SD=y +CONFIG_BLK_DEV_SR=y +CONFIG_CHR_DEV_SG=y +CONFIG_SCSI_SUNESP=y +CONFIG_NETDEVICES=y +CONFIG_SUNLANCE=y +# CONFIG_WLAN is not set +CONFIG_INPUT_EVDEV=y +CONFIG_KEYBOARD_SUNKBD=y +CONFIG_MOUSE_SERIAL=y +CONFIG_SERIAL_SUNZILOG=y +CONFIG_SERIAL_SUNZILOG_CONSOLE=y +CONFIG_SERIAL_SUNSU=y +CONFIG_SERIAL_SUNSU_CONSOLE=y +CONFIG_SUN_OPENPROMIO=m +CONFIG_EXT4_FS=y +CONFIG_ISO9660_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y diff --git a/board/qemu/sparc-ss10/readme.txt b/board/qemu/sparc-ss10/readme.txt new file mode 100644 index 000000000..d624b82d9 --- /dev/null +++ b/board/qemu/sparc-ss10/readme.txt @@ -0,0 +1,5 @@ +Run the emulation with: + + qemu-system-sparc -M SS-10 -kernel output/images/zImage -drive file=output/images/rootfs.ext2,format=raw -append "rootwait root=/dev/sda console=ttyS0,115200" -serial stdio -net nic,model=lance -net user # qemu_sparc_ss10_defconfig + +The login prompt will appear in the terminal that started Qemu. diff --git a/board/qemu/sparc64-sun4u/linux.config b/board/qemu/sparc64-sun4u/linux.config new file mode 100644 index 000000000..0e1e16879 --- /dev/null +++ b/board/qemu/sparc64-sun4u/linux.config @@ -0,0 +1,25 @@ +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +CONFIG_NO_HZ_IDLE=y +CONFIG_EMBEDDED=y +CONFIG_MODULES=y +CONFIG_PCI=y +CONFIG_SUN_OPENPROMFS=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_BLK_DEV_SD=y +CONFIG_ATA=y +CONFIG_PATA_CMD64X=y +CONFIG_NETDEVICES=y +CONFIG_E1000=y +CONFIG_SERIAL_SUNSU=y +CONFIG_SERIAL_SUNSU_CONSOLE=y +CONFIG_EXT4_FS=y +CONFIG_TMPFS=y +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="utf-8" +CONFIG_MAGIC_SYSRQ=y diff --git a/board/qemu/sparc64-sun4u/readme.txt b/board/qemu/sparc64-sun4u/readme.txt new file mode 100644 index 000000000..17d8cbdf9 --- /dev/null +++ b/board/qemu/sparc64-sun4u/readme.txt @@ -0,0 +1,5 @@ +Run the emulation with: + + qemu-system-sparc64 -M sun4u -kernel output/images/vmlinux -append "rootwait root=/dev/sda console=ttyS0,115200" -serial stdio -drive file=output/images/rootfs.ext2,format=raw -net nic,model=e1000 -net user # qemu_sparc64_sun4u_defconfig + +The login prompt will appear in the terminal that started Qemu. diff --git a/board/qemu/x86/linux.config b/board/qemu/x86/linux.config new file mode 100644 index 000000000..a4da99ff4 --- /dev/null +++ b/board/qemu/x86/linux.config @@ -0,0 +1,52 @@ +CONFIG_SYSVIPC=y +CONFIG_CGROUPS=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_SMP=y +CONFIG_HYPERVISOR_GUEST=y +CONFIG_PARAVIRT=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +# CONFIG_WIRELESS is not set +CONFIG_PCI=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_VIRTIO_BLK=y +CONFIG_BLK_DEV_SD=y +CONFIG_SCSI_VIRTIO=y +CONFIG_ATA=y +CONFIG_ATA_PIIX=y +CONFIG_NETDEVICES=y +CONFIG_VIRTIO_NET=y +CONFIG_NE2K_PCI=y +CONFIG_8139CP=y +# CONFIG_WLAN is not set +CONFIG_INPUT_EVDEV=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_VIRTIO_CONSOLE=y +CONFIG_HW_RANDOM_VIRTIO=m +CONFIG_DRM=y +CONFIG_DRM_QXL=y +CONFIG_DRM_BOCHS=y +CONFIG_DRM_VIRTIO_GPU=y +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_HDA_INTEL=y +CONFIG_SND_HDA_GENERIC=y +CONFIG_USB=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_UHCI_HCD=y +CONFIG_USB_STORAGE=y +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_BALLOON=y +CONFIG_VIRTIO_INPUT=y +CONFIG_VIRTIO_MMIO=y +CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y +CONFIG_EXT4_FS=y +CONFIG_AUTOFS4_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y diff --git a/board/qemu/x86/post-build.sh b/board/qemu/x86/post-build.sh new file mode 100755 index 000000000..bf83a002c --- /dev/null +++ b/board/qemu/x86/post-build.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +set -u +set -e + +# Add a console on tty1 +if [ -e ${TARGET_DIR}/etc/inittab ]; then + grep -qE '^tty1::' ${TARGET_DIR}/etc/inittab || \ + sed -i '/GENERIC_SERIAL/a\ +tty1::respawn:/sbin/getty -L tty1 0 vt100 # QEMU graphical window' ${TARGET_DIR}/etc/inittab +fi diff --git a/board/qemu/x86/readme.txt b/board/qemu/x86/readme.txt new file mode 100644 index 000000000..a1f232e2e --- /dev/null +++ b/board/qemu/x86/readme.txt @@ -0,0 +1,7 @@ +Run the emulation with: + + qemu-system-i386 -M pc -kernel output/images/bzImage -drive file=output/images/rootfs.ext2,if=virtio,format=raw -append "rootwait root=/dev/vda console=tty1 console=ttyS0" -serial stdio -net nic,model=virtio -net user # qemu_x86_defconfig + +Optionally add -smp N to emulate a SMP system with N CPUs. + +The login prompt will appear in the graphical window. diff --git a/board/qemu/x86_64/linux.config b/board/qemu/x86_64/linux.config new file mode 100644 index 000000000..e1d2ce01b --- /dev/null +++ b/board/qemu/x86_64/linux.config @@ -0,0 +1,53 @@ +CONFIG_SYSVIPC=y +CONFIG_CGROUPS=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_SMP=y +CONFIG_HYPERVISOR_GUEST=y +CONFIG_PARAVIRT=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +# CONFIG_WIRELESS is not set +CONFIG_PCI=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_VIRTIO_BLK=y +CONFIG_BLK_DEV_SD=y +CONFIG_SCSI_VIRTIO=y +CONFIG_ATA=y +CONFIG_ATA_PIIX=y +CONFIG_NETDEVICES=y +CONFIG_VIRTIO_NET=y +CONFIG_NE2K_PCI=y +CONFIG_8139CP=y +# CONFIG_WLAN is not set +CONFIG_INPUT_EVDEV=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_VIRTIO_CONSOLE=y +CONFIG_HW_RANDOM_VIRTIO=m +CONFIG_DRM=y +CONFIG_DRM_QXL=y +CONFIG_DRM_BOCHS=y +CONFIG_DRM_VIRTIO_GPU=y +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_HDA_INTEL=y +CONFIG_SND_HDA_GENERIC=y +CONFIG_USB=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_UHCI_HCD=y +CONFIG_USB_STORAGE=y +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_BALLOON=y +CONFIG_VIRTIO_INPUT=y +CONFIG_VIRTIO_MMIO=y +CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y +CONFIG_EXT4_FS=y +CONFIG_AUTOFS4_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_UNWINDER_FRAME_POINTER=y diff --git a/board/qemu/x86_64/post-build.sh b/board/qemu/x86_64/post-build.sh new file mode 100755 index 000000000..bf83a002c --- /dev/null +++ b/board/qemu/x86_64/post-build.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +set -u +set -e + +# Add a console on tty1 +if [ -e ${TARGET_DIR}/etc/inittab ]; then + grep -qE '^tty1::' ${TARGET_DIR}/etc/inittab || \ + sed -i '/GENERIC_SERIAL/a\ +tty1::respawn:/sbin/getty -L tty1 0 vt100 # QEMU graphical window' ${TARGET_DIR}/etc/inittab +fi diff --git a/board/qemu/x86_64/readme.txt b/board/qemu/x86_64/readme.txt new file mode 100644 index 000000000..2b2ae3be2 --- /dev/null +++ b/board/qemu/x86_64/readme.txt @@ -0,0 +1,7 @@ +Run the emulation with: + + qemu-system-x86_64 -M pc -kernel output/images/bzImage -drive file=output/images/rootfs.ext2,if=virtio,format=raw -append "rootwait root=/dev/vda console=tty1 console=ttyS0" -serial stdio -net nic,model=virtio -net user # qemu_x86_64_defconfig + +Optionally add -smp N to emulate a SMP system with N CPUs. + +The login prompt will appear in the graphical window. diff --git a/board/qemu/xtensa-lx60/linux-nommu.config b/board/qemu/xtensa-lx60/linux-nommu.config new file mode 100644 index 000000000..8077645ee --- /dev/null +++ b/board/qemu/xtensa-lx60/linux-nommu.config @@ -0,0 +1,39 @@ +CONFIG_NO_HZ_IDLE=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_XTENSA_VARIANT_CUSTOM=y +CONFIG_XTENSA_VARIANT_CUSTOM_NAME="dc233c" +# CONFIG_XTENSA_VARIANT_MMU is not set +CONFIG_XTENSA_UNALIGNED_USER=y +CONFIG_PREEMPT=y +CONFIG_MEMMAP_CACHEATTR=0x2cccccc7 +CONFIG_KERNEL_LOAD_ADDRESS=0x00003000 +# CONFIG_PCI is not set +CONFIG_XTENSA_PLATFORM_XTFPGA=y +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE="earlycon=uart8250,mmio32,0xfd050020,115200n8 console=ttyS0,115200n8 memmap=0x04000000@0" +CONFIG_DEFAULT_MEM_START=0x00000000 +CONFIG_BINFMT_FLAT=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +# CONFIG_IPV6 is not set +CONFIG_NETFILTER=y +CONFIG_DNS_RESOLVER=y +# CONFIG_WIRELESS is not set +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_NETDEVICES=y +CONFIG_MARVELL_PHY=y +# CONFIG_WLAN is not set +CONFIG_SERIAL_8250=y +# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set +CONFIG_SERIAL_8250_CONSOLE=y +# CONFIG_HWMON is not set +# CONFIG_VGA_CONSOLE is not set +CONFIG_TMPFS=y +CONFIG_FANOTIFY=y +CONFIG_PRINTK_TIME=y +# CONFIG_S32C1I_SELFTEST is not set diff --git a/board/qemu/xtensa-lx60/linux.config b/board/qemu/xtensa-lx60/linux.config new file mode 100644 index 000000000..625b86049 --- /dev/null +++ b/board/qemu/xtensa-lx60/linux.config @@ -0,0 +1,36 @@ +# CONFIG_SWAP is not set +# CONFIG_CROSS_MEMORY_ATTACH is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_XTENSA_VARIANT_DC233C=y +CONFIG_INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX=y +CONFIG_XTENSA_PLATFORM_XTFPGA=y +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE="console=ttyS0,38400 memmap=0x04000000@0" +# CONFIG_COMPACTION is not set +# CONFIG_BOUNCE is not set +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_LRO is not set +# CONFIG_INET_DIAG is not set +# CONFIG_IPV6 is not set +# CONFIG_WIRELESS is not set +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_NETDEVICES=y +# CONFIG_WLAN is not set +CONFIG_SERIAL_8250=y +# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set +CONFIG_SERIAL_8250_CONSOLE=y +# CONFIG_HW_RANDOM is not set +# CONFIG_HWMON is not set +# CONFIG_VGA_CONSOLE is not set +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_LD_NO_RELAX=y +# CONFIG_S32C1I_SELFTEST is not set diff --git a/board/qemu/xtensa-lx60/readme.txt b/board/qemu/xtensa-lx60/readme.txt new file mode 100644 index 000000000..6f0e2710c --- /dev/null +++ b/board/qemu/xtensa-lx60/readme.txt @@ -0,0 +1,7 @@ +Run the emulation with: + + qemu-system-xtensa -M lx60 -cpu dc233c -monitor null -nographic -kernel output/images/Image.elf # qemu_xtensa_lx60_defconfig + + qemu-system-xtensa -M lx60 -cpu dc233c -monitor null -nographic -kernel output/images/Image.elf # qemu_xtensa_lx60_nommu_defconfig + +The login prompt will appear in the terminal that started Qemu. diff --git a/board/qmtech/zynq/patches/linux/0001-DTS-for-QMTech-Zynq-starter-kit.patch b/board/qmtech/zynq/patches/linux/0001-DTS-for-QMTech-Zynq-starter-kit.patch new file mode 100644 index 000000000..86d8e387d --- /dev/null +++ b/board/qmtech/zynq/patches/linux/0001-DTS-for-QMTech-Zynq-starter-kit.patch @@ -0,0 +1,418 @@ +From 22d955122ac0f7ac74ab74aadebf6b8edaf0bbbd Mon Sep 17 00:00:00 2001 +From: Julien Olivain +Date: Sun, 15 Dec 2019 18:45:40 +0100 +Subject: [PATCH] DTS for QMTech Zynq starter kit + +Signed-off-by: Martin Chabot +Signed-off-by: Julien Olivain +--- + arch/arm/boot/dts/zynq-qmtech.dts | 397 ++++++++++++++++++++++++++++++ + 1 file changed, 397 insertions(+) + create mode 100644 arch/arm/boot/dts/zynq-qmtech.dts + +diff --git a/arch/arm/boot/dts/zynq-qmtech.dts b/arch/arm/boot/dts/zynq-qmtech.dts +new file mode 100644 +index 000000000000..c6081dc0080e +--- /dev/null ++++ b/arch/arm/boot/dts/zynq-qmtech.dts +@@ -0,0 +1,397 @@ ++// SPDX-License-Identifier: GPL-2.0+ ++/* ++ * Copyright (C) 2011 - 2015 Xilinx ++ * Copyright (C) 2012 National Instruments Corp. ++ * Copyright (C) 2019 Martin Chabot ++ */ ++ ++/* Derived from: ++ * https://github.com/Xilinx/linux-xlnx/blob/xilinx-v2019.2.01/arch/arm/boot/dts/zynq-zc702.dts ++ */ ++ ++/dts-v1/; ++#include "zynq-7000.dtsi" ++ ++/ { ++ model = "QMTECH XC7Z010 Starter Kit"; ++ compatible = "xlnx,zynq-qmtech", "xlnx,zynq-zc702", "xlnx,zynq-7000"; ++ ++ aliases { ++ ethernet0 = &gem0; ++ i2c0 = &i2c0; ++ serial0 = &uart1; ++ spi0 = &qspi; ++ mmc0 = &sdhci0; ++ }; ++ ++ memory@0 { ++ device_type = "memory"; ++ reg = <0x0 0x20000000>; ++ }; ++ ++ chosen { ++ bootargs = ""; ++ stdout-path = "serial0:115200n8"; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ ++ ds23 { ++ label = "ds23"; ++ gpios = <&gpio0 10 0>; ++ linux,default-trigger = "heartbeat"; ++ }; ++ }; ++ ++}; ++ ++&amba { ++ ocm: sram@fffc0000 { ++ compatible = "mmio-sram"; ++ reg = <0xfffc0000 0x10000>; ++ }; ++}; ++ ++&clkc { ++ ps-clk-frequency = <33333333>; ++}; ++ ++&gem0 { ++ status = "okay"; ++ phy-mode = "rgmii-id"; ++ phy-handle = <ðernet_phy>; ++ ++ ethernet_phy: ethernet-phy@0 { ++ reg = <0>; ++ device_type = "ethernet-phy"; ++ }; ++}; ++ ++&gpio0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_gpio0_default>; ++}; ++ ++&i2c0 { ++ status = "disabled"; ++ clock-frequency = <400000>; ++ pinctrl-names = "default", "gpio"; ++ pinctrl-0 = <&pinctrl_i2c0_default>; ++ pinctrl-1 = <&pinctrl_i2c0_gpio>; ++ scl-gpios = <&gpio0 50 0>; ++ sda-gpios = <&gpio0 51 0>; ++ ++ i2c-mux@74 { ++ compatible = "nxp,pca9548"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <0x74>; ++ ++ i2c@0 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <0>; ++ si570: clock-generator@5d { ++ #clock-cells = <0>; ++ compatible = "silabs,si570"; ++ temperature-stability = <50>; ++ reg = <0x5d>; ++ factory-fout = <156250000>; ++ clock-frequency = <148500000>; ++ }; ++ }; ++ ++ i2c@1 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <1>; ++ adv7511: hdmi-tx@39 { ++ compatible = "adi,adv7511"; ++ reg = <0x39>; ++ adi,input-depth = <8>; ++ adi,input-colorspace = "yuv422"; ++ adi,input-clock = "1x"; ++ adi,input-style = <3>; ++ adi,input-justification = "right"; ++ }; ++ }; ++ ++ i2c@2 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <2>; ++ eeprom@54 { ++ compatible = "atmel,24c08"; ++ reg = <0x54>; ++ }; ++ }; ++ ++ i2c@3 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <3>; ++ gpio@21 { ++ compatible = "ti,tca6416"; ++ reg = <0x21>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ }; ++ }; ++ ++ i2c@4 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <4>; ++ rtc@51 { ++ compatible = "nxp,pcf8563"; ++ reg = <0x51>; ++ }; ++ }; ++ ++ i2c@7 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <7>; ++ hwmon@52 { ++ compatible = "ti,ucd9248"; ++ reg = <52>; ++ }; ++ hwmon@53 { ++ compatible = "ti,ucd9248"; ++ reg = <53>; ++ }; ++ hwmon@54 { ++ compatible = "ti,ucd9248"; ++ reg = <54>; ++ }; ++ }; ++ }; ++}; ++ ++&pinctrl0 { ++ pinctrl_can0_default: can0-default { ++ mux { ++ function = "can0"; ++ groups = "can0_9_grp"; ++ }; ++ ++ conf { ++ groups = "can0_9_grp"; ++ slew-rate = <0>; ++ io-standard = <1>; ++ }; ++ ++ conf-rx { ++ pins = "MIO46"; ++ bias-high-impedance; ++ }; ++ ++ conf-tx { ++ pins = "MIO47"; ++ bias-disable; ++ }; ++ }; ++ ++ pinctrl_gem0_default: gem0-default { ++ mux { ++ function = "ethernet0"; ++ groups = "ethernet0_0_grp"; ++ }; ++ ++ conf { ++ groups = "ethernet0_0_grp"; ++ slew-rate = <0>; ++ io-standard = <4>; ++ }; ++ ++ conf-rx { ++ pins = "MIO22", "MIO23", "MIO24", "MIO25", "MIO26", "MIO27"; ++ bias-high-impedance; ++ low-power-disable; ++ }; ++ ++ conf-tx { ++ pins = "MIO16", "MIO17", "MIO18", "MIO19", "MIO20", "MIO21"; ++ bias-disable; ++ low-power-enable; ++ }; ++ ++ mux-mdio { ++ function = "mdio0"; ++ groups = "mdio0_0_grp"; ++ }; ++ ++ conf-mdio { ++ groups = "mdio0_0_grp"; ++ slew-rate = <0>; ++ io-standard = <1>; ++ bias-disable; ++ }; ++ }; ++ ++ pinctrl_gpio0_default: gpio0-default { ++ mux { ++ function = "gpio0"; ++ groups = "gpio0_7_grp", "gpio0_8_grp", "gpio0_9_grp", ++ "gpio0_10_grp", "gpio0_11_grp", "gpio0_12_grp", ++ "gpio0_13_grp", "gpio0_14_grp"; ++ }; ++ ++ conf { ++ groups = "gpio0_7_grp", "gpio0_8_grp", "gpio0_9_grp", ++ "gpio0_10_grp", "gpio0_11_grp", "gpio0_12_grp", ++ "gpio0_13_grp", "gpio0_14_grp"; ++ slew-rate = <0>; ++ io-standard = <1>; ++ }; ++ ++ conf-pull-up { ++ pins = "MIO9", "MIO10", "MIO11", "MIO12", "MIO13", "MIO14"; ++ bias-pull-up; ++ }; ++ ++ conf-pull-none { ++ pins = "MIO7", "MIO8"; ++ bias-disable; ++ }; ++ }; ++ ++ pinctrl_i2c0_default: i2c0-default { ++ mux { ++ groups = "i2c0_10_grp"; ++ function = "i2c0"; ++ }; ++ ++ conf { ++ groups = "i2c0_10_grp"; ++ bias-pull-up; ++ slew-rate = <0>; ++ io-standard = <1>; ++ }; ++ }; ++ ++ pinctrl_i2c0_gpio: i2c0-gpio { ++ mux { ++ groups = "gpio0_50_grp", "gpio0_51_grp"; ++ function = "gpio0"; ++ }; ++ ++ conf { ++ groups = "gpio0_50_grp", "gpio0_51_grp"; ++ slew-rate = <0>; ++ io-standard = <1>; ++ }; ++ }; ++ ++ pinctrl_sdhci0_default: sdhci0-default { ++ mux { ++ groups = "sdio0_2_grp"; ++ function = "sdio0"; ++ }; ++ ++ conf { ++ groups = "sdio0_2_grp"; ++ slew-rate = <0>; ++ io-standard = <1>; ++ bias-disable; ++ }; ++ ++ mux-cd { ++ groups = "gpio0_0_grp"; ++ function = "sdio0_cd"; ++ }; ++ ++ conf-cd { ++ groups = "gpio0_0_grp"; ++ bias-high-impedance; ++ bias-pull-up; ++ slew-rate = <0>; ++ io-standard = <1>; ++ }; ++ ++ mux-wp { ++ groups = "gpio0_15_grp"; ++ function = "sdio0_wp"; ++ }; ++ ++ conf-wp { ++ groups = "gpio0_15_grp"; ++ bias-high-impedance; ++ bias-pull-up; ++ slew-rate = <0>; ++ io-standard = <1>; ++ }; ++ }; ++ ++ pinctrl_uart1_default: uart1-default { ++ mux { ++ groups = "uart1_10_grp"; ++ function = "uart1"; ++ }; ++ ++ conf { ++ groups = "uart1_10_grp"; ++ slew-rate = <0>; ++ io-standard = <1>; ++ }; ++ ++ conf-rx { ++ pins = "MIO25"; ++ bias-high-impedance; ++ }; ++ ++ conf-tx { ++ pins = "MIO24"; ++ bias-disable; ++ }; ++ }; ++}; ++ ++&qspi { ++ u-boot,dm-pre-reloc; ++ status = "disabled"; ++ is-dual = <0>; ++ num-cs = <1>; ++ flash@0 { ++ compatible = "n25q128a11"; ++ reg = <0x0>; ++ spi-tx-bus-width = <1>; ++ spi-rx-bus-width = <4>; ++ spi-max-frequency = <50000000>; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ partition@qspi-fsbl-uboot { ++ label = "qspi-fsbl-uboot"; ++ reg = <0x0 0x100000>; ++ }; ++ partition@qspi-linux { ++ label = "qspi-linux"; ++ reg = <0x100000 0x500000>; ++ }; ++ partition@qspi-device-tree { ++ label = "qspi-device-tree"; ++ reg = <0x600000 0x20000>; ++ }; ++ partition@qspi-rootfs { ++ label = "qspi-rootfs"; ++ reg = <0x620000 0x5E0000>; ++ }; ++ partition@qspi-bitstream { ++ label = "qspi-bitstream"; ++ reg = <0xC00000 0x400000>; ++ }; ++ }; ++}; ++ ++&sdhci0 { ++ u-boot,dm-pre-reloc; ++ status = "okay"; ++}; ++ ++&uart1 { ++ u-boot,dm-pre-reloc; ++ status = "okay"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_uart1_default>; ++}; +-- +2.23.0 + diff --git a/board/qmtech/zynq/readme.txt b/board/qmtech/zynq/readme.txt new file mode 100644 index 000000000..5fb95bb90 --- /dev/null +++ b/board/qmtech/zynq/readme.txt @@ -0,0 +1,76 @@ +******************************* +QMTECH Zynq XC7Z010 Starter Kit +******************************* + +This file documents the Buildroot support for the QMTECH [1] Zynq +XC7Z010 Starter Kit [2]. It is a low cost (~55$) Zynq based +development board. The board user manual is available at +[3]. Additional files are available on Github [4]. + + +Build +===== + +First, configure Buildroot for the QMTECH Zynq board: + + make zynq_qmtech_defconfig + +Build all components: + + make + +You will find in output/images/ the following files: + - boot.bin + - boot.vfat + - devicetree.dtb + - rootfs.cpio + - rootfs.cpio.gz + - rootfs.cpio.uboot + - rootfs.tar + - sdcard.img + - u-boot.bin + - u-boot.img + - uImage + - zynq-qmtech.dtb + + +Create a bootable micro SD card +=============================== + +To determine the device associated to the micro SD card have a look in +the /proc/partitions file: + + cat /proc/partitions + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped on a micro SD card. Launch the following +command as root: + + dd if=output/images/sdcard.img of=/dev/ + +*** WARNING! This will destroy all the card content. Use with care! *** + + +Boot the QMTECH Zynq board +========================== + +To boot your newly created system: +- put a mini USB cable into the J4 Debug USB Port and connect using a + terminal emulator at 115200 bps, 8n1, +- put the prepared micro SD card in the J2 micro SD card slot, +- plug the 5V power supply on the JP4 barrel jack. + +Enjoy! + + +[1]. QMTECH: + http://www.chinaqmtech.com/ + +[2]. QMTECH Zynq XC7Z010 Starter Kit Product Page: + http://www.chinaqmtech.com/xilinx_zynq_soc + +[3]. QMTECH Zynq XC7Z010 Starter Kit Hardware User Manual: + http://www.chinaqmtech.com/filedownload/32552 + +[4]. QMTECH Github: + https://github.com/ChinaQMTECH/ZYNQ_STARTER_KIT diff --git a/board/radxa/rockpi-4/extlinux.conf b/board/radxa/rockpi-4/extlinux.conf new file mode 100644 index 000000000..83374f174 --- /dev/null +++ b/board/radxa/rockpi-4/extlinux.conf @@ -0,0 +1,4 @@ +label RK3399_ROCK_PI_4 linux + kernel /Image + devicetree /rk3399-rock-pi-4.dtb + append earlycon=uart8250,mmio32,0xff1a0000 root=/dev/mmcblk1p4 rw rootwait diff --git a/board/radxa/rockpi-4/genimage.cfg b/board/radxa/rockpi-4/genimage.cfg new file mode 100644 index 000000000..9f64e9697 --- /dev/null +++ b/board/radxa/rockpi-4/genimage.cfg @@ -0,0 +1,39 @@ +image boot.vfat { + vfat { + files = { + "Image", + "rk3399-rock-pi-4.dtb", + "extlinux" + } + } + + size = 112M +} + +image sdcard.img { + hdimage { + partition-table-type = "gpt" + } + + partition loader1 { + image = "idbloader.img" + offset = 32K + } + + partition loader2 { + image = "u-boot.itb" + offset = 8M + } + + partition boot { + partition-type-uuid = F + bootable = "true" + image = "boot.vfat" + offset = 16M + } + + partition rootfs { + partition-type-uuid = b921b045-1df0-41c3-af44-4c6f280d3fae + image = "rootfs.ext4" + } +} diff --git a/board/radxa/rockpi-4/post-build.sh b/board/radxa/rockpi-4/post-build.sh new file mode 100755 index 000000000..ba29375c0 --- /dev/null +++ b/board/radxa/rockpi-4/post-build.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" + +install -m 0644 -D $BOARD_DIR/extlinux.conf $BINARIES_DIR/extlinux/extlinux.conf diff --git a/board/radxa/rockpi-4/readme.txt b/board/radxa/rockpi-4/readme.txt new file mode 100644 index 000000000..1db7569ed --- /dev/null +++ b/board/radxa/rockpi-4/readme.txt @@ -0,0 +1,61 @@ +RADXA ROCK_PI_4 +================ +https://rockpi.org/rockpi4 + +ROCK Pi 4 is a Single Board Computer (SBC) from radxa. This guide is valid +for the below models: +- ROCK PI 4 Model A +- ROCK PI 4 Model B +- ROCK PI 4 Model C + +Build: +====== + $ make rock_pi_4_defconfig + $ make + +Files created in output directory +================================= + +output/images + +├── bl31.elf +├── boot.vfat +├── extlinux +├── idbloader.img +├── Image +├── rk3399-rock-pi-4.dtb +├── rootfs.ext2 +├── rootfs.ext4 -> rootfs.ext2 +├── rootfs.tar +├── sdcard.img +├── u-boot.bin +└── u-boot.itb + +Creating bootable SD card: +========================== + +Simply invoke (as root) + +sudo dd if=output/images/sdcard.img of=/dev/sdX && sync + +Where X is your SD card device. + +Booting: +======== + +Serial console: +--------------- +RockPi4 has a 40-pin GPIO header. The pin layout is as follows: + +pin 6: gnd +pin 8: tx +pin 10: rx + +Baudrate for this board is 1500000. + +Login: +------ +Enter 'root' as login user, and the prompt is ready. + +Wiki link: +https://wiki.amarulasolutions.com/bsp/rockchip/rk3399/rock-pi-4.html diff --git a/board/radxa/rockpi-n10/extlinux.conf b/board/radxa/rockpi-n10/extlinux.conf new file mode 100644 index 000000000..b6a4c97cd --- /dev/null +++ b/board/radxa/rockpi-n10/extlinux.conf @@ -0,0 +1,4 @@ +label RK3399_ROCK_PI_N10 linux + kernel /Image + devicetree /rk3399pro-rock-pi-n10.dtb + append earlycon=uart8250,mmio32,0xff1a0000 root=/dev/mmcblk0p4 rw rootwait diff --git a/board/radxa/rockpi-n10/genimage.cfg b/board/radxa/rockpi-n10/genimage.cfg new file mode 100644 index 000000000..fe6fa3f8f --- /dev/null +++ b/board/radxa/rockpi-n10/genimage.cfg @@ -0,0 +1,39 @@ +image boot.vfat { + vfat { + files = { + "Image", + "rk3399pro-rock-pi-n10.dtb", + "extlinux" + } + } + + size = 112M +} + +image sdcard.img { + hdimage { + partition-table-type = "gpt" + } + + partition loader1 { + image = "idbloader.img" + offset = 32K + } + + partition loader2 { + image = "u-boot.itb" + offset = 8M + } + + partition boot { + partition-type-uuid = F + bootable = "true" + image = "boot.vfat" + offset = 16M + } + + partition rootfs { + partition-type-uuid = b921b045-1df0-41c3-af44-4c6f280d3fae + image = "rootfs.ext4" + } +} diff --git a/board/radxa/rockpi-n10/post-build.sh b/board/radxa/rockpi-n10/post-build.sh new file mode 100755 index 000000000..ba29375c0 --- /dev/null +++ b/board/radxa/rockpi-n10/post-build.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" + +install -m 0644 -D $BOARD_DIR/extlinux.conf $BINARIES_DIR/extlinux/extlinux.conf diff --git a/board/radxa/rockpi-n10/readme.txt b/board/radxa/rockpi-n10/readme.txt new file mode 100644 index 000000000..49decbb3d --- /dev/null +++ b/board/radxa/rockpi-n10/readme.txt @@ -0,0 +1,61 @@ +RADXA ROCKPI-N10 +================ +https://wiki.radxa.com/RockpiN10 + +Build: +====== + $ make rock_pi_n10_defconfig + $ make + +Files created in output directory +================================= + +output/images +. +├── bl31.elf +├── boot.vfat +├── extlinux +├── idbloader.img +├── Image +├── rk3399pro-rock-pi-n10.dtb +├── rootfs.ext2 +├── rootfs.ext4 -> rootfs.ext2 +├── rootfs.tar +├── sdcard.img +├── u-boot.bin +└── u-boot.itb + +Creating bootable SD card: +========================== + +Simply invoke (as root) + +sudo dd if=output/images/sdcard.img of=/dev/sdX && sync + +Where X is your SD card device. + +Booting: +======== + +Serial console: +--------------- +RockPi-N10 has a 40-pin GPIO header. The pin layout is as follows: + +pin 6: gnd +pin 8: tx +pin 10: rx + +Baudrate for this board is 1500000. + +The boot order on rockpi-n10 is emmc, sd. If emmc contains a valid Image, the board +always boots from emmc. To boot from SD, erase emmc as per the guide: + +https://wiki.amarulasolutions.com/bsp/setup/rockchip/rk3399_emmc.html + +Login: +------ +Enter 'root' as login user, and the prompt is ready. + +wiki link: +---------- +https://wiki.amarulasolutions.com/bsp/rockchip/rk3399pro/rock-pi-n10.html diff --git a/board/radxa/rockpi-n8/extlinux.conf b/board/radxa/rockpi-n8/extlinux.conf new file mode 100644 index 000000000..c323fe10e --- /dev/null +++ b/board/radxa/rockpi-n8/extlinux.conf @@ -0,0 +1,4 @@ +label RK3288_ROCKPI_N8 linux + kernel /zImage + devicetree /rk3288-rock-pi-n8.dtb + append console=ttyS2,115200n8 root=/dev/mmcblk0p4 rw rootwait diff --git a/board/radxa/rockpi-n8/genimage.cfg b/board/radxa/rockpi-n8/genimage.cfg new file mode 100644 index 000000000..bfcd92f59 --- /dev/null +++ b/board/radxa/rockpi-n8/genimage.cfg @@ -0,0 +1,39 @@ +image boot.vfat { + vfat { + files = { + "zImage", + "rk3288-rock-pi-n8.dtb", + "extlinux" + } + } + + size = 16M +} + +image sdcard.img { + hdimage { + partition-table-type = "gpt" + } + + partition loader1 { + image = "idbloader.img" + offset = 32K + } + + partition loader2 { + image = "u-boot-dtb.img" + offset = 8M + } + + partition boot { + partition-type-uuid = F + bootable = "true" + image = "boot.vfat" + offset = 16M + } + + partition rootfs { + partition-type-uuid = 69dad710-2ce4-4e3c-b16c-21a1d49abed3 + image = "rootfs.ext4" + } +} diff --git a/board/radxa/rockpi-n8/post-build.sh b/board/radxa/rockpi-n8/post-build.sh new file mode 100755 index 000000000..ba29375c0 --- /dev/null +++ b/board/radxa/rockpi-n8/post-build.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" + +install -m 0644 -D $BOARD_DIR/extlinux.conf $BINARIES_DIR/extlinux/extlinux.conf diff --git a/board/radxa/rockpi-n8/readme.txt b/board/radxa/rockpi-n8/readme.txt new file mode 100644 index 000000000..ac83d5c8c --- /dev/null +++ b/board/radxa/rockpi-n8/readme.txt @@ -0,0 +1,61 @@ +RADXA ROCKPI-N8 +================ +https://wiki.radxa.com/RockpiN8 + +Build: +====== + $ make rock_pi_n8_defconfig + $ make + +Files created in output directory +================================= + +output/images +. +├── boot.vfat +├── extlinux +├── idbloader.img +├── rk3288-rock-pi-n8.dtb +├── rootfs.ext2 +├── rootfs.ext4 -> rootfs.ext2 +├── rootfs.tar +├── sdcard.img +├── u-boot.bin +├── u-boot-dtb.bin +├── u-boot-dtb.img +└── zImage + +Creating bootable SD card: +========================== + +Simply invoke (as root) + +sudo dd if=output/images/sdcard.img of=/dev/sdX && sync + +Where X is your SD card device. + +Booting: +======== + +Serial console: +--------------- +RockPi-N8 has a 40-pin GPIO header. The pin layout is as follows: + +pin 6: gnd +pin 8: tx +pin 10: rx + +Baudrate for this board is 115200. + +The boot order on rockpi-n8 is emmc, sd. If emmc contains a valid Image, the board +always boots from emmc. To boot from SD, erase emmc as per the guide: + +https://wiki.amarulasolutions.com/bsp/setup/rockchip/rk3399_emmc.html + +Login: +------ +Enter 'root' as login user, and the prompt is ready. + +wiki link: +---------- +https://wiki.amarulasolutions.com/bsp/rockchip/rk3288/rock-pi-n8.html diff --git a/board/raspberrypi/config_0w.txt b/board/raspberrypi/config_0w.txt new file mode 100644 index 000000000..195bad449 --- /dev/null +++ b/board/raspberrypi/config_0w.txt @@ -0,0 +1,29 @@ +# Please note that this is only a sample, we recommend you to change it to fit +# your needs. +# You should override this file using BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE. +# See http://buildroot.org/manual.html#rootfs-custom +# and http://elinux.org/RPiconfig for a description of config.txt syntax + +start_file=start.elf +fixup_file=fixup.dat + +kernel=zImage + +# To use an external initramfs file +#initramfs rootfs.cpio.gz + +# Disable overscan assuming the display supports displaying the full resolution +# If the text shown on the screen disappears off the edge, comment this out +disable_overscan=1 + +# How much memory in MB to assign to the GPU on Pi models having +# 256, 512 or 1024 MB total memory +gpu_mem_256=100 +gpu_mem_512=100 +gpu_mem_1024=100 + +# fixes rpi (3B, 3B+, 3A+, 4B and Zero W) ttyAMA0 serial console +dtoverlay=miniuart-bt + +# enable autoprobing of Bluetooth driver without need of hciattach/btattach +dtoverlay=krnbt=on diff --git a/board/raspberrypi/config_3.txt b/board/raspberrypi/config_3.txt new file mode 100644 index 000000000..195bad449 --- /dev/null +++ b/board/raspberrypi/config_3.txt @@ -0,0 +1,29 @@ +# Please note that this is only a sample, we recommend you to change it to fit +# your needs. +# You should override this file using BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE. +# See http://buildroot.org/manual.html#rootfs-custom +# and http://elinux.org/RPiconfig for a description of config.txt syntax + +start_file=start.elf +fixup_file=fixup.dat + +kernel=zImage + +# To use an external initramfs file +#initramfs rootfs.cpio.gz + +# Disable overscan assuming the display supports displaying the full resolution +# If the text shown on the screen disappears off the edge, comment this out +disable_overscan=1 + +# How much memory in MB to assign to the GPU on Pi models having +# 256, 512 or 1024 MB total memory +gpu_mem_256=100 +gpu_mem_512=100 +gpu_mem_1024=100 + +# fixes rpi (3B, 3B+, 3A+, 4B and Zero W) ttyAMA0 serial console +dtoverlay=miniuart-bt + +# enable autoprobing of Bluetooth driver without need of hciattach/btattach +dtoverlay=krnbt=on diff --git a/board/raspberrypi/config_3_64bit.txt b/board/raspberrypi/config_3_64bit.txt new file mode 100644 index 000000000..34412fa9e --- /dev/null +++ b/board/raspberrypi/config_3_64bit.txt @@ -0,0 +1,32 @@ +# Please note that this is only a sample, we recommend you to change it to fit +# your needs. +# You should override this file using BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE. +# See http://buildroot.org/manual.html#rootfs-custom +# and http://elinux.org/RPiconfig for a description of config.txt syntax + +start_file=start.elf +fixup_file=fixup.dat + +kernel=Image + +# To use an external initramfs file +#initramfs rootfs.cpio.gz + +# Disable overscan assuming the display supports displaying the full resolution +# If the text shown on the screen disappears off the edge, comment this out +disable_overscan=1 + +# How much memory in MB to assign to the GPU on Pi models having +# 256, 512 or 1024 MB total memory +gpu_mem_256=100 +gpu_mem_512=100 +gpu_mem_1024=100 + +# fixes rpi (3B, 3B+, 3A+, 4B and Zero W) ttyAMA0 serial console +dtoverlay=miniuart-bt + +# enable autoprobing of Bluetooth driver without need of hciattach/btattach +dtoverlay=krnbt=on + +# enable 64bits support +arm_64bit=1 diff --git a/board/raspberrypi/config_3_qt5we.txt b/board/raspberrypi/config_3_qt5we.txt new file mode 100644 index 000000000..752310b17 --- /dev/null +++ b/board/raspberrypi/config_3_qt5we.txt @@ -0,0 +1,26 @@ +# Please note that this is only a sample, we recommend you to change it to fit +# your needs. +# You should override this file using BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE. +# See http://buildroot.org/manual.html#rootfs-custom +# and http://elinux.org/RPiconfig for a description of config.txt syntax + +start_file=start.elf +fixup_file=fixup.dat + +kernel=zImage + +# To use an external initramfs file +#initramfs rootfs.cpio.gz + +# Disable overscan assuming the display supports displaying the full resolution +# If the text shown on the screen disappears off the edge, comment this out +disable_overscan=1 + +# How much memory in MB to assign to the GPU on Pi models having +# 256, 512 or 1024 MB total memory +gpu_mem_256=100 +gpu_mem_512=100 +gpu_mem_1024=200 + +# fixes rpi (3B, 3B+, 3A+, 4B and Zero W) ttyAMA0 serial console +dtoverlay=miniuart-bt diff --git a/board/raspberrypi/config_4.txt b/board/raspberrypi/config_4.txt new file mode 100644 index 000000000..ea02d3f07 --- /dev/null +++ b/board/raspberrypi/config_4.txt @@ -0,0 +1,29 @@ +# Please note that this is only a sample, we recommend you to change it to fit +# your needs. +# You should override this file using BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE. +# See http://buildroot.org/manual.html#rootfs-custom +# and http://elinux.org/RPiconfig for a description of config.txt syntax + +start_file=start4.elf +fixup_file=fixup4.dat + +kernel=zImage + +# To use an external initramfs file +#initramfs rootfs.cpio.gz + +# Disable overscan assuming the display supports displaying the full resolution +# If the text shown on the screen disappears off the edge, comment this out +disable_overscan=1 + +# How much memory in MB to assign to the GPU on Pi models having +# 256, 512 or 1024 MB total memory +gpu_mem_256=100 +gpu_mem_512=100 +gpu_mem_1024=100 + +# fixes rpi (3B, 3B+, 3A+, 4B and Zero W) ttyAMA0 serial console +dtoverlay=miniuart-bt + +# enable autoprobing of Bluetooth driver without need of hciattach/btattach +dtoverlay=krnbt=on diff --git a/board/raspberrypi/config_4_64bit.txt b/board/raspberrypi/config_4_64bit.txt new file mode 100644 index 000000000..41c7e97e9 --- /dev/null +++ b/board/raspberrypi/config_4_64bit.txt @@ -0,0 +1,36 @@ +# Please note that this is only a sample, we recommend you to change it to fit +# your needs. +# You should override this file using BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE. +# See http://buildroot.org/manual.html#rootfs-custom +# and http://elinux.org/RPiconfig for a description of config.txt syntax + +start_file=start4.elf +fixup_file=fixup4.dat + +kernel=Image + +# To use an external initramfs file +#initramfs rootfs.cpio.gz + +# Disable overscan assuming the display supports displaying the full resolution +# If the text shown on the screen disappears off the edge, comment this out +disable_overscan=1 + +# How much memory in MB to assign to the GPU on Pi models having +# 256, 512 or 1024 MB total memory +gpu_mem_256=100 +gpu_mem_512=100 +gpu_mem_1024=100 + +# fixes rpi (3B, 3B+, 3A+, 4B and Zero W) ttyAMA0 serial console +dtoverlay=miniuart-bt + +# enable autoprobing of Bluetooth driver without need of hciattach/btattach +dtoverlay=krnbt=on + +dtoverlay=vc4-kms-v3d-pi4 +dtoverlay=imx219 +#dtoverlay=ov5647 + +# enable 64bits support +arm_64bit=1 diff --git a/board/raspberrypi/config_cm4io.txt b/board/raspberrypi/config_cm4io.txt new file mode 100644 index 000000000..cf7e6df1a --- /dev/null +++ b/board/raspberrypi/config_cm4io.txt @@ -0,0 +1,33 @@ +# Please note that this is only a sample, we recommend you to change it to fit +# your needs. +# You should override this file using BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE. +# See http://buildroot.org/manual.html#rootfs-custom +# and http://elinux.org/RPiconfig for a description of config.txt syntax + +start_file=start4.elf +fixup_file=fixup4.dat + +kernel=zImage + +# To use an external initramfs file +#initramfs rootfs.cpio.gz + +# Disable overscan assuming the display supports displaying the full resolution +# If the text shown on the screen disappears off the edge, comment this out +disable_overscan=1 + +# How much memory in MB to assign to the GPU on Pi models having +# 256, 512 or 1024 MB total memory +gpu_mem_256=100 +gpu_mem_512=100 +gpu_mem_1024=100 + +# fixes rpi (3B, 3B+, 3A+, 4B and Zero W) ttyAMA0 serial console +dtoverlay=miniuart-bt + +# enable RTC +dtparam=i2c_vc=on +dtoverlay=i2c-rtc,pcf85063a,i2c_csi_dsi + +# enable dwc2 USB controller (USB 2.0) +dtoverlay=dwc2,dr_mode=host diff --git a/board/raspberrypi/config_cm4io_64bit.txt b/board/raspberrypi/config_cm4io_64bit.txt new file mode 100644 index 000000000..813f6eba7 --- /dev/null +++ b/board/raspberrypi/config_cm4io_64bit.txt @@ -0,0 +1,37 @@ +# Please note that this is only a sample, we recommend you to change it to fit +# your needs. +# You should override this file using BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE. +# See http://buildroot.org/manual.html#rootfs-custom +# and http://elinux.org/RPiconfig for a description of config.txt syntax + +start_file=start4.elf +fixup_file=fixup4.dat + +kernel=Image + +# To use an external initramfs file +#initramfs rootfs.cpio.gz + +# Disable overscan assuming the display supports displaying the full resolution +# If the text shown on the screen disappears off the edge, comment this out +disable_overscan=1 + +# How much memory in MB to assign to the GPU on Pi models having +# 256, 512 or 1024 MB total memory +gpu_mem_256=100 +gpu_mem_512=100 +gpu_mem_1024=100 + +# fixes rpi (3B, 3B+, 3A+, 4B and Zero W) ttyAMA0 serial console +dtoverlay=miniuart-bt + +# enable RTC +dtparam=i2c_vc=on +dtoverlay=i2c-rtc,pcf85063a,i2c_csi_dsi + +# enable dwc2 USB controller (USB 2.0) +dtoverlay=dwc2,dr_mode=host + +# enable 64bits support +arm_64bit=1 + diff --git a/board/raspberrypi/config_default.txt b/board/raspberrypi/config_default.txt new file mode 100644 index 000000000..c09ecca1a --- /dev/null +++ b/board/raspberrypi/config_default.txt @@ -0,0 +1,23 @@ +# Please note that this is only a sample, we recommend you to change it to fit +# your needs. +# You should override this file using BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE. +# See http://buildroot.org/manual.html#rootfs-custom +# and http://elinux.org/RPiconfig for a description of config.txt syntax + +start_file=start.elf +fixup_file=fixup.dat + +kernel=zImage + +# To use an external initramfs file +#initramfs rootfs.cpio.gz + +# Disable overscan assuming the display supports displaying the full resolution +# If the text shown on the screen disappears off the edge, comment this out +disable_overscan=1 + +# How much memory in MB to assign to the GPU on Pi models having +# 256, 512 or 1024 MB total memory +gpu_mem_256=100 +gpu_mem_512=100 +gpu_mem_1024=100 diff --git a/board/raspberrypi/config_zero2w.txt b/board/raspberrypi/config_zero2w.txt new file mode 100644 index 000000000..9e6b7f5cc --- /dev/null +++ b/board/raspberrypi/config_zero2w.txt @@ -0,0 +1,29 @@ +# Please note that this is only a sample, we recommend you to change it to fit +# your needs. +# You should override this file using BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE. +# See http://buildroot.org/manual.html#rootfs-custom +# and http://elinux.org/RPiconfig for a description of config.txt syntax + +start_file=start.elf +fixup_file=fixup.dat + +kernel=zImage + +# To use an external initramfs file +#initramfs rootfs.cpio.gz + +# Disable overscan assuming the display supports displaying the full resolution +# If the text shown on the screen disappears off the edge, comment this out +disable_overscan=1 + +# How much memory in MB to assign to the GPU on Pi models having +# 256, 512 or 1024 MB total memory +gpu_mem_256=100 +gpu_mem_512=100 +gpu_mem_1024=100 + +# fixes rpi (3B, 3B+, 3A+, 4B ,zero W and zero 2) ttyAMA0 serial console +dtoverlay=miniuart-bt + +# enable autoprobing of Bluetooth driver without need of hciattach/btattach +dtoverlay=krnbt=on diff --git a/board/raspberrypi/genimage-raspberrypi.cfg b/board/raspberrypi/genimage-raspberrypi.cfg new file mode 100644 index 000000000..04be16cce --- /dev/null +++ b/board/raspberrypi/genimage-raspberrypi.cfg @@ -0,0 +1,33 @@ +image boot.vfat { + vfat { + files = { + "bcm2708-rpi-b.dtb", + "bcm2708-rpi-b-plus.dtb", + "bcm2708-rpi-cm.dtb", + "rpi-firmware/bootcode.bin", + "rpi-firmware/cmdline.txt", + "rpi-firmware/config.txt", + "rpi-firmware/fixup.dat", + "rpi-firmware/start.elf", + "zImage" + } + } + + size = 32M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/raspberrypi/genimage-raspberrypi0.cfg b/board/raspberrypi/genimage-raspberrypi0.cfg new file mode 100644 index 000000000..1fa3f5096 --- /dev/null +++ b/board/raspberrypi/genimage-raspberrypi0.cfg @@ -0,0 +1,31 @@ +image boot.vfat { + vfat { + files = { + "bcm2708-rpi-zero.dtb", + "rpi-firmware/bootcode.bin", + "rpi-firmware/cmdline.txt", + "rpi-firmware/config.txt", + "rpi-firmware/fixup.dat", + "rpi-firmware/start.elf", + "zImage" + } + } + + size = 32M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/raspberrypi/genimage-raspberrypi0w.cfg b/board/raspberrypi/genimage-raspberrypi0w.cfg new file mode 100644 index 000000000..de7652f99 --- /dev/null +++ b/board/raspberrypi/genimage-raspberrypi0w.cfg @@ -0,0 +1,32 @@ +image boot.vfat { + vfat { + files = { + "bcm2708-rpi-zero-w.dtb", + "rpi-firmware/bootcode.bin", + "rpi-firmware/cmdline.txt", + "rpi-firmware/config.txt", + "rpi-firmware/fixup.dat", + "rpi-firmware/start.elf", + "rpi-firmware/overlays", + "zImage" + } + } + + size = 32M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/raspberrypi/genimage-raspberrypi2.cfg b/board/raspberrypi/genimage-raspberrypi2.cfg new file mode 100644 index 000000000..acd23e7ca --- /dev/null +++ b/board/raspberrypi/genimage-raspberrypi2.cfg @@ -0,0 +1,31 @@ +image boot.vfat { + vfat { + files = { + "bcm2709-rpi-2-b.dtb", + "rpi-firmware/bootcode.bin", + "rpi-firmware/cmdline.txt", + "rpi-firmware/config.txt", + "rpi-firmware/fixup.dat", + "rpi-firmware/start.elf", + "zImage" + } + } + + size = 32M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/raspberrypi/genimage-raspberrypi3-64.cfg b/board/raspberrypi/genimage-raspberrypi3-64.cfg new file mode 100644 index 000000000..8cbcd9163 --- /dev/null +++ b/board/raspberrypi/genimage-raspberrypi3-64.cfg @@ -0,0 +1,34 @@ +image boot.vfat { + vfat { + files = { + "bcm2710-rpi-3-b.dtb", + "bcm2710-rpi-3-b-plus.dtb", + "bcm2837-rpi-3-b.dtb", + "rpi-firmware/bootcode.bin", + "rpi-firmware/cmdline.txt", + "rpi-firmware/config.txt", + "rpi-firmware/fixup.dat", + "rpi-firmware/start.elf", + "rpi-firmware/overlays", + "Image" + } + } + + size = 32M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/raspberrypi/genimage-raspberrypi3.cfg b/board/raspberrypi/genimage-raspberrypi3.cfg new file mode 100644 index 000000000..a61782337 --- /dev/null +++ b/board/raspberrypi/genimage-raspberrypi3.cfg @@ -0,0 +1,34 @@ +image boot.vfat { + vfat { + files = { + "bcm2710-rpi-3-b.dtb", + "bcm2710-rpi-3-b-plus.dtb", + "bcm2710-rpi-cm3.dtb", + "rpi-firmware/bootcode.bin", + "rpi-firmware/cmdline.txt", + "rpi-firmware/config.txt", + "rpi-firmware/fixup.dat", + "rpi-firmware/start.elf", + "rpi-firmware/overlays", + "zImage" + } + } + + size = 32M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/raspberrypi/genimage-raspberrypi4-64.cfg b/board/raspberrypi/genimage-raspberrypi4-64.cfg new file mode 100644 index 000000000..3ae938db2 --- /dev/null +++ b/board/raspberrypi/genimage-raspberrypi4-64.cfg @@ -0,0 +1,31 @@ +image boot.vfat { + vfat { + files = { + "bcm2711-rpi-4-b.dtb", + "rpi-firmware/cmdline.txt", + "rpi-firmware/config.txt", + "rpi-firmware/fixup4.dat", + "rpi-firmware/start4.elf", + "rpi-firmware/overlays", + "Image" + } + } + + size = 32M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/raspberrypi/genimage-raspberrypi4.cfg b/board/raspberrypi/genimage-raspberrypi4.cfg new file mode 100644 index 000000000..2e578ad55 --- /dev/null +++ b/board/raspberrypi/genimage-raspberrypi4.cfg @@ -0,0 +1,31 @@ +image boot.vfat { + vfat { + files = { + "bcm2711-rpi-4-b.dtb", + "rpi-firmware/cmdline.txt", + "rpi-firmware/config.txt", + "rpi-firmware/fixup4.dat", + "rpi-firmware/start4.elf", + "rpi-firmware/overlays", + "zImage" + } + } + + size = 32M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/raspberrypi/genimage-raspberrypicm4io-64.cfg b/board/raspberrypi/genimage-raspberrypicm4io-64.cfg new file mode 100644 index 000000000..73d31a57b --- /dev/null +++ b/board/raspberrypi/genimage-raspberrypicm4io-64.cfg @@ -0,0 +1,31 @@ +image boot.vfat { + vfat { + files = { + "bcm2711-rpi-cm4.dtb", + "rpi-firmware/cmdline.txt", + "rpi-firmware/config.txt", + "rpi-firmware/fixup4.dat", + "rpi-firmware/start4.elf", + "rpi-firmware/overlays", + "Image" + } + } + + size = 32M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/raspberrypi/genimage-raspberrypicm4io.cfg b/board/raspberrypi/genimage-raspberrypicm4io.cfg new file mode 100644 index 000000000..4d09b0355 --- /dev/null +++ b/board/raspberrypi/genimage-raspberrypicm4io.cfg @@ -0,0 +1,31 @@ +image boot.vfat { + vfat { + files = { + "bcm2711-rpi-cm4.dtb", + "rpi-firmware/cmdline.txt", + "rpi-firmware/config.txt", + "rpi-firmware/fixup4.dat", + "rpi-firmware/start4.elf", + "rpi-firmware/overlays", + "zImage" + } + } + + size = 32M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/raspberrypi/genimage-raspberrypizero2w.cfg b/board/raspberrypi/genimage-raspberrypizero2w.cfg new file mode 100644 index 000000000..b510fea56 --- /dev/null +++ b/board/raspberrypi/genimage-raspberrypizero2w.cfg @@ -0,0 +1,32 @@ +image boot.vfat { + vfat { + files = { + "bcm2710-rpi-zero-2-w.dtb", + "rpi-firmware/bootcode.bin", + "rpi-firmware/cmdline.txt", + "rpi-firmware/config.txt", + "rpi-firmware/fixup.dat", + "rpi-firmware/start.elf", + "rpi-firmware/overlays", + "zImage" + } + } + + size = 32M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/raspberrypi/post-build.sh b/board/raspberrypi/post-build.sh new file mode 100755 index 000000000..5e5eb7110 --- /dev/null +++ b/board/raspberrypi/post-build.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +set -u +set -e + +# Add a console on tty1 +if [ -e ${TARGET_DIR}/etc/inittab ]; then + grep -qE '^tty1::' ${TARGET_DIR}/etc/inittab || \ + sed -i '/GENERIC_SERIAL/a\ +tty1::respawn:/sbin/getty -L tty1 0 vt100 # HDMI console' ${TARGET_DIR}/etc/inittab +fi diff --git a/board/raspberrypi/post-image.sh b/board/raspberrypi/post-image.sh new file mode 100755 index 000000000..6cad20fb9 --- /dev/null +++ b/board/raspberrypi/post-image.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +set -e + +BOARD_DIR="$(dirname $0)" +BOARD_NAME="$(basename ${BOARD_DIR})" +GENIMAGE_CFG="${BOARD_DIR}/genimage-${BOARD_NAME}.cfg" +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + +# Pass an empty rootpath. genimage makes a full copy of the given rootpath to +# ${GENIMAGE_TMP}/root so passing TARGET_DIR would be a waste of time and disk +# space. We don't rely on genimage to build the rootfs image, just to insert a +# pre-built one in the disk image. + +trap 'rm -rf "${ROOTPATH_TMP}"' EXIT +ROOTPATH_TMP="$(mktemp -d)" + +rm -rf "${GENIMAGE_TMP}" + +genimage \ + --rootpath "${ROOTPATH_TMP}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" + +exit $? diff --git a/board/raspberrypi/readme.txt b/board/raspberrypi/readme.txt new file mode 100644 index 000000000..c81fd801a --- /dev/null +++ b/board/raspberrypi/readme.txt @@ -0,0 +1,158 @@ +Raspberry Pi + +Intro +===== + +These instructions apply to all models of the Raspberry Pi: + - the original models A and B, + - the "enhanced" models A+ and B+, + - the model B2 (aka Raspberry Pi 2) + - the model B3 (aka Raspberry Pi 3). + - the model B4 (aka Raspberry Pi 4). + - the model CM4 (aka Raspberry Pi Compute Module 4 and IO Board). + +How to build it +=============== + +Configure Buildroot +------------------- + +There are two RaspberryPi defconfig files in Buildroot, one for each +major variant, which you should base your work on: + +For models A, B, A+ or B+: + + $ make raspberrypi_defconfig + +For model Zero (model A+ in smaller form factor): + + $ make raspberrypi0_defconfig + +For model Zero 2 W (model B3 in smaller form factor): + + $ make raspberrypizero2w_defconfig + +For model 2 B: + + $ make raspberrypi2_defconfig + +For model 3 B and B+: + + $ make raspberrypi3_defconfig + +or for model 3 B and B+ (64 bit): + + $ make raspberrypi3_64_defconfig + +For model 4 B: + + $ make raspberrypi4_defconfig + +or for model 4 B (64 bit): + + $ make raspberrypi4_64_defconfig + +For model CM4 (on IO Board): + + $ make raspberrypicm4io_defconfig + +or for CM4 (on IO Board - 64 bit): + + $ make raspberrypicm4io_64_defconfig + +Build the rootfs +---------------- + +Note: you will need to have access to the network, since Buildroot will +download the packages' sources. + +You may now build your rootfs with: + + $ make + +(This may take a while, consider getting yourself a coffee ;-) ) + +Result of the build +------------------- + +After building, you should obtain this tree: + + output/images/ + +-- bcm2708-rpi-b.dtb [1] + +-- bcm2708-rpi-b-plus.dtb [1] + +-- bcm2708-rpi-cm.dtb [1] + +-- bcm2708-rpi-zero.dtb [1] + +-- bcm2708-rpi-zero-w.dtb [1] + +-- bcm2710-rpi-zero-2-w.dtb [1] + +-- bcm2709-rpi-2-b.dtb [1] + +-- bcm2710-rpi-3-b.dtb [1] + +-- bcm2710-rpi-3-b-plus.dtb [1] + +-- bcm2710-rpi-cm3.dtb [1] + +-- bcm2711-rpi-4-b.dtb [1] + +-- bcm2711-rpi-cm4.dtb [1] + +-- bcm2837-rpi-3-b.dtb [1] + +-- boot.vfat + +-- rootfs.ext4 + +-- rpi-firmware/ + | +-- bootcode.bin + | +-- cmdline.txt + | +-- config.txt + | +-- fixup.dat [1] + | +-- fixup4.dat [1] + | +-- start.elf [1] + | +-- start4.elf [1] + | `-- overlays/ [2] + +-- sdcard.img + +-- Image [1] + `-- zImage [1] + +[1] Not all of them will be present, depending on the RaspberryPi + model you are using. + +[2] Only for the Raspberry Pi 3/4 Models (overlay miniuart-bt is needed + to enable the RPi3 serial console otherwise occupied by the bluetooth + chip). Alternative would be to disable the serial console in cmdline.txt + and /etc/inittab. + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + +Insert the SDcard into your Raspberry Pi, and power it up. Your new system +should come up now and start two consoles: one on the serial port on +the P1 header, one on the HDMI output where you can login using a USB +keyboard. + +How to write to CM4 eMMC memory +=============================== + +For CM4 modules without eMMC memory see above for booting from SD card, +for CM4 moduels with eMMC memory proceed as following: + +- fit jumper on IO Board header J2 to disable eMMC boot +- connect IO Board micro USB port (J11 USB slave) to your host linux system +- power up CM4/IO Board (lsusb command should show a '0a5c:2711 Broadcom Corp. + BCM2711 Boot' device) +- run 'sudo ./host/bin/rpiboot', output should look like the following: + Waiting for BCM2835/6/7/2711... + Loading embedded: bootcode4.bin + Sending bootcode.bin + Successful read 4 bytes + Waiting for BCM2835/6/7/2711... + Loading embedded: bootcode4.bin + Second stage boot server + Loading embedded: start4.elf + File read: start4.elf + Second stage boot server done + +- a USB mass storage device should show up (the CM4 eMMC memory), proceed + as described above to copy sdcard.img to it +- power down CM4/IO Board +- remove jumper on IO Board header J2 to re-enable eMMC boot +- power up CM4/IO Board diff --git a/board/raspberrypi0 b/board/raspberrypi0 new file mode 120000 index 000000000..fcdafc81e --- /dev/null +++ b/board/raspberrypi0 @@ -0,0 +1 @@ +raspberrypi \ No newline at end of file diff --git a/board/raspberrypi0w b/board/raspberrypi0w new file mode 120000 index 000000000..fcdafc81e --- /dev/null +++ b/board/raspberrypi0w @@ -0,0 +1 @@ +raspberrypi \ No newline at end of file diff --git a/board/raspberrypi2 b/board/raspberrypi2 new file mode 120000 index 000000000..fcdafc81e --- /dev/null +++ b/board/raspberrypi2 @@ -0,0 +1 @@ +raspberrypi \ No newline at end of file diff --git a/board/raspberrypi3 b/board/raspberrypi3 new file mode 120000 index 000000000..fcdafc81e --- /dev/null +++ b/board/raspberrypi3 @@ -0,0 +1 @@ +raspberrypi \ No newline at end of file diff --git a/board/raspberrypi3-64 b/board/raspberrypi3-64 new file mode 120000 index 000000000..fcdafc81e --- /dev/null +++ b/board/raspberrypi3-64 @@ -0,0 +1 @@ +raspberrypi \ No newline at end of file diff --git a/board/raspberrypi4 b/board/raspberrypi4 new file mode 120000 index 000000000..fcdafc81e --- /dev/null +++ b/board/raspberrypi4 @@ -0,0 +1 @@ +raspberrypi \ No newline at end of file diff --git a/board/raspberrypi4-64 b/board/raspberrypi4-64 new file mode 120000 index 000000000..fcdafc81e --- /dev/null +++ b/board/raspberrypi4-64 @@ -0,0 +1 @@ +raspberrypi \ No newline at end of file diff --git a/board/raspberrypicm4io b/board/raspberrypicm4io new file mode 120000 index 000000000..fcdafc81e --- /dev/null +++ b/board/raspberrypicm4io @@ -0,0 +1 @@ +raspberrypi \ No newline at end of file diff --git a/board/raspberrypicm4io-64 b/board/raspberrypicm4io-64 new file mode 120000 index 000000000..fcdafc81e --- /dev/null +++ b/board/raspberrypicm4io-64 @@ -0,0 +1 @@ +raspberrypi \ No newline at end of file diff --git a/board/raspberrypizero2w b/board/raspberrypizero2w new file mode 120000 index 000000000..fcdafc81e --- /dev/null +++ b/board/raspberrypizero2w @@ -0,0 +1 @@ +raspberrypi \ No newline at end of file diff --git a/board/roseapplepi/genimage.cfg b/board/roseapplepi/genimage.cfg new file mode 100644 index 000000000..4c5a8de90 --- /dev/null +++ b/board/roseapplepi/genimage.cfg @@ -0,0 +1,45 @@ +# Minimal SD card image for the Roseapple Pi +# +image boot.vfat { + vfat { + files = { + "uEnv.txt", + "uImage" + } + + file kernel.dtb { + image = "owl-s500-roseapplepi.dtb" + } + } + + size = 128M +} + +image sdcard.img { + hdimage { + } + + partition s500-bootloader { + in-partition-table = "no" + image = "s500-bootloader.bin" + offset = 0x200200 # 2MB + 512B + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot-dtb.img" + offset = 3M + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/board/roseapplepi/linux.config b/board/roseapplepi/linux.config new file mode 100644 index 000000000..89e7c8917 --- /dev/null +++ b/board/roseapplepi/linux.config @@ -0,0 +1,70 @@ +# CONFIG_SWAP is not set +# CONFIG_CROSS_MEMORY_ATTACH is not set +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +# CONFIG_CPU_ISOLATION is not set +# CONFIG_KALLSYMS is not set +# CONFIG_RSEQ is not set +CONFIG_EMBEDDED=y +# CONFIG_SLUB_DEBUG is not set +# CONFIG_COMPAT_BRK is not set +CONFIG_ARCH_ACTIONS=y +CONFIG_SMP=y +CONFIG_ARM_PSCI=y +CONFIG_HIGHMEM=y +CONFIG_VFP=y +CONFIG_NEON=y +# CONFIG_SUSPEND is not set +# CONFIG_STACKPROTECTOR is not set +# CONFIG_MQ_IOSCHED_KYBER is not set +# CONFIG_COREDUMP is not set +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +# CONFIG_INET_DIAG is not set +# CONFIG_IPV6 is not set +# CONFIG_WIRELESS is not set +# CONFIG_ETHTOOL_NETLINK is not set +CONFIG_NETDEVICES=y +CONFIG_OWL_EMAC=y +CONFIG_REALTEK_PHY=y +CONFIG_INPUT_EVDEV=y +CONFIG_INPUT_MISC=y +CONFIG_INPUT_ATC260X_ONKEY=y +# CONFIG_VT is not set +CONFIG_SERIAL_OWL=y +# CONFIG_HW_RANDOM is not set +CONFIG_I2C=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_OWL=y +CONFIG_PINCTRL=y +CONFIG_PINCTRL_OWL=y +CONFIG_PINCTRL_S500=y +CONFIG_POWER_RESET=y +CONFIG_POWER_RESET_ATC260X=y +CONFIG_MFD_ATC260X_I2C=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_ATC260X=y +# CONFIG_HID is not set +# CONFIG_USB_SUPPORT is not set +CONFIG_MMC=y +CONFIG_MMC_OWL=y +CONFIG_DMADEVICES=y +CONFIG_OWL_DMA=y +# CONFIG_VIRTIO_MENU is not set +# CONFIG_VHOST_MENU is not set +# CONFIG_IOMMU_SUPPORT is not set +CONFIG_EXT4_FS=y +CONFIG_VFAT_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +# CONFIG_MISC_FILESYSTEMS is not set +# CONFIG_NETWORK_FILESYSTEMS is not set +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ISO8859_1=y +# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set +# CONFIG_CRYPTO_HW is not set +# CONFIG_FTRACE is not set +# CONFIG_RUNTIME_TESTING_MENU is not set diff --git a/board/roseapplepi/patches/uboot/0001-compiler-.h-sync-include-linux-compiler-.h-with-Linu.patch b/board/roseapplepi/patches/uboot/0001-compiler-.h-sync-include-linux-compiler-.h-with-Linu.patch new file mode 100644 index 000000000..ae19a4903 --- /dev/null +++ b/board/roseapplepi/patches/uboot/0001-compiler-.h-sync-include-linux-compiler-.h-with-Linu.patch @@ -0,0 +1,809 @@ +From 9b2c282b348dfe966bbba967dc7a45ce817cce50 Mon Sep 17 00:00:00 2001 +From: Tom Rini +Date: Mon, 29 Feb 2016 11:34:15 -0500 +Subject: [PATCH] compiler*.h: sync include/linux/compiler*.h with Linux + 4.5-rc6 + +Copy these from Linux v4.5-rc6 tag. + +This is needed so that we can keep up with newer gcc versions. Note +that we don't have the uapi/ hierarchy from the kernel so continue to +use + +Signed-off-by: Tom Rini +Signed-off-by: Peter Korsgaard +--- + include/linux/compiler-gcc.h | 259 ++++++++++++++++++++++++++++++++--------- + include/linux/compiler-gcc3.h | 23 ---- + include/linux/compiler-gcc4.h | 88 -------------- + include/linux/compiler-gcc5.h | 65 ----------- + include/linux/compiler-intel.h | 5 + + include/linux/compiler.h | 178 ++++++++++++++++++++++++++-- + 6 files changed, 383 insertions(+), 235 deletions(-) + delete mode 100644 include/linux/compiler-gcc3.h + delete mode 100644 include/linux/compiler-gcc4.h + delete mode 100644 include/linux/compiler-gcc5.h + +diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h +index e057bd2a84..22ab246fee 100644 +--- a/include/linux/compiler-gcc.h ++++ b/include/linux/compiler-gcc.h +@@ -5,14 +5,28 @@ + /* + * Common definitions for all gcc versions go here. + */ +-#define GCC_VERSION (__GNUC__ * 10000 \ +- + __GNUC_MINOR__ * 100 \ +- + __GNUC_PATCHLEVEL__) +- ++#define GCC_VERSION (__GNUC__ * 10000 \ ++ + __GNUC_MINOR__ * 100 \ ++ + __GNUC_PATCHLEVEL__) + + /* Optimization barrier */ ++ + /* The "volatile" is due to gcc bugs */ + #define barrier() __asm__ __volatile__("": : :"memory") ++/* ++ * This version is i.e. to prevent dead stores elimination on @ptr ++ * where gcc and llvm may behave differently when otherwise using ++ * normal barrier(): while gcc behavior gets along with a normal ++ * barrier(), llvm needs an explicit input variable to be assumed ++ * clobbered. The issue is as follows: while the inline asm might ++ * access any memory it wants, the compiler could have fit all of ++ * @ptr into memory registers instead, and since @ptr never escaped ++ * from that, it proofed that the inline asm wasn't touching any of ++ * it. This version works well with both compilers, i.e. we're telling ++ * the compiler that the inline asm absolutely may see the contents ++ * of @ptr. See also: https://llvm.org/bugs/show_bug.cgi?id=15495 ++ */ ++#define barrier_data(ptr) __asm__ __volatile__("": :"r"(ptr) :"memory") + + /* + * This macro obfuscates arithmetic on a variable address so that gcc +@@ -32,58 +46,63 @@ + * the inline assembly constraint from =g to =r, in this particular + * case either is valid. + */ +-#define RELOC_HIDE(ptr, off) \ +- ({ unsigned long __ptr; \ +- __asm__ ("" : "=r"(__ptr) : "0"(ptr)); \ +- (typeof(ptr)) (__ptr + (off)); }) ++#define RELOC_HIDE(ptr, off) \ ++({ \ ++ unsigned long __ptr; \ ++ __asm__ ("" : "=r"(__ptr) : "0"(ptr)); \ ++ (typeof(ptr)) (__ptr + (off)); \ ++}) + + /* Make the optimizer believe the variable can be manipulated arbitrarily. */ +-#define OPTIMIZER_HIDE_VAR(var) __asm__ ("" : "=r" (var) : "0" (var)) ++#define OPTIMIZER_HIDE_VAR(var) \ ++ __asm__ ("" : "=r" (var) : "0" (var)) + + #ifdef __CHECKER__ +-#define __must_be_array(arr) 0 ++#define __must_be_array(a) 0 + #else + /* &a[0] degrades to a pointer: a different type from an array */ +-#define __must_be_array(a) BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0])) ++#define __must_be_array(a) BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0])) + #endif + + /* + * Force always-inline if the user requests it so via the .config, + * or if gcc is too old: + */ +-#if !defined(CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING) || \ ++#if !defined(CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING) || \ + !defined(CONFIG_OPTIMIZE_INLINING) || (__GNUC__ < 4) +-# define inline inline __attribute__((always_inline)) notrace +-# define __inline__ __inline__ __attribute__((always_inline)) notrace +-# define __inline __inline __attribute__((always_inline)) notrace ++#define inline inline __attribute__((always_inline)) notrace ++#define __inline__ __inline__ __attribute__((always_inline)) notrace ++#define __inline __inline __attribute__((always_inline)) notrace + #else + /* A lot of inline functions can cause havoc with function tracing */ +-# define inline inline notrace +-# define __inline__ __inline__ notrace +-# define __inline __inline notrace ++#define inline inline notrace ++#define __inline__ __inline__ notrace ++#define __inline __inline notrace + #endif + +-#define __deprecated __attribute__((deprecated)) +-#ifndef __packed +-#define __packed __attribute__((packed)) +-#endif +-#ifndef __weak +-#define __weak __attribute__((weak)) +-#endif ++#define __always_inline inline __attribute__((always_inline)) ++#define noinline __attribute__((noinline)) ++ ++#define __deprecated __attribute__((deprecated)) ++#define __packed __attribute__((packed)) ++#define __weak __attribute__((weak)) ++#define __alias(symbol) __attribute__((alias(#symbol))) + + /* +- * it doesn't make sense on ARM (currently the only user of __naked) to trace +- * naked functions because then mcount is called without stack and frame pointer +- * being set up and there is no chance to restore the lr register to the value +- * before mcount was called. ++ * it doesn't make sense on ARM (currently the only user of __naked) ++ * to trace naked functions because then mcount is called without ++ * stack and frame pointer being set up and there is no chance to ++ * restore the lr register to the value before mcount was called. ++ * ++ * The asm() bodies of naked functions often depend on standard calling ++ * conventions, therefore they must be noinline and noclone. + * +- * The asm() bodies of naked functions often depend on standard calling conventions, +- * therefore they must be noinline and noclone. GCC 4.[56] currently fail to enforce +- * this, so we must do so ourselves. See GCC PR44290. ++ * GCC 4.[56] currently fail to enforce this, so we must do so ourselves. ++ * See GCC PR44290. + */ +-#define __naked __attribute__((naked)) noinline __noclone notrace ++#define __naked __attribute__((naked)) noinline __noclone notrace + +-#define __noreturn __attribute__((noreturn)) ++#define __noreturn __attribute__((noreturn)) + + /* + * From the GCC manual: +@@ -95,34 +114,170 @@ + * would be. + * [...] + */ +-#ifndef __pure +-#define __pure __attribute__((pure)) ++#define __pure __attribute__((pure)) ++#define __aligned(x) __attribute__((aligned(x))) ++#define __printf(a, b) __attribute__((format(printf, a, b))) ++#define __scanf(a, b) __attribute__((format(scanf, a, b))) ++#define __attribute_const__ __attribute__((__const__)) ++#define __maybe_unused __attribute__((unused)) ++#define __always_unused __attribute__((unused)) ++ ++/* gcc version specific checks */ ++ ++#if GCC_VERSION < 30200 ++# error Sorry, your compiler is too old - please upgrade it. ++#endif ++ ++#if GCC_VERSION < 30300 ++# define __used __attribute__((__unused__)) ++#else ++# define __used __attribute__((__used__)) ++#endif ++ ++#ifdef CONFIG_GCOV_KERNEL ++# if GCC_VERSION < 30400 ++# error "GCOV profiling support for gcc versions below 3.4 not included" ++# endif /* __GNUC_MINOR__ */ ++#endif /* CONFIG_GCOV_KERNEL */ ++ ++#if GCC_VERSION >= 30400 ++#define __must_check __attribute__((warn_unused_result)) ++#endif ++ ++#if GCC_VERSION >= 40000 ++ ++/* GCC 4.1.[01] miscompiles __weak */ ++#ifdef __KERNEL__ ++# if GCC_VERSION >= 40100 && GCC_VERSION <= 40101 ++# error Your version of gcc miscompiles the __weak directive ++# endif ++#endif ++ ++#define __used __attribute__((__used__)) ++#define __compiler_offsetof(a, b) \ ++ __builtin_offsetof(a, b) ++ ++#if GCC_VERSION >= 40100 && GCC_VERSION < 40600 ++# define __compiletime_object_size(obj) __builtin_object_size(obj, 0) ++#endif ++ ++#if GCC_VERSION >= 40300 ++/* Mark functions as cold. gcc will assume any path leading to a call ++ * to them will be unlikely. This means a lot of manual unlikely()s ++ * are unnecessary now for any paths leading to the usual suspects ++ * like BUG(), printk(), panic() etc. [but let's keep them for now for ++ * older compilers] ++ * ++ * Early snapshots of gcc 4.3 don't support this and we can't detect this ++ * in the preprocessor, but we can live with this because they're unreleased. ++ * Maketime probing would be overkill here. ++ * ++ * gcc also has a __attribute__((__hot__)) to move hot functions into ++ * a special section, but I don't see any sense in this right now in ++ * the kernel context ++ */ ++#define __cold __attribute__((__cold__)) ++ ++#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__) ++ ++#ifndef __CHECKER__ ++# define __compiletime_warning(message) __attribute__((warning(message))) ++# define __compiletime_error(message) __attribute__((error(message))) ++#endif /* __CHECKER__ */ ++#endif /* GCC_VERSION >= 40300 */ ++ ++#if GCC_VERSION >= 40500 ++/* ++ * Mark a position in code as unreachable. This can be used to ++ * suppress control flow warnings after asm blocks that transfer ++ * control elsewhere. ++ * ++ * Early snapshots of gcc 4.5 don't support this and we can't detect ++ * this in the preprocessor, but we can live with this because they're ++ * unreleased. Really, we need to have autoconf for the kernel. ++ */ ++#define unreachable() __builtin_unreachable() ++ ++/* Mark a function definition as prohibited from being cloned. */ ++#define __noclone __attribute__((__noclone__)) ++ ++#endif /* GCC_VERSION >= 40500 */ ++ ++#if GCC_VERSION >= 40600 ++/* ++ * When used with Link Time Optimization, gcc can optimize away C functions or ++ * variables which are referenced only from assembly code. __visible tells the ++ * optimizer that something else uses this function or variable, thus preventing ++ * this. ++ */ ++#define __visible __attribute__((externally_visible)) + #endif +-#ifndef __aligned +-#define __aligned(x) __attribute__((aligned(x))) ++ ++ ++#if GCC_VERSION >= 40900 && !defined(__CHECKER__) ++/* ++ * __assume_aligned(n, k): Tell the optimizer that the returned ++ * pointer can be assumed to be k modulo n. The second argument is ++ * optional (default 0), so we use a variadic macro to make the ++ * shorthand. ++ * ++ * Beware: Do not apply this to functions which may return ++ * ERR_PTRs. Also, it is probably unwise to apply it to functions ++ * returning extra information in the low bits (but in that case the ++ * compiler should see some alignment anyway, when the return value is ++ * massaged by 'flags = ptr & 3; ptr &= ~3;'). ++ */ ++#define __assume_aligned(a, ...) __attribute__((__assume_aligned__(a, ## __VA_ARGS__))) + #endif +-#define __printf(a, b) __attribute__((format(printf, a, b))) +-#define __scanf(a, b) __attribute__((format(scanf, a, b))) +-#define noinline __attribute__((noinline)) +-#define __attribute_const__ __attribute__((__const__)) +-#define __maybe_unused __attribute__((unused)) +-#define __always_unused __attribute__((unused)) + +-#define __gcc_header(x) #x +-#define _gcc_header(x) __gcc_header(linux/compiler-gcc##x.h) +-#define gcc_header(x) _gcc_header(x) +-#include gcc_header(__GNUC__) ++/* ++ * GCC 'asm goto' miscompiles certain code sequences: ++ * ++ * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670 ++ * ++ * Work it around via a compiler barrier quirk suggested by Jakub Jelinek. ++ * ++ * (asm goto is automatically volatile - the naming reflects this.) ++ */ ++#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0) ++ ++#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP ++#if GCC_VERSION >= 40400 ++#define __HAVE_BUILTIN_BSWAP32__ ++#define __HAVE_BUILTIN_BSWAP64__ ++#endif ++#if GCC_VERSION >= 40800 || (defined(__powerpc__) && GCC_VERSION >= 40600) ++#define __HAVE_BUILTIN_BSWAP16__ ++#endif ++#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */ ++ ++#if GCC_VERSION >= 50000 ++#define KASAN_ABI_VERSION 4 ++#elif GCC_VERSION >= 40902 ++#define KASAN_ABI_VERSION 3 ++#endif ++ ++#if GCC_VERSION >= 40902 ++/* ++ * Tell the compiler that address safety instrumentation (KASAN) ++ * should not be applied to that function. ++ * Conflicts with inlining: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67368 ++ */ ++#define __no_sanitize_address __attribute__((no_sanitize_address)) ++#endif ++ ++#endif /* gcc version >= 40000 specific checks */ + + #if !defined(__noclone) + #define __noclone /* not needed */ + #endif + ++#if !defined(__no_sanitize_address) ++#define __no_sanitize_address ++#endif ++ + /* + * A trick to suppress uninitialized variable warning without generating any + * code + */ + #define uninitialized_var(x) x = x +- +-#ifndef __always_inline +-#define __always_inline inline __attribute__((always_inline)) +-#endif +diff --git a/include/linux/compiler-gcc3.h b/include/linux/compiler-gcc3.h +deleted file mode 100644 +index 7d89febe4d..0000000000 +--- a/include/linux/compiler-gcc3.h ++++ /dev/null +@@ -1,23 +0,0 @@ +-#ifndef __LINUX_COMPILER_H +-#error "Please don't include directly, include instead." +-#endif +- +-#if GCC_VERSION < 30200 +-# error Sorry, your compiler is too old - please upgrade it. +-#endif +- +-#if GCC_VERSION >= 30300 +-# define __used __attribute__((__used__)) +-#else +-# define __used __attribute__((__unused__)) +-#endif +- +-#if GCC_VERSION >= 30400 +-#define __must_check __attribute__((warn_unused_result)) +-#endif +- +-#ifdef CONFIG_GCOV_KERNEL +-# if GCC_VERSION < 30400 +-# error "GCOV profiling support for gcc versions below 3.4 not included" +-# endif /* __GNUC_MINOR__ */ +-#endif /* CONFIG_GCOV_KERNEL */ +diff --git a/include/linux/compiler-gcc4.h b/include/linux/compiler-gcc4.h +deleted file mode 100644 +index 2507fd2a1e..0000000000 +--- a/include/linux/compiler-gcc4.h ++++ /dev/null +@@ -1,88 +0,0 @@ +-#ifndef __LINUX_COMPILER_H +-#error "Please don't include directly, include instead." +-#endif +- +-/* GCC 4.1.[01] miscompiles __weak */ +-#ifdef __KERNEL__ +-# if GCC_VERSION >= 40100 && GCC_VERSION <= 40101 +-# error Your version of gcc miscompiles the __weak directive +-# endif +-#endif +- +-#define __used __attribute__((__used__)) +-#define __must_check __attribute__((warn_unused_result)) +-#define __compiler_offsetof(a,b) __builtin_offsetof(a,b) +- +-#if GCC_VERSION >= 40100 && GCC_VERSION < 40600 +-# define __compiletime_object_size(obj) __builtin_object_size(obj, 0) +-#endif +- +-#if GCC_VERSION >= 40300 +-/* Mark functions as cold. gcc will assume any path leading to a call +- to them will be unlikely. This means a lot of manual unlikely()s +- are unnecessary now for any paths leading to the usual suspects +- like BUG(), printk(), panic() etc. [but let's keep them for now for +- older compilers] +- +- Early snapshots of gcc 4.3 don't support this and we can't detect this +- in the preprocessor, but we can live with this because they're unreleased. +- Maketime probing would be overkill here. +- +- gcc also has a __attribute__((__hot__)) to move hot functions into +- a special section, but I don't see any sense in this right now in +- the kernel context */ +-#define __cold __attribute__((__cold__)) +- +-#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__) +- +-#ifndef __CHECKER__ +-# define __compiletime_warning(message) __attribute__((warning(message))) +-# define __compiletime_error(message) __attribute__((error(message))) +-#endif /* __CHECKER__ */ +-#endif /* GCC_VERSION >= 40300 */ +- +-#if GCC_VERSION >= 40500 +-/* +- * Mark a position in code as unreachable. This can be used to +- * suppress control flow warnings after asm blocks that transfer +- * control elsewhere. +- * +- * Early snapshots of gcc 4.5 don't support this and we can't detect +- * this in the preprocessor, but we can live with this because they're +- * unreleased. Really, we need to have autoconf for the kernel. +- */ +-#define unreachable() __builtin_unreachable() +- +-/* Mark a function definition as prohibited from being cloned. */ +-#define __noclone __attribute__((__noclone__)) +- +-#endif /* GCC_VERSION >= 40500 */ +- +-#if GCC_VERSION >= 40600 +-/* +- * Tell the optimizer that something else uses this function or variable. +- */ +-#define __visible __attribute__((externally_visible)) +-#endif +- +-/* +- * GCC 'asm goto' miscompiles certain code sequences: +- * +- * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670 +- * +- * Work it around via a compiler barrier quirk suggested by Jakub Jelinek. +- * Fixed in GCC 4.8.2 and later versions. +- * +- * (asm goto is automatically volatile - the naming reflects this.) +- */ +-#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0) +- +-#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP +-#if GCC_VERSION >= 40400 +-#define __HAVE_BUILTIN_BSWAP32__ +-#define __HAVE_BUILTIN_BSWAP64__ +-#endif +-#if GCC_VERSION >= 40800 || (defined(__powerpc__) && GCC_VERSION >= 40600) +-#define __HAVE_BUILTIN_BSWAP16__ +-#endif +-#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */ +diff --git a/include/linux/compiler-gcc5.h b/include/linux/compiler-gcc5.h +deleted file mode 100644 +index c8c5659525..0000000000 +--- a/include/linux/compiler-gcc5.h ++++ /dev/null +@@ -1,65 +0,0 @@ +-#ifndef __LINUX_COMPILER_H +-#error "Please don't include directly, include instead." +-#endif +- +-#define __used __attribute__((__used__)) +-#define __must_check __attribute__((warn_unused_result)) +-#define __compiler_offsetof(a, b) __builtin_offsetof(a, b) +- +-/* Mark functions as cold. gcc will assume any path leading to a call +- to them will be unlikely. This means a lot of manual unlikely()s +- are unnecessary now for any paths leading to the usual suspects +- like BUG(), printk(), panic() etc. [but let's keep them for now for +- older compilers] +- +- Early snapshots of gcc 4.3 don't support this and we can't detect this +- in the preprocessor, but we can live with this because they're unreleased. +- Maketime probing would be overkill here. +- +- gcc also has a __attribute__((__hot__)) to move hot functions into +- a special section, but I don't see any sense in this right now in +- the kernel context */ +-#define __cold __attribute__((__cold__)) +- +-#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__) +- +-#ifndef __CHECKER__ +-# define __compiletime_warning(message) __attribute__((warning(message))) +-# define __compiletime_error(message) __attribute__((error(message))) +-#endif /* __CHECKER__ */ +- +-/* +- * Mark a position in code as unreachable. This can be used to +- * suppress control flow warnings after asm blocks that transfer +- * control elsewhere. +- * +- * Early snapshots of gcc 4.5 don't support this and we can't detect +- * this in the preprocessor, but we can live with this because they're +- * unreleased. Really, we need to have autoconf for the kernel. +- */ +-#define unreachable() __builtin_unreachable() +- +-/* Mark a function definition as prohibited from being cloned. */ +-#define __noclone __attribute__((__noclone__)) +- +-/* +- * Tell the optimizer that something else uses this function or variable. +- */ +-#define __visible __attribute__((externally_visible)) +- +-/* +- * GCC 'asm goto' miscompiles certain code sequences: +- * +- * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670 +- * +- * Work it around via a compiler barrier quirk suggested by Jakub Jelinek. +- * +- * (asm goto is automatically volatile - the naming reflects this.) +- */ +-#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0) +- +-#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP +-#define __HAVE_BUILTIN_BSWAP32__ +-#define __HAVE_BUILTIN_BSWAP64__ +-#define __HAVE_BUILTIN_BSWAP16__ +-#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */ +diff --git a/include/linux/compiler-intel.h b/include/linux/compiler-intel.h +index ba147a1727..d4c71132d0 100644 +--- a/include/linux/compiler-intel.h ++++ b/include/linux/compiler-intel.h +@@ -13,9 +13,14 @@ + /* Intel ECC compiler doesn't support gcc specific asm stmts. + * It uses intrinsics to do the equivalent things. + */ ++#undef barrier ++#undef barrier_data + #undef RELOC_HIDE + #undef OPTIMIZER_HIDE_VAR + ++#define barrier() __memory_barrier() ++#define barrier_data(ptr) barrier() ++ + #define RELOC_HIDE(ptr, off) \ + ({ unsigned long __ptr; \ + __ptr = (unsigned long) (ptr); \ +diff --git a/include/linux/compiler.h b/include/linux/compiler.h +index d5ad7b1118..020ad16a04 100644 +--- a/include/linux/compiler.h ++++ b/include/linux/compiler.h +@@ -17,6 +17,7 @@ + # define __release(x) __context__(x,-1) + # define __cond_lock(x,c) ((c) ? ({ __acquire(x); 1; }) : 0) + # define __percpu __attribute__((noderef, address_space(3))) ++# define __pmem __attribute__((noderef, address_space(5))) + #ifdef CONFIG_SPARSE_RCU_POINTER + # define __rcu __attribute__((noderef, address_space(4))) + #else +@@ -42,6 +43,7 @@ extern void __chk_io_ptr(const volatile void __iomem *); + # define __cond_lock(x,c) (c) + # define __percpu + # define __rcu ++# define __pmem + #endif + + /* Indirect macros required for expanded argument pasting, eg. __LINE__. */ +@@ -54,7 +56,11 @@ extern void __chk_io_ptr(const volatile void __iomem *); + #include + #endif + ++#if defined(CC_USING_HOTPATCH) && !defined(__CHECKER__) ++#define notrace __attribute__((hotpatch(0,0))) ++#else + #define notrace __attribute__((no_instrument_function)) ++#endif + + /* Intel compiler defines __GNUC__. So we will overwrite implementations + * coming from above header files here +@@ -138,7 +144,7 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect); + */ + #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) + #define __trace_if(cond) \ +- if (__builtin_constant_p((cond)) ? !!(cond) : \ ++ if (__builtin_constant_p(!!(cond)) ? !!(cond) : \ + ({ \ + int ______r; \ + static struct ftrace_branch_data \ +@@ -165,6 +171,10 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect); + # define barrier() __memory_barrier() + #endif + ++#ifndef barrier_data ++# define barrier_data(ptr) barrier() ++#endif ++ + /* Unreachable code */ + #ifndef unreachable + # define unreachable() do { } while (1) +@@ -186,6 +196,126 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect); + # define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __LINE__) + #endif + ++#include ++ ++#define __READ_ONCE_SIZE \ ++({ \ ++ switch (size) { \ ++ case 1: *(__u8 *)res = *(volatile __u8 *)p; break; \ ++ case 2: *(__u16 *)res = *(volatile __u16 *)p; break; \ ++ case 4: *(__u32 *)res = *(volatile __u32 *)p; break; \ ++ case 8: *(__u64 *)res = *(volatile __u64 *)p; break; \ ++ default: \ ++ barrier(); \ ++ __builtin_memcpy((void *)res, (const void *)p, size); \ ++ barrier(); \ ++ } \ ++}) ++ ++static __always_inline ++void __read_once_size(const volatile void *p, void *res, int size) ++{ ++ __READ_ONCE_SIZE; ++} ++ ++#ifdef CONFIG_KASAN ++/* ++ * This function is not 'inline' because __no_sanitize_address confilcts ++ * with inlining. Attempt to inline it may cause a build failure. ++ * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67368 ++ * '__maybe_unused' allows us to avoid defined-but-not-used warnings. ++ */ ++static __no_sanitize_address __maybe_unused ++void __read_once_size_nocheck(const volatile void *p, void *res, int size) ++{ ++ __READ_ONCE_SIZE; ++} ++#else ++static __always_inline ++void __read_once_size_nocheck(const volatile void *p, void *res, int size) ++{ ++ __READ_ONCE_SIZE; ++} ++#endif ++ ++static __always_inline void __write_once_size(volatile void *p, void *res, int size) ++{ ++ switch (size) { ++ case 1: *(volatile __u8 *)p = *(__u8 *)res; break; ++ case 2: *(volatile __u16 *)p = *(__u16 *)res; break; ++ case 4: *(volatile __u32 *)p = *(__u32 *)res; break; ++ case 8: *(volatile __u64 *)p = *(__u64 *)res; break; ++ default: ++ barrier(); ++ __builtin_memcpy((void *)p, (const void *)res, size); ++ barrier(); ++ } ++} ++ ++/* ++ * Prevent the compiler from merging or refetching reads or writes. The ++ * compiler is also forbidden from reordering successive instances of ++ * READ_ONCE, WRITE_ONCE and ACCESS_ONCE (see below), but only when the ++ * compiler is aware of some particular ordering. One way to make the ++ * compiler aware of ordering is to put the two invocations of READ_ONCE, ++ * WRITE_ONCE or ACCESS_ONCE() in different C statements. ++ * ++ * In contrast to ACCESS_ONCE these two macros will also work on aggregate ++ * data types like structs or unions. If the size of the accessed data ++ * type exceeds the word size of the machine (e.g., 32 bits or 64 bits) ++ * READ_ONCE() and WRITE_ONCE() will fall back to memcpy and print a ++ * compile-time warning. ++ * ++ * Their two major use cases are: (1) Mediating communication between ++ * process-level code and irq/NMI handlers, all running on the same CPU, ++ * and (2) Ensuring that the compiler does not fold, spindle, or otherwise ++ * mutilate accesses that either do not require ordering or that interact ++ * with an explicit memory barrier or atomic instruction that provides the ++ * required ordering. ++ */ ++ ++#define __READ_ONCE(x, check) \ ++({ \ ++ union { typeof(x) __val; char __c[1]; } __u; \ ++ if (check) \ ++ __read_once_size(&(x), __u.__c, sizeof(x)); \ ++ else \ ++ __read_once_size_nocheck(&(x), __u.__c, sizeof(x)); \ ++ __u.__val; \ ++}) ++#define READ_ONCE(x) __READ_ONCE(x, 1) ++ ++/* ++ * Use READ_ONCE_NOCHECK() instead of READ_ONCE() if you need ++ * to hide memory access from KASAN. ++ */ ++#define READ_ONCE_NOCHECK(x) __READ_ONCE(x, 0) ++ ++#define WRITE_ONCE(x, val) \ ++({ \ ++ union { typeof(x) __val; char __c[1]; } __u = \ ++ { .__val = (__force typeof(x)) (val) }; \ ++ __write_once_size(&(x), __u.__c, sizeof(x)); \ ++ __u.__val; \ ++}) ++ ++/** ++ * smp_cond_acquire() - Spin wait for cond with ACQUIRE ordering ++ * @cond: boolean expression to wait for ++ * ++ * Equivalent to using smp_load_acquire() on the condition variable but employs ++ * the control dependency of the wait to reduce the barrier on many platforms. ++ * ++ * The control dependency provides a LOAD->STORE order, the additional RMB ++ * provides LOAD->LOAD order, together they provide LOAD->{LOAD,STORE} order, ++ * aka. ACQUIRE. ++ */ ++#define smp_cond_acquire(cond) do { \ ++ while (!(cond)) \ ++ cpu_relax(); \ ++ smp_rmb(); /* ctrl + rmb := acquire */ \ ++} while (0) ++ + #endif /* __KERNEL__ */ + + #endif /* __ASSEMBLY__ */ +@@ -304,6 +434,14 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect); + #define __visible + #endif + ++/* ++ * Assume alignment of return value. ++ */ ++#ifndef __assume_aligned ++#define __assume_aligned(a, ...) ++#endif ++ ++ + /* Are two types/vars the same type (ignoring qualifiers)? */ + #ifndef __same_type + # define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b)) +@@ -311,7 +449,7 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect); + + /* Is this type a native word size -- useful for atomic operations */ + #ifndef __native_word +-# define __native_word(t) (sizeof(t) == sizeof(int) || sizeof(t) == sizeof(long)) ++# define __native_word(t) (sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || sizeof(t) == sizeof(int) || sizeof(t) == sizeof(long)) + #endif + + /* Compile time object size, -1 for unknown */ +@@ -373,12 +511,38 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect); + * to make the compiler aware of ordering is to put the two invocations of + * ACCESS_ONCE() in different C statements. + * +- * This macro does absolutely -nothing- to prevent the CPU from reordering, +- * merging, or refetching absolutely anything at any time. Its main intended +- * use is to mediate communication between process-level code and irq/NMI +- * handlers, all running on the same CPU. ++ * ACCESS_ONCE will only work on scalar types. For union types, ACCESS_ONCE ++ * on a union member will work as long as the size of the member matches the ++ * size of the union and the size is smaller than word size. ++ * ++ * The major use cases of ACCESS_ONCE used to be (1) Mediating communication ++ * between process-level code and irq/NMI handlers, all running on the same CPU, ++ * and (2) Ensuring that the compiler does not fold, spindle, or otherwise ++ * mutilate accesses that either do not require ordering or that interact ++ * with an explicit memory barrier or atomic instruction that provides the ++ * required ordering. ++ * ++ * If possible use READ_ONCE()/WRITE_ONCE() instead. ++ */ ++#define __ACCESS_ONCE(x) ({ \ ++ __maybe_unused typeof(x) __var = (__force typeof(x)) 0; \ ++ (volatile typeof(x) *)&(x); }) ++#define ACCESS_ONCE(x) (*__ACCESS_ONCE(x)) ++ ++/** ++ * lockless_dereference() - safely load a pointer for later dereference ++ * @p: The pointer to load ++ * ++ * Similar to rcu_dereference(), but for situations where the pointed-to ++ * object's lifetime is managed by something other than RCU. That ++ * "something other" might be reference counting or simple immortality. + */ +-#define ACCESS_ONCE(x) (*(volatile typeof(x) *)&(x)) ++#define lockless_dereference(p) \ ++({ \ ++ typeof(p) _________p1 = READ_ONCE(p); \ ++ smp_read_barrier_depends(); /* Dependency order vs. p above. */ \ ++ (_________p1); \ ++}) + + /* Ignore/forbid kprobes attach on very low level functions marked by this attribute: */ + #ifdef CONFIG_KPROBES +-- +2.11.0 + diff --git a/board/roseapplepi/post-build.sh b/board/roseapplepi/post-build.sh new file mode 100755 index 000000000..ffdd19138 --- /dev/null +++ b/board/roseapplepi/post-build.sh @@ -0,0 +1,4 @@ +#!/bin/sh +BOARD_DIR="$(dirname $0)" + +cp $BOARD_DIR/uEnv.txt $BINARIES_DIR/uEnv.txt diff --git a/board/roseapplepi/uEnv.txt b/board/roseapplepi/uEnv.txt new file mode 100644 index 000000000..339eb8aa0 --- /dev/null +++ b/board/roseapplepi/uEnv.txt @@ -0,0 +1,3 @@ +# no ramdisk +ramdisk_addr_r=- +bootargs=console=ttyOWL2,115200 root=/dev/mmcblk0p2 rootwait clk_ignore_unused diff --git a/board/seeed/stm32mp157c-odyssey/genimage.cfg b/board/seeed/stm32mp157c-odyssey/genimage.cfg new file mode 100644 index 000000000..4c18a2eb0 --- /dev/null +++ b/board/seeed/stm32mp157c-odyssey/genimage.cfg @@ -0,0 +1,22 @@ +image sdcard.img { + hdimage { + partition-table-type = "gpt" + } + + partition fsbl1 { + image = "tf-a-stm32mp157c-odyssey.stm32" + } + + partition fsbl2 { + image = "tf-a-stm32mp157c-odyssey.stm32" + } + + partition ssbl { + image = "u-boot.stm32" + } + + partition rootfs { + image = "rootfs.ext4" + bootable = "yes" + } +} diff --git a/board/seeed/stm32mp157c-odyssey/linux.config b/board/seeed/stm32mp157c-odyssey/linux.config new file mode 100644 index 000000000..878a0c39f --- /dev/null +++ b/board/seeed/stm32mp157c-odyssey/linux.config @@ -0,0 +1,182 @@ +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +CONFIG_USELIB=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_PREEMPT=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=16 +CONFIG_BLK_DEV_INITRD=y +CONFIG_ARCH_STM32=y +CONFIG_ARM_THUMBEE=y +# CONFIG_CACHE_L2X0 is not set +CONFIG_ARM_ERRATA_430973=y +CONFIG_ARM_ERRATA_720789=y +CONFIG_ARM_ERRATA_754322=y +CONFIG_ARM_ERRATA_754327=y +CONFIG_ARM_ERRATA_764369=y +CONFIG_ARM_ERRATA_775420=y +CONFIG_ARM_ERRATA_798181=y +CONFIG_SMP=y +CONFIG_MCPM=y +CONFIG_HIGHMEM=y +CONFIG_FORCE_MAX_ZONEORDER=12 +CONFIG_SECCOMP=y +# CONFIG_ATAGS is not set +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_ARM_APPENDED_DTB=y +CONFIG_ARM_ATAG_DTB_COMPAT=y +CONFIG_VFP=y +CONFIG_NEON=y +CONFIG_KERNEL_MODE_NEON=y +CONFIG_ARM_CRYPTO=y +CONFIG_MODULES=y +CONFIG_MODULE_FORCE_LOAD=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_PARTITION_ADVANCED=y +CONFIG_CMDLINE_PARTITION=y +CONFIG_CMA=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_CAN=y +CONFIG_CAN_M_CAN=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_DMA_CMA=y +CONFIG_CMA_SIZE_MBYTES=128 +CONFIG_SIMPLE_PM_BUS=y +CONFIG_MTD=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_M25P80=y +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_STM32_FMC2=y +CONFIG_MTD_SPI_NOR=y +# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set +CONFIG_MTD_UBI=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=65536 +CONFIG_SRAM=y +CONFIG_EEPROM_AT24=y +CONFIG_NETDEVICES=y +CONFIG_VIRTIO_NET=y +CONFIG_KS8851=y +CONFIG_SMSC911X=y +CONFIG_STMMAC_ETH=y +CONFIG_DWMAC_DWC_QOS_ETH=y +CONFIG_MDIO_BITBANG=y +CONFIG_INPUT_JOYDEV=y +CONFIG_INPUT_EVDEV=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_EDT_FT5X06=y +CONFIG_INPUT_MISC=y +CONFIG_INPUT_STPMIC1_ONKEY=y +CONFIG_SERIAL_STM32=y +CONFIG_SERIAL_STM32_CONSOLE=y +CONFIG_SERIAL_DEV_BUS=y +CONFIG_HW_RANDOM=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MUX=y +CONFIG_I2C_STM32F7=y +CONFIG_SPI=y +CONFIG_SPI_STM32=y +CONFIG_SPI_STM32_QSPI=y +CONFIG_PINCTRL_SINGLE=y +CONFIG_PINCTRL_STMFX=y +CONFIG_POWER_RESET=y +CONFIG_POWER_RESET_GPIO=y +CONFIG_POWER_RESET_GPIO_RESTART=y +CONFIG_POWER_RESET_SYSCON=y +CONFIG_POWER_RESET_SYSCON_POWEROFF=y +CONFIG_SYSCON_REBOOT_MODE=y +CONFIG_WATCHDOG=y +CONFIG_STPMIC1_WATCHDOG=y +CONFIG_MFD_STM32_LPTIMER=y +CONFIG_MFD_STPMIC1=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_STM32_VREFBUF=y +CONFIG_REGULATOR_STM32_PWR=y +CONFIG_REGULATOR_STPMIC1=y +CONFIG_DRM=y +CONFIG_DRM_STM=y +CONFIG_DRM_STM_DSI=y +CONFIG_DRM_PANEL_ORISETECH_OTM8009A=y +CONFIG_DRM_SII902X=y +CONFIG_BACKLIGHT_LCD_SUPPORT=y +# CONFIG_LCD_CLASS_DEVICE is not set +CONFIG_BACKLIGHT_CLASS_DEVICE=y +# CONFIG_BACKLIGHT_GENERIC is not set +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_DYNAMIC_MINORS=y +CONFIG_USB=y +CONFIG_USB_OTG=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_XHCI_PLATFORM=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_HCD_PLATFORM=y +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_PLATFORM=y +CONFIG_USB_DWC2=y +CONFIG_USB_CHIPIDEA=y +CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_ISP1760=y +CONFIG_USB_HSIC_USB3503=y +CONFIG_USB_GPIO_VBUS=y +CONFIG_USB_ISP1301=y +CONFIG_USB_ULPI=y +CONFIG_TYPEC=y +CONFIG_TYPEC_STUSB=y +CONFIG_MMC=y +CONFIG_MMC_BLOCK_MINORS=16 +CONFIG_MMC_ARMMMCI=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_DW=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_PWM=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_STM32=y +CONFIG_DMADEVICES=y +CONFIG_STM32_DMA=y +CONFIG_STM32_DMAMUX=y +CONFIG_STM32_MDMA=y +CONFIG_HWSPINLOCK=y +CONFIG_HWSPINLOCK_STM32=y +CONFIG_STM32_IPCC=y +CONFIG_REMOTEPROC=y +CONFIG_STM32_RPROC=y +CONFIG_RPMSG_VIRTIO=y +CONFIG_RPMSG_TTY=y +CONFIG_IIO=y +CONFIG_IIO_SW_TRIGGER=y +CONFIG_SD_ADC_MODULATOR=y +CONFIG_STM32_ADC_CORE=y +CONFIG_STM32_ADC=y +CONFIG_STM32_ADC_TEMP=y +CONFIG_STM32_DFSDM_ADC=y +CONFIG_STM32_LPTIMER_CNT=y +CONFIG_STM32_DAC=y +CONFIG_IIO_HRTIMER_TRIGGER=y +CONFIG_IIO_STM32_LPTIMER_TRIGGER=y +CONFIG_PWM=y +CONFIG_PWM_STM32=y +CONFIG_PWM_STM32_LP=y +CONFIG_PHY_STM32_USBPHYC=y +CONFIG_NVMEM_STM32_ROMEM=y +CONFIG_EXT4_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_PRINTK_TIME=y diff --git a/board/seeed/stm32mp157c-odyssey/overlay/boot/extlinux/extlinux.conf b/board/seeed/stm32mp157c-odyssey/overlay/boot/extlinux/extlinux.conf new file mode 100644 index 000000000..b5795415e --- /dev/null +++ b/board/seeed/stm32mp157c-odyssey/overlay/boot/extlinux/extlinux.conf @@ -0,0 +1,4 @@ +label stm32mp157c-odyssey-buildroot + kernel /boot/zImage + devicetree /boot/stm32mp157c-odyssey.dtb + append root=/dev/mmcblk0p4 rootwait diff --git a/board/seeed/stm32mp157c-odyssey/patches/linux/0001-ARM-dts-stm32-fix-stm32mp157c-odyssey-card-detect.patch b/board/seeed/stm32mp157c-odyssey/patches/linux/0001-ARM-dts-stm32-fix-stm32mp157c-odyssey-card-detect.patch new file mode 100644 index 000000000..ab2dc5dea --- /dev/null +++ b/board/seeed/stm32mp157c-odyssey/patches/linux/0001-ARM-dts-stm32-fix-stm32mp157c-odyssey-card-detect.patch @@ -0,0 +1,36 @@ +From 0171b07373cc8c2815ca5fa79a7308fdefa54ca4 Mon Sep 17 00:00:00 2001 +From: Grzegorz Szymaszek +Date: Sat, 10 Apr 2021 21:35:21 +0200 +Subject: [PATCH] ARM: dts: stm32: fix stm32mp157c-odyssey card detect pin +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The microSD card detect pin is physically connected to the MPU pin PI3. +The Device Tree configuration of the card detect pin was wrong—it was +set to pin PB7 instead. If such configuration was used, the kernel would +hang on “Waiting for root device†when booting from a microSD card. + +Signed-off-by: Grzegorz Szymaszek +Signed-off-by: Alexandre Torgue +Backported from: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/arch/arm/boot/dts/stm32mp157c-odyssey.dts?id=0171b07373cc8c2815ca5fa79a7308fdefa54ca4 +--- + arch/arm/boot/dts/stm32mp157c-odyssey.dts | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/arm/boot/dts/stm32mp157c-odyssey.dts b/arch/arm/boot/dts/stm32mp157c-odyssey.dts +index a7ffec8f1516..be1dd5e9e744 100644 +--- a/arch/arm/boot/dts/stm32mp157c-odyssey.dts ++++ b/arch/arm/boot/dts/stm32mp157c-odyssey.dts +@@ -64,7 +64,7 @@ &sdmmc1 { + pinctrl-0 = <&sdmmc1_b4_pins_a>; + pinctrl-1 = <&sdmmc1_b4_od_pins_a>; + pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>; +- cd-gpios = <&gpiob 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; ++ cd-gpios = <&gpioi 3 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; + disable-wp; + st,neg-edge; + bus-width = <4>; +-- +2.30.2 + diff --git a/board/seeed/stm32mp157c-odyssey/readme.txt b/board/seeed/stm32mp157c-odyssey/readme.txt new file mode 100644 index 000000000..093286739 --- /dev/null +++ b/board/seeed/stm32mp157c-odyssey/readme.txt @@ -0,0 +1,38 @@ +STM32MP157C-Odyssey + +Intro +===== + +This configuration supports the STM32MP157C-Odyssey platform: + + https://wiki.seeedstudio.com/ODYSSEY-STM32MP157C/ + +How to build +============ + + $ make stm32mp157c_odyssey_defconfig + $ make + +How to write the microSD card +============================= + +Once the build process is finished you will have an image called +"sdcard.img" in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an microSD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + +Boot the board +============== + + (1) Insert the microSD card in connector J21. + + (2) Connect to the UART connector J24 (located next the the DC jack + J24 and the battery connector J20) and run your serial communication + program on /dev/ttyACM0. + + (3) Plug a USB-C cable in J6 or a center-positive 12V jack into J17 + to power-up the board. + + (4) The system will start, with the console on UART. diff --git a/board/sheevaplug/patches/uboot/0001-Remove-redundant-YYLOC-global-declaration.patch b/board/sheevaplug/patches/uboot/0001-Remove-redundant-YYLOC-global-declaration.patch new file mode 100644 index 000000000..c9d5d71ca --- /dev/null +++ b/board/sheevaplug/patches/uboot/0001-Remove-redundant-YYLOC-global-declaration.patch @@ -0,0 +1,28 @@ +From 018921ee79d3f30893614b3b2b63b588d8544f73 Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Thu, 30 Jan 2020 09:37:15 +0000 +Subject: [PATCH] Remove redundant YYLOC global declaration + +Same as the upstream fix for building dtc with gcc 10. + +Signed-off-by: Peter Robinson +Signed-off-by: Peter Korsgaard +--- + scripts/dtc/dtc-lexer.l | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/scripts/dtc/dtc-lexer.l b/scripts/dtc/dtc-lexer.l +index fd825ebba6..24af549977 100644 +--- a/scripts/dtc/dtc-lexer.l ++++ b/scripts/dtc/dtc-lexer.l +@@ -38,7 +38,6 @@ LINECOMMENT "//".*\n + #include "srcpos.h" + #include "dtc-parser.tab.h" + +-YYLTYPE yylloc; + extern bool treesource_error; + + /* CAUTION: this will stop working if we ever use yyless() or yyunput() */ +-- +2.20.1 + diff --git a/board/sheevaplug/readme.txt b/board/sheevaplug/readme.txt new file mode 100644 index 000000000..e0ed2684c --- /dev/null +++ b/board/sheevaplug/readme.txt @@ -0,0 +1,36 @@ +Sheevaplug +========== + +Once the build process is finished you will have the following files +in the output/images/ directory: + +- u-boot.kwb +- uImage.kirkwood-sheevaplug +- rootfs.jffs2 + +Copy these to a TFTP server, connect ethernet and mini-USB cable and +power up the board. Stop the board in U-Boot and update U-Boot by +executing: + +setenv serverip +setenv bootfile +bootp +nand erase 0x0 0x80000 +nand write $fileaddr 0x0 0x80000 +reset + +Once the new U-Boot boots up, stop it again and update Linux kernel +and rootfs by: + +setenv serverip +setenv bootfile +bootp +nand erase.part kernel +nand write $fileaddr kernel 0x400000 + +setenv bootfile +bootp +nand erase.part rootfs +nand write $fileaddr rootfs $filesize + +reset diff --git a/board/sifive/hifive-unleashed/boot.cmd b/board/sifive/hifive-unleashed/boot.cmd new file mode 100644 index 000000000..7b5137d22 --- /dev/null +++ b/board/sifive/hifive-unleashed/boot.cmd @@ -0,0 +1,4 @@ +setenv bootargs earlycon=sbi root=/dev/mmcblk0p3 rootwait +load mmc 0:3 ${kernel_addr_r} boot/Image +load mmc 0:3 ${fdt_addr_r} boot/hifive-unleashed-a00.dtb +booti ${kernel_addr_r} - ${fdt_addr_r} diff --git a/board/sifive/hifive-unleashed/genimage_sdcard.cfg b/board/sifive/hifive-unleashed/genimage_sdcard.cfg new file mode 100644 index 000000000..079ac5ed2 --- /dev/null +++ b/board/sifive/hifive-unleashed/genimage_sdcard.cfg @@ -0,0 +1,23 @@ +image sdcard.img { + hdimage { + partition-table-type = "gpt" + } + + partition u-boot-spl { + image = "u-boot-spl.bin" + offset = 17K + partition-type-uuid = 5b193300-fc78-40cd-8002-e86c45580b47 + } + + partition u-boot { + image = "u-boot.itb" + offset = 1041K + partition-type-uuid = 2e54b353-1271-4842-806f-e436d6af6985 + } + + partition rootfs { + image = "rootfs.ext4" + partition-type-uuid = 0fc63daf-8483-4772-8e79-3d69d8477de4 + bootable = true + } +} diff --git a/board/sifive/hifive-unleashed/genimage_spi-nor.cfg b/board/sifive/hifive-unleashed/genimage_spi-nor.cfg new file mode 100644 index 000000000..14b7bb1e1 --- /dev/null +++ b/board/sifive/hifive-unleashed/genimage_spi-nor.cfg @@ -0,0 +1,19 @@ +image spi-nor.img { + size = 32M + + hdimage { + partition-table-type = "gpt" + } + + partition u-boot-spl { + image = "u-boot-spl.bin" + offset = 20K + partition-type-uuid = 5b193300-fc78-40cd-8002-e86c45580b47 + } + + partition u-boot { + image = "u-boot.itb" + offset = 1044K + partition-type-uuid = 2e54b353-1271-4842-806f-e436d6af6985 + } +} diff --git a/board/sifive/hifive-unleashed/linux.config.fragment b/board/sifive/hifive-unleashed/linux.config.fragment new file mode 100644 index 000000000..385a961dd --- /dev/null +++ b/board/sifive/hifive-unleashed/linux.config.fragment @@ -0,0 +1,10 @@ +CONFIG_HZ_100=y +CONFIG_GPIOLIB=y +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_SIFIVE=y +CONFIG_POWER_RESET_GPIO_RESTART=y +CONFIG_MTD=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_SPI_NOR=y +CONFIG_PWM=y +CONFIG_PWM_SIFIVE=y diff --git a/board/sifive/hifive-unleashed/post-build.sh b/board/sifive/hifive-unleashed/post-build.sh new file mode 100755 index 000000000..b41812065 --- /dev/null +++ b/board/sifive/hifive-unleashed/post-build.sh @@ -0,0 +1,2 @@ +#!/bin/sh +cp $BINARIES_DIR/boot.scr $TARGET_DIR/boot/boot.scr diff --git a/board/sifive/hifive-unleashed/readme.txt b/board/sifive/hifive-unleashed/readme.txt new file mode 100644 index 000000000..3263913e9 --- /dev/null +++ b/board/sifive/hifive-unleashed/readme.txt @@ -0,0 +1,115 @@ +SiFive HiFive Unleashed +======================= + +This file describes how to use the pre-defined Buildroot +configuration for the SiFive HiFive Unleashed board. + +Further information about the HiFive Unleashed board can be found +at https://www.sifive.com/boards/hifive-unleashed + +Building +======== + +Configure Buildroot using the default board configuration: + + $ make hifive_unleashed_defconfig + +Customise the build as necessary: + + $ make menuconfig + +Start the build: + + $ make + +Result of the build +=================== + +Once the build has finished you will have the following files: + + output/images/ + +-- boot.scr + +-- fw_dynamic.bin + +-- fw_dynamic.elf + +-- fw_jump.bin + +-- fw_jump.elf + +-- hifive-unleashed-a00.dtb + +-- Image + +-- rootfs.cpio + +-- rootfs.ext2 + +-- rootfs.ext4 + +-- rootfs.tar + +-- sdcard.img + +-- u-boot.bin + +-- u-boot.itb + +-- u-boot-spl.bin + + +Creating a bootable SD card with genimage +========================================= + +By default Buildroot builds a SD card image for you. All you need to do +is dd the image to your SD card, which can be done with the following +command on your development host: + + $ sudo dd if=output/images/sdcard.img of=/dev/sdb bs=4096 + +The above example command assumes the SD card is accessed via a USB card +reader and shows up as /dev/sdb on the host. Adjust it accordingly per +your actual setup. + +Booting the SD card on the board +================================ + +Make sure that the all DIP switches are set to the off position for +default boot mode (MSEL mode = 1011), insert the SD card and power +up the board. + +Connect the USB cable and open minicom (/dev/ttyUSB1, 115200, 8N1). + +See the 'SiFive HiFive Unleashed Getting Started Guide' for +more details (https://www.sifive.com/documentation). + +You will get a warning reported by fdisk when you examine the SD card. +This is because the genimage_sdcard.cfg file doesn't specify the SD card +size (as people will naturally have different sized cards), so the +secondary GPT header is placed after the rootfs rather than at the end +of the disk where it is expected to be. + +You will see something like this at boot time: + +[ 0.989458] mmc0: host does not support reading read-only switch, assuming write-enable +[ 0.996772] mmc0: new SDHC card on SPI +[ 1.001634] mmcblk0: mmc0:0000 SD8GB 7.28 GiB +[ 1.038079] GPT:Primary header thinks Alt. header is not at the end of the disk. +[ 1.044759] GPT:52389 != 15264767 +[ 1.048051] GPT:Alternate GPT header not at the end of the disk. +[ 1.054015] GPT:52389 != 15264767 +[ 1.057323] GPT: Use GNU Parted to correct GPT errors. +[ 1.062479] mmcblk0: p1 p2 p3 + + +Creating a bootable SPI flash with genimage +=========================================== + +Adjust Buildroot configuration by: + + $ make menuconfig + +Change "System configuration" -> "Extra arguments passed to custom scripts" +value to "-c board/sifive/hifive-unleashed/genimage_spi-nor.cfg", save the +configuration and build. This creates a output/images/spi-nor.img that can +be programmed to the on-board SPI flash. + +Boot the board from the SD card prepared above, stop the U-Boot auto boot, +and type the following commands to program the whole SPI flash: + + => tftp 82000000 output/images/spi-nor.img + => sf probe + => sf update 82000000 0 2000000 + +Booting the SPI flash on the board +================================== + +Make sure that the all DIP switches are set to the off position for +default boot mode (MSEL mode = 0110) to boot from SPI flash. diff --git a/board/sinovoip/m1-plus/boot.cmd b/board/sinovoip/m1-plus/boot.cmd new file mode 100644 index 000000000..482999647 --- /dev/null +++ b/board/sinovoip/m1-plus/boot.cmd @@ -0,0 +1,5 @@ +setenv fdt_high ffffffff +setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait +fatload mmc 0 $kernel_addr_r zImage +fatload mmc 0 $fdt_addr_r sun7i-a20-bananapi-m1-plus.dtb +bootz $kernel_addr_r - $fdt_addr_r diff --git a/board/sinovoip/m1-plus/genimage.cfg b/board/sinovoip/m1-plus/genimage.cfg new file mode 100644 index 000000000..18a549e63 --- /dev/null +++ b/board/sinovoip/m1-plus/genimage.cfg @@ -0,0 +1,38 @@ +# Minimal SD card image for the Banana Pi M1+ +# Based on the Banana Pro genimage.cfg + +image boot.vfat { + vfat { + files = { + "zImage", + "sun7i-a20-bananapi-m1-plus.dtb", + "boot.scr" + } + } + + size = 10M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot-sunxi-with-spl.bin" + offset = 8K + size = 1016K # 1MB - 8KB + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/board/sinovoip/m1-plus/linux-wifi.fragment b/board/sinovoip/m1-plus/linux-wifi.fragment new file mode 100644 index 000000000..5576d738a --- /dev/null +++ b/board/sinovoip/m1-plus/linux-wifi.fragment @@ -0,0 +1,10 @@ +# Networking support +CONFIG_WIRELESS=y +CONFIG_CFG80211=y +CONFIG_CFG80211_WEXT=y +CONFIG_RFKILL=y + +# Network device support +CONFIG_WLAN=y +CONFIG_WLAN_VENDOR_BROADCOM=y +CONFIG_BRCMFMAC=m diff --git a/board/sinovoip/m1-plus/patches/linux/0001-ARM-dts-sun7i-bananapi-m1-plus-Disable-OOB-IRQ-for-b.patch b/board/sinovoip/m1-plus/patches/linux/0001-ARM-dts-sun7i-bananapi-m1-plus-Disable-OOB-IRQ-for-b.patch new file mode 100644 index 000000000..b01b6b282 --- /dev/null +++ b/board/sinovoip/m1-plus/patches/linux/0001-ARM-dts-sun7i-bananapi-m1-plus-Disable-OOB-IRQ-for-b.patch @@ -0,0 +1,39 @@ +From 58bae4096a7bf8d5d3bfbddb82cb37dd0561c938 Mon Sep 17 00:00:00 2001 +From: Filip Skoneczny +Date: Sun, 10 Jan 2021 19:07:14 +0100 +Subject: [PATCH] ARM: dts: sun7i: bananapi-m1-plus: Disable OOB IRQ for brcm + wifi module + + Based on 23bc805. + BugLink: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=908438 + +Signed-off-by: Filip Skoneczny +--- + arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts | 11 ++++++++--- + 1 file changed, 8 insertions(+), 3 deletions(-) + +diff --git a/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts b/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts +index 32d5d45a35c0..97f9987f51d7 100644 +--- a/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts ++++ b/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts +@@ -193,9 +193,14 @@ &mmc3 { + brcmf: wifi@1 { + reg = <1>; + compatible = "brcm,bcm4329-fmac"; +- interrupt-parent = <&pio>; +- interrupts = <7 15 IRQ_TYPE_LEVEL_LOW>; +- interrupt-names = "host-wake"; ++ /* ++ * OOB interrupt support is broken ATM, drv probe failing with: ++ * ieee80211 phy0: brcmf_attach: dongle is not responding: err=-110 ++ * ++ * interrupt-parent = <&pio>; ++ * interrupts = <7 15 IRQ_TYPE_LEVEL_LOW>; ++ * interrupt-names = "host-wake"; ++ */ + }; + }; + +-- +2.25.1 + diff --git a/board/sinovoip/m1-plus/post-build.sh b/board/sinovoip/m1-plus/post-build.sh new file mode 100755 index 000000000..4ee6fa3bc --- /dev/null +++ b/board/sinovoip/m1-plus/post-build.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +# Remove all but the brcmfmac43362 firmware files +find $TARGET_DIR/lib/firmware/brcm -type f -not -name "brcmfmac43362*" -delete diff --git a/board/sinovoip/m1-plus/readme.txt b/board/sinovoip/m1-plus/readme.txt new file mode 100644 index 000000000..ae647c21a --- /dev/null +++ b/board/sinovoip/m1-plus/readme.txt @@ -0,0 +1,64 @@ +Banana Pi M1+ + +Intro +===== + +This default configuration will allow you to start experimenting with the +Buildroot environment for the Banana Pi M1+. With the current configuration +it will bring-up the board, and allow access through the serial console. + +How to build it +=============== + +Configure Buildroot: + + $ make bananapi_m1_plus_defconfig + +Compile everything and build the SD card image: + + $ make + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ dd if=output/images/sdcard.img of=/dev/sdX + +Notes: + - replace 'sdX' with the actual device with your micro SD card + - you may need to be root to do that (use 'sudo') + +Insert the micro SD card in your Banana Pi M1+ and power it up. The console +is on the debug TTL UART, 115200 8N1. + +Ethernet +========== + + # udhcpc -i eth0 + +Wifi +========== + + # wpa_passphrase YOUR_SSID >> /etc/wpa_supplicant.conf + (enter the wifi password and press enter) + # wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf -B + # udhcpc -i wlan0 + +Note: + - replace 'YOUR_SSID' with the actual SSID from your access point + +Audio +========== + +For this example you need package alsa-utils. + +Connect a headphone to the 3.5mm jack (TRRS). Note, that the Banana Pi M1+ +has an on-board microphone, too. + + # amixer cset name='Power Amplifier DAC Playback Switch' on + # amixer cset name='Power Amplifier Mute Switch' on + # amixer cset name='Power Amplifier Volume' 42 diff --git a/board/sinovoip/m1-plus/rootfs_overlay/lib/firmware/brcm/brcmfmac43362-sdio.sinovoip,bpi-m1-plus.txt b/board/sinovoip/m1-plus/rootfs_overlay/lib/firmware/brcm/brcmfmac43362-sdio.sinovoip,bpi-m1-plus.txt new file mode 120000 index 000000000..93947975e --- /dev/null +++ b/board/sinovoip/m1-plus/rootfs_overlay/lib/firmware/brcm/brcmfmac43362-sdio.sinovoip,bpi-m1-plus.txt @@ -0,0 +1 @@ +brcmfmac43362-sdio.txt \ No newline at end of file diff --git a/board/sinovoip/m1-plus/rootfs_overlay/lib/firmware/brcm/brcmfmac43362-sdio.txt b/board/sinovoip/m1-plus/rootfs_overlay/lib/firmware/brcm/brcmfmac43362-sdio.txt new file mode 100644 index 000000000..14a554fdd --- /dev/null +++ b/board/sinovoip/m1-plus/rootfs_overlay/lib/firmware/brcm/brcmfmac43362-sdio.txt @@ -0,0 +1,56 @@ +#AP6210_NVRAM_V1.2_03192013 +manfid=0x2d0 +prodid=0x492 +vendid=0x14e4 +devid=0x4343 +boardtype=0x0598 + +# Board Revision is P307, same nvram file can be used for P304, P305, P306 and P307 as the tssi pa params used are same +#Please force the automatic RX PER data to the respective board directory if not using P307 board, for e.g. for P305 boards force the data into the following directory /projects/BCM43362/a1_labdata/boardtests/results/sdg_rev0305 +boardrev=0x1307 +boardnum=777 +xtalfreq=26000 +boardflags=0x80201 +boardflags2=0x80 +sromrev=3 +wl0id=0x431b +macaddr=00:90:4c:07:71:12 +aa2g=1 +ag0=2 +maxp2ga0=74 +cck2gpo=0x2222 +ofdm2gpo=0x44444444 +mcs2gpo0=0x6666 +mcs2gpo1=0x6666 +pa0maxpwr=56 + +#P207 PA params +#pa0b0=5447 +#pa0b1=-658 +#pa0b2=-175 + +#Same PA params for P304,P305, P306, P307 + +pa0b0=5447 +pa0b1=-607 +pa0b2=-160 +pa0itssit=62 +pa1itssit=62 + + +cckPwrOffset=5 +ccode=0 +rssismf2g=0xa +rssismc2g=0x3 +rssisav2g=0x7 +triso2g=0 +noise_cal_enable_2g=0 +noise_cal_po_2g=0 +swctrlmap_2g=0x04040404,0x02020202,0x02020202,0x010101,0x1ff +temp_add=29767 +temp_mult=425 + +btc_flags=0x6 +btc_params0=5000 +btc_params1=1000 +btc_params6=63 diff --git a/board/sinovoip/m2-plus/boot.cmd b/board/sinovoip/m2-plus/boot.cmd new file mode 100644 index 000000000..d22464a1c --- /dev/null +++ b/board/sinovoip/m2-plus/boot.cmd @@ -0,0 +1,7 @@ +setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait + +mmc dev 0 +fatload mmc 0 $kernel_addr_r zImage +fatload mmc 0 $fdt_addr_r sun8i-h3-bananapi-m2-plus.dtb + +bootz $kernel_addr_r - $fdt_addr_r diff --git a/board/sinovoip/m2-plus/genimage.cfg b/board/sinovoip/m2-plus/genimage.cfg new file mode 100644 index 000000000..9311e026d --- /dev/null +++ b/board/sinovoip/m2-plus/genimage.cfg @@ -0,0 +1,34 @@ +image boot.vfat { + vfat { + files = { + "zImage", + "sun8i-h3-bananapi-m2-plus.dtb", + "boot.scr" + } + } + + size = 64M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot-sunxi-with-spl.bin" + offset = 8K + size = 1016K # 1MB - 8KB + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/sipeed/maix-bit/linux-cpio.config b/board/sipeed/maix-bit/linux-cpio.config new file mode 100644 index 000000000..de2f8fd07 --- /dev/null +++ b/board/sipeed/maix-bit/linux-cpio.config @@ -0,0 +1,2 @@ +CONFIG_SOC_CANAAN_K210_DTB_BUILTIN=y +CONFIG_SOC_CANAAN_K210_DTB_SOURCE="sipeed_maix_bit" diff --git a/board/sipeed/maix-bit/readme.txt b/board/sipeed/maix-bit/readme.txt new file mode 100644 index 000000000..7cc53bca6 --- /dev/null +++ b/board/sipeed/maix-bit/readme.txt @@ -0,0 +1,316 @@ +Sipeed MAIX-Bit Board +===================== + +The Sipeed MAXI-Bit board is a dual-core RISC-V 64-bits board based on the +Canaan Kendryte K210 SoC. + +Prerequisite +------------ + +In order to use the kflash utility to program this board, the user must have +access to the board USB serial device file. The simplest way to do this is to +add your user to the same group as this device file. Assume the device file is +/dev/ttyUSB0, first identify the device group name. In most cases, it is +either "dialout" or "uucp". Also verify that read-write access is enabled for +the group: + +``` +$ ls -l /dev/ttyUSB0 +crw-rw---- 1 root dialout 188, 0 May 26 13:48 /dev/ttyUSB0 +``` + +Then add yourself to that group (dialout in this example): + +``` +$ sudo usermod -a -G dialout $(whoami) +``` + +To enable the above, it is sometimes necessary to logout and login again. + +Buildroot Configuration +----------------------- + +Two buildroot configuration files are provided: + +(1) Direct Linux Kernel Boot + +This is defined by the sipeed_maix_bit_defconfig configuration. This +configuration allows building a bootable kernel image with a built-in initramfs +root file system (the board SD card is not used). The built kernel image can be +flashed directly to the board ROM for direct booting. No boot loader is +required. + +(2) U-Boot SD-Card Boot + +The sipeed_maix_bit_sdcard_defconfig configuration allows building a kernel +image with the root file system on the board SD card. U-Boot is used as the +boot loader. + +Both configuration files will also compile and install the kflash and +pyserial-miniterm host utilities to program bootable image files to the board +and open a serial terminal console. + +Direct Linux Kernel Boot +------------------------- + +Using the sipeed_maix_bit_defconfig configuration, the bootable kernel binary +image is built as follows. + +``` +$ make sipeed_maix_bit_defconfig +$ make +``` + +The bootable binary image is the output/images/loader.bin file. This image file +can be written to the board boot ROM using the kflash utility. + +``` +$ output/host/bin/kflash -b 1500000 -p /dev/ttyUSB0 -t output/images/loader.bin +``` + +Once the kernel image file is fully programmed, a terminal console is open and +the board can be rebooted by pressing the reset button on the board (if it does +not reboot automatically). + +The output will be similar to the following. + +``` +[ 0.000000] Linux version 5.18.0 (foo@bar.com) (riscv64-buildroot-linux-uclibc-gcc.br_real (Buildroot 2022.02-560-g6a2b542a09-dirty) 10.3.0, GNU ld (GNU Binutils) 2.32) #2 SMP Thu Apr 21 14:30:02 JST 2022 +[ 0.000000] Machine model: SiPeed MAIX BiT +[ 0.000000] earlycon: sifive0 at MMIO 0x0000000038000000 (options '115200n8') +[ 0.000000] printk: bootconsole [sifive0] enabled +[ 0.000000] Zone ranges: +[ 0.000000] DMA32 [mem 0x0000000080000000-0x00000000807fffff] +[ 0.000000] Normal empty +[ 0.000000] Movable zone start for each node +[ 0.000000] Early memory node ranges +[ 0.000000] node 0: [mem 0x0000000080000000-0x00000000807fffff] +[ 0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000807fffff] +[ 0.000000] riscv: ISA extensions acdfim +[ 0.000000] riscv: ELF capabilities acdfim +[ 0.000000] percpu: max_distance=0x16000 too large for vmalloc space 0x0 +[ 0.000000] percpu: Embedded 11 pages/cpu s15264 r0 d29792 u45056 +[ 0.000000] percpu: wasting 10 pages per chunk +[ 0.000000] Built 1 zonelists, mobility grouping off. Total pages: 2020 +[ 0.000000] Kernel command line: earlycon console=ttySIF0 +[ 0.000000] Dentry cache hash table entries: 1024 (order: 1, 8192 bytes, linear) +[ 0.000000] Inode-cache hash table entries: 512 (order: 0, 4096 bytes, linear) +[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off +[ 0.000000] Memory: 5996K/8192K available (964K kernel code, 137K rwdata, 205K rodata, 530K init, 66K bss, 2196K reserved, 0K cma-reserved) +[ 0.000000] rcu: Hierarchical RCU implementation. +[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies. +[ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 +[ 0.000000] riscv-intc: 64 local interrupts mapped +[ 0.000000] plic: interrupt-controller@c000000: mapped 65 interrupts with 2 handlers for 4 contexts. +[ 0.000000] k210-clk: clock-controller: CPU running at 390 MHz +[ 0.000000] clint: timer@2000000: timer running at 7800000 Hz +[ 0.000000] clocksource: clint_clocksource: mask: 0xffffffffffffffff max_cycles: 0x3990be68b, max_idle_ns: 881590404272 ns +[ 0.000001] sched_clock: 64 bits at 7MHz, resolution 128ns, wraps every 4398046511054ns +[ 0.008188] Calibrating delay loop (skipped), value calculated using timer frequency.. 15.60 BogoMIPS (lpj=31200) +[ 0.018250] pid_max: default: 4096 minimum: 301 +[ 0.022860] Mount-cache hash table entries: 512 (order: 0, 4096 bytes, linear) +[ 0.029972] Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes, linear) +[ 0.040244] rcu: Hierarchical SRCU implementation. +[ 0.045121] smp: Bringing up secondary CPUs ... +[ 0.050225] smp: Brought up 1 node, 2 CPUs +[ 0.054355] devtmpfs: initialized +[ 0.071168] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns +[ 0.080240] pinctrl core: initialized pinctrl subsystem +[ 0.119221] clocksource: Switched to clocksource clint_clocksource +[ 0.131498] workingset: timestamp_bits=62 max_order=11 bucket_order=0 +[ 0.176943] k210-sysctl 50440000.syscon: K210 system controller +[ 0.193558] k210-rst 50440000.syscon:reset-controller: K210 reset controller +[ 0.201526] cacheinfo: Unable to detect cache hierarchy for CPU 0 +[ 0.211611] i2c_dev: i2c /dev entries driver +[ 0.221375] k210-fpioa 502b0000.pinmux: K210 FPIOA pin controller +[ 0.233591] 38000000.serial: ttySIF0 at MMIO 0x38000000 (irq = 1, base_baud = 115200) is a SiFive UART v0 +[ 0.242529] printk: console [ttySIF0] enabled +[ 0.242529] printk: console [ttySIF0] enabled +[ 0.251165] printk: bootconsole [sifive0] disabled +[ 0.251165] printk: bootconsole [sifive0] disabled +[ 0.274348] Freeing unused kernel image (initmem) memory: 524K +[ 0.279504] This architecture does not have kernel memory protection. +[ 0.285908] Run /init as init process + __ _ + / / (_) ____ _ _ __ __ + / / | || _ \ | | | |\ \/ / + / /___| || | | || |_| | > < + /_____/|_||_| |_| \____|/_/\_\ + 64-bits RISC-V Kendryte K210 NOMMU + +/ # +``` + +To open a terminal console without re-flashing the board, the pyserial-miniterm +host tool can be used. + +``` +$ output/host/bin/pyserial-miniterm --raw --eol=LF /dev/ttyUSB0 115200 +``` + +The options "--raw" and "--eol=LF" are added here to avoid a double carriage +return each time a command is entered. + + +U-Boot SD-Card Boot +------------------- + +The build procedure is similar to the direct Linux kernel boot case. + +``` +$ make sipeed_maix_bit_sdcard_defconfig +$ make +``` + +The build process will generate two files under the output/images directory. + +* sdcard.img: The image file for the SD card filesystem. This image has 2 + partitions. The first partition is a vfat partition containing the kernel + uImage and the board device tree binary. The second partition is the root + filesystem with busybox installed. The second partition is formatted using + ext2 (rev1). + +* uboot.bin: U-Boot bootable binary to load and boot the kernel from the SD + card. + +The SD card can be prepared by writing the sdcard.img file, as follows. + +``` +$ sudo dd if=output/images/sdcard.img of=/dev/sdX bs=1M +$ sync +$ eject /dev/sdX +``` + +Where /dev/sdX is the device file name of the SD card. Once completed, the SD +card can be inserted into the board and the U-Boot binary image written to the +board boot flash using the kflash utility. + +``` +$ output/host/bin/kflash -b 1500000 -p /dev/ttyUSB0 -t output/images/u-boot.bin +``` + +The above command will program U-Boot image to the board boot ROM and open a +terminal console once the u-boot.bin file is fully programmed. Reboot into the +newly programmed environment by pressing the board reset button. + +The output will be similar to the following. + +``` +U-Boot 2022.04 (May 24 2022 - 17:08:34 +0900) + +DRAM: 8 MiB +Core: 34 devices, 17 uclasses, devicetree: separate +WDT: Not starting watchdog@50400000 +MMC: spi@53000000:slot@0: 0 +Loading Environment from SPIFlash... SF: Detected gd25lq128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB +*** Warning - bad CRC, using default environment + +In: serial@38000000 +Out: serial@38000000 +Err: serial@38000000 +Hit any key to stop autoboot: 0 +1668562 bytes read in 933 ms (1.7 MiB/s) +10468 bytes read in 11 ms (928.7 KiB/s) +## Booting kernel from Legacy Image at 80060000 ... + Image Name: Linux + Image Type: RISC-V Linux Kernel Image (uncompressed) + Data Size: 1668498 Bytes = 1.6 MiB + Load Address: 80000000 + Entry Point: 80000000 + Verifying Checksum ... OK +## Flattened Device Tree blob at 80400000 + Booting using the fdt blob at 0x80400000 + Loading Kernel Image + Loading Device Tree to 00000000803fa000, end 00000000803ff8e3 ... OK + +Starting kernel ... + +[ 0.000000] Linux version 5.18.0 (foo@bar.com) (riscv64-buildroot-linux-uclibc-gcc.br_real (Buildroot 2022.02-1056-gc356b62332) 10.3.0, GNU ld (GNU Binutils) 2.37) #1 SMP Tue May 24 06:45:04 JST 2022 +[ 0.000000] Machine model: SiPeed MAIX BiT +[ 0.000000] earlycon: sifive0 at MMIO 0x0000000038000000 (options '115200n8') +[ 0.000000] printk: bootconsole [sifive0] enabled +[ 0.000000] Zone ranges: +[ 0.000000] DMA32 [mem 0x0000000080000000-0x00000000807fffff] +[ 0.000000] Normal empty +[ 0.000000] Movable zone start for each node +[ 0.000000] Early memory node ranges +[ 0.000000] node 0: [mem 0x0000000080000000-0x00000000807fffff] +[ 0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000807fffff] +[ 0.000000] riscv: base ISA extensions acdfim +[ 0.000000] riscv: ELF capabilities acdfim +[ 0.000000] percpu: max_distance=0x16000 too large for vmalloc space 0x0 +[ 0.000000] percpu: Embedded 11 pages/cpu s15648 r0 d29408 u45056 +[ 0.000000] percpu: wasting 10 pages per chunk +[ 0.000000] Built 1 zonelists, mobility grouping off. Total pages: 2020 +[ 0.000000] Kernel command line: earlycon console=ttySIF0 root=/dev/mmcblk0p2 rootwait ro +[ 0.000000] Dentry cache hash table entries: 1024 (order: 1, 8192 bytes, linear) +[ 0.000000] Inode-cache hash table entries: 512 (order: 0, 4096 bytes, linear) +[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off +[ 0.000000] Memory: 6204K/8192K available (1134K kernel code, 150K rwdata, 239K rodata, 100K init, 68K bss, 1988K reserved, 0K cma-reserved) +[ 0.000000] rcu: Hierarchical RCU implementation. +[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies. +[ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 +[ 0.000000] riscv-intc: 64 local interrupts mapped +[ 0.000000] plic: interrupt-controller@c000000: mapped 65 interrupts with 2 handlers for 4 contexts. +[ 0.000000] k210-clk: clock-controller: CPU running at 390 MHz +[ 0.000000] clint: timer@2000000: timer running at 7800000 Hz +[ 0.000000] clocksource: clint_clocksource: mask: 0xffffffffffffffff max_cycles: 0x3990be68b, max_idle_ns: 881590404272 ns +[ 0.000001] sched_clock: 64 bits at 7MHz, resolution 128ns, wraps every 4398046511054ns +[ 0.008194] Calibrating delay loop (skipped), value calculated using timer frequency.. 15.60 BogoMIPS (lpj=31200) +[ 0.018257] pid_max: default: 4096 minimum: 301 +[ 0.022869] Mount-cache hash table entries: 512 (order: 0, 4096 bytes, linear) +[ 0.029982] Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes, linear) +[ 0.040424] rcu: Hierarchical SRCU implementation. +[ 0.045397] smp: Bringing up secondary CPUs ... +[ 0.050518] smp: Brought up 1 node, 2 CPUs +[ 0.054676] devtmpfs: initialized +[ 0.072365] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns +[ 0.081396] pinctrl core: initialized pinctrl subsystem +[ 0.123762] clocksource: Switched to clocksource clint_clocksource +[ 0.136796] workingset: timestamp_bits=62 max_order=11 bucket_order=0 +[ 0.181768] k210-sysctl 50440000.syscon: K210 system controller +[ 0.198397] k210-rst 50440000.syscon:reset-controller: K210 reset controller +[ 0.207373] cacheinfo: Unable to detect cache hierarchy for CPU 0 +[ 0.218270] spi spi1.0: setup: ignoring unsupported mode bits a00 +[ 0.224786] i2c_dev: i2c /dev entries driver +[ 0.235984] k210-fpioa 502b0000.pinmux: K210 FPIOA pin controller +[ 0.249172] 38000000.serial: ttySIF0 at MMIO 0x38000000 (irq = 1, base_baud = 115200) is a SiFive UART v0 +[ 0.258078] printk: console [ttySIF0] enabled +[ 0.258078] printk: console [ttySIF0] enabled +[ 0.266707] printk: bootconsole [sifive0] disabled +[ 0.266707] printk: bootconsole [sifive0] disabled +[ 0.307910] mmc_spi spi3.0: SD/MMC host mmc0, no WP, no poweroff, cd polling +[ 0.319869] Waiting for root device /dev/mmcblk0p2... +[ 0.345016] mmc0: host does not support reading read-only switch, assuming write-enable +[ 0.352330] mmc0: new SDHC card on SPI +[ 0.359338] mmcblk0: mmc0:0000 SA16G 14.5 GiB +[ 0.367589] random: fast init done +[ 0.371533] mmcblk0: p1 p2 +[ 0.391794] random: get_random_bytes called from 0x0000000080095ae8 with crng_init=1 +[ 0.393388] VFS: Mounted root (ext2 filesystem) readonly on device 179:2. +[ 0.411377] devtmpfs: mounted +[ 0.413922] Freeing unused kernel image (initmem) memory: 96K +[ 0.419344] This architecture does not have kernel memory protection. +[ 0.425777] Run /sbin/init as init process +[ 0.718314] random: crng init done +[ 0.799903] init (1): drop_caches: 3 + __ _ + / / (_) ____ _ _ __ __ + / / | || _ \ | | | |\ \/ / + / /___| || | | || |_| | > < + /_____/|_||_| |_| \____|/_/\_\ + 64-bits RISC-V Kendryte K210 NOMMU + +/ # +``` + +Of note is that the kernel mounts the SD card as read-only by default to avoid +corruptions of the ext2 root file system when the board is powered down. This +is recommended as this board does not support clean shutdown or halt. + +Similarly to the initramfs build case, a console can be open without +re-flashing the board using the host tool pyserial-miniterm. + +``` +$ output/host/bin/pyserial-miniterm --raw --eol=LF /dev/ttyUSB0 115200 +``` diff --git a/board/sipeed/maix-dock/linux-cpio.config b/board/sipeed/maix-dock/linux-cpio.config new file mode 100644 index 000000000..b1ca3166f --- /dev/null +++ b/board/sipeed/maix-dock/linux-cpio.config @@ -0,0 +1,2 @@ +CONFIG_SOC_CANAAN_K210_DTB_BUILTIN=y +CONFIG_SOC_CANAAN_K210_DTB_SOURCE="sipeed_maix_dock" diff --git a/board/sipeed/maix-dock/readme.txt b/board/sipeed/maix-dock/readme.txt new file mode 100644 index 000000000..5971f6e50 --- /dev/null +++ b/board/sipeed/maix-dock/readme.txt @@ -0,0 +1,321 @@ +Sipeed MAIX-Dock Board +====================== + +The Sipeed MAXI-Dock board is a dual-core RISC-V 64-bits board based on the +Canaan Kendryte K210 SoC. + +Prerequisite +------------ + +In order to use the kflash utility to program this board, the user must have +access to the board USB serial device file. The simplest way to do this is to +add your user to the same group as this device file. Assume the device file is +/dev/ttyUSB0, first identify the device group name. In most cases, it is +either "dialout" or "uucp". Also verify that read-write access is enabled for +the group: + +``` +$ ls -l /dev/ttyUSB0 +crw-rw---- 1 root dialout 188, 0 May 26 13:48 /dev/ttyUSB0 +``` + +Then add yourself to that group (dialout in this example): + +``` +$ sudo usermod -a -G dialout $(whoami) +``` + +To enable the above, it is sometimes necessary to logout and login again. + +Buildroot Configuration +----------------------- + +Two buildroot configuration files are provided: + +(1) Direct Linux Kernel Boot + +This is defined by the sipeed_maix_dock_defconfig configuration. This +configuration allows building a bootable kernel image with a built-in initramfs +root file system (the board SD card is not used). The built kernel image can be +flashed directly to the board ROM for direct booting. No boot loader is +required. + +(2) U-Boot SD-Card Boot + +The sipeed_maix_dock_sdcard_defconfig configuration allows building a kernel +image with the root file system on the board SD card. U-Boot is used as the +boot loader. + +Note: U-Boot does not natively support the Sipeed MAIX-Dock board. However, the +board and device tree differences with the Sipeed MAIX-Bit board are small +enough for U-Boot to work. + +Both configuration files will also compile the pyserial-miniterm host tool open +a serial terminal console for the board. + +Direct Linux Kernel Boot +------------------------- + +Using the sipeed_maix_dock_defconfig configuration, the bootable kernel binary +image is built as follows. + +``` +$ make sipeed_maix_dock_defconfig +$ make +``` + +Both configuration files will also compile and install the kflash and +pyserial-miniterm host utilities to program bootable image files to the board +and open a serial terminal console. + +``` +$ output/host/bin/kflash -b 1500000 -p /dev/ttyUSB0 -t output/images/loader.bin +``` + +Once the kernel image file is fully programmed, a terminal console is open and +the board can be rebooted by pressing the reset button on the board (if it does +not reboot automatically). + +The output will be similar to the following. + +``` +[ 0.000000] Linux version 5.18.0 (foo@bar.com) (riscv64-buildroot-linux-uclibc-gcc.br_real (Buildroot 2022.02-560-g6a2b542a09-dirty) 10.3.0, GNU ld (GNU Binutils) 2.32) #2 SMP Thu Apr 21 15:47:42 JST 2022 +[ 0.000000] Machine model: SiPeed MAIX Dock +[ 0.000000] earlycon: sifive0 at MMIO 0x0000000038000000 (options '115200n8') +[ 0.000000] printk: bootconsole [sifive0] enabled +[ 0.000000] Zone ranges: +[ 0.000000] DMA32 [mem 0x0000000080000000-0x00000000807fffff] +[ 0.000000] Normal empty +[ 0.000000] Movable zone start for each node +[ 0.000000] Early memory node ranges +[ 0.000000] node 0: [mem 0x0000000080000000-0x00000000807fffff] +[ 0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000807fffff] +[ 0.000000] riscv: ISA extensions acdfim +[ 0.000000] riscv: ELF capabilities acdfim +[ 0.000000] percpu: max_distance=0x16000 too large for vmalloc space 0x0 +[ 0.000000] percpu: Embedded 11 pages/cpu s15264 r0 d29792 u45056 +[ 0.000000] percpu: wasting 10 pages per chunk +[ 0.000000] Built 1 zonelists, mobility grouping off. Total pages: 2020 +[ 0.000000] Kernel command line: earlycon console=ttySIF0 +[ 0.000000] Dentry cache hash table entries: 1024 (order: 1, 8192 bytes, linear) +[ 0.000000] Inode-cache hash table entries: 512 (order: 0, 4096 bytes, linear) +[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off +[ 0.000000] Memory: 5980K/8192K available (964K kernel code, 137K rwdata, 205K rodata, 546K init, 66K bss, 2212K reserved, 0K cma-reserved) +[ 0.000000] rcu: Hierarchical RCU implementation. +[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies. +[ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 +[ 0.000000] riscv-intc: 64 local interrupts mapped +[ 0.000000] plic: interrupt-controller@c000000: mapped 65 interrupts with 2 handlers for 4 contexts. +[ 0.000000] k210-clk: clock-controller: CPU running at 390 MHz +[ 0.000000] clint: timer@2000000: timer running at 7800000 Hz +[ 0.000000] clocksource: clint_clocksource: mask: 0xffffffffffffffff max_cycles: 0x3990be68b, max_idle_ns: 881590404272 ns +[ 0.000001] sched_clock: 64 bits at 7MHz, resolution 128ns, wraps every 4398046511054ns +[ 0.008187] Calibrating delay loop (skipped), value calculated using timer frequency.. 15.60 BogoMIPS (lpj=31200) +[ 0.018250] pid_max: default: 4096 minimum: 301 +[ 0.022859] Mount-cache hash table entries: 512 (order: 0, 4096 bytes, linear) +[ 0.029971] Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes, linear) +[ 0.040238] rcu: Hierarchical SRCU implementation. +[ 0.045110] smp: Bringing up secondary CPUs ... +[ 0.050215] smp: Brought up 1 node, 2 CPUs +[ 0.054345] devtmpfs: initialized +[ 0.071112] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns +[ 0.080182] pinctrl core: initialized pinctrl subsystem +[ 0.120689] clocksource: Switched to clocksource clint_clocksource +[ 0.133165] workingset: timestamp_bits=62 max_order=11 bucket_order=0 +[ 0.181750] k210-sysctl 50440000.syscon: K210 system controller +[ 0.198612] k210-rst 50440000.syscon:reset-controller: K210 reset controller +[ 0.206644] cacheinfo: Unable to detect cache hierarchy for CPU 0 +[ 0.216569] i2c_dev: i2c /dev entries driver +[ 0.225905] k210-fpioa 502b0000.pinmux: K210 FPIOA pin controller +[ 0.238866] 38000000.serial: ttySIF0 at MMIO 0x38000000 (irq = 1, base_baud = 115200) is a SiFive UART v0 +[ 0.247778] printk: console [ttySIF0] enabled +[ 0.247778] printk: console [ttySIF0] enabled +[ 0.256459] printk: bootconsole [sifive0] disabled +[ 0.256459] printk: bootconsole [sifive0] disabled +[ 0.268225] panel@0 enforce active low on chipselect handle +[ 0.285238] Freeing unused kernel image (initmem) memory: 540K +[ 0.290372] This architecture does not have kernel memory protection. +[ 0.296807] Run /init as init process + __ _ + / / (_) ____ _ _ __ __ + / / | || _ \ | | | |\ \/ / + / /___| || | | || |_| | > < + /_____/|_||_| |_| \____|/_/\_\ + 64-bits RISC-V Kendryte K210 NOMMU + +/ # +``` + +To open a terminal console without re-flashing the board, the pyserial-miniterm +host tool can be used. + +``` +$ output/host/bin/pyserial-miniterm --raw --eol=LF /dev/ttyUSB0 115200 +``` + +The options "--raw" and "--eol=LF" are added here to avoid a double carriage +return each time a command is entered. + + +U-Boot SD-Card Boot +------------------- + +The build procedure is similar to the built-in initramfs case. + +``` +$ make sipeed_maix_dock_sdcard_defconfig +$ make +``` + +The build process will generate two files under the output/images directory. + +* sdcard.img: The image file for the SD card filesystem. This image has 2 + partitions. The first partition is a vfat partition containing the kernel + uImage and the board device tree binary. The second partition is the root + filesystem with busybox installed. The second partition is formatted using + ext2 (rev1). + +* uboot.bin: U-Boot bootable binary to load and boot the kernel from the SD + card. + +The SD card can be prepared by writing the sdcard.img file, as follows. + +``` +$ sudo dd if=output/images/sdcard.img of=/dev/sdX bs=1M +$ sync +$ eject /dev/sdX +``` + +Where /dev/sdX is the device file name of the SD card. Once completed, the SD +card can be inserted into the board and the U-Boot binary image written to the +board boot flash using the kflash utility. + +``` +$ output/host/bin/kflash -b 1500000 -p /dev/ttyUSB0 -t output/images/u-boot.bin +``` + +The above command will program U-Boot image to the board boot ROM and open a +terminal console once the u-boot.bin file is fully programmed. Reboot into the +newly programmed environment by pressing the board reset button if it does not +reboot automatically. + +The output will be similar to the following. + +``` +U-Boot 2022.04 (Apr 21 2022 - 15:59:50 +0900) + +DRAM: 8 MiB +Core: 34 devices, 17 uclasses, devicetree: separate +WDT: Not starting watchdog@50400000 +MMC: spi@53000000:slot@0: 0 +Loading Environment from SPIFlash... SF: Detected w25q128fw with page size 256 Bytes, erase size 4 KiB, total 16 MiB +*** Warning - bad CRC, using default environment + +In: serial@38000000 +Out: serial@38000000 +Err: serial@38000000 +Hit any key to stop autoboot: 0 +1717730 bytes read in 957 ms (1.7 MiB/s) +10382 bytes read in 11 ms (920.9 KiB/s) +## Booting kernel from Legacy Image at 80060000 ... + Image Name: Linux + Image Type: RISC-V Linux Kernel Image (uncompressed) + Data Size: 1717666 Bytes = 1.6 MiB + Load Address: 80000000 + Entry Point: 80000000 + Verifying Checksum ... OK +## Flattened Device Tree blob at 80400000 + Booting using the fdt blob at 0x80400000 + Loading Kernel Image + Loading Device Tree to 00000000803fa000, end 00000000803ff88d ... OK + +Starting kernel ... + +[ 0.000000] Linux version 5.18.0 (foo@bar.com) (riscv64-buildroot-linux-uclibc-gcc.br_real (Buildroot 2022.02-560-g6a2b542a09-dirty) 10.3.0, GNU ld (GNU Binutils) 2.32) #1 SMP Thu Apr 21 16:00:03 JST 2022 +[ 0.000000] Machine model: SiPeed MAIX Dock +[ 0.000000] earlycon: sifive0 at MMIO 0x0000000038000000 (options '115200n8') +[ 0.000000] printk: bootconsole [sifive0] enabled +[ 0.000000] Zone ranges: +[ 0.000000] DMA32 [mem 0x0000000080000000-0x00000000807fffff] +[ 0.000000] Normal empty +[ 0.000000] Movable zone start for each node +[ 0.000000] Early memory node ranges +[ 0.000000] node 0: [mem 0x0000000080000000-0x00000000807fffff] +[ 0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000807fffff] +[ 0.000000] riscv: ISA extensions acdfim +[ 0.000000] riscv: ELF capabilities acdfim +[ 0.000000] percpu: max_distance=0x16000 too large for vmalloc space 0x0 +[ 0.000000] percpu: Embedded 11 pages/cpu s15392 r0 d29664 u45056 +[ 0.000000] percpu: wasting 10 pages per chunk +[ 0.000000] Built 1 zonelists, mobility grouping off. Total pages: 2020 +[ 0.000000] Kernel command line: earlycon console=ttySIF0 root=/dev/mmcblk0p2 rootwait ro +[ 0.000000] Dentry cache hash table entries: 1024 (order: 1, 8192 bytes, linear) +[ 0.000000] Inode-cache hash table entries: 512 (order: 0, 4096 bytes, linear) +[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off +[ 0.000000] Memory: 6156K/8192K available (1180K kernel code, 151K rwdata, 239K rodata, 102K init, 69K bss, 2036K reserved, 0K cma-reserved) +[ 0.000000] rcu: Hierarchical RCU implementation. +[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies. +[ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 +[ 0.000000] riscv-intc: 64 local interrupts mapped +[ 0.000000] plic: interrupt-controller@c000000: mapped 65 interrupts with 2 handlers for 4 contexts. +[ 0.000000] k210-clk: clock-controller: CPU running at 390 MHz +[ 0.000000] clint: timer@2000000: timer running at 7800000 Hz +[ 0.000000] clocksource: clint_clocksource: mask: 0xffffffffffffffff max_cycles: 0x3990be68b, max_idle_ns: 881590404272 ns +[ 0.000001] sched_clock: 64 bits at 7MHz, resolution 128ns, wraps every 4398046511054ns +[ 0.008196] Calibrating delay loop (skipped), value calculated using timer frequency.. 15.60 BogoMIPS (lpj=31200) +[ 0.018256] pid_max: default: 4096 minimum: 301 +[ 0.022876] Mount-cache hash table entries: 512 (order: 0, 4096 bytes, linear) +[ 0.029980] Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes, linear) +[ 0.040401] rcu: Hierarchical SRCU implementation. +[ 0.045379] smp: Bringing up secondary CPUs ... +[ 0.050494] smp: Brought up 1 node, 2 CPUs +[ 0.054656] devtmpfs: initialized +[ 0.072338] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns +[ 0.081415] pinctrl core: initialized pinctrl subsystem +[ 0.123902] clocksource: Switched to clocksource clint_clocksource +[ 0.136898] workingset: timestamp_bits=62 max_order=11 bucket_order=0 +[ 0.182570] k210-sysctl 50440000.syscon: K210 system controller +[ 0.198158] k210-rst 50440000.syscon:reset-controller: K210 reset controller +[ 0.207473] cacheinfo: Unable to detect cache hierarchy for CPU 0 +[ 0.219724] i2c_dev: i2c /dev entries driver +[ 0.230080] k210-fpioa 502b0000.pinmux: K210 FPIOA pin controller +[ 0.243091] 38000000.serial: ttySIF0 at MMIO 0x38000000 (irq = 1, base_baud = 115200) is a SiFive UART v0 +[ 0.252034] printk: console [ttySIF0] enabled +[ 0.252034] printk: console [ttySIF0] enabled +[ 0.260656] printk: bootconsole [sifive0] disabled +[ 0.260656] printk: bootconsole [sifive0] disabled +[ 0.272546] panel@0 enforce active low on chipselect handle +[ 0.308098] mmc_spi spi3.0: SD/MMC host mmc0, no WP, no poweroff, cd polling +[ 0.320197] Waiting for root device /dev/mmcblk0p2... +[ 0.344667] mmc0: host does not support reading read-only switch, assuming write-enable +[ 0.352020] mmc0: new SDHC card on SPI +[ 0.358566] mmcblk0: mmc0:0000 SA16G 14.5 GiB +[ 0.366866] random: fast init done +[ 0.371439] mmcblk0: p1 p2 +[ 0.391314] random: get_random_bytes called from 0x000000008009b7d2 with crng_init=1 +[ 0.400977] VFS: Mounted root (ext2 filesystem) readonly on device 179:2. +[ 0.410966] devtmpfs: mounted +[ 0.413521] Freeing unused kernel image (initmem) memory: 96K +[ 0.418944] This architecture does not have kernel memory protection. +[ 0.425370] Run /sbin/init as init process +[ 0.633502] random: crng init done + __ _ + / / (_) ____ _ _ __ __ + / / | || _ \ | | | |\ \/ / + / /___| || | | || |_| | > < + /_____/|_||_| |_| \____|/_/\_\ + 64-bits RISC-V Kendryte K210 NOMMU + +/ # +``` + +Of note is that the kernel mounts the SD card as read-only by default to avoid +corruptions of the ext2 root file system when the board is powered down. This +is recommended as this board does not support clean shutdown or halt. + +Similarly to the initramfs build case, a console can be open without +re-flashing the board using the host tool pyserial-miniterm. + +``` +$ output/host/bin/pyserial-miniterm --raw --eol=LF /dev/ttyUSB0 115200 +``` diff --git a/board/sipeed/maix-go/linux-cpio.config b/board/sipeed/maix-go/linux-cpio.config new file mode 100644 index 000000000..ea8c30e26 --- /dev/null +++ b/board/sipeed/maix-go/linux-cpio.config @@ -0,0 +1,2 @@ +CONFIG_SOC_CANAAN_K210_DTB_BUILTIN=y +CONFIG_SOC_CANAAN_K210_DTB_SOURCE="sipeed_maix_go" diff --git a/board/sipeed/maix-go/readme.txt b/board/sipeed/maix-go/readme.txt new file mode 100644 index 000000000..9f930fb6a --- /dev/null +++ b/board/sipeed/maix-go/readme.txt @@ -0,0 +1,320 @@ +Sipeed MAIX-Go Board +==================== + +The Sipeed MAXI-Go board is a dual-core RISC-V 64-bits board based on the +Canaan Kendryte K210 SoC. + +Prerequisite +------------ + +In order to use the kflash utility to program this board, the user must have +access to the board USB serial device file. The simplest way to do this is to +add your user to the same group as this device file. Assume the device file is +/dev/ttyUSB0, first identify the device group name. In most cases, it is +either "dialout" or "uucp". Also verify that read-write access is enabled for +the group: + +``` +$ ls -l /dev/ttyUSB0 +crw-rw---- 1 root dialout 188, 0 May 26 13:48 /dev/ttyUSB0 +``` + +Then add yourself to that group (dialout in this example): + +``` +$ sudo usermod -a -G dialout $(whoami) +``` + +To enable the above, it is sometimes necessary to logout and login again. + +Buildroot Configuration +----------------------- + +Two buildroot configuration files are provided: + +(1) Direct Linux Kernel Boot + +This is defined by the sipeed_maix_go_defconfig configuration. This +configuration allows building a bootable kernel image with a built-in initramfs +root file system (the board SD card is not used). The built kernel image can be +flashed directly to the board ROM for direct booting. No boot loader is +required. + +(2) U-Boot SD-Card Boot + +The sipeed_maix_go_sdcard_defconfig configuration allows building a kernel +image with the root file system on the board SD card. U-Boot is used as the +boot loader. + +Note: U-Boot does not natively support the Sipeed MAIX-Go board. However, the +board and device tree differences with the Sipeed MAIX-bit board are small +enough for U-Boot to work. + +Both configuration files will also compile and install the kflash and +pyserial-miniterm host utilities to program bootable image files to the board +and open a serial terminal console. + +Direct Linux Kernel Boot +------------------------- + +Using the sipeed_maix_go_defconfig configuration, the bootable kernel binary +image is built as follows. + +``` +$ make sipeed_maix_go_defconfig +$ make +``` + +The bootable binary image is the output/images/loader.bin file. This image file +can be written to the board boot flash using the kflash utility. + +``` +$ output/host/bin/kflash -b 1500000 -p /dev/ttyUSB0 -t output/images/loader.bin +``` + +Once the kernel image file is fully programmed, a terminal console is open and +the board can be rebooted by pressing the reset button on the board (if it does +not reboot automatically). + +The output will be similar to the following. + +``` +[ 0.000000] Linux version 5.17.0 (foo@bar.com) (riscv64-buildroot-linux-uclibc-gcc.br_real (Buildroot 2022.02-560-g6a2b542a09-dirty) 10.3.0, GNU ld (GNU Binutils) 2.32) #2 SMP Thu Apr 21 16:09:24 JST 2022 +[ 0.000000] Machine model: SiPeed MAIX GO +[ 0.000000] earlycon: sifive0 at MMIO 0x0000000038000000 (options '115200n8') +[ 0.000000] printk: bootconsole [sifive0] enabled +[ 0.000000] Zone ranges: +[ 0.000000] DMA32 [mem 0x0000000080000000-0x00000000807fffff] +[ 0.000000] Normal empty +[ 0.000000] Movable zone start for each node +[ 0.000000] Early memory node ranges +[ 0.000000] node 0: [mem 0x0000000080000000-0x00000000807fffff] +[ 0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000807fffff] +[ 0.000000] riscv: ISA extensions acdfim +[ 0.000000] riscv: ELF capabilities acdfim +[ 0.000000] percpu: max_distance=0x16000 too large for vmalloc space 0x0 +[ 0.000000] percpu: Embedded 11 pages/cpu s15264 r0 d29792 u45056 +[ 0.000000] percpu: wasting 10 pages per chunk +[ 0.000000] Built 1 zonelists, mobility grouping off. Total pages: 2020 +[ 0.000000] Kernel command line: earlycon console=ttySIF0 +[ 0.000000] Dentry cache hash table entries: 1024 (order: 1, 8192 bytes, linear) +[ 0.000000] Inode-cache hash table entries: 512 (order: 0, 4096 bytes, linear) +[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off +[ 0.000000] Memory: 5980K/8192K available (964K kernel code, 137K rwdata, 205K rodata, 546K init, 66K bss, 2212K reserved, 0K cma-reserved) +[ 0.000000] rcu: Hierarchical RCU implementation. +[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies. +[ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 +[ 0.000000] riscv-intc: 64 local interrupts mapped +[ 0.000000] plic: interrupt-controller@c000000: mapped 65 interrupts with 2 handlers for 4 contexts. +[ 0.000000] k210-clk: clock-controller: CPU running at 390 MHz +[ 0.000000] clint: timer@2000000: timer running at 7800000 Hz +[ 0.000000] clocksource: clint_clocksource: mask: 0xffffffffffffffff max_cycles: 0x3990be68b, max_idle_ns: 881590404272 ns +[ 0.000001] sched_clock: 64 bits at 7MHz, resolution 128ns, wraps every 4398046511054ns +[ 0.008193] Calibrating delay loop (skipped), value calculated using timer frequency.. 15.60 BogoMIPS (lpj=31200) +[ 0.018250] pid_max: default: 4096 minimum: 301 +[ 0.022862] Mount-cache hash table entries: 512 (order: 0, 4096 bytes, linear) +[ 0.029971] Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes, linear) +[ 0.040239] rcu: Hierarchical SRCU implementation. +[ 0.045118] smp: Bringing up secondary CPUs ... +[ 0.050204] smp: Brought up 1 node, 2 CPUs +[ 0.054336] devtmpfs: initialized +[ 0.071519] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns +[ 0.080591] pinctrl core: initialized pinctrl subsystem +[ 0.121163] clocksource: Switched to clocksource clint_clocksource +[ 0.133221] workingset: timestamp_bits=62 max_order=11 bucket_order=0 +[ 0.180960] k210-sysctl 50440000.syscon: K210 system controller +[ 0.196811] k210-rst 50440000.syscon:reset-controller: K210 reset controller +[ 0.204879] cacheinfo: Unable to detect cache hierarchy for CPU 0 +[ 0.214087] i2c_dev: i2c /dev entries driver +[ 0.222736] k210-fpioa 502b0000.pinmux: K210 FPIOA pin controller +[ 0.236173] 38000000.serial: ttySIF0 at MMIO 0x38000000 (irq = 1, base_baud = 115200) is a SiFive UART v0 +[ 0.245104] printk: console [ttySIF0] enabled +[ 0.245104] printk: console [ttySIF0] enabled +[ 0.253726] printk: bootconsole [sifive0] disabled +[ 0.253726] printk: bootconsole [sifive0] disabled +[ 0.265588] panel@0 enforce active low on chipselect handle +[ 0.282358] Freeing unused kernel image (initmem) memory: 540K +[ 0.287492] This architecture does not have kernel memory protection. +[ 0.293926] Run /init as init process + __ _ + / / (_) ____ _ _ __ __ + / / | || _ \ | | | |\ \/ / + / /___| || | | || |_| | > < + /_____/|_||_| |_| \____|/_/\_\ + 64-bits RISC-V Kendryte K210 NOMMU + +/ # +``` + +To open a terminal console without re-flashing the board, the pyserial-miniterm +host tool can be used. + +``` +$ output/host/bin/pyserial-miniterm --raw --eol=LF /dev/ttyUSB0 115200 +``` + +The options "--raw" and "--eol=LF" are added here to avoid a double carriage +return each time a command is entered. + + +U-Boot SD-Card Boot +------------------- + +The build procedure is similar to the built-in initramfs case. + +``` +$ make sipeed_maix_go_sdcard_defconfig +$ make +``` + +The build process will generate two files under the output/images directory. + +* sdcard.img: The image file for the SD card filesystem. This image has 2 + partitions. The first partition is a vfat partition containing the kernel + uImage and the board device tree binary. The second partition is the root + filesystem with busybox installed. The second partition is formatted using + ext2 (rev1). + +* uboot.bin: U-Boot bootable binary to load and boot the kernel from the SD + card. + +The SD card can be prepared by writing the sdcard.img file, as follows. + +``` +$ sudo dd if=output/images/sdcard.img of=/dev/sdX bs=1M +$ sync +$ eject /dev/sdX +``` + +Where /dev/sdX is the device file name of the SD card. Once completed, the SD +card can be inserted into the board and the U-Boot binary image written to the +board boot flash using the kflash utility. + +``` +$ output/host/bin/kflash -b 1500000 -p /dev/ttyUSB0 -t output/images/u-boot.bin +``` + +The above command will program U-Boot image to the board boot ROM and open a +terminal console once the u-boot.bin file is fully programmed. Reboot into the +newly programmed environment by pressing the board reset button. + +The output will be similar to the following. + +``` +U-Boot 2022.04 (Apr 21 2022 - 16:28:58 +0900) + +DRAM: 8 MiB +Core: 34 devices, 17 uclasses, devicetree: separate +WDT: Not starting watchdog@50400000 +MMC: spi@53000000:slot@0: 0 +Loading Environment from SPIFlash... SF: Detected gd25lq128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB +*** Warning - bad CRC, using default environment + +In: serial@38000000 +Out: serial@38000000 +Err: serial@38000000 +Hit any key to stop autoboot: 0 +1717730 bytes read in 956 ms (1.7 MiB/s) +10502 bytes read in 11 ms (931.6 KiB/s) +## Booting kernel from Legacy Image at 80060000 ... + Image Name: Linux + Image Type: RISC-V Linux Kernel Image (uncompressed) + Data Size: 1717666 Bytes = 1.6 MiB + Load Address: 80000000 + Entry Point: 80000000 + Verifying Checksum ... OK +## Flattened Device Tree blob at 80400000 + Booting using the fdt blob at 0x80400000 + Loading Kernel Image + Loading Device Tree to 00000000803fa000, end 00000000803ff905 ... OK + +Starting kernel ... + +[ 0.000000] Linux version 5.17.0 (foo@bar.com) (riscv64-buildroot-linux-uclibc-gcc.br_real (Buildroot 2022.02-560-g6a2b542a09-dirty) 10.3.0, GNU ld (GNU Binutils) 2.32) #1 SMP Thu Apr 21 16:29:10 JST 2022 +[ 0.000000] Machine model: SiPeed MAIX GO +[ 0.000000] earlycon: sifive0 at MMIO 0x0000000038000000 (options '115200n8') +[ 0.000000] printk: bootconsole [sifive0] enabled +[ 0.000000] Zone ranges: +[ 0.000000] DMA32 [mem 0x0000000080000000-0x00000000807fffff] +[ 0.000000] Normal empty +[ 0.000000] Movable zone start for each node +[ 0.000000] Early memory node ranges +[ 0.000000] node 0: [mem 0x0000000080000000-0x00000000807fffff] +[ 0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000807fffff] +[ 0.000000] riscv: ISA extensions acdfim +[ 0.000000] riscv: ELF capabilities acdfim +[ 0.000000] percpu: max_distance=0x16000 too large for vmalloc space 0x0 +[ 0.000000] percpu: Embedded 11 pages/cpu s15392 r0 d29664 u45056 +[ 0.000000] percpu: wasting 10 pages per chunk +[ 0.000000] Built 1 zonelists, mobility grouping off. Total pages: 2020 +[ 0.000000] Kernel command line: earlycon console=ttySIF0 root=/dev/mmcblk0p2 rootwait ro +[ 0.000000] Dentry cache hash table entries: 1024 (order: 1, 8192 bytes, linear) +[ 0.000000] Inode-cache hash table entries: 512 (order: 0, 4096 bytes, linear) +[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off +[ 0.000000] Memory: 6156K/8192K available (1180K kernel code, 151K rwdata, 239K rodata, 102K init, 69K bss, 2036K reserved, 0K cma-reserved) +[ 0.000000] rcu: Hierarchical RCU implementation. +[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies. +[ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 +[ 0.000000] riscv-intc: 64 local interrupts mapped +[ 0.000000] plic: interrupt-controller@c000000: mapped 65 interrupts with 2 handlers for 4 contexts. +[ 0.000000] k210-clk: clock-controller: CPU running at 390 MHz +[ 0.000000] clint: timer@2000000: timer running at 7800000 Hz +[ 0.000000] clocksource: clint_clocksource: mask: 0xffffffffffffffff max_cycles: 0x3990be68b, max_idle_ns: 881590404272 ns +[ 0.000001] sched_clock: 64 bits at 7MHz, resolution 128ns, wraps every 4398046511054ns +[ 0.008201] Calibrating delay loop (skipped), value calculated using timer frequency.. 15.60 BogoMIPS (lpj=31200) +[ 0.018256] pid_max: default: 4096 minimum: 301 +[ 0.022875] Mount-cache hash table entries: 512 (order: 0, 4096 bytes, linear) +[ 0.029983] Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes, linear) +[ 0.040405] rcu: Hierarchical SRCU implementation. +[ 0.045387] smp: Bringing up secondary CPUs ... +[ 0.050501] smp: Brought up 1 node, 2 CPUs +[ 0.054662] devtmpfs: initialized +[ 0.072840] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns +[ 0.081918] pinctrl core: initialized pinctrl subsystem +[ 0.124601] clocksource: Switched to clocksource clint_clocksource +[ 0.137869] workingset: timestamp_bits=62 max_order=11 bucket_order=0 +[ 0.183507] k210-sysctl 50440000.syscon: K210 system controller +[ 0.199987] k210-rst 50440000.syscon:reset-controller: K210 reset controller +[ 0.209219] cacheinfo: Unable to detect cache hierarchy for CPU 0 +[ 0.221062] i2c_dev: i2c /dev entries driver +[ 0.232254] k210-fpioa 502b0000.pinmux: K210 FPIOA pin controller +[ 0.245342] 38000000.serial: ttySIF0 at MMIO 0x38000000 (irq = 1, base_baud = 115200) is a SiFive UART v0 +[ 0.254281] printk: console [ttySIF0] enabled +[ 0.254281] printk: console [ttySIF0] enabled +[ 0.262908] printk: bootconsole [sifive0] disabled +[ 0.262908] printk: bootconsole [sifive0] disabled +[ 0.274939] panel@0 enforce active low on chipselect handle +[ 0.308760] mmc_spi spi3.0: SD/MMC host mmc0, no WP, no poweroff, cd polling +[ 0.321220] Waiting for root device /dev/mmcblk0p2... +[ 0.344805] mmc0: host does not support reading read-only switch, assuming write-enable +[ 0.352142] mmc0: new SDHC card on SPI +[ 0.358622] mmcblk0: mmc0:0000 SA16G 14.5 GiB +[ 0.366636] random: fast init done +[ 0.371323] mmcblk0: p1 p2 +[ 0.392887] random: get_random_bytes called from 0x000000008009b7d2 with crng_init=1 +[ 0.394338] VFS: Mounted root (ext2 filesystem) readonly on device 179:2. +[ 0.411277] devtmpfs: mounted +[ 0.413836] Freeing unused kernel image (initmem) memory: 96K +[ 0.419267] This architecture does not have kernel memory protection. +[ 0.425683] Run /sbin/init as init process +[ 0.594251] random: crng init done + __ _ + / / (_) ____ _ _ __ __ + / / | || _ \ | | | |\ \/ / + / /___| || | | || |_| | > < + /_____/|_||_| |_| \____|/_/\_\ + 64-bits RISC-V Kendryte K210 NOMMU + +/ # +``` + +Of note is that the kernel mounts the SD card as read-only by default to avoid +corruptions of the ext2 root file system when the board is powered down. This +is recommended as this board does not support clean shutdown or halt. + +Similarly to the initramfs build case, a console can be open without +re-flashing the board using the host tool pyserial-miniterm. + +``` +$ output/host/bin/pyserial-miniterm --raw --eol=LF /dev/ttyUSB0 115200 +``` diff --git a/board/sipeed/maixduino/linux-cpio.config b/board/sipeed/maixduino/linux-cpio.config new file mode 100644 index 000000000..049a2550c --- /dev/null +++ b/board/sipeed/maixduino/linux-cpio.config @@ -0,0 +1,2 @@ +CONFIG_SOC_CANAAN_K210_DTB_BUILTIN=y +CONFIG_SOC_CANAAN_K210_DTB_SOURCE="sipeed_maixduino" diff --git a/board/sipeed/maixduino/readme.txt b/board/sipeed/maixduino/readme.txt new file mode 100644 index 000000000..53a9e5c2a --- /dev/null +++ b/board/sipeed/maixduino/readme.txt @@ -0,0 +1,292 @@ +Sipeed MAIXDUINO Board +====================== + +The Sipeed MAIXDUINO board is a dual-core RISC-V 64-bits board based on the +Canaan Kendryte K210 SoC. This board has the same form factor as the Arduino +UNO board. + +Prerequisite +------------ + +In order to use the kflash utility to program this board, the user must have +access to the board USB serial device file. The simplest way to do this is to +add your user to the same group as this device file. Assume the device file is +/dev/ttyUSB0, first identify the device group name. In most cases, it is +either "dialout" or "uucp". Also verify that read-write access is enabled for +the group: + +``` +$ ls -l /dev/ttyUSB0 +crw-rw---- 1 root dialout 188, 0 May 26 13:48 /dev/ttyUSB0 +``` + +Then add yourself to that group (dialout in this example): + +``` +$ sudo usermod -a -G dialout $(whoami) +``` + +To enable the above, it is sometimes necessary to logout and login again. + +Buildroot Configuration +----------------------- + +Two buildroot configurations are provided: + +(1) Direct Linux Kernel Boot + +This is defined by the sipeed_maixduino_defconfig configuration. This +configuration allows building a bootable kernel image with a built-in initramfs +root file system (the board SD card is not used). The built kernel image can be +flashed directly to the board ROM for direct booting. No boot loader is +required. + +(2) U-Boot SD-Card Boot + +The sipeed_maixduino_sdcard_defconfig configuration allows building a kernel +image with the root file system on the board SD card. U-Boot is used as the +boot loader. + +Note: U-Boot does not natively support the Sipeed MAIXDUINO board. However, the +board and device tree differences with the Sipeed MAIX-bit board are small +enough for U-Boot to work. + +Both configuration files will also compile and install the kflash and +pyserial-miniterm host utilities to program bootable image files to the board +and open a serial terminal console. + +Direct Linux Kernel Boot +------------------------ + +Using the sipeed_maixduino_defconfig configuration, the bootable kernel binary +image is built as follows. + +``` +$ make sipeed_maixduino_defconfig +$ make +``` + +The bootable binary image is the output/images/loader.bin file. This image file +can be written to the board boot flash using the kflash utility. + +``` +$ output/host/bin/kflash -b 1500000 -p /dev/ttyUSB0 -t output/images/loader.bin +``` + +Once the kernel image file is fully programmed, a terminal console is open and +the board can be rebooted by pressing the reset button on the board (if it does +not reboot automatically). + +The output will be similar to the following. + +``` +[ 0.000000] Linux version 5.18.0 (foo@bar.com) (riscv64-buildroot-linux-uclibc-gcc.br_real (Buildroot 2022.02-560-g6a2b542a09-dirty) 10.3.0, GNU ld (GNU Binutils) 2.32) #2 SMP Thu Apr 21 15:16:00 JST 2022 +[ 0.000000] Machine model: SiPeed MAIXDUINO +[ 0.000000] earlycon: sifive0 at MMIO 0x0000000038000000 (options '115200n8') +[ 0.000000] printk: bootconsole [sifive0] enabled +[ 0.000000] Zone ranges: +[ 0.000000] DMA32 [mem 0x0000000080000000-0x00000000807fffff] +[ 0.000000] Normal empty +[ 0.000000] Movable zone start for each node +[ 0.000000] Early memory node ranges +[ 0.000000] node 0: [mem 0x0000000080000000-0x00000000807fffff] +[ 0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000807fffff] +[ 0.000000] riscv: ISA extensions acdfim +[ 0.000000] riscv: ELF capabilities acdfim +[ 0.000000] percpu: max_distance=0x16000 too large for vmalloc space 0x0 +[ 0.000000] percpu: Embedded 11 pages/cpu s15264 r0 d29792 u45056 +[ 0.000000] percpu: wasting 10 pages per chunk +[ 0.000000] Built 1 zonelists, mobility grouping off. Total pages: 2020 +[ 0.000000] Kernel command line: earlycon console=ttySIF0 +[ 0.000000] Dentry cache hash table entries: 1024 (order: 1, 8192 bytes, linear) +[ 0.000000] Inode-cache hash table entries: 512 (order: 0, 4096 bytes, linear) +[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off +[ 0.000000] Memory: 6000K/8192K available (964K kernel code, 137K rwdata, 205K rodata, 530K init, 66K bss, 2192K reserved, 0K cma-reserved) +[ 0.000000] rcu: Hierarchical RCU implementation. +[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies. +[ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 +[ 0.000000] riscv-intc: 64 local interrupts mapped +[ 0.000000] plic: interrupt-controller@c000000: mapped 65 interrupts with 2 handlers for 4 contexts. +[ 0.000000] k210-clk: clock-controller: CPU running at 390 MHz +[ 0.000000] clint: timer@2000000: timer running at 7800000 Hz +[ 0.000000] clocksource: clint_clocksource: mask: 0xffffffffffffffff max_cycles: 0x3990be68b, max_idle_ns: 881590404272 ns +[ 0.000001] sched_clock: 64 bits at 7MHz, resolution 128ns, wraps every 4398046511054ns +[ 0.008183] Calibrating delay loop (skipped), value calculated using timer frequency.. 15.60 BogoMIPS (lpj=31200) +[ 0.018249] pid_max: default: 4096 minimum: 301 +[ 0.022860] Mount-cache hash table entries: 512 (order: 0, 4096 bytes, linear) +[ 0.029971] Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes, linear) +[ 0.040242] rcu: Hierarchical SRCU implementation. +[ 0.045124] smp: Bringing up secondary CPUs ... +[ 0.050217] smp: Brought up 1 node, 2 CPUs +[ 0.054346] devtmpfs: initialized +[ 0.070924] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns +[ 0.079996] pinctrl core: initialized pinctrl subsystem +[ 0.119893] clocksource: Switched to clocksource clint_clocksource +[ 0.131992] workingset: timestamp_bits=62 max_order=11 bucket_order=0 +[ 0.179099] k210-sysctl 50440000.syscon: K210 system controller +[ 0.194904] k210-rst 50440000.syscon:reset-controller: K210 reset controller +[ 0.203108] cacheinfo: Unable to detect cache hierarchy for CPU 0 +[ 0.213867] i2c_dev: i2c /dev entries driver +[ 0.223397] k210-fpioa 502b0000.pinmux: K210 FPIOA pin controller +[ 0.235632] 38000000.serial: ttySIF0 at MMIO 0x38000000 (irq = 1, base_baud = 115200) is a SiFive UART v0 +[ 0.244585] printk: console [ttySIF0] enabled +[ 0.244585] printk: console [ttySIF0] enabled +[ 0.253190] printk: bootconsole [sifive0] disabled +[ 0.253190] printk: bootconsole [sifive0] disabled +[ 0.264820] panel@0 enforce active low on chipselect handle +[ 0.281482] Freeing unused kernel image (initmem) memory: 524K +[ 0.286621] This architecture does not have kernel memory protection. +[ 0.293047] Run /init as init process + __ _ + / / (_) ____ _ _ __ __ + / / | || _ \ | | | |\ \/ / + / /___| || | | || |_| | > < + /_____/|_||_| |_| \____|/_/\_\ + 64-bits RISC-V Kendryte K210 NOMMU + +/ # +``` + +To open a terminal console without re-flashing the board, the pyserial-miniterm +host tool can be used. + +``` +$ output/host/bin/pyserial-miniterm --raw --eol=LF /dev/ttyUSB0 115200 +``` + +The options "--raw" and "--eol=LF" are added here to avoid a double carriage +return each time a command is entered. + + +U-Boot SD-Card Boot +------------------- + +The build procedure is similar to the built-in initramfs case. + +``` +$ make sipeed_maixduino_sdcard_defconfig +$ make +``` + +The build process will generate two files under the output/images directory. + +* sdcard.img: The image file for the SD card filesystem. This image has 2 + partitions. The first partition is a vfat partition containing the kernel + uImage and the board device tree binary. The second partition is the root + filesystem with busybox installed. The second partition is formatted using + ext2 (rev1). + +* uboot.bin: U-Boot bootable binary to load and boot the kernel from the SD + card. + +The SD card can be prepared by writing the sdcard.img file, as follows. + +``` +$ sudo dd if=output/images/sdcard.img of=/dev/sdX bs=1M +$ sync +$ eject /dev/sdX +``` + +Where /dev/sdX is the device file name of the SD card. Once completed, the SD +card can be inserted into the board and the U-Boot binary image written to the +board boot flash using the kflash utility. + +``` +$ output/host/bin/kflash -b 1500000 -p /dev/ttyUSB0 -t output/images/u-boot.bin +``` + +The above command will program U-Boot image to the board boot ROM and open a +terminal console once the u-boot.bin file is fully programmed. Reboot into the +newly programmed environment by pressing the board reset button. + +The output will be similar to the following. + +``` +[ 0.000000] Linux version 5.18.0 (foo@bar.com) (riscv64-buildroot-linux-uclibc-gcc.br_real (Buildroot 2022.02-560-g6a2b542a09-dirty) 10.3.0, GNU ld (GNU Binutils) 2.32) #1 SMP Thu Apr 21 15:30:18 JST 2022 +[ 0.000000] Machine model: SiPeed MAIXDUINO +[ 0.000000] earlycon: sifive0 at MMIO 0x0000000038000000 (options '115200n8') +[ 0.000000] printk: bootconsole [sifive0] enabled +[ 0.000000] Zone ranges: +[ 0.000000] DMA32 [mem 0x0000000080000000-0x00000000807fffff] +[ 0.000000] Normal empty +[ 0.000000] Movable zone start for each node +[ 0.000000] Early memory node ranges +[ 0.000000] node 0: [mem 0x0000000080000000-0x00000000807fffff] +[ 0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000807fffff] +[ 0.000000] riscv: ISA extensions acdfim +[ 0.000000] riscv: ELF capabilities acdfim +[ 0.000000] percpu: max_distance=0x16000 too large for vmalloc space 0x0 +[ 0.000000] percpu: Embedded 11 pages/cpu s15392 r0 d29664 u45056 +[ 0.000000] percpu: wasting 10 pages per chunk +[ 0.000000] Built 1 zonelists, mobility grouping off. Total pages: 2020 +[ 0.000000] Kernel command line: earlycon console=ttySIF0 root=/dev/mmcblk0p2 rootwait ro +[ 0.000000] Dentry cache hash table entries: 1024 (order: 1, 8192 bytes, linear) +[ 0.000000] Inode-cache hash table entries: 512 (order: 0, 4096 bytes, linear) +[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off +[ 0.000000] Memory: 6156K/8192K available (1180K kernel code, 151K rwdata, 239K rodata, 102K init, 69K bss, 2036K reserved, 0K cma-reserved) +[ 0.000000] rcu: Hierarchical RCU implementation. +[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies. +[ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 +[ 0.000000] riscv-intc: 64 local interrupts mapped +[ 0.000000] plic: interrupt-controller@c000000: mapped 65 interrupts with 2 handlers for 4 contexts. +[ 0.000000] k210-clk: clock-controller: CPU running at 390 MHz +[ 0.000000] clint: timer@2000000: timer running at 7800000 Hz +[ 0.000000] clocksource: clint_clocksource: mask: 0xffffffffffffffff max_cycles: 0x3990be68b, max_idle_ns: 881590404272 ns +[ 0.000001] sched_clock: 64 bits at 7MHz, resolution 128ns, wraps every 4398046511054ns +[ 0.008191] Calibrating delay loop (skipped), value calculated using timer frequency.. 15.60 BogoMIPS (lpj=31200) +[ 0.018255] pid_max: default: 4096 minimum: 301 +[ 0.022876] Mount-cache hash table entries: 512 (order: 0, 4096 bytes, linear) +[ 0.029982] Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes, linear) +[ 0.040417] rcu: Hierarchical SRCU implementation. +[ 0.045397] smp: Bringing up secondary CPUs ... +[ 0.050513] smp: Brought up 1 node, 2 CPUs +[ 0.054680] devtmpfs: initialized +[ 0.072127] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns +[ 0.081205] pinctrl core: initialized pinctrl subsystem +[ 0.125074] clocksource: Switched to clocksource clint_clocksource +[ 0.138311] workingset: timestamp_bits=62 max_order=11 bucket_order=0 +[ 0.183471] k210-sysctl 50440000.syscon: K210 system controller +[ 0.199873] k210-rst 50440000.syscon:reset-controller: K210 reset controller +[ 0.208858] cacheinfo: Unable to detect cache hierarchy for CPU 0 +[ 0.221586] i2c_dev: i2c /dev entries driver +[ 0.232786] k210-fpioa 502b0000.pinmux: K210 FPIOA pin controller +[ 0.246572] 38000000.serial: ttySIF0 at MMIO 0x38000000 (irq = 1, base_baud = 115200) is a SiFive UART v0 +[ 0.255508] printk: console [ttySIF0] enabled +[ 0.255508] printk: console [ttySIF0] enabled +[ 0.264137] printk: bootconsole [sifive0] disabled +[ 0.264137] printk: bootconsole [sifive0] disabled +[ 0.275560] panel@0 enforce active low on chipselect handle +[ 0.313245] mmc_spi spi3.0: SD/MMC host mmc0, no WP, no poweroff, cd polling +[ 0.322845] Waiting for root device /dev/mmcblk0p2... +[ 0.345869] mmc0: host does not support reading read-only switch, assuming write-enable +[ 0.353221] mmc0: new SDHC card on SPI +[ 0.360233] mmcblk0: mmc0:0000 SA16G 14.5 GiB +[ 0.368350] random: fast init done +[ 0.372926] mmcblk0: p1 p2 +[ 0.391887] random: get_random_bytes called from 0x000000008009b7d2 with crng_init=1 +[ 0.400427] VFS: Mounted root (ext2 filesystem) readonly on device 179:2. +[ 0.410128] devtmpfs: mounted +[ 0.412628] Freeing unused kernel image (initmem) memory: 96K +[ 0.418137] This architecture does not have kernel memory protection. +[ 0.424530] Run /sbin/init as init process +[ 0.563384] random: crng init done + __ _ + / / (_) ____ _ _ __ __ + / / | || _ \ | | | |\ \/ / + / /___| || | | || |_| | > < + /_____/|_||_| |_| \____|/_/\_\ + 64-bits RISC-V Kendryte K210 NOMMU + +/ # +``` + +Of note is that the kernel mounts the SD card as read-only by default to avoid +corruptions of the ext2 root file system when the board is powered down. This +is recommended as this board does not support clean shutdown or halt. + +Similarly to the initramfs build case, a console can be open without +re-flashing the board using the host tool pyserial-miniterm. + +``` +$ output/host/bin/pyserial-miniterm --raw --eol=LF /dev/ttyUSB0 115200 +``` diff --git a/board/solidrun/clearfog/extlinux.conf b/board/solidrun/clearfog/extlinux.conf new file mode 100644 index 000000000..f35974e3e --- /dev/null +++ b/board/solidrun/clearfog/extlinux.conf @@ -0,0 +1,4 @@ +label Clearfog Linux + kernel /boot/zImage + devicetree /boot/armada-388-clearfog-base.dtb + append console=ttyS0,115200n8 root=/dev/mmcblk0p1 rootwait diff --git a/board/solidrun/clearfog/genimage.cfg b/board/solidrun/clearfog/genimage.cfg new file mode 100644 index 000000000..8963619cc --- /dev/null +++ b/board/solidrun/clearfog/genimage.cfg @@ -0,0 +1,16 @@ +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot-spl.kwb" + offset = 512 + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + offset = 1M + } +} diff --git a/board/solidrun/clearfog/linux.fragment b/board/solidrun/clearfog/linux.fragment new file mode 100644 index 000000000..b7ed5b00d --- /dev/null +++ b/board/solidrun/clearfog/linux.fragment @@ -0,0 +1 @@ +CONFIG_SENSORS_MCP3021=y diff --git a/board/solidrun/clearfog/post-build.sh b/board/solidrun/clearfog/post-build.sh new file mode 100755 index 000000000..1f5ff6a61 --- /dev/null +++ b/board/solidrun/clearfog/post-build.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" + +install -m 0644 -D $BOARD_DIR/extlinux.conf $TARGET_DIR/boot/extlinux/extlinux.conf diff --git a/board/solidrun/clearfog/readme.txt b/board/solidrun/clearfog/readme.txt new file mode 100644 index 000000000..60bf95329 --- /dev/null +++ b/board/solidrun/clearfog/readme.txt @@ -0,0 +1,61 @@ +********************** +SolidRun Clearfog Base +********************** + +This file documents Buildroot's support for the Clearfog Base by Solid Run. + +Vendor's documentation: +https://wiki.solid-run.com/doku.php?id=products:a38x:documents + +Warning for eMMC variant of the MicroSoM +======================================== + +If you bought a MicroSoM version that includes an on-board eMMC flash, the +built-in microSD card slot *WILL NOT WORK*. The Internet says that you have to +upload the first bootloader via UART. This manual does not cover these steps; +only MicroSoMs without the eMMC are supported. + +Build +===== + +Start with the default Buildroot's configuration for Clearfog: + + make solidrun_clearfog_defconfig + +Build all components: + + make + +The results of the build are available in ./output/images. + +Create a bootable SD card +========================= + +To determine the device associated to the SD card have a look in the +/proc/partitions file: + + cat /proc/partitions + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped on a microSD card. Launch the following +command as root: + + dd if=output/images/sdcard.img of=/dev/ conv=fdatasync + +*** WARNING! The dd command will destroy all the card content. Use with care! *** + +For details about the medium image layout, see the definition in +board/solidrun/clearfog/genimage.cfg. + +Boot the Clearfog board +======================= + +Here's how to boot the board: + +- Set up the DIP switches for microSD boot. The correct values are: + 1: off, 2: off, 3: ON, 4: ON, 5: ON. In this scheme, switch #1" is closer to + the ethernet ports and #5 is closer to the microSD card, "ON" means towards + the SOM, and "off" means towards the SFP cage. +- Connect to the board's console over the microUSB port. +- Insert the SD card into the slot on the board (pins up). +- Power up the board. diff --git a/board/solidrun/clearfog_gt_8k/extlinux.conf b/board/solidrun/clearfog_gt_8k/extlinux.conf new file mode 100644 index 000000000..aae0c0d5f --- /dev/null +++ b/board/solidrun/clearfog_gt_8k/extlinux.conf @@ -0,0 +1,4 @@ +label Clearfog GT-8K Linux + kernel /boot/Image + devicetree /boot/armada-8040-clearfog-gt-8k.dtb + append console=ttyS0,115200n8 root=/dev/mmcblk1p1 rootwait diff --git a/board/solidrun/clearfog_gt_8k/genimage.cfg b/board/solidrun/clearfog_gt_8k/genimage.cfg new file mode 120000 index 000000000..0cc2754ff --- /dev/null +++ b/board/solidrun/clearfog_gt_8k/genimage.cfg @@ -0,0 +1 @@ +../macchiatobin/genimage.cfg \ No newline at end of file diff --git a/board/solidrun/clearfog_gt_8k/linux-extras.config b/board/solidrun/clearfog_gt_8k/linux-extras.config new file mode 100644 index 000000000..24f4f5542 --- /dev/null +++ b/board/solidrun/clearfog_gt_8k/linux-extras.config @@ -0,0 +1,6 @@ +CONFIG_MARVELL_PHY=y +CONFIG_SFP=y +CONFIG_IPV6=y +CONFIG_BRIDGE=y +CONFIG_NET_DSA=y +CONFIG_NET_DSA_MV88E6XXX=y diff --git a/board/solidrun/clearfog_gt_8k/post-build-mainline.sh b/board/solidrun/clearfog_gt_8k/post-build-mainline.sh new file mode 120000 index 000000000..a8c9a5243 --- /dev/null +++ b/board/solidrun/clearfog_gt_8k/post-build-mainline.sh @@ -0,0 +1 @@ +../macchiatobin/post-build-mainline.sh \ No newline at end of file diff --git a/board/solidrun/clearfog_gt_8k/readme.txt b/board/solidrun/clearfog_gt_8k/readme.txt new file mode 100644 index 000000000..1648ffa38 --- /dev/null +++ b/board/solidrun/clearfog_gt_8k/readme.txt @@ -0,0 +1,61 @@ +Intro +===== + +The default configuration described below will allow you to start +experimenting with the buildroot environment for the SolidRun Clearfog GT-8K +based on the Marvell Armada 8040 SoC. + +This default configuration will bring up the board and allow shell command +line access through the serial console. + +How to build +============ + + $ make solidrun_clearfog_gt_8k_defconfig + $ make + +How to write the SD card +======================== + +Once the build process is finished you will have an image file named +"sdcard.img" in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX bs=1M conv=fsync + +How to boot the board +===================== + +The Clearfog GT-8K can be setup to load the bootloader from different sources +including eMMC, SPI flash, and SD-card. + +To select boot from SD-card the DIP switches in SW6 (at the bottom of the +board) should be configured as follows: + + SW6: 11010 + +Insert the micro SDcard in the Cleargfog GT-8K and power it up. + +Serial console +============== + +The serial console is accessible at the J27 pins header (TTL UART) with the +following pinout (pin #1 is marked with triangle on the PCB): + + pin #1: Ground + pin #2: Armada 8040 Rx + pin #3: Armada 8040 Tx + +Enable the switch (yellow) Ethernet ports +========================================= + +To enable the Clearfog GT-8K internal switch port make sure to load the +'mv88e6xxx' kernel module, and up the switch up-link port (eth2 by default): + + modprobe mv88e6xxx + ifconfig eth2 up + +Then you can configure each switch port separately. These port are named +'lan1' to 'lan4' by default. 'lan1' is closest to the USB port, while 'lan4' +is closest to the blue Ethernet port. diff --git a/board/solidrun/clearfog_gt_8k/uboot-fragment.config b/board/solidrun/clearfog_gt_8k/uboot-fragment.config new file mode 120000 index 000000000..996c4aa6b --- /dev/null +++ b/board/solidrun/clearfog_gt_8k/uboot-fragment.config @@ -0,0 +1 @@ +../macchiatobin/uboot-fragment.config \ No newline at end of file diff --git a/board/solidrun/macchiatobin/extlinux.conf b/board/solidrun/macchiatobin/extlinux.conf new file mode 100644 index 000000000..1008af1af --- /dev/null +++ b/board/solidrun/macchiatobin/extlinux.conf @@ -0,0 +1,4 @@ +label Macchiatobin Linux + kernel /boot/Image + devicetree /boot/armada-8040-mcbin.dtb + append console=ttyS0,115200n8 root=/dev/mmcblk1p1 rootwait diff --git a/board/solidrun/macchiatobin/genimage.cfg b/board/solidrun/macchiatobin/genimage.cfg new file mode 100644 index 000000000..378e2082e --- /dev/null +++ b/board/solidrun/macchiatobin/genimage.cfg @@ -0,0 +1,16 @@ +image sdcard.img { + hdimage { + } + + partition uboot { + in-partition-table = "no" + image = "flash-image.bin" + offset = 2M + } + + partition rootfs { + partition-type = 0x83 + offset = 34M + image = "rootfs.ext4" + } +} diff --git a/board/solidrun/macchiatobin/linux-extras.config b/board/solidrun/macchiatobin/linux-extras.config new file mode 100644 index 000000000..29fd63062 --- /dev/null +++ b/board/solidrun/macchiatobin/linux-extras.config @@ -0,0 +1,3 @@ +CONFIG_MARVELL_PHY=y +CONFIG_MARVELL_10G_PHY=y +CONFIG_SFP=y diff --git a/board/solidrun/macchiatobin/post-build-mainline.sh b/board/solidrun/macchiatobin/post-build-mainline.sh new file mode 100755 index 000000000..1f5ff6a61 --- /dev/null +++ b/board/solidrun/macchiatobin/post-build-mainline.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" + +install -m 0644 -D $BOARD_DIR/extlinux.conf $TARGET_DIR/boot/extlinux/extlinux.conf diff --git a/board/solidrun/macchiatobin/post-build.sh b/board/solidrun/macchiatobin/post-build.sh new file mode 100755 index 000000000..9c1b5b883 --- /dev/null +++ b/board/solidrun/macchiatobin/post-build.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" + +install -m 0644 -D ${BOARD_DIR}/uEnv-example.txt ${TARGET_DIR}/boot/uEnv-example.txt diff --git a/board/solidrun/macchiatobin/readme.txt b/board/solidrun/macchiatobin/readme.txt new file mode 100644 index 000000000..ef5a6cba6 --- /dev/null +++ b/board/solidrun/macchiatobin/readme.txt @@ -0,0 +1,79 @@ +Intro +===== + +This default configuration will allow you to start experimenting with +the buildroot environment for the MacchiatoBin board based on the +Marvell Armada 8040 SoC. Documentation for the board hardware and +software is available on the wiki at: http://wiki.macchiatobin.net + +This default configuration will bring up the board and allow access +through the serial console. + +How to build +============ + +Default configuration provides the following BSP versions: + - Linux v5.10.5 + - U-Boot v2020.10 + - ATF v2.4 + +To build images run the following commands: + + $ make solidrun_macchiatobin_defconfig + $ make + +How to write the SD card +======================== + +Once the build process is finished you will have an image +called "sdcard.img" in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX bs=1M conv=fsync + $ sudo sync + +How to boot the board +===================== + +The MacchiatoBin board can be setup to load the bootloader from +different sources including eMMC, SPI flash, and SD-card. + +On Rev 1.2 board to select boot from SD-card the DIP switches +SW1 and SW2 should be configured as follows: + +SW2: 01110 +SW1: 1xxxx + +The upcoming Rev 1.3 board will have a single pins header J1 instead +of the SW1/2 DIP switches. To boot from SD-card the setting of J1 +jumpers should match the DIP switches of Rev v1.2 board +from left to right: + +J1: 011101xxxx + +Insert the micro SDcard in the MacchiatoBin board and power it up. +The serial console is accessible at the micro-USB Type-B connector +marked CON9. The serial line settings are 115200 8N1. + +U-Boot environment +================== + +By default current configuration provides U-Boot that keeps environment +in SD/eMMC. However, if needed, u-boot-fragment.config can be tweaked +so that U-Boot will keep environment in SPI flash. On the first boot +SPI flash may be empty or it may contain a stale environment that +prevents proper boot. Then the following commands can be used +to boot the board: + +=> ext4load mmc 1:1 0x01700000 /boot/uEnv-example.txt +=> env import -t 0x01700000 $filesize +=> boot + +The example environment from uEnv-example.txt can be written to +SPI flash using the following commands: + +=> env default -f -a +=> ext4load mmc 1:1 0x01700000 /boot/uEnv-example.txt +=> env import -t 0x01700000 $filesize +=> saveenv diff --git a/board/solidrun/macchiatobin/uEnv-example.txt b/board/solidrun/macchiatobin/uEnv-example.txt new file mode 100644 index 000000000..1967e2bad --- /dev/null +++ b/board/solidrun/macchiatobin/uEnv-example.txt @@ -0,0 +1,7 @@ +bootargs=console=ttyS0,115200 root=/dev/mmcblk1p1 rw rootwait +fdt_addr=0x1000000 +fdt_high=0xffffffffffffffff +fdt_name=boot/armada-8040-mcbin.dtb +kernel_addr=0x2000000 +image_name=boot/Image +bootcmd=mmc dev 1; ext4load mmc 1:1 $kernel_addr $image_name; ext4load mmc 1:1 $fdt_addr $fdt_name; booti $kernel_addr - $fdt_addr diff --git a/board/solidrun/macchiatobin/uboot-fragment.config b/board/solidrun/macchiatobin/uboot-fragment.config new file mode 100644 index 000000000..717a09424 --- /dev/null +++ b/board/solidrun/macchiatobin/uboot-fragment.config @@ -0,0 +1,2 @@ +CONFIG_ENV_IS_IN_MMC=y +# CONFIG_ENV_IS_IN_SPI_FLASH is not set diff --git a/board/solidrun/mx6cubox/readme.txt b/board/solidrun/mx6cubox/readme.txt new file mode 100644 index 000000000..630ab6c75 --- /dev/null +++ b/board/solidrun/mx6cubox/readme.txt @@ -0,0 +1,18 @@ +Solidrun's MX6 Cubox/Hummingboard + +https://www.solid-run.com/freescale-imx6-family/hummingboard/ + +https://www.solid-run.com/freescale-imx6-family/cubox-i/ + +To build a minimal support for these boards: + + $ make mx6cubox_defconfig + $ make + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped on an SD card: + +dd if=output/images/sdcard.img of=/dev/ + +For details about the medium image layout, see the definition in +board/solidrun/mx6cubox/genimage.cfg. diff --git a/board/solidrun/mx6cubox/rootfs_overlay/boot/extlinux/extlinux.conf b/board/solidrun/mx6cubox/rootfs_overlay/boot/extlinux/extlinux.conf new file mode 100644 index 000000000..d01106635 --- /dev/null +++ b/board/solidrun/mx6cubox/rootfs_overlay/boot/extlinux/extlinux.conf @@ -0,0 +1,4 @@ +Label imx6qdl-cubox Buildroot + kernel ../zImage + fdtdir ../ + append root=PARTUUID=${uuid} rootwait rw console=${console},${baudrate} diff --git a/board/spike/riscv64/readme.txt b/board/spike/riscv64/readme.txt new file mode 100644 index 000000000..5ad7df46d --- /dev/null +++ b/board/spike/riscv64/readme.txt @@ -0,0 +1,39 @@ +Linux on Spike RISC-V ISA simulator +=================================== + +This configuration provides a minimal working setup to run a Linux +kernel in the Spike RISC-V ISA simulator. + +The Spike ISA simulator can be an interresting alternative to Qemu, in +some specific cases. For example: simulating new instructions (see [1]), +simulating riscv-openocd/gdb debug sessions (see [2], [3]), or +generating an accurate per-instruction log of execution (see +riscv-isa-sim spike -l option)... + +To run Buildroot Linux in Spike, use the commands: + + make spike_riscv64_defconfig + make + ./board/spike/riscv64/start.sh + +The boot is made with the standard RISC-V OpenSBI boot loader. In +order to keep the simulation simple, the rootfs is passed as an initrd +ramfs. + +Note: at the time of this writing, Spike v1.1.0 and OpenSBI v1.0 does +not support console input emulation for 32bit RISC-V systems. A 32bit +Linux system can boot and reach the login, but it's not possible to +login. See [4]. + + +[1]. +https://github.com/riscv-software-src/riscv-isa-sim/tree/v1.1.0#simulating-a-new-instruction + +[2]. +https://github.com/riscv-software-src/riscv-isa-sim/tree/v1.1.0#debugging-with-gdb + +[3]. +https://github.com/riscv/riscv-openocd + +[4]. +https://github.com/riscv-software-src/opensbi/blob/v1.0/lib/utils/sys/htif.c#L127 diff --git a/board/spike/riscv64/start.sh b/board/spike/riscv64/start.sh new file mode 100755 index 000000000..6fbbced80 --- /dev/null +++ b/board/spike/riscv64/start.sh @@ -0,0 +1,17 @@ +#! /bin/sh + +SCRIPT_DIR="$(dirname "$0")" +BR_BASEDIR="$(readlink -e "${SCRIPT_DIR}/../../..")" + +# spike uses dtc at runtime startup, so make sure buildroot host +# directory is in the PATH +export PATH="${BR_BASEDIR}/output/host/usr/bin:$PATH" + +# Use Buildroot host spike by default, but allow the caller to +# redefine another spike binary +: "${SPIKE:=spike}" + +exec "${SPIKE}" \ + --initrd "${BR_BASEDIR}"/output/images/rootfs.cpio \ + "${@}" \ + "${BR_BASEDIR}"/output/images/fw_payload.elf diff --git a/board/stmicroelectronics/common/stm32f4xx/stm32-post-build.sh b/board/stmicroelectronics/common/stm32f4xx/stm32-post-build.sh new file mode 100755 index 000000000..e324afe59 --- /dev/null +++ b/board/stmicroelectronics/common/stm32f4xx/stm32-post-build.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +# Kernel is built without devpts support +sed -i '/^devpts/d' ${TARGET_DIR}/etc/fstab + +# Kernel is built without network support +rm -f ${TARGET_DIR}/etc/init.d/S40network +rm -rf ${TARGET_DIR}/etc/network/ diff --git a/board/stmicroelectronics/common/stm32mp157/genimage.cfg.template b/board/stmicroelectronics/common/stm32mp157/genimage.cfg.template new file mode 100644 index 000000000..ff4aeceee --- /dev/null +++ b/board/stmicroelectronics/common/stm32mp157/genimage.cfg.template @@ -0,0 +1,23 @@ +image sdcard.img { + hdimage { + partition-table-type = "gpt" + } + + partition fsbl1 { + image = "%ATFBIN%" + } + + partition fsbl2 { + image = "%ATFBIN%" + } + + partition ssbl { + image = "u-boot.stm32" + size = 2M + } + + partition rootfs { + image = "rootfs.ext4" + bootable = "yes" + } +} diff --git a/board/stmicroelectronics/common/stm32mp157/post-image.sh b/board/stmicroelectronics/common/stm32mp157/post-image.sh new file mode 100755 index 000000000..363c3127c --- /dev/null +++ b/board/stmicroelectronics/common/stm32mp157/post-image.sh @@ -0,0 +1,38 @@ +#!/usr/bin/env bash + +# +# atf_image extracts the ATF binary image from DTB_FILE_NAME that appears in +# BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES in ${BR_CONFIG}, +# then prints the corresponding file name for the genimage +# configuration file +# +atf_image() +{ + local ATF_VARIABLES="$(sed -n 's/^BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="\([\/a-zA-Z0-9_=. \-]*\)"$/\1/p' ${BR2_CONFIG})" + + if grep -Eq "DTB_FILE_NAME=stm32mp157c-dk2.dtb" <<< ${ATF_VARIABLES}; then + echo "tf-a-stm32mp157c-dk2.stm32" + elif grep -Eq "DTB_FILE_NAME=stm32mp157a-dk1.dtb" <<< ${ATF_VARIABLES}; then + echo "tf-a-stm32mp157a-dk1.stm32" + elif grep -Eq "DTB_FILE_NAME=stm32mp157a-avenger96.dtb" <<< ${ATF_VARIABLES}; then + echo "tf-a-stm32mp157a-avenger96.stm32" + fi +} + +main() +{ + local ATFBIN="$(atf_image)" + local GENIMAGE_CFG="$(mktemp --suffix genimage.cfg)" + local GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + + sed -e "s/%ATFBIN%/${ATFBIN}/" \ + board/stmicroelectronics/common/stm32mp157/genimage.cfg.template > ${GENIMAGE_CFG} + + support/scripts/genimage.sh -c ${GENIMAGE_CFG} + + rm -f ${GENIMAGE_CFG} + + exit $? +} + +main $@ diff --git a/board/stmicroelectronics/stm32f429-disco/flash.sh b/board/stmicroelectronics/stm32f429-disco/flash.sh new file mode 100755 index 000000000..3e2bf121d --- /dev/null +++ b/board/stmicroelectronics/stm32f429-disco/flash.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +OUTPUT_DIR=$1 +BOARD_NAME=${2:-stm32f429discovery} + +if ! test -d "${OUTPUT_DIR}" ; then + echo "ERROR: no output directory specified." + echo "Usage: $0 OUTPUT_DIR BOARD_NAME" + echo "" + echo "Arguments:" + echo " OUTPUT_DIR The Buildroot output directory." + echo " BOARD_NAME One of the available boards among:" + echo " stm32f429discovery, stm32f429disc1" + exit 1 +fi + +${OUTPUT_DIR}/host/bin/openocd -f board/${BOARD_NAME}.cfg \ + -c "init" \ + -c "reset init" \ + -c "flash probe 0" \ + -c "flash info 0" \ + -c "flash write_image erase ${OUTPUT_DIR}/images/stm32f429i-disco.bin 0x08000000" \ + -c "flash write_image erase ${OUTPUT_DIR}/images/stm32f429-disco.dtb 0x08004000" \ + -c "flash write_image erase ${OUTPUT_DIR}/images/xipImage 0x0800C000" \ + -c "reset run" \ + -c "shutdown" diff --git a/board/stmicroelectronics/stm32f429-disco/linux.config b/board/stmicroelectronics/stm32f429-disco/linux.config new file mode 100644 index 000000000..7b5c60f18 --- /dev/null +++ b/board/stmicroelectronics/stm32f429-disco/linux.config @@ -0,0 +1,120 @@ +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_KERNEL_XZ=y +CONFIG_NO_HZ_IDLE=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_PREEMPT=y +CONFIG_LOG_BUF_SHIFT=12 +CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=10 +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="${BR_BINARIES_DIR}/rootfs.cpio" +# CONFIG_RD_GZIP is not set +# CONFIG_RD_BZIP2 is not set +# CONFIG_RD_LZMA is not set +# CONFIG_RD_XZ is not set +# CONFIG_RD_LZO is not set +# CONFIG_RD_LZ4 is not set +# CONFIG_RD_ZSTD is not set +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +# CONFIG_MULTIUSER is not set +# CONFIG_SYSFS_SYSCALL is not set +# CONFIG_FHANDLE is not set +CONFIG_POSIX_TIMERS=y +CONFIG_BUG=y +# CONFIG_BASE_FULL is not set +# CONFIG_FUTEX is not set +# CONFIG_EPOLL is not set +# CONFIG_SIGNALFD is not set +# CONFIG_TIMERFD is not set +# CONFIG_EVENTFD is not set +# CONFIG_AIO is not set +# CONFIG_IO_URING is not set +# CONFIG_ADVISE_SYSCALLS is not set +# CONFIG_MEMBARRIER is not set +# CONFIG_KALLSYMS is not set +CONFIG_KCMP=y +# CONFIG_RSEQ is not set +CONFIG_EMBEDDED=y +# CONFIG_VM_EVENT_COUNTERS is not set +# CONFIG_COMPAT_BRK is not set +CONFIG_SLOB=y +# CONFIG_SLAB_MERGE_DEFAULT is not set +# CONFIG_MMU is not set +CONFIG_ARCH_STM32=y +# CONFIG_MACH_STM32F469 is not set +# CONFIG_MACH_STM32F746 is not set +# CONFIG_MACH_STM32F769 is not set +# CONFIG_MACH_STM32H743 is not set +CONFIG_CPU_V7M_NUM_IRQ=240 +# CONFIG_ARM_DMA_MEM_BUFFERABLE is not set +CONFIG_SET_MEM_PARAM=y +CONFIG_DRAM_BASE=0x90000000 +CONFIG_DRAM_SIZE=0x00800000 +CONFIG_HZ_1000=y +# CONFIG_ATAGS is not set +CONFIG_XIP_KERNEL=y +CONFIG_XIP_PHYS_ADDR=0x0800C000 +CONFIG_XIP_DEFLATED_DATA=y +# CONFIG_SUSPEND is not set +# CONFIG_STACKPROTECTOR is not set +# CONFIG_COMPAT_32BIT_TIME is not set +# CONFIG_GCC_PLUGINS is not set +# CONFIG_BLOCK is not set +CONFIG_BINFMT_FLAT=y +CONFIG_BINFMT_SHARED_FLAT=y +# CONFIG_COREDUMP is not set +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +# CONFIG_STANDALONE is not set +# CONFIG_PREVENT_FIRMWARE_BUILD is not set +# CONFIG_FW_LOADER is not set +# CONFIG_ALLOW_DEV_COREDUMP is not set +CONFIG_EEPROM_93CX6=y +# CONFIG_INPUT is not set +# CONFIG_VT is not set +# CONFIG_UNIX98_PTYS is not set +# CONFIG_LEGACY_PTYS is not set +# CONFIG_LDISC_AUTOLOAD is not set +CONFIG_SERIAL_STM32=y +CONFIG_SERIAL_STM32_CONSOLE=y +# CONFIG_DEVMEM is not set +# CONFIG_HWMON is not set +CONFIG_WATCHDOG=y +CONFIG_MFD_STM32_TIMERS=y +# CONFIG_USB_SUPPORT is not set +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_STM32=y +CONFIG_DMADEVICES=y +CONFIG_STM32_DMA=y +CONFIG_STM32_DMAMUX=y +CONFIG_STM32_MDMA=y +CONFIG_SYNC_FILE=y +# CONFIG_VIRTIO_MENU is not set +# CONFIG_VHOST_MENU is not set +CONFIG_IIO=y +CONFIG_IIO_BUFFER=y +CONFIG_IIO_TRIGGERED_BUFFER=y +CONFIG_IIO_STM32_TIMER_TRIGGER=y +# CONFIG_FILE_LOCKING is not set +# CONFIG_DNOTIFY is not set +# CONFIG_INOTIFY_USER is not set +# CONFIG_PROC_SYSCTL is not set +CONFIG_CONFIGFS_FS=y +# CONFIG_MISC_FILESYSTEMS is not set +CONFIG_NLS=y +CONFIG_PRINTK_TIME=y +CONFIG_CONSOLE_LOGLEVEL_DEFAULT=15 +CONFIG_CONSOLE_LOGLEVEL_QUIET=15 +CONFIG_MESSAGE_LOGLEVEL_DEFAULT=7 +# CONFIG_SYMBOLIC_ERRNAME is not set +CONFIG_DEBUG_INFO=y +# CONFIG_SECTION_MISMATCH_WARN_ONLY is not set +CONFIG_DEBUG_FS=y +# CONFIG_DEBUG_MISC is not set +# CONFIG_SCHED_DEBUG is not set +# CONFIG_RCU_TRACE is not set +# CONFIG_RUNTIME_TESTING_MENU is not set diff --git a/board/stmicroelectronics/stm32f429-disco/readme.txt b/board/stmicroelectronics/stm32f429-disco/readme.txt new file mode 100644 index 000000000..f512cb2e9 --- /dev/null +++ b/board/stmicroelectronics/stm32f429-disco/readme.txt @@ -0,0 +1,37 @@ +STM32F429 Discovery +=================== + +This tutorial describes how to use the predefined Buildroot +configuration for the STM32F429 Discovery evaluation platform. + +Supported HW +------------ + + - STM32F429I-DISCO evaluation board + - STM32F429I-DISC1 evaluation board + +Building +-------- + + make stm32f429_disco_defconfig + make + +Wire the UART +------------- + +Use a USB to TTL adapter, and connect: + + - RX to PA9 + - TX to PA10 + - GND to one of the GND available on the board + +The UART is configured at 115200. + +Flashing +-------- + + ./board/stmicroelectronics/stm32f429-disco/flash.sh output/ \ + {stm32f429discovery|stm32f429disc1} + +It will flash the minimal bootloader, the Device Tree Blob, and the +kernel image which includes the root filesystem as initramfs. diff --git a/board/stmicroelectronics/stm32f469-disco/extlinux.conf b/board/stmicroelectronics/stm32f469-disco/extlinux.conf new file mode 100644 index 000000000..1c2db4383 --- /dev/null +++ b/board/stmicroelectronics/stm32f469-disco/extlinux.conf @@ -0,0 +1,4 @@ +label stm32f469-disco-buildroot + kernel /zImage + devicetree /stm32f469-disco.dtb + append console=ttySTM0,115200 root=/dev/mmcblk0p2 rw rootfstype=ext2 rootwait earlyprintk consoleblank=0 ignore_loglevel diff --git a/board/stmicroelectronics/stm32f469-disco/flash_sd.sh b/board/stmicroelectronics/stm32f469-disco/flash_sd.sh new file mode 100755 index 000000000..984d2b259 --- /dev/null +++ b/board/stmicroelectronics/stm32f469-disco/flash_sd.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +OUTPUT_DIR=$1 + +if ! test -d "${OUTPUT_DIR}" ; then + echo "ERROR: no output directory specified." + echo "Usage: $0 OUTPUT_DIR" + exit 1 +fi + +${OUTPUT_DIR}/host/bin/openocd -f board/stm32f469discovery.cfg \ + -c "init" \ + -c "reset init" \ + -c "flash probe 0" \ + -c "flash info 0" \ + -c "flash write_image erase ${OUTPUT_DIR}/images/u-boot.bin 0x08000000" \ + -c "reset run" \ + -c "shutdown" diff --git a/board/stmicroelectronics/stm32f469-disco/flash_xip.sh b/board/stmicroelectronics/stm32f469-disco/flash_xip.sh new file mode 100755 index 000000000..da27cd327 --- /dev/null +++ b/board/stmicroelectronics/stm32f469-disco/flash_xip.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +OUTPUT_DIR=$1 + +if ! test -d "${OUTPUT_DIR}"; then + echo "ERROR: no output directory specified." + echo "Usage: $0 OUTPUT_DIR" + exit 1 +fi + +${OUTPUT_DIR}/host/bin/openocd -f board/stm32f469discovery.cfg \ + -c "init" \ + -c "reset init" \ + -c "flash probe 0" \ + -c "flash info 0" \ + -c "flash write_image erase ${OUTPUT_DIR}/images/stm32f469i-disco.bin 0x08000000" \ + -c "flash write_image erase ${OUTPUT_DIR}/images/stm32f469-disco.dtb 0x08004000" \ + -c "flash write_image erase ${OUTPUT_DIR}/images/xipImage 0x0800C000" \ + -c "reset run" \ + -c "shutdown" diff --git a/board/stmicroelectronics/stm32f469-disco/genimage.cfg b/board/stmicroelectronics/stm32f469-disco/genimage.cfg new file mode 100644 index 000000000..517ead775 --- /dev/null +++ b/board/stmicroelectronics/stm32f469-disco/genimage.cfg @@ -0,0 +1,27 @@ +image boot.vfat { + vfat { + files = { + "zImage", + "stm32f469-disco.dtb", + "extlinux" + } + } + + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + partition-type = 0xC + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext2" + size = 32M + } +} diff --git a/board/stmicroelectronics/stm32f469-disco/linux-sd.fragment b/board/stmicroelectronics/stm32f469-disco/linux-sd.fragment new file mode 100644 index 000000000..e5d39bf04 --- /dev/null +++ b/board/stmicroelectronics/stm32f469-disco/linux-sd.fragment @@ -0,0 +1,7 @@ +# CONFIG_XIP_KERNEL is not set +CONFIG_DRM=y +CONFIG_DRM_STM=y +CONFIG_DRM_STM_DSI=y +CONFIG_DRM_PANEL_ORISETECH_OTM8009A=y +CONFIG_FB=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y diff --git a/board/stmicroelectronics/stm32f469-disco/linux-xip.config b/board/stmicroelectronics/stm32f469-disco/linux-xip.config new file mode 100644 index 000000000..01a94eb9d --- /dev/null +++ b/board/stmicroelectronics/stm32f469-disco/linux-xip.config @@ -0,0 +1,120 @@ +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_KERNEL_XZ=y +CONFIG_NO_HZ_IDLE=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_PREEMPT=y +CONFIG_LOG_BUF_SHIFT=12 +CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=10 +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="${BR_BINARIES_DIR}/rootfs.cpio" +# CONFIG_RD_GZIP is not set +# CONFIG_RD_BZIP2 is not set +# CONFIG_RD_LZMA is not set +# CONFIG_RD_XZ is not set +# CONFIG_RD_LZO is not set +# CONFIG_RD_LZ4 is not set +# CONFIG_RD_ZSTD is not set +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +# CONFIG_MULTIUSER is not set +# CONFIG_SYSFS_SYSCALL is not set +# CONFIG_FHANDLE is not set +CONFIG_POSIX_TIMERS=y +# CONFIG_BUG is not set +# CONFIG_BASE_FULL is not set +# CONFIG_FUTEX is not set +# CONFIG_EPOLL is not set +# CONFIG_SIGNALFD is not set +# CONFIG_TIMERFD is not set +# CONFIG_EVENTFD is not set +# CONFIG_AIO is not set +# CONFIG_IO_URING is not set +# CONFIG_ADVISE_SYSCALLS is not set +# CONFIG_MEMBARRIER is not set +# CONFIG_KALLSYMS is not set +CONFIG_KCMP=y +# CONFIG_RSEQ is not set +CONFIG_EMBEDDED=y +# CONFIG_VM_EVENT_COUNTERS is not set +# CONFIG_COMPAT_BRK is not set +CONFIG_SLOB=y +# CONFIG_SLAB_MERGE_DEFAULT is not set +# CONFIG_MMU is not set +CONFIG_ARCH_STM32=y +# CONFIG_MACH_STM32F429 is not set +# CONFIG_MACH_STM32F746 is not set +# CONFIG_MACH_STM32F769 is not set +# CONFIG_MACH_STM32H743 is not set +CONFIG_CPU_V7M_NUM_IRQ=240 +# CONFIG_ARM_DMA_MEM_BUFFERABLE is not set +CONFIG_SET_MEM_PARAM=y +CONFIG_DRAM_BASE=0x00000000 +CONFIG_DRAM_SIZE=0x00800000 +CONFIG_HZ_1000=y +# CONFIG_ATAGS is not set +CONFIG_XIP_KERNEL=y +CONFIG_XIP_PHYS_ADDR=0x0800C000 +CONFIG_XIP_DEFLATED_DATA=y +# CONFIG_SUSPEND is not set +# CONFIG_STACKPROTECTOR is not set +# CONFIG_COMPAT_32BIT_TIME is not set +# CONFIG_GCC_PLUGINS is not set +# CONFIG_BLOCK is not set +CONFIG_BINFMT_FLAT=y +CONFIG_BINFMT_SHARED_FLAT=y +# CONFIG_COREDUMP is not set +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +# CONFIG_STANDALONE is not set +# CONFIG_PREVENT_FIRMWARE_BUILD is not set +# CONFIG_FW_LOADER is not set +# CONFIG_ALLOW_DEV_COREDUMP is not set +CONFIG_EEPROM_93CX6=y +# CONFIG_INPUT is not set +# CONFIG_VT is not set +# CONFIG_UNIX98_PTYS is not set +# CONFIG_LEGACY_PTYS is not set +# CONFIG_LDISC_AUTOLOAD is not set +CONFIG_SERIAL_STM32=y +CONFIG_SERIAL_STM32_CONSOLE=y +# CONFIG_DEVMEM is not set +# CONFIG_HWMON is not set +CONFIG_WATCHDOG=y +CONFIG_MFD_STM32_TIMERS=y +# CONFIG_USB_SUPPORT is not set +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_STM32=y +CONFIG_DMADEVICES=y +CONFIG_STM32_DMA=y +CONFIG_STM32_DMAMUX=y +CONFIG_STM32_MDMA=y +CONFIG_SYNC_FILE=y +# CONFIG_VIRTIO_MENU is not set +# CONFIG_VHOST_MENU is not set +CONFIG_IIO=y +CONFIG_IIO_BUFFER=y +CONFIG_IIO_TRIGGERED_BUFFER=y +CONFIG_IIO_STM32_TIMER_TRIGGER=y +# CONFIG_FILE_LOCKING is not set +# CONFIG_DNOTIFY is not set +# CONFIG_INOTIFY_USER is not set +# CONFIG_PROC_SYSCTL is not set +CONFIG_CONFIGFS_FS=y +# CONFIG_MISC_FILESYSTEMS is not set +CONFIG_NLS=y +CONFIG_PRINTK_TIME=y +CONFIG_CONSOLE_LOGLEVEL_DEFAULT=15 +CONFIG_CONSOLE_LOGLEVEL_QUIET=15 +CONFIG_MESSAGE_LOGLEVEL_DEFAULT=7 +# CONFIG_SYMBOLIC_ERRNAME is not set +CONFIG_DEBUG_INFO=y +# CONFIG_SECTION_MISMATCH_WARN_ONLY is not set +CONFIG_DEBUG_FS=y +# CONFIG_DEBUG_MISC is not set +# CONFIG_SCHED_DEBUG is not set +# CONFIG_RCU_TRACE is not set +# CONFIG_RUNTIME_TESTING_MENU is not set diff --git a/board/stmicroelectronics/stm32f469-disco/post-build.sh b/board/stmicroelectronics/stm32f469-disco/post-build.sh new file mode 100755 index 000000000..ec20fca7d --- /dev/null +++ b/board/stmicroelectronics/stm32f469-disco/post-build.sh @@ -0,0 +1,4 @@ +#!/bin/sh +BOARD_DIR="$(dirname $0)" + +install -m 0644 -D $BOARD_DIR/extlinux.conf $BINARIES_DIR/extlinux/extlinux.conf diff --git a/board/stmicroelectronics/stm32f469-disco/readme.txt b/board/stmicroelectronics/stm32f469-disco/readme.txt new file mode 100644 index 000000000..99d26ccb6 --- /dev/null +++ b/board/stmicroelectronics/stm32f469-disco/readme.txt @@ -0,0 +1,45 @@ +STM32F469 Discovery +=================== + +This tutorial describes how to use the predefined Buildroot +configuration for the STM32F469 Discovery evaluation platform. + +Building +-------- + + make stm32f469_disco_sd_defconfig + make + +Flashing +-------- + + ./board/stmicroelectronics/stm32f469-disco/flash_sd.sh output/ + +It will flash the U-boot bootloader. + +Creating SD card +---------------- + +Buildroot prepares an"sdcard.img" image in the output/images/ directory, +ready to be dumped on a SD card. Launch the following command as root: + + dd if=output/images/sdcard.img of=/dev/ + +*** WARNING! This will destroy all the card content. Use with care! *** + +For details about the medium image layout and its content, see the +definition in board/stmicroelectronics/stm32f469-disco/genimage.cfg. + +Framebuffer +----------- +After Linux boots, /dev/fb0 will be accessible. You can control the +brightness of the display after enabling the framebuffer by running the +following commands: + + # echo 0 0 > /sys/class/graphics/fb0/pan + # echo 255 >/sys/class/backlight/40016c00.dsi.0/brightness + +The brightness ranges from 0 to 255, as you can see running the +command: + + # cat /sys/class/backlight/40016c00.dsi.0/max_brightness diff --git a/board/stmicroelectronics/stm32f469-disco/readme_xip.txt b/board/stmicroelectronics/stm32f469-disco/readme_xip.txt new file mode 100644 index 000000000..7c20c2d01 --- /dev/null +++ b/board/stmicroelectronics/stm32f469-disco/readme_xip.txt @@ -0,0 +1,24 @@ +STM32F469 Discovery +=================== + +This tutorial describes how to use the predefined Buildroot +configuration for the STM32F469 Discovery evaluation platform. + +Internal flash memory stores simple afboot-stm32 bootloader, device tree and +in place (XIP) kernel with built-in initramfs. No external flash or SD card +is needed. + +Kernel is based on tinyconfig. + +Building +-------- + + make stm32f469_disco_xip_defconfig + make + +Flashing +-------- + + ./board/stmicroelectronics/stm32f469-disco/flash_xip.sh output/ + +It will flash binary to internal flash memory. diff --git a/board/stmicroelectronics/stm32mp157a-dk1/linux.config b/board/stmicroelectronics/stm32mp157a-dk1/linux.config new file mode 100644 index 000000000..95c834e43 --- /dev/null +++ b/board/stmicroelectronics/stm32mp157a-dk1/linux.config @@ -0,0 +1,182 @@ +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +CONFIG_USELIB=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_PREEMPT=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=16 +CONFIG_BLK_DEV_INITRD=y +CONFIG_ARCH_STM32=y +CONFIG_ARM_THUMBEE=y +# CONFIG_CACHE_L2X0 is not set +CONFIG_ARM_ERRATA_430973=y +CONFIG_ARM_ERRATA_720789=y +CONFIG_ARM_ERRATA_754322=y +CONFIG_ARM_ERRATA_754327=y +CONFIG_ARM_ERRATA_764369=y +CONFIG_ARM_ERRATA_775420=y +CONFIG_ARM_ERRATA_798181=y +CONFIG_SMP=y +CONFIG_MCPM=y +CONFIG_HIGHMEM=y +CONFIG_FORCE_MAX_ZONEORDER=12 +CONFIG_SECCOMP=y +# CONFIG_ATAGS is not set +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_ARM_APPENDED_DTB=y +CONFIG_ARM_ATAG_DTB_COMPAT=y +CONFIG_VFP=y +CONFIG_NEON=y +CONFIG_KERNEL_MODE_NEON=y +CONFIG_ARM_CRYPTO=y +CONFIG_MODULES=y +CONFIG_MODULE_FORCE_LOAD=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_PARTITION_ADVANCED=y +CONFIG_CMDLINE_PARTITION=y +CONFIG_CMA=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_CAN=y +CONFIG_CAN_M_CAN=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_DMA_CMA=y +CONFIG_CMA_SIZE_MBYTES=128 +CONFIG_SIMPLE_PM_BUS=y +CONFIG_MTD=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_M25P80=y +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_STM32_FMC2=y +CONFIG_MTD_SPI_NOR=y +# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set +CONFIG_MTD_UBI=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=65536 +CONFIG_SRAM=y +CONFIG_EEPROM_AT24=y +CONFIG_NETDEVICES=y +CONFIG_VIRTIO_NET=y +CONFIG_KS8851=y +CONFIG_SMSC911X=y +CONFIG_STMMAC_ETH=y +CONFIG_DWMAC_DWC_QOS_ETH=y +CONFIG_MDIO_BITBANG=y +CONFIG_INPUT_JOYDEV=y +CONFIG_INPUT_EVDEV=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_EDT_FT5X06=y +CONFIG_INPUT_MISC=y +CONFIG_INPUT_STPMIC1_ONKEY=y +CONFIG_SERIAL_STM32=y +CONFIG_SERIAL_STM32_CONSOLE=y +CONFIG_SERIAL_DEV_BUS=y +CONFIG_HW_RANDOM=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MUX=y +CONFIG_I2C_STM32F7=y +CONFIG_SPI=y +CONFIG_SPI_STM32=y +CONFIG_SPI_STM32_QSPI=y +CONFIG_PINCTRL_SINGLE=y +CONFIG_PINCTRL_STMFX=y +CONFIG_POWER_RESET=y +CONFIG_POWER_RESET_GPIO=y +CONFIG_POWER_RESET_GPIO_RESTART=y +CONFIG_POWER_RESET_SYSCON=y +CONFIG_POWER_RESET_SYSCON_POWEROFF=y +CONFIG_SYSCON_REBOOT_MODE=y +CONFIG_WATCHDOG=y +CONFIG_STPMIC1_WATCHDOG=y +CONFIG_MFD_STM32_LPTIMER=y +CONFIG_MFD_STPMIC1=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_STM32_VREFBUF=y +CONFIG_REGULATOR_STM32_PWR=y +CONFIG_REGULATOR_STPMIC1=y +CONFIG_DRM=y +CONFIG_DRM_STM=y +CONFIG_DRM_STM_DSI=y +# CONFIG_DRM_PANEL_ORISETECH_OTM8009A is not set +# CONFIG_DRM_SII902X is not set +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set +# CONFIG_LCD_CLASS_DEVICE is not set +# CONFIG_BACKLIGHT_CLASS_DEVICE is not set +# CONFIG_BACKLIGHT_GENERIC is not set +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_DYNAMIC_MINORS=y +CONFIG_USB=y +CONFIG_USB_OTG=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_XHCI_PLATFORM=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_HCD_PLATFORM=y +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_PLATFORM=y +CONFIG_USB_DWC2=y +CONFIG_USB_CHIPIDEA=y +CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_ISP1760=y +CONFIG_USB_HSIC_USB3503=y +CONFIG_USB_GPIO_VBUS=y +CONFIG_USB_ISP1301=y +CONFIG_USB_ULPI=y +CONFIG_TYPEC=y +CONFIG_TYPEC_STUSB=y +CONFIG_MMC=y +CONFIG_MMC_BLOCK_MINORS=16 +CONFIG_MMC_ARMMMCI=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_DW=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_PWM=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_STM32=y +CONFIG_DMADEVICES=y +CONFIG_STM32_DMA=y +CONFIG_STM32_DMAMUX=y +CONFIG_STM32_MDMA=y +CONFIG_HWSPINLOCK=y +CONFIG_HWSPINLOCK_STM32=y +CONFIG_STM32_IPCC=y +CONFIG_REMOTEPROC=y +CONFIG_STM32_RPROC=y +CONFIG_RPMSG_VIRTIO=y +CONFIG_RPMSG_TTY=y +CONFIG_IIO=y +CONFIG_IIO_SW_TRIGGER=y +CONFIG_SD_ADC_MODULATOR=y +CONFIG_STM32_ADC_CORE=y +CONFIG_STM32_ADC=y +CONFIG_STM32_ADC_TEMP=y +CONFIG_STM32_DFSDM_ADC=y +CONFIG_STM32_LPTIMER_CNT=y +CONFIG_STM32_DAC=y +CONFIG_IIO_HRTIMER_TRIGGER=y +CONFIG_IIO_STM32_LPTIMER_TRIGGER=y +CONFIG_PWM=y +CONFIG_PWM_STM32=y +CONFIG_PWM_STM32_LP=y +CONFIG_PHY_STM32_USBPHYC=y +CONFIG_NVMEM_STM32_ROMEM=y +CONFIG_EXT4_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_PRINTK_TIME=y diff --git a/board/stmicroelectronics/stm32mp157a-dk1/overlay/boot/extlinux/extlinux.conf b/board/stmicroelectronics/stm32mp157a-dk1/overlay/boot/extlinux/extlinux.conf new file mode 100644 index 000000000..437e80fde --- /dev/null +++ b/board/stmicroelectronics/stm32mp157a-dk1/overlay/boot/extlinux/extlinux.conf @@ -0,0 +1,4 @@ +label stm32mp157a-dk1-buildroot + kernel /boot/zImage + devicetree /boot/stm32mp157a-dk1.dtb + append root=/dev/mmcblk0p4 rootwait diff --git a/board/stmicroelectronics/stm32mp157a-dk1/readme.txt b/board/stmicroelectronics/stm32mp157a-dk1/readme.txt new file mode 100644 index 000000000..060f71d5d --- /dev/null +++ b/board/stmicroelectronics/stm32mp157a-dk1/readme.txt @@ -0,0 +1,38 @@ +STM32MP157A Discovery Kit v1 + +Intro +===== + +This configuration supports the STM32MP157 Discovery Kit 1 (DK1) +platform: + + https://www.st.com/en/evaluation-tools/stm32mp157a-dk1.html + +How to build +============ + + $ make stm32mp157a_dk1_defconfig + $ make + +How to write the microSD card +============================= + +Once the build process is finished you will have an image called +"sdcard.img" in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an microSD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + +Boot the board +============== + + (1) Insert the microSD card in connector CN15 + + (2) Plug a micro-USB cable in connector CN11 and run your serial + communication program on /dev/ttyACM0. + + (3) Plug a USB-C cable in CN6 to power-up the board. + + (4) The system will start, with the console on UART, but also visible + on the screen. diff --git a/board/stmicroelectronics/stm32mp157c-dk2/linux.config b/board/stmicroelectronics/stm32mp157c-dk2/linux.config new file mode 100644 index 000000000..878a0c39f --- /dev/null +++ b/board/stmicroelectronics/stm32mp157c-dk2/linux.config @@ -0,0 +1,182 @@ +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +CONFIG_USELIB=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_PREEMPT=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=16 +CONFIG_BLK_DEV_INITRD=y +CONFIG_ARCH_STM32=y +CONFIG_ARM_THUMBEE=y +# CONFIG_CACHE_L2X0 is not set +CONFIG_ARM_ERRATA_430973=y +CONFIG_ARM_ERRATA_720789=y +CONFIG_ARM_ERRATA_754322=y +CONFIG_ARM_ERRATA_754327=y +CONFIG_ARM_ERRATA_764369=y +CONFIG_ARM_ERRATA_775420=y +CONFIG_ARM_ERRATA_798181=y +CONFIG_SMP=y +CONFIG_MCPM=y +CONFIG_HIGHMEM=y +CONFIG_FORCE_MAX_ZONEORDER=12 +CONFIG_SECCOMP=y +# CONFIG_ATAGS is not set +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_ARM_APPENDED_DTB=y +CONFIG_ARM_ATAG_DTB_COMPAT=y +CONFIG_VFP=y +CONFIG_NEON=y +CONFIG_KERNEL_MODE_NEON=y +CONFIG_ARM_CRYPTO=y +CONFIG_MODULES=y +CONFIG_MODULE_FORCE_LOAD=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_PARTITION_ADVANCED=y +CONFIG_CMDLINE_PARTITION=y +CONFIG_CMA=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_CAN=y +CONFIG_CAN_M_CAN=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_DMA_CMA=y +CONFIG_CMA_SIZE_MBYTES=128 +CONFIG_SIMPLE_PM_BUS=y +CONFIG_MTD=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_M25P80=y +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_STM32_FMC2=y +CONFIG_MTD_SPI_NOR=y +# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set +CONFIG_MTD_UBI=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=65536 +CONFIG_SRAM=y +CONFIG_EEPROM_AT24=y +CONFIG_NETDEVICES=y +CONFIG_VIRTIO_NET=y +CONFIG_KS8851=y +CONFIG_SMSC911X=y +CONFIG_STMMAC_ETH=y +CONFIG_DWMAC_DWC_QOS_ETH=y +CONFIG_MDIO_BITBANG=y +CONFIG_INPUT_JOYDEV=y +CONFIG_INPUT_EVDEV=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_EDT_FT5X06=y +CONFIG_INPUT_MISC=y +CONFIG_INPUT_STPMIC1_ONKEY=y +CONFIG_SERIAL_STM32=y +CONFIG_SERIAL_STM32_CONSOLE=y +CONFIG_SERIAL_DEV_BUS=y +CONFIG_HW_RANDOM=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MUX=y +CONFIG_I2C_STM32F7=y +CONFIG_SPI=y +CONFIG_SPI_STM32=y +CONFIG_SPI_STM32_QSPI=y +CONFIG_PINCTRL_SINGLE=y +CONFIG_PINCTRL_STMFX=y +CONFIG_POWER_RESET=y +CONFIG_POWER_RESET_GPIO=y +CONFIG_POWER_RESET_GPIO_RESTART=y +CONFIG_POWER_RESET_SYSCON=y +CONFIG_POWER_RESET_SYSCON_POWEROFF=y +CONFIG_SYSCON_REBOOT_MODE=y +CONFIG_WATCHDOG=y +CONFIG_STPMIC1_WATCHDOG=y +CONFIG_MFD_STM32_LPTIMER=y +CONFIG_MFD_STPMIC1=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_STM32_VREFBUF=y +CONFIG_REGULATOR_STM32_PWR=y +CONFIG_REGULATOR_STPMIC1=y +CONFIG_DRM=y +CONFIG_DRM_STM=y +CONFIG_DRM_STM_DSI=y +CONFIG_DRM_PANEL_ORISETECH_OTM8009A=y +CONFIG_DRM_SII902X=y +CONFIG_BACKLIGHT_LCD_SUPPORT=y +# CONFIG_LCD_CLASS_DEVICE is not set +CONFIG_BACKLIGHT_CLASS_DEVICE=y +# CONFIG_BACKLIGHT_GENERIC is not set +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_DYNAMIC_MINORS=y +CONFIG_USB=y +CONFIG_USB_OTG=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_XHCI_PLATFORM=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_HCD_PLATFORM=y +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_PLATFORM=y +CONFIG_USB_DWC2=y +CONFIG_USB_CHIPIDEA=y +CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_ISP1760=y +CONFIG_USB_HSIC_USB3503=y +CONFIG_USB_GPIO_VBUS=y +CONFIG_USB_ISP1301=y +CONFIG_USB_ULPI=y +CONFIG_TYPEC=y +CONFIG_TYPEC_STUSB=y +CONFIG_MMC=y +CONFIG_MMC_BLOCK_MINORS=16 +CONFIG_MMC_ARMMMCI=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_DW=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_PWM=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_STM32=y +CONFIG_DMADEVICES=y +CONFIG_STM32_DMA=y +CONFIG_STM32_DMAMUX=y +CONFIG_STM32_MDMA=y +CONFIG_HWSPINLOCK=y +CONFIG_HWSPINLOCK_STM32=y +CONFIG_STM32_IPCC=y +CONFIG_REMOTEPROC=y +CONFIG_STM32_RPROC=y +CONFIG_RPMSG_VIRTIO=y +CONFIG_RPMSG_TTY=y +CONFIG_IIO=y +CONFIG_IIO_SW_TRIGGER=y +CONFIG_SD_ADC_MODULATOR=y +CONFIG_STM32_ADC_CORE=y +CONFIG_STM32_ADC=y +CONFIG_STM32_ADC_TEMP=y +CONFIG_STM32_DFSDM_ADC=y +CONFIG_STM32_LPTIMER_CNT=y +CONFIG_STM32_DAC=y +CONFIG_IIO_HRTIMER_TRIGGER=y +CONFIG_IIO_STM32_LPTIMER_TRIGGER=y +CONFIG_PWM=y +CONFIG_PWM_STM32=y +CONFIG_PWM_STM32_LP=y +CONFIG_PHY_STM32_USBPHYC=y +CONFIG_NVMEM_STM32_ROMEM=y +CONFIG_EXT4_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_PRINTK_TIME=y diff --git a/board/stmicroelectronics/stm32mp157c-dk2/overlay/boot/extlinux/extlinux.conf b/board/stmicroelectronics/stm32mp157c-dk2/overlay/boot/extlinux/extlinux.conf new file mode 100644 index 000000000..5b7f56ee7 --- /dev/null +++ b/board/stmicroelectronics/stm32mp157c-dk2/overlay/boot/extlinux/extlinux.conf @@ -0,0 +1,4 @@ +label stm32mp157c-dk2-buildroot + kernel /boot/zImage + devicetree /boot/stm32mp157c-dk2.dtb + append root=/dev/mmcblk0p4 rootwait diff --git a/board/stmicroelectronics/stm32mp157c-dk2/readme.txt b/board/stmicroelectronics/stm32mp157c-dk2/readme.txt new file mode 100644 index 000000000..8edc3e8bb --- /dev/null +++ b/board/stmicroelectronics/stm32mp157c-dk2/readme.txt @@ -0,0 +1,38 @@ +STM32MP157C Discovery Kit v2 + +Intro +===== + +This configuration supports the STM32MP157C Discovery Kit 2 (DK2) +platform: + + https://www.st.com/en/evaluation-tools/stm32mp157c-dk2.html + +How to build +============ + + $ make stm32mp157c_dk2_defconfig + $ make + +How to write the microSD card +============================= + +Once the build process is finished you will have an image called +"sdcard.img" in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an microSD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + +Boot the board +============== + + (1) Insert the microSD card in connector CN15 + + (2) Plug a micro-USB cable in connector CN11 and run your serial + communication program on /dev/ttyACM0. + + (3) Plug a USB-C cable in CN6 to power-up the board. + + (4) The system will start, with the console on UART, but also visible + on the screen. diff --git a/board/synopsys/axs10x/post-build.sh b/board/synopsys/axs10x/post-build.sh new file mode 100755 index 000000000..f23c8a99b --- /dev/null +++ b/board/synopsys/axs10x/post-build.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +set -u +set -e + +# Add a console on tty0 +if [ -e ${TARGET_DIR}/etc/inittab ]; then + grep -qE '^tty0::' ${TARGET_DIR}/etc/inittab || \ + sed -i '/GENERIC_SERIAL/a\ +tty0::respawn:/sbin/getty 115200 tty0' ${TARGET_DIR}/etc/inittab +fi diff --git a/board/synopsys/axs10x/uboot-fragment.config b/board/synopsys/axs10x/uboot-fragment.config new file mode 100644 index 000000000..92fe20f46 --- /dev/null +++ b/board/synopsys/axs10x/uboot-fragment.config @@ -0,0 +1 @@ +CONFIG_SYS_MALLOC_F_LEN=0x0500 diff --git a/board/synopsys/hsdk/genimage.cfg b/board/synopsys/hsdk/genimage.cfg new file mode 100644 index 000000000..b5d702d55 --- /dev/null +++ b/board/synopsys/hsdk/genimage.cfg @@ -0,0 +1,29 @@ +image boot.vfat { + vfat { + files = { + "uImage" + } + + file uboot.env { + image = "uboot-env.bin" + } + } + + size = 20M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/synopsys/hsdk/linux.fragment b/board/synopsys/hsdk/linux.fragment new file mode 100644 index 000000000..aaca08e01 --- /dev/null +++ b/board/synopsys/hsdk/linux.fragment @@ -0,0 +1,3 @@ +CONFIG_INITRAMFS_SOURCE="" +CONFIG_ARC_UBOOT_SUPPORT=y +CONFIG_USB=y diff --git a/board/synopsys/hsdk/readme.txt b/board/synopsys/hsdk/readme.txt new file mode 100644 index 000000000..f4c650111 --- /dev/null +++ b/board/synopsys/hsdk/readme.txt @@ -0,0 +1,33 @@ +Synopsys, Inc. +ARC HS Development Kit (HSDK) + +https://embarc.org/platforms.html + +How to build it +=============== + +Select the default configuration for the target: +$ make snps_archs38_hsdk_defconfig + +Optional: modify the configuration: +$ make menuconfig + +Build: +$ make + +Result of the build +=================== +output/images/ +├── boot.vfat +├── rootfs.ext2 +├── sdcard.img +├── u-boot +├── u-boot.bin +├── uboot-env.bin +└── uImage + +To copy the image file to the sdcard use dd: +$ dd if=output/images/sdcard.img of=/dev/XXX + +2018, Evgeniy Didin + diff --git a/board/synopsys/hsdk/uboot.env.txt b/board/synopsys/hsdk/uboot.env.txt new file mode 100644 index 000000000..216f0c904 --- /dev/null +++ b/board/synopsys/hsdk/uboot.env.txt @@ -0,0 +1,9 @@ +baudrate=115200 +bootargs=root=/dev/mmcblk0p2 rootwait +bootcmd=fatload mmc 0:1; bootm +bootdelay=2 +bootfile=uImage +loadaddr=0x82000000 +stderr=serial0@f0005000 +stdin=serial0@f0005000 +stdout=serial0@f0005000 diff --git a/board/technexion/imx6ulpico/readme.txt b/board/technexion/imx6ulpico/readme.txt new file mode 100644 index 000000000..7eab3f6b8 --- /dev/null +++ b/board/technexion/imx6ulpico/readme.txt @@ -0,0 +1,70 @@ +***************************** +Technexion i.MX6UL Pico board +***************************** + +This file documents the Buildroot support for the Technexion i.MX6UL Pico board. + +Build +===== + +First, configure Buildroot for the i.MX6UL Pico board: + + make imx6ulpico_defconfig + +Build all components: + + make + +You will find in output/images/ the following files: + - imx6ul-pico-hobbit.dtb + - rootfs.ext4 + - rootfs.tar + - sdcard.img + - u-boot.imx + - zImage + +Create a bootable SD card +========================= + +In the U-Boot prompt lauch: + +=> ums 0 mmc 0 + +This will mount the eMMC content in the host PC as a mass storage device. + +To determine the device associated to the eMMC card have a look in the +/proc/partitions file: + + cat /proc/partitions + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped on the eMMC card. Launch the following +command as root: + + dd if=output/images/sdcard.img of=/dev/ + +*** WARNING! This will destroy all the card content. Use with care! *** + +For details about the medium image layout, see the definition in +board/freescale/common/imx/genimage.cfg.template. + +Boot the i.MX6UL Pico board +========================= + +To boot your newly created system: +- put a micro USB cable into the Debug USB Port and connect using a terminal + emulator at 115200 bps, 8n1; +- power on the board. + +Using Wifi +========== + +# modprobe brcmfmac +# iwconfig wlan0 essid ACCESSPOINTNAME +# wpa_passphrase ACCESSPOINTNAME > /etc/wpa.conf +(enter the wifi password and press enter) +# wpa_supplicant -Dwext -iwlan0 -c /etc/wpa.conf & +# udhcpc -i wlan0 +# ping buildroot.org + +Enjoy! diff --git a/board/technexion/imx6ulpico/rootfs_overlay/boot/extlinux/extlinux.conf b/board/technexion/imx6ulpico/rootfs_overlay/boot/extlinux/extlinux.conf new file mode 100644 index 000000000..24ed485c3 --- /dev/null +++ b/board/technexion/imx6ulpico/rootfs_overlay/boot/extlinux/extlinux.conf @@ -0,0 +1,4 @@ +Label imx6ul-pico-buildroot + kernel ../zImage + fdtdir ../ + append root=PARTUUID=${uuid} rootwait rw console=${console},${baudrate} diff --git a/board/technexion/imx6ulpico/rootfs_overlay/lib/firmware/brcm/brcmfmac4339-sdio.txt b/board/technexion/imx6ulpico/rootfs_overlay/lib/firmware/brcm/brcmfmac4339-sdio.txt new file mode 100644 index 000000000..4716c7ef2 --- /dev/null +++ b/board/technexion/imx6ulpico/rootfs_overlay/lib/firmware/brcm/brcmfmac4339-sdio.txt @@ -0,0 +1,102 @@ +# Sample NVRAM for BCM94339 WLCSP with eTR,iPA, and eLNA. +sromrev=11 +boardrev=0x1100 +boardtype=0x06c9 +boardflags=0x10081401 +boardflags2=0x00000000 +boardflags3=0x08001188 +#boardnum=57410 +macaddr=00:90:4c:c5:12:38 +ccode=0 +regrev=0 +antswitch=0 +pdgain2g=7 +pdgain5g=7 +tworangetssi2g=0 +tworangetssi5g=0 +vendid=0x14e4 +devid=0x43ae +manfid=0x2d0 +#prodid=0x052e +nocrc=1 +otpimagesize=502 +xtalfreq=37400 +extpagain2g=2 +pdetrange2g=2 +extpagain5g=2 +pdetrange5g=2 +rxgains2gelnagaina0=2 +rxgains2gtrisoa0=6 +rxgains2gtrelnabypa0=1 +rxgains5gelnagaina0=4 +rxgains5gtrisoa0=4 +rxgains5gtrelnabypa0=1 +rxchain=1 +txchain=1 +aa2g=1 +aa5g=1 +tssipos5g=0 +tssipos2g=0 +pa2ga0=0xFF47,0x17B5,0xFD2B +pa2gccka0=0xFF5F,0x1B46,0xFCCC +pa5ga0=0xff54,0x16ec,0xfd45,0xff52,0x16a1,0xfd4d,0xff46,0x15b7,0xfd5a,0xff56,0x156d,0xfd79 +pa5gbw40a0=0xff59,0x17ca,0xfd30,0xff42,0x163d,0xfd4b,0xff31,0x152e,0xfd55,0xff60,0x16d8,0xfd54 +pa5gbw80a0=0xff56,0x1740,0xfd3f,0xff50,0x1738,0xfd3d,0xff4d,0x16b4,0xfd42,0xff58,0x1634,0xfd60 +# Default Target Power for 2G -- 17dBm(11)/14dBm(54)/13dBm(MCS7)/12dBm(MCS8)/12dBm(MCS9) +maxp2ga0=74 +maxp5ga0=74,74,74,74 +cckbw202gpo=0x0000 +cckbw20ul2gpo=0x0000 +mcsbw202gpo=0xaa888888 +mcsbw402gpo=0xaa888888 +dot11agofdmhrbw202gpo=0x6666 +ofdmlrbw202gpo=0x0066 +tssifloor2g=500 +# Default Target Power for 5G -- 14dBm(54)/13dBm(MCS7)/12dBm(MCS8)/12dBm(MCS9) +mcsbw205glpo=0xaa866666 +mcsbw405glpo=0xaa866666 +mcsbw805glpo=0xaa866666 +mcsbw205gmpo=0xaa866666 +mcsbw405gmpo=0xaa866666 +mcsbw805gmpo=0xaa866666 +mcsbw205ghpo=0xaa866666 +mcsbw405ghpo=0xaa866666 +mcsbw805ghpo=0xaa866666 +mcslr5glpo=0x0000 +mcslr5gmpo=0x0000 +mcslr5ghpo=0x0000 +sb20in40hrpo=0x0 +sb20in80and160hr5glpo=0x0 +sb40and80hr5glpo=0x0 +sb20in80and160hr5gmpo=0x0 +sb40and80hr5gmpo=0x0 +sb20in80and160hr5ghpo=0x0 +sb40and80hr5ghpo=0x0 +sb20in40lrpo=0x0 +sb20in80and160lr5glpo=0x0 +sb40and80lr5glpo=0x0 +sb20in80and160lr5gmpo=0x0 +sb40and80lr5gmpo=0x0 +sb20in80and160lr5ghpo=0x0 +sb40and80lr5ghpo=0x0 +dot11agduphrpo=0x0 +dot11agduplrpo=0x0 +phycal_tempdelta=25 +cckdigfilttype=2 +swctrlmap_5g=0x00080008,0x00500010,0x00100008,0x000000,0x078 +swctrlmap_2g=0x00010001,0x00220002,0x00020001,0x042202,0x1ff +swctrlmapext_5g=0x00000000,0x00000000,0x00000000,0x000000,0x000 +swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x000 +# +#GPIO 0 for SDIO HW OOB interruption +#muxenab=0x10 +#sd_gpout=0 +#sd_oobonly=1 +# +rssicorrnorm_c0=-2,0 +rssicorrnorm5g_c0=3,5,2,3,4,2,2,3,1,2,3,1 +## ED threshold level to address the new ETSI requirement - 10/31/2013 +ed_thresh2g=-77 +ed_thresh5g=-77 +# +paparambwver=1 diff --git a/board/technexion/imx7dpico/readme.txt b/board/technexion/imx7dpico/readme.txt new file mode 100644 index 000000000..53197d458 --- /dev/null +++ b/board/technexion/imx7dpico/readme.txt @@ -0,0 +1,124 @@ +**************************** +Technexion i.MX7D Pico board +**************************** + +This file documents the Buildroot support for the Technexion i.MX7D Pico board. + +Build +===== + +First, configure Buildroot for the i.MX7D Pico board: + + make imx7dpico_defconfig + +Build all components: + + make + +You will find in output/images/ the following files: + - imx7d-pico.dtb + - rootfs.ext4 + - rootfs.tar + - sdcard.img + - u-boot-dtb.img + - SPL + - zImage + +Flash U-Boot and SPL +===== + +Note: This method is convenient for development purposes. +If the eMMC has already a U-Boot flashed with DFU support then +the user can go to step 2 below in order to update U-Boot. + +Put pico board in USB download mode (refer to the PICO-iMX7D Quick Start Guide +page 3) + +Connect a USB to serial adapter between the host PC and pico. + +Connect a USB cable between the OTG pico port and the host PC. + +Note: Some computers may be a bit strict with USB current draw and will +shut down their ports if the draw is too high. The solution for that is +to use an externally powered USB hub between the board and the host computer. + +Open a terminal program such as minicom. + +Copy SPL and u-boot-dtb.img to the imx_usb_loader folder. + +Load the SPL binary via USB: + +$ sudo ./imx_usb SPL + +Load the u-boot-dtb.img binary via USB: + +$ sudo ./imx_usb u-boot-dtb.img + +Then U-Boot starts and its messages appear in the console program. + +Use the default environment variables: + +=> env default -f -a +=> saveenv + +Run the DFU agent so we can flash the new images using dfu-util tool: + +=> dfu 0 mmc 0 + +Flash SPL and u-boot-dtb.img into the eMMC running the following commands on a PC: + +$ sudo dfu-util -D SPL -a spl + +$ sudo dfu-util -D u-boot-dtb.img -a u-boot + +Remove power from the pico board. + +Put pico board into normal boot mode. + +Power up the board and the new updated U-Boot should boot from eMMC. + +Flash the eMMC +============== + +In the U-Boot prompt lauch: + +=> ums 0 mmc 0 + +This will mount the eMMC content in the host PC as a mass storage device. + +To determine the device associated to the eMMC card have a look in the +/proc/partitions file: + + cat /proc/partitions + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped on the eMMC card. Launch the following +command as root: + + dd if=output/images/sdcard.img of=/dev/ + +*** WARNING! This will destroy all the eMMC content. Use with care! *** + +For details about the medium image layout, see the definition in +board/freescale/common/imx/genimage.cfg.template. + +Boot the i.MX7D Pico board +========================== + +To boot your newly created system: +- put a micro USB cable into the Debug USB Port and connect using a terminal + emulator at 115200 bps, 8n1; +- power on the board. + +Using Wifi +========== + +# modprobe brcmfmac +# iwconfig wlan0 essid ACCESSPOINTNAME +# wpa_passphrase ACCESSPOINTNAME > /etc/wpa.conf +(enter the wifi password and press enter) +# wpa_supplicant -Dwext -iwlan0 -c /etc/wpa.conf & +# udhcpc -i wlan0 +# ping buildroot.org + +Enjoy! diff --git a/board/technexion/imx7dpico/rootfs_overlay/boot/extlinux/extlinux.conf b/board/technexion/imx7dpico/rootfs_overlay/boot/extlinux/extlinux.conf new file mode 100644 index 000000000..4824aff07 --- /dev/null +++ b/board/technexion/imx7dpico/rootfs_overlay/boot/extlinux/extlinux.conf @@ -0,0 +1,4 @@ +Label imx7d-pico-buildroot + kernel /boot/zImage + devicetree /boot/imx7d-pico-pi.dtb + append root=PARTUUID=${uuid} rootwait rw console=${console},${baudrate} \ No newline at end of file diff --git a/board/technexion/imx7dpico/rootfs_overlay/lib/firmware/brcm/brcmfmac4339-sdio.txt b/board/technexion/imx7dpico/rootfs_overlay/lib/firmware/brcm/brcmfmac4339-sdio.txt new file mode 100644 index 000000000..1ddd92950 --- /dev/null +++ b/board/technexion/imx7dpico/rootfs_overlay/lib/firmware/brcm/brcmfmac4339-sdio.txt @@ -0,0 +1,99 @@ +#AP6335_NVRAM_V1.5_03112014 +NVRAMRev=$Rev: 410316 $ +sromrev=11 +boardrev=0x1203 +boardtype=0x06c5 +boardflags=0x00000c01 +boardflags2=0x00002000 +boardflags3=0x101188 +macaddr=00:90:4c:c5:12:38 +ccode=0 +regrev=0 +antswitch=0 +pdgain2g=7 +pdgain5g=7 +tworangetssi2g=0 +tworangetssi5g=0 +femctrl=7 +pcieingress_war=15 +vendid=0x14e4 +devid=0x43ae +manfid=0x2d0 +nocrc=1 +otpimagesize=502 +xtalfreq=37400 +extpagain2g=2 +pdetrange2g=2 +extpagain5g=2 +pdetrange5g=2 +rxgains2gelnagaina0=0 +rxgains2gtrisoa0=7 +rxgains2gtrelnabypa0=0 +rxgains5gelnagaina0=0 +rxgains5gtrisoa0=11 +rxgains5gtrelnabypa0=0 +rxchain=1 +txchain=1 +aa2g=1 +aa5g=1 +tssipos5g=0 +tssipos2g=0 +pa2ga0=-161,6269,-723 +pa2gccka0=-116,7568,-852 +pa5ga0=0xFF61,0x163C,0xFD55,0xFF5D,0x1671,0xFD4F,0xFF5F,0x16CA,0xFD45,0xFF60,0x1676,0xFD4D +pa5gbw40a0=0xFF61,0x163C,0xFD55,0xFF5D,0x1671,0xFD4F,0xFF5F,0x16CA,0xFD45,0xFF60,0x1676,0xFD4D +pa5gbw80a0=0xFF61,0x163C,0xFD55,0xFF5D,0x1671,0xFD4F,0xFF5F,0x16CA,0xFD45,0xFF60,0x1676,0xFD4D +pdoffset40ma0=0 +pdoffset80ma0=0 +pdoffsetcckma0=0 +maxp2ga0=75 +maxp5ga0=64,64,72,72 +cckbw202gpo=0x0000 +cckbw20ul2gpo=0x0 +mcsbw202gpo=0x99445533 +mcsbw402gpo=0x99775533 +dot11agofdmhrbw202gpo=0x2233 +ofdmlrbw202gpo=0x0000 +tssifloor2g=500 +mcsbw205glpo=0x66333330 +mcsbw405glpo=0x66665530 +mcsbw805glpo=0xAA555530 +mcsbw1605glpo=0x99555530 +mcsbw205gmpo=0x99BB5530 +mcsbw405gmpo=0x99BB5530 +mcsbw805gmpo=0xEE555530 +mcsbw1605gmpo=0x99555530 +mcsbw205ghpo=0x99995530 +mcsbw405ghpo=0x99BB5530 +mcsbw805ghpo=0xEE555530 +mcsbw1605ghpo=0x99555530 +mcslr5glpo=0x0000 +mcslr5gmpo=0x0000 +mcslr5ghpo=0x0000 +sb20in40hrrpo=0x0 +sb20in80and160hr5glpo=0x0 +sb40and80hr5glpo=0x0 +sb20in80and160hr5gmpo=0x0 +sb40and80hr5gmpo=0x0 +sb20in80and160hr5ghpo=0x0 +sb40and80hr5ghpo=0x0 +sb20in40lrpo=0x0 +sb20in80and160lr5glpo=0x0 +sb40and80lr5glpo=0x0 +sb20in80and160lr5gmpo=0x0 +sb40and80lr5gmpo=0x0 +sb20in80and160lr5ghpo=0x0 +sb40and80lr5ghpo=0x0 +dot11agduphrpo=0x0 +dot11agduplrpo=0x0 +phycal_tempdelta=25 +cckdigfilttype=2 +pacalidx2g=65 +dacrate2g=160 +swctrlmap_5g=0x00000008,0x00000010,0x00000008,0x000000,0x038 +swctrlmap_2g=0x00000001,0x00000002,0x00000001,0x040002,0x0ff +swctrlmapext_5g=0x00000000,0x00000000,0x00000000,0x000000,0x000 +swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x000 +rssicorrnorm_c0=3,3 +rssicorrnorm5g_c0=2,3,4,2,3,3,0,1,2,0,1,2 +muxenab=0x10 diff --git a/board/technexion/imx8mmpico/readme.txt b/board/technexion/imx8mmpico/readme.txt new file mode 100644 index 000000000..56a8c9bdf --- /dev/null +++ b/board/technexion/imx8mmpico/readme.txt @@ -0,0 +1,100 @@ +********************************* +Technexion i.MX8M Mini Pico board +********************************* + +This file documents the Buildroot support for the Technexion i.MX8M +Mini Pico board. The Pico i.MX8M Mini system-on-module [1] is present +in development kits like the Pico Pi i.MX8M Mini [2]. + +Build +===== + +First, configure Buildroot for the i.MX8M Mini Pico board: + + make imx8mmpico_defconfig + +Build all components: + + make + +You will find in output/images/ the following files: + - bl31.bin + - boot.vfat + - Image + - imx8-boot-sd.bin + - imx8mm-pico-pi.dtb + - imx8mm-pico-pi-ili9881c.dtb + - imx8mm-pico-pi-sn65dsi84-hj070na.dtb + - lpddr4_pmu_train_fw.bin + - rootfs.ext2 + - rootfs.ext4 + - sdcard.img + - u-boot.imx + +Flashing sdcard.img on the eMMC +=============================== + +i.MX8M Mini Pico board does not have a SD card slot. The storage is an +eMMC. An easy way to flash the eMMC is to use the u-boot ums +command. The boards are sold pre-flashed with such a u-boot. It is +assumed here that the board has already a working u-boot on eMMC and +jumpers are set to boot on eMMC. See [3]. + +Jumper configuration for eMMC boot: +J1: jumper on pins 4 and 6. +J2: jumper on pins 2 and 4. + +In case the board was flashed with a wrong u-boot, or the eMMC is +erased, u-boot can be loaded by USB Serial Download boot mode, using +imx-usb-loader. See [3]. + +For flashing: +- Plug the micro USB cable from the Debug USB Port, to your computer +- Plug the USB Type C to your computer, this will power up the board + +In the U-Boot prompt launch: + +=> ums 0 mmc ${mmcdev} + +This will mount the eMMC content in the host PC as a mass storage device. +Note: the ${mmcdev} id may change from one uboot version to another. The +actual id can be confirmed by running commands "mmc rescan" then +"mmc list", to find the eMMC entry. Finally it's possible to enter +directly the mmc device id, for example: "ums 0 mmc 2". + +To determine the device associated to the eMMC card have a look in the +/proc/partitions file: + + cat /proc/partitions + +If your system automatically mount some device partitions, make sure +to unmount them. + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped on the eMMC. Launch the following +command as root: + + dd bs=1M if=output/images/sdcard.img of=/dev/ + +*** WARNING! This will destroy all the eMMC content. Use with care! *** + +This operation can take several minutes, depending on the image +size. When tested, a 10MB/s transfer rate was observed. Note: the +blocksize "bs=1M" parameter gives better transfer performances. + +For details about the medium image layout, see the definition in +board/freescale/common/imx/genimage.cfg.template. + +Boot the i.MX8M Mini Pico board +=============================== + +To boot your newly created system: +- put a micro USB cable into the Debug USB Port and connect using a terminal + emulator at 115200 bps, 8n1; +- power on the board, with USB Type C connector. + +Enjoy! + +[1]. https://www.technexion.com/products/system-on-modules/pico/pico-compute-modules/detail/PICO-IMX8M-MINI +[2]. https://www.technexion.com/products/system-on-modules/evk/pico-pi-imx8m-mini/ +[3]. https://developer.technexion.com/docs/recover-to-factory-settings-pico-imx8m-mini diff --git a/board/technexion/imx8mpico/readme.txt b/board/technexion/imx8mpico/readme.txt new file mode 100644 index 000000000..c20bfc0f4 --- /dev/null +++ b/board/technexion/imx8mpico/readme.txt @@ -0,0 +1,99 @@ +**************************** +Technexion i.MX8M Pico board +**************************** + +This file documents the Buildroot support for the Technexion i.MX8M +Pico board. The Pico i.MX8M system-on-module [1] is present in +development kits like the Pico Pi i.MX8M [2]. + +Build +===== + +First, configure Buildroot for the i.MX8M Pico board: + + make imx8mpico_defconfig + +Build all components: + + make + +You will find in output/images/ the following files: + - bl31.bin + - boot.vfat + - Image + - imx8-boot-sd.bin + - lpddr4_pmu_train_fw.bin + - pico-8m-dcss-ili9881c.dtb + - pico-8m.dtb + - rootfs.ext4 + - sdcard.img + - signed_hdmi_imx8m.bin + - u-boot.imx + +Flashing sdcard.img on the eMMC +=============================== + +i.MX8M Pico board does not have a SD card slot. The storage is an +eMMC. An easy way to flash the eMMC is to use the u-boot ums +command. The boards are sold pre-flashed with such a u-boot. It is +assumed here that the board has already a working u-boot on eMMC and +jumpers are set to boot on eMMC. See [3]. + +Jumper configuration for eMMC boot: +J1: jumper on pins 4 and 6. +J2: jumper on pins 2 and 4. + +In case the board was flashed with a wrong u-boot, or the eMMC is +erased, u-boot can be loaded by USB Serial Download boot mode, using +imx-usb-loader. See [3]. + +For flashing: +- Plug the micro USB cable from the Debug USB Port, to your computer +- Plug the USB Type C to your computer, this will power up the board + +In the U-Boot prompt launch: + +=> ums 0 mmc ${mmcdev} + +This will mount the eMMC content in the host PC as a mass storage device. +Note: the ${mmcdev} id may change from one uboot version to another. The +actual id can be confirmed by running commands "mmc rescan" then +"mmc list", to find the eMMC entry. Finally it's possible to enter +directly the mmc device id, for example: "ums 0 mmc 2". + +To determine the device associated to the eMMC card have a look in the +/proc/partitions file: + + cat /proc/partitions + +If your system automatically mount some device partitions, make sure +to unmount them. + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped on the eMMC. Launch the following +command as root: + + dd bs=1M if=output/images/sdcard.img of=/dev/ + +*** WARNING! This will destroy all the eMMC content. Use with care! *** + +This operation can take several minutes, depending on the image +size. When tested, a 10MB/s transfer rate was observed. Note: the +blocksize "bs=1M" parameter gives better transfer performances. + +For details about the medium image layout, see the definition in +board/freescale/common/imx/genimage.cfg.template. + +Boot the i.MX8M Pico board +========================== + +To boot your newly created system: +- put a micro USB cable into the Debug USB Port and connect using a terminal + emulator at 115200 bps, 8n1; +- power on the board, with USB Type C connector. + +Enjoy! + +[1]. https://www.technexion.com/products/system-on-modules/pico/pico-compute-modules/detail/PICO-IMX8M +[2]. https://www.technexion.com/products/system-on-modules/evk/pico-pi-imx8m/ +[3]. https://developer.technexion.com/docs/pico-evaluation-kit-boot-mode-settings#picoimx8m-and-picoimx8mmini diff --git a/board/technologic/ts4900/genimage.cfg b/board/technologic/ts4900/genimage.cfg new file mode 100644 index 000000000..7e580eb27 --- /dev/null +++ b/board/technologic/ts4900/genimage.cfg @@ -0,0 +1,10 @@ +image sdcard.img { + hdimage { + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext2" + size = 256M + } +} diff --git a/board/technologic/ts4900/post-image.sh b/board/technologic/ts4900/post-image.sh new file mode 100755 index 000000000..cb966d883 --- /dev/null +++ b/board/technologic/ts4900/post-image.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# +# Copyright (C) 2015-2016 Savoir-Faire Linux +# Post image generation script. + +BOARD_DIR="$(dirname $0)" +GENIMAGE_CFG=$BOARD_DIR/genimage.cfg +GENIMAGE_TMP=$BUILD_DIR/.genimage_tmp + +rm -rf $GENIMAGE_TMP + +${HOST_DIR}/bin/genimage \ + --config ${GENIMAGE_CFG} \ + --rootpath $TARGET_DIR \ + --tmppath $GENIMAGE_TMP \ + --inputpath $BINARIES_DIR \ + --outputpath $BINARIES_DIR diff --git a/board/technologic/ts4900/readme.txt b/board/technologic/ts4900/readme.txt new file mode 100644 index 000000000..121e63974 --- /dev/null +++ b/board/technologic/ts4900/readme.txt @@ -0,0 +1,52 @@ +Technologic Systems TS-4900 +=========================== + +This document explains how to set up a basic Buildroot system for the +Technologic Systems TS-4900 System on Module. + +The TS-4900 is a TS-SOCKET macrocontroller board based on the +Freescale i.MX6 Single or Quad Core ARM Cortex-A9 CPU clocked at +1GHz. The TS-4900 features Gigabit Ethernet, SATA II Port, PCI Express +Bus, high speed USB host and device (OTG), and microSD card. +More details on the board here: + https://docs.embeddedTS.com/TS-4900 + +The TS-4900 is not currently supported by mainline Linux, so a +Technologic Systems Linux is used based on Linux 4.1. +The default U-boot configuration flashed scans the SD card to find the +0x83 partition type, corresponding to the rootfs. Then it will load +both uImage and dts from the /boot directory. +To build the default configuration you only have to: + + $ make ts4900_defconfig + $ make + +The output looks like: +output/images/ +├── imx6q-ts4900.dtb +├── rootfs.ext2 +├── rootfs.tar +├── sdcard.img +└── uImage + +Since both the uImage and the dts are contained in the /boot +directory, the provided post-image script generates an image file +containing only one partition for the rootfs: + + $ fdisk output/images/sdcard.img + Device Boot Start End Blocks Id System +output/images/sdcard.img1 1 524288 262144 83 Linux + +This image can be directly written to an SD card. + + $ sudo dd if=output/images/sdcard.img of=/dev/mmcblk0 + +In order to test the image on TS-4900 board, a TS baseboard, such as +the TS-9xxx series, is needed to provide power, console header, RJ45 +connector etc. + +The bootloader comes pre-flashed on the board on an SPI flash. Since +updating the bootloader is risky and not trivial, it is not included +in the Buildroot defconfig. Refer to +https://docs.embeddedTS.com/TS-4900#U-Boot for details on which +U-Boot config to use and how to flash it. diff --git a/board/technologic/ts5500/fs-overlay/boot/syslinux/syslinux.cfg b/board/technologic/ts5500/fs-overlay/boot/syslinux/syslinux.cfg new file mode 100644 index 000000000..64f818773 --- /dev/null +++ b/board/technologic/ts5500/fs-overlay/boot/syslinux/syslinux.cfg @@ -0,0 +1,9 @@ +SERIAL 1 115200 +CONSOLE 0 + +DEFAULT linux + +LABEL linux + SAY Now booting the kernel from SYSLINUX... + LINUX /boot/bzImage + APPEND console=ttyS1,115200n8 root=/dev/sda1 rootfstype=ext4 rw diff --git a/board/technologic/ts5500/linux-4.14.config b/board/technologic/ts5500/linux-4.14.config new file mode 100644 index 000000000..eb81596e2 --- /dev/null +++ b/board/technologic/ts5500/linux-4.14.config @@ -0,0 +1,111 @@ +# CONFIG_CROSS_MEMORY_ATTACH is not set +CONFIG_PARTITION_ADVANCED=y +# CONFIG_X86_EXTENDED_PLATFORM is not set +CONFIG_MELAN=y +CONFIG_X86_GENERIC=y +CONFIG_X86_REBOOTFIXUPS=y +CONFIG_NOHIGHMEM=y +# CONFIG_COMPACTION is not set +# CONFIG_BOUNCE is not set +# CONFIG_RELOCATABLE is not set +# CONFIG_SUSPEND is not set +# CONFIG_ACPI is not set +CONFIG_CPU_IDLE=y +CONFIG_TS5500=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_DIAG is not set +# CONFIG_IPV6 is not set +# CONFIG_WIRELESS is not set +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +# CONFIG_BLK_DEV is not set +CONFIG_BLK_DEV_SD=y +# CONFIG_SCSI_LOWLEVEL is not set +CONFIG_ATA=y +# CONFIG_ATA_VERBOSE_ERROR is not set +# CONFIG_SATA_PMP is not set +CONFIG_ATA_GENERIC=y +CONFIG_PATA_LEGACY=y +CONFIG_NETDEVICES=y +# CONFIG_NET_CORE is not set +# CONFIG_NET_VENDOR_3COM is not set +# CONFIG_NET_VENDOR_ADAPTEC is not set +# CONFIG_NET_VENDOR_ALTEON is not set +# CONFIG_NET_VENDOR_AMD is not set +# CONFIG_NET_VENDOR_ARC is not set +# CONFIG_NET_VENDOR_ATHEROS is not set +# CONFIG_NET_VENDOR_BROADCOM is not set +# CONFIG_NET_VENDOR_BROCADE is not set +# CONFIG_NET_VENDOR_CHELSIO is not set +# CONFIG_NET_VENDOR_CISCO is not set +CONFIG_NET_TULIP=y +CONFIG_DM9102=y +# CONFIG_NET_VENDOR_DLINK is not set +# CONFIG_NET_VENDOR_EMULEX is not set +# CONFIG_NET_VENDOR_EXAR is not set +# CONFIG_NET_VENDOR_HP is not set +# CONFIG_NET_VENDOR_INTEL is not set +# CONFIG_NET_VENDOR_MARVELL is not set +# CONFIG_NET_VENDOR_MELLANOX is not set +# CONFIG_NET_VENDOR_MICREL is not set +# CONFIG_NET_VENDOR_MYRI is not set +# CONFIG_NET_VENDOR_NATSEMI is not set +# CONFIG_NET_VENDOR_NVIDIA is not set +# CONFIG_NET_VENDOR_OKI is not set +# CONFIG_NET_PACKET_ENGINE is not set +# CONFIG_NET_VENDOR_QLOGIC is not set +# CONFIG_NET_VENDOR_REALTEK is not set +# CONFIG_NET_VENDOR_RDC is not set +# CONFIG_NET_VENDOR_SEEQ is not set +# CONFIG_NET_VENDOR_SILAN is not set +# CONFIG_NET_VENDOR_SIS is not set +# CONFIG_NET_VENDOR_SMSC is not set +# CONFIG_NET_VENDOR_STMICRO is not set +# CONFIG_NET_VENDOR_SUN is not set +# CONFIG_NET_VENDOR_TEHUTI is not set +# CONFIG_NET_VENDOR_TI is not set +# CONFIG_NET_VENDOR_VIA is not set +# CONFIG_NET_VENDOR_WIZNET is not set +CONFIG_PHYLIB=y +CONFIG_DAVICOM_PHY=y +# CONFIG_WLAN is not set +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_SERIO is not set +CONFIG_SERIAL_8250=y +# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set +CONFIG_SERIAL_8250_CONSOLE=y +# CONFIG_HW_RANDOM is not set +CONFIG_GPIOLIB=y +CONFIG_GPIO_TS5500=y +CONFIG_SENSORS_MAX197=y +CONFIG_WATCHDOG=y +CONFIG_SC520_WDT=y +CONFIG_USB=y +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_SERIAL=y +CONFIG_USB_SERIAL_FTDI_SIO=y +CONFIG_USB_SERIAL_PL2303=y +# CONFIG_X86_PLATFORM_DEVICES is not set +# CONFIG_IOMMU_SUPPORT is not set +# CONFIG_DMIID is not set +CONFIG_EXT4_FS=y +# CONFIG_DNOTIFY is not set +# CONFIG_INOTIFY_USER is not set +CONFIG_VFAT_FS=y +CONFIG_TMPFS=y +# CONFIG_MISC_FILESYSTEMS is not set +# CONFIG_NETWORK_FILESYSTEMS is not set +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_850=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_ISO8859_15=y +CONFIG_NLS_UTF8=y +# CONFIG_VIRTUALIZATION is not set +CONFIG_XZ_DEC=y diff --git a/board/technologic/ts5500/readme.txt b/board/technologic/ts5500/readme.txt new file mode 100644 index 000000000..1fe384faa --- /dev/null +++ b/board/technologic/ts5500/readme.txt @@ -0,0 +1,52 @@ +Technologic Systems TS-5x00 SBCs +================================ + +This document explains how to set up a basic Buildroot system for the +Technologic Systems TS-5x00 serie of x86-based Single Board Computers. + +TS-5x00 Single Board Computers are based on the AMD Elan520 processor. For more +information please have a look at https://docs.embeddedTS.com/Documentation_Home#AMD + +The kernel configuration works for any AMD Elan520-based SBCs, but the support +is enhanced for the TS-5500 and TS-5400 models (on-board devices registration +and additional sysfs attributes under /sys/devices/platform/). + +To build the default configuration you only have to: + + $ make ts5500_defconfig + $ make + +You will need a Compact Flash card of sufficient size and the first or only +partition configured as Linux type, with the bootable flag. + +You can transfer the system on the partition then optionally resize it with: + + # dd if=output/images/rootfs.ext4 of=/dev/sdX1 + # resize2fs /dev/sdX1 + +Or you can just extract the root filesystem to the partition with: + + # mount /dev/sdX1 /mnt + # tar -pxf output/images/rootfs.tar -C /mnt + # umount /mnt + +To install the bootloader, you will need to copy the MBR: + + # cat output/images/syslinux/mbr.bin > /dev/sdX + +Then install SYSLINUX in the mounted partition: + + # mount /dev/sdX1 /mnt + # output/host/sbin/extlinux --install /mnt/boot/syslinux + # umount /mnt + +IMPORTANT: In order for the board to boot the Compact Flash with a recent +config, the BIOS must use Logical Block Addressing (LBA). You can do it by +choosing "Ide 0: AUTOCONFIG, LBA" under "IDE DRIVE GEOMETRY" in the "Basic CMOS +Configuration" screen. Also, don't forget to set the 'active' (or 'bootable') +flag on partition 1. For details about the CMOS setup, please see: +https://docs.embeddedts.com/TS-5500#System_BIOS_Setup_Screens + +Connect a terminal program to the rs232 connector marked "COM2" +with baudrate set to 115200, insert the Compact Flash card into the socket, +power up the board, and enjoy. diff --git a/board/technologic/ts7680/genimage.cfg b/board/technologic/ts7680/genimage.cfg new file mode 100644 index 000000000..58a63edd1 --- /dev/null +++ b/board/technologic/ts7680/genimage.cfg @@ -0,0 +1,14 @@ +image sdcard.img { + hdimage { + } + + partition unused { + size = 512 + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 256M + } +} diff --git a/board/technologic/ts7680/readme.txt b/board/technologic/ts7680/readme.txt new file mode 100644 index 000000000..3f703330b --- /dev/null +++ b/board/technologic/ts7680/readme.txt @@ -0,0 +1,50 @@ +Technologic Systems TS-7680 SBC +=============================== + +This document explains how to set up a basic Buildroot system for +the Technologic Systems TS-7680 Single Board Computer. + +The TS-7680 SBC is based on the Freescale i.MX286 ARM ARM926EJ-S +running at 454MHz. The TS-7680 features are 10/100 Ethernet ports, +Wi-Fi, microSD card, eMMC, NOR Flash, USB host port, CAN ports, +relays and ADC/DAC. More details on the board here: +https://docs.embeddedTS.com/TS-7680 + +The TS-7680 uses a 4.9 Linux kernel provided by Technologic Systems. + +To build the default configuration you only have to run: + + $ make ts7680_defconfig + $ make + +The output looks like: +output/images +├── imx28-ts7680.dtb +├── rootfs.ext2 +├── rootfs.ext4 -> rootfs.ext2 +├── rootfs.tar +├── sdcard.img +└── uImage + +The provided genimage configuration generates an image file containing +two partitions. The first one is unused, but mandatory as the +TS-7680 built-in bootloader loads the Linux uImage from the /boot +directory in the second partition. The second partition contains the +rootfs with the Linux uImage into the /boot directory. + + $ fdisk output/images/sdcard.img + output/images/sdcard.img1 1 1 1 512B 0 Empty + output/images/sdcard.img2 2 524289 524288 256M 83 Linux + +This image can be directly written to an SD card. + + $ sudo dd if=output/images/sdcard.img of=/dev/mmcblk0 + +To boot with Buildroot, insert this SD card on the board, make sure +the SD jumper is present and the U-Boot jumper is not. + +The bootloader comes pre-flashed on the board on an SPI flash. Since +updating the bootloader is risky and not trivial, it is not included +in the Buildroot defconfig. Refer to +https://docs.embeddedts.com/TS-7680#U-Boot for details on +which U-Boot config to use and how to flash it. diff --git a/board/terasic/de10nano_cyclone5/barebox-env/boot/mmc b/board/terasic/de10nano_cyclone5/barebox-env/boot/mmc new file mode 100644 index 000000000..fed2b0b45 --- /dev/null +++ b/board/terasic/de10nano_cyclone5/barebox-env/boot/mmc @@ -0,0 +1,8 @@ +#!/bin/sh + +global.bootm.oftree="/boot/socfpga_cyclone5_de0_nano_soc.dtb" +global.bootm.image="/boot/zImage" + +#bootargs-ip + +global.linux.bootargs.dyn.root="root=/dev/mmcblk0p3 rw rootwait" diff --git a/board/terasic/de10nano_cyclone5/barebox-env/init/automount b/board/terasic/de10nano_cyclone5/barebox-env/init/automount new file mode 100644 index 000000000..4092ecbae --- /dev/null +++ b/board/terasic/de10nano_cyclone5/barebox-env/init/automount @@ -0,0 +1,5 @@ +#!/bin/sh + +# SD card slot, first partition +mkdir -p /mnt/mmcblk0p2 +automount -d /mnt/mmcblk0p2 'mount /dev/mmc0.1 /mnt/mmcblk0p2' diff --git a/board/terasic/de10nano_cyclone5/barebox-env/nv/boot.default b/board/terasic/de10nano_cyclone5/barebox-env/nv/boot.default new file mode 100644 index 000000000..61f529d69 --- /dev/null +++ b/board/terasic/de10nano_cyclone5/barebox-env/nv/boot.default @@ -0,0 +1 @@ +mmc diff --git a/board/terasic/de10nano_cyclone5/barebox-env/nv/linux.bootargs.console b/board/terasic/de10nano_cyclone5/barebox-env/nv/linux.bootargs.console new file mode 100644 index 000000000..476b1fbe4 --- /dev/null +++ b/board/terasic/de10nano_cyclone5/barebox-env/nv/linux.bootargs.console @@ -0,0 +1 @@ +console=ttyS0,115200 diff --git a/board/terasic/de10nano_cyclone5/genimage.cfg b/board/terasic/de10nano_cyclone5/genimage.cfg new file mode 100644 index 000000000..815e4a1bf --- /dev/null +++ b/board/terasic/de10nano_cyclone5/genimage.cfg @@ -0,0 +1,43 @@ +image boot.vfat { + vfat { + file zImage { + image = "zImage" + } + + file socfpga_cyclone5_de0_nano_soc.dtb { + image = "socfpga_cyclone5_de0_nano_soc.dtb" + } + + file barebox.bin { + image = "barebox-socfpga-de10_nano.img" + } + + file barebox.env { + image = "barebox-env" + } + } + + size = 8M +} + +image sdcard.img { + hdimage { + } + + partition spl { + partition-type = 0xa2 + image = "barebox-socfpga-de10_nano-xload.img" + size = 1M + } + + partition boot { + partition-type = 0xc + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext2" + } +} diff --git a/board/terasic/de10nano_cyclone5/readme.txt b/board/terasic/de10nano_cyclone5/readme.txt new file mode 100644 index 000000000..f9d8fc756 --- /dev/null +++ b/board/terasic/de10nano_cyclone5/readme.txt @@ -0,0 +1,41 @@ +Terasic DE10 Nano Development Board + +Intro +===== + +More information about this board can be found here: +https://rocketboards.org/foswiki/Documentation/DE10NanoDevelopmentBoard + +Build +===== + +First, load socrates config for buildroot + + make terasic_de10nano_cyclone5_defconfig + +Build everything + + make + +Following files will be generated in output/images + +. +├── barebox-env +├── barebox-socfpga-de10_nano.img +├── barebox-socfpga-de10_nano-xload.img +├── boot.vfat +├── rootfs.ext2 +├── rootfs.ext4 -> rootfs.ext2 +├── rootfs.tar +├── sdcard.img +├── socfpga_cyclone5_de0_nano_soc.dtb +└── zImage + +Creating bootable SD card +========================= + +Simply invoke + +dd if=output/images/sdcard.img of=/dev/sdX + +Where X is your SD card device (not partition) diff --git a/board/toradex/apalis-imx6/genimage.cfg b/board/toradex/apalis-imx6/genimage.cfg new file mode 100644 index 000000000..a277decaa --- /dev/null +++ b/board/toradex/apalis-imx6/genimage.cfg @@ -0,0 +1,15 @@ +# Minimal SD card image for the Toradex Apalis i.MX6 COM +# +# It does not need a boot section for a bootloader since it is booted +# from its internal flash memory (eMMC). + +image sdcard.img { + hdimage { + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext2" + size = 512M + } +} diff --git a/board/toradex/apalis-imx6/post-image.sh b/board/toradex/apalis-imx6/post-image.sh new file mode 100755 index 000000000..2b49f9d3d --- /dev/null +++ b/board/toradex/apalis-imx6/post-image.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +GENIMAGE_CFG="$(dirname $0)/genimage.cfg" +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + +# copy the uEnv.txt to the output/images directory +cp board/toradex/apalis-imx6/uEnv.txt $BINARIES_DIR/uEnv.txt + +rm -rf "${GENIMAGE_TMP}" + +# generate rootfs.img +genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" + +RET=${?} +exit ${RET} diff --git a/board/toradex/apalis-imx6/readme.txt b/board/toradex/apalis-imx6/readme.txt new file mode 100644 index 000000000..feddad641 --- /dev/null +++ b/board/toradex/apalis-imx6/readme.txt @@ -0,0 +1,53 @@ +Toradex Apalis i.MX6 Computer on Module + +Intro +===== + +The Apalis iMX6 is a small form-factor Computer on Module that comes +in both quad core and dual core versions based on Freescale i.MX6Q and +Freescale i.MX6D SoCs respectively. The Cortex A9 quad core and dual +core CPU peaks at 1 GHz for commercial temperature variant, while the +industrial temperature variant has a peak frequency of 800 MHz. + +https://www.toradex.com/computer-on-modules/apalis-arm-family/freescale-imx-6 + +It supports two carrier boards: + +Apalis Evaluation Board +https://www.toradex.com/products/carrier-boards/apalis-evaluation-board + +Ixora Carrier Board +https://www.toradex.com/products/carrier-boards/ixora-carrier-board + +How to build it +=============== + +Configure Buildroot: + + $ make toradex_apalis_imx6_defconfig + +Compile everything and build the rootfs image: + + $ make + +How to boot the image +===================== + +The board only boots from its internal flash memory eMMC, so the +bootloader image should be copied to it, following the procedures +described in Toradex website. + +http://developer.toradex.com/knowledge-base/flashing-linux-on-imx6-modules + +Buildroot prepares a "sdcard.img" in output/images/ with the kernel +image, device tree and a root filesystem, ready to be dumped on an SD +card. + + $ dd if=output/images/sdcard.img of=/dev/sdX bs=1M + +To boot from the SD card, you should change the U-Boot +environment. Since U-Boot is running from internal eMMC, you will need +to access its command line prompt and manually set the necessary +variables to boot from the external SD card. For convenience, you can +use uEnv.txt provided in output/images/ as a reference to create the +necessary U-Boot variables to boot from the SD card. diff --git a/board/toradex/apalis-imx6/uEnv.txt b/board/toradex/apalis-imx6/uEnv.txt new file mode 100644 index 000000000..96ab80cfb --- /dev/null +++ b/board/toradex/apalis-imx6/uEnv.txt @@ -0,0 +1,6 @@ +boot_file=zImage +fdt_file=imx6q-apalis_v1_0-ixora.dtb +sdargs=ip=off root=/dev/mmcblk1p1 rw,noatime rootfstype=ext4 rootwait +sddtbload=ext2load mmc 2:1 ${fdt_addr_r} boot/${fdt_file} +sdkernelload=ext2load mmc 2:1 ${kernel_addr_r} boot/${boot_file} +bootcmd=run setup; setenv bootargs ${defargs} ${sdargs} ${setupargs} ${vidargs}; echo Booting from SD card...; run sddtbload; run sdkernelload; bootz ${kernel_addr_r} - ${fdt_addr_r} diff --git a/board/udoo/common/boot.scr.txt b/board/udoo/common/boot.scr.txt new file mode 100644 index 000000000..7a7d756c3 --- /dev/null +++ b/board/udoo/common/boot.scr.txt @@ -0,0 +1,7 @@ +setenv finduuid "part uuid mmc 1:1 uuid" +run finduuid +run findfdt +setenv bootargs "console=${console} root=PARTUUID=${uuid} rootwait rootfstype=ext4" +load mmc 1:1 ${fdt_addr} boot/${fdtfile} +load mmc 1:1 ${loadaddr} boot/zImage +bootz ${loadaddr} - ${fdt_addr} diff --git a/board/udoo/common/post-build.sh b/board/udoo/common/post-build.sh new file mode 100755 index 000000000..d3f612f81 --- /dev/null +++ b/board/udoo/common/post-build.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +cp $BINARIES_DIR/boot.scr $TARGET_DIR/boot/boot.scr diff --git a/board/udoo/mx6qdl/patches/linux/0000-udoo-disable-usbh1.patch b/board/udoo/mx6qdl/patches/linux/0000-udoo-disable-usbh1.patch new file mode 100644 index 000000000..d151a40d6 --- /dev/null +++ b/board/udoo/mx6qdl/patches/linux/0000-udoo-disable-usbh1.patch @@ -0,0 +1,26 @@ +[PATCH] ARM: dts: imx6qdl-udoo: Disable usbh1 to avoid kernel hang + +Currently the kernel hangs when USB Host1 is enabled due to the lack of +support for controlling the USB hub clock and GPIO reset line. + +Peter Chen has made several attempts to fix this problem, but his series +has not been applied yet, so better disable USB host1 for now to avoid +the kernel hang. + +Signed-off-by: Fabio Estevam +--- + +diff --git a/arch/arm/boot/dts/imx6qdl-udoo.dtsi b/arch/arm/boot/dts/imx6qdl-udoo.dtsi +index 828dd20cd27d..c9e122865312 100644 +--- a/arch/arm/boot/dts/imx6qdl-udoo.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-udoo.dtsi +@@ -292,7 +292,8 @@ &usbh1 { + pinctrl-0 = <&pinctrl_usbh>; + vbus-supply = <®_usb_h1_vbus>; + clocks = <&clks IMX6QDL_CLK_CKO>; +- status = "okay"; ++ /* currently USB support causes a kernel hang. Disable it for now */ ++ status = "disabled"; + }; + + &usbotg { diff --git a/board/udoo/mx6qdl/readme.txt b/board/udoo/mx6qdl/readme.txt new file mode 100644 index 000000000..a7ca98cc8 --- /dev/null +++ b/board/udoo/mx6qdl/readme.txt @@ -0,0 +1,17 @@ +Udoo MX6Q/DL board + +For information about MX6 Udoo boards: +http://www.udoo.org/ + +To build a minimal support for these boards: + + $ make mx6udoo_defconfig + $ make + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped on a micro SD card: + +dd if=output/images/sdcard.img of=/dev/ + +For details about the medium image layout, see the definition in +board/freescale/common/imx/genimage.cfg.template_no_boot_part_spl. diff --git a/board/udoo/neo/readme.txt b/board/udoo/neo/readme.txt new file mode 100644 index 000000000..94ebcc12f --- /dev/null +++ b/board/udoo/neo/readme.txt @@ -0,0 +1,16 @@ +MX6X Udoo Neo board + +http://www.udoo.org/udoo-neo/ + +To build a minimal support for these boards: + + $ make mx6sx_udoo_neo_defconfig + $ make + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped on an SD card: + +dd if=output/images/sdcard.img of=/dev/ + +For details about the medium image layout, see the definition in +board/freescale/common/imx/genimage.cfg.template_no_boot_part_spl. diff --git a/board/uevm5432/genimage.cfg b/board/uevm5432/genimage.cfg new file mode 100644 index 000000000..dfe388227 --- /dev/null +++ b/board/uevm5432/genimage.cfg @@ -0,0 +1,27 @@ +image boot.vfat { + vfat { + files = { + "MLO", + "u-boot.img" + } + } + + size = 8M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/board/uevm5432/readme.txt b/board/uevm5432/readme.txt new file mode 100644 index 000000000..4569fbd84 --- /dev/null +++ b/board/uevm5432/readme.txt @@ -0,0 +1,40 @@ +OMAP5432 uEVM +============= + +This file documents the Buildroot support for the OMAP5432 uEVM[1], a +single-board computer development platform based on the Texas Instruments +OMAP5432 system on a chip (SoC). + +How to build +============ + + $ make uevm5432_defconfig + $ make + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + $ sync + +Where /dev/sdX is the device node of your SD card (may be /dev/mmcblkX instead +depending on setup). + +To boot from SD card, set the SYSBOOT switches S1 of your OMAP5432 uEVM to the +following position: + + ON x x + x x + 1 2 3 4 + +Insert the micro SDcard in your OMAP5432 uEVM, and power it up with the POWER +ON push button switch S3. The console is on the micro USB Debug UART, with +serial settings 115200 8N1. Refer also to the quick start guide[2]. + +[1]: https://svtronics.com/5432 +[2]: https://www.ti.com/lit/ug/swcu131/swcu131.pdf diff --git a/board/wandboard/readme.txt b/board/wandboard/readme.txt new file mode 100644 index 000000000..adc4e5c19 --- /dev/null +++ b/board/wandboard/readme.txt @@ -0,0 +1,14 @@ +Wandboard + +http://www.wandboard.org + +To build a minimal support for this board: + + $ make wandboard_defconfig + $ make + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped on an SD card. + +For details about the medium image layout, see the definition in +board/wandboard/genimage.cfg. diff --git a/board/wandboard/rootfs_overlay/boot/extlinux/extlinux.conf b/board/wandboard/rootfs_overlay/boot/extlinux/extlinux.conf new file mode 100644 index 000000000..e3b90660c --- /dev/null +++ b/board/wandboard/rootfs_overlay/boot/extlinux/extlinux.conf @@ -0,0 +1,4 @@ +Label imx6qdl-wandboard Buildroot + kernel ../zImage + fdtdir ../ + append root=PARTUUID=${uuid} rootwait rw console=${console},${baudrate} diff --git a/board/warp7/readme.txt b/board/warp7/readme.txt new file mode 100644 index 000000000..aff7a601e --- /dev/null +++ b/board/warp7/readme.txt @@ -0,0 +1,118 @@ +***************** +Warp i.MX7S board +***************** + +This file documents the Buildroot support for the Warp i.MX7S board. + +Build +===== + +First, configure Buildroot for the Warp i.MX7S board: + + make warp7_defconfig + +Build all components: + + make + +You will find in output/images/ the following files: + - imx7s-warp.dtb + - rootfs.ext4 + - rootfs.tar + - sdcard.img + - u-boot-dtb.imx + - zImage + +Flash the eMMC image +==================== + +In the U-Boot prompt lauch: + +=> ums 0 mmc 0 + +This will mount the eMMC content in the host PC as a mass storage device. + +To determine the device associated to the eMMC have a look in the +/proc/partitions file: + + cat /proc/partitions + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped into the eMMC. Launch the following +command: + +sudo dd if=output/images/sdcard.img of=/dev/ + +*** WARNING! This will destroy all the eMMC content. Use it with care! *** + +For details about the medium image layout, see the definition in +board/warp7/genimage.cfg. + +How to recover from a bad eMMC image +==================================== + +In case a bad U-Boot has been flashed to the eMMC and the board no +longer boots, it is possible to recover using the imx_usb_loader utility. + +Put the warp7 board in USB download mode by removing the CPU board +from the base board then putting switch 2 in the upper position. + +Connect a USB to serial adapter between the host PC and warp7 serial +USB port, and also a USB cable between the OTG warp7 port and the host +PC. + +Copy u-boot-dtb.imx to the imx_usb_loader folder. + +Load u-boot-dtb.imx via USB: + +$ sudo ./imx_usb u-boot-dtb.imx + +Then U-Boot should start and its messages will appear in the console program. + +Open a terminal program such as minicom. + +Use the default environment variables: + +=> env default -f -a +=> saveenv + +Run the DFU command: +=> dfu 0 mmc 0 + +Transfer u-boot-dtb.imx that will be flashed into the eMMC: + +$ sudo dfu-util -D u-boot-dtb.imx -a boot + +Then on the U-Boot prompt the following message should be seen after a +successful upgrade: + +#DOWNLOAD ... OK +Ctrl+C to exit ... + +=> ums 0 mmc 0 + +sudo dd if=output/images/sdcard.img of=/dev/ + +Put warp7 back in eMMC boot mode by placing switch 2 in the lower position +and reboot the board. + +Boot the Warp i.MX7S board +========================== + +To boot your newly created system: +- put a micro USB cable into the Debug USB Port and connect using a terminal + emulator at 115200 bps, 8n1; +- power on the board. + +Using Wifi +========== + +# modprobe brcmfmac +# iwconfig wlan0 essid ACCESSPOINTNAME +# wpa_passphrase ACCESSPOINTNAME > /etc/wpa.conf +(enter the wifi password and press enter) +# wpa_supplicant -Dwext -iwlan0 -c /etc/wpa.conf & +# udhcpc -i wlan0 +# ping buildroot.org + +Enjoy! diff --git a/board/warp7/rootfs_overlay/lib/firmware/brcm/brcmfmac43430-sdio.txt b/board/warp7/rootfs_overlay/lib/firmware/brcm/brcmfmac43430-sdio.txt new file mode 100644 index 000000000..a1dc20352 --- /dev/null +++ b/board/warp7/rootfs_overlay/lib/firmware/brcm/brcmfmac43430-sdio.txt @@ -0,0 +1,42 @@ +# 2.4 GHz, 20 MHz BW mode +manfid=0x2d0 +prodid=0x0726 +vendid=0x14e4 +devid=0x43e2 +boardtype=0x0726 +boardrev=0x1202 +boardnum=22 +macaddr=00:90:4c:c5:12:38 +sromrev=11 +boardflags=0x00404201 +boardflags3=0x08000000 +xtalfreq=37400 +nocrc=1 +ag0=0 +aa2g=1 +ccode=ALL +#pa0itssit=0x20 +extpagain2g=0 +pa2ga0=-168,7161,-820 +AvVmid_c0=0x0,0xc8 +cckpwroffset0=5 +maxp2ga0=90 +#txpwrbckof=6 +cckbw202gpo=0 +legofdmbw202gpo=0x66111111 +mcsbw202gpo=0x77711111 +propbw202gpo=0xdd +ofdmdigfilttype=18 +ofdmdigfilttypebe=18 +papdmode=1 +papdvalidtest=1 +pacalidx2g=48 +papdepsoffset=-22 +papdendidx=58 +il0macaddr=00:90:4c:c5:12:38 +wl0id=0x431b +#muxenab=0x10 +#BT COEX deferral limit setting +#btc_params 8 45000 +#btc_params 10 20000 +#spurconfig=0x3 diff --git a/board/zynq/extlinux.conf b/board/zynq/extlinux.conf new file mode 100644 index 000000000..3c2ab4f46 --- /dev/null +++ b/board/zynq/extlinux.conf @@ -0,0 +1,4 @@ +label linux + kernel /uImage + devicetree /system.dtb + append console=ttyPS0,115200 root=/dev/mmcblk0p2 rw rootwait diff --git a/board/zynq/genimage.cfg b/board/zynq/genimage.cfg new file mode 100644 index 000000000..78eb9275d --- /dev/null +++ b/board/zynq/genimage.cfg @@ -0,0 +1,32 @@ +image boot.vfat { + vfat { + files = { + "boot.bin", + "u-boot.img", + "system.dtb", + "uImage" + } + + file extlinux/extlinux.conf { + image = extlinux.conf + } + } + + size = 32M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/zynq/microzed/uboot.fragment b/board/zynq/microzed/uboot.fragment new file mode 100644 index 000000000..bc4dffaff --- /dev/null +++ b/board/zynq/microzed/uboot.fragment @@ -0,0 +1 @@ +CONFIG_DEFAULT_DEVICE_TREE="zynq-microzed" diff --git a/board/zynq/post-build.sh b/board/zynq/post-build.sh new file mode 100755 index 000000000..9fd8bbf2c --- /dev/null +++ b/board/zynq/post-build.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +# genimage will need to find the extlinux.conf +# in the binaries directory + +BOARD_DIR="$(dirname $0)" + +install -m 0644 -D $BOARD_DIR/extlinux.conf $BINARIES_DIR/extlinux.conf diff --git a/board/zynq/post-image.sh b/board/zynq/post-image.sh new file mode 100755 index 000000000..ac74286cf --- /dev/null +++ b/board/zynq/post-image.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +# By default U-Boot loads DTB from a file named "devicetree.dtb", so +# let's use a symlink with that name that points to the *first* +# devicetree listed in the config. + +FIRST_DT=$(sed -n \ + 's/^BR2_LINUX_KERNEL_INTREE_DTS_NAME="\([a-z0-9\-]*\).*"$/\1/p' \ + ${BR2_CONFIG}) + +[ -z "${FIRST_DT}" ] || ln -fs ${FIRST_DT}.dtb ${BINARIES_DIR}/system.dtb + +BOARD_DIR="$(dirname $0)" + +support/scripts/genimage.sh -c $BOARD_DIR/genimage.cfg diff --git a/board/zynq/readme.txt b/board/zynq/readme.txt new file mode 100644 index 000000000..162734963 --- /dev/null +++ b/board/zynq/readme.txt @@ -0,0 +1,86 @@ +This is the Buildroot support for Zynq boards. Zynq boards are available from +Xilinx and some third party vendors, but the build procedure is very similar. + +Currently, three boards are natively supported by Buildroot: + - Xilinx ZC706 board (zynq_zc706_defconfig) + - Avnet ZedBoard (zynq_zed_defconfig) + - Avnet MicroZed (zynq_microzed_defconfig) + +Steps to create a working system for a Zynq board: + +1) Configuration (do one of the following) + make zynq_zc706_defconfig (ZC706) + make zynq_zed_defconfig (Zedboard) + make zynq_microzed_defconfig (MicroZed) +2) make +3) All needed files will be available in the output/images directory. + The sdcard.img file is a complete bootable image ready to be written + on the boot medium. To install it, simply copy the image to an SD + card: + + # dd if=output/images/sdcard.img of=/dev/sdX + + Where 'sdX' is the device node of the uSD. +4) boot your board + +You can alter the booting procedure by creating a file uEnv.txt +in the root of the SD card. It is a plain text file in format += one per line: + +kernel_image=myimage +modeboot=myboot +myboot=... + +Note: +The DTB for MicroZed is the same as the one for the Zedboard (zynq-zed.dtb), +and this is the recommended solution, see +https://forums.xilinx.com/t5/Embedded-Linux/Microzed-default-device-tree-dts/td-p/432856. + +References: + - ZC706 information including schematics, reference designs, and manuals are + available from + http://www.xilinx.com/products/boards-and-kits/ek-z7-zc706-g.html. + + - Zedboard/Microzed information including schematics, reference designs, and + manuals are available from http://www.zedboard.org . + +Support for other boards: + +If you want to build a system for other boards based on the same SoC +(for ex. Digilent Zybo board), and the board is already supported by +the upstream kernel and U-Boot, you simply need to change the +following Buildroot options: + + - Kernel Device Tree file name (BR2_LINUX_KERNEL_INTREE_DTS_NAME) + - U-Boot board defconfig (BR2_TARGET_UBOOT_BOARD_DEFCONFIG) + +Custom ps7_init_gpl.c/h support: + +To generate a working boot.bin image, ps7_init_gpl.c/h are required in +the U-Boot source tree. Without those files, boot.bin will be built +successfully but it will not be functional at all. Those files are +output from the Xilinx tools, but for convenience, U-Boot includes the +default ps7_init_gpl.c/h of popular boards. Those files may need to be +updated for any programmable logic customizations which impact +ps7_init (clock/pin setup & mapping/AXI bridge setup/etc). See +board/xilinx/zynq/ directory of U-Boot for natively supported ps7_init +files. If the ps7_init files for your board are not found in U-Boot, +you need to add them by yourself. + +1) Start with a defconfig supported by Buildroot (e.g. Zedboard) + make zynq_zed_defconfig + +2) make uboot-menuconfig + Visit the following menu and enable CONFIG_ZYNQ_CUSTOM_INIT. + + ARM architecture ---> + [*] Use custom ps7_init provided by Xilinx tool + +3) Copy ps7_init_gpl.c/h generated by the Xilinx tools into + output/build/uboot-xilinx-/board/xilinx/zynq/custom_hw_platform/ + +4) make + +Note: The files in step 3 will need to be re-copied after cleaning the +output directory and at this time, there is no way to save them as +part of the buildroot configuration, except as a U-Boot patch. diff --git a/board/zynq/zc706/uboot.fragment b/board/zynq/zc706/uboot.fragment new file mode 100644 index 000000000..ad5efa620 --- /dev/null +++ b/board/zynq/zc706/uboot.fragment @@ -0,0 +1 @@ +CONFIG_DEFAULT_DEVICE_TREE="zynq-zc706" diff --git a/board/zynq/zed/uboot.fragment b/board/zynq/zed/uboot.fragment new file mode 100644 index 000000000..d58fcd543 --- /dev/null +++ b/board/zynq/zed/uboot.fragment @@ -0,0 +1 @@ +CONFIG_DEFAULT_DEVICE_TREE="zynq-zed" diff --git a/board/zynqmp/genimage.cfg b/board/zynqmp/genimage.cfg new file mode 100644 index 000000000..20d8352c0 --- /dev/null +++ b/board/zynqmp/genimage.cfg @@ -0,0 +1,31 @@ +image boot.vfat { + vfat { + files = { + "boot.bin", + "u-boot.itb", + "system.dtb", + "Image" + } + file extlinux/extlinux.conf { + image = extlinux.conf + } + } + + size = 32M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/zynqmp/kria/kv260/kv260.sh b/board/zynqmp/kria/kv260/kv260.sh new file mode 100755 index 000000000..e3467f306 --- /dev/null +++ b/board/zynqmp/kria/kv260/kv260.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +# This is a temporary work around for generating kv260 u-boot.itb. +# The problem is there is no way to currently configure u-boot to apply +# the carrier board dtb overlay during build, so all kv260 carrier board +# drivers are missing. +# This will be removed when u-boot can build the kv260 u-boot.itb natively. + +UBOOT_DIR=$4 + +fdtoverlay -o ${UBOOT_DIR}/fit-dtb.blob -i ${UBOOT_DIR}/arch/arm/dts/zynqmp-smk-k26-revA.dtb ${UBOOT_DIR}/arch/arm/dts/zynqmp-sck-kv-g-revB.dtbo +${UBOOT_DIR}/tools/mkimage -E -f ${UBOOT_DIR}/u-boot.its -B 0x8 ${BINARIES_DIR}/u-boot.itb diff --git a/board/zynqmp/kria/kv260/pm_cfg_obj.c b/board/zynqmp/kria/kv260/pm_cfg_obj.c new file mode 100644 index 000000000..019df6e23 --- /dev/null +++ b/board/zynqmp/kria/kv260/pm_cfg_obj.c @@ -0,0 +1,556 @@ +/****************************************************************************** +* Copyright (c) 2017 - 2021 Xilinx, Inc. All rights reserved. +* SPDX-License-Identifier: MIT +******************************************************************************/ + +#include "xil_types.h" +#include "pm_defs.h" + +#define PM_CONFIG_MASTER_SECTION_ID 0x101U +#define PM_CONFIG_SLAVE_SECTION_ID 0x102U +#define PM_CONFIG_PREALLOC_SECTION_ID 0x103U +#define PM_CONFIG_POWER_SECTION_ID 0x104U +#define PM_CONFIG_RESET_SECTION_ID 0x105U +#define PM_CONFIG_SHUTDOWN_SECTION_ID 0x106U +#define PM_CONFIG_SET_CONFIG_SECTION_ID 0x107U +#define PM_CONFIG_GPO_SECTION_ID 0x108U + +#define PM_SLAVE_FLAG_IS_SHAREABLE 0x1U +#define PM_MASTER_USING_SLAVE_MASK 0x2U + +#define PM_CONFIG_GPO1_MIO_PIN_34_MAP (1U << 10U) +#define PM_CONFIG_GPO1_MIO_PIN_35_MAP (1U << 11U) +#define PM_CONFIG_GPO1_MIO_PIN_36_MAP (1U << 12U) +#define PM_CONFIG_GPO1_MIO_PIN_37_MAP (1U << 13U) + +#define PM_CONFIG_GPO1_BIT_2_MASK (1U << 2U) +#define PM_CONFIG_GPO1_BIT_3_MASK (1U << 3U) +#define PM_CONFIG_GPO1_BIT_4_MASK (1U << 4U) +#define PM_CONFIG_GPO1_BIT_5_MASK (1U << 5U) + +#define SUSPEND_TIMEOUT 0xFFFFFFFFU + +#define PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK 0x00000001 +#define PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK 0x00000100 +#define PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK 0x00000200 + + + +#if defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#endif +#if defined (__GNUC__) + const u32 XPm_ConfigObject[] __attribute__((used, section(".sys_cfg_data"))) = +#elif defined (__ICCARM__) +#pragma location = ".sys_cfg_data" +__root const u32 XPm_ConfigObject[] = +#endif +{ + /**********************************************************************/ + /* HEADER */ + 2, /* Number of remaining words in the header */ + 8, /* Number of sections included in config object */ + 1U, /* Type of config object as base */ + /**********************************************************************/ + /* MASTER SECTION */ + PM_CONFIG_MASTER_SECTION_ID, /* Master SectionID */ + 3U, /* No. of Masters*/ + + NODE_APU, /* Master Node ID */ + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK, /* IPI Mask of this master */ + SUSPEND_TIMEOUT, /* Suspend timeout */ + PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* Suspend permissions */ + PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* Wake permissions */ + + NODE_RPU_0, /* Master Node ID */ + PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK, /* IPI Mask of this master */ + SUSPEND_TIMEOUT, /* Suspend timeout */ + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* Suspend permissions */ + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* Wake permissions */ + + NODE_RPU_1, /* Master Node ID */ + PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask of this master */ + SUSPEND_TIMEOUT, /* Suspend timeout */ + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK, /* Suspend permissions */ + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK, /* Wake permissions */ + + + /**********************************************************************/ + /* SLAVE SECTION */ + + + PM_CONFIG_SLAVE_SECTION_ID, /* Section ID */ + 49, /* Number of slaves */ + + NODE_OCM_BANK_0, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_OCM_BANK_1, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_OCM_BANK_2, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_OCM_BANK_3, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_TCM_0_A, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK, /* IPI Mask */ + + NODE_TCM_0_B, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK, /* IPI Mask */ + + NODE_TCM_1_A, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_TCM_1_B, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_L2, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_GPU_PP_0, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_GPU_PP_1, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_USB_0, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_USB_1, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_TTC_0, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_TTC_1, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_TTC_2, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_TTC_3, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_SATA, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_ETH_0, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_ETH_1, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_ETH_2, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_ETH_3, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_UART_0, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_UART_1, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_SPI_0, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_SPI_1, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_I2C_0, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_I2C_1, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_SD_0, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_SD_1, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_DP, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_GDMA, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_ADMA, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_NAND, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_QSPI, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_GPIO, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_CAN_0, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_CAN_1, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_EXTERN, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_DDR, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_IPI_APU, + 0U, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK, /* IPI Mask */ + + NODE_IPI_RPU_0, + 0U, + PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK, /* IPI Mask */ + + NODE_IPI_RPU_1, + 0U, + PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_GPU, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_PCIE, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_PCAP, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_RTC, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_VCU, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_PL, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + + /**********************************************************************/ + /* PREALLOC SECTION */ + + PM_CONFIG_PREALLOC_SECTION_ID, /* Preallaoc SectionID */ + 3U, /* No. of Masters*/ + +/* Prealloc for psu_cortexa53_0 */ + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK, + 11, + NODE_DDR, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_L2, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_OCM_BANK_0, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_OCM_BANK_1, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_OCM_BANK_2, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_OCM_BANK_3, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_I2C_1, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_SD_1, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_QSPI, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_PL, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_IPI_APU, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + + /* Prealloc for psu_cortexr5_0 */ + PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK, + 3, + NODE_TCM_0_A, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_TCM_0_B, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_IPI_RPU_0, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + + /* Prealloc for psu_cortexr5_1 */ + PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + 3, + NODE_TCM_1_A, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_TCM_1_B, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_IPI_RPU_1, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + + + /**********************************************************************/ + /* POWER SECTION */ + + PM_CONFIG_POWER_SECTION_ID, /* Power Section ID */ + 4U, /* Number of power nodes */ + + NODE_APU, /* Power node ID */ + PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* Force power down permissions */ + + NODE_RPU, /* Power node ID */ + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* Force power down permissions */ + + NODE_FPD, /* Power node ID */ + PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* Force power down permissions */ + + NODE_PLD, /* Power node ID */ + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* Force power down permissions */ + + + /**********************************************************************/ + /* RESET SECTION */ + + PM_CONFIG_RESET_SECTION_ID, /* Reset Section ID */ + 120U, /* Number of resets */ + + XILPM_RESET_PCIE_CFG, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_PCIE_BRIDGE, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_PCIE_CTRL, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_DP, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_SWDT_CRF, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_AFI_FM5, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_AFI_FM4, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_AFI_FM3, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_AFI_FM2, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_AFI_FM1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_AFI_FM0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GDMA, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPU_PP1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPU_PP0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPU, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GT, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_SATA, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_ACPU3_PWRON, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_ACPU2_PWRON, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_ACPU1_PWRON, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_ACPU0_PWRON, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_APU_L2, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_ACPU3, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_ACPU2, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_ACPU1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_ACPU0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_DDR, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_APM_FPD, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_SOFT, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GEM0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GEM1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GEM2, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GEM3, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_QSPI, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_UART0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_UART1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_SPI0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_SPI1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_SDIO0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_SDIO1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_CAN0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_CAN1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_I2C0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_I2C1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_TTC0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_TTC1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_TTC2, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_TTC3, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_SWDT_CRL, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_NAND, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_ADMA, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPIO, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_IOU_CC, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_TIMESTAMP, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_RPU_R50, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_RPU_R51, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_RPU_AMBA, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_OCM, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_RPU_PGE, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_USB0_CORERESET, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_USB1_CORERESET, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_USB0_HIBERRESET, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_USB1_HIBERRESET, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_USB0_APB, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_USB1_APB, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_IPI, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_APM_LPD, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_RTC, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_SYSMON, 0, + XILPM_RESET_AFI_FM6, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_LPD_SWDT, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_FPD, PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK, + XILPM_RESET_RPU_DBG1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_RPU_DBG0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_DBG_LPD, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_DBG_FPD, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_APLL, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_DPLL, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_VPLL, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_IOPLL, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_RPLL, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_2, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_3, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_4, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_5, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_6, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_7, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_8, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_9, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_10, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_11, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_12, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_13, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_14, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_15, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_16, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_17, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_18, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_19, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_20, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_21, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_22, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_23, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_24, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_25, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_26, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_27, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_28, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_29, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_30, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_31, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_RPU_LS, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_PS_ONLY, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_PL, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPIO5_EMIO_92, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPIO5_EMIO_93, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPIO5_EMIO_94, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPIO5_EMIO_95, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + + /**********************************************************************/ + /* SET CONFIG SECTION */ + PM_CONFIG_SET_CONFIG_SECTION_ID, /* Set Config Section ID */ + 0U, /* Permissions to load base config object */ + 0U, /* Permissions to load overlay config object */ + + /**********************************************************************/ + /* SHUTDOWN SECTION */ + + PM_CONFIG_SHUTDOWN_SECTION_ID, /* Shutdown Section ID */ + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* System Shutdown/Restart Permission */ + + /**********************************************************************/ + /* GPO SECTION */ + PM_CONFIG_GPO_SECTION_ID, /* GPO Section ID */ + PM_CONFIG_GPO1_BIT_2_MASK | + PM_CONFIG_GPO1_MIO_PIN_34_MAP | + PM_CONFIG_GPO1_MIO_PIN_35_MAP | + 0, /* State of GPO pins */ +}; +#if defined (__ICCARM__) +#pragma language=restore +#endif + diff --git a/board/zynqmp/kria/kv260/uboot.fragment b/board/zynqmp/kria/kv260/uboot.fragment new file mode 100644 index 000000000..874eb470a --- /dev/null +++ b/board/zynqmp/kria/kv260/uboot.fragment @@ -0,0 +1,16 @@ +CONFIG_DEFAULT_DEVICE_TREE="zynqmp-smk-k26-revA" +CONFIG_SYS_SPI_U_BOOT_OFFS=0xF80000 +CONFIG_DTB_RESELECT=y +CONFIG_MULTI_DTB_FIT=y +CONFIG_DMA=y +CONFIG_XILINX_DPDMA=y +CONFIG_PHY=y +CONFIG_PHY_XILINX_ZYNQMP=y +CONFIG_PINCTRL=y +CONFIG_PINCONF=y +CONFIG_POWER_DOMAIN=y +CONFIG_ZYNQMP_POWER_DOMAIN=y +CONFIG_DM_RESET=y +CONFIG_RESET_ZYNQMP=y +CONFIG_VIDEO_ZYNQMP_DPSUB=y +CONFIG_SF_DEFAULT_SPEED=40000000 diff --git a/board/zynqmp/kria/patches/uboot/0001-arm64-zynqmp-zynqmp-sm-k26-revA-Fix-DP-PLL-configura.patch b/board/zynqmp/kria/patches/uboot/0001-arm64-zynqmp-zynqmp-sm-k26-revA-Fix-DP-PLL-configura.patch new file mode 100644 index 000000000..99dc05611 --- /dev/null +++ b/board/zynqmp/kria/patches/uboot/0001-arm64-zynqmp-zynqmp-sm-k26-revA-Fix-DP-PLL-configura.patch @@ -0,0 +1,39 @@ +From c6677ee92c05e3f0f22cc08e3b309a996292562f Mon Sep 17 00:00:00 2001 +From: Neal Frager +Date: Fri, 13 May 2022 14:02:07 +0100 +Subject: [PATCH 1/1] arm64: zynqmp: zynqmp-sm-k26-revA: Fix DP PLL + configuration + +This patch fixes the DP audio and video PLL configurations for the zynqmp-sm-k26-revA som. + +The Linux DP driver expects the DP to be using the following PLL config: + - DP video PLL should use the VPLL (0x0) + - DP audio PLL should use the RPLL (0x3) + - DP system time clock PLL should use RPLL (0x3) + +Register 0xFD1A0070 configures the DP video PLL. +Register 0xFD1A0074 configures the DP audio PLL. +Register 0xFD1A007C configures the DP system time clock PLL. + +Signed-off-by: Neal Frager +--- + board/xilinx/zynqmp/zynqmp-sm-k26-revA/psu_init_gpl.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/board/xilinx/zynqmp/zynqmp-sm-k26-revA/psu_init_gpl.c b/board/xilinx/zynqmp/zynqmp-sm-k26-revA/psu_init_gpl.c +index ed025790bc..e5598807e8 100644 +--- a/board/xilinx/zynqmp/zynqmp-sm-k26-revA/psu_init_gpl.c ++++ b/board/xilinx/zynqmp/zynqmp-sm-k26-revA/psu_init_gpl.c +@@ -74,6 +74,9 @@ static unsigned long psu_clock_init_data(void) + psu_mask_write(0xFF5E0128, 0x01003F07U, 0x01000A00U); + psu_mask_write(0xFD1A0060, 0x03003F07U, 0x03000100U); + psu_mask_write(0xFD1A0068, 0x01003F07U, 0x01000200U); ++ psu_mask_write(0xFD1A0070, 0x013F3F07U, 0x01010500U); ++ psu_mask_write(0xFD1A0074, 0x013F3F07U, 0x01013C03U); ++ psu_mask_write(0xFD1A007C, 0x013F3F07U, 0x01013803U); + psu_mask_write(0xFD1A0080, 0x00003F07U, 0x00000200U); + psu_mask_write(0xFD1A0084, 0x07003F07U, 0x07000100U); + psu_mask_write(0xFD1A00B8, 0x01003F07U, 0x01000203U); +-- +2.17.1 + diff --git a/board/zynqmp/kria/readme.txt b/board/zynqmp/kria/readme.txt new file mode 100644 index 000000000..bea143048 --- /dev/null +++ b/board/zynqmp/kria/readme.txt @@ -0,0 +1,94 @@ +************************************************** +Xilinx Kria SOM Starter Kits - ZynqMP SoC +************************************************** + +This document describes the Buildroot support for the Kria +KV260 starter kit by Xilinx, based on Kria SOM including the +Zynq UltraScale+ MPSoC (aka ZynqMP). It has been tested with +the KV260 production board. + +Evaluation board features can be found here with the link below. + +KV260: +https://www.xilinx.com/products/boards-and-kits/kv260.html + +How to build it +=============== + +Configure Buildroot: + + $ make zynqmp_kria_kv260_defconfig + +Compile everything and build the rootfs image: + + $ make + +Result of the build +------------------- + +After building, you should get a tree like this: + + output/images/ + +-- atf-uboot.ub + +-- bl31.bin + +-- boot.bin + +-- boot.vfat + +-- Image + +-- rootfs.ext2 + +-- rootfs.ext4 -> rootfs.ext2 + +-- sdcard.img + +-- system.dtb -> smk-k26-revA-sck-kv-g-revB.dtb + +-- u-boot.itb + `-- smk-k26-revA-sck-kv-g-revB.dtb + +How to write the SD card +======================== + +WARNING! This will destroy all the card content. Use with care! + +The sdcard.img file is a complete bootable image ready to be written +on the boot medium. To install it, simply copy the image to an SD +card: + + # dd if=output/images/sdcard.img of=/dev/sdX + +Where 'sdX' is the device node of the SD. + +Eject the SD card, insert it in the board, and power it up. + +How to write boot.bin and u-boot.itb to QSPI boot flash +======================================================= + +The Kria SOMs are preconfigured to boot initially from QSPI. +This makes these boards different from other ZynqMP boards +in that the boot.bin and u-boot.itb files need to be flashed +into the QSPI boot flash such that U-Boot can then load all +of the remaining images from the SD card. + +In addition, the KV260 Starter Kit QSPI comes pre-flashed with +a utility designed to make updating the QSPI flash memory +easier. + +Instructions for using these utilities to update the files +in QSPI flash can be found on the wiki link below. + +https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/1641152513/Kria+K26+SOM#Boot-Firmware-Updates + +Additionally, it is possible to use u-boot for updating the +QSPI with new boot.bin and u-boot.itb images with the u-boot +commands below: + +Flashing u-boot.itb: + $ sf probe + $ fatload mmc 1 0x1000000 u-boot.itb + $ sf erase 0xf80000 +$filesize + $ sf write 0x1000000 0xf80000 $filesize + +Flashing boot.bin: + $ sf probe + $ fatload mmc 1 0x1000000 boot.bin + $ sf erase 0x200000 +$filesize + $ sf write 0x1000000 0x200000 $filesize + +It is possible to boot the Buildroot generated SD card image without +updating the QSPI boot.bin image, so this is an optional step. diff --git a/board/zynqmp/post-build.sh b/board/zynqmp/post-build.sh new file mode 100755 index 000000000..0713bd1b0 --- /dev/null +++ b/board/zynqmp/post-build.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +# genimage will need to find the extlinux.conf +# in the binaries directory + +BOARD_DIR="$(dirname $0)" +CONSOLE=$2 +ROOT=$3 + +mkdir -p "${BINARIES_DIR}" +cat <<-__HEADER_EOF > "${BINARIES_DIR}/extlinux.conf" + label linux + kernel /Image + devicetree /system.dtb + append console=${CONSOLE} root=/dev/${ROOT} rw rootwait + __HEADER_EOF diff --git a/board/zynqmp/post-image.sh b/board/zynqmp/post-image.sh new file mode 100755 index 000000000..ed6dbe188 --- /dev/null +++ b/board/zynqmp/post-image.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +# By default U-Boot loads DTB from a file named "system.dtb", so +# let's use a symlink with that name that points to the *first* +# devicetree listed in the config. + +FIRST_DT=$(sed -nr \ + -e 's|^BR2_LINUX_KERNEL_INTREE_DTS_NAME="xilinx/([-_/[:alnum:]\\.]*).*"$|\1|p' \ + ${BR2_CONFIG}) + +[ -z "${FIRST_DT}" ] || ln -fs ${FIRST_DT}.dtb ${BINARIES_DIR}/system.dtb + +BOARD_DIR="$(dirname $0)" + +support/scripts/genimage.sh -c $BOARD_DIR/genimage.cfg diff --git a/board/zynqmp/readme.txt b/board/zynqmp/readme.txt new file mode 100644 index 000000000..dcde42209 --- /dev/null +++ b/board/zynqmp/readme.txt @@ -0,0 +1,61 @@ +****************************************** +Xilinx ZCU102 / ZCU106 boards - ZynqMP SoC +****************************************** + +This document describes the Buildroot support for the ZCU102 and +ZCU106 boards by Xilinx, based on the Zynq UltraScale+ MPSoC (aka +ZynqMP). It has been tested with the ZCU102 and ZCU106 production +boards. + +Evaluation board features can be found here with the links below. + +ZCU102: +https://www.xilinx.com/products/boards-and-kits/zcu102.html + +ZCU106: +https://www.xilinx.com/products/boards-and-kits/zcu106.html + + +How to build it +=============== + +Configure Buildroot: + + $ make zynqmp_zcu106_defconfig + +Compile everything and build the rootfs image: + + $ make + +Result of the build +------------------- + +After building, you should get a tree like this: + + output/images/ + +-- atf-uboot.ub + +-- bl31.bin + +-- boot.bin + +-- boot.vfat + +-- Image + +-- rootfs.ext2 + +-- rootfs.ext4 -> rootfs.ext2 + +-- sdcard.img + +-- system.dtb -> zynqmp-zcu106-revA.dtb + +-- u-boot.itb + `-- zynqmp-zcu106-revA.dtb + +How to write the SD card +======================== + +WARNING! This will destroy all the card content. Use with care! + +The sdcard.img file is a complete bootable image ready to be written +on the boot medium. To install it, simply copy the image to an SD +card: + + # dd if=output/images/sdcard.img of=/dev/sdX + +Where 'sdX' is the device node of the SD. + +Eject the SD card, insert it in the board, and power it up. diff --git a/board/zynqmp/zcu102/pm_cfg_obj.c b/board/zynqmp/zcu102/pm_cfg_obj.c new file mode 100644 index 000000000..68557c4cb --- /dev/null +++ b/board/zynqmp/zcu102/pm_cfg_obj.c @@ -0,0 +1,563 @@ +/****************************************************************************** +* Copyright (c) 2017 - 2021 Xilinx, Inc. All rights reserved. +* SPDX-License-Identifier: MIT +******************************************************************************/ + +#include "xil_types.h" +#include "pm_defs.h" + +#define PM_CONFIG_MASTER_SECTION_ID 0x101U +#define PM_CONFIG_SLAVE_SECTION_ID 0x102U +#define PM_CONFIG_PREALLOC_SECTION_ID 0x103U +#define PM_CONFIG_POWER_SECTION_ID 0x104U +#define PM_CONFIG_RESET_SECTION_ID 0x105U +#define PM_CONFIG_SHUTDOWN_SECTION_ID 0x106U +#define PM_CONFIG_SET_CONFIG_SECTION_ID 0x107U +#define PM_CONFIG_GPO_SECTION_ID 0x108U + +#define PM_SLAVE_FLAG_IS_SHAREABLE 0x1U +#define PM_MASTER_USING_SLAVE_MASK 0x2U + +#define PM_CONFIG_GPO1_MIO_PIN_34_MAP (1U << 10U) +#define PM_CONFIG_GPO1_MIO_PIN_35_MAP (1U << 11U) +#define PM_CONFIG_GPO1_MIO_PIN_36_MAP (1U << 12U) +#define PM_CONFIG_GPO1_MIO_PIN_37_MAP (1U << 13U) + +#define PM_CONFIG_GPO1_BIT_2_MASK (1U << 2U) +#define PM_CONFIG_GPO1_BIT_3_MASK (1U << 3U) +#define PM_CONFIG_GPO1_BIT_4_MASK (1U << 4U) +#define PM_CONFIG_GPO1_BIT_5_MASK (1U << 5U) + +#define SUSPEND_TIMEOUT 0xFFFFFFFFU + +#define PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK 0x00000001 +#define PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK 0x00000100 +#define PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK 0x00000200 + + + +#if defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#endif +#if defined (__GNUC__) + const u32 XPm_ConfigObject[] __attribute__((used, section(".sys_cfg_data"))) = +#elif defined (__ICCARM__) +#pragma location = ".sys_cfg_data" +__root const u32 XPm_ConfigObject[] = +#endif +{ + /**********************************************************************/ + /* HEADER */ + 2, /* Number of remaining words in the header */ + 8, /* Number of sections included in config object */ + 1U, /* Type of config object as base */ + /**********************************************************************/ + /* MASTER SECTION */ + PM_CONFIG_MASTER_SECTION_ID, /* Master SectionID */ + 3U, /* No. of Masters*/ + + NODE_APU, /* Master Node ID */ + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK, /* IPI Mask of this master */ + SUSPEND_TIMEOUT, /* Suspend timeout */ + PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* Suspend permissions */ + PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* Wake permissions */ + + NODE_RPU_0, /* Master Node ID */ + PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK, /* IPI Mask of this master */ + SUSPEND_TIMEOUT, /* Suspend timeout */ + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* Suspend permissions */ + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* Wake permissions */ + + NODE_RPU_1, /* Master Node ID */ + PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask of this master */ + SUSPEND_TIMEOUT, /* Suspend timeout */ + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK, /* Suspend permissions */ + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK, /* Wake permissions */ + + + /**********************************************************************/ + /* SLAVE SECTION */ + + + PM_CONFIG_SLAVE_SECTION_ID, /* Section ID */ + 49, /* Number of slaves */ + + NODE_OCM_BANK_0, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_OCM_BANK_1, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_OCM_BANK_2, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_OCM_BANK_3, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_TCM_0_A, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK, /* IPI Mask */ + + NODE_TCM_0_B, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK, /* IPI Mask */ + + NODE_TCM_1_A, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_TCM_1_B, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_L2, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_GPU_PP_0, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_GPU_PP_1, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_USB_0, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_USB_1, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_TTC_0, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_TTC_1, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_TTC_2, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_TTC_3, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_SATA, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_ETH_0, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_ETH_1, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_ETH_2, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_ETH_3, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_UART_0, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_UART_1, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_SPI_0, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_SPI_1, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_I2C_0, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_I2C_1, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_SD_0, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_SD_1, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_DP, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_GDMA, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_ADMA, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_NAND, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_QSPI, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_GPIO, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_CAN_0, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_CAN_1, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_EXTERN, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_DDR, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_IPI_APU, + 0U, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK, /* IPI Mask */ + + NODE_IPI_RPU_0, + 0U, + PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK, /* IPI Mask */ + + NODE_IPI_RPU_1, + 0U, + PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_GPU, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_PCIE, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_PCAP, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_RTC, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_VCU, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_PL, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + + /**********************************************************************/ + /* PREALLOC SECTION */ + + PM_CONFIG_PREALLOC_SECTION_ID, /* Preallaoc SectionID */ + 3U, /* No. of Masters*/ + +/* Prealloc for psu_cortexa53_0 */ + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK, + 12, + NODE_DDR, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_L2, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_OCM_BANK_0, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_OCM_BANK_1, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_OCM_BANK_2, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_OCM_BANK_3, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_I2C_0, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_I2C_1, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_SD_1, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_QSPI, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_PL, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_IPI_APU, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + + /* Prealloc for psu_cortexr5_0 */ + PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK, + 3, + NODE_TCM_0_A, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_TCM_0_B, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_IPI_RPU_0, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + + /* Prealloc for psu_cortexr5_1 */ + PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + 3, + NODE_TCM_1_A, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_TCM_1_B, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_IPI_RPU_1, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + + + /**********************************************************************/ + /* POWER SECTION */ + + PM_CONFIG_POWER_SECTION_ID, /* Power Section ID */ + 4U, /* Number of power nodes */ + + NODE_APU, /* Power node ID */ + PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* Force power down permissions */ + + NODE_RPU, /* Power node ID */ + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* Force power down permissions */ + + NODE_FPD, /* Power node ID */ + PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* Force power down permissions */ + + NODE_PLD, /* Power node ID */ + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* Force power down permissions */ + + + /**********************************************************************/ + /* RESET SECTION */ + + PM_CONFIG_RESET_SECTION_ID, /* Reset Section ID */ + 120U, /* Number of resets */ + + XILPM_RESET_PCIE_CFG, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_PCIE_BRIDGE, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_PCIE_CTRL, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_DP, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_SWDT_CRF, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_AFI_FM5, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_AFI_FM4, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_AFI_FM3, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_AFI_FM2, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_AFI_FM1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_AFI_FM0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GDMA, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPU_PP1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPU_PP0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPU, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GT, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_SATA, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_ACPU3_PWRON, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_ACPU2_PWRON, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_ACPU1_PWRON, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_ACPU0_PWRON, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_APU_L2, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_ACPU3, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_ACPU2, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_ACPU1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_ACPU0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_DDR, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_APM_FPD, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_SOFT, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GEM0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GEM1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GEM2, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GEM3, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_QSPI, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_UART0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_UART1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_SPI0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_SPI1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_SDIO0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_SDIO1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_CAN0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_CAN1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_I2C0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_I2C1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_TTC0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_TTC1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_TTC2, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_TTC3, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_SWDT_CRL, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_NAND, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_ADMA, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPIO, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_IOU_CC, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_TIMESTAMP, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_RPU_R50, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_RPU_R51, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_RPU_AMBA, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_OCM, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_RPU_PGE, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_USB0_CORERESET, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_USB1_CORERESET, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_USB0_HIBERRESET, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_USB1_HIBERRESET, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_USB0_APB, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_USB1_APB, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_IPI, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_APM_LPD, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_RTC, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_SYSMON, 0, + XILPM_RESET_AFI_FM6, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_LPD_SWDT, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_FPD, PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK, + XILPM_RESET_RPU_DBG1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_RPU_DBG0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_DBG_LPD, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_DBG_FPD, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_APLL, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_DPLL, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_VPLL, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_IOPLL, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_RPLL, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_2, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_3, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_4, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_5, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_6, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_7, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_8, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_9, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_10, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_11, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_12, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_13, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_14, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_15, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_16, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_17, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_18, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_19, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_20, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_21, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_22, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_23, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_24, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_25, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_26, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_27, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_28, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_29, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_30, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_31, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_RPU_LS, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_PS_ONLY, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_PL, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPIO5_EMIO_92, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPIO5_EMIO_93, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPIO5_EMIO_94, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPIO5_EMIO_95, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + + /**********************************************************************/ + /* SET CONFIG SECTION */ + PM_CONFIG_SET_CONFIG_SECTION_ID, /* Set Config Section ID */ + 0U, /* Permissions to load base config object */ + 0U, /* Permissions to load overlay config object */ + + /**********************************************************************/ + /* SHUTDOWN SECTION */ + + PM_CONFIG_SHUTDOWN_SECTION_ID, /* Shutdown Section ID */ + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* System Shutdown/Restart Permission */ + + /**********************************************************************/ + /* GPO SECTION */ + PM_CONFIG_GPO_SECTION_ID, /* GPO Section ID */ + PM_CONFIG_GPO1_BIT_2_MASK | + PM_CONFIG_GPO1_MIO_PIN_34_MAP | + PM_CONFIG_GPO1_MIO_PIN_35_MAP | + PM_CONFIG_GPO1_MIO_PIN_36_MAP | + PM_CONFIG_GPO1_MIO_PIN_37_MAP | + 0, /* State of GPO pins */ +}; +#if defined (__ICCARM__) +#pragma language=restore +#endif + diff --git a/board/zynqmp/zcu102/uboot.fragment b/board/zynqmp/zcu102/uboot.fragment new file mode 100644 index 000000000..52d6d9dff --- /dev/null +++ b/board/zynqmp/zcu102/uboot.fragment @@ -0,0 +1 @@ +CONFIG_DEFAULT_DEVICE_TREE="zynqmp-zcu102-rev1.0" diff --git a/board/zynqmp/zcu106/patches/uboot/0001-arm64-zynqmp-zynqmp-zcu102-revA-Fix-DP-PLL-configura.patch b/board/zynqmp/zcu106/patches/uboot/0001-arm64-zynqmp-zynqmp-zcu102-revA-Fix-DP-PLL-configura.patch new file mode 100644 index 000000000..4281880da --- /dev/null +++ b/board/zynqmp/zcu106/patches/uboot/0001-arm64-zynqmp-zynqmp-zcu102-revA-Fix-DP-PLL-configura.patch @@ -0,0 +1,40 @@ +From aaaa10b613165b7790fe1c084de007240b5bd77a Mon Sep 17 00:00:00 2001 +From: Neal Frager +Date: Thu, 5 May 2022 13:34:43 +0100 +Subject: [PATCH 1/1] arm64: zynqmp: zynqmp-zcu102-revA: Fix DP PLL + configuration + +This patch fixes the DP audio and video PLL configurations +for the zynqmp-zcu106-revA evaluation board + +The Linux DP driver expects the DP to be using the following PLL config: + - DP video PLL should use the VPLL (0x0) + - DP audio PLL should use the RPLL (0x3) + +Register 0xFD1A0070 configures the DP video PLL. +Register 0xFD1A0074 configures the DP audio PLL. + +Signed-off-by: Neal Frager +Signed-off-by: Michal Simek +--- + board/xilinx/zynqmp/zynqmp-zcu106-revA/psu_init_gpl.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/board/xilinx/zynqmp/zynqmp-zcu106-revA/psu_init_gpl.c b/board/xilinx/zynqmp/zynqmp-zcu106-revA/psu_init_gpl.c +index 15f0be1a43..cbc436289f 100644 +--- a/board/xilinx/zynqmp/zynqmp-zcu106-revA/psu_init_gpl.c ++++ b/board/xilinx/zynqmp/zynqmp-zcu106-revA/psu_init_gpl.c +@@ -81,8 +81,8 @@ static unsigned long psu_clock_init_data(void) + psu_mask_write(0xFF5E0104, 0x00000007U, 0x00000000U); + psu_mask_write(0xFF5E0128, 0x01003F07U, 0x01000F00U); + psu_mask_write(0xFD1A00A0, 0x01003F07U, 0x01000200U); +- psu_mask_write(0xFD1A0070, 0x013F3F07U, 0x01010203U); +- psu_mask_write(0xFD1A0074, 0x013F3F07U, 0x01013C00U); ++ psu_mask_write(0xFD1A0070, 0x013F3F07U, 0x01010500U); ++ psu_mask_write(0xFD1A0074, 0x013F3F07U, 0x01013C03U); + psu_mask_write(0xFD1A007C, 0x013F3F07U, 0x01011303U); + psu_mask_write(0xFD1A0060, 0x03003F07U, 0x03000100U); + psu_mask_write(0xFD1A0068, 0x01003F07U, 0x01000200U); +-- +2.17.1 + diff --git a/board/zynqmp/zcu106/pm_cfg_obj.c b/board/zynqmp/zcu106/pm_cfg_obj.c new file mode 100644 index 000000000..6d15d510e --- /dev/null +++ b/board/zynqmp/zcu106/pm_cfg_obj.c @@ -0,0 +1,562 @@ +/****************************************************************************** +* Copyright (c) 2017 - 2021 Xilinx, Inc. All rights reserved. +* SPDX-License-Identifier: MIT +******************************************************************************/ + +#include "xil_types.h" +#include "pm_defs.h" + +#define PM_CONFIG_MASTER_SECTION_ID 0x101U +#define PM_CONFIG_SLAVE_SECTION_ID 0x102U +#define PM_CONFIG_PREALLOC_SECTION_ID 0x103U +#define PM_CONFIG_POWER_SECTION_ID 0x104U +#define PM_CONFIG_RESET_SECTION_ID 0x105U +#define PM_CONFIG_SHUTDOWN_SECTION_ID 0x106U +#define PM_CONFIG_SET_CONFIG_SECTION_ID 0x107U +#define PM_CONFIG_GPO_SECTION_ID 0x108U + +#define PM_SLAVE_FLAG_IS_SHAREABLE 0x1U +#define PM_MASTER_USING_SLAVE_MASK 0x2U + +#define PM_CONFIG_GPO1_MIO_PIN_34_MAP (1U << 10U) +#define PM_CONFIG_GPO1_MIO_PIN_35_MAP (1U << 11U) +#define PM_CONFIG_GPO1_MIO_PIN_36_MAP (1U << 12U) +#define PM_CONFIG_GPO1_MIO_PIN_37_MAP (1U << 13U) + +#define PM_CONFIG_GPO1_BIT_2_MASK (1U << 2U) +#define PM_CONFIG_GPO1_BIT_3_MASK (1U << 3U) +#define PM_CONFIG_GPO1_BIT_4_MASK (1U << 4U) +#define PM_CONFIG_GPO1_BIT_5_MASK (1U << 5U) + +#define SUSPEND_TIMEOUT 0xFFFFFFFFU + +#define PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK 0x00000001 +#define PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK 0x00000100 +#define PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK 0x00000200 + + + +#if defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#endif +#if defined (__GNUC__) + const u32 XPm_ConfigObject[] __attribute__((used, section(".sys_cfg_data"))) = +#elif defined (__ICCARM__) +#pragma location = ".sys_cfg_data" +__root const u32 XPm_ConfigObject[] = +#endif +{ + /**********************************************************************/ + /* HEADER */ + 2, /* Number of remaining words in the header */ + 8, /* Number of sections included in config object */ + 1U, /* Type of config object as base */ + /**********************************************************************/ + /* MASTER SECTION */ + PM_CONFIG_MASTER_SECTION_ID, /* Master SectionID */ + 3U, /* No. of Masters*/ + + NODE_APU, /* Master Node ID */ + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK, /* IPI Mask of this master */ + SUSPEND_TIMEOUT, /* Suspend timeout */ + PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* Suspend permissions */ + PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* Wake permissions */ + + NODE_RPU_0, /* Master Node ID */ + PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK, /* IPI Mask of this master */ + SUSPEND_TIMEOUT, /* Suspend timeout */ + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* Suspend permissions */ + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* Wake permissions */ + + NODE_RPU_1, /* Master Node ID */ + PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask of this master */ + SUSPEND_TIMEOUT, /* Suspend timeout */ + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK, /* Suspend permissions */ + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK, /* Wake permissions */ + + + /**********************************************************************/ + /* SLAVE SECTION */ + + + PM_CONFIG_SLAVE_SECTION_ID, /* Section ID */ + 49, /* Number of slaves */ + + NODE_OCM_BANK_0, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_OCM_BANK_1, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_OCM_BANK_2, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_OCM_BANK_3, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_TCM_0_A, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK, /* IPI Mask */ + + NODE_TCM_0_B, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK, /* IPI Mask */ + + NODE_TCM_1_A, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_TCM_1_B, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_L2, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_GPU_PP_0, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_GPU_PP_1, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_USB_0, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_USB_1, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_TTC_0, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_TTC_1, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_TTC_2, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_TTC_3, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_SATA, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_ETH_0, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_ETH_1, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_ETH_2, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_ETH_3, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_UART_0, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_UART_1, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_SPI_0, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_SPI_1, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_I2C_0, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_I2C_1, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_SD_0, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_SD_1, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_DP, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_GDMA, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_ADMA, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_NAND, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_QSPI, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_GPIO, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_CAN_0, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_CAN_1, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_EXTERN, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_DDR, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK| PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_IPI_APU, + 0U, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK, /* IPI Mask */ + + NODE_IPI_RPU_0, + 0U, + PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK, /* IPI Mask */ + + NODE_IPI_RPU_1, + 0U, + PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_GPU, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_PCIE, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_PCAP, + PM_SLAVE_FLAG_IS_SHAREABLE, + 0U, /* IPI Mask */ + + NODE_RTC, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_VCU, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + NODE_PL, + PM_SLAVE_FLAG_IS_SHAREABLE, + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* IPI Mask */ + + + /**********************************************************************/ + /* PREALLOC SECTION */ + + PM_CONFIG_PREALLOC_SECTION_ID, /* Preallaoc SectionID */ + 3U, /* No. of Masters*/ + +/* Prealloc for psu_cortexa53_0 */ + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK, + 12, + NODE_DDR, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_L2, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_OCM_BANK_0, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_OCM_BANK_1, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_OCM_BANK_2, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_OCM_BANK_3, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_I2C_0, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_I2C_1, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_SD_1, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_QSPI, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_PL, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_IPI_APU, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + + /* Prealloc for psu_cortexr5_0 */ + PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK, + 3, + NODE_TCM_0_A, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_TCM_0_B, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_IPI_RPU_0, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + + /* Prealloc for psu_cortexr5_1 */ + PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + 3, + NODE_TCM_1_A, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_TCM_1_B, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + NODE_IPI_RPU_1, + PM_MASTER_USING_SLAVE_MASK, /* Master is using Slave */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Current Requirements */ + PM_CAP_ACCESS | PM_CAP_CONTEXT, /* Default Requirements */ + + + + /**********************************************************************/ + /* POWER SECTION */ + + PM_CONFIG_POWER_SECTION_ID, /* Power Section ID */ + 4U, /* Number of power nodes */ + + NODE_APU, /* Power node ID */ + PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* Force power down permissions */ + + NODE_RPU, /* Power node ID */ + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* Force power down permissions */ + + NODE_FPD, /* Power node ID */ + PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* Force power down permissions */ + + NODE_PLD, /* Power node ID */ + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* Force power down permissions */ + + + /**********************************************************************/ + /* RESET SECTION */ + + PM_CONFIG_RESET_SECTION_ID, /* Reset Section ID */ + 120U, /* Number of resets */ + + XILPM_RESET_PCIE_CFG, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_PCIE_BRIDGE, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_PCIE_CTRL, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_DP, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_SWDT_CRF, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_AFI_FM5, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_AFI_FM4, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_AFI_FM3, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_AFI_FM2, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_AFI_FM1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_AFI_FM0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GDMA, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPU_PP1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPU_PP0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPU, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GT, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_SATA, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_ACPU3_PWRON, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_ACPU2_PWRON, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_ACPU1_PWRON, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_ACPU0_PWRON, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_APU_L2, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_ACPU3, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_ACPU2, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_ACPU1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_ACPU0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_DDR, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_APM_FPD, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_SOFT, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GEM0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GEM1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GEM2, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GEM3, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_QSPI, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_UART0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_UART1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_SPI0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_SPI1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_SDIO0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_SDIO1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_CAN0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_CAN1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_I2C0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_I2C1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_TTC0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_TTC1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_TTC2, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_TTC3, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_SWDT_CRL, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_NAND, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_ADMA, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPIO, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_IOU_CC, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_TIMESTAMP, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_RPU_R50, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_RPU_R51, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_RPU_AMBA, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_OCM, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_RPU_PGE, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_USB0_CORERESET, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_USB1_CORERESET, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_USB0_HIBERRESET, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_USB1_HIBERRESET, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_USB0_APB, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_USB1_APB, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_IPI, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_APM_LPD, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_RTC, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_SYSMON, 0, + XILPM_RESET_AFI_FM6, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_LPD_SWDT, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_FPD, PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK, + XILPM_RESET_RPU_DBG1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_RPU_DBG0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_DBG_LPD, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_DBG_FPD, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_APLL, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_DPLL, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_VPLL, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_IOPLL, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_RPLL, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_0, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_1, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_2, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_3, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_4, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_5, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_6, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_7, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_8, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_9, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_10, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_11, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_12, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_13, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_14, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_15, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_16, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_17, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_18, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_19, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_20, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_21, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_22, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_23, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_24, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_25, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_26, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_27, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_28, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_29, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_30, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPO3_PL_31, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_RPU_LS, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_PS_ONLY, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_PL, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPIO5_EMIO_92, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPIO5_EMIO_93, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPIO5_EMIO_94, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + XILPM_RESET_GPIO5_EMIO_95, PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, + + /**********************************************************************/ + /* SET CONFIG SECTION */ + PM_CONFIG_SET_CONFIG_SECTION_ID, /* Set Config Section ID */ + 0U, /* Permissions to load base config object */ + 0U, /* Permissions to load overlay config object */ + + /**********************************************************************/ + /* SHUTDOWN SECTION */ + + PM_CONFIG_SHUTDOWN_SECTION_ID, /* Shutdown Section ID */ + PM_CONFIG_IPI_PSU_CORTEXA53_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_0_MASK | PM_CONFIG_IPI_PSU_CORTEXR5_1_MASK, /* System Shutdown/Restart Permission */ + + /**********************************************************************/ + /* GPO SECTION */ + PM_CONFIG_GPO_SECTION_ID, /* GPO Section ID */ + PM_CONFIG_GPO1_MIO_PIN_34_MAP | + PM_CONFIG_GPO1_MIO_PIN_35_MAP | + PM_CONFIG_GPO1_MIO_PIN_36_MAP | + PM_CONFIG_GPO1_MIO_PIN_37_MAP | + 0, /* State of GPO pins */ +}; +#if defined (__ICCARM__) +#pragma language=restore +#endif + diff --git a/board/zynqmp/zcu106/uboot.fragment b/board/zynqmp/zcu106/uboot.fragment new file mode 100644 index 000000000..cd571171a --- /dev/null +++ b/board/zynqmp/zcu106/uboot.fragment @@ -0,0 +1 @@ +CONFIG_DEFAULT_DEVICE_TREE="zynqmp-zcu106-revA" diff --git a/boot/Config.in b/boot/Config.in new file mode 100644 index 000000000..40472ae07 --- /dev/null +++ b/boot/Config.in @@ -0,0 +1,28 @@ +menu "Bootloaders" + +source "boot/afboot-stm32/Config.in" +source "boot/at91bootstrap/Config.in" +source "boot/at91bootstrap3/Config.in" +source "boot/at91dataflashboot/Config.in" +source "boot/arm-trusted-firmware/Config.in" +source "boot/barebox/Config.in" +source "boot/beaglev-ddrinit/Config.in" +source "boot/beaglev-secondboot/Config.in" +source "boot/binaries-marvell/Config.in" +source "boot/boot-wrapper-aarch64/Config.in" +source "boot/edk2/Config.in" +source "boot/grub2/Config.in" +source "boot/gummiboot/Config.in" +source "boot/lpc32xxcdl/Config.in" +source "boot/mv-ddr-marvell/Config.in" +source "boot/mxs-bootlets/Config.in" +source "boot/optee-os/Config.in" +source "boot/opensbi/Config.in" +source "boot/s500-bootloader/Config.in" +source "boot/shim/Config.in" +source "boot/sun20i-d1-spl/Config.in" +source "boot/syslinux/Config.in" +source "boot/uboot/Config.in" +source "boot/vexpress-firmware/Config.in" + +endmenu diff --git a/boot/afboot-stm32/0001-Pass-fno-builtin-to-fix-build-with-gcc-10.patch b/boot/afboot-stm32/0001-Pass-fno-builtin-to-fix-build-with-gcc-10.patch new file mode 100644 index 000000000..aef283270 --- /dev/null +++ b/boot/afboot-stm32/0001-Pass-fno-builtin-to-fix-build-with-gcc-10.patch @@ -0,0 +1,46 @@ +From 9901603e18524c4c52fd1dd47bda4ab4016628fc Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Thu, 10 Sep 2020 11:37:33 +0200 +Subject: [PATCH] Pass -fno-builtin to fix build with gcc 10 + +gcc 10, if it recognizes some hand-written code that looks like +memcpy, will generate a call to memcpy(). + +For example: + + while (dst < &_end_data) { + *dst++ = *src++; + } + +gets recognized as such. However, in the context of bare-metal code, +having a call to memcpy() in the C library doesn't work. So we fix +that by disabling builtins. + +Fixes: + +/home/thomas/projets/buildroot/output/host/opt/ext-toolchain/bin/../arm-buildroot-uclinux-uclibcgnueabi/bin/ld.real: stm32f429i-disco.o: in function `reset': +stm32f429i-disco.c:(.text.reset+0x1a): undefined reference to `memcpy' +/home/thomas/projets/buildroot/output/host/opt/ext-toolchain/bin/../arm-buildroot-uclinux-uclibcgnueabi/bin/ld.real: stm32f429i-disco.c:(.text.reset+0x34): undefined reference to `memset' +make[1]: *** [Makefile:26: stm32f429i-disco] Error 1 + +Upstream: https://github.com/mcoquelin-stm32/afboot-stm32/pull/11 +Signed-off-by: Thomas Petazzoni +--- + Makefile | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Makefile b/Makefile +index f699176..1e8557d 100644 +--- a/Makefile ++++ b/Makefile +@@ -13,6 +13,7 @@ DTB_ADDR?=0x08004000 + CFLAGS := -mthumb -mcpu=cortex-m4 + CFLAGS += -ffunction-sections -fdata-sections + CFLAGS += -Os -std=gnu99 -Wall ++CFLAGS += -fno-builtin + LINKERFLAGS := -nostartfiles --gc-sections + + obj-y += gpio.o mpu.o qspi.o start_kernel.o +-- +2.35.1 + diff --git a/boot/afboot-stm32/0002-Makefile-drop-nostartfiles.patch b/boot/afboot-stm32/0002-Makefile-drop-nostartfiles.patch new file mode 100644 index 000000000..7e5a6430b --- /dev/null +++ b/boot/afboot-stm32/0002-Makefile-drop-nostartfiles.patch @@ -0,0 +1,40 @@ +From be760c062c5d05bd2223f3916afafd37120d3318 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Thu, 28 Apr 2022 22:47:09 +0200 +Subject: [PATCH] Makefile: drop -nostartfiles + +In commit 0f3e61c9dd48fd8b4248ce4672c044c2562e4de1 ("Use ld instead of +gcc for linking "), we started using ld instead of gcc for the link +step. This worked fine for a while, but recent versions of ld no +longer accept the -nostartfiles option, causing the build to break: + +Error: unable to disambiguate: -nostartfiles (did you mean --nostartfiles ?) + +In fact, -nostartfiles was passed to gcc prior to +0f3e61c9dd48fd8b4248ce4672c044c2562e4de1, but it is not a ld +option. It is only by luck that it was accepted and ignored by older +ld versions. Since this option is useless when calling ld directly, we +can simply drop it. + +Upstream: https://github.com/mcoquelin-stm32/afboot-stm32/pull/11 +Signed-off-by: Thomas Petazzoni +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 1e8557d..8f42be1 100644 +--- a/Makefile ++++ b/Makefile +@@ -14,7 +14,7 @@ CFLAGS := -mthumb -mcpu=cortex-m4 + CFLAGS += -ffunction-sections -fdata-sections + CFLAGS += -Os -std=gnu99 -Wall + CFLAGS += -fno-builtin +-LINKERFLAGS := -nostartfiles --gc-sections ++LINKERFLAGS := --gc-sections + + obj-y += gpio.o mpu.o qspi.o start_kernel.o + obj-f4 += $(obj-y) usart-f4.o +-- +2.35.1 + diff --git a/boot/afboot-stm32/Config.in b/boot/afboot-stm32/Config.in new file mode 100644 index 000000000..23372705a --- /dev/null +++ b/boot/afboot-stm32/Config.in @@ -0,0 +1,27 @@ +config BR2_TARGET_AFBOOT_STM32 + bool "afboot-stm32" + depends on BR2_arm + help + afboot-stm32 is a very small bootloader for STM32 platforms + + https://github.com/mcoquelin-stm32/afboot-stm32 + +if BR2_TARGET_AFBOOT_STM32 + +config BR2_TARGET_AFBOOT_STM32_KERNEL_ADDR + hex "Kernel load address" + default "0x08008000" + help + This is the physical address in your flash memory the kernel + will be linked for and stored to. This address is dependent on + your own flash usage. + +config BR2_TARGET_AFBOOT_STM32_DTB_ADDR + hex "Device-tree load address" + default "0x08004000" + help + This is the physical address in your flash memory the + device-tree will be stored to. This address is dependent on + your own flash usage. + +endif diff --git a/boot/afboot-stm32/afboot-stm32.hash b/boot/afboot-stm32/afboot-stm32.hash new file mode 100644 index 000000000..d22c96d41 --- /dev/null +++ b/boot/afboot-stm32/afboot-stm32.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 2caacd302ab3ed5b70b3b93a6aef04162abf779c758a5be547be3ab01b68ca10 afboot-stm32-3566acd582e5536fb60864281788a30f5527df2d.tar.gz diff --git a/boot/afboot-stm32/afboot-stm32.mk b/boot/afboot-stm32/afboot-stm32.mk new file mode 100644 index 000000000..25ba13c8c --- /dev/null +++ b/boot/afboot-stm32/afboot-stm32.mk @@ -0,0 +1,22 @@ +################################################################################ +# +# afboot-stm32 +# +################################################################################ + +AFBOOT_STM32_VERSION = 3566acd582e5536fb60864281788a30f5527df2d +AFBOOT_STM32_SITE = $(call github,mcoquelin-stm32,afboot-stm32,$(AFBOOT_STM32_VERSION)) +AFBOOT_STM32_INSTALL_IMAGES = YES +AFBOOT_STM32_INSTALL_TARGET = NO + +define AFBOOT_STM32_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) CROSS_COMPILE=$(TARGET_CROSS) all \ + KERNEL_ADDR=$(BR2_TARGET_AFBOOT_STM32_KERNEL_ADDR) \ + DTB_ADDR=$(BR2_TARGET_AFBOOT_STM32_DTB_ADDR) +endef + +define AFBOOT_STM32_INSTALL_IMAGES_CMDS + $(INSTALL) -m 0755 -t $(BINARIES_DIR) -D $(@D)/stm32*.bin +endef + +$(eval $(generic-package)) diff --git a/boot/arm-trusted-firmware/Config.in b/boot/arm-trusted-firmware/Config.in new file mode 100644 index 000000000..100ac8348 --- /dev/null +++ b/boot/arm-trusted-firmware/Config.in @@ -0,0 +1,229 @@ +config BR2_TARGET_ARM_TRUSTED_FIRMWARE + bool "ARM Trusted Firmware (ATF)" + depends on (BR2_ARM_CPU_ARMV8A || BR2_ARM_CPU_ARMV7A) + help + Enable this option if you want to build the ATF for your ARM + based embedded device. + + https://github.com/ARM-software/arm-trusted-firmware + +if BR2_TARGET_ARM_TRUSTED_FIRMWARE +choice + prompt "ATF Version" + help + Select the specific ATF version you want to use + +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_LATEST_VERSION + bool "v2.7" + +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION + bool "Custom version" + help + This option allows to use a specific official versions + +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL + bool "Custom tarball" + +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT + bool "Custom Git repository" + +endchoice + +if BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL + +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL_LOCATION + string "URL of custom ATF tarball" + +endif + +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE + string "ATF version" + depends on BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION + +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_VERSION + string + default "v2.7" if BR2_TARGET_ARM_TRUSTED_FIRMWARE_LATEST_VERSION + default "custom" if BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL + default BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION \ + if BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT + default BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE \ + if BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION + +if BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT + +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL + string "URL of custom repository" + +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION + string "Custom repository version" + help + Revision to use in the typical format used by Git + E.G. a sha id, a tag, .. + +endif + +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM + string "ATF platform" + help + Target plaform to build for. + +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_TARGET_BOARD + string "ATF target board" + help + Target board to build for. In many cases, this can be left + empty. + +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_DTS_PATH + string "Device Tree Source file paths" + help + Space-separated list of paths to device tree source files + that will be copied to fdts/ before starting the build. + + To use this device tree source file, the ATF configuration + file must refer to it. + +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_FIP + bool "Build FIP image" + help + This option enables building the FIP image (Firmware Image + Package). This is typically the image format used by + platforms were ATF encapsulates the second stage bootloader + (such as U-Boot). + +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31 + bool "Build BL31 image" + help + This option enables building the BL31 image. This is + typically used on platforms where another bootloader (e.g + U-Boot) encapsulates ATF BL31. + +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31_UBOOT + bool "Build BL31 U-Boot image" + select BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31 + help + Generates a U-Boot image named atf-uboot.ub containing + bl31.bin. This is used for example by the Xilinx version of + U-Boot SPL to load ATF on the ZynqMP SoC. + +choice + prompt "BL32" + default BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_DEFAULT + help + Select BL32 stage for the trusted firmware + +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_DEFAULT + bool "Default" + help + With this option selected, ATF will not use any BL32 stage, + unless if one is explicitly chosen using the SPD (for + AArch64) or AARCH32_SP (for AArch32) variables, which can be + passed through + BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES. + +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_OPTEE + bool "OP-TEE OS" + depends on BR2_TARGET_OPTEE_OS + help + This option allows to embed OP-TEE OS as the BL32 part of + the ARM Trusted Firmware boot sequence. + +endchoice + +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33 + bool "Use U-Boot as BL33" + depends on BR2_TARGET_UBOOT + help + This option allows to embed u-boot.bin as the BL33 part of + the ARM Trusted Firmware. It ensures that the u-boot package + gets built before ATF, and that the appropriate BL33 + variable pointing to u-boot.bin is passed when building ATF. + +if BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33 + +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_BL33_IMAGE + string "U-Boot BL33 image name" + default "u-boot.bin" + help + Name of the U-Boot BL33 image to include in ATF, it must + have been installed to BINARIES_DIR by the U-Boot package. + +endif + +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_EDK2_AS_BL33 + bool "Use EDK2 as BL33" + depends on BR2_TARGET_EDK2 + help + This option allows to embed EDK2 as the BL33 part of + the ARM Trusted Firmware. It ensures that the EDK2 package + gets built before ATF, and that the appropriate BL33 + variable pointing to the EDK2 is passed when building ATF. + + Do not choose this option if you intend to build ATF and EDK2 + for the 'qemu_sbsa' platform. In this case, due to the EDK2 + build system, the dependency between ATF and EDK is reversed. + +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_TARGETS + string "Additional ATF make targets" + help + Additional targets for the ATF build + E.G. When using the QorIQ custom ATF repository from NXP, + the target 'pbl' can be used to build the pbl binary. + +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES + string "Additional ATF build variables" + help + Additional parameters for the ATF build + E.G. 'DEBUG=1 LOG_LEVEL=20' + +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_DEBUG + bool "Build in debug mode" + help + Enable this option to build ATF with DEBUG=1. + +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES + string "Binary boot images" + default "*.bin" + help + Names of generated image files that are installed in the + output images/ directory. + +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_DTC + bool "Needs dtc" + select BR2_PACKAGE_HOST_DTC + help + Select this option if your ATF board configuration + requires the Device Tree compiler to be available. + +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_ARM32_TOOLCHAIN + bool "Needs arm-none-eabi toolchain" + depends on BR2_aarch64 + depends on BR2_HOSTARCH = "x86_64" + help + Select this option if your ATF board configuration requires + an ARM32 bare metal toolchain to be available. + +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_SSP + bool "Build with SSP" + default y + depends on BR2_TOOLCHAIN_HAS_SSP + depends on !BR2_SSP_NONE + help + Say 'y' here if you want to build ATF with SSP. + + Your board must have SSP support in ATF: it must have an + implementation for plat_get_stack_protector_canary(). + + If you say 'y', the SSP level will be the level selected + by the global SSP setting. + +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_SSP_LEVEL + string + # While newer versions of TF-A support "none" as + # ENABLE_STACK_PROTECTOR value, older versions (e.g 2.0) only + # supported "0" to disable SSP. + default "0" if !BR2_TARGET_ARM_TRUSTED_FIRMWARE_SSP + default "default" if BR2_SSP_REGULAR + default "strong" if BR2_SSP_STRONG + default "all" if BR2_SSP_ALL + +endif diff --git a/boot/arm-trusted-firmware/arm-trusted-firmware.hash b/boot/arm-trusted-firmware/arm-trusted-firmware.hash new file mode 100644 index 000000000..d931610dc --- /dev/null +++ b/boot/arm-trusted-firmware/arm-trusted-firmware.hash @@ -0,0 +1,3 @@ +# Locally calculated +sha256 327c65b1bc231608a7a808b068b00c1a22310e9fc86158813cd10a9711d5725e arm-trusted-firmware-v2.7.tar.gz +sha256 130d0c6e5159fa454b1e969fd281fa1d388819aefb203f65dd282544b5ab7ba9 docs/license.rst diff --git a/boot/arm-trusted-firmware/arm-trusted-firmware.mk b/boot/arm-trusted-firmware/arm-trusted-firmware.mk new file mode 100644 index 000000000..7c4e7edb0 --- /dev/null +++ b/boot/arm-trusted-firmware/arm-trusted-firmware.mk @@ -0,0 +1,218 @@ +################################################################################ +# +# arm-trusted-firmware +# +################################################################################ + +ARM_TRUSTED_FIRMWARE_VERSION = $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_VERSION)) + +ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL),y) +# Handle custom ATF tarballs as specified by the configuration +ARM_TRUSTED_FIRMWARE_TARBALL = $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL_LOCATION)) +ARM_TRUSTED_FIRMWARE_SITE = $(patsubst %/,%,$(dir $(ARM_TRUSTED_FIRMWARE_TARBALL))) +ARM_TRUSTED_FIRMWARE_SOURCE = $(notdir $(ARM_TRUSTED_FIRMWARE_TARBALL)) +else ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT),y) +ARM_TRUSTED_FIRMWARE_SITE = $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL)) +ARM_TRUSTED_FIRMWARE_SITE_METHOD = git +else +# Handle stable official ATF versions +ARM_TRUSTED_FIRMWARE_SITE = $(call github,ARM-software,arm-trusted-firmware,$(ARM_TRUSTED_FIRMWARE_VERSION)) +# The licensing of custom or from-git versions is unknown. +# This is valid only for the latest (i.e. known) version. +ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_LATEST_VERSION),y) +ARM_TRUSTED_FIRMWARE_LICENSE = BSD-3-Clause +ARM_TRUSTED_FIRMWARE_LICENSE_FILES = docs/license.rst +endif +endif + +ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE)$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_LATEST_VERSION),y) +BR_NO_CHECK_HASH_FOR += $(ARM_TRUSTED_FIRMWARE_SOURCE) +endif + +ARM_TRUSTED_FIRMWARE_INSTALL_IMAGES = YES + +ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_DTC),y) +ARM_TRUSTED_FIRMWARE_DEPENDENCIES += host-dtc +endif + +ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_ARM32_TOOLCHAIN),y) +ARM_TRUSTED_FIRMWARE_DEPENDENCIES += host-arm-gnu-toolchain +endif + +ARM_TRUSTED_FIRMWARE_PLATFORM = $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM)) + +ARM_TRUSTED_FIRMWARE_TARGET_BOARD = $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_TARGET_BOARD)) + +ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_DEBUG),y) +ARM_TRUSTED_FIRMWARE_MAKE_OPTS += DEBUG=1 +ifneq ($(ARM_TRUSTED_FIRMWARE_TARGET_BOARD),) +ARM_TRUSTED_FIRMWARE_IMG_DIR = $(@D)/build/$(ARM_TRUSTED_FIRMWARE_PLATFORM)/$(ARM_TRUSTED_FIRMWARE_TARGET_BOARD)/debug +else +ARM_TRUSTED_FIRMWARE_IMG_DIR = $(@D)/build/$(ARM_TRUSTED_FIRMWARE_PLATFORM)/debug +endif +else +ifneq ($(ARM_TRUSTED_FIRMWARE_TARGET_BOARD),) +ARM_TRUSTED_FIRMWARE_IMG_DIR = $(@D)/build/$(ARM_TRUSTED_FIRMWARE_PLATFORM)/$(ARM_TRUSTED_FIRMWARE_TARGET_BOARD)/release +else +ARM_TRUSTED_FIRMWARE_IMG_DIR = $(@D)/build/$(ARM_TRUSTED_FIRMWARE_PLATFORM)/release +endif +endif + +ARM_TRUSTED_FIRMWARE_MAKE_OPTS += \ + CROSS_COMPILE="$(TARGET_CROSS)" \ + $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES)) \ + PLAT=$(ARM_TRUSTED_FIRMWARE_PLATFORM) \ + TARGET_BOARD=$(ARM_TRUSTED_FIRMWARE_TARGET_BOARD) + +ARM_TRUSTED_FIRMWARE_MAKE_ENV += \ + $(TARGET_MAKE_ENV) \ + $(if $(BR2_PIC_PIE),CFLAGS="-fno-PIE") \ + ENABLE_STACK_PROTECTOR=$(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_SSP_LEVEL)) + +ifeq ($(BR2_ARM_CPU_ARMV7A),y) +ARM_TRUSTED_FIRMWARE_MAKE_OPTS += ARM_ARCH_MAJOR=7 +else ifeq ($(BR2_ARM_CPU_ARMV8A),y) +ARM_TRUSTED_FIRMWARE_MAKE_OPTS += ARM_ARCH_MAJOR=8 +endif + +ifeq ($(BR2_arm),y) +ARM_TRUSTED_FIRMWARE_MAKE_OPTS += ARCH=aarch32 +else ifeq ($(BR2_aarch64),y) +ARM_TRUSTED_FIRMWARE_MAKE_OPTS += ARCH=aarch64 +endif + +ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_OPTEE),y) +ARM_TRUSTED_FIRMWARE_DEPENDENCIES += optee-os +ARM_TRUSTED_FIRMWARE_MAKE_OPTS += \ + BL32=$(BINARIES_DIR)/tee-header_v2.bin \ + BL32_EXTRA1=$(BINARIES_DIR)/tee-pager_v2.bin \ + BL32_EXTRA2=$(BINARIES_DIR)/tee-pageable_v2.bin +ifeq ($(BR2_aarch64),y) +ARM_TRUSTED_FIRMWARE_MAKE_OPTS += SPD=opteed +endif +ifeq ($(BR2_arm),y) +ARM_TRUSTED_FIRMWARE_MAKE_OPTS += AARCH32_SP=optee +endif +endif # BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_OPTEE + +ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_EDK2_AS_BL33),y) +ARM_TRUSTED_FIRMWARE_DEPENDENCIES += edk2 +# Since the flash device name vary between platforms, we use the variable +# provided by the EDK2 package for this. Using this variable here is OK +# as it will expand after all dependencies are resolved, inside _BUILD_CMDS. +ARM_TRUSTED_FIRMWARE_MAKE_OPTS += \ + BL33=$(BINARIES_DIR)/$(call qstrip,$(BR2_TARGET_EDK2_FD_NAME).fd) +endif + +ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33),y) +ARM_TRUSTED_FIRMWARE_UBOOT_BIN = $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_BL33_IMAGE)) +ARM_TRUSTED_FIRMWARE_MAKE_OPTS += BL33=$(BINARIES_DIR)/$(ARM_TRUSTED_FIRMWARE_UBOOT_BIN) +ARM_TRUSTED_FIRMWARE_DEPENDENCIES += uboot +endif + +ifeq ($(BR2_TARGET_VEXPRESS_FIRMWARE),y) +ARM_TRUSTED_FIRMWARE_MAKE_OPTS += SCP_BL2=$(BINARIES_DIR)/scp-fw.bin +ARM_TRUSTED_FIRMWARE_DEPENDENCIES += vexpress-firmware +endif + +ifeq ($(BR2_TARGET_BINARIES_MARVELL),y) +ARM_TRUSTED_FIRMWARE_MAKE_OPTS += SCP_BL2=$(BINARIES_DIR)/scp-fw.bin +ARM_TRUSTED_FIRMWARE_DEPENDENCIES += binaries-marvell +endif + +ifeq ($(BR2_TARGET_MV_DDR_MARVELL),y) +ARM_TRUSTED_FIRMWARE_MAKE_OPTS += MV_DDR_PATH=$(MV_DDR_MARVELL_DIR) +ARM_TRUSTED_FIRMWARE_DEPENDENCIES += mv-ddr-marvell +endif + +ARM_TRUSTED_FIRMWARE_MAKE_TARGETS = all + +ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_FIP),y) +ARM_TRUSTED_FIRMWARE_MAKE_TARGETS += fip +ARM_TRUSTED_FIRMWARE_DEPENDENCIES += host-openssl +# fiptool only exists in newer (>= 1.3) versions of ATF, so we build +# it conditionally. We need to explicitly build it as it requires +# OpenSSL, and therefore needs to be passed proper variables to find +# the host OpenSSL. +define ARM_TRUSTED_FIRMWARE_BUILD_FIPTOOL + if test -d $(@D)/tools/fiptool; then \ + $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D)/tools/fiptool \ + $(ARM_TRUSTED_FIRMWARE_MAKE_OPTS) \ + CPPFLAGS="$(HOST_CPPFLAGS)" \ + LDLIBS="$(HOST_LDFLAGS) -lcrypto" ; \ + fi +endef +endif + +ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31),y) +ARM_TRUSTED_FIRMWARE_MAKE_TARGETS += bl31 +endif + +ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31_UBOOT),y) +define ARM_TRUSTED_FIRMWARE_BL31_UBOOT_BUILD +# Get the entry point address from the elf. + BASE_ADDR=$$($(TARGET_READELF) -h $(ARM_TRUSTED_FIRMWARE_IMG_DIR)/bl31/bl31.elf | \ + sed -r '/^ Entry point address:\s*(.*)/!d; s//\1/') && \ + $(MKIMAGE) \ + -A $(MKIMAGE_ARCH) -O arm-trusted-firmware -C none \ + -a $${BASE_ADDR} -e $${BASE_ADDR} \ + -d $(ARM_TRUSTED_FIRMWARE_IMG_DIR)/bl31.bin \ + $(ARM_TRUSTED_FIRMWARE_IMG_DIR)/atf-uboot.ub +endef +define ARM_TRUSTED_FIRMWARE_BL31_UBOOT_INSTALL + $(INSTALL) -m 0644 $(ARM_TRUSTED_FIRMWARE_IMG_DIR)/atf-uboot.ub \ + $(BINARIES_DIR)/atf-uboot.ub +endef +ARM_TRUSTED_FIRMWARE_MAKE_OPTS += RESET_TO_BL31=1 +ARM_TRUSTED_FIRMWARE_DEPENDENCIES += host-uboot-tools +endif + +ifeq ($(BR2_TARGET_UBOOT_NEEDS_ATF_BL31_ELF),y) +define ARM_TRUSTED_FIRMWARE_BL31_UBOOT_INSTALL_ELF + $(INSTALL) -D -m 0644 $(ARM_TRUSTED_FIRMWARE_IMG_DIR)/bl31/bl31.elf \ + $(BINARIES_DIR)/bl31.elf +endef +endif + +ARM_TRUSTED_FIRMWARE_MAKE_TARGETS += \ + $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_TARGETS)) + +ARM_TRUSTED_FIRMWARE_CUSTOM_DTS_PATH = $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_DTS_PATH)) + +define ARM_TRUSTED_FIRMWARE_BUILD_CMDS + $(if $(ARM_TRUSTED_FIRMWARE_CUSTOM_DTS_PATH), + cp -f $(ARM_TRUSTED_FIRMWARE_CUSTOM_DTS_PATH) $(@D)/fdts/ + ) + $(ARM_TRUSTED_FIRMWARE_BUILD_FIPTOOL) + $(ARM_TRUSTED_FIRMWARE_MAKE_ENV) $(MAKE) -C $(@D) \ + $(ARM_TRUSTED_FIRMWARE_MAKE_OPTS) \ + $(ARM_TRUSTED_FIRMWARE_MAKE_TARGETS) + $(ARM_TRUSTED_FIRMWARE_BL31_UBOOT_BUILD) +endef + +define ARM_TRUSTED_FIRMWARE_INSTALL_IMAGES_CMDS + $(foreach f,$(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES)), \ + cp -dpf $(ARM_TRUSTED_FIRMWARE_IMG_DIR)/$(f) $(BINARIES_DIR)/ + ) + $(ARM_TRUSTED_FIRMWARE_BL31_UBOOT_INSTALL) + $(ARM_TRUSTED_FIRMWARE_BL31_UBOOT_INSTALL_ELF) +endef + +# Configuration check +ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE)$(BR_BUILDING),yy) + +ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL),y) +ifeq ($(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL_LOCATION)),) +$(error No tarball location specified. Please check BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL_LOCATION) +endif +endif + +ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT),y) +ifeq ($(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL)),) +$(error No repository specified. Please check BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL) +endif +endif + +endif + +$(eval $(generic-package)) diff --git a/boot/at91bootstrap/0001-eabi-fix.patch b/boot/at91bootstrap/0001-eabi-fix.patch new file mode 100644 index 000000000..eab3c2092 --- /dev/null +++ b/boot/at91bootstrap/0001-eabi-fix.patch @@ -0,0 +1,334 @@ +When using an EABI toolchain, the default compilation generates +references to __aeabi_unwind_cpp_pr0(). This symbol is defined in +libgcc, but we don't want to use it for a bootloader. + +Therefore, this patch passes some additional CFLAGS to disable the +generation of such references by avoiding unwind tables, exceptions, +etc. + +Signed-off-by: Thomas Petazzoni +--- + board/at91cap9adk/dataflash/Makefile | 2 +- + board/at91cap9adk/norflash/Makefile | 2 +- + board/at91cap9stk/nandflash/Makefile | 2 +- + board/at91sam9260ek/dataflash/Makefile | 2 +- + board/at91sam9260ek/nandflash/Makefile | 2 +- + board/at91sam9261ek/dataflash/Makefile | 2 +- + board/at91sam9261ek/nandflash/Makefile | 2 +- + board/at91sam9263ek/dataflash/Makefile | 2 +- + board/at91sam9263ek/nandflash/Makefile | 2 +- + board/at91sam9g10ek/dataflash/Makefile | 2 +- + board/at91sam9g10ek/nandflash/Makefile | 2 +- + board/at91sam9g20ek/dataflash/Makefile | 2 +- + board/at91sam9g20ek/nandflash/Makefile | 2 +- + board/at91sam9g45ekes/nandflash/Makefile | 2 +- + board/at91sam9m10ekes/dataflash/Makefile | 2 +- + board/at91sam9m10ekes/nandflash/Makefile | 2 +- + board/at91sam9m10g45ek/dataflash/Makefile | 2 +- + board/at91sam9m10g45ek/nandflash/Makefile | 2 +- + board/at91sam9rlek/dataflash/Makefile | 2 +- + board/at91sam9rlek/nandflash/Makefile | 2 +- + board/at91sam9xeek/dataflash/Makefile | 2 +- + board/at91sam9xeek/nandflash/Makefile | 2 +- + lib/Makefile | 2 +- + 23 files changed, 23 insertions(+), 23 deletions(-) + +Index: Bootstrap-v1.16/board/at91cap9adk/dataflash/Makefile +=================================================================== +--- Bootstrap-v1.16.orig/board/at91cap9adk/dataflash/Makefile ++++ Bootstrap-v1.16/board/at91cap9adk/dataflash/Makefile +@@ -34,7 +34,7 @@ + SIZE=$(CROSS_COMPILE)size + OBJCOPY=$(CROSS_COMPILE)objcopy + OBJDUMP=$(CROSS_COMPILE)objdump +-CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -D$(BOARD) -I$(INCL) ++CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -D$(BOARD) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables + ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -D$(BOARD) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) + + # Linker flags. +Index: Bootstrap-v1.16/board/at91cap9adk/norflash/Makefile +=================================================================== +--- Bootstrap-v1.16.orig/board/at91cap9adk/norflash/Makefile ++++ Bootstrap-v1.16/board/at91cap9adk/norflash/Makefile +@@ -34,7 +34,7 @@ + SIZE=$(CROSS_COMPILE)size + OBJCOPY=$(CROSS_COMPILE)objcopy + OBJDUMP=$(CROSS_COMPILE)objdump +-CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -D$(BOARD) -I$(INCL) ++CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -D$(BOARD) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables + ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -D$(BOARD) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) + + # Linker flags. +Index: Bootstrap-v1.16/board/at91cap9stk/nandflash/Makefile +=================================================================== +--- Bootstrap-v1.16.orig/board/at91cap9stk/nandflash/Makefile ++++ Bootstrap-v1.16/board/at91cap9stk/nandflash/Makefile +@@ -37,7 +37,7 @@ + SIZE=$(CROSS_COMPILE)size + OBJCOPY=$(CROSS_COMPILE)objcopy + OBJDUMP=$(CROSS_COMPILE)objdump +-CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -D$(BOARD) -I$(INCL) ++CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -D$(BOARD) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables + ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -D$(BOARD) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) + + +Index: Bootstrap-v1.16/board/at91sam9260ek/dataflash/Makefile +=================================================================== +--- Bootstrap-v1.16.orig/board/at91sam9260ek/dataflash/Makefile ++++ Bootstrap-v1.16/board/at91sam9260ek/dataflash/Makefile +@@ -37,7 +37,7 @@ + SIZE=$(CROSS_COMPILE)size + OBJCOPY=$(CROSS_COMPILE)objcopy + OBJDUMP=$(CROSS_COMPILE)objdump +-CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) ++CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables + ASFLAGS=-g -mcpu=arm926ej-s -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) + + # Linker flags. +Index: Bootstrap-v1.16/board/at91sam9260ek/nandflash/Makefile +=================================================================== +--- Bootstrap-v1.16.orig/board/at91sam9260ek/nandflash/Makefile ++++ Bootstrap-v1.16/board/at91sam9260ek/nandflash/Makefile +@@ -37,7 +37,7 @@ + SIZE=$(CROSS_COMPILE)size + OBJCOPY=$(CROSS_COMPILE)objcopy + OBJDUMP=$(CROSS_COMPILE)objdump +-CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) ++CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables + ASFLAGS=-g -mcpu=arm926ej-s -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) + + # Linker flags. +Index: Bootstrap-v1.16/board/at91sam9261ek/dataflash/Makefile +=================================================================== +--- Bootstrap-v1.16.orig/board/at91sam9261ek/dataflash/Makefile ++++ Bootstrap-v1.16/board/at91sam9261ek/dataflash/Makefile +@@ -37,7 +37,7 @@ + SIZE=$(CROSS_COMPILE)size + OBJCOPY=$(CROSS_COMPILE)objcopy + OBJDUMP=$(CROSS_COMPILE)objdump +-CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) ++CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables + ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) + + # Linker flags. +Index: Bootstrap-v1.16/board/at91sam9261ek/nandflash/Makefile +=================================================================== +--- Bootstrap-v1.16.orig/board/at91sam9261ek/nandflash/Makefile ++++ Bootstrap-v1.16/board/at91sam9261ek/nandflash/Makefile +@@ -37,7 +37,7 @@ + SIZE=$(CROSS_COMPILE)size + OBJCOPY=$(CROSS_COMPILE)objcopy + OBJDUMP=$(CROSS_COMPILE)objdump +-CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) ++CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables + ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) + + # Linker flags. +Index: Bootstrap-v1.16/board/at91sam9263ek/dataflash/Makefile +=================================================================== +--- Bootstrap-v1.16.orig/board/at91sam9263ek/dataflash/Makefile ++++ Bootstrap-v1.16/board/at91sam9263ek/dataflash/Makefile +@@ -34,7 +34,7 @@ + SIZE=$(CROSS_COMPILE)size + OBJCOPY=$(CROSS_COMPILE)objcopy + OBJDUMP=$(CROSS_COMPILE)objdump +-CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) ++CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables + ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) + + # Linker flags. +Index: Bootstrap-v1.16/board/at91sam9263ek/nandflash/Makefile +=================================================================== +--- Bootstrap-v1.16.orig/board/at91sam9263ek/nandflash/Makefile ++++ Bootstrap-v1.16/board/at91sam9263ek/nandflash/Makefile +@@ -33,7 +33,7 @@ + SIZE=$(CROSS_COMPILE)size + OBJCOPY=$(CROSS_COMPILE)objcopy + OBJDUMP=$(CROSS_COMPILE)objdump +-CCFLAGS=-g -mcpu=arm9 -O0 -Wall -D$(TARGET) -I$(INCL) ++CCFLAGS=-g -mcpu=arm9 -O0 -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables + ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) + + # Linker flags. +Index: Bootstrap-v1.16/board/at91sam9g10ek/dataflash/Makefile +=================================================================== +--- Bootstrap-v1.16.orig/board/at91sam9g10ek/dataflash/Makefile ++++ Bootstrap-v1.16/board/at91sam9g10ek/dataflash/Makefile +@@ -37,7 +37,7 @@ + SIZE=$(CROSS_COMPILE)size + OBJCOPY=$(CROSS_COMPILE)objcopy + OBJDUMP=$(CROSS_COMPILE)objdump +-CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) ++CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables + ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) + + # Linker flags. +Index: Bootstrap-v1.16/board/at91sam9g10ek/nandflash/Makefile +=================================================================== +--- Bootstrap-v1.16.orig/board/at91sam9g10ek/nandflash/Makefile ++++ Bootstrap-v1.16/board/at91sam9g10ek/nandflash/Makefile +@@ -37,7 +37,7 @@ + SIZE=$(CROSS_COMPILE)size + OBJCOPY=$(CROSS_COMPILE)objcopy + OBJDUMP=$(CROSS_COMPILE)objdump +-CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) ++CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables + ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) + + # Linker flags. +Index: Bootstrap-v1.16/board/at91sam9g20ek/dataflash/Makefile +=================================================================== +--- Bootstrap-v1.16.orig/board/at91sam9g20ek/dataflash/Makefile ++++ Bootstrap-v1.16/board/at91sam9g20ek/dataflash/Makefile +@@ -37,7 +37,7 @@ + SIZE=$(CROSS_COMPILE)size + OBJCOPY=$(CROSS_COMPILE)objcopy + OBJDUMP=$(CROSS_COMPILE)objdump +-CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) ++CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables + ASFLAGS=-g -mcpu=arm926ej-s -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) + + # Linker flags. +Index: Bootstrap-v1.16/board/at91sam9g20ek/nandflash/Makefile +=================================================================== +--- Bootstrap-v1.16.orig/board/at91sam9g20ek/nandflash/Makefile ++++ Bootstrap-v1.16/board/at91sam9g20ek/nandflash/Makefile +@@ -37,7 +37,7 @@ + SIZE=$(CROSS_COMPILE)size + OBJCOPY=$(CROSS_COMPILE)objcopy + OBJDUMP=$(CROSS_COMPILE)objdump +-CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) ++CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables + ASFLAGS=-g -mcpu=arm926ej-s -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) + + # Linker flags. +Index: Bootstrap-v1.16/board/at91sam9g45ekes/nandflash/Makefile +=================================================================== +--- Bootstrap-v1.16.orig/board/at91sam9g45ekes/nandflash/Makefile ++++ Bootstrap-v1.16/board/at91sam9g45ekes/nandflash/Makefile +@@ -37,7 +37,7 @@ + SIZE=$(CROSS_COMPILE)size + OBJCOPY=$(CROSS_COMPILE)objcopy + OBJDUMP=$(CROSS_COMPILE)objdump +-CCFLAGS=-g -mcpu=arm926ej-s -O2 -Wall -D$(TARGET) -I$(INCL) ++CCFLAGS=-g -mcpu=arm926ej-s -O2 -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables + ASFLAGS=-g -mcpu=arm926ej-s -c -O2 -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) + + # Linker flags. +Index: Bootstrap-v1.16/board/at91sam9m10ekes/dataflash/Makefile +=================================================================== +--- Bootstrap-v1.16.orig/board/at91sam9m10ekes/dataflash/Makefile ++++ Bootstrap-v1.16/board/at91sam9m10ekes/dataflash/Makefile +@@ -37,7 +37,7 @@ + SIZE=$(CROSS_COMPILE)size + OBJCOPY=$(CROSS_COMPILE)objcopy + OBJDUMP=$(CROSS_COMPILE)objdump +-CCFLAGS=-g -mcpu=arm926ej-s -O2 -Wall -D$(TARGET) -I$(INCL) ++CCFLAGS=-g -mcpu=arm926ej-s -O2 -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables + ASFLAGS=-g -mcpu=arm926ej-s -c -O2 -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) + + # Linker flags. +Index: Bootstrap-v1.16/board/at91sam9m10ekes/nandflash/Makefile +=================================================================== +--- Bootstrap-v1.16.orig/board/at91sam9m10ekes/nandflash/Makefile ++++ Bootstrap-v1.16/board/at91sam9m10ekes/nandflash/Makefile +@@ -37,7 +37,7 @@ + SIZE=$(CROSS_COMPILE)size + OBJCOPY=$(CROSS_COMPILE)objcopy + OBJDUMP=$(CROSS_COMPILE)objdump +-CCFLAGS=-g -mcpu=arm926ej-s -O2 -Wall -D$(TARGET) -I$(INCL) ++CCFLAGS=-g -mcpu=arm926ej-s -O2 -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables + ASFLAGS=-g -mcpu=arm926ej-s -c -O2 -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) + + # Linker flags. +Index: Bootstrap-v1.16/board/at91sam9m10g45ek/dataflash/Makefile +=================================================================== +--- Bootstrap-v1.16.orig/board/at91sam9m10g45ek/dataflash/Makefile ++++ Bootstrap-v1.16/board/at91sam9m10g45ek/dataflash/Makefile +@@ -37,7 +37,7 @@ + SIZE=$(CROSS_COMPILE)size + OBJCOPY=$(CROSS_COMPILE)objcopy + OBJDUMP=$(CROSS_COMPILE)objdump +-CCFLAGS=-g -mcpu=arm926ej-s -O2 -Wall -D$(TARGET) -I$(INCL) ++CCFLAGS=-g -mcpu=arm926ej-s -O2 -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables + ASFLAGS=-g -mcpu=arm926ej-s -c -O2 -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) + + # Linker flags. +Index: Bootstrap-v1.16/board/at91sam9m10g45ek/nandflash/Makefile +=================================================================== +--- Bootstrap-v1.16.orig/board/at91sam9m10g45ek/nandflash/Makefile ++++ Bootstrap-v1.16/board/at91sam9m10g45ek/nandflash/Makefile +@@ -37,7 +37,7 @@ + SIZE=$(CROSS_COMPILE)size + OBJCOPY=$(CROSS_COMPILE)objcopy + OBJDUMP=$(CROSS_COMPILE)objdump +-CCFLAGS=-g -mcpu=arm926ej-s -O2 -Wall -D$(TARGET) -I$(INCL) ++CCFLAGS=-g -mcpu=arm926ej-s -O2 -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables + ASFLAGS=-g -mcpu=arm926ej-s -c -O2 -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) + + # Linker flags. +Index: Bootstrap-v1.16/board/at91sam9rlek/dataflash/Makefile +=================================================================== +--- Bootstrap-v1.16.orig/board/at91sam9rlek/dataflash/Makefile ++++ Bootstrap-v1.16/board/at91sam9rlek/dataflash/Makefile +@@ -37,7 +37,7 @@ + SIZE=$(CROSS_COMPILE)size + OBJCOPY=$(CROSS_COMPILE)objcopy + OBJDUMP=$(CROSS_COMPILE)objdump +-CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) ++CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables + ASFLAGS=-g -mcpu=arm926ej-s -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) + + # Linker flags. +Index: Bootstrap-v1.16/board/at91sam9rlek/nandflash/Makefile +=================================================================== +--- Bootstrap-v1.16.orig/board/at91sam9rlek/nandflash/Makefile ++++ Bootstrap-v1.16/board/at91sam9rlek/nandflash/Makefile +@@ -37,7 +37,7 @@ + SIZE=$(CROSS_COMPILE)size + OBJCOPY=$(CROSS_COMPILE)objcopy + OBJDUMP=$(CROSS_COMPILE)objdump +-CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) ++CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables + ASFLAGS=-g -mcpu=arm926ej-s -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) + + # Linker flags. +Index: Bootstrap-v1.16/board/at91sam9xeek/dataflash/Makefile +=================================================================== +--- Bootstrap-v1.16.orig/board/at91sam9xeek/dataflash/Makefile ++++ Bootstrap-v1.16/board/at91sam9xeek/dataflash/Makefile +@@ -38,7 +38,7 @@ + SIZE=$(CROSS_COMPILE)size + OBJCOPY=$(CROSS_COMPILE)objcopy + OBJDUMP=$(CROSS_COMPILE)objdump +-CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) ++CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables + ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) + + # Linker flags. +Index: Bootstrap-v1.16/board/at91sam9xeek/nandflash/Makefile +=================================================================== +--- Bootstrap-v1.16.orig/board/at91sam9xeek/nandflash/Makefile ++++ Bootstrap-v1.16/board/at91sam9xeek/nandflash/Makefile +@@ -38,7 +38,7 @@ + SIZE=$(CROSS_COMPILE)size + OBJCOPY=$(CROSS_COMPILE)objcopy + OBJDUMP=$(CROSS_COMPILE)objdump +-CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) ++CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables + ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) + + # Linker flags. +Index: Bootstrap-v1.16/lib/Makefile +=================================================================== +--- Bootstrap-v1.16.orig/lib/Makefile ++++ Bootstrap-v1.16/lib/Makefile +@@ -37,7 +37,7 @@ + SIZE=$(CROSS_COMPILE)size + OBJCOPY=$(CROSS_COMPILE)objcopy + OBJDUMP=$(CROSS_COMPILE)objdump +-CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) ++CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables + ASFLAGS=-g -mcpu=arm926ej-s -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY) + + # Linker flags. diff --git a/boot/at91bootstrap/0002-gcc-4.6.x-ldscript-fix.patch b/boot/at91bootstrap/0002-gcc-4.6.x-ldscript-fix.patch new file mode 100644 index 000000000..e4ed04e86 --- /dev/null +++ b/boot/at91bootstrap/0002-gcc-4.6.x-ldscript-fix.patch @@ -0,0 +1,29 @@ +From b783d1f9bf985c0981e755bd2c13e091e9d6837f Mon Sep 17 00:00:00 2001 +From: Gregory Hermant +Date: Tue, 6 Nov 2012 09:38:50 +0100 +Subject: [PATCH] at91bootstrap: fix overlap linker issue + +The linker script of the at91bootstrap package has to be modified when +built from gcc-4.6.x version. Indeed a section named text.startup is +created and has to be added into the text section. + +Signed-off-by: Gregory Hermant +--- + elf32-littlearm.lds | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/elf32-littlearm.lds b/elf32-littlearm.lds +index a33952f..4f3ba25 100644 +--- a/elf32-littlearm.lds ++++ b/elf32-littlearm.lds +@@ -7,6 +7,7 @@ SECTIONS + .text : { + _stext = .; + *(.text) ++ *(.text*) + *(.rodata) /* read-only data (constants) */ + *(.rodata*) + . = ALIGN(4); +-- +1.7.9.5 + diff --git a/boot/at91bootstrap/0003-u-boot-relocation-fix.patch b/boot/at91bootstrap/0003-u-boot-relocation-fix.patch new file mode 100644 index 000000000..0c9b9114c --- /dev/null +++ b/boot/at91bootstrap/0003-u-boot-relocation-fix.patch @@ -0,0 +1,284 @@ +From d4e4a1aad559e35d84b445d1379be94ad036984e Mon Sep 17 00:00:00 2001 +From: Alexandre Belloni +Date: Thu, 25 Oct 2012 22:57:14 +0200 +Subject: [PATCH] u-boot relocation fix + +Every AT91SAM plaforms were broken between 2010.12 and 2011.03 because +of the relocation changes. + +We have to get JUMP_ADDR consistant with what is used by u-boot +(CONFIG_SYS_TEXT_BASE). + +I didn't know what to do with at91sam9m10g45ek as it doesn't seems to be +converted yet. But anyway, that means that it is either not working or +doesn't care so changing it here shouldn't harm. + +We also have to increase the IMG_SIZE as u-boot as grown larger than the +default value. As requested on the u-boot ML, we assume that it could +be up to 495kB big. + +It means that now, you have to flash your kernel at 0x00084000 instead +of 0x00042000. And so you also have to load it from that adress from +u-boot. + +Then, remember that you could decrease IMG_SIZE to boot faster. + +Signed-off-by: Alexandre Belloni +--- + board/at91sam9260ek/dataflash/at91sam9260ek.h | 4 ++-- + board/at91sam9260ek/nandflash/at91sam9260ek.h | 2 +- + board/at91sam9261ek/dataflash/at91sam9261ek.h | 4 ++-- + board/at91sam9261ek/nandflash/at91sam9261ek.h | 2 +- + board/at91sam9263ek/dataflash/at91sam9263ek.h | 4 ++-- + board/at91sam9263ek/nandflash/at91sam9263ek.h | 2 +- + board/at91sam9g10ek/dataflash/at91sam9g10ek.h | 4 ++-- + board/at91sam9g10ek/nandflash/at91sam9g10ek.h | 2 +- + board/at91sam9g20ek/dataflash/at91sam9g20ek.h | 4 ++-- + board/at91sam9g20ek/nandflash/at91sam9g20ek.h | 2 +- + board/at91sam9m10ekes/dataflash/at91sam9m10ekes.h | 2 +- + .../at91sam9m10g45ek/dataflash/at91sam9m10g45ek.h | 2 +- + board/at91sam9rlek/dataflash/at91sam9rlek.h | 4 ++-- + board/at91sam9rlek/nandflash/at91sam9rlek.h | 2 +- + board/at91sam9xeek/dataflash/at91sam9xeek.h | 4 ++-- + board/at91sam9xeek/nandflash/at91sam9xeek.h | 2 +- + 16 files changed, 23 insertions(+), 23 deletions(-) + +diff --git a/board/at91sam9260ek/dataflash/at91sam9260ek.h b/board/at91sam9260ek/dataflash/at91sam9260ek.h +index 1834246..91081a1 100644 +--- a/board/at91sam9260ek/dataflash/at91sam9260ek.h ++++ b/board/at91sam9260ek/dataflash/at91sam9260ek.h +@@ -74,10 +74,10 @@ + #define AT91C_SPI_PCS_DATAFLASH AT91C_SPI_PCS1_DATAFLASH /* Boot on SPI NCS0 */ + + #define IMG_ADDRESS 0x8400 /* Image Address in DataFlash */ +-#define IMG_SIZE 0x33900 /* Image Size in DataFlash */ ++#define IMG_SIZE 0x7BC00 /* Image Size in DataFlash */ + + #define MACH_TYPE 0x44B /* AT91SAM9260-EK */ +-#define JUMP_ADDR 0x23F00000 /* Final Jump Address */ ++#define JUMP_ADDR 0x21F00000 /* Final Jump Address */ + + /* ******************************************************************* */ + /* Application Settings */ +diff --git a/board/at91sam9260ek/nandflash/at91sam9260ek.h b/board/at91sam9260ek/nandflash/at91sam9260ek.h +index 2cac601..f8fdff2 100644 +--- a/board/at91sam9260ek/nandflash/at91sam9260ek.h ++++ b/board/at91sam9260ek/nandflash/at91sam9260ek.h +@@ -92,7 +92,7 @@ + #define IMG_SIZE 0x40000 /* Image Size in NandFlash */ + + #define MACH_TYPE 0x44B /* AT91SAM9260-EK */ +-#define JUMP_ADDR 0x23F00000 /* Final Jump Address */ ++#define JUMP_ADDR 0x21F00000 /* Final Jump Address */ + + /* ******************************************************************* */ + /* Application Settings */ +diff --git a/board/at91sam9261ek/dataflash/at91sam9261ek.h b/board/at91sam9261ek/dataflash/at91sam9261ek.h +index 8ce30e9..276ba3d 100644 +--- a/board/at91sam9261ek/dataflash/at91sam9261ek.h ++++ b/board/at91sam9261ek/dataflash/at91sam9261ek.h +@@ -97,10 +97,10 @@ + #define AT91C_SPI_PCS_DATAFLASH AT91C_SPI_PCS0_DATAFLASH /* Boot on SPI NCS0 */ + + #define IMG_ADDRESS 0x8400 /* Image Address in DataFlash */ +-#define IMG_SIZE 0x33900 /* Image Size in DataFlash */ ++#define IMG_SIZE 0x7BC00 /* Image Size in DataFlash */ + + #define MACH_TYPE 0x350 /* AT91SAM9261-EK */ +-#define JUMP_ADDR 0x23F00000 /* Final Jump Address */ ++#define JUMP_ADDR 0x21F00000 /* Final Jump Address */ + + /* ******************************************************************* */ + /* Application Settings */ +diff --git a/board/at91sam9261ek/nandflash/at91sam9261ek.h b/board/at91sam9261ek/nandflash/at91sam9261ek.h +index badc3ac..e628c97 100644 +--- a/board/at91sam9261ek/nandflash/at91sam9261ek.h ++++ b/board/at91sam9261ek/nandflash/at91sam9261ek.h +@@ -114,7 +114,7 @@ + #define IMG_SIZE 0x40000 /* Image Size in NandFlash */ + + #define MACH_TYPE 0x350 /* AT91SAM9261-EK */ +-#define JUMP_ADDR 0x23F00000 /* Final Jump Address */ ++#define JUMP_ADDR 0x21F00000 /* Final Jump Address */ + + /* ******************************************************************* */ + /* Application Settings */ +diff --git a/board/at91sam9263ek/dataflash/at91sam9263ek.h b/board/at91sam9263ek/dataflash/at91sam9263ek.h +index 5c9da4b..870f9e2 100644 +--- a/board/at91sam9263ek/dataflash/at91sam9263ek.h ++++ b/board/at91sam9263ek/dataflash/at91sam9263ek.h +@@ -96,10 +96,10 @@ + #define AT91C_SPI_PCS_DATAFLASH AT91C_SPI_PCS0_DATAFLASH /* Boot on SPI NCS0 */ + + #define IMG_ADDRESS 0x8400 /* Image Address in DataFlash */ +-#define IMG_SIZE 0x33900 /* Image Size in DataFlash */ ++#define IMG_SIZE 0x7BC00 /* Image Size in DataFlash */ + + #define MACH_TYPE 0x4B2 /* AT91SAM9263-EK */ +-#define JUMP_ADDR 0x23F00000 /* Final Jump Address */ ++#define JUMP_ADDR 0x21F00000 /* Final Jump Address */ + + /* ******************************************************************* */ + /* Application Settings */ +diff --git a/board/at91sam9263ek/nandflash/at91sam9263ek.h b/board/at91sam9263ek/nandflash/at91sam9263ek.h +index 505afc7..8ab4f46 100644 +--- a/board/at91sam9263ek/nandflash/at91sam9263ek.h ++++ b/board/at91sam9263ek/nandflash/at91sam9263ek.h +@@ -108,7 +108,7 @@ + #define IMG_SIZE 0x40000 /* Image Size in NandFlash */ + + #define MACH_TYPE 1202 /* AT91SAM9263-EK */ +-#define JUMP_ADDR 0x23F00000 /* Final Jump Address */ ++#define JUMP_ADDR 0x21F00000 /* Final Jump Address */ + + /* ******************************************************************* */ + /* Application Settings */ +diff --git a/board/at91sam9g10ek/dataflash/at91sam9g10ek.h b/board/at91sam9g10ek/dataflash/at91sam9g10ek.h +index b2faf44..f4f556b 100644 +--- a/board/at91sam9g10ek/dataflash/at91sam9g10ek.h ++++ b/board/at91sam9g10ek/dataflash/at91sam9g10ek.h +@@ -98,10 +98,10 @@ + #define AT91C_SPI_PCS_DATAFLASH AT91C_SPI_PCS0_DATAFLASH /* Boot on SPI NCS0 */ + + #define IMG_ADDRESS 0x8400 /* Image Address in DataFlash */ +-#define IMG_SIZE 0x33900 /* Image Size in DataFlash */ ++#define IMG_SIZE 0x7BC00 /* Image Size in DataFlash */ + + #define MACH_TYPE 0x350 /* AT91SAM9261-EK */ +-#define JUMP_ADDR 0x23F00000 /* Final Jump Address */ ++#define JUMP_ADDR 0x21F00000 /* Final Jump Address */ + + /* ******************************************************************* */ + /* Application Settings */ +diff --git a/board/at91sam9g10ek/nandflash/at91sam9g10ek.h b/board/at91sam9g10ek/nandflash/at91sam9g10ek.h +index 66c40a3..6c3ecda 100644 +--- a/board/at91sam9g10ek/nandflash/at91sam9g10ek.h ++++ b/board/at91sam9g10ek/nandflash/at91sam9g10ek.h +@@ -115,7 +115,7 @@ + #define IMG_SIZE 0x40000 /* Image Size in NandFlash */ + + #define MACH_TYPE 0x350 /* AT91SAM9G10-EK */ +-#define JUMP_ADDR 0x23F00000 /* Final Jump Address */ ++#define JUMP_ADDR 0x21F00000 /* Final Jump Address */ + + /* ******************************************************************* */ + /* Application Settings */ +diff --git a/board/at91sam9g20ek/dataflash/at91sam9g20ek.h b/board/at91sam9g20ek/dataflash/at91sam9g20ek.h +index eea0439..7fc70d6 100644 +--- a/board/at91sam9g20ek/dataflash/at91sam9g20ek.h ++++ b/board/at91sam9g20ek/dataflash/at91sam9g20ek.h +@@ -75,10 +75,10 @@ + #define AT91C_SPI_PCS_DATAFLASH AT91C_SPI_PCS1_DATAFLASH /* Boot on SPI NCS1 */ + + #define IMG_ADDRESS 0x8400 /* Image Address in DataFlash */ +-#define IMG_SIZE 0x33900 /* Image Size in DataFlash */ ++#define IMG_SIZE 0x7BC00 /* Image Size in DataFlash */ + + #define MACH_TYPE 0x658 /* AT91SAM9G20-EK */ +-#define JUMP_ADDR 0x23F00000 /* Final Jump Address */ ++#define JUMP_ADDR 0x21F00000 /* Final Jump Address */ + + /* ******************************************************************* */ + /* Application Settings */ +diff --git a/board/at91sam9g20ek/nandflash/at91sam9g20ek.h b/board/at91sam9g20ek/nandflash/at91sam9g20ek.h +index 31bd499..e797e4d 100644 +--- a/board/at91sam9g20ek/nandflash/at91sam9g20ek.h ++++ b/board/at91sam9g20ek/nandflash/at91sam9g20ek.h +@@ -93,7 +93,7 @@ + #define IMG_SIZE 0x40000 /* Image Size in NandFlash */ + + #define MACH_TYPE 0x658 /* AT91SAM9G20-EK */ +-#define JUMP_ADDR 0x23F00000 /* Final Jump Address */ ++#define JUMP_ADDR 0x21F00000 /* Final Jump Address */ + + /* ******************************************************************* */ + /* Application Settings */ +diff --git a/board/at91sam9m10ekes/dataflash/at91sam9m10ekes.h b/board/at91sam9m10ekes/dataflash/at91sam9m10ekes.h +index a60fd41..5587a00 100644 +--- a/board/at91sam9m10ekes/dataflash/at91sam9m10ekes.h ++++ b/board/at91sam9m10ekes/dataflash/at91sam9m10ekes.h +@@ -89,7 +89,7 @@ + #define AT91C_SPI_PCS_DATAFLASH AT91C_SPI_PCS0_DATAFLASH /* Boot on SPI NCS0 */ + + #define IMG_ADDRESS 0x8400 /* Image Address in DataFlash */ +-#define IMG_SIZE 0x33900 /* Image Size in DataFlash */ ++#define IMG_SIZE 0x7BC00 /* Image Size in DataFlash */ + + #define MACH_TYPE 0x9CD /* AT91SAM9M10-EKES */ + #define JUMP_ADDR 0x73F00000 /* Final Jump Address */ +diff --git a/board/at91sam9m10g45ek/dataflash/at91sam9m10g45ek.h b/board/at91sam9m10g45ek/dataflash/at91sam9m10g45ek.h +index 5c726b5..9090097 100644 +--- a/board/at91sam9m10g45ek/dataflash/at91sam9m10g45ek.h ++++ b/board/at91sam9m10g45ek/dataflash/at91sam9m10g45ek.h +@@ -85,7 +85,7 @@ + #define AT91C_SPI_PCS_DATAFLASH AT91C_SPI_PCS0_DATAFLASH /* Boot on SPI NCS0 */ + + #define IMG_ADDRESS 0x8400 /* Image Address in DataFlash */ +-#define IMG_SIZE 0x33900 /* Image Size in DataFlash */ ++#define IMG_SIZE 0x7BC00 /* Image Size in DataFlash */ + + #define MACH_TYPE 0x726 /* AT91SAM9M10G45-EK */ + #define JUMP_ADDR 0x73F00000 /* Final Jump Address */ +diff --git a/board/at91sam9rlek/dataflash/at91sam9rlek.h b/board/at91sam9rlek/dataflash/at91sam9rlek.h +index 05c42dc..150f17e 100644 +--- a/board/at91sam9rlek/dataflash/at91sam9rlek.h ++++ b/board/at91sam9rlek/dataflash/at91sam9rlek.h +@@ -89,10 +89,10 @@ + #define AT91C_SPI_PCS_DATAFLASH AT91C_SPI_PCS0_DATAFLASH /* Boot on SPI NCS0 */ + + #define IMG_ADDRESS 0x8400 /* Image Address in DataFlash */ +-#define IMG_SIZE 0x33900 /* Image Size in DataFlash */ ++#define IMG_SIZE 0x7BC00 /* Image Size in DataFlash */ + + #define MACH_TYPE 1326 /* AT91SAM9RL-EK */ +-#define JUMP_ADDR 0x23F00000 /* Final Jump Address */ ++#define JUMP_ADDR 0x21F00000 /* Final Jump Address */ + + /* ******************************************************************* */ + /* Application Settings */ +diff --git a/board/at91sam9rlek/nandflash/at91sam9rlek.h b/board/at91sam9rlek/nandflash/at91sam9rlek.h +index 656b4ba..594db8f 100644 +--- a/board/at91sam9rlek/nandflash/at91sam9rlek.h ++++ b/board/at91sam9rlek/nandflash/at91sam9rlek.h +@@ -112,7 +112,7 @@ + #define IMG_SIZE 0x40000 /* Image Size in NandFlash */ + + #define MACH_TYPE 1326 /* AT91SAM9RL-EK */ +-#define JUMP_ADDR 0x23F00000 /* Final Jump Address */ ++#define JUMP_ADDR 0x21F00000 /* Final Jump Address */ + + /* ******************************************************************* */ + /* Application Settings */ +diff --git a/board/at91sam9xeek/dataflash/at91sam9xeek.h b/board/at91sam9xeek/dataflash/at91sam9xeek.h +index 27d1822..08e515d 100644 +--- a/board/at91sam9xeek/dataflash/at91sam9xeek.h ++++ b/board/at91sam9xeek/dataflash/at91sam9xeek.h +@@ -74,10 +74,10 @@ + #define AT91C_SPI_PCS_DATAFLASH AT91C_SPI_PCS1_DATAFLASH /* Boot on SPI NCS1 */ + + #define IMG_ADDRESS 0x8400 /* Image Address in DataFlash */ +-#define IMG_SIZE 0x33900 /* Image Size in DataFlash */ ++#define IMG_SIZE 0x7BC00 /* Image Size in DataFlash */ + + #define MACH_TYPE 0x44B /* AT91SAM9XE-EK same id as AT91SAM9260-EK*/ +-#define JUMP_ADDR 0x23F00000 /* Final Jump Address */ ++#define JUMP_ADDR 0x21F00000 /* Final Jump Address */ + + /* ******************************************************************* */ + /* Application Settings */ +diff --git a/board/at91sam9xeek/nandflash/at91sam9xeek.h b/board/at91sam9xeek/nandflash/at91sam9xeek.h +index 5dbc63e..9fac7cb 100644 +--- a/board/at91sam9xeek/nandflash/at91sam9xeek.h ++++ b/board/at91sam9xeek/nandflash/at91sam9xeek.h +@@ -94,7 +94,7 @@ + #define IMG_SIZE 0x40000 /* Image Size in NandFlash */ + + #define MACH_TYPE 0x44B /* AT91SAM9XE-EK same id as AT91SAM9260-EK*/ +-#define JUMP_ADDR 0x23F00000 /* Final Jump Address */ ++#define JUMP_ADDR 0x21F00000 /* Final Jump Address */ + + /* ******************************************************************* */ + /* Application Settings */ +-- +1.7.9.5 + diff --git a/boot/at91bootstrap/Config.in b/boot/at91bootstrap/Config.in new file mode 100644 index 000000000..0f6430fd8 --- /dev/null +++ b/boot/at91bootstrap/Config.in @@ -0,0 +1,49 @@ +config BR2_TARGET_AT91BOOTSTRAP + bool "AT91 Bootstrap" + depends on BR2_arm926t + help + AT91Bootstrap is a first level bootloader for the Atmel AT91 + devices. It integrates algorithms for: + - Device initialization such as clock configuration, PIO + settings... + - Peripheral drivers such as PIO, PMC or SDRAMC... + - Physical media algorithm such as DataFlash, NandFlash, NOR + Flash... + +if BR2_TARGET_AT91BOOTSTRAP + +config BR2_TARGET_AT91BOOTSTRAP_CUSTOM_PATCH_DIR + string "custom patch dir" + help + If your board requires custom patches, add the path to the + directory containing the patches here. The patches must be + named at91bootstrap--.patch. + + Most users may leave this empty + +config BR2_TARGET_AT91BOOTSTRAP_BOARD + string "Bootstrap board" + default "" + help + This is used to do a make _config + +choice + prompt "Boot Memory" + default BR2_TARGET_AT91BOOTSTRAP_DATAFLASH + help + Select Chip for which AT91 bootstrap should be built + +config BR2_TARGET_AT91BOOTSTRAP_DATAFLASH + bool "Data Flash" + +config BR2_TARGET_AT91BOOTSTRAP_NANDFLASH + bool "NAND Flash" + +endchoice + +config BR2_TARGET_AT91BOOTSTRAP_MEMORY + string + default "dataflash" if BR2_TARGET_AT91BOOTSTRAP_DATAFLASH + default "nandflash" if BR2_TARGET_AT91BOOTSTRAP_NANDFLASH + +endif diff --git a/boot/at91bootstrap/at91bootstrap.hash b/boot/at91bootstrap/at91bootstrap.hash new file mode 100644 index 000000000..d9f8db889 --- /dev/null +++ b/boot/at91bootstrap/at91bootstrap.hash @@ -0,0 +1,3 @@ +# locally computed +sha256 d66192a274247f4baa39fa932eadf903d7add55641d89d30402f967c4f2282a5 AT91Bootstrap1.16.zip +sha256 6a3ac5dfcf19e6bac1b1109d30d72818768a3855e2594b84fe2b012b5fe0e77b include/sdramc.h diff --git a/boot/at91bootstrap/at91bootstrap.mk b/boot/at91bootstrap/at91bootstrap.mk new file mode 100644 index 000000000..1a084756f --- /dev/null +++ b/boot/at91bootstrap/at91bootstrap.mk @@ -0,0 +1,49 @@ +################################################################################ +# +# at91bootstrap +# +################################################################################ + +AT91BOOTSTRAP_VERSION = 1.16 +AT91BOOTSTRAP_SITE = ftp://www.at91.com/pub/at91bootstrap +AT91BOOTSTRAP_SOURCE = AT91Bootstrap$(AT91BOOTSTRAP_VERSION).zip +AT91BOOTSTRAP_LICENSE = BSD-Source-Code +AT91BOOTSTRAP_LICENSE_FILES = include/sdramc.h + +AT91BOOTSTRAP_BOARD = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP_BOARD)) +AT91BOOTSTRAP_MEMORY = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP_MEMORY)) +AT91BOOTSTRAP_MAKE_SUBDIR = board/$(AT91BOOTSTRAP_BOARD)/$(AT91BOOTSTRAP_MEMORY) +AT91BOOTSTRAP_BINARY = $(AT91BOOTSTRAP_MAKE_SUBDIR)/$(AT91BOOTSTRAP_MEMORY)_$(AT91BOOTSTRAP_BOARD).bin + +AT91BOOTSTRAP_INSTALL_IMAGES = YES +AT91BOOTSTRAP_INSTALL_TARGET = NO + +define AT91BOOTSTRAP_EXTRACT_CMDS + $(UNZIP) -d $(BUILD_DIR) $(AT91BOOTSTRAP_DL_DIR)/$(AT91BOOTSTRAP_SOURCE) + mv $(BUILD_DIR)/Bootstrap-v$(AT91BOOTSTRAP_VERSION)/* $(@D) + rmdir $(BUILD_DIR)/Bootstrap-v$(AT91BOOTSTRAP_VERSION) +endef + +ifneq ($(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP_CUSTOM_PATCH_DIR)),) +define AT91BOOTSTRAP_APPLY_CUSTOM_PATCHES + $(APPLY_PATCHES) $(@D) $(BR2_TARGET_AT91BOOTSTRAP_CUSTOM_PATCH_DIR) \*.patch +endef + +AT91BOOTSTRAP_POST_PATCH_HOOKS += AT91BOOTSTRAP_APPLY_CUSTOM_PATCHES +endif + +define AT91BOOTSTRAP_BUILD_CMDS + $(MAKE1) CROSS_COMPILE=$(TARGET_CROSS) -C $(@D)/$(AT91BOOTSTRAP_MAKE_SUBDIR) +endef + +define AT91BOOTSTRAP_INSTALL_IMAGES_CMDS + cp $(@D)/$(AT91BOOTSTRAP_BINARY) $(BINARIES_DIR) +endef + +$(eval $(generic-package)) + +ifeq ($(BR2_TARGET_AT91BOOTSTRAP)$(BR_BUILDING),yy) +ifeq ($(AT91BOOTSTRAP_BOARD),) +$(error No AT91Bootstrap board name set. Check your BR2_TARGET_AT91BOOTSTRAP_BOARD setting) +endif +endif diff --git a/boot/at91bootstrap3/Config.in b/boot/at91bootstrap3/Config.in new file mode 100644 index 000000000..b3e18fce7 --- /dev/null +++ b/boot/at91bootstrap3/Config.in @@ -0,0 +1,117 @@ +config BR2_TARGET_AT91BOOTSTRAP3 + bool "AT91 Bootstrap 3+" + depends on BR2_arm926t || BR2_cortex_a5 || BR2_cortex_a7 + help + AT91Bootstrap is a first level bootloader for the Atmel AT91 + devices. It integrates algorithms for: + - Device initialization such as clock configuration, PIO + settings... + - Peripheral drivers such as PIO, PMC or SDRAMC... + - Physical media algorithm such as DataFlash, NandFlash, NOR + Flash... + + https://www.at91.com/linux4sam/bin/view/Linux4SAM/AT91Bootstrap + +if BR2_TARGET_AT91BOOTSTRAP3 + +choice + + prompt "AT91 Bootstrap 3+ version" + +config BR2_TARGET_AT91BOOTSTRAP3_LATEST_VERSION + bool "4.0.0" + +config BR2_TARGET_AT91BOOTSTRAP3_LATEST_VERSION_3X + bool "3.10.3" + +config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT + bool "Custom Git repository" + help + This option allows Buildroot to get the AT91 Bootstrap 3 + source code from a Git repository. + +config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_SVN + bool "Custom SVN repository" + help + This option allows Buildroot to get the AT91 Bootstrap 3 + source code from a Subversion repository + +config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL + bool "Custom tarball" + +endchoice + +config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION + string "URL of custom AT91Bootstrap tarball" + depends on BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL + +if BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT || BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_SVN + +config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL + string "URL of custom repository" + +config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION + string "Custom repository version" + help + Revision to use in the typical format used by Git or SVN + E.G. a sha id, a tag, branch, .. + +endif + +config BR2_TARGET_AT91BOOTSTRAP3_VERSION + string + default "v4.0.0" if BR2_TARGET_AT91BOOTSTRAP3_LATEST_VERSION + default "v3.10.3" if BR2_TARGET_AT91BOOTSTRAP3_LATEST_VERSION_3X + default BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION \ + if BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT || BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_SVN + default "custom" if BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL + +config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_PATCH_DIR + string "custom patch dir" + help + If your board requires custom patches, add the path to the + directory containing the patches here. The patches must be + named at91bootstrap3-.patch. + + Most users may leave this empty + +# +# Configuration selection +# + +choice + prompt "AT91 Bootstrap 3 configuration" + default BR2_TARGET_AT91BOOTSTRAP3_USE_DEFCONFIG + +config BR2_TARGET_AT91BOOTSTRAP3_USE_DEFCONFIG + bool "Using a defconfig" + +config BR2_TARGET_AT91BOOTSTRAP3_USE_CUSTOM_CONFIG + bool "Using a custom config file" + +endchoice + +config BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG + string "Defconfig name" + depends on BR2_TARGET_AT91BOOTSTRAP3_USE_DEFCONFIG + help + Name of the at91bootstrap3 defconfig file to use, without the + trailing _defconfig. The defconfig is located at + board//_defconfig in the at91bootstrap3 + tree. + +config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE + string "Configuration file path" + depends on BR2_TARGET_AT91BOOTSTRAP3_USE_CUSTOM_CONFIG + help + Path to the at91bootstrap3 configuration file + +config BR2_TARGET_AT91BOOTSTRAP3_NEEDS_PYTHON3 + bool "needs host-python3" + help + Enable this option if the at91bootstrap build process needs + Python 3.x to be available on the host. This is needed in + some at91bootstrap configurations to use NAND/PMECC Python + scripts. + +endif # BR2_TARGET_AT91BOOTSTRAP3 diff --git a/boot/at91bootstrap3/at91bootstrap3.hash b/boot/at91bootstrap3/at91bootstrap3.hash new file mode 100644 index 000000000..e611f163c --- /dev/null +++ b/boot/at91bootstrap3/at91bootstrap3.hash @@ -0,0 +1,4 @@ +# Locally calculated +sha256 b6ae5bcaacc5a949f400182e036ae053049638444a3ba8b1dd154ec5f7898d8e at91bootstrap3-v3.10.3.tar.gz +sha256 08c5b95df28be7f2e0439fb2b77fe27524f97c499850641e4540c07ea0b2c25d at91bootstrap3-v4.0.0.tar.gz +sha256 5a3809b1c2ba13b7242572322951311c584419f1f8516f665d6c06f0668d78de LICENSES/MIT.txt diff --git a/boot/at91bootstrap3/at91bootstrap3.mk b/boot/at91bootstrap3/at91bootstrap3.mk new file mode 100644 index 000000000..4bbe7cc71 --- /dev/null +++ b/boot/at91bootstrap3/at91bootstrap3.mk @@ -0,0 +1,109 @@ +################################################################################ +# +# at91bootstrap3 +# +################################################################################ + +AT91BOOTSTRAP3_VERSION = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_VERSION)) + +ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL),y) +AT91BOOTSTRAP3_TARBALL = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION)) +AT91BOOTSTRAP3_SITE = $(patsubst %/,%,$(dir $(AT91BOOTSTRAP3_TARBALL))) +AT91BOOTSTRAP3_SOURCE = $(notdir $(AT91BOOTSTRAP3_TARBALL)) +BR_NO_CHECK_HASH_FOR += $(AT91BOOTSTRAP3_SOURCE) +else ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT),y) +AT91BOOTSTRAP3_SITE = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL)) +AT91BOOTSTRAP3_SITE_METHOD = git +BR_NO_CHECK_HASH_FOR += $(AT91BOOTSTRAP3_SOURCE) +else ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_SVN),y) +AT91BOOTSTRAP3_SITE = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL)) +AT91BOOTSTRAP3_SITE_METHOD = svn +BR_NO_CHECK_HASH_FOR += $(AT91BOOTSTRAP3_SOURCE) +else +AT91BOOTSTRAP3_SITE = $(call github,linux4sam,at91bootstrap,$(AT91BOOTSTRAP3_VERSION)) +endif + +ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_LATEST_VERSION),y) +AT91BOOTSTRAP3_LICENSE = MIT +AT91BOOTSTRAP3_LICENSE_FILES = LICENSES/MIT.txt +else ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_LATEST_VERSION_3X),y) +AT91BOOTSTRAP3_LICENSE = Atmel License +endif + +AT91BOOTSTRAP3_CPE_ID_VENDOR = linux4sam +AT91BOOTSTRAP3_CPE_ID_PRODUCT = at91bootstrap + +AT91BOOTSTRAP3_INSTALL_IMAGES = YES +AT91BOOTSTRAP3_INSTALL_TARGET = NO + +ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_NEEDS_PYTHON3),y) +AT91BOOTSTRAP3_DEPENDENCIES += host-python3 +endif + +AT91BOOTSTRAP3_CUSTOM_PATCH_DIR = \ + $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_PATCH_DIR)) + +AT91BOOTSTRAP3_MAKE_OPTS = CROSS_COMPILE=$(TARGET_CROSS) DESTDIR=$(BINARIES_DIR) + +ifneq ($(AT91BOOTSTRAP3_CUSTOM_PATCH_DIR),) +define AT91BOOTSTRAP3_APPLY_CUSTOM_PATCHES + $(APPLY_PATCHES) $(@D) $(AT91BOOTSTRAP3_CUSTOM_PATCH_DIR) \*.patch +endef + +AT91BOOTSTRAP3_POST_PATCH_HOOKS += AT91BOOTSTRAP3_APPLY_CUSTOM_PATCHES +endif + +define AT91BOOTSTRAP3_BUILD_CMDS + $(MAKE) $(AT91BOOTSTRAP3_MAKE_OPTS) -C $(@D) +endef + +define AT91BOOTSTRAP3_INSTALL_IMAGES_CMDS + cp $(wildcard $(@D)/build/binaries/*.bin $(@D)/binaries/*.bin) $(BINARIES_DIR) +endef + +ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_USE_DEFCONFIG),y) +AT91BOOTSTRAP3_KCONFIG_DEFCONFIG = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG))_defconfig +else ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_USE_CUSTOM_CONFIG),y) +AT91BOOTSTRAP3_KCONFIG_FILE = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE)) +endif + +AT91BOOTSTRAP3_KCONFIG_EDITORS = menuconfig xconfig gconfig +AT91BOOTSTRAP3_KCONFIG_OPTS = $(AT91BOOTSTRAP3_MAKE_OPTS) + +# Checks to give errors that the user can understand +# Must be before we call to kconfig-package +ifeq ($(BR_BUILDING),y) + +ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_USE_DEFCONFIG),y) +# We must use the user-supplied kconfig value, because +# AT91BOOTSTRAP3_KCONFIG_DEFCONFIG will at least contain +# the trailing _defconfig +ifeq ($(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG)),) +$(error No at91bootstrap3 defconfig name specified, check your BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG setting) +endif +endif + +ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_USE_CUSTOM_CONFIG),y) +ifeq ($(AT91BOOTSTRAP3_KCONFIG_FILE),) +$(error No at91bootstrap3 configuration file specified, check your BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE setting) +endif +endif + +ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT),y) +ifeq ($(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL)),) +$(error No custom at91bootstrap3 repository URL specified. Check your BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL setting) +endif +ifeq ($(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION)),) +$(error No custom at91bootstrap3 repository version specified. Check your BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION setting) +endif +endif + +ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL),y) +ifeq ($(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION)),) +$(error No custom AT91Bootstrap3 tarball specified. Check your BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION setting) +endif # qstrip BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION +endif # BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL + +endif # BR_BUILDING + +$(eval $(kconfig-package)) diff --git a/boot/at91dataflashboot/0001-do-not-install.patch b/boot/at91dataflashboot/0001-do-not-install.patch new file mode 100644 index 000000000..41d97ad20 --- /dev/null +++ b/boot/at91dataflashboot/0001-do-not-install.patch @@ -0,0 +1,22 @@ +Disable the automatic installation of at91dataflashboot since it tries +to install things to /tftpboot, which is not possible when not +building as root. + +Signed-off-by: Thomas Petazzoni +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: at91dataflashboot-1.05/Makefile +=================================================================== +--- at91dataflashboot-1.05.orig/Makefile ++++ at91dataflashboot-1.05/Makefile +@@ -40,7 +40,7 @@ + + I=config.h com.h dataflash.h embedded_services.h main.h stdio.h include/AT91RM9200.h include/lib_AT91RM9200.h + +-all: clean $(BINNAME) $(LSSNAME) install ++all: clean $(BINNAME) $(LSSNAME) + $(SIZE) $(OUTNAME) + + # C objects here diff --git a/boot/at91dataflashboot/0002-eabi-fixes.patch b/boot/at91dataflashboot/0002-eabi-fixes.patch new file mode 100644 index 000000000..e38905f7c --- /dev/null +++ b/boot/at91dataflashboot/0002-eabi-fixes.patch @@ -0,0 +1,43 @@ +Get at91dataflashboot to build with EABI toolchains, by providing the +__aeabi_uidiv and __aeabi_uidivmod symbols. The code is based on +U-Boot's code. + +Signed-off-by: Thomas Petazzoni +--- + _udivsi3.S | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +Index: DataflashBoot-1.05/_udivsi3.S +=================================================================== +--- DataflashBoot-1.05.orig/_udivsi3.S ++++ DataflashBoot-1.05/_udivsi3.S +@@ -12,8 +12,11 @@ + .text + .globl __udivsi3 + .type __udivsi3 ,function ++ .globl __aeabi_uidiv ++ .type __aeabi_uidiv ,function + .align 0 + __udivsi3 : ++ __aeabi_uidiv: + cmp divisor, #0 + beq Ldiv0 + mov curbit, #1 +@@ -68,6 +71,17 @@ + mov r0, #0 @ about as wrong as it could be + ldmia sp!, {pc} + .size __udivsi3 , . - __udivsi3 ++ ++.globl __aeabi_uidivmod ++__aeabi_uidivmod: ++ ++ stmfd sp!, {r0, r1, ip, lr} ++ bl __aeabi_uidiv ++ ldmfd sp!, {r1, r2, ip, lr} ++ mul r3, r0, r2 ++ sub r1, r1, r3 ++ mov pc, lr ++ + /* # 235 "libgcc1.S" */ + /* # 320 "libgcc1.S" */ + /* # 421 "libgcc1.S" */ diff --git a/boot/at91dataflashboot/Config.in b/boot/at91dataflashboot/Config.in new file mode 100644 index 000000000..8b37d8440 --- /dev/null +++ b/boot/at91dataflashboot/Config.in @@ -0,0 +1,3 @@ +config BR2_TARGET_AT91DATAFLASHBOOT + bool "AT91 DataFlashBoot" + depends on BR2_arm && BR2_arm926t diff --git a/boot/at91dataflashboot/at91dataflashboot.hash b/boot/at91dataflashboot/at91dataflashboot.hash new file mode 100644 index 000000000..57df4e538 --- /dev/null +++ b/boot/at91dataflashboot/at91dataflashboot.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 2cfeb6a9236e1a743c8010f05e504dbc92169ef42d9a6cf7948954a577bfc386 DataflashBoot-1.05.tar.bz2 diff --git a/boot/at91dataflashboot/at91dataflashboot.mk b/boot/at91dataflashboot/at91dataflashboot.mk new file mode 100644 index 000000000..0ad8b6fc4 --- /dev/null +++ b/boot/at91dataflashboot/at91dataflashboot.mk @@ -0,0 +1,22 @@ +################################################################################ +# +# at91dataflashboot +# +################################################################################ + +AT91DATAFLASHBOOT_VERSION = 1.05 +AT91DATAFLASHBOOT_SOURCE = DataflashBoot-$(AT91DATAFLASHBOOT_VERSION).tar.bz2 +AT91DATAFLASHBOOT_SITE = ftp://www.at91.com/pub/buildroot + +AT91DATAFLASHBOOT_INSTALL_TARGET = NO +AT91DATAFLASHBOOT_INSTALL_IMAGES = YES + +define AT91DATAFLASHBOOT_BUILD_CMDS + make -C $(@D) CROSS_COMPILE=$(TARGET_CROSS) +endef + +define AT91DATAFLASHBOOT_INSTALL_IMAGES_CMDS + cp $(@D)/DataflashBoot-$(AT91DATAFLASHBOOT_VERSION).bin $(BINARIES_DIR) +endef + +$(eval $(generic-package)) diff --git a/boot/barebox/Config.in b/boot/barebox/Config.in new file mode 100644 index 000000000..726f0f980 --- /dev/null +++ b/boot/barebox/Config.in @@ -0,0 +1,85 @@ +config BR2_TARGET_BAREBOX + bool "Barebox" + help + The Barebox bootloader, formerly known as U-Boot v2. + + http://www.barebox.org + +if BR2_TARGET_BAREBOX +choice + prompt "version" + help + Select the specific Barebox version you want to use + +config BR2_TARGET_BAREBOX_LATEST_VERSION + bool "2022.04.0" + +config BR2_TARGET_BAREBOX_CUSTOM_VERSION + bool "Custom version" + help + This option allows to use a specific official versions + +config BR2_TARGET_BAREBOX_CUSTOM_TARBALL + bool "Custom tarball" + +config BR2_TARGET_BAREBOX_CUSTOM_GIT + bool "Custom Git repository" + +endchoice + +config BR2_TARGET_BAREBOX_CUSTOM_VERSION_VALUE + string "Barebox version" + depends on BR2_TARGET_BAREBOX_CUSTOM_VERSION + +if BR2_TARGET_BAREBOX_CUSTOM_TARBALL + +config BR2_TARGET_BAREBOX_CUSTOM_TARBALL_LOCATION + string "URL of custom Barebox tarball" + +endif + +config BR2_TARGET_BAREBOX_VERSION + string + default "2022.04.0" if BR2_TARGET_BAREBOX_LATEST_VERSION + default BR2_TARGET_BAREBOX_CUSTOM_VERSION_VALUE if BR2_TARGET_BAREBOX_CUSTOM_VERSION + default "custom" if BR2_TARGET_BAREBOX_CUSTOM_TARBALL + default BR2_TARGET_BAREBOX_CUSTOM_GIT_VERSION if BR2_TARGET_BAREBOX_CUSTOM_GIT + +config BR2_TARGET_BAREBOX_CUSTOM_PATCH_DIR + string "custom patch dir" + help + If your board requires custom patches, add the path to the + directory containing the patches here. The patches must be + named barebox--.patch. + + Most users may leave this empty + +if BR2_TARGET_BAREBOX_CUSTOM_GIT + +config BR2_TARGET_BAREBOX_CUSTOM_GIT_REPO_URL + string "URL of custom Git repository" + +config BR2_TARGET_BAREBOX_CUSTOM_GIT_VERSION + string "Custom Git version" + +endif + +source boot/barebox/barebox/Config.in + +menuconfig BR2_TARGET_BAREBOX_AUX + bool "Build barebox with an auxiliary config" + help + Build barebox with an auxiliary configuration. + + Useful for building an SPL (Secondary Program Loader) in + addition to the traditional TPL (Tertiary Program Loader), + such as the X-Loader or MLO for Texas Instruments + processors. + +if BR2_TARGET_BAREBOX_AUX + +source boot/barebox/barebox-aux/Config.in + +endif + +endif diff --git a/boot/barebox/barebox-aux/Config.in b/boot/barebox/barebox-aux/Config.in new file mode 100644 index 000000000..d39d24f76 --- /dev/null +++ b/boot/barebox/barebox-aux/Config.in @@ -0,0 +1,75 @@ +choice + prompt "Barebox configuration" + default BR2_TARGET_BAREBOX_AUX_USE_DEFCONFIG + +config BR2_TARGET_BAREBOX_AUX_USE_DEFCONFIG + bool "Using a defconfig" + +config BR2_TARGET_BAREBOX_AUX_USE_CUSTOM_CONFIG + bool "Using a custom config file" + +endchoice + +config BR2_TARGET_BAREBOX_AUX_BOARD_DEFCONFIG + string "board defconfig" + depends on BR2_TARGET_BAREBOX_AUX_USE_DEFCONFIG + help + Name of the board for which Barebox should be built, without + the _defconfig suffix. + +config BR2_TARGET_BAREBOX_AUX_CUSTOM_CONFIG_FILE + string "Configuration file path" + depends on BR2_TARGET_BAREBOX_AUX_USE_CUSTOM_CONFIG + help + Path to the barebox configuration file + +config BR2_TARGET_BAREBOX_AUX_CONFIG_FRAGMENT_FILES + string "Additional configuration fragment files" + help + A space-separated list of configuration fragment files, + that will be merged to the main Barebox configuration file. + +config BR2_TARGET_BAREBOX_AUX_IMAGE_FILE + string "Image file names" + help + Space-separated list of barebox images which will be copied to + the images directory. + + If left empty, defaults to: + - barebox.bin for barebox versions older than 2012.10. + - barebox-flash-image for later versions. + +config BR2_TARGET_BAREBOX_AUX_CUSTOM_ENV + bool "Generate an environment image" + help + Generate a custom environment image. This environment will + contain the variables and scripts to be used at boot by + barebox. + +config BR2_TARGET_BAREBOX_AUX_CUSTOM_ENV_PATH + string "Environment path" + depends on BR2_TARGET_BAREBOX_AUX_CUSTOM_ENV + help + Path to the directory containing the custom barebox + environment. Depending on your setup, it will probably be + based on either the content of the defaultenv or + defaultenv-2 directories in the barebox source code, plus + the additions needed. The output will be an image in the + barebox devfs format, stored in the images directory, with + the same name as the directory name given here. + +config BR2_TARGET_BAREBOX_AUX_CUSTOM_EMBEDDED_ENV_PATH + string "Embedded environment path" + help + If this option is not empty, it is the path to a custom + embedded barebox environment. This image will be used when + the environment found in the environment sector is + invalid. This option sets the barebox Kconfig option + CONFIG_DEFAULT_ENVIRONMENT_PATH to the specified path. This + way it is possible to use Buildroot variables like + TOPDIR etc. to refer to the custom environment. + + Depending on your setup, the custom embedded environment + will probably be based on either the content of the + defaultenv or defaultenv-2 directories in the barebox source + code. diff --git a/boot/barebox/barebox-aux/barebox-aux.hash b/boot/barebox/barebox-aux/barebox-aux.hash new file mode 120000 index 000000000..b6462b808 --- /dev/null +++ b/boot/barebox/barebox-aux/barebox-aux.hash @@ -0,0 +1 @@ +../barebox.hash \ No newline at end of file diff --git a/boot/barebox/barebox-aux/barebox-aux.mk b/boot/barebox/barebox-aux/barebox-aux.mk new file mode 100644 index 000000000..fb287d361 --- /dev/null +++ b/boot/barebox/barebox-aux/barebox-aux.mk @@ -0,0 +1,8 @@ +################################################################################ +# +# barebox-aux +# +################################################################################ + +# Instantiate the auxiliary barebox package +$(eval $(barebox-package)) diff --git a/boot/barebox/barebox.hash b/boot/barebox/barebox.hash new file mode 100644 index 000000000..3a92f7fd8 --- /dev/null +++ b/boot/barebox/barebox.hash @@ -0,0 +1,8 @@ +# From https://www.barebox.org/download/barebox-2021.12.0.tar.bz2.md5 +md5 e4970687cf7943eadf71b1ae6d344ff7 barebox-2022.04.0.tar.bz2 + +# Locally calculated +sha256 f751b506deb0a5d82682a85cf65e329dd562e48ea057533dc5c8876120a09ebc barebox-2022.04.0.tar.bz2 + +# License files, locally computed +sha256 ab1122aa9f9073ad1ec824edcd970b16a6a7881a34a18fd56c080debb2dca5d4 COPYING diff --git a/boot/barebox/barebox.mk b/boot/barebox/barebox.mk new file mode 100644 index 000000000..da151d3c2 --- /dev/null +++ b/boot/barebox/barebox.mk @@ -0,0 +1,178 @@ +################################################################################ +# +# barebox +# +################################################################################ + +################################################################################ +# inner-barebox-package -- generates the KConfig logic and make targets needed +# to support a barebox package. All barebox packages are built from the same +# source (origin, version and patches). The remainder of the package +# configuration is unique to each barebox package. +# +# argument 1 is the uppercase package name (used for variable name-space) +################################################################################ + +define inner-barebox-package + +$(1)_VERSION = $$(call qstrip,$$(BR2_TARGET_BAREBOX_VERSION)) + +ifeq ($$(BR2_TARGET_BAREBOX_CUSTOM_TARBALL),y) +# Handle custom Barebox tarballs as specified by the configuration +$(1)_TARBALL = $$(call qstrip,$$(BR2_TARGET_BAREBOX_CUSTOM_TARBALL_LOCATION)) +$(1)_SITE = $$(patsubst %/,%,$$(dir $$($(1)_TARBALL))) +$(1)_SOURCE = $$(notdir $$($(1)_TARBALL)) +else ifeq ($$(BR2_TARGET_BAREBOX_CUSTOM_GIT),y) +$(1)_SITE = $$(call qstrip,$$(BR2_TARGET_BAREBOX_CUSTOM_GIT_REPO_URL)) +$(1)_SITE_METHOD = git +# Override the default value of _SOURCE to 'barebox-*' so that it is not +# downloaded a second time for barebox-aux; also alows avoiding the hash +# check: +$(1)_SOURCE = barebox-$$($(1)_VERSION)$$(BR_FMT_VERSION_git).tar.gz +else +# Handle stable official Barebox versions +$(1)_SOURCE = barebox-$$($(1)_VERSION).tar.bz2 +$(1)_SITE = https://www.barebox.org/download +endif + +$(1)_DL_SUBDIR = barebox + +$(1)_DEPENDENCIES = host-lzop +$(1)_LICENSE = GPL-2.0 with exceptions +ifeq ($(BR2_TARGET_BAREBOX_LATEST_VERSION),y) +$(1)_LICENSE_FILES = COPYING +endif + +$(1)_CUSTOM_EMBEDDED_ENV_PATH = $$(call qstrip,$$(BR2_TARGET_$(1)_CUSTOM_EMBEDDED_ENV_PATH)) + +ifneq ($$(call qstrip,$$(BR2_TARGET_BAREBOX_CUSTOM_PATCH_DIR)),) +define $(1)_APPLY_CUSTOM_PATCHES + $$(APPLY_PATCHES) $$(@D) \ + $$(BR2_TARGET_BAREBOX_CUSTOM_PATCH_DIR) \*.patch +endef + +$(1)_POST_PATCH_HOOKS += $(1)_APPLY_CUSTOM_PATCHES +endif + +$(1)_INSTALL_IMAGES = YES +ifneq ($$(BR2_TARGET_$(1)_BAREBOXENV),y) +$(1)_INSTALL_TARGET = NO +endif + +ifeq ($$(NORMALIZED_ARCH),i386) +$(1)_ARCH = x86 +else ifeq ($$(NORMALIZED_ARCH),x86_64) +$(1)_ARCH = x86 +else ifeq ($$(NORMALIZED_ARCH),powerpc) +$(1)_ARCH = ppc +else ifeq ($$(NORMALIZED_ARCH),arm64) +$(1)_ARCH = arm +else +$(1)_ARCH = $$(NORMALIZED_ARCH) +endif + +$(1)_MAKE_FLAGS = ARCH=$$($(1)_ARCH) CROSS_COMPILE="$$(TARGET_CROSS)" +$(1)_MAKE_ENV = $$(TARGET_MAKE_ENV) + +ifeq ($$(BR2_TARGET_$(1)_USE_DEFCONFIG),y) +$(1)_KCONFIG_DEFCONFIG = $$(call qstrip,$$(BR2_TARGET_$(1)_BOARD_DEFCONFIG))_defconfig +else ifeq ($$(BR2_TARGET_$(1)_USE_CUSTOM_CONFIG),y) +$(1)_KCONFIG_FILE = $$(call qstrip,$$(BR2_TARGET_$(1)_CUSTOM_CONFIG_FILE)) +endif + +$(1)_KCONFIG_FRAGMENT_FILES = $$(call qstrip,$$(BR2_TARGET_$(1)_CONFIG_FRAGMENT_FILES)) +$(1)_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig +$(1)_KCONFIG_OPTS = $$($(1)_MAKE_FLAGS) + +$(1)_KCONFIG_DEPENDENCIES = \ + $(BR2_BISON_HOST_DEPENDENCY) \ + $(BR2_FLEX_HOST_DEPENDENCY) + +ifeq ($$(BR2_TARGET_$(1)_CUSTOM_ENV),y) +$(1)_ENV_NAME = $$(notdir $$(call qstrip,\ + $$(BR2_TARGET_$(1)_CUSTOM_ENV_PATH))) +define $(1)_BUILD_CUSTOM_ENV + $$(@D)/scripts/bareboxenv -s \ + $$(call qstrip, $$(BR2_TARGET_$(1)_CUSTOM_ENV_PATH)) \ + $$(@D)/$$($(1)_ENV_NAME) +endef +define $(1)_INSTALL_CUSTOM_ENV + cp $$(@D)/$$($(1)_ENV_NAME) $$(BINARIES_DIR) +endef +endif + +ifneq ($$($(1)_CUSTOM_EMBEDDED_ENV_PATH),) +define $(1)_KCONFIG_FIXUP_CUSTOM_EMBEDDED_ENV_PATH + $$(call KCONFIG_ENABLE_OPT,CONFIG_DEFAULT_ENVIRONMENT) + $$(call KCONFIG_SET_OPT,CONFIG_DEFAULT_ENVIRONMENT_PATH,"$$($(1)_CUSTOM_EMBEDDED_ENV_PATH)") +endef +endif + +define $(1)_KCONFIG_FIXUP_BAREBOXENV + $$(if $$(BR2_TARGET_$(1)_BAREBOXENV),\ + $$(call KCONFIG_ENABLE_OPT,CONFIG_BAREBOXENV_TARGET),\ + $$(call KCONFIG_DISABLE_OPT,CONFIG_BAREBOXENV_TARGET)) +endef + +define $(1)_KCONFIG_FIXUP_CMDS + $$($(1)_KCONFIG_FIXUP_CUSTOM_EMBEDDED_ENV_PATH) + $$($(1)_KCONFIG_FIXUP_BAREBOXENV) +endef + +define $(1)_BUILD_CMDS + $$($(1)_BUILD_BAREBOXENV_CMDS) + $$(TARGET_MAKE_ENV) $$(MAKE) $$($(1)_MAKE_FLAGS) -C $$(@D) + $$($(1)_BUILD_CUSTOM_ENV) +endef + +$(1)_IMAGE_FILES = $$(call qstrip,$$(BR2_TARGET_$(1)_IMAGE_FILE)) + +define $(1)_INSTALL_IMAGES_CMDS + if test -n "$$($(1)_IMAGE_FILES)"; then \ + cp -L $$(foreach image,$$($(1)_IMAGE_FILES),$$(@D)/$$(image)) $$(BINARIES_DIR) ; \ + elif test -h $$(@D)/barebox-flash-image ; then \ + cp -L $$(@D)/barebox-flash-image $$(BINARIES_DIR)/barebox.bin ; \ + else \ + cp $$(@D)/barebox.bin $$(BINARIES_DIR);\ + fi + $$($(1)_INSTALL_CUSTOM_ENV) +endef + +# Starting with barebox v2020.09.0, the kconfig used calls the +# cross-compiler to check its capabilities. So we need the +# toolchain before we can call the configurators. +$(1)_KCONFIG_DEPENDENCIES += toolchain + +ifeq ($$(BR2_TARGET_$(1)_BAREBOXENV),y) +define $(1)_INSTALL_TARGET_CMDS + cp $$(@D)/scripts/bareboxenv-target $$(TARGET_DIR)/usr/bin/bareboxenv +endef +endif + +# Checks to give errors that the user can understand +# Must be before we call to kconfig-package +ifeq ($$(BR2_TARGET_$(1))$$(BR_BUILDING),yy) +# We must use the user-supplied kconfig value, because +# $(1)_KCONFIG_DEFCONFIG will at least contain the +# trailing _defconfig +ifeq ($$(or $$($(1)_KCONFIG_FILE),$$(call qstrip,$$(BR2_TARGET_$(1)_BOARD_DEFCONFIG))),) +$$(error No Barebox config. Check your BR2_TARGET_$(1)_BOARD_DEFCONFIG or BR2_TARGET_$(1)_CUSTOM_CONFIG_FILE settings) +endif +endif + +$$(eval $$(kconfig-package)) + +endef + +################################################################################ +# barebox-package -- the target generator macro for barebox packages +################################################################################ + +barebox-package=$(call inner-barebox-package,$(call UPPERCASE,$(pkgname))) + +include boot/barebox/barebox/barebox.mk +include boot/barebox/barebox-aux/barebox-aux.mk + +ifeq ($(BR2_TARGET_BAREBOX)$(BR2_TARGET_BAREBOX_LATEST_VERSION),y) +BR_NO_CHECK_HASH_FOR += $(BAREBOX_SOURCE) +endif diff --git a/boot/barebox/barebox/Config.in b/boot/barebox/barebox/Config.in new file mode 100644 index 000000000..958e294e4 --- /dev/null +++ b/boot/barebox/barebox/Config.in @@ -0,0 +1,80 @@ +choice + prompt "Barebox configuration" + default BR2_TARGET_BAREBOX_USE_DEFCONFIG + +config BR2_TARGET_BAREBOX_USE_DEFCONFIG + bool "Using a defconfig" + +config BR2_TARGET_BAREBOX_USE_CUSTOM_CONFIG + bool "Using a custom config file" + +endchoice + +config BR2_TARGET_BAREBOX_BOARD_DEFCONFIG + string "board defconfig" + depends on BR2_TARGET_BAREBOX_USE_DEFCONFIG + help + Name of the board for which Barebox should be built, without + the _defconfig suffix. + +config BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE + string "Configuration file path" + depends on BR2_TARGET_BAREBOX_USE_CUSTOM_CONFIG + help + Path to the barebox configuration file + +config BR2_TARGET_BAREBOX_CONFIG_FRAGMENT_FILES + string "Additional configuration fragment files" + help + A space-separated list of configuration fragment files, + that will be merged to the main Barebox configuration file. + +config BR2_TARGET_BAREBOX_IMAGE_FILE + string "Image file names" + help + Space-separated list of barebox images which will be copied to + the images directory. + + If left empty, defaults to: + - barebox.bin for barebox versions older than 2012.10. + - barebox-flash-image for later versions. + +config BR2_TARGET_BAREBOX_BAREBOXENV + bool "bareboxenv tool in target" + help + Install bareboxenv tool in target. + +config BR2_TARGET_BAREBOX_CUSTOM_ENV + bool "Generate an environment image" + help + Generate a custom environment image. This environment will + contain the variables and scripts to be used at boot by + barebox. + +config BR2_TARGET_BAREBOX_CUSTOM_ENV_PATH + string "Environment path" + depends on BR2_TARGET_BAREBOX_CUSTOM_ENV + help + Path to the directory containing the custom barebox + environment. Depending on your setup, it will probably be + based on either the content of the defaultenv or + defaultenv-2 directories in the barebox source code, plus + the additions needed. The output will be an image in the + barebox devfs format, stored in the images directory, with + the same name as the directory name given here. + +config BR2_TARGET_BAREBOX_CUSTOM_EMBEDDED_ENV_PATH + string "Embedded environment path" + help + If this option is not empty, it is the path to a custom + embedded barebox environment. This image will be used when + the environment found in the environment sector is + invalid. This option sets the barebox Kconfig option + CONFIG_DEFAULT_ENVIRONMENT_PATH to the specified path. This + way it is possible to use Buildroot variables like + TOPDIR etc. to refer to the custom environment. + + Depending on your setup, the custom embedded environment + will probably be based on either the content of the + defaultenv or defaultenv-2 directories in the barebox source + code. diff --git a/boot/barebox/barebox/barebox.hash b/boot/barebox/barebox/barebox.hash new file mode 120000 index 000000000..b6462b808 --- /dev/null +++ b/boot/barebox/barebox/barebox.hash @@ -0,0 +1 @@ +../barebox.hash \ No newline at end of file diff --git a/boot/barebox/barebox/barebox.mk b/boot/barebox/barebox/barebox.mk new file mode 100644 index 000000000..6a5a80de3 --- /dev/null +++ b/boot/barebox/barebox/barebox.mk @@ -0,0 +1,8 @@ +################################################################################ +# +# barebox +# +################################################################################ + +# Instantiate the barebox package +$(eval $(barebox-package)) diff --git a/boot/beaglev-ddrinit/Config.in b/boot/beaglev-ddrinit/Config.in new file mode 100644 index 000000000..7ca92a7b9 --- /dev/null +++ b/boot/beaglev-ddrinit/Config.in @@ -0,0 +1,9 @@ +config BR2_TARGET_BEAGLEV_DDRINIT + bool "beaglev-ddrinit" + depends on BR2_riscv + depends on BR2_HOSTARCH = "x86_64" # host-riscv64-elf-toolchain + help + This package builds the DDRinit firmware used on the BeagleV + platform. + + https://github.com/starfive-tech/beagle_ddrinit diff --git a/boot/beaglev-ddrinit/beaglev-ddrinit.hash b/boot/beaglev-ddrinit/beaglev-ddrinit.hash new file mode 100644 index 000000000..d4235904d --- /dev/null +++ b/boot/beaglev-ddrinit/beaglev-ddrinit.hash @@ -0,0 +1,3 @@ +# Locally computed +sha256 08a49355f89fc2cb4f5101183339c9c6f86b722545d0abbc319aab26a511dad7 beaglev-ddrinit-8d6318acfe71e790c983b34448c9abfcfcec3ed8.tar.gz +sha256 284d26192537710910ec1f112ec5f4c981601ae23702391986d6ce0b8ba90813 LICENSE diff --git a/boot/beaglev-ddrinit/beaglev-ddrinit.mk b/boot/beaglev-ddrinit/beaglev-ddrinit.mk new file mode 100644 index 000000000..d9707de61 --- /dev/null +++ b/boot/beaglev-ddrinit/beaglev-ddrinit.mk @@ -0,0 +1,28 @@ +################################################################################ +# +# beaglev-ddrinit +# +################################################################################ + +# Commit on the 'starfive' branch +BEAGLEV_DDRINIT_VERSION = 8d6318acfe71e790c983b34448c9abfcfcec3ed8 +BEAGLEV_DDRINIT_SITE = $(call github,starfive-tech,beagle_ddrinit,$(BEAGLEV_DDRINIT_VERSION)) +BEAGLEV_DDRINIT_INSTALL_TARGET = NO +BEAGLEV_DDRINIT_INSTALL_IMAGES = YES +BEAGLEV_DDRINIT_DEPENDENCIES = host-riscv64-elf-toolchain +BEAGLEV_DDRINIT_LICENSE = GPL-2.0+ +BEAGLEV_DDRINIT_LICENSE_FILES = LICENSE + +define BEAGLEV_DDRINIT_BUILD_CMDS + $(MAKE) -C $(@D)/build \ + CROSS_COMPILE=$(HOST_DIR)/bin/riscv64-unknown-elf- \ + SUFFIX=buildroot \ + GIT_VERSION=$(BEAGLEV_DDRINIT_VERSION) +endef + +define BEAGLEV_DDRINIT_INSTALL_IMAGES_CMDS + $(INSTALL) -D -m 0644 $(@D)/build/ddrinit-2133-buildroot.bin.out \ + $(BINARIES_DIR)/ddrinit-2133-buildroot.bin.out +endef + +$(eval $(generic-package)) diff --git a/boot/beaglev-secondboot/Config.in b/boot/beaglev-secondboot/Config.in new file mode 100644 index 000000000..a9695fc13 --- /dev/null +++ b/boot/beaglev-secondboot/Config.in @@ -0,0 +1,9 @@ +config BR2_TARGET_BEAGLEV_SECONDBOOT + bool "beaglev-secondboot" + depends on BR2_riscv + depends on BR2_HOSTARCH = "x86_64" # host-riscv64-elf-toolchain + help + This package builds the SecondBoot firmware used on the + BeagleV platform. + + https://github.com/starfive-tech/beagle_secondBoot diff --git a/boot/beaglev-secondboot/beaglev-secondboot.hash b/boot/beaglev-secondboot/beaglev-secondboot.hash new file mode 100644 index 000000000..d35d3a385 --- /dev/null +++ b/boot/beaglev-secondboot/beaglev-secondboot.hash @@ -0,0 +1,3 @@ +# Locally computed +sha256 bf152500e9f7e467bb1dee95a2291f9ecfaaebe1d64b93f6d403cfaf50e540e0 beaglev-secondboot-e17302063c9a4b74475b18ff24dd149c27257354.tar.gz +sha256 284d26192537710910ec1f112ec5f4c981601ae23702391986d6ce0b8ba90813 LICENSE diff --git a/boot/beaglev-secondboot/beaglev-secondboot.mk b/boot/beaglev-secondboot/beaglev-secondboot.mk new file mode 100644 index 000000000..7e5f5681f --- /dev/null +++ b/boot/beaglev-secondboot/beaglev-secondboot.mk @@ -0,0 +1,28 @@ +################################################################################ +# +# beaglev-secondboot +# +################################################################################ + +# Commit on the 'starfive' branch +BEAGLEV_SECONDBOOT_VERSION = e17302063c9a4b74475b18ff24dd149c27257354 +BEAGLEV_SECONDBOOT_SITE = $(call github,starfive-tech,beagle_secondBoot,$(BEAGLEV_SECONDBOOT_VERSION)) +BEAGLEV_SECONDBOOT_INSTALL_TARGET = NO +BEAGLEV_SECONDBOOT_INSTALL_IMAGES = YES +BEAGLEV_SECONDBOOT_DEPENDENCIES = host-riscv64-elf-toolchain +BEAGLEV_SECONDBOOT_LICENSE = GPL-2.0+ +BEAGLEV_SECONDBOOT_LICENSE_FILES = LICENSE + +define BEAGLEV_SECONDBOOT_BUILD_CMDS + $(MAKE) -C $(@D)/build \ + CROSS_COMPILE=$(HOST_DIR)/bin/riscv64-unknown-elf- \ + SUFFIX=buildroot \ + GIT_VERSION=$(BEAGLEV_SECONDBOOT_VERSION) +endef + +define BEAGLEV_SECONDBOOT_INSTALL_IMAGES_CMDS + $(INSTALL) -D -m 0644 $(@D)/build/bootloader-JH7100-buildroot.bin.out \ + $(BINARIES_DIR)/bootloader-JH7100-buildroot.bin.out +endef + +$(eval $(generic-package)) diff --git a/boot/binaries-marvell/Config.in b/boot/binaries-marvell/Config.in new file mode 100644 index 000000000..80fbecb27 --- /dev/null +++ b/boot/binaries-marvell/Config.in @@ -0,0 +1,12 @@ +config BR2_TARGET_BINARIES_MARVELL + bool "binaries-marvell" + depends on BR2_aarch64 + help + Some systems, including Marvell Armada SoC, have a separate + System Control Processor (SCP) for power management, clocks, + reset and system control. ATF Boot Loader stage 2 (BL2) loads + optional SCP_BL2 image into a platform-specific region + of secure memory. This package downloads and installs such + firmware, which is needed to build ATF. + + https://github.com/MarvellEmbeddedProcessors/binaries-marvell/ diff --git a/boot/binaries-marvell/binaries-marvell.hash b/boot/binaries-marvell/binaries-marvell.hash new file mode 100644 index 000000000..654fb94ec --- /dev/null +++ b/boot/binaries-marvell/binaries-marvell.hash @@ -0,0 +1,3 @@ +# Locally calculated +sha256 d818c95bcd4d5c026238d6e554151184ed7fea15bce1f861f9068b97b4cd320a binaries-marvell-c5d3ef2b63ba66d8717ecbe679fd2e639cde88ee.tar.gz +sha256 e6d08ef60068ee72c68835001a24eb832dcba27cac0dde0f179dfb428be050ca README.md diff --git a/boot/binaries-marvell/binaries-marvell.mk b/boot/binaries-marvell/binaries-marvell.mk new file mode 100644 index 000000000..1a27fa987 --- /dev/null +++ b/boot/binaries-marvell/binaries-marvell.mk @@ -0,0 +1,20 @@ +################################################################################ +# +# binaries-marvell +# +################################################################################ + +# This is version binaries-marvell-armada-18.12 +BINARIES_MARVELL_VERSION = c5d3ef2b63ba66d8717ecbe679fd2e639cde88ee +BINARIES_MARVELL_SITE = $(call github,MarvellEmbeddedProcessors,binaries-marvell,$(BINARIES_MARVELL_VERSION)) + +BINARIES_MARVELL_LICENSE = GPL-2.0 with freertos-exception-2.0 +BINARIES_MARVELL_LICENSE_FILES = README.md + +BINARIES_MARVELL_INSTALL_IMAGES = YES + +define BINARIES_MARVELL_INSTALL_IMAGES_CMDS + $(INSTALL) -D -m 0644 $(@D)/mrvl_scp_bl2.img $(BINARIES_DIR)/scp-fw.bin +endef + +$(eval $(generic-package)) diff --git a/boot/boot-wrapper-aarch64/Config.in b/boot/boot-wrapper-aarch64/Config.in new file mode 100644 index 000000000..cf7389282 --- /dev/null +++ b/boot/boot-wrapper-aarch64/Config.in @@ -0,0 +1,46 @@ +comment "boot-wrapper-aarch64 needs a Linux kernel to be built" + depends on BR2_aarch64 + depends on !BR2_LINUX_KERNEL + +config BR2_TARGET_BOOT_WRAPPER_AARCH64 + bool "boot-wrapper-aarch64" + depends on BR2_aarch64 + depends on BR2_LINUX_KERNEL + help + The boot-wrapper-aarch64 is a small bootloader that makes it + possible to start an Aarch64 kernel inside the available + software simulators for the Aarch64 architecture. + + git://git.kernel.org/pub/scm/linux/kernel/git/mark/boot-wrapper-aarch64.git + +if BR2_TARGET_BOOT_WRAPPER_AARCH64 + +config BR2_TARGET_BOOT_WRAPPER_AARCH64_DTS + string "Device Tree Source name" + default "" + help + Name of the Device Tree Source file to use to generate the + Device Tree Blob that will be embedded in the image + generated by the boot wrapper. Valid names are the .dts + files from arch/arm64/boot/dts/ in the kernel source + tree. The name must be specified without the .dts suffix. + +config BR2_TARGET_BOOT_WRAPPER_AARCH64_BOOTARGS + string "Kernel bootargs" + default "" + help + Kernel bootargs to embed inside the image generated by the + boot wrapper. + +config BR2_TARGET_BOOT_WRAPPER_AARCH64_PSCI + bool "Boot secondary SMP cores using PSCI" + help + Boot secondary SMP cores using PSCI firmware calls. If + disabled, the spin-table method is used instead. + +config BR2_TARGET_BOOT_WRAPPER_AARCH64_GICV3 + bool "Enable GICv3 instead of GICv2" + help + Boot using GICv3 instead of GICv2. + +endif diff --git a/boot/boot-wrapper-aarch64/boot-wrapper-aarch64.mk b/boot/boot-wrapper-aarch64/boot-wrapper-aarch64.mk new file mode 100644 index 000000000..30b352f8e --- /dev/null +++ b/boot/boot-wrapper-aarch64/boot-wrapper-aarch64.mk @@ -0,0 +1,50 @@ +################################################################################ +# +# boot-wrapper-aarch64 +# +################################################################################ + +BOOT_WRAPPER_AARCH64_VERSION = 8d5a765251d9113c3c0f9fa14de42a9e7486fe8a +BOOT_WRAPPER_AARCH64_SITE = https://git.kernel.org/pub/scm/linux/kernel/git/mark/boot-wrapper-aarch64.git +BOOT_WRAPPER_AARCH64_SITE_METHOD = git +BOOT_WRAPPER_AARCH64_LICENSE = BSD-3-Clause +BOOT_WRAPPER_AARCH64_LICENSE_FILES = LICENSE.txt +BOOT_WRAPPER_AARCH64_DEPENDENCIES = linux +BOOT_WRAPPER_AARCH64_INSTALL_IMAGES = YES + +# The Git repository does not have the generated configure script and +# Makefile. +BOOT_WRAPPER_AARCH64_AUTORECONF = YES + +BOOT_WRAPPER_AARCH64_DTB = $(LINUX_DIR)/arch/arm64/boot/dts/$(basename $(call qstrip,$(BR2_TARGET_BOOT_WRAPPER_AARCH64_DTS))).dtb + +BOOT_WRAPPER_AARCH64_CONF_OPTS = \ + --with-kernel-dir=$(LINUX_DIR) \ + --with-dtb=$(BOOT_WRAPPER_AARCH64_DTB) \ + --with-cmdline=$(BR2_TARGET_BOOT_WRAPPER_AARCH64_BOOTARGS) + +ifeq ($(BR2_TARGET_BOOT_WRAPPER_AARCH64_PSCI),y) +BOOT_WRAPPER_AARCH64_CONF_OPTS += --enable-psci +else +BOOT_WRAPPER_AARCH64_CONF_OPTS += --disable-psci +endif + +ifeq ($(BR2_TARGET_BOOT_WRAPPER_AARCH64_GICV3),y) +BOOT_WRAPPER_AARCH64_CONF_OPTS += --enable-gicv3 +endif + +# We need to convince the configure script that the Linux kernel tree +# exists, as well as the DTB and the kernel Image. Even though those +# are available on the build machine, the configure script uses +# AC_CHECK_FILE tests, which are always disabled in cross-compilation +# situations. +BOOT_WRAPPER_AARCH64_CONF_ENV = \ + $(call AUTOCONF_AC_CHECK_FILE_VAL,$(LINUX_DIR))=yes \ + $(call AUTOCONF_AC_CHECK_FILE_VAL,$(LINUX_DIR)$(BOOT_WRAPPER_AARCH64_DTB))=yes \ + $(call AUTOCONF_AC_CHECK_FILE_VAL,$(LINUX_DIR)/arch/arm64/boot/Image)=yes + +define BOOT_WRAPPER_AARCH64_INSTALL_IMAGES_CMDS + cp $(@D)/linux-system.axf $(BINARIES_DIR) +endef + +$(eval $(autotools-package)) diff --git a/boot/common.mk b/boot/common.mk new file mode 100644 index 000000000..3021e5194 --- /dev/null +++ b/boot/common.mk @@ -0,0 +1 @@ +include $(sort $(wildcard boot/*/*.mk)) diff --git a/boot/edk2/0001-MdeModulePkg-UsbBusDxe-fix-NOOPT-build-error.patch b/boot/edk2/0001-MdeModulePkg-UsbBusDxe-fix-NOOPT-build-error.patch new file mode 100644 index 000000000..f4f1b1565 --- /dev/null +++ b/boot/edk2/0001-MdeModulePkg-UsbBusDxe-fix-NOOPT-build-error.patch @@ -0,0 +1,48 @@ +From 59aa67f7a4d8efc564b46fe467aaf6eccec17183 Mon Sep 17 00:00:00 2001 +From: Gerd Hoffmann +Date: Mon, 20 Dec 2021 22:32:38 +0800 +Subject: [PATCH] MdeModulePkg/UsbBusDxe: fix NOOPT build error + +gcc-11 (fedora 35): + +/home/kraxel/projects/edk2/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBus.c: In function ?UsbIoBulkTransfer?: +/home/kraxel/projects/edk2/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBus.c:277:12: error: ?UsbHcBulkTransfer? accessing 80 bytes in a region of size 8 [-Werror=stringop-overflow=] + +Signed-off-by: Gerd Hoffmann +Reviewed-by: Hao A Wu +(cherry picked from commit ae8272ef787d80950803c521a13a308651bdc62e) +Signed-off-by: Romain Naour +--- + MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.c | 2 +- + MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.c b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.c +index 7529e03e85..b2ce97ca37 100644 +--- a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.c ++++ b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.c +@@ -285,7 +285,7 @@ UsbHcBulkTransfer ( + IN UINT8 DevSpeed, + IN UINTN MaxPacket, + IN UINT8 BufferNum, +- IN OUT VOID *Data[EFI_USB_MAX_BULK_BUFFER_NUM], ++ IN OUT VOID *Data[], + IN OUT UINTN *DataLength, + IN OUT UINT8 *DataToggle, + IN UINTN TimeOut, +diff --git a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.h b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.h +index 1d2b8a6174..1316a5981f 100644 +--- a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.h ++++ b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.h +@@ -149,7 +149,7 @@ UsbHcBulkTransfer ( + IN UINT8 DevSpeed, + IN UINTN MaxPacket, + IN UINT8 BufferNum, +- IN OUT VOID *Data[EFI_USB_MAX_BULK_BUFFER_NUM], ++ IN OUT VOID *Data[], + IN OUT UINTN *DataLength, + IN OUT UINT8 *DataToggle, + IN UINTN TimeOut, +-- +2.35.3 + diff --git a/boot/edk2/Config.in b/boot/edk2/Config.in new file mode 100644 index 000000000..df723122e --- /dev/null +++ b/boot/edk2/Config.in @@ -0,0 +1,124 @@ +config BR2_TARGET_EDK2_ARCH_SUPPORTS + bool + default y if BR2_aarch64 + default y if BR2_i386 + default y if BR2_x86_64 + +config BR2_TARGET_EDK2 + bool "EDK2" + depends on BR2_TARGET_EDK2_ARCH_SUPPORTS + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 + select BR2_PACKAGE_EDK2_PLATFORMS + help + EDK II is a modern, feature-rich, cross-platform firmware + development environment for the UEFI and PI specifications. + + https://github.com/tianocore/tianocore.github.io/wiki/EDK-II + +if BR2_TARGET_EDK2 + +choice + prompt "Platform" + default BR2_TARGET_EDK2_PLATFORM_OVMF_I386 if BR2_i386 + default BR2_TARGET_EDK2_PLATFORM_OVMF_X64 if BR2_x86_64 + default BR2_TARGET_EDK2_PLATFORM_ARM_VIRT_QEMU if BR2_aarch64 + +config BR2_TARGET_EDK2_PLATFORM_OVMF_I386 + bool "i386" + depends on BR2_i386 || BR2_x86_64 + help + Platform configuration for a generic i386 target. + This platform will boot from flash address 0x0. + It should therefore be used as the first bootloader. + +config BR2_TARGET_EDK2_PLATFORM_OVMF_X64 + bool "x86-64" + depends on BR2_x86_64 + help + Platform configuration for a generic x86-64 target. + This platform will boot from flash address 0x0. + It should therefore be used as the first bootloader. + +config BR2_TARGET_EDK2_PLATFORM_ARM_VIRT_QEMU + bool "ARM Virt Qemu (flash)" + depends on BR2_aarch64 + help + Platform configuration for QEMU targeting the Virt machine. + This platform will only boot from flash address 0x0. + It should therefore be used as the first bootloader. + +config BR2_TARGET_EDK2_PLATFORM_ARM_VIRT_QEMU_KERNEL + bool "ARM Virt Qemu (kernel)" + depends on BR2_aarch64 + help + Platform configuration for QEMU targeting the Virt machine. + This platform can boot from either flash address 0x0 or via + the Linux boot protocol. It can therefore be loaded by a + previous bootloader like ARM Trusted Firmware or OP-TEE. + +config BR2_TARGET_EDK2_PLATFORM_ARM_SGI575 + bool "ARM SGI-575" + depends on BR2_aarch64 + help + Platform configuration for ARM SGI-575 on ARM's + Fixed Virtual Platform (FVP). + +config BR2_TARGET_EDK2_PLATFORM_ARM_VEXPRESS_FVP_AARCH64 + bool "ARM VExpress FVP Aarch64" + depends on BR2_aarch64 + help + Platform configuration for ARM Versatile Express targeting + the Aarch64 Fixed Virtual Platform (FVP). + +config BR2_TARGET_EDK2_PLATFORM_SOCIONEXT_DEVELOPERBOX + bool "Socionext DeveloperBox" + depends on BR2_aarch64 + depends on BR2_TARGET_ARM_TRUSTED_FIRMWARE + depends on !BR2_TARGET_ARM_TRUSTED_FIRMWARE_EDK2_AS_BL33 + select BR2_PACKAGE_HOST_DTC + select BR2_TARGET_ARM_TRUSTED_FIRMWARE_FIP + help + Platform configuration for Socionext SynQuacer DeveloperBox + (SC2A11). + +comment "Socionext DeveloperBox depends on ATF not using EDK2 as BL33" + depends on BR2_TARGET_ARM_TRUSTED_FIRMWARE_EDK2_AS_BL33 + +config BR2_TARGET_EDK2_PLATFORM_SOLIDRUN_ARMADA80X0MCBIN + bool "SolidRun MacchiatoBin" + depends on BR2_aarch64 + depends on BR2_TARGET_ARM_TRUSTED_FIRMWARE + select BR2_PACKAGE_HOST_DTC + select BR2_TARGET_ARM_TRUSTED_FIRMWARE_FIP + help + Platform configuration for the SolidRun MacchiatoBin. + +config BR2_TARGET_EDK2_PLATFORM_QEMU_SBSA + bool "QEMU SBSA" + depends on BR2_aarch64 + depends on BR2_TARGET_ARM_TRUSTED_FIRMWARE + depends on !BR2_TARGET_ARM_TRUSTED_FIRMWARE_EDK2_AS_BL33 + help + Platform configuration for QEMU targeting the SBSA reference + machine. + +comment "QEMU SBSA depends on ATF not using EDK2 as BL33" + depends on BR2_TARGET_ARM_TRUSTED_FIRMWARE_EDK2_AS_BL33 + +endchoice + +config BR2_TARGET_EDK2_FD_NAME + string + default "OVMF" if BR2_TARGET_EDK2_PLATFORM_OVMF_I386 + default "OVMF" if BR2_TARGET_EDK2_PLATFORM_OVMF_X64 + default "QEMU_EFI" if BR2_TARGET_EDK2_PLATFORM_ARM_VIRT_QEMU + default "QEMU_EFI" if BR2_TARGET_EDK2_PLATFORM_ARM_VIRT_QEMU_KERNEL + default "BL33_AP_UEFI" if BR2_TARGET_EDK2_PLATFORM_ARM_SGI575 + default "FVP_AARCH64_EFI" if BR2_TARGET_EDK2_PLATFORM_ARM_VEXPRESS_FVP_AARCH64 + default "FVP_AARCH64_EFI" if BR2_TARGET_EDK2_PLATFORM_SOCIONEXT_DEVELOPERBOX + default "ARMADA_EFI" if BR2_TARGET_EDK2_PLATFORM_SOLIDRUN_ARMADA80X0MCBIN + +endif + +comment "EDK2 needs a toolchain w/ gcc >= 5" + depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_5 diff --git a/boot/edk2/edk2.hash b/boot/edk2/edk2.hash new file mode 100644 index 000000000..f28e9ce84 --- /dev/null +++ b/boot/edk2/edk2.hash @@ -0,0 +1,3 @@ +# Locally calculated +sha256 04791c13b414a6d1877182a6d565cb762c30aa63e49bb4d495fca68ef4dd209d edk2-edk2-stable202102-br1.tar.gz +sha256 50ce20c9cfdb0e19ee34fe0a51fc0afe961f743697b068359ab2f862b494df80 License.txt diff --git a/boot/edk2/edk2.mk b/boot/edk2/edk2.mk new file mode 100644 index 000000000..5cbd9d152 --- /dev/null +++ b/boot/edk2/edk2.mk @@ -0,0 +1,159 @@ +################################################################################ +# +# edk2 +# +################################################################################ + +EDK2_VERSION = edk2-stable202102 +EDK2_SITE = https://github.com/tianocore/edk2 +EDK2_SITE_METHOD = git +EDK2_LICENSE = BSD-2-Clause +EDK2_LICENSE_FILES = License.txt +EDK2_CPE_ID_VENDOR = tianocore +EDK2_DEPENDENCIES = edk2-platforms host-python3 host-acpica host-util-linux +EDK2_INSTALL_TARGET = NO +EDK2_INSTALL_IMAGES = YES + +ifeq ($(BR2_ENABLE_DEBUG),y) +EDK2_BUILD_TYPE = DEBUG +else +EDK2_BUILD_TYPE = RELEASE +endif + +# Build system notes. +# +# The EDK2 build system is rather unique, so here are a few useful notes. +# +# First, builds rely heavily on Git submodules to fetch various dependencies +# into specific directory structures. It might be possible to work around this +# and rely on Buildroot's infrastructure, but using Git submodules greatly +# simplifies this already complicated build system. +# +# Second, the build system is spread across various commands and stages. +# Therefore, all build variables needs to be exported to be available +# accordingly. The first stage will build $(@D)/BaseTools which contains +# various tools and scripts for the host. +# +# Third, where applicable, the dependency direction between EDK2 and +# ARM Trusted Firmware (ATF) will go in different direction for different +# platforms. Most commonly, ATF will depend on EDK2 via the BL33 payload. +# But for some platforms (e.g. QEMU SBSA or DeveloperBox) EDK2 will package +# the ATF images within its own build system. In such cases, intermediary +# "EDK2 packages" will be built in $(EDK2_BUILD_PACKAGES) in order for EDK2 +# to be able to use them in subsequent build stages. +# +# For more information about the build setup: +# https://edk2-docs.gitbook.io/edk-ii-build-specification/4_edk_ii_build_process_overview + +EDK2_GIT_SUBMODULES = YES +EDK2_BUILD_PACKAGES = $(@D)/Build/Buildroot +EDK2_PACKAGES_PATH = $(@D):$(EDK2_BUILD_PACKAGES):$(STAGING_DIR)/usr/share/edk2-platforms + +ifeq ($(BR2_TARGET_EDK2_PLATFORM_OVMF_I386),y) +EDK2_ARCH = IA32 +EDK2_DEPENDENCIES += host-nasm +EDK2_PACKAGE_NAME = OvmfPkg +EDK2_PLATFORM_NAME = OvmfPkgIa32 +EDK2_BUILD_DIR = OvmfIa32 + +else ifeq ($(BR2_TARGET_EDK2_PLATFORM_OVMF_X64),y) +EDK2_ARCH = X64 +EDK2_DEPENDENCIES += host-nasm +EDK2_PACKAGE_NAME = OvmfPkg +EDK2_PLATFORM_NAME = OvmfPkgX64 +EDK2_BUILD_DIR = OvmfX64 + +else ifeq ($(BR2_TARGET_EDK2_PLATFORM_ARM_VIRT_QEMU),y) +EDK2_ARCH = AARCH64 +EDK2_PACKAGE_NAME = ArmVirtPkg +EDK2_PLATFORM_NAME = ArmVirtQemu +EDK2_BUILD_DIR = $(EDK2_PLATFORM_NAME)-$(EDK2_ARCH) + +else ifeq ($(BR2_TARGET_EDK2_PLATFORM_ARM_VIRT_QEMU_KERNEL),y) +EDK2_ARCH = AARCH64 +EDK2_PACKAGE_NAME = ArmVirtPkg +EDK2_PLATFORM_NAME = ArmVirtQemuKernel +EDK2_BUILD_DIR = $(EDK2_PLATFORM_NAME)-$(EDK2_ARCH) + +else ifeq ($(BR2_TARGET_EDK2_PLATFORM_ARM_VEXPRESS_FVP_AARCH64),y) +EDK2_ARCH = AARCH64 +EDK2_PACKAGE_NAME = Platform/ARM/VExpressPkg +EDK2_PLATFORM_NAME = ArmVExpress-FVP-AArch64 +EDK2_BUILD_DIR = $(EDK2_PLATFORM_NAME) + +else ifeq ($(BR2_TARGET_EDK2_PLATFORM_SOCIONEXT_DEVELOPERBOX),y) +EDK2_ARCH = AARCH64 +EDK2_DEPENDENCIES += host-dtc arm-trusted-firmware +EDK2_PACKAGE_NAME = Platform/Socionext/DeveloperBox +EDK2_PLATFORM_NAME = DeveloperBox +EDK2_BUILD_DIR = $(EDK2_PLATFORM_NAME) +EDK2_BUILD_ENV += DTC_PREFIX=$(HOST_DIR)/bin/ +EDK2_BUILD_OPTS += -D DO_X86EMU=TRUE +EDK2_PRE_BUILD_HOOKS += EDK2_PRE_BUILD_SOCIONEXT_DEVELOPERBOX + +define EDK2_PRE_BUILD_SOCIONEXT_DEVELOPERBOX + mkdir -p $(EDK2_BUILD_PACKAGES)/Platform/Socionext/DeveloperBox + $(ARM_TRUSTED_FIRMWARE_DIR)/tools/fiptool/fiptool create \ + --tb-fw $(BINARIES_DIR)/bl31.bin \ + --soc-fw $(BINARIES_DIR)/bl31.bin \ + --scp-fw $(BINARIES_DIR)/bl31.bin \ + $(EDK2_BUILD_PACKAGES)/Platform/Socionext/DeveloperBox/fip_all_arm_tf.bin +endef + +else ifeq ($(BR2_TARGET_EDK2_PLATFORM_SOLIDRUN_ARMADA80X0MCBIN),y) +EDK2_ARCH = AARCH64 +EDK2_DEPENDENCIES += host-dtc arm-trusted-firmware +EDK2_PACKAGE_NAME = Platform/SolidRun/Armada80x0McBin +EDK2_PLATFORM_NAME = Armada80x0McBin +EDK2_BUILD_DIR = $(EDK2_PLATFORM_NAME)-$(EDK2_ARCH) +EDK2_BUILD_ENV += DTC_PREFIX=$(HOST_DIR)/bin/ +EDK2_BUILD_OPTS += -D INCLUDE_TFTP_COMMAND + +else ifeq ($(BR2_TARGET_EDK2_PLATFORM_QEMU_SBSA),y) +EDK2_ARCH = AARCH64 +EDK2_DEPENDENCIES += arm-trusted-firmware +EDK2_PACKAGE_NAME = Platform/Qemu/SbsaQemu +EDK2_PLATFORM_NAME = SbsaQemu +EDK2_BUILD_DIR = $(EDK2_PLATFORM_NAME) +EDK2_PRE_BUILD_HOOKS += EDK2_PRE_BUILD_QEMU_SBSA + +define EDK2_PRE_BUILD_QEMU_SBSA + mkdir -p $(EDK2_BUILD_PACKAGES)/Platform/Qemu/Sbsa + ln -srf $(BINARIES_DIR)/{bl1.bin,fip.bin} $(EDK2_BUILD_PACKAGES)/Platform/Qemu/Sbsa/ +endef + +endif + +EDK2_BASETOOLS_OPTS = \ + EXTRA_LDFLAGS="$(HOST_LDFLAGS)" \ + EXTRA_OPTFLAGS="$(HOST_CPPFLAGS)" + +EDK2_BUILD_ENV += \ + WORKSPACE=$(@D) \ + PACKAGES_PATH=$(EDK2_PACKAGES_PATH) \ + PYTHON_COMMAND=$(HOST_DIR)/bin/python3 \ + IASL_PREFIX=$(HOST_DIR)/bin/ \ + NASM_PREFIX=$(HOST_DIR)/bin/ \ + GCC5_$(EDK2_ARCH)_PREFIX=$(TARGET_CROSS) + +EDK2_BUILD_OPTS += \ + -t GCC5 \ + -n $(BR2_JLEVEL) \ + -a $(EDK2_ARCH) \ + -b $(EDK2_BUILD_TYPE) \ + -p $(EDK2_PACKAGE_NAME)/$(EDK2_PLATFORM_NAME).dsc + +define EDK2_BUILD_CMDS + mkdir -p $(EDK2_BUILD_PACKAGES) + export $(EDK2_BUILD_ENV) && \ + unset ARCH && \ + source $(@D)/edksetup.sh && \ + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/BaseTools $(EDK2_BASETOOLS_OPTS) && \ + build $(EDK2_BUILD_OPTS) all +endef + +define EDK2_INSTALL_IMAGES_CMDS + cp -f $(@D)/Build/$(EDK2_BUILD_DIR)/$(EDK2_BUILD_TYPE)_GCC5/FV/*.fd $(BINARIES_DIR) +endef + +$(eval $(generic-package)) diff --git a/boot/grub2/0001-Makefile-Make-grub_fstest.pp-depend-on-config-util.h.patch b/boot/grub2/0001-Makefile-Make-grub_fstest.pp-depend-on-config-util.h.patch new file mode 100644 index 000000000..ea8787de7 --- /dev/null +++ b/boot/grub2/0001-Makefile-Make-grub_fstest.pp-depend-on-config-util.h.patch @@ -0,0 +1,45 @@ +From bb08b723fa7bc56439c7bc166cff361628e73453 Mon Sep 17 00:00:00 2001 +Message-Id: +From: Stefan Agner +Date: Fri, 5 Aug 2022 08:59:52 +0200 +Subject: [PATCH] Makefile: Make grub_fstest.pp depend on config-util.h + +Warning: This commit does not apply to the GRUB git repository. This +patch applies against the release tarballs. + +Upstream status: https://lists.gnu.org/archive/html/grub-devel/2022-08/msg00045.html +Signed-off-by: Stefan Agner +--- + Makefile.am | 2 +- + Makefile.in | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index bf9c1ba..f08cfc0 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -51,7 +51,7 @@ libgrub_a_init.c: libgrub_a_init.lst $(top_srcdir)/geninit.sh + CLEANFILES += libgrub_a_init.c + + # For grub-fstest +-grub_fstest.pp: $(grub_fstest_SOURCES) ++grub_fstest.pp: config-util.h $(grub_fstest_SOURCES) + $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(grub_fstest_CPPFLAGS) $(CPPFLAGS) \ + -D'GRUB_MOD_INIT(x)=@MARKER@x@' $^ > $@ || (rm -f $@; exit 1) + CLEANFILES += grub_fstest.pp +diff --git a/Makefile.in b/Makefile.in +index 13f2eef..2c1d20b 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -13312,7 +13312,7 @@ libgrub_a_init.c: libgrub_a_init.lst $(top_srcdir)/geninit.sh + sh $(top_srcdir)/geninit.sh `cat $<` > $@ || (rm -f $@; exit 1) + + # For grub-fstest +-grub_fstest.pp: $(grub_fstest_SOURCES) ++grub_fstest.pp: config-util.h $(grub_fstest_SOURCES) + $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(grub_fstest_CPPFLAGS) $(CPPFLAGS) \ + -D'GRUB_MOD_INIT(x)=@MARKER@x@' $^ > $@ || (rm -f $@; exit 1) + +-- +2.37.1 + diff --git a/boot/grub2/Config.in b/boot/grub2/Config.in new file mode 100644 index 000000000..92b5dd501 --- /dev/null +++ b/boot/grub2/Config.in @@ -0,0 +1,164 @@ +config BR2_TARGET_GRUB2_ARCH_SUPPORTS + bool + default y if BR2_i386 + default y if BR2_x86_64 + default y if BR2_arm + default y if BR2_aarch64 + depends on BR2_USE_MMU + +config BR2_TARGET_GRUB2 + bool "grub2" + depends on BR2_TARGET_GRUB2_ARCH_SUPPORTS + depends on BR2_USE_WCHAR + select BR2_TARGET_GRUB2_I386_PC if \ + !BR2_TARGET_GRUB2_HAS_PTF && \ + (BR2_i386 || BR2_x86_64) + select BR2_TARGET_GRUB2_ARM_UBOOT if \ + !BR2_TARGET_GRUB2_HAS_PTF && \ + BR2_arm + select BR2_TARGET_GRUB2_ARM64_EFI if BR2_aarch64 + help + GNU GRUB is a Multiboot boot loader. It was derived from + GRUB, the GRand Unified Bootloader, which was originally + designed and implemented by Erich Stefan Boleyn. GRUB 2 has + replaced what was formerly known as GRUB (i.e. version + 0.9x), which has, in turn, become GRUB Legacy. + + Amongst others, GRUB2 offers EFI support, which GRUB Legacy + doesn't provide. + + For additional notes on using Grub 2 with Buildroot, see + boot/grub2/readme.txt + + http://www.gnu.org/software/grub/ + +if BR2_TARGET_GRUB2 + +config BR2_TARGET_GRUB2_HAS_LEGACY_BOOT + bool + +config BR2_TARGET_GRUB2_HAS_EFI_BOOT + bool + +config BR2_TARGET_GRUB2_HAS_PTF + bool + +config BR2_TARGET_GRUB2_I386_PC + bool "i386-pc" + depends on BR2_i386 || BR2_x86_64 + select BR2_TARGET_GRUB2_HAS_LEGACY_BOOT + help + Select this option if the platform you're targetting is a + x86 or x86-64 legacy BIOS based platform. + +config BR2_TARGET_GRUB2_I386_EFI + bool "i386-efi" + depends on BR2_i386 || BR2_x86_64 + select BR2_TARGET_GRUB2_HAS_PTF + select BR2_TARGET_GRUB2_HAS_EFI_BOOT + help + Select this option if the platform you're targetting has a + 32 bits EFI BIOS. Note that some x86-64 platforms use a 32 + bits EFI BIOS, and this option should be used in this case. + +config BR2_TARGET_GRUB2_X86_64_EFI + bool "x86-64-efi" + depends on BR2_x86_64 + select BR2_TARGET_GRUB2_HAS_PTF + select BR2_TARGET_GRUB2_HAS_EFI_BOOT + help + Select this option if the platform you're targetting has a + 64 bits EFI BIOS. + +config BR2_TARGET_GRUB2_ARM_UBOOT + bool "arm-uboot" + depends on BR2_arm + select BR2_TARGET_GRUB2_HAS_LEGACY_BOOT + help + Select this option if the platform you're targetting is an + ARM u-boot platform, and you want to boot Grub 2 as an u-boot + compatible image. + +config BR2_TARGET_GRUB2_ARM_EFI + bool "arm-efi" + depends on BR2_arm + select BR2_TARGET_GRUB2_HAS_PTF + select BR2_TARGET_GRUB2_HAS_EFI_BOOT + help + Select this option if the platform you're targetting is an + ARM platform and you want to boot Grub 2 as an EFI + application. + +config BR2_TARGET_GRUB2_ARM64_EFI + bool "arm64-efi" + depends on BR2_aarch64 + select BR2_TARGET_GRUB2_HAS_EFI_BOOT + help + Select this option if the platform you're targetting is an + Aarch64 platform and you want to boot Grub 2 as an EFI + application. + +if BR2_TARGET_GRUB2_HAS_LEGACY_BOOT + +comment "Options for the x86 legacy BIOS or ARM U-Boot support" + +config BR2_TARGET_GRUB2_BOOT_PARTITION + string "boot partition" + default "hd0,msdos1" + help + Specify the partition where the /boot/grub/grub.cfg file is + located. Use 'hd0,msdos1' for the first partition of the + first disk if using a legacy partition table, or 'hd0,gpt1' + if using GPT partition table. + +config BR2_TARGET_GRUB2_BUILTIN_MODULES_PC + string "builtin modules" + default BR2_TARGET_GRUB2_BUILTIN_MODULES if BR2_TARGET_GRUB2_BUILTIN_MODULES != "" # legacy + default "boot linux ext2 fat squash4 part_msdos part_gpt normal biosdisk" if BR2_TARGET_GRUB2_I386_PC + default "linux ext2 fat part_msdos normal" if BR2_TARGET_GRUB2_ARM_UBOOT + +config BR2_TARGET_GRUB2_BUILTIN_CONFIG_PC + string "builtin config" + default BR2_TARGET_GRUB2_BUILTIN_CONFIG if BR2_TARGET_GRUB2_BUILTIN_CONFIG != "" # legacy + help + Path to a Grub 2 configuration file that will be embedded + into the Grub image itself. This allows to set the root + device and other configuration parameters, but however menu + entries cannot be described in this embedded configuration. + +endif # BR2_TARGET_GRUB2_HAS_LEGACY_BOOT + +if BR2_TARGET_GRUB2_HAS_EFI_BOOT + +comment "Options for the EFI BIOS or ARM EFI support" + +config BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI + string "builtin modules" + default BR2_TARGET_GRUB2_BUILTIN_MODULES if BR2_TARGET_GRUB2_BUILTIN_MODULES != "" # legacy + default "boot linux ext2 fat squash4 part_msdos part_gpt normal efi_gop" + +config BR2_TARGET_GRUB2_BUILTIN_CONFIG_EFI + string "builtin config" + default BR2_TARGET_GRUB2_BUILTIN_CONFIG if BR2_TARGET_GRUB2_BUILTIN_CONFIG != "" # legacy + help + Path to a Grub 2 configuration file that will be embedded + into the Grub image itself. This allows to set the root + device and other configuration parameters, but however menu + entries cannot be described in this embedded configuration. + +endif # BR2_TARGET_GRUB2_HAS_EFI_BOOT + +config BR2_TARGET_GRUB2_INSTALL_TOOLS + bool "install tools" + help + Install support tools to interact with GNU GRUB Multiboot + boot loader. + + This will also install the Grub 2 loadable modules to the + target. + +endif # BR2_TARGET_GRUB2 + +comment "grub2 needs a toolchain w/ wchar" + depends on BR2_TARGET_GRUB2_ARCH_SUPPORTS + depends on !BR2_USE_WCHAR diff --git a/boot/grub2/grub.cfg b/boot/grub2/grub.cfg new file mode 100644 index 000000000..bd3e3f000 --- /dev/null +++ b/boot/grub2/grub.cfg @@ -0,0 +1,6 @@ +set default="0" +set timeout="5" + +menuentry "Buildroot" { + linux /boot/bzImage root=/dev/sda1 rootwait console=tty1 +} diff --git a/boot/grub2/grub2.hash b/boot/grub2/grub2.hash new file mode 100644 index 000000000..5d9db423d --- /dev/null +++ b/boot/grub2/grub2.hash @@ -0,0 +1,5 @@ +# Locally calculated after checking signature +# https://ftp.gnu.org/gnu/grub/grub-2.06.tar.xz.sig +sha256 b79ea44af91b93d17cd3fe80bdae6ed43770678a9a5ae192ccea803ebb657ee1 grub-2.06.tar.xz +# Locally computed: +sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING diff --git a/boot/grub2/grub2.mk b/boot/grub2/grub2.mk new file mode 100644 index 000000000..4e7e0fa89 --- /dev/null +++ b/boot/grub2/grub2.mk @@ -0,0 +1,193 @@ +################################################################################ +# +# grub2 +# +################################################################################ + +GRUB2_VERSION = 2.06 +GRUB2_SITE = http://ftp.gnu.org/gnu/grub +GRUB2_SOURCE = grub-$(GRUB2_VERSION).tar.xz +GRUB2_LICENSE = GPL-3.0+ +GRUB2_LICENSE_FILES = COPYING +GRUB2_DEPENDENCIES = host-bison host-flex host-grub2 +HOST_GRUB2_DEPENDENCIES = host-bison host-flex +GRUB2_INSTALL_IMAGES = YES + +# 0001-Makefile-Make-grub_fstest.pp-depend-on-config-util.h.patch +define GRUB2_AVOID_AUTORECONF + $(Q)touch $(@D)/Makefile.in +endef +GRUB2_POST_PATCH_HOOKS += GRUB2_AVOID_AUTORECONF +HOST_GRUB2_POST_PATCH_HOOKS += GRUB2_AVOID_AUTORECONF + +# CVE-2019-14865 is about a flaw in the grub2-set-bootflag tool, which +# doesn't exist upstream, but is added by the Redhat/Fedora +# packaging. Not applicable to Buildroot. +GRUB2_IGNORE_CVES += CVE-2019-14865 +# CVE-2020-15705 is related to a flaw in the use of the +# grub_linuxefi_secure_validate(), which was added by Debian/Ubuntu +# patches. The issue doesn't affect upstream Grub, and +# grub_linuxefi_secure_validate() is not implemented in the grub2 +# version available in Buildroot. +GRUB2_IGNORE_CVES += CVE-2020-15705 + +ifeq ($(BR2_TARGET_GRUB2_INSTALL_TOOLS),y) +GRUB2_INSTALL_TARGET = YES +else +GRUB2_INSTALL_TARGET = NO +endif +GRUB2_CPE_ID_VENDOR = gnu + +GRUB2_BUILTIN_MODULES_PC = $(call qstrip,$(BR2_TARGET_GRUB2_BUILTIN_MODULES_PC)) +GRUB2_BUILTIN_MODULES_EFI = $(call qstrip,$(BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI)) +GRUB2_BUILTIN_CONFIG_PC = $(call qstrip,$(BR2_TARGET_GRUB2_BUILTIN_CONFIG_PC)) +GRUB2_BUILTIN_CONFIG_EFI = $(call qstrip,$(BR2_TARGET_GRUB2_BUILTIN_CONFIG_EFI)) +GRUB2_BOOT_PARTITION = $(call qstrip,$(BR2_TARGET_GRUB2_BOOT_PARTITION)) + +GRUB2_IMAGE_i386-pc = $(BINARIES_DIR)/grub.img +GRUB2_CFG_i386-pc = $(TARGET_DIR)/boot/grub/grub.cfg +GRUB2_PREFIX_i386-pc = ($(GRUB2_BOOT_PARTITION))/boot/grub +GRUB2_TARGET_i386-pc = i386 +GRUB2_PLATFORM_i386-pc = pc +GRUB2_BUILTIN_CONFIG_i386-pc = $(GRUB2_BUILTIN_CONFIG_PC) +GRUB2_BUILTIN_MODULES_i386-pc = $(GRUB2_BUILTIN_MODULES_PC) +GRUB2_TUPLES-$(BR2_TARGET_GRUB2_I386_PC) += i386-pc + +GRUB2_IMAGE_i386-efi = $(BINARIES_DIR)/efi-part/EFI/BOOT/bootia32.efi +GRUB2_CFG_i386-efi = $(BINARIES_DIR)/efi-part/EFI/BOOT/grub.cfg +GRUB2_PREFIX_i386-efi = /EFI/BOOT +GRUB2_TARGET_i386-efi = i386 +GRUB2_PLATFORM_i386-efi = efi +GRUB2_BUILTIN_CONFIG_i386-efi = $(GRUB2_BUILTIN_CONFIG_EFI) +GRUB2_BUILTIN_MODULES_i386-efi = $(GRUB2_BUILTIN_MODULES_EFI) +GRUB2_TUPLES-$(BR2_TARGET_GRUB2_I386_EFI) += i386-efi + +GRUB2_IMAGE_x86_64-efi = $(BINARIES_DIR)/efi-part/EFI/BOOT/bootx64.efi +GRUB2_CFG_x86_64-efi = $(BINARIES_DIR)/efi-part/EFI/BOOT/grub.cfg +GRUB2_PREFIX_x86_64-efi = /EFI/BOOT +GRUB2_TARGET_x86_64-efi = x86_64 +GRUB2_PLATFORM_x86_64-efi = efi +GRUB2_BUILTIN_CONFIG_x86_64-efi = $(GRUB2_BUILTIN_CONFIG_EFI) +GRUB2_BUILTIN_MODULES_x86_64-efi = $(GRUB2_BUILTIN_MODULES_EFI) +GRUB2_TUPLES-$(BR2_TARGET_GRUB2_X86_64_EFI) += x86_64-efi + +GRUB2_IMAGE_arm-uboot = $(BINARIES_DIR)/boot-part/grub/grub.img +GRUB2_CFG_arm-uboot = $(BINARIES_DIR)/boot-part/grub/grub.cfg +GRUB2_PREFIX_arm-uboot = ($(GRUB2_BOOT_PARTITION))/boot/grub +GRUB2_TARGET_arm-uboot = arm +GRUB2_PLATFORM_arm-uboot = uboot +GRUB2_BUILTIN_CONFIG_arm-uboot = $(GRUB2_BUILTIN_CONFIG_PC) +GRUB2_BUILTIN_MODULES_arm-uboot = $(GRUB2_BUILTIN_MODULES_PC) +GRUB2_TUPLES-$(BR2_TARGET_GRUB2_ARM_UBOOT) += arm-uboot + +GRUB2_IMAGE_arm-efi = $(BINARIES_DIR)/efi-part/EFI/BOOT/bootarm.efi +GRUB2_CFG_arm-efi = $(BINARIES_DIR)/efi-part/EFI/BOOT/grub.cfg +GRUB2_PREFIX_arm-efi = /EFI/BOOT +GRUB2_TARGET_arm-efi = arm +GRUB2_PLATFORM_arm-efi = efi +GRUB2_BUILTIN_CONFIG_arm-efi = $(GRUB2_BUILTIN_CONFIG_EFI) +GRUB2_BUILTIN_MODULES_arm-efi = $(GRUB2_BUILTIN_MODULES_EFI) +GRUB2_TUPLES-$(BR2_TARGET_GRUB2_ARM_EFI) += arm-efi + +GRUB2_IMAGE_arm64-efi = $(BINARIES_DIR)/efi-part/EFI/BOOT/bootaa64.efi +GRUB2_CFG_arm64-efi = $(BINARIES_DIR)/efi-part/EFI/BOOT/grub.cfg +GRUB2_PREFIX_arm64-efi = /EFI/BOOT +GRUB2_TARGET_arm64-efi = aarch64 +GRUB2_PLATFORM_arm64-efi = efi +GRUB2_BUILTIN_CONFIG_arm64-efi = $(GRUB2_BUILTIN_CONFIG_EFI) +GRUB2_BUILTIN_MODULES_arm64-efi = $(GRUB2_BUILTIN_MODULES_EFI) +GRUB2_TUPLES-$(BR2_TARGET_GRUB2_ARM64_EFI) += arm64-efi + +# Grub2 is kind of special: it considers CC, LD and so on to be the +# tools to build the host programs and uses TARGET_CC, TARGET_CFLAGS, +# TARGET_CPPFLAGS, TARGET_LDFLAGS to build the bootloader itself. +# +# NOTE: TARGET_STRIP is overridden by !BR2_STRIP_strip, so always +# use the cross compile variant to ensure grub2 builds + +HOST_GRUB2_CONF_ENV = \ + CPP="$(HOSTCC) -E" + +GRUB2_CONF_ENV = \ + CPP="$(TARGET_CC) -E" \ + TARGET_CC="$(TARGET_CC)" \ + CFLAGS="$(TARGET_CFLAGS) -Os" \ + TARGET_CFLAGS="$(TARGET_CFLAGS) -Os" \ + CPPFLAGS="$(TARGET_CPPFLAGS) -Os -fno-stack-protector" \ + TARGET_CPPFLAGS="$(TARGET_CPPFLAGS) -Os -fno-stack-protector" \ + TARGET_LDFLAGS="$(TARGET_LDFLAGS) -Os" \ + TARGET_NM="$(TARGET_NM)" \ + TARGET_OBJCOPY="$(TARGET_OBJCOPY)" \ + TARGET_STRIP="$(TARGET_CROSS)strip" + +HOST_GRUB2_CONF_OPTS = \ + --with-platform=none \ + --disable-grub-mkfont \ + --enable-efiemu=no \ + ac_cv_lib_lzma_lzma_code=no \ + --enable-device-mapper=no \ + --enable-libzfs=no \ + --disable-werror + +define GRUB2_CONFIGURE_CMDS + $(foreach tuple, $(GRUB2_TUPLES-y), \ + @$(call MESSAGE,Configuring $(tuple)) + mkdir -p $(@D)/build-$(tuple) + cd $(@D)/build-$(tuple) && \ + $(TARGET_CONFIGURE_OPTS) \ + $(TARGET_CONFIGURE_ARGS) \ + $(GRUB2_CONF_ENV) \ + ../configure \ + --target=$(GRUB2_TARGET_$(tuple)) \ + --with-platform=$(GRUB2_PLATFORM_$(tuple)) \ + --host=$(GNU_TARGET_NAME) \ + --build=$(GNU_HOST_NAME) \ + --prefix=/ \ + --exec-prefix=/ \ + --disable-grub-mkfont \ + --enable-efiemu=no \ + ac_cv_lib_lzma_lzma_code=no \ + --enable-device-mapper=no \ + --enable-libzfs=no \ + --disable-werror + ) +endef + +define GRUB2_BUILD_CMDS + $(foreach tuple, $(GRUB2_TUPLES-y), \ + @$(call MESSAGE,Building $(tuple)) + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/build-$(tuple) + ) +endef + +define GRUB2_INSTALL_IMAGES_CMDS + $(foreach tuple, $(GRUB2_TUPLES-y), \ + @$(call MESSAGE,Installing $(tuple) to images directory) + mkdir -p $(dir $(GRUB2_IMAGE_$(tuple))) + $(HOST_DIR)/bin/grub-mkimage \ + -d $(@D)/build-$(tuple)/grub-core/ \ + -O $(tuple) \ + -o $(GRUB2_IMAGE_$(tuple)) \ + -p "$(GRUB2_PREFIX_$(tuple))" \ + $(if $(GRUB2_BUILTIN_CONFIG_$(tuple)), \ + -c $(GRUB2_BUILTIN_CONFIG_$(tuple))) \ + $(GRUB2_BUILTIN_MODULES_$(tuple)) + $(INSTALL) -D -m 0644 boot/grub2/grub.cfg $(GRUB2_CFG_$(tuple)) + $(if $(findstring $(GRUB2_PLATFORM_$(tuple)), pc), \ + cat $(@D)/build-$(tuple)/grub-core/cdboot.img $(GRUB2_IMAGE_$(tuple)) > \ + $(BINARIES_DIR)/grub-eltorito.img + ) \ + ) +endef + +ifeq ($(BR2_TARGET_GRUB2_INSTALL_TOOLS),y) +define GRUB2_INSTALL_TARGET_CMDS + $(foreach tuple, $(GRUB2_TUPLES-y), \ + @$(call MESSAGE,Installing $(tuple) to target directory) + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/build-$(tuple) DESTDIR=$(TARGET_DIR) install + ) +endef +endif + +$(eval $(generic-package)) +$(eval $(host-autotools-package)) diff --git a/boot/grub2/readme.txt b/boot/grub2/readme.txt new file mode 100644 index 000000000..5d59fb4e2 --- /dev/null +++ b/boot/grub2/readme.txt @@ -0,0 +1,192 @@ +Notes on using Grub2 for BIOS-based platforms +============================================= + +1. Create a disk image + dd if=/dev/zero of=disk.img bs=1M count=32 +2. Partition it (either legacy or GPT style partitions work) + cfdisk disk.img + - Create one partition, type Linux, for the root + filesystem. The only constraint is to make sure there + is enough free space *before* the first partition to + store Grub2. Leaving 1 MB of free space is safe. +3. Setup loop device and loop partitions + sudo losetup -f disk.img + sudo partx -a /dev/loop0 +4. Prepare the root partition + sudo mkfs.ext3 -L root /dev/loop0p1 + sudo mount /dev/loop0p1 /mnt + sudo tar -C /mnt -xf output/images/rootfs.tar + sudo umount /mnt +5. Install Grub2 + sudo ./output/host/sbin/grub-bios-setup \ + -b ./output/host/lib/grub/i386-pc/boot.img \ + -c ./output/images/grub.img -d . /dev/loop0 +6. Cleanup loop device + sudo partx -d /dev/loop0 + sudo losetup -d /dev/loop0 +7. Your disk.img is ready! + +Using genimage +-------------- + +If you use genimage to generate your complete image, +installing Grub can be tricky. Here is how to achieve Grub's +installation with genimage: + +partition boot { + in-partition-table = "no" + image = "path_to_boot.img" + offset = 0 + size = 512 +} +partition grub { + in-partition-table = "no" + image = "path_to_grub.img" + offset = 512 +} + +The result is not byte to byte identical to what +grub-bios-setup does but it works anyway. + +To test your BIOS image in Qemu +------------------------------- + +qemu-system-{i386,x86-64} -hda disk.img + +Notes on using Grub2 for x86/x86_64 EFI-based platforms +======================================================= + +1. Create a disk image + dd if=/dev/zero of=disk.img bs=1M count=32 +2. Partition it with GPT partitions + cgdisk disk.img + - Create a first partition, type EF00, for the + bootloader and kernel image + - Create a second partition, type 8300, for the root + filesystem. +3. Setup loop device and loop partitions + sudo losetup -f disk.img + sudo partx -a /dev/loop0 +4. Prepare the boot partition + sudo mkfs.vfat -n boot /dev/loop0p1 + sudo mount /dev/loop0p1 /mnt + sudo cp -a output/images/efi-part/* /mnt/ + sudo cp output/images/bzImage /mnt/ + sudo umount /mnt +5. Prepare the root partition + sudo mkfs.ext3 -L root /dev/loop0p2 + sudo mount /dev/loop0p2 /mnt + sudo tar -C /mnt -xf output/images/rootfs.tar + sudo umount /mnt +6 Cleanup loop device + sudo partx -d /dev/loop0 + sudo losetup -d /dev/loop0 +7. Your disk.img is ready! + +To test your i386/x86-64 EFI image in Qemu +------------------------------------------ + +1. Download/install the EFI BIOS for Qemu + You can get it using the edk2 package in Buildroot (installed + in BINARIES_DIR), grab prebuilt images from the unofficial nightly + builds [0], or use one provided by your distribution as OVMF. + + [0] https://github.com/retrage/edk2-nightly + +2. qemu-system-{i386,x86-64} -bios -hda disk.img + +Notes on using Grub2 for ARM u-boot-based platforms +=================================================== + +The following steps show how to use the Grub2 arm-uboot platform +support in the simplest way possible and with a single +buildroot-generated filesystem. + + 1. Load qemu_arm_vexpress_defconfig + + 2. Enable u-boot with the vexpress_ca9x4 board name and with + u-boot.elf image format. + + 3. Enable grub2 for the arm-uboot platform. + + 4. Enable "Install kernel image to /boot in target" in the kernel + menu to populate a /boot directory with zImage in it. + + 5. The upstream u-boot vexpress_ca9x4 doesn't have CONFIG_API enabled + by default, which is required. + + Before building, patch u-boot (for example, make u-boot-extract to + edit the source before building) file + include/configs/vexpress_common.h to define: + + #define CONFIG_API + #define CONFIG_SYS_MMC_MAX_DEVICE 1 + + 6. Create a custom grub2 config file with the following contents and + set its path in BR2_TARGET_GRUB2_CFG: + + set default="0" + set timeout="5" + + menuentry "Buildroot" { + set root='(hd0)' + linux /boot/zImage root=/dev/mmcblk0 console=ttyAMA0 + devicetree /boot/vexpress-v2p-ca9.dtb + } + + 7. Create a custom builtin config file with the following contents + and set its path in BR2_TARGET_GRUB2_BUILTIN_CONFIG: + + set root=(hd0) + set prefix=/boot/grub + + 8. Create a custom post-build script which copies files from + ${BINARIES_DIR}/boot-part to $(TARGET_DIR)/boot (set its path in + BR2_ROOTFS_POST_BUILD_SCRIPT): + + #!/bin/sh + cp -r ${BINARIES_DIR}/boot-part/* ${TARGET_DIR}/boot/ + + 9. make + +10. Run qemu with: + + qemu-system-arm -M vexpress-a9 -kernel output/images/u-boot -m 1024 \ + -nographic -sd output/images/rootfs.ext2 + +11. In u-boot, stop at the prompt and run grub2 with: + + => ext2load mmc 0:0 ${loadaddr} /boot/grub/grub.img + => bootm + +12. This should bring the grub2 menu, upon which selecting the "Buildroot" + entry should boot Linux. + + +Notes on using Grub2 for Aarch64 EFI-based platforms +==================================================== + +The following steps show how to use the Grub2 arm64-efi platform, +using qemu and EFI firmware built for qemu. + + 1. Load aarch64_efi_defconfig + + 2. make + + 3. Download the EFI firmware for qemu aarch64 + + You can get it using the edk2 package in Buildroot (installed + in BINARIES_DIR), grab prebuilt images from the unofficial nightly + builds [1], or use one provided by your distribution as OVMF-aarch64 + or AAVMF. + + [1] https://github.com/retrage/edk2-nightly + + 4. Run qemu with: + + qemu-system-aarch64 -M virt -cpu cortex-a57 -m 512 -nographic \ + -bios /QEMU_EFI.fd -hda output/images/disk.img \ + -netdev user,id=eth0 -device virtio-net-device,netdev=eth0 + + 5. This should bring the grub2 menu, upon which selecting the + "Buildroot" entry should boot Linux. diff --git a/boot/gummiboot/0001-Allow-building-with-newer-glibc-versions.patch b/boot/gummiboot/0001-Allow-building-with-newer-glibc-versions.patch new file mode 100644 index 000000000..b35cd499b --- /dev/null +++ b/boot/gummiboot/0001-Allow-building-with-newer-glibc-versions.patch @@ -0,0 +1,31 @@ +From 40ab4167b5a45c772304a879c71b47d54de3b0e3 Mon Sep 17 00:00:00 2001 +From: Esben Haabendal +Date: Wed, 20 Mar 2019 14:19:40 +0100 +Subject: [PATCH] Allow building with newer glibc versions + +Newer glibc versions does not include sys/sysmacros.h from sys/types.h +anymore. Including it unconditionally should be safe. + +See https://sourceware.org/ml/libc-alpha/2015-11/msg00253.html for why +this was done. + +Signed-off-by: Esben Haabendal +--- + src/setup/setup.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/setup/setup.c b/src/setup/setup.c +index 6a4275a2ae36..53429375a146 100644 +--- a/src/setup/setup.c ++++ b/src/setup/setup.c +@@ -37,6 +37,7 @@ + #include + #include + #include ++#include + + #include "efivars.h" + +-- +2.21.0 + diff --git a/boot/gummiboot/0002-Fix-linking-for-non-host-compatible-targets.patch b/boot/gummiboot/0002-Fix-linking-for-non-host-compatible-targets.patch new file mode 100644 index 000000000..7104a581e --- /dev/null +++ b/boot/gummiboot/0002-Fix-linking-for-non-host-compatible-targets.patch @@ -0,0 +1,54 @@ +From fc05ced797b87286b8ec7303fe32bf200a072972 Mon Sep 17 00:00:00 2001 +From: Esben Haabendal +Date: Mon, 18 Mar 2019 11:14:31 +0100 +Subject: [PATCH] Fix linking for non-host compatible targets + +Without this, gummiboot build system will use host 'ld' when linking +target binary, which is obviously not a good idea. + +Signed-off-by: Esben Haabendal +--- + Makefile.am | 4 ++-- + configure.ac | 4 ++++ + 2 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index 6568a355ed74..9051dd44edd9 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -142,7 +142,7 @@ $(top_builddir)/src/efi/%.o: $(top_srcdir)/src/efi/%.c $(addprefix $(top_srcdir) + $(AM_V_CC)$(EFI_CC) $(efi_cppflags) $(efi_cflags) -c $< -o $@ + + $(gummiboot_solib): $(gummiboot_objects) +- $(AM_V_CCLD)$(LD) $(efi_ldflags) $(gummiboot_objects) \ ++ $(AM_V_CCLD)$(EFI_LD) $(efi_ldflags) $(gummiboot_objects) \ + -o $@ -lefi -lgnuefi $(shell $(CC) -print-libgcc-file-name); \ + nm -D -u $@ | grep ' U ' && exit 1 || : + .DELETE_ON_ERROR: $(gummboot_solib) +@@ -177,7 +177,7 @@ $(top_builddir)/src/efi/%.o: $(top_srcdir)/src/efi/%.c $(addprefix $(top_srcdir) + $(AM_V_CC)$(EFI_CC) $(efi_cppflags) $(efi_cflags) -c $< -o $@ + + $(stub_solib): $(stub_objects) +- $(AM_V_CCLD)$(LD) $(efi_ldflags) $(stub_objects) \ ++ $(AM_V_CCLD)$(EFI_LD) $(efi_ldflags) $(stub_objects) \ + -o $@ -lefi -lgnuefi $(shell $(CC) -print-libgcc-file-name); \ + nm -D -u $@ | grep ' U ' && exit 1 || : + .DELETE_ON_ERROR: $(gummboot_solib) +diff --git a/configure.ac b/configure.ac +index 27bbe1d73396..b948696c220b 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -40,6 +40,10 @@ dnl Don't try to use things like -std=c99 for efi compilation + EFI_CC=$CC + AC_SUBST([EFI_CC]) + ++dnl Allow specifying linker compatible with the compiler ++EFI_LD=$LD ++AC_SUBST([EFI_LD]) ++ + AC_PROG_CC_C99 + AM_PROG_CC_C_O + AC_PROG_GCC_TRADITIONAL +-- +2.21.0 + diff --git a/boot/gummiboot/Config.in b/boot/gummiboot/Config.in new file mode 100644 index 000000000..1b5c4279f --- /dev/null +++ b/boot/gummiboot/Config.in @@ -0,0 +1,24 @@ +config BR2_TARGET_GUMMIBOOT + bool "gummiboot" + depends on BR2_i386 || BR2_x86_64 + depends on BR2_PACKAGE_GNU_EFI_ARCH_SUPPORTS + select BR2_PACKAGE_GNU_EFI + select BR2_PACKAGE_UTIL_LINUX + select BR2_PACKAGE_UTIL_LINUX_LIBBLKID + help + gummiboot is a simple UEFI boot manager which executes + configured EFI images. The default entry is selected by a + configured pattern (glob) or an on-screen menu. + + gummiboot operates on the EFI System Partition (ESP) + only. Configuration file fragments, kernels, initrds, other + EFI images need to reside on the ESP. Linux kernels need to + be built with CONFIG_EFI_STUB to be able to be directly + executed as an EFI image. + + See the Grub2 help text for details on preparing an EFI + capable disk image using Gummiboot: the instructions are + exactly the same, except that the Gummiboot configuration + files will be located in /loader/ inside the EFI partition. + + http://freedesktop.org/wiki/Software/gummiboot/ diff --git a/boot/gummiboot/buildroot.conf b/boot/gummiboot/buildroot.conf new file mode 100644 index 000000000..8a6f02e56 --- /dev/null +++ b/boot/gummiboot/buildroot.conf @@ -0,0 +1,4 @@ +title Buildroot +version 1 +linux /bzImage +options console=ttyS0 root=/dev/sda2 diff --git a/boot/gummiboot/gummiboot.mk b/boot/gummiboot/gummiboot.mk new file mode 100644 index 000000000..eb1f3da78 --- /dev/null +++ b/boot/gummiboot/gummiboot.mk @@ -0,0 +1,41 @@ +################################################################################ +# +# gummiboot +# +################################################################################ + +GUMMIBOOT_SITE = https://gitlab.freedesktop.org/archived-projects/gummiboot.git +GUMMIBOOT_SITE_METHOD = git +GUMMIBOOT_VERSION = 2bcd919c681c952eb867ef1bdb458f1bc49c2d55 +GUMMIBOOT_LICENSE = LGPL-2.1+ +GUMMIBOOT_LICENSE_FILES = LICENSE + +# The git archive does not have the autoconf/automake stuff generated. +GUMMIBOOT_AUTORECONF = YES +GUMMIBOOT_DEPENDENCIES = gnu-efi host-pkgconf util-linux +GUMMIBOOT_INSTALL_TARGET = NO +GUMMIBOOT_INSTALL_IMAGES = YES + +ifeq ($(BR2_i386),y) +GUMMIBOOT_IMGARCH = ia32 +else ifeq ($(BR2_x86_64),y) +GUMMIBOOT_IMGARCH = x64 +endif + +GUMMIBOOT_CONF_OPTS = \ + --host=$(BR2_ARCH) \ + --with-efi-libdir=$(STAGING_DIR)/usr/lib \ + --with-efi-ldsdir=$(STAGING_DIR)/usr/lib \ + --with-efi-includedir=$(STAGING_DIR)/usr/include \ + --disable-manpages + +define GUMMIBOOT_INSTALL_IMAGES_CMDS + $(INSTALL) -D -m 0644 $(@D)/gummiboot$(GUMMIBOOT_IMGARCH).efi \ + $(BINARIES_DIR)/efi-part/EFI/BOOT/boot$(GUMMIBOOT_IMGARCH).efi + $(INSTALL) -D -m 0644 boot/gummiboot/loader.conf \ + $(BINARIES_DIR)/efi-part/loader/loader.conf + $(INSTALL) -D -m 0644 boot/gummiboot/buildroot.conf \ + $(BINARIES_DIR)/efi-part/loader/entries/buildroot.conf +endef + +$(eval $(autotools-package)) diff --git a/boot/gummiboot/loader.conf b/boot/gummiboot/loader.conf new file mode 100644 index 000000000..93b77b8f9 --- /dev/null +++ b/boot/gummiboot/loader.conf @@ -0,0 +1,2 @@ +timeout 3 +default buildroot diff --git a/boot/lpc32xxcdl/0001-compiler_name.patch b/boot/lpc32xxcdl/0001-compiler_name.patch new file mode 100644 index 000000000..6aecbdeba --- /dev/null +++ b/boot/lpc32xxcdl/0001-compiler_name.patch @@ -0,0 +1,52 @@ +Use CROSS_COMPILE as compiler name and stop using libc + +Signed-off-by: Alexandre Belloni +--- + makerule/lpc32xx/make.lpc32xx.gnu | 22 +++++++++++----------- + 1 files changed, 11 insertions(+), 11 deletions(-) + +diff --git a/makerule/lpc32xx/make.lpc32xx.gnu b/makerule/lpc32xx/make.lpc32xx.gnu +index 1014c28..3277d99 100644 +--- a/makerule/lpc32xx/make.lpc32xx.gnu ++++ b/makerule/lpc32xx/make.lpc32xx.gnu +@@ -27,19 +27,19 @@ CFLAGS += -mno-sched-prolog -fno-hosted -mno-thumb-interwork -ffunction-sectio + CFLAGS += -I$(CSP_INC_DIR) -I$(BSP_INC_DIR) -I$(GEN_INC_DIR) + AFLAGS = -mcpu=arm926ej-s + AFLAGS += -I$(CSP_INC_DIR) -I$(BSP_INC_DIR) -I$(GEN_INC_DIR) +-CC = arm-none-eabi-gcc +-AS = arm-none-eabi-as +-AR = arm-none-eabi-ar -r +-LD = arm-none-eabi-gcc +-NM = arm-none-eabi-nm +-OBJDUMP = arm-none-eabi-objdump +-OBJCOPY = arm-none-eabi-objcopy +-READELF = arm-none-eabi-readelf ++CC = $(CROSS_COMPILE)gcc ++AS = $(CROSS_COMPILE)as ++AR = $(CROSS_COMPILE)ar -r ++LD = $(CROSS_COMPILE)gcc ++NM = $(CROSS_COMPILE)nm ++OBJDUMP = $(CROSS_COMPILE)objdump ++OBJCOPY = $(CROSS_COMPILE)objcopy ++READELF = $(CROSS_COMPILE)readelf + LDFLAGS += -Wl,--gc-sections + + LK = -static + LK += -Wl,--start-group $(TARGET_CSP_LIB) $(TARGET_BSP_LIB) $(TARGET_GEN_LIB) +-LK += -lgcc -lc -lg -lm -lstdc++ -lsupc++ ++LK += -nostdlib -lgcc #-lc -lg -lm -lstdc++ -lsupc++ + LK += -Wl,--end-group + MAP = -Xlinker -Map -Xlinker + LDESC = -Xlinker -T +@@ -47,6 +47,6 @@ ENTRY = -e + BIN = -bin + EXT = .elf + LEXT = +-ELFTOREC =arm-none-eabi-objcopy -O srec --strip-all --verbose +-ELFTOBIN =arm-none-eabi-objcopy -I elf32-littlearm -O binary --strip-all --verbose ++ELFTOREC = $(OBJCOPY) -O srec --strip-all --verbose ++ELFTOBIN = $(OBJCOPY) -I elf32-littlearm -O binary --strip-all --verbose + REC =.srec +-- +1.7.7.3 + diff --git a/boot/lpc32xxcdl/0002-delete_redundant_files.patch b/boot/lpc32xxcdl/0002-delete_redundant_files.patch new file mode 100644 index 000000000..39966f01e --- /dev/null +++ b/boot/lpc32xxcdl/0002-delete_redundant_files.patch @@ -0,0 +1,969 @@ +Remove duplicated files to stop the linker from complaining about duplicate +symbols + +Signed-off-by: Alexandre Belloni +--- +--- a/csps/lpc32xx/bsps/fdi3250/startup/examples/s1l/sysapi_timer.c 2011-10-05 19:10:37.000000000 +0200 ++++ /dev/null 2012-01-01 16:39:47.918907000 +0100 +@@ -1,212 +0,0 @@ +-/*********************************************************************** +- * $Id:: sysapi_timer.c 3394 2010-05-06 17:56:27Z usb10132 $ +- * +- * Project: Time support functions +- * +- * Description: +- * Implements the following functions required for the S1L API +- * time_init +- * time_reset +- * time_start +- * time_stop +- * time_get +- * time_get_rate +- * +- *********************************************************************** +- * Software that is described herein is for illustrative purposes only +- * which provides customers with programming information regarding the +- * products. This software is supplied "AS IS" without any warranties. +- * NXP Semiconductors assumes no responsibility or liability for the +- * use of the software, conveys no license or title under any patent, +- * copyright, or mask work right to the product. NXP Semiconductors +- * reserves the right to make changes in the software without +- * notification. NXP Semiconductors also make no representation or +- * warranty that such application will be suitable for the specified +- * use without further testing or modification. +- **********************************************************************/ +- +-#include "s1l_sys_inf.h" +-#include "lpc32xx_intc_driver.h" +-#include "lpc32xx_timer_driver.h" +- +-static UNS_64 base_rate; +-static INT_32 tdev = 0; +- +-/*********************************************************************** +- * +- * Function: time_init +- * +- * Purpose: Initializes time system +- * +- * Processing: Initializes the system timer. +- * +- * Parameters: None +- * +- * Outputs: None +- * +- * Returns: 0 if the init failed, otherwise non-zero +- * +- * Notes: None +- * +- **********************************************************************/ +-INT_32 time_init(void) +-{ +- TMR_PSCALE_SETUP_T pscale; +- +- /* Open timer driver */ +- if (tdev == 0) +- { +- tdev = timer_open((void *) TIMER_CNTR0, 0); +- if (tdev != 0) +- { +- /* Use a prescale count to 100000 */ +- pscale.ps_tick_val = 100000; +- pscale.ps_us_val = 0; /* Not needed when ps_tick_val != 0 */ +- timer_ioctl(tdev, TMR_SETUP_PSCALE, (INT_32) &pscale); +- +- /* Get timer clock rate */ +- base_rate = (UNS_64) timer_ioctl(tdev, TMR_GET_STATUS, +- TMR_GET_CLOCK); +- } +- } +- +- return tdev; +-} +- +-/*********************************************************************** +- * +- * Function: time_reset +- * +- * Purpose: Resets system timer +- * +- * Processing: +- * See function. +- * +- * Parameters: None +- * +- * Outputs: None +- * +- * Returns: Nothing +- * +- * Notes: None +- * +- **********************************************************************/ +-void time_reset(void) +-{ +- if (tdev != 0) +- { +- timer_ioctl(tdev, TMR_RESET, 1); +- } +-} +- +-/*********************************************************************** +- * +- * Function: time_start +- * +- * Purpose: Starts system timer +- * +- * Processing: +- * See function. +- * +- * Parameters: None +- * +- * Outputs: None +- * +- * Returns: Nothing +- * +- * Notes: None +- * +- **********************************************************************/ +-void time_start(void) +-{ +- if (tdev != 0) +- { +- timer_ioctl(tdev, TMR_ENABLE, 1); +- } +-} +- +-/*********************************************************************** +- * +- * Function: time_stop +- * +- * Purpose: Stops system timer +- * +- * Processing: +- * See function. +- * +- * Parameters: None +- * +- * Outputs: None +- * +- * Returns: Nothing +- * +- * Notes: None +- * +- **********************************************************************/ +-void time_stop(void) +-{ +- if (tdev != 0) +- { +- timer_ioctl(tdev, TMR_ENABLE, 0); +- } +-} +- +-/*********************************************************************** +- * +- * Function: time_get +- * +- * Purpose: Returns current system time value +- * +- * Processing: +- * See function. +- * +- * Parameters: None +- * +- * Outputs: None +- * +- * Returns: The number of ticks of the timer counter +- * +- * Notes: None +- * +- **********************************************************************/ +-UNS_64 time_get(void) +-{ +- TMR_COUNTS_T tcounts; +- UNS_64 ticks = 0; +- +- if (tdev != 0) +- { +- timer_ioctl(tdev, TMR_GET_COUNTS, (INT_32) &tcounts); +- +- /* Compute number of timer ticks */ +- ticks = (UNS_64) tcounts.count_val * 100000; +- ticks = ticks + (UNS_64) tcounts.ps_count_val; +- } +- +- return ticks; +-} +- +-/*********************************************************************** +- * +- * Function: time_get_rate +- * +- * Purpose: +- * Returns base tick rate (ticks per second) of the time counter +- * +- * Processing: +- * See function. +- * +- * Parameters: None +- * +- * Outputs: None +- * +- * Returns: The timer tick rate (in ticks per second) +- * +- * Notes: None +- * +- **********************************************************************/ +-UNS_64 time_get_rate(void) +-{ +- return base_rate; +-} +- +--- a/csps/lpc32xx/bsps/fdi3250/startup/examples/s1l/sys_mmu_cmd_group.c 2011-10-05 19:10:37.000000000 +0200 ++++ /dev/null 2012-01-01 16:39:47.918907000 +0100 +@@ -1,746 +0,0 @@ +-/*********************************************************************** +- * $Id:: sys_mmu_cmd_group.c 3430 2010-05-07 17:39:08Z usb10132 $ +- * +- * Project: Command processor for peek, poke, dump, and fill +- * +- * Description: +- * Processes commands from the command prompt +- * +- *********************************************************************** +- * Software that is described herein is for illustrative purposes only +- * which provides customers with programming information regarding the +- * products. This software is supplied "AS IS" without any warranties. +- * NXP Semiconductors assumes no responsibility or liability for the +- * use of the software, conveys no license or title under any patent, +- * copyright, or mask work right to the product. NXP Semiconductors +- * reserves the right to make changes in the software without +- * notification. NXP Semiconductors also make no representation or +- * warranty that such application will be suitable for the specified +- * use without further testing or modification. +- **********************************************************************/ +- +-#include "lpc_arm922t_cp15_driver.h" +-#include "lpc_string.h" +-#include "startup.h" +-#include "s1l_cmds.h" +-#include "s1l_sys_inf.h" +- +-/* dcache command */ +-BOOL_32 cmd_dcache(void); +-static UNS_32 cmd_dcache_plist[] = +-{ +- (PARSE_TYPE_STR), /* The "dcache" command */ +- (PARSE_TYPE_DEC | PARSE_TYPE_END) +-}; +-static CMD_ROUTE_T core_dcache_cmd = +-{ +- (UNS_8 *) "dcache", +- cmd_dcache, +- (UNS_8 *) "Enables, disables, or flushes data cache", +- (UNS_8 *) "dcache [0(disable), 1(enable), 2(flush)]", +- cmd_dcache_plist, +- NULL +-}; +- +-/* icache command */ +-BOOL_32 cmd_icache(void); +-static UNS_32 cmd_icache_plist[] = +-{ +- (PARSE_TYPE_STR), /* The "icache" command */ +- (PARSE_TYPE_DEC | PARSE_TYPE_END) +-}; +-static CMD_ROUTE_T core_icache_cmd = +-{ +- (UNS_8 *) "icache", +- cmd_icache, +- (UNS_8 *) "Enables or disables instruction cache", +- (UNS_8 *) "icache [0(disable), 1(enable)]", +- cmd_icache_plist, +- NULL +-}; +- +-/* inval command */ +-BOOL_32 cmd_inval(void); +-static UNS_32 cmd_inval_plist[] = +-{ +- (PARSE_TYPE_STR | PARSE_TYPE_END) /* The "inval" command */ +-}; +-static CMD_ROUTE_T core_inval_cmd = +-{ +- (UNS_8 *) "inval", +- cmd_inval, +- (UNS_8 *) "Flushes data cache and invalidates instruction cache", +- (UNS_8 *) "inval", +- cmd_inval_plist, +- NULL +-}; +- +-/* mmuenab command */ +-BOOL_32 cmd_mmuenab(void); +-static UNS_32 cmd_mmuenab_plist[] = +-{ +- (PARSE_TYPE_STR), /* The "mmuenab" command */ +- (PARSE_TYPE_DEC | PARSE_TYPE_END) +-}; +-static CMD_ROUTE_T core_mmuenab_cmd = +-{ +- (UNS_8 *) "mmuenab", +- cmd_mmuenab, +- (UNS_8 *) "Enables or disables the MMU", +- (UNS_8 *) "mmuenab [0(disable), 1(enable)]", +- cmd_mmuenab_plist, +- NULL +-}; +- +-/* map command */ +-BOOL_32 cmd_map(void); +-static UNS_32 cmd_map_plist[] = +-{ +- (PARSE_TYPE_STR), /* The "map" command */ +- (PARSE_TYPE_HEX), +- (PARSE_TYPE_HEX), +- (PARSE_TYPE_DEC), +- (PARSE_TYPE_DEC | PARSE_TYPE_END), +-}; +-static CMD_ROUTE_T core_map_cmd = +-{ +- (UNS_8 *) "map", +- cmd_map, +- (UNS_8 *) "Maps a range of physical address sections to virtual addresses", +- (UNS_8 *) "map [virt hex addr][phy hex addr][sections][0(uncached), 1(cached), 2(unmap)]", +- cmd_map_plist, +- NULL +-}; +- +-/* mmuinfo command */ +-static BOOL_32 cmd_mmuinfo(void); +-static UNS_32 cmd_mmuinfo_plist[] = +-{ +- (PARSE_TYPE_STR | PARSE_TYPE_END) /* The "mmuinfo" command */ +-}; +-static CMD_ROUTE_T core_mmuinfo_cmd = +-{ +- (UNS_8 *) "mmuinfo", +- cmd_mmuinfo, +- (UNS_8 *) "Dumps page table and MMU info", +- (UNS_8 *) "mmuinfo", +- cmd_mmuinfo_plist, +- NULL +-}; +- +-/* MMU group */ +-static GROUP_LIST_T mmu_group = +-{ +- (UNS_8 *) "mmu", /* mmu group */ +- (UNS_8 *) "MMU command group", +- NULL, +- NULL +-}; +- +-static UNS_8 enabled_msg [] =" enabled"; +-static UNS_8 disabled_msg [] =" disabled"; +-static UNS_8 dcache_msg[] = "Data cache"; +-static UNS_8 icache_msg[] = "Instruction cache"; +-static UNS_8 pagetab_msg[] = "Page table at address: "; +-static UNS_8 slist_msg[] = "Type Virt Phy fl Size"; +-static UNS_8 mmu_msg [] ="MMU"; +-static UNS_8 cpage_msg[] = "Coarse page:"; +-static UNS_8 fpage_msg[] = "Fine page :"; +-static UNS_8 sect_msg[] = "Section :"; +-static UNS_8 mbytes_msg[] = "M"; +-static UNS_8 map1_err_msg[] = +- "Error : section addresses must be aligned on a 32-bit boundary"; +-static UNS_8 map2_err_msg[] = +- "Error : Number of sections exceeds address range of device"; +-static UNS_8 phya_msg[] = "Virtual address "; +-static UNS_8 mapped_msg[] = " mapped to physical address "; +-static UNS_8 unmapped_msg[] = " unmapped from physical address "; +-static UNS_8 cached_msg[] = " (cached)"; +-static UNS_8 inval_msg[] = " invalidated"; +-static UNS_8 caches_msg [] ="Caches"; +-static UNS_8 flushed_msg[] = " flushed"; +- +-/*********************************************************************** +- * +- * Function: show_section +- * +- * Purpose: Display section information +- * +- * Processing: +- * See function. +- * +- * Parameters: +- * mmu_reg : MMU settings for this section +- * virt_addr : Starting virtual address for this section +- * segs : Number of 1M segments for this section +- * +- * Outputs: None +- * +- * Returns: Nothing +- * +- * Notes: None +- * +- **********************************************************************/ +-static void show_section(UNS_32 mmu_reg, +- UNS_32 virt_addr, +- UNS_32 segs) +-{ +- UNS_8 straddr [16]; +- UNS_32 mmu_phy; +- +- if ((mmu_reg & ARM922T_L1D_TYPE_PG_SN_MASK) != +- ARM922T_L1D_TYPE_FAULT) +- { +- if ((mmu_reg & ARM922T_L1D_TYPE_PG_SN_MASK) == +- ARM922T_L1D_TYPE_CPAGE) +- { +- term_dat_out(cpage_msg); +- } +- else if ((mmu_reg & ARM922T_L1D_TYPE_PG_SN_MASK) == +- ARM922T_L1D_TYPE_FPAGE) +- { +- term_dat_out(fpage_msg); +- } +- else +- { +- term_dat_out(sect_msg); +- } +- +- /* Compute virtual address */ +- str_makehex(straddr, virt_addr, 8); +- term_dat_out(straddr); +- term_dat_out((UNS_8 *) " "); +- +- /* Compute mapped physical address */ +- if ((mmu_reg & ARM922T_L1D_TYPE_PG_SN_MASK) == +- ARM922T_L1D_TYPE_SECTION) +- { +- mmu_phy = mmu_reg & 0xFFF00000; +- } +- else +- { +- /* Don't compute addresses for non-sections */ +- mmu_phy = 0; +- } +- str_makehex(straddr, mmu_phy, 8); +- term_dat_out(straddr); +- term_dat_out((UNS_8 *) " "); +- +- /* MMU flags */ +- if ((mmu_reg & ARM922T_L1D_BUFFERABLE) != 0) +- { +- term_dat_out((UNS_8 *) "b"); +- } +- else +- { +- term_dat_out((UNS_8 *) " "); +- } +- if ((mmu_reg & ARM922T_L1D_CACHEABLE) != 0) +- { +- term_dat_out((UNS_8 *) "c"); +- } +- else +- { +- term_dat_out((UNS_8 *) " "); +- } +- term_dat_out((UNS_8 *) " "); +- +- /* Displays used megabytes */ +- str_makedec(straddr, segs); +- term_dat_out(straddr); +- term_dat_out_crlf(mbytes_msg); +- } +-} +- +-/*********************************************************************** +- * +- * Function: mmu_dumpinfo +- * +- * Purpose: Display MMU info +- * +- * Processing: +- * Display the MMU information, including enable status, cache +- * status, and page table. +- * +- * Parameters: None +- * +- * Outputs: None +- * +- * Returns: TRUE if the command was processed, otherwise FALSE +- * +- * Notes: None +- * +- **********************************************************************/ +-static BOOL_32 mmu_dumpinfo(void) +-{ +- UNS_32 segsz, last_mmu_reg, mmu_vrt, mmu_reg, mmu_vrtsav = 0, *pt; +- UNS_32 mlast_mmu_reg, mmmu_reg; +- int idx; +- UNS_8 hexaddr [16]; +- +- term_dat_out(mmu_msg); +- if (cp15_mmu_enabled() == FALSE) +- { +- term_dat_out_crlf(disabled_msg); +- } +- else +- { +- term_dat_out_crlf(enabled_msg); +- +- /* Get MMU control register word */ +- mmu_reg = cp15_get_mmu_control_reg(); +- +- /* Instruction cache status */ +- term_dat_out(icache_msg); +- if ((mmu_reg & ARM922T_MMU_CONTROL_I) == 0) +- { +- term_dat_out_crlf(disabled_msg); +- } +- else +- { +- term_dat_out_crlf(enabled_msg); +- } +- +- /* Data cache status */ +- term_dat_out(dcache_msg); +- if ((mmu_reg & ARM922T_MMU_CONTROL_C) == 0) +- { +- term_dat_out_crlf(disabled_msg); +- } +- else +- { +- term_dat_out_crlf(enabled_msg); +- } +- +- term_dat_out(pagetab_msg); +- mmu_reg = (UNS_32) cp15_get_ttb(); +- str_makehex(hexaddr, mmu_reg, 8); +- term_dat_out_crlf(hexaddr); +- term_dat_out_crlf(slist_msg); +- +- /* Process MMU table - assume that the physical and +- virtual locations of table are the same */ +- pt = (UNS_32 *) mmu_reg; +- mmu_vrt = 0x0; +- segsz = 0xFFFFFFFF; +- last_mmu_reg = mlast_mmu_reg = 0xFFFFFFFF; +- for (idx = 0; idx < 4096; idx++) +- { +- mmu_reg = *pt; +- mmmu_reg = (mmu_reg & (ARM922T_L1D_TYPE_PG_SN_MASK | +- ARM922T_L1D_BUFFERABLE | ARM922T_L1D_CACHEABLE)); +- segsz = segsz + 1; +- +- if ((last_mmu_reg != 0xFFFFFFFF) && +- (mlast_mmu_reg != mmmu_reg)) +- { +- show_section(last_mmu_reg, mmu_vrtsav, segsz); +- segsz = 0; +- } +- +- if (mlast_mmu_reg != mmmu_reg) +- { +- mmu_vrtsav = mmu_vrt; +- last_mmu_reg = mmu_reg; +- mlast_mmu_reg = mmmu_reg; +- } +- +- pt++; +- mmu_vrt += 0x00100000; +- } +- } +- +- return TRUE; +-} +- +-/*********************************************************************** +- * +- * Function: mmu_dumpmap +- * +- * Purpose: Map a virtual address range to a physical range +- * +- * Processing: +- * From the input addresses and number of sections, generate the +- * appropriate entries in the page table. +- * +- * Parameters: None +- * +- * Outputs: None +- * +- * Returns: TRUE if the command was processed, otherwise FALSE +- * +- * Notes: None +- * +- **********************************************************************/ +-static BOOL_32 mmu_dumpmap(UNS_32 vrt, +- UNS_32 phy, +- UNS_32 sections, +- UNS_32 cache) +-{ +- BOOL_32 processed = FALSE; +- UNS_32 mmu_phy, mmu_vrt, tmp1 = 0, tmp2, *pt; +- UNS_8 hexaddr [16]; +- +- /* Verify address boundaries are sectional */ +- mmu_vrt = vrt & ~ARM922T_L2D_SN_BASE_MASK; +- mmu_phy = phy & ~ARM922T_L2D_SN_BASE_MASK; +- if ((mmu_vrt != 0) || (mmu_phy != 0)) +- { +- term_dat_out_crlf(map1_err_msg); +- } +- else +- { +- /* Verify that address range and section count will not +- exceed address range of device */ +- tmp1 = vrt >> 20; +- tmp1 = (tmp1 + sections) - 1; +- tmp2 = phy >> 20; +- tmp2 = (tmp2 + sections) - 1; +- if ((tmp1 < 4096) && (tmp2 < 4096)) +- { +- /* Good address range and good section count */ +- processed = TRUE; +- } +- else +- { +- term_dat_out_crlf(map2_err_msg); +- } +- } +- +- /* Generate static part of MMU word */ +- if (cache == 0) +- { +- /* Section mapped with cache disabled */ +- tmp1 = ARM922T_L1D_TYPE_SECTION; +- } +- else if (cache == 1) +- { +- /* Section mapped with cache enabled */ +- tmp1 = (ARM922T_L1D_BUFFERABLE | ARM922T_L1D_CACHEABLE | +- ARM922T_L1D_TYPE_SECTION); +- } +- else if (cache == 2) +- { +- /* Section unmapped */ +- tmp1 = ARM922T_L1D_TYPE_FAULT; +- } +- tmp1 |= ARM922T_L1D_AP_ALL; +- +- /* Offset into page table for virtual address */ +- tmp2 = (vrt >> 20); +- pt = cp15_get_ttb() + tmp2; +- +- /* Loop until all sections are complete */ +- while ((sections > 0) && (processed == TRUE)) +- { +- /* Add in physical address */ +- tmp2 = tmp1 | (phy & ARM922T_L2D_SN_BASE_MASK); +- +- /* Save new section descriptor for virtual address */ +- *pt = tmp2; +- +- /* Output message shown the map */ +- term_dat_out(phya_msg); +- str_makehex(hexaddr, phy, 8); +- term_dat_out(hexaddr); +- if (cache == 2) +- { +- term_dat_out(unmapped_msg); +- } +- else +- { +- term_dat_out(mapped_msg); +- } +- str_makehex(hexaddr, vrt, 8); +- term_dat_out(hexaddr); +- if (cache == 1) +- { +- term_dat_out(cached_msg); +- } +- term_dat_out_crlf((UNS_8 *) ""); +- +- /* Next section and page table entry*/ +- phy += 0x00100000; +- vrt += 0x00100000; +- pt++; +- sections--; +- } +- +- return processed; +-} +- +-/*********************************************************************** +- * +- * Function: cmd_mmuinfo +- * +- * Purpose: Display MMU information +- * +- * Processing: +- * See function. +- * +- * Parameters: None +- * +- * Outputs: None +- * +- * Returns: TRUE if the command was processed, otherwise FALSE +- * +- * Notes: None +- * +- **********************************************************************/ +-static BOOL_32 cmd_mmuinfo(void) +-{ +- mmu_dumpinfo(); +- +- return TRUE; +-} +- +-/*********************************************************************** +- * +- * Function: cmd_map +- * +- * Purpose: Map a physical address region to a virtual region +- * +- * Processing: +- * See function. +- * +- * Parameters: None +- * +- * Outputs: None +- * +- * Returns: TRUE if the command was processed, otherwise FALSE +- * +- * Notes: None +- * +- **********************************************************************/ +-BOOL_32 cmd_map(void) +-{ +- UNS_32 phy, virt, sects, ce = 0; +- +- /* Get arguments */ +- virt = cmd_get_field_val(1); +- phy = cmd_get_field_val(2); +- sects = cmd_get_field_val(3); +- ce = cmd_get_field_val(4); +- +- if (ce <= 2) +- { +- mmu_dumpmap(virt, phy, sects, ce); +- } +- +- return TRUE; +-} +- +-/*********************************************************************** +- * +- * Function: cmd_inval +- * +- * Purpose: MMU cache flush and invalidate +- * +- * Processing: +- * See function. +- * +- * Parameters: None +- * +- * Outputs: None +- * +- * Returns: TRUE if the command was processed, otherwise FALSE +- * +- * Notes: None +- * +- **********************************************************************/ +-BOOL_32 cmd_inval(void) +-{ +- dcache_flush(); +- icache_inval(); +- term_dat_out(caches_msg); +- term_dat_out(inval_msg); +- +- return TRUE; +-} +- +-/*********************************************************************** +- * +- * Function: cmd_dcache +- * +- * Purpose: MMU data cache enable and disable +- * +- * Processing: +- * If the value passed in the parser is 1, enable the data cache, +- * otherwise disable the data cache. +- * +- * Parameters: None +- * +- * Outputs: None +- * +- * Returns: TRUE if the command was processed, otherwise FALSE +- * +- * Notes: None +- * +- **********************************************************************/ +-BOOL_32 cmd_dcache(void) +-{ +- UNS_32 cenable; +- UNS_8 *ppar; +- +- /* Get argument */ +- cenable = cmd_get_field_val(1); +- +- switch (cenable) +- { +- case 0: +- dcache_flush(); +- cp15_set_dcache(0); +- ppar = disabled_msg; +- break; +- +- case 1: +- cp15_invalidate_cache(); +- cp15_set_dcache(1); +- ppar = enabled_msg; +- break; +- +- case 2: +- default: +- dcache_flush(); +- ppar = flushed_msg; +- break; +- } +- +- term_dat_out(dcache_msg); +- term_dat_out_crlf(ppar); +- +- return TRUE; +-} +- +-/*********************************************************************** +- * +- * Function: cmd_icache +- * +- * Purpose: MMU instruction cache enable and disable +- * +- * Processing: +- * If the value passed in the parser is 1, enable the instruction +- * cache, otherwise disable the instruction cache. +- * +- * Parameters: None +- * +- * Outputs: None +- * +- * Returns: TRUE if the command was processed, otherwise FALSE +- * +- * Notes: None +- * +- **********************************************************************/ +-BOOL_32 cmd_icache(void) +-{ +- UNS_32 cenable; +- UNS_8 *ppar; +- +- /* Get argument */ +- cenable = cmd_get_field_val(1); +- +- if (cenable == 1) +- { +- dcache_flush(); +- cp15_invalidate_cache(); +- cp15_set_icache(1); +- ppar = enabled_msg; +- } +- else +- { +- cp15_set_icache(0); +- ppar = disabled_msg; +- } +- +- term_dat_out(icache_msg); +- term_dat_out_crlf(ppar); +- +- return TRUE; +-} +- +- +-/*********************************************************************** +- * +- * Function: cmd_mmuenab +- * +- * Purpose: Enable or disable MMU +- * +- * Processing: +- * See function. +- * +- * Parameters: None +- * +- * Outputs: None +- * +- * Returns: TRUE if the command was processed, otherwise FALSE +- * +- * Notes: None +- * +- **********************************************************************/ +-BOOL_32 cmd_mmuenab(void) +-{ +- UNS_8 *ppar; +- UNS_32 cenable; +- +- term_dat_out_crlf((UNS_8 *) "Warning: Changing MMU status on " +- " cached and buffered code can cause system crashes."); +- +- /* Get argument */ +- cenable = cmd_get_field_val(1); +- +- if (cenable == 1) +- { +- if ((cp15_get_mmu_control_reg() & ARM922T_MMU_CONTROL_C) != 0) +- { +- cp15_invalidate_cache(); +- } +- +- cp15_set_mmu(1); +- ppar = enabled_msg; +- } +- else +- { +- cp15_dcache_flush(); +- cp15_write_buffer_flush(); +- cp15_invalidate_cache(); +- cp15_set_mmu(0); +- ppar = disabled_msg; +- } +- +- term_dat_out(mmu_msg); +- term_dat_out_crlf(ppar); +- +- return TRUE; +-} +- +-/*********************************************************************** +- * +- * Function: mmu_cmd_group_init +- * +- * Purpose: Initialize MMU command group +- * +- * Processing: +- * See function. +- * +- * Parameters: None +- * +- * Outputs: None +- * +- * Returns: Nothin +- * +- * Notes: None +- * +- **********************************************************************/ +-void mmu_cmd_group_init(void) +-{ +- /* Add MMU group */ +- cmd_add_group(&mmu_group); +- +- /* Add commands to the MMU group */ +- cmd_add_new_command(&mmu_group, &core_dcache_cmd); +- cmd_add_new_command(&mmu_group, &core_icache_cmd); +- cmd_add_new_command(&mmu_group, &core_inval_cmd); +- cmd_add_new_command(&mmu_group, &core_mmuenab_cmd); +- cmd_add_new_command(&mmu_group, &core_map_cmd); +- cmd_add_new_command(&mmu_group, &core_mmuinfo_cmd); +-} diff --git a/boot/lpc32xxcdl/0003-libnosys_gnu.patch b/boot/lpc32xxcdl/0003-libnosys_gnu.patch new file mode 100644 index 000000000..cfd77bead --- /dev/null +++ b/boot/lpc32xxcdl/0003-libnosys_gnu.patch @@ -0,0 +1,188 @@ +Fix compilation and eabi issues + +Since we are not linking with libc anymore, we need to define our own memset, +strlen and memcpy. Also, as we are using a *libc compiler, we need to "handle" +exceptions (mostly division by 0) by defining raise() and +__aeabi_unwind_cpp_pr0. + +Signed-off-by: Alexandre Belloni +--- + csps/lpc32xx/bsps/ea3250/source/libnosys_gnu.c | 41 +++++++++++++++++++++++ + csps/lpc32xx/bsps/fdi3250/source/libnosys_gnu.c | 41 +++++++++++++++++++++++ + csps/lpc32xx/bsps/phy3250/source/libnosys_gnu.c | 41 +++++++++++++++++++++++ + 3 files changed, 123 insertions(+), 0 deletions(-) + +diff --git a/csps/lpc32xx/bsps/ea3250/source/libnosys_gnu.c b/csps/lpc32xx/bsps/ea3250/source/libnosys_gnu.c +index 385b0ab..f1f0a0a 100644 +--- a/csps/lpc32xx/bsps/ea3250/source/libnosys_gnu.c ++++ b/csps/lpc32xx/bsps/ea3250/source/libnosys_gnu.c +@@ -25,6 +25,7 @@ + #include + #include + #include ++#include + + /* errno definition */ + #undef errno +@@ -125,4 +126,44 @@ int _write(int file, char *ptr, int len){ + return 0; + } + ++void * memset(void * s,int c,size_t count) ++{ ++ char *xs = (char *) s; ++ ++ while (count--) ++ *xs++ = c; ++ ++ return s; ++} ++ ++ ++size_t strlen(const char * s) ++{ ++ const char *sc; ++ ++ for (sc = s; *sc != '\0'; ++sc) ++ /* nothing */; ++ return sc - s; ++} ++ ++void * memcpy(void * dest,const void *src,size_t count) ++{ ++ char *tmp = (char *) dest, *s = (char *) src; ++ ++ while (count--) ++ *tmp++ = *s++; ++ ++ return dest; ++} ++ ++ ++/* Dummy functions to avoid linker complaints */ ++void __aeabi_unwind_cpp_pr0(void) ++{ ++}; ++ ++void raise(void) ++{ ++}; ++ + #endif /*__GNUC__*/ +diff --git a/csps/lpc32xx/bsps/fdi3250/source/libnosys_gnu.c b/csps/lpc32xx/bsps/fdi3250/source/libnosys_gnu.c +index 385b0ab..f1f0a0a 100644 +--- a/csps/lpc32xx/bsps/fdi3250/source/libnosys_gnu.c ++++ b/csps/lpc32xx/bsps/fdi3250/source/libnosys_gnu.c +@@ -25,6 +25,7 @@ + #include + #include + #include ++#include + + /* errno definition */ + #undef errno +@@ -125,4 +126,44 @@ int _write(int file, char *ptr, int len){ + return 0; + } + ++void * memset(void * s,int c,size_t count) ++{ ++ char *xs = (char *) s; ++ ++ while (count--) ++ *xs++ = c; ++ ++ return s; ++} ++ ++ ++size_t strlen(const char * s) ++{ ++ const char *sc; ++ ++ for (sc = s; *sc != '\0'; ++sc) ++ /* nothing */; ++ return sc - s; ++} ++ ++void * memcpy(void * dest,const void *src,size_t count) ++{ ++ char *tmp = (char *) dest, *s = (char *) src; ++ ++ while (count--) ++ *tmp++ = *s++; ++ ++ return dest; ++} ++ ++ ++/* Dummy functions to avoid linker complaints */ ++void __aeabi_unwind_cpp_pr0(void) ++{ ++}; ++ ++void raise(void) ++{ ++}; ++ + #endif /*__GNUC__*/ +diff --git a/csps/lpc32xx/bsps/phy3250/source/libnosys_gnu.c b/csps/lpc32xx/bsps/phy3250/source/libnosys_gnu.c +index cfdb674..6b50c60 100644 +--- a/csps/lpc32xx/bsps/phy3250/source/libnosys_gnu.c ++++ b/csps/lpc32xx/bsps/phy3250/source/libnosys_gnu.c +@@ -25,6 +25,7 @@ + #include + #include + #include ++#include + + /* errno definition */ + #undef errno +@@ -125,4 +126,44 @@ int _write(int file, char *ptr, int len){ + return 0; + } + ++void * memset(void * s,int c,size_t count) ++{ ++ char *xs = (char *) s; ++ ++ while (count--) ++ *xs++ = c; ++ ++ return s; ++} ++ ++ ++size_t strlen(const char * s) ++{ ++ const char *sc; ++ ++ for (sc = s; *sc != '\0'; ++sc) ++ /* nothing */; ++ return sc - s; ++} ++ ++void * memcpy(void * dest,const void *src,size_t count) ++{ ++ char *tmp = (char *) dest, *s = (char *) src; ++ ++ while (count--) ++ *tmp++ = *s++; ++ ++ return dest; ++} ++ ++ ++/* Dummy functions to avoid linker complaints */ ++void __aeabi_unwind_cpp_pr0(void) ++{ ++}; ++ ++void raise(void) ++{ ++}; ++ + #endif /*__GNUC__*/ +-- +1.7.7.3 + diff --git a/boot/lpc32xxcdl/0004-slashes.patch b/boot/lpc32xxcdl/0004-slashes.patch new file mode 100644 index 000000000..94c184780 --- /dev/null +++ b/boot/lpc32xxcdl/0004-slashes.patch @@ -0,0 +1,521 @@ +Use slashes instead of backslashes + +Signed-off-by: Alexandre Belloni +--- + .../bsps/common/examples/buildfiles/makefile | 10 +++--- + .../startup/examples/burners/makefile.burner | 16 +++++----- + csps/lpc32xx/bsps/ea3250/source/makefile | 10 +++--- + csps/lpc32xx/bsps/fdi3250/source/makefile | 12 ++++---- + csps/lpc32xx/bsps/phy3250/examples/makefile | 2 +- + csps/lpc32xx/bsps/phy3250/source/makefile | 2 +- + .../examples/Burners/nor/kickstart/makefile | 2 +- + .../startup/examples/Burners/nor/norerase/makefile | 2 +- + .../startup/examples/Burners/nor/s1lapp/makefile | 2 +- + .../examples/Burners/spi/kickstart/makefile | 2 +- + csps/lpc32xx/source/makefile | 10 +++--- + lpc/source/makefile | 10 +++--- + makefile | 2 +- + makerule/common/make.rules.environment | 30 ++++++++++---------- + makerule/lpc32xx/make.lpc32xx.gnu | 2 +- + makerule/lpc32xx/make.lpc32xx.iar | 12 ++++---- + makerule/lpc32xx/make.lpc32xx.keil | 6 ++-- + makerule/lpc32xx/make.lpc32xx.rvw | 2 +- + 18 files changed, 67 insertions(+), 67 deletions(-) + +diff --git a/csps/lpc32xx/bsps/common/examples/buildfiles/makefile b/csps/lpc32xx/bsps/common/examples/buildfiles/makefile +index cf4977c..1da2201 100644 +--- a/csps/lpc32xx/bsps/common/examples/buildfiles/makefile ++++ b/csps/lpc32xx/bsps/common/examples/buildfiles/makefile +@@ -25,16 +25,16 @@ + # + ######################################################################## + +-include $(NXPMCU_SOFTWARE)\makerule\$(CSP)\make.$(CSP).$(TOOL) ++include $(NXPMCU_SOFTWARE)/makerule/$(CSP)/make.$(CSP).$(TOOL) + + ######################################################################## + # + # Pick up the assembler and C source files in the directory + # + ######################################################################## +-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.ftypes +-AFLAGS +=-I..\Include +-CFLAGS +=-I..\Include ++include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.ftypes ++AFLAGS +=-I../Include ++CFLAGS +=-I../Include + + ######################################################################## + # +@@ -42,6 +42,6 @@ CFLAGS +=-I..\Include + # + ######################################################################## + +-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.build ++include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.build + + +diff --git a/csps/lpc32xx/bsps/common/startup/examples/burners/makefile.burner b/csps/lpc32xx/bsps/common/startup/examples/burners/makefile.burner +index fca3947..18bd703 100644 +--- a/csps/lpc32xx/bsps/common/startup/examples/burners/makefile.burner ++++ b/csps/lpc32xx/bsps/common/startup/examples/burners/makefile.burner +@@ -22,9 +22,9 @@ + # + ######################################################################## + +-COMMON_BASE := $(NXPMCU_SOFTWARE)\csps\$(CSP)\bsps\common +-include $(NXPMCU_SOFTWARE)\makerule\$(CSP)\make.$(CSP).$(TOOL) +-include $(COMMON_BASE)\startup\examples\buildfiles\make.env ++COMMON_BASE := $(NXPMCU_SOFTWARE)/csps/$(CSP)/bsps/common ++include $(NXPMCU_SOFTWARE)/makerule/$(CSP)/make.$(CSP).$(TOOL) ++include $(COMMON_BASE)/startup/examples/buildfiles/make.env + + ######################################################################## + # ARM Realview +@@ -38,7 +38,7 @@ AFLAGS += --predefine "USE_ALL_STACKS SETL {TRUE}" + #AFLAGS += --predefine "RW_RELOC SETL {TRUE}" + + # This runs from IRAM +-LDSCRIPT =$(COMMON_BASE)\startup\examples\buildfiles\ldscript_iram_rvw.ld ++LDSCRIPT =$(COMMON_BASE)/startup/examples/buildfiles/ldscript_iram_rvw.ld + LDFLAGS = --remove + MAP = --map --info=totals,sizes,unused --symbols --list + endif +@@ -55,7 +55,7 @@ AFLAGS += --predefine "USE_ALL_STACKS SETL {TRUE}" + #AFLAGS += --predefine "RW_RELOC SETL {TRUE}" + + # This runs from IRAM +-LDSCRIPT =$(COMMON_BASE)\startup\examples\buildfiles\ldscript_iram_rvw.ld ++LDSCRIPT =$(COMMON_BASE)/startup/examples/buildfiles/ldscript_iram_rvw.ld + LDFLAGS = --remove + MAP = --map --info=totals,sizes,unused --symbols --list + endif +@@ -72,7 +72,7 @@ AFLAGS += --defsym USE_ALL_STACKS=1 + #AFLAGS += --defsym RW_RELOC=1 + + # This runs from IRAM +-LDSCRIPT =$(COMMON_BASE)\startup\examples\buildfiles\ldscript_iram_gnu.ld ++LDSCRIPT =$(COMMON_BASE)/startup/examples/buildfiles/ldscript_iram_gnu.ld + + endif + +@@ -108,7 +108,7 @@ endif + # Pick up the assembler and C source files in the directory + # + ######################################################################## +-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.ftypes ++include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.ftypes + + ######################################################################## + # +@@ -157,6 +157,6 @@ endif + # + ######################################################################## + +-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.build ++include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.build + + .PHONY: debug bin +diff --git a/csps/lpc32xx/bsps/ea3250/source/makefile b/csps/lpc32xx/bsps/ea3250/source/makefile +index 7cada25..2899b20 100644 +--- a/csps/lpc32xx/bsps/ea3250/source/makefile ++++ b/csps/lpc32xx/bsps/ea3250/source/makefile +@@ -22,16 +22,16 @@ + # + ######################################################################## + +-include $(NXPMCU_SOFTWARE)\makerule\$(CSP)\make.$(CSP).$(TOOL) ++include $(NXPMCU_SOFTWARE)/makerule/$(CSP)/make.$(CSP).$(TOOL) + + ######################################################################## + # + # Pick up the assembler and C source files in the directory + # + ######################################################################## +-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.ftypes +-AFLAGS +=-I..\Include +-CFLAGS +=-I..\Include ++include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.ftypes ++AFLAGS +=-I../Include ++CFLAGS +=-I../Include + + ######################################################################## + # +@@ -64,7 +64,7 @@ realclean: lib_realclean + # + ######################################################################## + +-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.build ++include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.build + + .PHONY: all lib_clean lib_realclean + +diff --git a/csps/lpc32xx/bsps/fdi3250/source/makefile b/csps/lpc32xx/bsps/fdi3250/source/makefile +index 4e153bb..11e4b63 100644 +--- a/csps/lpc32xx/bsps/fdi3250/source/makefile ++++ b/csps/lpc32xx/bsps/fdi3250/source/makefile +@@ -22,16 +22,16 @@ + # + ######################################################################## + +-include $(NXPMCU_SOFTWARE)\makerule\$(CSP)\make.$(CSP).$(TOOL) ++include $(NXPMCU_SOFTWARE)/makerule/$(CSP)/make.$(CSP).$(TOOL) + + ######################################################################## + # + # Pick up the assembler and C source files in the directory + # + ######################################################################## +-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.ftypes +-AFLAGS +=-I..\Include +-CFLAGS +=-I..\Include ++include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.ftypes ++AFLAGS +=-I../Include ++CFLAGS +=-I../Include + + ######################################################################## + # +@@ -53,7 +53,7 @@ lib_clean: + # delete all targets this Makefile can make and all built libraries + # linked in + lib_realclean: +- -@$(RM) $(BSP_LIB_DIR)\*.a ++ -@$(RM) $(BSP_LIB_DIR)/*.a + -@$(RMDIR) $(BSP_LIB_DIR) + + clean: lib_clean +@@ -65,7 +65,7 @@ realclean: lib_realclean + # + ######################################################################## + +-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.build ++include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.build + + .PHONY: all lib_clean lib_realclean + +diff --git a/csps/lpc32xx/bsps/phy3250/examples/makefile b/csps/lpc32xx/bsps/phy3250/examples/makefile +index b939252..e7feaa6 100644 +--- a/csps/lpc32xx/bsps/phy3250/examples/makefile ++++ b/csps/lpc32xx/bsps/phy3250/examples/makefile +@@ -25,7 +25,7 @@ + # + ######################################################################## + +-include $(NXPMCU_SOFTWARE)\makerule\$(CSP)\make.$(CSP).$(TOOL) ++include $(NXPMCU_SOFTWARE)/makerule/$(CSP)/make.$(CSP).$(TOOL) + + SUBDIRS = adc dram_self_refresh hstimer hsuart i2c kscan lcd_colorbars + SUBDIRS += lcd_tsc mi2c mstimer pwm pwm_simple rtc sdcard sdcard_dma +diff --git a/csps/lpc32xx/bsps/phy3250/source/makefile b/csps/lpc32xx/bsps/phy3250/source/makefile +index 7c48e7d..750b776 100644 +--- a/csps/lpc32xx/bsps/phy3250/source/makefile ++++ b/csps/lpc32xx/bsps/phy3250/source/makefile +@@ -32,7 +32,7 @@ include $(NXPMCU_SOFTWARE)/makerule/$(CSP)/make.$(CSP).$(TOOL) + # Pick up the assembler and C source files in the directory + # + ######################################################################## +-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.ftypes ++include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.ftypes + AFLAGS +=-I../Include + CFLAGS +=-I../Include + +diff --git a/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/kickstart/makefile b/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/kickstart/makefile +index 01e2b38..526d6cc 100644 +--- a/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/kickstart/makefile ++++ b/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/kickstart/makefile +@@ -78,7 +78,7 @@ endif + + ######################################################################## + # +-# Compiler\linker specific stuff ++# Compiler/linker specific stuff + # + ######################################################################## + +diff --git a/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/norerase/makefile b/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/norerase/makefile +index ce329f5..e81b8db 100644 +--- a/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/norerase/makefile ++++ b/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/norerase/makefile +@@ -77,7 +77,7 @@ endif + + ######################################################################## + # +-# Compiler\linker specific stuff ++# Compiler/linker specific stuff + # + ######################################################################## + +diff --git a/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/s1lapp/makefile b/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/s1lapp/makefile +index 4426fc7..196faec 100644 +--- a/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/s1lapp/makefile ++++ b/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/s1lapp/makefile +@@ -77,7 +77,7 @@ endif + + ######################################################################## + # +-# Compiler\linker specific stuff ++# Compiler/linker specific stuff + # + ######################################################################## + +diff --git a/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/spi/kickstart/makefile b/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/spi/kickstart/makefile +index dc73b64..39fc304 100644 +--- a/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/spi/kickstart/makefile ++++ b/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/spi/kickstart/makefile +@@ -78,7 +78,7 @@ endif + + ######################################################################## + # +-# Compiler\linker specific stuff ++# Compiler/linker specific stuff + # + ######################################################################## + +diff --git a/csps/lpc32xx/source/makefile b/csps/lpc32xx/source/makefile +index 8e05456..16bd944 100644 +--- a/csps/lpc32xx/source/makefile ++++ b/csps/lpc32xx/source/makefile +@@ -25,16 +25,16 @@ + # + ######################################################################## + +-include $(NXPMCU_SOFTWARE)\makerule\$(CSP)\make.$(CSP).$(TOOL) ++include $(NXPMCU_SOFTWARE)/makerule/$(CSP)/make.$(CSP).$(TOOL) + + ######################################################################## + # + # Pick up the assembler and C source files in the directory + # + ######################################################################## +-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.ftypes +-AFLAGS +=-I..\Include +-CFLAGS +=-I..\Include ++include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.ftypes ++AFLAGS +=-I../Include ++CFLAGS +=-I../Include + + + ######################################################################## +@@ -68,7 +68,7 @@ realclean: lib_realclean + # + ######################################################################## + +-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.build ++include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.build + + .PHONY: all lib_clean lib_realclean + +diff --git a/lpc/source/makefile b/lpc/source/makefile +index 2860db9..ae7d612 100644 +--- a/lpc/source/makefile ++++ b/lpc/source/makefile +@@ -25,16 +25,16 @@ + # + ######################################################################## + +-include $(NXPMCU_SOFTWARE)\makerule\$(CSP)\make.$(CSP).$(TOOL) ++include $(NXPMCU_SOFTWARE)/makerule/$(CSP)/make.$(CSP).$(TOOL) + + ######################################################################## + # + # Pick up the assembler and C source files in the directory + # + ######################################################################## +-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.ftypes +-AFLAGS +=-I..\Include +-CFLAGS +=-I..\Include ++include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.ftypes ++AFLAGS +=-I../Include ++CFLAGS +=-I../Include + + ######################################################################## + # +@@ -67,7 +67,7 @@ realclean: lib_realclean + # + ######################################################################## + +-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.build ++include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.build + + .PHONY: all lib_clean lib_realclean + +diff --git a/makefile b/makefile +index 8645fcc..86fa6bc 100644 +--- a/makefile ++++ b/makefile +@@ -34,7 +34,7 @@ TARGETS_CLN =gen_clean csp_clean bsp_clean + # + ######################################################################## + +-include $(NXPMCU_SOFTWARE)\makerule\$(CSP)\make.$(CSP).$(TOOL) ++include $(NXPMCU_SOFTWARE)/makerule/$(CSP)/make.$(CSP).$(TOOL) + + ######################################################################## + # +diff --git a/makerule/common/make.rules.environment b/makerule/common/make.rules.environment +index d5737fe..4e6df48 100644 +--- a/makerule/common/make.rules.environment ++++ b/makerule/common/make.rules.environment +@@ -52,7 +52,7 @@ ASTYLE =astyle --options=$(BUILD_ROOT)/tools/astyle.cfg + # + ######################################################################## + +-CSP_LIB_DIR =$(BUILD_ROOT)\csps\$(CSP)\lib ++CSP_LIB_DIR =$(BUILD_ROOT)/csps/$(CSP)/lib + + ######################################################################## + # +@@ -60,7 +60,7 @@ CSP_LIB_DIR =$(BUILD_ROOT)\csps\$(CSP)\lib + # + ######################################################################## + +-BSP_LIB_DIR =$(BUILD_ROOT)\csps\$(CSP)\bsps\$(BSP)\lib ++BSP_LIB_DIR =$(BUILD_ROOT)/csps/$(CSP)/bsps/$(BSP)/lib + + ######################################################################## + # +@@ -68,7 +68,7 @@ BSP_LIB_DIR =$(BUILD_ROOT)\csps\$(CSP)\bsps\$(BSP)\lib + # + ######################################################################## + +-GEN_LIB_DIR =$(BUILD_ROOT)\$(GEN)\lib ++GEN_LIB_DIR =$(BUILD_ROOT)/$(GEN)/lib + + ######################################################################## + # +@@ -76,9 +76,9 @@ GEN_LIB_DIR =$(BUILD_ROOT)\$(GEN)\lib + # + ######################################################################## + +-CSP_DIR =$(BUILD_ROOT)\csps\$(CSP) +-CSP_SRC_DIR =$(CSP_DIR)\source +-CSP_INC_DIR =$(CSP_DIR)\include ++CSP_DIR =$(BUILD_ROOT)/csps/$(CSP) ++CSP_SRC_DIR =$(CSP_DIR)/source ++CSP_INC_DIR =$(CSP_DIR)/include + + ######################################################################## + # +@@ -86,9 +86,9 @@ CSP_INC_DIR =$(CSP_DIR)\include + # + ######################################################################## + +-BSP_DIR =$(BUILD_ROOT)\csps\$(CSP)\bsps\$(BSP) +-BSP_SRC_DIR =$(BSP_DIR)\source +-BSP_INC_DIR =$(BSP_DIR)\include ++BSP_DIR =$(BUILD_ROOT)/csps/$(CSP)/bsps/$(BSP) ++BSP_SRC_DIR =$(BSP_DIR)/source ++BSP_INC_DIR =$(BSP_DIR)/include + + ######################################################################## + # +@@ -96,9 +96,9 @@ BSP_INC_DIR =$(BSP_DIR)\include + # + ######################################################################## + +-GEN_DIR =$(BUILD_ROOT)\$(GEN) +-GEN_SRC_DIR =$(GEN_DIR)\source +-GEN_INC_DIR =$(GEN_DIR)\include ++GEN_DIR =$(BUILD_ROOT)/$(GEN) ++GEN_SRC_DIR =$(GEN_DIR)/source ++GEN_INC_DIR =$(GEN_DIR)/include + + ######################################################################## + # +@@ -151,6 +151,6 @@ endif + # + ######################################################################## + +-TARGET_CSP_LIB =$(CSP_LIB_DIR)\$(CSP_ARCHIVE) +-TARGET_BSP_LIB =$(BSP_LIB_DIR)\$(BSP_ARCHIVE) +-TARGET_GEN_LIB =$(GEN_LIB_DIR)\$(GEN_ARCHIVE) ++TARGET_CSP_LIB =$(CSP_LIB_DIR)/$(CSP_ARCHIVE) ++TARGET_BSP_LIB =$(BSP_LIB_DIR)/$(BSP_ARCHIVE) ++TARGET_GEN_LIB =$(GEN_LIB_DIR)/$(GEN_ARCHIVE) +diff --git a/makerule/lpc32xx/make.lpc32xx.gnu b/makerule/lpc32xx/make.lpc32xx.gnu +index 3277d99..d80b98d 100644 +--- a/makerule/lpc32xx/make.lpc32xx.gnu ++++ b/makerule/lpc32xx/make.lpc32xx.gnu +@@ -19,7 +19,7 @@ + # use without further testing or modification. + ######################################################################## + +-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.environment ++include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.environment + + CPU = arm926ej-s + CFLAGS = -mcpu=arm926ej-s -Wall -Os +diff --git a/makerule/lpc32xx/make.lpc32xx.iar b/makerule/lpc32xx/make.lpc32xx.iar +index 238ebbf..27d163f 100644 +--- a/makerule/lpc32xx/make.lpc32xx.iar ++++ b/makerule/lpc32xx/make.lpc32xx.iar +@@ -19,12 +19,12 @@ + # use without further testing or modification. + ######################################################################## + +-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.environment ++include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.environment + +-IARBASE = $(IAR_ROOT)\ARM +-IARTOOLS = $(IARBASE)\bin +-IAR_LIB = $(IARBASE)\lib +-IAR_INC = $(IARBASE)\inc ++IARBASE = $(IAR_ROOT)/ARM ++IARTOOLS = $(IARBASE)/bin ++IAR_LIB = $(IARBASE)/lib ++IAR_INC = $(IARBASE)/inc + CC = iccarm + CCP = iccarm + AS = iasmarm +@@ -36,7 +36,7 @@ CFLAGS += -I"$(IAR_INC)" + AFLAGS = --cpu 5TEJ + LDFLAGS = + LK = "$(TARGET_GEN_LIB)" "$(TARGET_CSP_LIB)" "$(TARGET_BSP_LIB)" +-;LK += "$(IAR_LIB)\dl4tpannl8f.r79" ++;LK += "$(IAR_LIB)/dl4tpannl8f.r79" + MAP = --map + LDESC = --config + ENTRY = --entry +diff --git a/makerule/lpc32xx/make.lpc32xx.keil b/makerule/lpc32xx/make.lpc32xx.keil +index dd27583..7334d3f 100644 +--- a/makerule/lpc32xx/make.lpc32xx.keil ++++ b/makerule/lpc32xx/make.lpc32xx.keil +@@ -19,7 +19,7 @@ + # use without further testing or modification. + ######################################################################## + +-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.environment ++include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.environment + + CC =armcc + CCP =armcc +@@ -27,11 +27,11 @@ AS =armasm + LD =armlink + AR =armar -r -s + CFLAGS =--arm -O3 -g --device DARMP3 -D__MICROLIB +-CFLAGS +=-I$(KEIL_RVCT)\inc -I$(CSP_INC_DIR) -I$(BSP_INC_DIR) -I$(GEN_INC_DIR) ++CFLAGS +=-I$(KEIL_RVCT)/inc -I$(CSP_INC_DIR) -I$(BSP_INC_DIR) -I$(GEN_INC_DIR) + AFLAGS =--arm --device=DARMP3 + AFLAGS +=-I$(CSP_INC_DIR) -I$(BSP_INC_DIR) -I$(GEN_INC_DIR) + LDFLAGS =--noremove +-LK =--device DARMP3 --libpath $(KEIL_RVCT)\lib --scan $(TARGET_CSP_LIB) ++LK =--device DARMP3 --libpath $(KEIL_RVCT)/lib --scan $(TARGET_CSP_LIB) + LK +=--scan $(TARGET_BSP_LIB) + LK +=--scan $(TARGET_GEN_LIB) + MAP =--map --list +diff --git a/makerule/lpc32xx/make.lpc32xx.rvw b/makerule/lpc32xx/make.lpc32xx.rvw +index 59961dd..2419976 100644 +--- a/makerule/lpc32xx/make.lpc32xx.rvw ++++ b/makerule/lpc32xx/make.lpc32xx.rvw +@@ -19,7 +19,7 @@ + # use without further testing or modification. + ######################################################################## + +-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.environment ++include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.environment + + CC =armcc + CCP =armcpp +-- +1.7.7.3 + diff --git a/boot/lpc32xxcdl/Config.in b/boot/lpc32xxcdl/Config.in new file mode 100644 index 000000000..97137aa7d --- /dev/null +++ b/boot/lpc32xxcdl/Config.in @@ -0,0 +1,10 @@ +config BR2_TARGET_LPC32XXCDL + bool "LPC32XX CDL (kickstart and S1L)" + depends on BR2_arm926t + +if BR2_TARGET_LPC32XXCDL + +config BR2_TARGET_LPC32XXCDL_BOARDNAME + string "LPC32xx board name" + +endif #BR2_TARGET_LPC32XXCDL diff --git a/boot/lpc32xxcdl/lpc32xxcdl.hash b/boot/lpc32xxcdl/lpc32xxcdl.hash new file mode 100644 index 000000000..8c6b73d63 --- /dev/null +++ b/boot/lpc32xxcdl/lpc32xxcdl.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 ded3fa936a96d3fb8188ca6214f57b5208bd49e5416bd69f38bfc810b34197bc lpc32xx_cdl-v2.11.zip diff --git a/boot/lpc32xxcdl/lpc32xxcdl.mk b/boot/lpc32xxcdl/lpc32xxcdl.mk new file mode 100644 index 000000000..9f5cd27f5 --- /dev/null +++ b/boot/lpc32xxcdl/lpc32xxcdl.mk @@ -0,0 +1,71 @@ +################################################################################ +# +# lpc32xxcdl +# +################################################################################ + +LPC32XXCDL_VERSION = 2.11 +LPC32XXCDL_SOURCE = lpc32xx_cdl-v$(LPC32XXCDL_VERSION).zip +LPC32XXCDL_SITE = https://community.nxp.com/pwmxy87654/attachments/pwmxy87654/lpcware-archive/61/2 + +LPC32XXCDL_INSTALL_TARGET = NO +LPC32XXCDL_INSTALL_IMAGES = YES + +ifeq ($(BR2_TARGET_LPC32XXCDL_BOARDNAME),"ea3250") +LPC32XXCDL_KICKSTART = kickstart/nand +LPC32XXCDL_KICKSTART_BURNER = nand/kickstart +LPC32XXCDL_S1L = s1l +LPC32XXCDL_S1L_BURNER = nand/s1lapp +endif + +ifeq ($(BR2_TARGET_LPC32XXCDL_BOARDNAME),"phy3250") +LPC32XXCDL_KICKSTART = kickstart/kickstart_nand +LPC32XXCDL_KICKSTART_BURNER = nand/kickstart +LPC32XXCDL_S1L = s1l/s1l_nand_boot +LPC32XXCDL_S1L_BURNER = nand/s1lapp +endif + +ifeq ($(BR2_TARGET_LPC32XXCDL_BOARDNAME),"fdi3250") +LPC32XXCDL_KICKSTART = kickstart/nand +LPC32XXCDL_KICKSTART_BURNER = nand/kickstart_jtag +LPC32XXCDL_S1L = s1l +LPC32XXCDL_S1L_BURNER = nand/s1lapp_jtag +endif + +LPC32XXCDL_BUILD_FLAGS = \ + CROSS_COMPILE=$(TARGET_CROSS) \ + NXPMCU_WINBASE=$(@D) \ + NXPMCU_SOFTWARE=$(@D) \ + BSP=$(BR2_TARGET_LPC32XXCDL_BOARDNAME) \ + CSP=lpc32xx TOOL=gnu GEN=lpc + +LPC32XXCDL_BOARD_STARTUP_DIR = \ + csps/lpc32xx/bsps/$(BR2_TARGET_LPC32XXCDL_BOARDNAME)/startup/examples/ + +# Source files are with dos newlines, which our patch infrastructure doesn't +# handle. Work around it by converting the affected files to unix newlines +# before patching +define LPC32XXCDL_EXTRACT_CMDS + unzip $(LPC32XXCDL_DL_DIR)/$(LPC32XXCDL_SOURCE) -d $(@D) + mv $(@D)/lpc3xxx_cdl/* $(@D) + rmdir $(@D)/lpc3xxx_cdl/ + sed -n 's|^[+-]\{3\} [^/]\+\([^ \t]*\)\(.*\)|$(@D)\1|p' \ + boot/lpc32xxcdl/*.patch| sort -u | xargs $(SED) 's/\x0D$$//' +endef + +define LPC32XXCDL_BUILD_CMDS + $(MAKE1) $(LPC32XXCDL_BUILD_FLAGS) -C $(@D) + $(MAKE1) $(LPC32XXCDL_BUILD_FLAGS) -C $(@D)/$(LPC32XXCDL_BOARD_STARTUP_DIR)/Burners/$(LPC32XXCDL_KICKSTART_BURNER) + $(MAKE1) $(LPC32XXCDL_BUILD_FLAGS) -C $(@D)/$(LPC32XXCDL_BOARD_STARTUP_DIR)/$(LPC32XXCDL_KICKSTART) + $(MAKE1) $(LPC32XXCDL_BUILD_FLAGS) -C $(@D)/$(LPC32XXCDL_BOARD_STARTUP_DIR)/Burners/$(LPC32XXCDL_S1L_BURNER) + $(MAKE1) $(LPC32XXCDL_BUILD_FLAGS) -C $(@D)/$(LPC32XXCDL_BOARD_STARTUP_DIR)/$(LPC32XXCDL_S1L) +endef + +define LPC32XXCDL_INSTALL_IMAGES_CMDS + cp $(@D)/$(LPC32XXCDL_BOARD_STARTUP_DIR)/Burners/$(LPC32XXCDL_KICKSTART_BURNER)/*gnu.bin $(BINARIES_DIR) + cp $(@D)/$(LPC32XXCDL_BOARD_STARTUP_DIR)/$(LPC32XXCDL_KICKSTART)/*gnu.bin $(BINARIES_DIR) + cp $(@D)/$(LPC32XXCDL_BOARD_STARTUP_DIR)/Burners/$(LPC32XXCDL_S1L_BURNER)/*gnu.bin $(BINARIES_DIR) + cp $(@D)/$(LPC32XXCDL_BOARD_STARTUP_DIR)/$(LPC32XXCDL_S1L)/*gnu.bin $(BINARIES_DIR) +endef + +$(eval $(generic-package)) diff --git a/boot/mv-ddr-marvell/Config.in b/boot/mv-ddr-marvell/Config.in new file mode 100644 index 000000000..4ee8c95b2 --- /dev/null +++ b/boot/mv-ddr-marvell/Config.in @@ -0,0 +1,10 @@ +config BR2_TARGET_MV_DDR_MARVELL + bool "mv-ddr-marvell" + depends on BR2_aarch64 + help + Marvell keeps algorithms for DDR training in a separate + repository. This code is not built separately, it is needed + as a dependency to build ATF firmware for Marvell Armada 7040 + and 8040 SoCs. + + https://github.com/MarvellEmbeddedProcessors/mv-ddr-marvell/ diff --git a/boot/mv-ddr-marvell/mv-ddr-marvell.hash b/boot/mv-ddr-marvell/mv-ddr-marvell.hash new file mode 100644 index 000000000..75e87d833 --- /dev/null +++ b/boot/mv-ddr-marvell/mv-ddr-marvell.hash @@ -0,0 +1,3 @@ +# Locally calculated +sha256 16f02232e21a15979b3d9971e28f7e59562484a5c1f99c2b28c248a3b76a63fa mv-ddr-marvell-d5acc10c287e40cc2feeb28710b92e45c93c702c.tar.gz +sha256 907a03943ca940790e97620aca8d46b5b04c653dcf2ab6c66a25238b60cf5635 ddr3_init.c diff --git a/boot/mv-ddr-marvell/mv-ddr-marvell.mk b/boot/mv-ddr-marvell/mv-ddr-marvell.mk new file mode 100644 index 000000000..e05192fe9 --- /dev/null +++ b/boot/mv-ddr-marvell/mv-ddr-marvell.mk @@ -0,0 +1,13 @@ +################################################################################ +# +# mv-ddr-marvell +# +################################################################################ + +# This is the latest commit on mv-ddr-devel as of 20220529 +MV_DDR_MARVELL_VERSION = d5acc10c287e40cc2feeb28710b92e45c93c702c +MV_DDR_MARVELL_SITE = $(call github,MarvellEmbeddedProcessors,mv-ddr-marvell,$(MV_DDR_MARVELL_VERSION)) +MV_DDR_MARVELL_LICENSE = GPL-2.0+ or LGPL-2.1 with freertos-exception-2.0, BSD-3-Clause, Marvell Commercial +MV_DDR_MARVELL_LICENSE_FILES = ddr3_init.c + +$(eval $(generic-package)) diff --git a/boot/mxs-bootlets/Config.in b/boot/mxs-bootlets/Config.in new file mode 100644 index 000000000..b3e392afa --- /dev/null +++ b/boot/mxs-bootlets/Config.in @@ -0,0 +1,90 @@ +config BR2_TARGET_MXS_BOOTLETS + bool "mxs-bootlets" + depends on BR2_arm + help + Stage1 bootloaders for Freescale iMX23/iMX28 SoCs + +if BR2_TARGET_MXS_BOOTLETS + +choice + prompt "Source" + default BR2_TARGET_MXS_BOOTLETS_FREESCALE + help + Select the location of the bootlets you want to use + +config BR2_TARGET_MXS_BOOTLETS_FREESCALE + bool "Freescale 10.12.01 version" + +config BR2_TARGET_MXS_BOOTLETS_CUSTOM_TARBALL + bool "Custom tarball" + +config BR2_TARGET_MXS_BOOTLETS_CUSTOM_GIT + bool "Custom Git repository" + +endchoice + +config BR2_TARGET_MXS_BOOTLETS_CUSTOM_TARBALL_URL + string "URL of custom bootlets tarball" + depends on BR2_TARGET_MXS_BOOTLETS_CUSTOM_TARBALL + +if BR2_TARGET_MXS_BOOTLETS_CUSTOM_GIT + +config BR2_TARGET_MXS_BOOTLETS_CUSTOM_GIT_URL + string "URL of custom Git repository" + +config BR2_TARGET_MXS_BOOTLETS_CUSTOM_GIT_VERSION + string "Custom Git version" + +endif + +choice + prompt "Bootstream" + help + Select which bootstream to generate + +config BR2_TARGET_MXS_BOOTLETS_BAREBOX + bool "Barebox Bootloader" + depends on BR2_TARGET_BAREBOX + +config BR2_TARGET_MXS_BOOTLETS_LINUX + bool "Linux Kernel" + depends on BR2_LINUX_KERNEL + +config BR2_TARGET_MXS_BOOTLETS_UBOOT + bool "U-boot bootloader" + depends on BR2_TARGET_UBOOT + +endchoice + +config BR2_TARGET_MXS_BOOTLETS_HAS_IVT + bool "HAB Support" + help + Enable this option if you are building bootlets + for the iMX28 platform that needs to include instructions + for the secure boot mechanism present on these SoCs + +choice + prompt "Board" + help + Select the board to build the bootlets for + +config BR2_TARGET_MXS_BOOTLETS_STMP37xx + bool "Sigmatel ST-MP3-7xx Board" + +config BR2_TARGET_MXS_BOOTLETS_STMP378x + bool "Sigmatel ST-MP3-78x Board" + +config BR2_TARGET_MXS_BOOTLETS_IMX28EVK + bool "Freescale iMX28 EVK Board" + +config BR2_TARGET_MXS_BOOTLETS_CUSTOM_BOARD + bool "Custom board" +endchoice + +config BR2_TARGET_MXS_BOOTLETS_CUSTOM_BOARD_NAME + string "Custom board name" + depends on BR2_TARGET_MXS_BOOTLETS_CUSTOM_BOARD + help + Name of the board to build the bootlets for + +endif diff --git a/boot/mxs-bootlets/barebox_ivt.bd b/boot/mxs-bootlets/barebox_ivt.bd new file mode 100644 index 000000000..0c67e9cfc --- /dev/null +++ b/boot/mxs-bootlets/barebox_ivt.bd @@ -0,0 +1,34 @@ +// STMP378x ROM command script to load and run U-Boot + +sources { + power_prep="./power_prep/power_prep"; + sdram_prep="./boot_prep/boot_prep"; + barebox="./barebox"; +} + +section (0) { + + //---------------------------------------------------------- + // Power Supply initialization + //---------------------------------------------------------- + + load power_prep; + load ivt (entry = power_prep:_start) > 0x8000; + hab call 0x8000; + + //---------------------------------------------------------- + // SDRAM initialization + //---------------------------------------------------------- + + load sdram_prep; + load ivt (entry = sdram_prep:_start) > 0x8000; + hab call 0x8000; + //---------------------------------------------------------- + // Load and call u_boot - ELF ARM image + //---------------------------------------------------------- + + load barebox; + load ivt (entry = barebox:start) > 0x8000; + hab call 0x8000; + +} diff --git a/boot/mxs-bootlets/mxs-bootlets.hash b/boot/mxs-bootlets/mxs-bootlets.hash new file mode 100644 index 000000000..6d3483c76 --- /dev/null +++ b/boot/mxs-bootlets/mxs-bootlets.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 63f6068ae36884adef4259bbb1fe2591755718f22c46d0a59d854883dfab1ffc imx-bootlets-src-10.12.01.tar.gz diff --git a/boot/mxs-bootlets/mxs-bootlets.mk b/boot/mxs-bootlets/mxs-bootlets.mk new file mode 100644 index 000000000..adc22767f --- /dev/null +++ b/boot/mxs-bootlets/mxs-bootlets.mk @@ -0,0 +1,106 @@ +################################################################################ +# +# mxs-bootlets +# +################################################################################ + +ifeq ($(BR2_TARGET_MXS_BOOTLETS_CUSTOM_TARBALL),y) +MXS_BOOTLETS_TARBALL = $(call qstrip,$(BR2_TARGET_MXS_BOOTLETS_CUSTOM_TARBALL_URL)) +MXS_BOOTLETS_SITE = $(patsubst %/,%,$(dir $(MXS_BOOTLETS_TARBALL))) +MXS_BOOTLETS_SOURCE = $(notdir $(MXS_BOOTLETS_TARBALL)) +BR_NO_CHECK_HASH_FOR += $(MXS_BOOTLETS_SOURCE) +else ifeq ($(BR2_TARGET_MXS_BOOTLETS_CUSTOM_GIT),y) +MXS_BOOTLETS_SITE = $(BR2_TARGET_MXS_BOOTLETS_CUSTOM_GIT_URL) +MXS_BOOTLETS_SITE_METHOD = git +MXS_BOOTLETS_VERSION = $(call qstrip,$(BR2_TARGET_MXS_BOOTLETS_CUSTOM_GIT_VERSION)) +BR_NO_CHECK_HASH_FOR += $(MXS_BOOTLETS_SOURCE) +else +MXS_BOOTLETS_VERSION = 10.12.01 +MXS_BOOTLETS_SITE = http://download.ossystems.com.br/bsp/freescale/source +MXS_BOOTLETS_SOURCE = imx-bootlets-src-$(MXS_BOOTLETS_VERSION).tar.gz +endif + +ifeq ($(BR2_TARGET_MXS_BOOTLETS_STMP37xx),y) +MXS_BOOTLETS_BOARD = stmp37xx_dev +else ifeq ($(BR2_TARGET_MXS_BOOTLETS_STMP378x),y) +MXS_BOOTLETS_BOARD = stmp378x_dev +else ifeq ($(BR2_TARGET_MXS_BOOTLETS_IMX28EVK),y) +MXS_BOOTLETS_BOARD = iMX28_EVK +else ifeq ($(BR2_TARGET_MXS_BOOTLETS_CUSTOM_BOARD),y) +MXS_BOOTLETS_BOARD = $(call qstrip,$(BR2_TARGET_MXS_BOOTLETS_CUSTOM_BOARD_NAME)) +endif + +ifeq ($(BR2_TARGET_MXS_BOOTLETS_HAS_IVT),y) +MXS_BOOTLETS_IVT_SUFFIX = _ivt +MXS_BOOTLETS_ELFTOSB_OPTIONS += -f imx28 +endif + +MXS_BOOTLETS_DEPENDENCIES = host-elftosb +MXS_BOOTLETS_LICENSE = GPL-2.0+ + +ifeq ($(BR2_TARGET_MXS_BOOTLETS_BAREBOX),y) +MXS_BOOTLETS_DEPENDENCIES += barebox +MXS_BOOTLETS_BOOTDESC = barebox$(MXS_BOOTLETS_IVT_SUFFIX).bd +MXS_BOOTLETS_BOOTSTREAM = $(MXS_BOOTLETS_BOARD)_barebox$(MXS_BOOTLETS_IVT_SUFFIX).sb + +else ifeq ($(BR2_TARGET_MXS_BOOTLETS_LINUX),y) +MXS_BOOTLETS_DEPENDENCIES += linux +MXS_BOOTLETS_BOOTDESC = linux$(MXS_BOOTLETS_IVT_SUFFIX).bd +MXS_BOOTLETS_BOOTSTREAM = $(MXS_BOOTLETS_BOARD)_linux$(MXS_BOOTLETS_IVT_SUFFIX).sb + +else ifeq ($(BR2_TARGET_MXS_BOOTLETS_UBOOT),y) +MXS_BOOTLETS_DEPENDENCIES += uboot +MXS_BOOTLETS_BOOTDESC = uboot$(MXS_BOOTLETS_IVT_SUFFIX).bd +MXS_BOOTLETS_BOOTSTREAM = $(MXS_BOOTLETS_BOARD)_uboot$(MXS_BOOTLETS_IVT_SUFFIX).sb +endif + +ifeq ($(BR2_TARGET_MXS_BOOTLETS_BAREBOX),y) +define MXS_BOOTLETS_SED_BAREBOX + sed -i 's,[^ *]barebox.*;,\tbarebox="$(BAREBOX_DIR)/barebox";,' $(@D)/$(MXS_BOOTLETS_BOOTDESC) +endef +endif + +ifeq ($(BR2_TARGET_MXS_BOOTLETS_LINUX),y) +define MXS_BOOTLETS_BUILD_LINUX_PREP + BOARD=$(MXS_BOOTLETS_BOARD) CROSS_COMPILE="$(TARGET_CROSS)" \ + $(MAKE1) -C $(@D) linux_prep +endef +define MXS_BOOTLETS_SED_LINUX + sed -i 's,[^ *]linux_prep.*;,\tlinux_prep="$(@D)/linux_prep/output-target/linux_prep";,' $(@D)/$(MXS_BOOTLETS_BOOTDESC) + sed -i 's,[^ *]zImage.*;,\tzImage="$(LINUX_DIR)/arch/arm/boot/zImage";,' $(@D)/$(MXS_BOOTLETS_BOOTDESC) +endef +endif + +ifeq ($(BR2_TARGET_MXS_BOOTLETS_UBOOT),y) +define MXS_BOOTLETS_SED_UBOOT + sed -i 's,[^ *]u_boot.*;,\tu_boot="$(UBOOT_DIR)/u-boot";,' $(@D)/$(MXS_BOOTLETS_BOOTDESC) +endef +endif + +define MXS_BOOTLETS_INSTALL_BAREBOX_BOOTDESC + cp boot/mxs-bootlets/barebox_ivt.bd $(@D)/ +endef + +MXS_BOOTLETS_POST_EXTRACT_HOOKS += MXS_BOOTLETS_INSTALL_BAREBOX_BOOTDESC + +define MXS_BOOTLETS_BUILD_CMDS + BOARD=$(MXS_BOOTLETS_BOARD) CROSS_COMPILE="$(TARGET_CROSS)" \ + $(MAKE1) -C $(@D) power_prep + BOARD=$(MXS_BOOTLETS_BOARD) CROSS_COMPILE="$(TARGET_CROSS)" \ + $(MAKE1) -C $(@D) boot_prep + $(MXS_BOOTLETS_BUILD_LINUX_PREP) + sed -i 's,[^ *]power_prep.*;,\tpower_prep="$(@D)/power_prep/power_prep";,' $(@D)/$(MXS_BOOTLETS_BOOTDESC) + sed -i 's,[^ *]sdram_prep.*;,\tsdram_prep="$(@D)/boot_prep/boot_prep";,' $(@D)/$(MXS_BOOTLETS_BOOTDESC) + $(MXS_BOOTLETS_SED_BAREBOX) + $(MXS_BOOTLETS_SED_LINUX) + $(MXS_BOOTLETS_SED_UBOOT) + $(HOST_DIR)/bin/elftosb $(MXS_BOOTLETS_ELFTOSB_OPTIONS) \ + -z -c $(@D)/$(MXS_BOOTLETS_BOOTDESC) \ + -o $(@D)/$(MXS_BOOTLETS_BOOTSTREAM) +endef + +define MXS_BOOTLETS_INSTALL_TARGET_CMDS + cp $(@D)/$(MXS_BOOTLETS_BOOTSTREAM) $(BINARIES_DIR)/ +endef + +$(eval $(generic-package)) diff --git a/boot/opensbi/0.9/0001-Makefile-Don-t-specify-mabi-or-march.patch b/boot/opensbi/0.9/0001-Makefile-Don-t-specify-mabi-or-march.patch new file mode 100644 index 000000000..5f554a6c2 --- /dev/null +++ b/boot/opensbi/0.9/0001-Makefile-Don-t-specify-mabi-or-march.patch @@ -0,0 +1,37 @@ +From f5871e1f3650d6c8a032928cb5d8ca00c275c377 Mon Sep 17 00:00:00 2001 +From: Alistair Francis +Date: Fri, 15 Feb 2019 14:57:41 -0800 +Subject: [PATCH] Makefile: Don't specify mabi or march + +To avoid + can't link double-float modules with soft-float modules +errors when building 32-bit openSBI don't specify mabi or march. + +Signed-off-by: Alistair Francis +--- + Makefile | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/Makefile b/Makefile +index ae68f55..10851fc 100644 +--- a/Makefile ++++ b/Makefile +@@ -145,7 +145,6 @@ GENFLAGS += $(firmware-genflags-y) + CFLAGS = -g -Wall -Werror -nostdlib -fno-strict-aliasing -O2 + CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls + CFLAGS += -mno-save-restore -mstrict-align +-CFLAGS += -mabi=$(PLATFORM_RISCV_ABI) -march=$(PLATFORM_RISCV_ISA) + CFLAGS += -mcmodel=$(PLATFORM_RISCV_CODE_MODEL) + CFLAGS += $(GENFLAGS) + CFLAGS += $(platform-cflags-y) +@@ -158,7 +157,6 @@ CPPFLAGS += $(firmware-cppflags-y) + ASFLAGS = -g -Wall -nostdlib -D__ASSEMBLY__ + ASFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls + ASFLAGS += -mno-save-restore -mstrict-align +-ASFLAGS += -mabi=$(PLATFORM_RISCV_ABI) -march=$(PLATFORM_RISCV_ISA) + ASFLAGS += -mcmodel=$(PLATFORM_RISCV_CODE_MODEL) + ASFLAGS += $(GENFLAGS) + ASFLAGS += $(platform-asflags-y) +-- +2.20.1 + diff --git a/boot/opensbi/0.9/0002-Makefile-unconditionally-disable-SSP.patch b/boot/opensbi/0.9/0002-Makefile-unconditionally-disable-SSP.patch new file mode 100644 index 000000000..c4edd37f1 --- /dev/null +++ b/boot/opensbi/0.9/0002-Makefile-unconditionally-disable-SSP.patch @@ -0,0 +1,53 @@ +From e389d5fbc296e496db15368b2b621e0f178f7f34 Mon Sep 17 00:00:00 2001 +From: Fabrice Fontaine +Date: Sat, 8 May 2021 21:28:10 +0200 +Subject: [PATCH] Makefile: unconditionally disable SSP + +Though -nostdlib is passed in {C,+AS,DTSCPP}FLAGS, -fno-stack-protector +must also be passed to avoid linking errors related to undefined +references to '__stack_chk_guard' and '__stack_chk_fail' if toolchain +enforces -fstack-protector. + +Fixes: + - https://gitlab.com/kubu93/buildroot/-/jobs/1247043359 + +Signed-off-by: Fabrice Fontaine +[Upstream status: https://github.com/riscv/opensbi/pull/211] +--- + Makefile | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/Makefile b/Makefile +index eeffe6b..1419360 100644 +--- a/Makefile ++++ b/Makefile +@@ -203,7 +203,7 @@ GENFLAGS += $(libsbiutils-genflags-y) + GENFLAGS += $(platform-genflags-y) + GENFLAGS += $(firmware-genflags-y) + +-CFLAGS = -g -Wall -Werror -ffreestanding -nostdlib -fno-strict-aliasing -O2 ++CFLAGS = -g -Wall -Werror -ffreestanding -nostdlib -fno-stack-protector -fno-strict-aliasing -O2 + CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls + CFLAGS += -mno-save-restore -mstrict-align + CFLAGS += -mabi=$(PLATFORM_RISCV_ABI) -march=$(PLATFORM_RISCV_ISA) +@@ -217,7 +217,7 @@ CPPFLAGS += $(GENFLAGS) + CPPFLAGS += $(platform-cppflags-y) + CPPFLAGS += $(firmware-cppflags-y) + +-ASFLAGS = -g -Wall -nostdlib -D__ASSEMBLY__ ++ASFLAGS = -g -Wall -nostdlib -fno-stack-protector -D__ASSEMBLY__ + ASFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls + ASFLAGS += -mno-save-restore -mstrict-align + ASFLAGS += -mabi=$(PLATFORM_RISCV_ABI) -march=$(PLATFORM_RISCV_ISA) +@@ -236,7 +236,7 @@ MERGEFLAGS += -r + MERGEFLAGS += -b elf$(PLATFORM_RISCV_XLEN)-littleriscv + MERGEFLAGS += -m elf$(PLATFORM_RISCV_XLEN)lriscv + +-DTSCPPFLAGS = $(CPPFLAGS) -nostdinc -nostdlib -fno-builtin -D__DTS__ -x assembler-with-cpp ++DTSCPPFLAGS = $(CPPFLAGS) -nostdinc -nostdlib -fno-stack-protector -fno-builtin -D__DTS__ -x assembler-with-cpp + + # Setup functions for compilation + define dynamic_flags +-- +2.30.2 + diff --git a/boot/opensbi/Config.in b/boot/opensbi/Config.in new file mode 100644 index 000000000..86f848f17 --- /dev/null +++ b/boot/opensbi/Config.in @@ -0,0 +1,128 @@ +config BR2_TARGET_OPENSBI + bool "opensbi" + depends on BR2_riscv + help + OpenSBI aims to provide an open-source and extensible + implementation of the RISC-V SBI specification for a platform + specific firmware (M-mode) and a general purpose OS, + hypervisor or bootloader (S-mode or HS-mode). OpenSBI + implementation can be easily extended by RISC-V platform or + System-on-Chip vendors to fit a particular hadware + configuration. + + https://github.com/riscv/opensbi.git + +if BR2_TARGET_OPENSBI +choice + prompt "OpenSBI Version" + help + Select the specific OpenSBI version you want to use + +config BR2_TARGET_OPENSBI_LATEST_VERSION + bool "0.9" + +config BR2_TARGET_OPENSBI_CUSTOM_VERSION + bool "Custom version" + help + This option allows to use a specific official versions + +config BR2_TARGET_OPENSBI_CUSTOM_TARBALL + bool "Custom tarball" + +config BR2_TARGET_OPENSBI_CUSTOM_GIT + bool "Custom Git repository" + +endchoice + +config BR2_TARGET_OPENSBI_CUSTOM_VERSION_VALUE + string "OpenSBI version" + depends on BR2_TARGET_OPENSBI_CUSTOM_VERSION + +config BR2_TARGET_OPENSBI_CUSTOM_TARBALL_LOCATION + string "URL of custom OpenSBI tarball" + depends on BR2_TARGET_OPENSBI_CUSTOM_TARBALL + +if BR2_TARGET_OPENSBI_CUSTOM_GIT + +config BR2_TARGET_OPENSBI_CUSTOM_REPO_URL + string "URL of custom repository" + +config BR2_TARGET_OPENSBI_CUSTOM_REPO_VERSION + string "Custom repository version" + help + Revision to use in the typical format used by Git. E.G. a + sha id, a tag, branch, .. + +endif + +config BR2_TARGET_OPENSBI_VERSION + string + default "0.9" if BR2_TARGET_OPENSBI_LATEST_VERSION + default BR2_TARGET_OPENSBI_CUSTOM_VERSION_VALUE \ + if BR2_TARGET_OPENSBI_CUSTOM_VERSION + default "custom" if BR2_TARGET_OPENSBI_CUSTOM_TARBALL + default BR2_TARGET_OPENSBI_CUSTOM_REPO_VERSION \ + if BR2_TARGET_OPENSBI_CUSTOM_GIT + +config BR2_TARGET_OPENSBI_PLAT + string "OpenSBI Platform" + default "" + help + Specifies the OpenSBI platform to build. If no platform is + specified only the OpenSBI platform independent static + library libsbi.a is built. If a platform is specified then + the platform specific static library libplatsbi.a and firmware + examples are built. + +config BR2_TARGET_OPENSBI_INSTALL_DYNAMIC_IMG + bool "Install fw_dynamic image" + default y if BR2_TARGET_OPENSBI_PLAT != "" + help + This installs the fw_dynamic image. + +config BR2_TARGET_OPENSBI_INSTALL_JUMP_IMG + bool "Install fw_jump image" + default y if BR2_TARGET_OPENSBI_PLAT != "" + help + This installs the fw_jump image. + +config BR2_TARGET_OPENSBI_INSTALL_PAYLOAD_IMG + bool "Install fw_payload image" + help + This option enables the installation of the fw_paylaod + image. + +config BR2_TARGET_OPENSBI_LINUX_PAYLOAD + bool "Include Linux as OpenSBI Payload" + depends on BR2_TARGET_OPENSBI_PLAT != "" + depends on BR2_LINUX_KERNEL + depends on BR2_LINUX_KERNEL_IMAGE + select BR2_TARGET_OPENSBI_INSTALL_PAYLOAD_IMG + help + Build OpenSBI with the Linux kernel as a Payload. + +config BR2_TARGET_OPENSBI_UBOOT_PAYLOAD + bool "Include U-Boot as OpenSBI Payload" + depends on BR2_TARGET_OPENSBI_PLAT != "" + depends on BR2_TARGET_UBOOT + select BR2_TARGET_OPENSBI_INSTALL_PAYLOAD_IMG + help + Build OpenSBI with the U-Boot as a Payload. + +config BR2_TARGET_OPENSBI_FW_FDT_PATH + bool "Include U-Boot DTB in OpenSBI Payload" + depends on BR2_TARGET_OPENSBI_UBOOT_PAYLOAD + select BR2_TARGET_UBOOT_FORMAT_DTB + help + Build OpenSBI with FW_FDT_PATH set to + $(BINARIES_DIR)/u-boot.dtb. Note that CONFIG_OF_SEPARATE + must be set in the U-Boot configuration for this file to be + produced. + +config BR2_TARGET_OPENSBI_ADDITIONAL_VARIABLES + string "Additional build variables" + help + Additional parameters for the build, which will be passed on + the make command line. E.g: BUILD_INFO=1. + +endif diff --git a/boot/opensbi/opensbi.hash b/boot/opensbi/opensbi.hash new file mode 100644 index 000000000..3b6d97c42 --- /dev/null +++ b/boot/opensbi/opensbi.hash @@ -0,0 +1,3 @@ +# locally computed +sha256 60f995cb3cd03e3cf5e649194d3395d0fe67499fd960a36cf7058a4efde686f0 opensbi-0.9.tar.gz +sha256 82d13fb1bf6bb162629deeea9eb9c117e74548d3b707e478967691fe79a68e21 COPYING.BSD diff --git a/boot/opensbi/opensbi.mk b/boot/opensbi/opensbi.mk new file mode 100644 index 000000000..06ec87b2c --- /dev/null +++ b/boot/opensbi/opensbi.mk @@ -0,0 +1,90 @@ +################################################################################ +# +# opensbi +# +################################################################################ + +OPENSBI_VERSION = $(call qstrip,$(BR2_TARGET_OPENSBI_VERSION)) + +ifeq ($(BR2_TARGET_OPENSBI_CUSTOM_TARBALL),y) +# Handle custom OpenSBI tarballs as specified by the configuration +OPENSBI_TARBALL = $(call qstrip,$(BR2_TARGET_OPENSBI_CUSTOM_TARBALL_LOCATION)) +OPENSBI_SITE = $(patsubst %/,%,$(dir $(OPENSBI_TARBALL))) +OPENSBI_SOURCE = $(notdir $(OPENSBI_TARBALL)) +else ifeq ($(BR2_TARGET_OPENSBI_CUSTOM_GIT),y) +OPENSBI_SITE = $(call qstrip,$(BR2_TARGET_OPENSBI_CUSTOM_REPO_URL)) +OPENSBI_SITE_METHOD = git +else +# Handle official OpenSBI versions +OPENSBI_SITE = $(call github,riscv,opensbi,v$(OPENSBI_VERSION)) +endif + +OPENSBI_LICENSE = BSD-2-Clause +ifeq ($(BR2_TARGET_OPENSBI_LATEST_VERSION),y) +OPENSBI_LICENSE_FILES = COPYING.BSD +endif +OPENSBI_INSTALL_TARGET = NO +OPENSBI_INSTALL_STAGING = YES + +ifeq ($(BR2_TARGET_OPENSBI)$(BR2_TARGET_OPENSBI_LATEST_VERSION),y) +BR_NO_CHECK_HASH_FOR += $(OPENSBI_SOURCE) +endif + +OPENSBI_MAKE_ENV = \ + CROSS_COMPILE=$(TARGET_CROSS) \ + $(call qstrip,$(BR2_TARGET_OPENSBI_ADDITIONAL_VARIABLES)) + +OPENSBI_PLAT = $(call qstrip,$(BR2_TARGET_OPENSBI_PLAT)) +ifneq ($(OPENSBI_PLAT),) +OPENSBI_MAKE_ENV += PLATFORM=$(OPENSBI_PLAT) +endif + +ifeq ($(BR2_TARGET_OPENSBI_LINUX_PAYLOAD),y) +OPENSBI_DEPENDENCIES += linux +OPENSBI_MAKE_ENV += FW_PAYLOAD_PATH="$(BINARIES_DIR)/Image" +endif + +ifeq ($(BR2_TARGET_OPENSBI_UBOOT_PAYLOAD),y) +OPENSBI_DEPENDENCIES += uboot +OPENSBI_MAKE_ENV += FW_PAYLOAD_PATH="$(BINARIES_DIR)/u-boot.bin" +ifeq ($(BR2_TARGET_OPENSBI_FW_FDT_PATH),y) +OPENSBI_MAKE_ENV += FW_FDT_PATH="$(BINARIES_DIR)/u-boot.dtb" +endif +endif + +define OPENSBI_BUILD_CMDS + $(TARGET_MAKE_ENV) $(OPENSBI_MAKE_ENV) $(MAKE) -C $(@D) +endef + +ifeq ($(BR2_TARGET_OPENSBI_INSTALL_DYNAMIC_IMG),y) +OPENSBI_INSTALL_IMAGES = YES +OPENSBI_FW_IMAGES += dynamic +endif + +ifeq ($(BR2_TARGET_OPENSBI_INSTALL_JUMP_IMG),y) +OPENSBI_INSTALL_IMAGES = YES +OPENSBI_FW_IMAGES += jump +endif + +ifeq ($(BR2_TARGET_OPENSBI_INSTALL_PAYLOAD_IMG),y) +OPENSBI_INSTALL_IMAGES = YES +OPENSBI_FW_IMAGES += payload +endif + +define OPENSBI_INSTALL_IMAGES_CMDS + $(foreach f,$(OPENSBI_FW_IMAGES),\ + $(INSTALL) -m 0644 -D $(@D)/build/platform/$(OPENSBI_PLAT)/firmware/fw_$(f).bin \ + $(BINARIES_DIR)/fw_$(f).bin + $(INSTALL) -m 0644 -D $(@D)/build/platform/$(OPENSBI_PLAT)/firmware/fw_$(f).elf \ + $(BINARIES_DIR)/fw_$(f).elf + ) +endef + +# libsbi.a is not a library meant to be linked in user-space code, but +# with bare metal code, which is why we don't install it in +# $(STAGING_DIR)/usr/lib +define OPENSBI_INSTALL_STAGING_CMDS + $(INSTALL) -m 0644 -D $(@D)/build/lib/libsbi.a $(STAGING_DIR)/usr/share/opensbi/libsbi.a +endef + +$(eval $(generic-package)) diff --git a/boot/optee-os/3.13.0/0001-core-zlib-fix-build-warning-when-_LFS64_LARGEFILE-is.patch b/boot/optee-os/3.13.0/0001-core-zlib-fix-build-warning-when-_LFS64_LARGEFILE-is.patch new file mode 100644 index 000000000..0ff61dc52 --- /dev/null +++ b/boot/optee-os/3.13.0/0001-core-zlib-fix-build-warning-when-_LFS64_LARGEFILE-is.patch @@ -0,0 +1,56 @@ +From 82becbadd5918ed7ad3c2b651ce479084b5feb2a Mon Sep 17 00:00:00 2001 +From: Etienne Carriere +Date: Mon, 10 May 2021 15:58:41 +0200 +Subject: core: zlib: fix build warning when _LFS64_LARGEFILE is not defined + +In zlib, _LFS64_LARGEFILE is expected to be a boolean directive, either +1 (true) or 0 (false). Depending on toolchain version and directives +build may produces warnings (as shown below with gcc 9.3) when the macro +is not defined hence this change to default it to value 0 (false). + +core/lib/zlib/zutil.h:196:39: warning: "_LFS64_LARGEFILE" is not defined, evaluates to 0 [-Wundef] + 196 | (!defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0) + | ^~~~~~~~~~~~~~~~ +In file included from core/lib/zlib/adler32.c:9: +core/lib/zlib/zutil.h:196:39: warning: "_LFS64_LARGEFILE" is not defined, evaluates to 0 [-Wundef] + 196 | (!defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0) + | ^~~~~~~~~~~~~~~~ + CC out/core/lib/zlib/zutil.o +In file included from core/lib/zlib/inftrees.c:7: +core/lib/zlib/zutil.h:196:39: warning: "_LFS64_LARGEFILE" is not defined, evaluates to 0 [-Wundef] + 196 | (!defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0) + | ^~~~~~~~~~~~~~~~ +In file included from core/lib/zlib/inflate.c:84: +core/lib/zlib/zutil.h:196:39: warning: "_LFS64_LARGEFILE" is not defined, evaluates to 0 [-Wundef] + 196 | (!defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0) + | ^~~~~~~~~~~~~~~~ +In file included from core/lib/zlib/zutil.c:9: +core/lib/zlib/zutil.h:196:39: warning: "_LFS64_LARGEFILE" is not defined, evaluates to 0 [-Wundef] + 196 | (!defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0) + | ^~~~~~~~~~~~~~~~ + +Signed-off-by: Etienne Carriere +Reviewed-by: Jens Wiklander +--- + core/lib/zlib/zconf.h | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/core/lib/zlib/zconf.h b/core/lib/zlib/zconf.h +index 0bca18be..a7d13741 100644 +--- a/core/lib/zlib/zconf.h ++++ b/core/lib/zlib/zconf.h +@@ -487,6 +487,11 @@ typedef uLong FAR uLongf; + # endif + #endif + ++/* Other places expect _LFS64_LARGEFILE to be defined with a valid value */ ++#ifndef _LFS64_LARGEFILE ++#define _LFS64_LARGEFILE 0 ++#endif ++ + #if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0 + # define Z_LFS64 + #endif +-- +2.17.1 + diff --git a/boot/optee-os/Config.in b/boot/optee-os/Config.in new file mode 100644 index 000000000..5244700bc --- /dev/null +++ b/boot/optee-os/Config.in @@ -0,0 +1,146 @@ +config BR2_TARGET_OPTEE_OS + bool "optee_os" + depends on BR2_ARM_CPU_ARMV8A || BR2_ARM_CPU_ARMV7A + help + OP-TEE OS provides the secure world boot image and the trust + application development kit of the OP-TEE project. OP-TEE OS + also provides generic trusted application one can embedded + into its system. + + http://github.com/OP-TEE/optee_os + +if BR2_TARGET_OPTEE_OS + +choice + prompt "OP-TEE OS version" + default BR2_TARGET_OPTEE_OS_LATEST if BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS + help + Select the version of OP-TEE OS you want to use + +config BR2_TARGET_OPTEE_OS_LATEST + bool "3.18.0" + depends on BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS + select BR2_TARGET_OPTEE_OS_NEEDS_PYTHON_CRYPTOGRAPHY + help + Use the latest release tag from the OP-TEE OS official Git + repository. + +config BR2_TARGET_OPTEE_OS_CUSTOM_TARBALL + bool "Custom tarball" + help + This option allows to specify a URL pointing to an OP-TEE OS + source tarball. This URL can use any protocol recognized by + Buildroot, like http://, ftp://, file:// or scp://. + + When pointing to a local tarball using file://, you may want + to use a make variable like $(TOPDIR) to reference the root of + the Buildroot tree. + +config BR2_TARGET_OPTEE_OS_CUSTOM_GIT + bool "Custom Git repository" + help + Use a custom version fetched from a Git repository. + +endchoice + +if BR2_TARGET_OPTEE_OS_CUSTOM_TARBALL + +config BR2_TARGET_OPTEE_OS_CUSTOM_TARBALL_LOCATION + string "URL of custom OP-TEE OS tarball" + +endif + +if BR2_TARGET_OPTEE_OS_CUSTOM_GIT + +config BR2_TARGET_OPTEE_OS_CUSTOM_REPO_URL + string "URL of custom repository" + depends on BR2_TARGET_OPTEE_OS_CUSTOM_GIT + help + Specific location of the reference source tree Git + repository. + +config BR2_TARGET_OPTEE_OS_CUSTOM_REPO_VERSION + string "Custom repository version" + depends on BR2_TARGET_OPTEE_OS_CUSTOM_GIT + help + Revision to use in the typical format used by Git, i.e a + SHA1 or a tag. + +endif + +config BR2_TARGET_OPTEE_OS_VERSION + string + default "3.18.0" if BR2_TARGET_OPTEE_OS_LATEST + default "custom" if BR2_TARGET_OPTEE_OS_CUSTOM_TARBALL + default BR2_TARGET_OPTEE_OS_CUSTOM_REPO_VERSION \ + if BR2_TARGET_OPTEE_OS_CUSTOM_GIT + +config BR2_TARGET_OPTEE_OS_NEEDS_DTC + bool "OP-TEE OS needs dtc" + select BR2_PACKAGE_HOST_DTC + help + Select this option if your OP-TEE OS platform configuration + requires the Device Tree compiler to be available. + +config BR2_TARGET_OPTEE_OS_NEEDS_PYTHON_CRYPTOGRAPHY + bool "OP-TEE OS needs host-python-cryptography" + depends on BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS + help + OP-TEE OS version below 3.16 used python-pycryptodomex + package in python scripts. Newer version uses + python-cryptography. Select this option if optee-os needs + python-cryptography to be built. + +config BR2_TARGET_OPTEE_OS_CORE + bool "Build core" + default y + help + This option will build and install the OP-TEE core + boot images. + +config BR2_TARGET_OPTEE_OS_SDK + bool "Build TA devkit" + default y + help + This option will build and install the OP-TEE development + kit for building OP-TEE trusted application images. It is + installed in the staging directory /lib/optee. + +config BR2_TARGET_OPTEE_OS_SERVICES + bool "Build service TAs and libs" + default y + select BR2_TARGET_OPTEE_OS_CORE + help + This option installs the service trusted applications and + trusted shared libraries built from OP-TEE OS source tree. + These are installed in target /lib/optee_armtz directory + as other trusted applications. At runtime OP-TEE OS can + load these from this non-secure filesystem/directory into + the secure world for execution. + +config BR2_TARGET_OPTEE_OS_PLATFORM + string "Target platform (mandatory)" + help + Value for the mandated PLATFORM build directive provided to + OP-TEE OS. + +config BR2_TARGET_OPTEE_OS_PLATFORM_FLAVOR + string "Target platform flavor (optional)" + help + Value for the optional PLATFORM_FLAVOR build directive + provided to OP-TEE OS. + +config BR2_TARGET_OPTEE_OS_ADDITIONAL_VARIABLES + string "Additional build variables" + help + Additional parameters for the OP-TEE OS build + E.g. 'CFG_TEE_CORE_LOG_LEVEL=3 CFG_UNWIND=y' + +config BR2_TARGET_OPTEE_OS_CORE_IMAGES + string "Binary boot images" + default "tee.bin tee-*_v2.bin" + help + Names of generated image files that are installed in the + output images/ directory. + +endif # BR2_TARGET_OPTEE_OS diff --git a/boot/optee-os/optee-os.hash b/boot/optee-os/optee-os.hash new file mode 100644 index 000000000..38f68bec5 --- /dev/null +++ b/boot/optee-os/optee-os.hash @@ -0,0 +1,4 @@ +# From https://github.com/OP-TEE/optee_os/archive/3.18.0/optee-os-3.18.0.tar.gz +sha256 bdd309697745ec4406951652094b50d9adb06c3612f01bd8a3d72682ec8e03e8 optee-os-3.18.0.tar.gz +# Locally computed +sha256 1247ee90858f4037b6cac63cbffddfed435d0d73c631b37d78c1e6e6ab3e5d1a LICENSE diff --git a/boot/optee-os/optee-os.mk b/boot/optee-os/optee-os.mk new file mode 100644 index 000000000..38b0d367e --- /dev/null +++ b/boot/optee-os/optee-os.mk @@ -0,0 +1,151 @@ +################################################################################ +# +# optee-os +# +################################################################################ + +OPTEE_OS_VERSION = $(call qstrip,$(BR2_TARGET_OPTEE_OS_VERSION)) +OPTEE_OS_LICENSE = BSD-2-Clause +ifeq ($(BR2_TARGET_OPTEE_OS_LATEST),y) +OPTEE_OS_LICENSE_FILES = LICENSE +endif + +OPTEE_OS_INSTALL_STAGING = YES +OPTEE_OS_INSTALL_IMAGES = YES + +ifeq ($(BR2_TARGET_OPTEE_OS_CUSTOM_TARBALL),y) +OPTEE_OS_TARBALL = $(call qstrip,$(BR2_TARGET_OPTEE_OS_CUSTOM_TARBALL_LOCATION)) +OPTEE_OS_SITE = $(patsubst %/,%,$(dir $(OPTEE_OS_TARBALL))) +OPTEE_OS_SOURCE = $(notdir $(OPTEE_OS_TARBALL)) +else ifeq ($(BR2_TARGET_OPTEE_OS_CUSTOM_GIT),y) +OPTEE_OS_SITE = $(call qstrip,$(BR2_TARGET_OPTEE_OS_CUSTOM_REPO_URL)) +OPTEE_OS_SITE_METHOD = git +else +OPTEE_OS_SITE = $(call github,OP-TEE,optee_os,$(OPTEE_OS_VERSION)) +endif + +ifeq ($(BR2_TARGET_OPTEE_OS):$(BR2_TARGET_OPTEE_OS_LATEST),y:) +BR_NO_CHECK_HASH_FOR += $(OPTEE_OS_SOURCE) +endif + +OPTEE_OS_DEPENDENCIES = host-openssl host-python3 host-python-pyelftools + +ifeq ($(BR2_TARGET_OPTEE_OS_NEEDS_PYTHON_CRYPTOGRAPHY),y) +OPTEE_OS_DEPENDENCIES += host-python-cryptography +else +OPTEE_OS_DEPENDENCIES += host-python-pycryptodomex +endif + +ifeq ($(BR2_TARGET_OPTEE_OS_NEEDS_DTC),y) +OPTEE_OS_DEPENDENCIES += host-dtc +endif + +# On 64bit targets, OP-TEE OS can be built in 32bit mode, or +# can be built in 64bit mode and support 32bit and 64bit +# trusted applications. Since buildroot currently references +# a single cross compiler, build exclusively in 32bit +# or 64bit mode. +OPTEE_OS_MAKE_OPTS = \ + CROSS_COMPILE="$(TARGET_CROSS)" \ + CROSS_COMPILE_core="$(TARGET_CROSS)" \ + CROSS_COMPILE_ta_arm64="$(TARGET_CROSS)" \ + CROSS_COMPILE_ta_arm32="$(TARGET_CROSS)" \ + PYTHON3="$(HOST_DIR)/bin/python3" + +ifeq ($(BR2_aarch64),y) +OPTEE_OS_MAKE_OPTS += \ + CFG_ARM64_core=y \ + CFG_USER_TA_TARGETS=ta_arm64 +else +OPTEE_OS_MAKE_OPTS += \ + CFG_ARM32_core=y +endif + +# Get mandatory PLAFORM and optional PLATFORM_FLAVOR and additional +# variables +OPTEE_OS_MAKE_OPTS += PLATFORM=$(call qstrip,$(BR2_TARGET_OPTEE_OS_PLATFORM)) +ifneq ($(call qstrip,$(BR2_TARGET_OPTEE_OS_PLATFORM_FLAVOR)),) +OPTEE_OS_MAKE_OPTS += PLATFORM_FLAVOR=$(call qstrip,$(BR2_TARGET_OPTEE_OS_PLATFORM_FLAVOR)) +endif +OPTEE_OS_MAKE_OPTS += $(call qstrip,$(BR2_TARGET_OPTEE_OS_ADDITIONAL_VARIABLES)) + +# Requests OP-TEE OS to build from subdirectory out/ of its sourcetree +# root path otherwise the output directory path depends on the target +# platform name. +OPTEE_OS_BUILDDIR_OUT = out +ifeq ($(BR2_aarch64),y) +OPTEE_OS_LOCAL_SDK = $(OPTEE_OS_BUILDDIR_OUT)/export-ta_arm64 +OPTEE_OS_SDK = $(STAGING_DIR)/lib/optee/export-ta_arm64 +endif +ifeq ($(BR2_arm),y) +OPTEE_OS_LOCAL_SDK = $(OPTEE_OS_BUILDDIR_OUT)/export-ta_arm32 +OPTEE_OS_SDK = $(STAGING_DIR)/lib/optee/export-ta_arm32 +endif + +OPTEE_OS_IMAGE_FILES = $(call qstrip,$(BR2_TARGET_OPTEE_OS_CORE_IMAGES)) + +ifeq ($(BR2_TARGET_OPTEE_OS_CORE),y) +define OPTEE_OS_BUILD_CORE + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) O=$(OPTEE_OS_BUILDDIR_OUT) \ + $(TARGET_CONFIGURE_OPTS) $(OPTEE_OS_MAKE_OPTS) all +endef +define OPTEE_OS_INSTALL_IMAGES_CORE + mkdir -p $(BINARIES_DIR) + $(foreach f,$(OPTEE_OS_IMAGE_FILES), \ + cp -dpf $(wildcard $(@D)/$(OPTEE_OS_BUILDDIR_OUT)/core/$(f)) $(BINARIES_DIR)/ + ) +endef +endif # BR2_TARGET_OPTEE_OS_CORE + +ifeq ($(BR2_TARGET_OPTEE_OS_SERVICES),y) +define OPTEE_OS_INSTALL_TARGET_CMDS + $(if $(wildcard $(@D)/$(OPTEE_OS_BUILDDIR_OUT)/ta/*/*.ta), + $(INSTALL) -D -m 444 -t $(TARGET_DIR)/lib/optee_armtz \ + $(@D)/$(OPTEE_OS_BUILDDIR_OUT)/ta/*/*.ta) + $(if $(wildcard $(@D)/$(OPTEE_OS_LOCAL_SDK)/lib/*.ta), + $(INSTALL) -D -m 444 -t $(TARGET_DIR)/lib/optee_armtz \ + $(@D)/$(OPTEE_OS_LOCAL_SDK)/lib/*.ta) +endef +endif # BR2_TARGET_OPTEE_OS_SERVICES + +ifeq ($(BR2_TARGET_OPTEE_OS_SDK),y) +define OPTEE_OS_BUILD_SDK + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) O=$(OPTEE_OS_BUILDDIR_OUT) \ + $(TARGET_CONFIGURE_OPTS) $(OPTEE_OS_MAKE_OPTS) ta_dev_kit +endef +define OPTEE_OS_INSTALL_STAGING_CMDS + mkdir -p $(OPTEE_OS_SDK) + cp -ardpf $(@D)/$(OPTEE_OS_LOCAL_SDK)/* $(OPTEE_OS_SDK) +endef +endif # BR2_TARGET_OPTEE_OS_SDK + +define OPTEE_OS_BUILD_CMDS + $(OPTEE_OS_BUILD_CORE) + $(OPTEE_OS_BUILD_SDK) +endef + +define OPTEE_OS_INSTALL_IMAGES_CMDS + $(OPTEE_OS_INSTALL_IMAGES_CORE) + $(OPTEE_OS_INSTALL_IMAGES_SERVICES) +endef + +ifeq ($(BR2_TARGET_OPTEE_OS)$(BR_BUILDING),yy) +ifeq ($(call qstrip,$(BR2_TARGET_OPTEE_OS_PLATFORM)),) +$(error No OP-TEE OS platform set. Check your BR2_TARGET_OPTEE_OS_PLATFORM setting) +endif + +ifeq ($(BR2_TARGET_OPTEE_OS_CUSTOM_TARBALL),y) +ifeq ($(call qstrip,$(BR2_TARGET_OPTEE_OS_CUSTOM_TARBALL_LOCATION)),) +$(error No tarball location specified. Please check BR2_TARGET_OPTEE_OS_CUSTOM_TARBALL_LOCATION) +endif +endif + +ifeq ($(BR2_TARGET_OPTEE_OS_CUSTOM_GIT),y) +ifeq ($(call qstrip,$(BR2_TARGET_OPTEE_OS_CUSTOM_REPO_URL)),) +$(error No repository specified. Please check BR2_TARGET_OPTEE_OS_CUSTOM_REPO_URL) +endif +endif + +endif # BR2_TARGET_OPTEE_OS && BR2_BUILDING + +$(eval $(generic-package)) diff --git a/boot/s500-bootloader/Config.in b/boot/s500-bootloader/Config.in new file mode 100644 index 000000000..7bb689f30 --- /dev/null +++ b/boot/s500-bootloader/Config.in @@ -0,0 +1,17 @@ +config BR2_TARGET_S500_BOOTLOADER + bool "s500-bootloader" + depends on BR2_arm + depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" + select BR2_HOSTARCH_NEEDS_IA32_LIBS + help + 1st level bootloader for Actions Semiconductor S500 SoC. + + https://github.com/xapp-le/owl + +config BR2_TARGET_S500_BOOTLOADER_BOARD + string "board to configure for" + depends on BR2_TARGET_S500_BOOTLOADER + help + Specify the board to configure the bootloader for. + This should be the name of a directory under s500/boards + containing a suitable bootloader.ini file. diff --git a/boot/s500-bootloader/s500-bootloader.hash b/boot/s500-bootloader/s500-bootloader.hash new file mode 100644 index 000000000..2ebd933e5 --- /dev/null +++ b/boot/s500-bootloader/s500-bootloader.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 b183024ac69f51ea7befd28d03b2ec35a7280e270405600fb4f37aa91d9c9571 s500-bootloader-a8d7fa1d9a7f353ec4613febf30f4ca99a10a106.tar.gz diff --git a/boot/s500-bootloader/s500-bootloader.mk b/boot/s500-bootloader/s500-bootloader.mk new file mode 100644 index 000000000..bc87b091c --- /dev/null +++ b/boot/s500-bootloader/s500-bootloader.mk @@ -0,0 +1,34 @@ +################################################################################ +# +# s500-bootloader +# +################################################################################ + +S500_BOOTLOADER_VERSION = a8d7fa1d9a7f353ec4613febf30f4ca99a10a106 +S500_BOOTLOADER_SITE = $(call github,xapp-le,owl,$(S500_BOOTLOADER_VERSION)) +S500_BOOTLOADER_LICENSE = PROPRIETARY +S500_BOOTLOADER_INSTALL_TARGET = NO +S500_BOOTLOADER_INSTALL_IMAGES = YES + +S500_BOOTLOADER_BOARD = $(call qstrip,$(BR2_TARGET_S500_BOOTLOADER_BOARD)) + +define S500_BOOTLOADER_BUILD_CMDS + cd $(@D) && ./tools/utils/bootloader_pack \ + s500/bootloader/bootloader.bin \ + s500/boards/$(S500_BOOTLOADER_BOARD)/bootloader.ini \ + s500-bootloader.bin +endef + +define S500_BOOTLOADER_INSTALL_IMAGES_CMDS + $(INSTALL) -m 0644 -D $(@D)/s500-bootloader.bin \ + $(BINARIES_DIR)/s500-bootloader.bin +endef + +$(eval $(generic-package)) + +ifeq ($(BR2_TARGET_S500_BOOTLOADER)$(BR_BUILDING),yy) +# we NEED a board name +ifeq ($(S500_BOOTLOADER_BOARD),) +$(error No s500-bootloader board specified. Check your BR2_TARGET_S500_BOOTLOADER settings) +endif +endif diff --git a/boot/shim/Config.in b/boot/shim/Config.in new file mode 100644 index 000000000..462ef12d6 --- /dev/null +++ b/boot/shim/Config.in @@ -0,0 +1,25 @@ +config BR2_PACKAGE_SHIM_ARCH_SUPPORTS + bool + default y if BR2_aarch64 + default y if BR2_arm + default y if BR2_i386 + default y if BR2_x86_64 + # it includes gnu-efi + depends on BR2_PACKAGE_GNU_EFI_ARCH_SUPPORTS + +config BR2_TARGET_SHIM + bool "shim" + depends on BR2_PACKAGE_SHIM_ARCH_SUPPORTS + help + Boot loader to chain-load signed boot loaders under Secure + Boot. + + This package provides a minimalist boot loader which allows + verifying signatures of other UEFI binaries against either + the Secure Boot DB/DBX or against a built-in signature + database. Its purpose is to allow a small, + infrequently-changing binary to be signed by the UEFI CA, + while allowing an OS distributor to revision their main + bootloader independently of the CA. + + https://github.com/rhboot/shim diff --git a/boot/shim/shim.hash b/boot/shim/shim.hash new file mode 100644 index 000000000..a0a9f06f3 --- /dev/null +++ b/boot/shim/shim.hash @@ -0,0 +1,3 @@ +# locally computed hash +sha256 8344473dd10569588b8238a4656b8fab226714eea9f5363f8c410aa8a5090297 shim-15.4.tar.bz2 +sha256 15edf527919ddcb2f514ab9d16ad07ef219e4bb490e0b79560be510f0c159cc2 COPYRIGHT diff --git a/boot/shim/shim.mk b/boot/shim/shim.mk new file mode 100644 index 000000000..0a6d1527a --- /dev/null +++ b/boot/shim/shim.mk @@ -0,0 +1,29 @@ +################################################################################ +# +# shim +# +################################################################################ + +SHIM_VERSION = 15.4 +SHIM_SITE = https://github.com/rhboot/shim/releases/download/$(SHIM_VERSION) +SHIM_SOURCE = shim-$(SHIM_VERSION).tar.bz2 +SHIM_LICENSE = BSD-2-Clause +SHIM_LICENSE_FILES = COPYRIGHT +SHIM_CPE_ID_VENDOR = redhat +SHIM_INSTALL_TARGET = NO +SHIM_INSTALL_IMAGES = YES + +SHIM_MAKE_OPTS = \ + ARCH="$(GNU_EFI_PLATFORM)" \ + CROSS_COMPILE="$(TARGET_CROSS)" \ + DASHJ="-j$(PARALLEL_JOBS)" + +define SHIM_BUILD_CMDS + $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) $(SHIM_MAKE_OPTS) +endef + +define SHIM_INSTALL_IMAGES_CMDS + $(INSTALL) -m 0755 -t $(BINARIES_DIR) $(@D)/*.efi +endef + +$(eval $(generic-package)) diff --git a/boot/sun20i-d1-spl/Config.in b/boot/sun20i-d1-spl/Config.in new file mode 100644 index 000000000..9d94d87b1 --- /dev/null +++ b/boot/sun20i-d1-spl/Config.in @@ -0,0 +1,8 @@ +config BR2_TARGET_SUN20I_D1_SPL + bool "sun20-d1-spl" + depends on BR2_RISCV_64 + help + Allwinner D1 boot0 code with modifications to use as U-Boot + SPL. + + https://github.com/smaeul/sun20i_d1_spl diff --git a/boot/sun20i-d1-spl/sun20i-d1-spl.hash b/boot/sun20i-d1-spl/sun20i-d1-spl.hash new file mode 100644 index 000000000..11d17a9a1 --- /dev/null +++ b/boot/sun20i-d1-spl/sun20i-d1-spl.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 08e2d0574e58c99734cd1d9ea89b86464242bf2db4f6769b23803bf9dcdac3c4 sun20i-d1-spl-882671fcf53137aaafc3a94fa32e682cb7b921f1.tar.gz diff --git a/boot/sun20i-d1-spl/sun20i-d1-spl.mk b/boot/sun20i-d1-spl/sun20i-d1-spl.mk new file mode 100644 index 000000000..6bcea0fa9 --- /dev/null +++ b/boot/sun20i-d1-spl/sun20i-d1-spl.mk @@ -0,0 +1,23 @@ +################################################################################ +# +# sun20i-d1-spl +# +################################################################################ + +# Commit on the 'mainline' branch +SUN20I_D1_SPL_VERSION = 882671fcf53137aaafc3a94fa32e682cb7b921f1 +SUN20I_D1_SPL_SITE = $(call github,smaeul,sun20i_d1_spl,$(SUN20I_D1_SPL_VERSION)) +SUN20I_D1_SPL_INSTALL_TARGET = NO +SUN20I_D1_SPL_INSTALL_IMAGES = YES +SUN20I_D1_SPL_LICENSE = GPL-2.0+ + +define SUN20I_D1_SPL_BUILD_CMDS + $(MAKE) -C $(@D) CROSS_COMPILE="$(TARGET_CROSS)" p=sun20iw1p1 mmc +endef + +define SUN20I_D1_SPL_INSTALL_IMAGES_CMDS + $(INSTALL) -D -m 0644 $(@D)/nboot/boot0_sdcard_sun20iw1p1.bin \ + $(BINARIES_DIR)/boot0_sdcard_sun20iw1p1.bin +endef + +$(eval $(generic-package)) diff --git a/boot/syslinux/0001-bios-Fix-alignment-change-with-gcc-5.patch b/boot/syslinux/0001-bios-Fix-alignment-change-with-gcc-5.patch new file mode 100644 index 000000000..633d996ed --- /dev/null +++ b/boot/syslinux/0001-bios-Fix-alignment-change-with-gcc-5.patch @@ -0,0 +1,82 @@ +From da5cbd1a3b248f2d32281a1766a3d1414c0e8e03 Mon Sep 17 00:00:00 2001 +From: Sylvain Gault +Date: Tue, 29 Sep 2015 02:38:25 +0200 +Subject: [PATCH] bios: Fix alignment change with gcc 5 + +The section aligment specified in the ld scripts have to be greater or +equal to those in the .o files generated by gcc. + +Signed-off-by: Sylvain Gault +Tested-by: poma +Signed-off-by: Paulo Alcantara +Signed-off-by: Frank Hunleth +--- + core/i386/syslinux.ld | 6 +++--- + core/x86_64/syslinux.ld | 6 +++--- + 2 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/core/i386/syslinux.ld b/core/i386/syslinux.ld +index 7b4e012..7390451 100644 +--- a/core/i386/syslinux.ld ++++ b/core/i386/syslinux.ld +@@ -266,7 +266,7 @@ SECTIONS + __text_end = .; + } + +- . = ALIGN(16); ++ . = ALIGN(32); + + __rodata_vma = .; + __rodata_lma = __rodata_vma + __text_lma - __text_vma; +@@ -361,7 +361,7 @@ SECTIONS + __dynamic_end = .; + } + +- . = ALIGN(16); ++ . = ALIGN(32); + + __data_vma = .; + __data_lma = __data_vma + __text_lma - __text_vma; +@@ -377,7 +377,7 @@ SECTIONS + __pm_code_dwords = (__pm_code_len + 3) >> 2; + + . = ALIGN(128); +- ++ + __bss_vma = .; + __bss_lma = .; /* Dummy */ + .bss (NOLOAD) : AT (__bss_lma) { +diff --git a/core/x86_64/syslinux.ld b/core/x86_64/syslinux.ld +index 1057112..bf815c4 100644 +--- a/core/x86_64/syslinux.ld ++++ b/core/x86_64/syslinux.ld +@@ -266,7 +266,7 @@ SECTIONS + __text_end = .; + } + +- . = ALIGN(16); ++ . = ALIGN(32); + + __rodata_vma = .; + __rodata_lma = __rodata_vma + __text_lma - __text_vma; +@@ -361,7 +361,7 @@ SECTIONS + __dynamic_end = .; + } + +- . = ALIGN(16); ++ . = ALIGN(32); + + __data_vma = .; + __data_lma = __data_vma + __text_lma - __text_vma; +@@ -377,7 +377,7 @@ SECTIONS + __pm_code_dwords = (__pm_code_len + 3) >> 2; + + . = ALIGN(128); +- ++ + __bss_vma = .; + __bss_lma = .; /* Dummy */ + .bss (NOLOAD) : AT (__bss_lma) { +-- +2.7.4 + diff --git a/boot/syslinux/0002-Disable-PIE-to-avoid-FTBFS-on-amd64.patch b/boot/syslinux/0002-Disable-PIE-to-avoid-FTBFS-on-amd64.patch new file mode 100644 index 000000000..64a08b857 --- /dev/null +++ b/boot/syslinux/0002-Disable-PIE-to-avoid-FTBFS-on-amd64.patch @@ -0,0 +1,30 @@ +From 250bf2c921713434627dc7bc8b0918fa0841f9b7 Mon Sep 17 00:00:00 2001 +From: Graham Inggs +Date: Wed, 5 Apr 2017 22:03:12 +0200 +Subject: [PATCH] Disable PIE to avoid FTBFS on amd64 + +gcc 6.x has PIE support enabled by default, which causes a build issue +with syslinux. This patch disables PIE support in the relevant +syslinux Makefile. + +Signed-off-by: Ryan Coe +--- + gpxe/src/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gpxe/src/Makefile b/gpxe/src/Makefile +index cc91d78..077af64 100644 +--- a/gpxe/src/Makefile ++++ b/gpxe/src/Makefile +@@ -4,7 +4,7 @@ + # + + CLEANUP := +-CFLAGS := ++CFLAGS := -fno-PIE + ASFLAGS := + LDFLAGS := + MAKEDEPS := Makefile +-- +2.7.4 + diff --git a/boot/syslinux/0003-memdisk-Force-ld-output-format-to-32-bits.patch b/boot/syslinux/0003-memdisk-Force-ld-output-format-to-32-bits.patch new file mode 100644 index 000000000..4eedf4973 --- /dev/null +++ b/boot/syslinux/0003-memdisk-Force-ld-output-format-to-32-bits.patch @@ -0,0 +1,32 @@ +From c0287594239d5af2082cac20817f8e8b11a4b1b2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Beno=C3=AEt=20Allard?= +Date: Wed, 5 Apr 2017 14:18:09 +0200 +Subject: [PATCH] memdisk: Force ld output format to 32-bits +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +On toolchains where the default output is x86_64, we need to be +consistent with the other .o files + +Signed-off-by: Benoît Allard +--- + memdisk/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/memdisk/Makefile b/memdisk/Makefile +index e6557d8..06613ff 100644 +--- a/memdisk/Makefile ++++ b/memdisk/Makefile +@@ -78,7 +78,7 @@ memdisk16.o: memdisk16.asm + $(NASM) -f bin $(NASMOPT) $(NFLAGS) $(NINCLUDE) -o $@ -l $*.lst $< + + memdisk_%.o: memdisk_%.bin +- $(LD) -r -b binary -o $@ $< ++ $(LD) --oformat elf32-i386 -r -b binary -o $@ $< + + memdisk16.elf: $(OBJS16) + $(LD) -Ttext 0 -o $@ $^ +-- +2.7.4 + diff --git a/boot/syslinux/0004-utils-Use-the-host-toolchain-to-build.patch b/boot/syslinux/0004-utils-Use-the-host-toolchain-to-build.patch new file mode 100644 index 000000000..e091a3a89 --- /dev/null +++ b/boot/syslinux/0004-utils-Use-the-host-toolchain-to-build.patch @@ -0,0 +1,60 @@ +From e000251144056c99e390a2a4449d06cbd2a19c0a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Beno=C3=AEt=20Allard?= +Date: Wed, 5 Apr 2017 14:25:02 +0200 +Subject: [PATCH] utils: Use the host toolchain to build. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The utilities are meant to run on the host machine, hence must be built using +the host toolchain. + +Signed-off-by: Benoît Allard +--- + utils/Makefile | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/utils/Makefile b/utils/Makefile +index dfe6259..ac91aaa 100644 +--- a/utils/Makefile ++++ b/utils/Makefile +@@ -17,8 +17,8 @@ + VPATH = $(SRC) + include $(MAKEDIR)/syslinux.mk + +-CFLAGS = $(GCCWARN) -Os -fomit-frame-pointer -D_FILE_OFFSET_BITS=64 -I$(SRC) +-LDFLAGS = -O2 ++CFLAGS = $(CFLAGS_FOR_BUILD) $(GCCWARN) -Os -fomit-frame-pointer -D_FILE_OFFSET_BITS=64 -I$(SRC) ++LDFLAGS = $(LDFLAGS_FOR_BUILD) -O2 + + C_TARGETS = isohybrid gethostip memdiskfind + SCRIPT_TARGETS = mkdiskimage +@@ -35,7 +35,7 @@ ISOHDPFX = $(addprefix $(OBJ)/,../mbr/isohdpfx.bin ../mbr/isohdpfx_f.bin \ + all: $(TARGETS) + + %.o: %.c +- $(CC) $(UMAKEDEPS) $(CFLAGS) -c -o $@ $< ++ $(CC_FOR_BUILD) $(UMAKEDEPS) $(CFLAGS) -c -o $@ $< + + mkdiskimage: mkdiskimage.in ../mbr/mbr.bin bin2hex.pl + $(PERL) $(SRC)/bin2hex.pl < $(OBJ)/../mbr/mbr.bin | cat $(SRC)/mkdiskimage.in - > $@ +@@ -51,13 +51,13 @@ isohdpfx.c: $(ISOHDPFX) isohdpfxarray.pl + $(PERL) $(SRC)/isohdpfxarray.pl $(ISOHDPFX) > $@ + + isohybrid: isohybrid.o isohdpfx.o +- $(CC) $(LDFLAGS) -o $@ $^ -luuid ++ $(CC_FOR_BUILD) $(LDFLAGS) -o $@ $^ -luuid + + gethostip: gethostip.o +- $(CC) $(LDFLAGS) -o $@ $^ ++ $(CC_FOR_BUILD) $(LDFLAGS) -o $@ $^ + + memdiskfind: memdiskfind.o +- $(CC) $(LDFLAGS) -o $@ $^ ++ $(CC_FOR_BUILD) $(LDFLAGS) -o $@ $^ + + tidy dist: + rm -f *.o .*.d isohdpfx.c +-- +2.1.4 + diff --git a/boot/syslinux/0005-lzo-Use-the-host-toolchain-for-prepcore.patch b/boot/syslinux/0005-lzo-Use-the-host-toolchain-for-prepcore.patch new file mode 100644 index 000000000..c6fa7febf --- /dev/null +++ b/boot/syslinux/0005-lzo-Use-the-host-toolchain-for-prepcore.patch @@ -0,0 +1,44 @@ +From 83e1f00990c25554723609bb549e18b987034317 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Beno=C3=AEt=20Allard?= +Date: Thu, 6 Apr 2017 09:43:46 +0200 +Subject: [PATCH] lzo: Use the host toolchain for prepcore +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Benoît Allard +--- + lzo/Makefile | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/lzo/Makefile b/lzo/Makefile +index 29f1fa6..c016e5a 100644 +--- a/lzo/Makefile ++++ b/lzo/Makefile +@@ -11,10 +11,13 @@ + ## ----------------------------------------------------------------------- + + VPATH = $(SRC) +-include $(MAKEDIR)/build.mk ++include $(MAKEDIR)/syslinux.mk + + INCLUDES += -I$(SRC)/include + ++%.o: %.c ++ $(CC_FOR_BUILD) $(UMAKEDEPS) $(CFLAGS_FOR_BUILD) $(INCLUDES) -c -o $@ $< ++ + LIBOBJS = $(patsubst %.c,%.o,$(subst $(SRC)/,,$(wildcard $(SRC)/src/*.c))) + LIB = lzo.a + BINS = prepcore +@@ -30,7 +33,7 @@ $(LIB) : $(LIBOBJS) + $(RANLIB) $@ + + prepcore : prepcore.o $(LIB) +- $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) ++ $(CC_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ $^ $(LIBS) + + tidy dist clean spotless: + rm -f $(BINS) +-- +2.1.4 + diff --git a/boot/syslinux/0006-The-VPrint-definition-is-now-part-of-the-exports-of-.patch b/boot/syslinux/0006-The-VPrint-definition-is-now-part-of-the-exports-of-.patch new file mode 100644 index 000000000..c37601023 --- /dev/null +++ b/boot/syslinux/0006-The-VPrint-definition-is-now-part-of-the-exports-of-.patch @@ -0,0 +1,37 @@ +From 39274503292a6003b1b0c93f694e34f11e85ea44 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Beno=C3=AEt=20Allard?= +Date: Fri, 9 Jun 2017 11:55:14 +0200 +Subject: [PATCH] The VPrint definition is now part of the exports of + gnu-efi +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Benoît Allard +--- + efi/fio.h | 9 --------- + 1 file changed, 9 deletions(-) + +diff --git a/efi/fio.h b/efi/fio.h +index 65fff8d..a1bfe68 100644 +--- a/efi/fio.h ++++ b/efi/fio.h +@@ -11,15 +11,6 @@ + #define MAX_EFI_ARGS 64 + #define WS(c16) (c16 == L' ' || c16 == CHAR_TAB) + +-/* VPrint is not in export declarations in gnu-efi lib yet +- * although it is a global function; declare it here +- */ +-extern UINTN +-VPrint ( +- IN CHAR16 *fmt, +- va_list args +- ); +- + extern EFI_STATUS efi_errno; + + void efi_memcpy(unsigned char *dst, unsigned char *src, size_t len); +-- +2.1.4 + diff --git a/boot/syslinux/0007-Update-the-longjump-calls-to-fit-the-new-declaration.patch b/boot/syslinux/0007-Update-the-longjump-calls-to-fit-the-new-declaration.patch new file mode 100644 index 000000000..90d0b81f0 --- /dev/null +++ b/boot/syslinux/0007-Update-the-longjump-calls-to-fit-the-new-declaration.patch @@ -0,0 +1,37 @@ +From 3bd5c2d951421a89f76b2423e5810862f53486c1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Beno=C3=AEt=20Allard?= +Date: Fri, 9 Jun 2017 11:59:43 +0200 +Subject: [PATCH] Update the longjump calls to fit the new declaration +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Benoît Allard +--- + efi/main.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/efi/main.c b/efi/main.c +index 208fee4f..71d31a5c 100644 +--- a/efi/main.c ++++ b/efi/main.c +@@ -10,7 +10,6 @@ + #include + #include + #include +-#include + + #include "efi.h" + #include "fio.h" +@@ -30,7 +29,7 @@ uint32_t timer_irq; + __export uint8_t KbdMap[256]; + char aux_seg[256]; + +-static jmp_buf load_error_buf; ++static jmp_buf *load_error_buf; + + static inline EFI_STATUS + efi_close_protocol(EFI_HANDLE handle, EFI_GUID *guid, EFI_HANDLE agent, +-- +2.13.3 + diff --git a/boot/syslinux/0008-efi-wrapper-build-it-with-the-host-toolchain.patch b/boot/syslinux/0008-efi-wrapper-build-it-with-the-host-toolchain.patch new file mode 100644 index 000000000..9ec12a179 --- /dev/null +++ b/boot/syslinux/0008-efi-wrapper-build-it-with-the-host-toolchain.patch @@ -0,0 +1,32 @@ +From ca8aaded0c7c3900397029bd9520132b62629308 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Beno=C3=AEt=20Allard?= +Date: Mon, 12 Jun 2017 14:59:16 +0200 +Subject: [PATCH] efi/wrapper: build it with the host toolchain. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The wrapper program is executed on the build machine, so it should be +built with CC_FOR_BUILD. + +Signed-off-by: Benoît Allard +--- + efi/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/efi/Makefile b/efi/Makefile +index d5443bd5..d24d16db 100644 +--- a/efi/Makefile ++++ b/efi/Makefile +@@ -79,7 +79,7 @@ syslinux.so: $(OBJS) $(CORE_OBJS) $(LIB_OBJS) + # cp $^ $@ + + wrapper: wrapper.c +- $(CC) $^ -o $@ ++ $(CC_FOR_BUILD) $^ -o $@ + + # + # Build the wrapper app and wrap our .so to produce a .efi +-- +2.13.3 + diff --git a/boot/syslinux/0009-bios-Don-t-try-to-guess-the-sections-alignment.patch b/boot/syslinux/0009-bios-Don-t-try-to-guess-the-sections-alignment.patch new file mode 100644 index 000000000..916012f61 --- /dev/null +++ b/boot/syslinux/0009-bios-Don-t-try-to-guess-the-sections-alignment.patch @@ -0,0 +1,295 @@ +From 76946dd67bc856eaf4fe69d0826547a794176f78 Mon Sep 17 00:00:00 2001 +From: Sylvain Gault +Date: Tue, 29 Sep 2015 04:45:09 +0200 +Subject: [PATCH] bios: Don't try to guess the sections alignment + +For the compression / decompression to succeed, the sections layout must +be the same between the virtual memory and load memory. The section +alignment was kept in sync by introducing aligment that should be +greater or equal to the actual section alignment. + +This patch compute the load memory addresses of the sections so that +the layout is the same as the virtual memory addresses. + +Signed-off-by: Sylvain Gault +Tested-by: poma +Signed-off-by: Paulo Alcantara + +Upstream: 0cc9a99e560a2f52bcf052fd85b1efae35ee812f +Signed-off-by: Arnout Vandecappelle (Essensium/Mind) +--- + core/i386/syslinux.ld | 63 ++++++++++--------------------------------------- + core/x86_64/syslinux.ld | 63 ++++++++++--------------------------------------- + 2 files changed, 24 insertions(+), 102 deletions(-) + +diff --git a/core/i386/syslinux.ld b/core/i386/syslinux.ld +index 73904510..92b75b11 100644 +--- a/core/i386/syslinux.ld ++++ b/core/i386/syslinux.ld +@@ -255,10 +255,9 @@ SECTIONS + . = 0x100000; + + __pm_code_start = .; ++ __vma_to_lma = __pm_code_lma - __pm_code_start; + +- __text_vma = .; +- __text_lma = __pm_code_lma; +- .text : AT(__text_lma) { ++ .text : AT(ADDR(.text) + __vma_to_lma) { + FILL(0x90909090) + __text_start = .; + *(.text) +@@ -266,106 +265,68 @@ SECTIONS + __text_end = .; + } + +- . = ALIGN(32); +- +- __rodata_vma = .; +- __rodata_lma = __rodata_vma + __text_lma - __text_vma; +- .rodata : AT(__rodata_lma) { ++ .rodata : AT(ADDR(.rodata) + __vma_to_lma) { + __rodata_start = .; + *(.rodata) + *(.rodata.*) + __rodata_end = .; + } + +- . = ALIGN(4); +- +- __ctors_vma = .; +- __ctors_lma = __ctors_vma + __text_lma - __text_vma; +- .ctors : AT(__ctors_lma) { ++ .ctors : AT(ADDR(.ctors) + __vma_to_lma) { + __ctors_start = .; + KEEP (*(SORT(.ctors.*))) + KEEP (*(.ctors)) + __ctors_end = .; + } + +- __dtors_vma = .; +- __dtors_lma = __dtors_vma + __text_lma - __text_vma; +- .dtors : AT(__dtors_lma) { ++ .dtors : AT(ADDR(.dtors) + __vma_to_lma) { + __dtors_start = .; + KEEP (*(SORT(.dtors.*))) + KEEP (*(.dtors)) + __dtors_end = .; + } + +- . = ALIGN(4); +- +- __dynsym_vma = .; +- __dynsym_lma = __dynsym_vma + __text_lma - __text_vma; +- .dynsym : AT(__dynsym_lma) { ++ .dynsym : AT(ADDR(.dynsym) + __vma_to_lma) { + __dynsym_start = .; + *(.dynsym) + __dynsym_end = .; + } + __dynsym_len = __dynsym_end - __dynsym_start; + +- . = ALIGN(4); +- +- __dynstr_vma = .; +- __dynstr_lma = __dynstr_vma + __text_lma - __text_vma; +- .dynstr : AT(__dynstr_lma) { ++ .dynstr : AT(ADDR(.dynstr) + __vma_to_lma) { + __dynstr_start = .; + *(.dynstr) + __dynstr_end = .; + } + __dynstr_len = __dynstr_end - __dynstr_start; + +- . = ALIGN(4); +- +- __gnu_hash_vma = .; +- __gnu_hash_lma = __gnu_hash_vma + __text_lma - __text_vma; +- .gnu.hash : AT(__gnu_hash_lma) { ++ .gnu.hash : AT(ADDR(.gnu.hash) + __vma_to_lma) { + __gnu_hash_start = .; + *(.gnu.hash) + __gnu_hash_end = .; + } + + +- . = ALIGN(4); +- +- __dynlink_vma = .; +- __dynlink_lma = __dynlink_vma + __text_lma - __text_vma; +- .dynlink : AT(__dynlink_lma) { ++ .dynlink : AT(ADDR(.dynlink) + __vma_to_lma) { + __dynlink_start = .; + *(.dynlink) + __dynlink_end = .; + } + +- . = ALIGN(4); +- +- __got_vma = .; +- __got_lma = __got_vma + __text_lma - __text_vma; +- .got : AT(__got_lma) { ++ .got : AT(ADDR(.got) + __vma_to_lma) { + __got_start = .; + KEEP (*(.got.plt)) + KEEP (*(.got)) + __got_end = .; + } + +- . = ALIGN(4); +- +- __dynamic_vma = .; +- __dynamic_lma = __dynamic_vma + __text_lma - __text_vma; +- .dynamic : AT(__dynamic_lma) { ++ .dynamic : AT(ADDR(.dynamic) + __vma_to_lma) { + __dynamic_start = .; + *(.dynamic) + __dynamic_end = .; + } + +- . = ALIGN(32); +- +- __data_vma = .; +- __data_lma = __data_vma + __text_lma - __text_vma; +- .data : AT(__data_lma) { ++ .data : AT(ADDR(.data) + __vma_to_lma) { + __data_start = .; + *(.data) + *(.data.*) +diff --git a/core/x86_64/syslinux.ld b/core/x86_64/syslinux.ld +index bf815c46..70c6e00a 100644 +--- a/core/x86_64/syslinux.ld ++++ b/core/x86_64/syslinux.ld +@@ -255,10 +255,9 @@ SECTIONS + . = 0x100000; + + __pm_code_start = .; ++ __vma_to_lma = __pm_code_lma - __pm_code_start; + +- __text_vma = .; +- __text_lma = __pm_code_lma; +- .text : AT(__text_lma) { ++ .text : AT(ADDR(.text) + __vma_to_lma) { + FILL(0x90909090) + __text_start = .; + *(.text) +@@ -266,106 +265,68 @@ SECTIONS + __text_end = .; + } + +- . = ALIGN(32); +- +- __rodata_vma = .; +- __rodata_lma = __rodata_vma + __text_lma - __text_vma; +- .rodata : AT(__rodata_lma) { ++ .rodata : AT(ADDR(.rodata) + __vma_to_lma) { + __rodata_start = .; + *(.rodata) + *(.rodata.*) + __rodata_end = .; + } + +- . = ALIGN(4); +- +- __ctors_vma = .; +- __ctors_lma = __ctors_vma + __text_lma - __text_vma; +- .ctors : AT(__ctors_lma) { ++ .ctors : AT(ADDR(.ctors) + __vma_to_lma) { + __ctors_start = .; + KEEP (*(SORT(.ctors.*))) + KEEP (*(.ctors)) + __ctors_end = .; + } + +- __dtors_vma = .; +- __dtors_lma = __dtors_vma + __text_lma - __text_vma; +- .dtors : AT(__dtors_lma) { ++ .dtors : AT(ADDR(.dtors) + __vma_to_lma) { + __dtors_start = .; + KEEP (*(SORT(.dtors.*))) + KEEP (*(.dtors)) + __dtors_end = .; + } + +- . = ALIGN(4); +- +- __dynsym_vma = .; +- __dynsym_lma = __dynsym_vma + __text_lma - __text_vma; +- .dynsym : AT(__dynsym_lma) { ++ .dynsym : AT(ADDR(.dynsym) + __vma_to_lma) { + __dynsym_start = .; + *(.dynsym) + __dynsym_end = .; + } + __dynsym_len = __dynsym_end - __dynsym_start; + +- . = ALIGN(4); +- +- __dynstr_vma = .; +- __dynstr_lma = __dynstr_vma + __text_lma - __text_vma; +- .dynstr : AT(__dynstr_lma) { ++ .dynstr : AT(ADDR(.dynstr) + __vma_to_lma) { + __dynstr_start = .; + *(.dynstr) + __dynstr_end = .; + } + __dynstr_len = __dynstr_end - __dynstr_start; + +- . = ALIGN(4); +- +- __gnu_hash_vma = .; +- __gnu_hash_lma = __gnu_hash_vma + __text_lma - __text_vma; +- .gnu.hash : AT(__gnu_hash_lma) { ++ .gnu.hash : AT(ADDR(.gnu.hash) + __vma_to_lma) { + __gnu_hash_start = .; + *(.gnu.hash) + __gnu_hash_end = .; + } + + +- . = ALIGN(4); +- +- __dynlink_vma = .; +- __dynlink_lma = __dynlink_vma + __text_lma - __text_vma; +- .dynlink : AT(__dynlink_lma) { ++ .dynlink : AT(ADDR(.dynlink) + __vma_to_lma) { + __dynlink_start = .; + *(.dynlink) + __dynlink_end = .; + } + +- . = ALIGN(4); +- +- __got_vma = .; +- __got_lma = __got_vma + __text_lma - __text_vma; +- .got : AT(__got_lma) { ++ .got : AT(ADDR(.got) + __vma_to_lma) { + __got_start = .; + KEEP (*(.got.plt)) + KEEP (*(.got)) + __got_end = .; + } + +- . = ALIGN(4); +- +- __dynamic_vma = .; +- __dynamic_lma = __dynamic_vma + __text_lma - __text_vma; +- .dynamic : AT(__dynamic_lma) { ++ .dynamic : AT(ADDR(.dynamic) + __vma_to_lma) { + __dynamic_start = .; + *(.dynamic) + __dynamic_end = .; + } + +- . = ALIGN(32); +- +- __data_vma = .; +- __data_lma = __data_vma + __text_lma - __text_vma; +- .data : AT(__data_lma) { ++ .data : AT(ADDR(.data) + __vma_to_lma) { + __data_start = .; + *(.data) + *(.data.*) +-- +2.13.3 + diff --git a/boot/syslinux/0010-core-Clean-up-the-i386-bios-build.patch b/boot/syslinux/0010-core-Clean-up-the-i386-bios-build.patch new file mode 100644 index 000000000..8b6d52544 --- /dev/null +++ b/boot/syslinux/0010-core-Clean-up-the-i386-bios-build.patch @@ -0,0 +1,622 @@ +From a14b1b3d3e375d2e8af8804171ef5e52574dbb2a Mon Sep 17 00:00:00 2001 +From: "H. Peter Anvin" +Date: Tue, 9 Feb 2016 18:15:50 -0800 +Subject: [PATCH] core: Clean up the i386-bios build + +Remove symbols and data structures not used in the i386-bios build, +and clean up the linker script so that most internal symbols are +HIDDEN. + +Signed-off-by: H. Peter Anvin + +Upstream: ff859050fa4e6535cae098dc35d88a265466448d + +This patch fixes the following build failure with i386 binutils 2.28.1: + +/builds/arnout/buildroot/output/host/bin/i586-buildroot-linux-uclibc-ld -Bsymbolic -pie -E --hash-style=gnu -T +/builds/arnout/buildroot/output/build/syslinux-6.03/core/i386/syslinux.ld -M -o ldlinux.elf ldlinux.o \ + --start-group libcom32.a --whole-archive /builds/arnout/buildroot/output/build/syslinux-6.03/bios/com32/lib/libcom32core.a libldlinux.a --end-group -N +--no-omagic \ + > ldlinux.map +/builds/arnout/buildroot/output/host/bin/i586-buildroot-linux-uclibc-ld: ldlinux.elf: Not enough room for program headers, try linking with -N +/builds/arnout/buildroot/output/host/bin/i586-buildroot-linux-uclibc-ld: final link failed: Bad value +/builds/arnout/buildroot/output/build/syslinux-6.03/core/Makefile:167: recipe for target 'ldlinux.elf' failed + +Signed-off-by: Arnout Vandecappelle (Essensium/Mind) +--- + core/extern.inc | 17 +-- + core/i386/syslinux.ld | 287 +++++++++++++++++++++++++------------------------- + core/layout.inc | 11 -- + 3 files changed, 143 insertions(+), 172 deletions(-) + +diff --git a/core/extern.inc b/core/extern.inc +index af8eb04c..ce4abfab 100644 +--- a/core/extern.inc ++++ b/core/extern.inc +@@ -12,27 +12,17 @@ + ; hello.c + extern hello + +- ;abort.c +- extern abort_load_new +- + ; elflink/load_env32.c + extern load_env32, pm_env32_run + +- ; memscan.c +- extern highmem_init +- +- extern linux_kernel +- + extern mp1, mp2, mp3, mp4, mp5 + +- extern hexdump, mydump ++ extern hexdump + + extern mem_init + + ; fs.c +- extern pm_fs_init, pm_searchdir, getfssec, getfsbytes +- extern pm_mangle_name, pm_load_config +- extern pm_open_file, pm_close_file ++ extern pm_fs_init + extern SectorSize, SectorShift + + ; chdir.c +@@ -41,9 +31,6 @@ + ; readdir.c + extern opendir, readdir, closedir + +- ; newconfig.c +- extern pm_is_config_file +- + ; idle.c + extern __idle + +diff --git a/core/i386/syslinux.ld b/core/i386/syslinux.ld +index 92b75b11..39198d75 100644 +--- a/core/i386/syslinux.ld ++++ b/core/i386/syslinux.ld +@@ -1,7 +1,7 @@ + /* ----------------------------------------------------------------------- + * + * Copyright 2008-2009 H. Peter Anvin - All Rights Reserved +- * Copyright 2009 Intel Corporation; author: H. Peter Anvin ++ * Copyright 2009-2016 Intel Corporation; author: H. Peter Anvin + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by +@@ -12,7 +12,7 @@ + * ----------------------------------------------------------------------- */ + + /* +- * Linker script for the SYSLINUX core ++ * Linker script for the SYSLINUX core when built for i386-bios + */ + + OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") +@@ -26,7 +26,7 @@ SECTIONS + { + /* Prefix structure for the compression program */ + . = 0; +- __module_start = .; ++ HIDDEN(__module_start = ABSOLUTE(.)); + .prefix : { + *(.prefix) + } +@@ -35,81 +35,82 @@ SECTIONS + . = 0x1000; + + .earlybss (NOLOAD) : { +- __earlybss_start = .; ++ HIDDEN(__earlybss_start = .); + *(.earlybss) +- __earlybss_end = .; ++ HIDDEN(__earlybss_end = .); + } +- __earlybss_len = ABSOLUTE(__earlybss_end) - ABSOLUTE(__earlybss_start); +- __earlybss_dwords = (__earlybss_len + 3) >> 2; ++ HIDDEN(__earlybss_len = ABSOLUTE(__earlybss_end) - ABSOLUTE(__earlybss_start)); ++ HIDDEN(__earlybss_dwords = (__earlybss_len + 3) >> 2); + + . = ALIGN(4); + .bss16 (NOLOAD) : { +- __bss16_start = .; ++ HIDDEN(__bss16_start = .); + *(.bss16) +- __bss16_end = .; ++ HIDDEN(__bss16_end = .); + } +- __bss16_len = ABSOLUTE(__bss16_end) - ABSOLUTE(__bss16_start); +- __bss16_dwords = (__bss16_len + 3) >> 2; ++ HIDDEN(__bss16_len = ABSOLUTE(__bss16_end) - ABSOLUTE(__bss16_start)); ++ HIDDEN(__bss16_dwords = (__bss16_len + 3) >> 2); + + . = ALIGN(4); + .config : AT (__config_lma) { +- __config_start = .; ++ HIDDEN(__config_start = .); + *(.config) +- __config_end = .; ++ HIDDEN(__config_end = .); + } +- __config_len = ABSOLUTE(__config_end) - ABSOLUTE(__config_start); +- __config_dwords = (__config_len + 3) >> 2; ++ HIDDEN(__config_len = ABSOLUTE(__config_end) - ABSOLUTE(__config_start)); ++ HIDDEN(__config_dwords = (__config_len + 3) >> 2); + + /* Generated and/or copied code */ + + . = ALIGN(128); /* Minimum separation from mutable data */ + .replacestub : AT (__replacestub_lma) { +- __replacestub_start = .; ++ HIDDEN(__replacestub_start = .); + *(.replacestub) +- __replacestub_end = .; ++ HIDDEN(__replacestub_end = .); + } +- __replacestub_len = ABSOLUTE(__replacestub_end) - ABSOLUTE(__replacestub_start); +- __replacestub_dwords = (__replacestub_len + 3) >> 2; ++ HIDDEN(__replacestub_len = ABSOLUTE(__replacestub_end) - ABSOLUTE(__replacestub_start)); ++ HIDDEN(__replacestub_dwords = (__replacestub_len + 3) >> 2); + + . = ALIGN(16); +- __gentextnr_lma = .; ++ HIDDEN(__gentextnr_lma = .); + .gentextnr : AT(__gentextnr_lma) { +- __gentextnr_start = .; ++ HIDDEN(__gentextnr_start = .); + *(.gentextnr) +- __gentextnr_end = .; ++ HIDDEN(__gentextnr_end = .); + } +- __gentextnr_len = ABSOLUTE(__gentextnr_end) - ABSOLUTE(__gentextnr_start); +- __gentextnr_dwords = (__gentextnr_len + 3) >> 2; ++ HIDDEN(__gentextnr_len = ABSOLUTE(__gentextnr_end) - ABSOLUTE(__gentextnr_start)); ++ HIDDEN(__gentextnr_dwords = (__gentextnr_len + 3) >> 2); + + . = STACK_BASE; + .stack16 : AT(STACK_BASE) { +- __stack16_start = .; ++ HIDDEN(__stack16_start = .); + . += STACK_LEN; +- __stack16_end = .; ++ HIDDEN(__stack16_end = .); + } +- __stack16_len = ABSOLUTE(__stack16_end) - ABSOLUTE(__stack16_start); +- __stack16_dwords = (__stack16_len + 3) >> 2; ++ HIDDEN(__stack16_len = ABSOLUTE(__stack16_end) - ABSOLUTE(__stack16_start)); ++ HIDDEN(__stack16_dwords = (__stack16_len + 3) >> 2); + + /* Initialized sections */ + + . = 0x7c00; + .init : { + FILL(0x90909090) +- __init_start = .; ++ HIDDEN(__init_start = .); + *(.init) +- __init_end = .; ++ HIDDEN(__init_end = .); + } +- __init_len = ABSOLUTE(__init_end) - ABSOLUTE(__init_start); +- __init_dwords = (__init_len + 3) >> 2; ++ HIDDEN(__init_len = ABSOLUTE(__init_end) - ABSOLUTE(__init_start)); ++ HIDDEN(__init_dwords = (__init_len + 3) >> 2); + ++ . = ALIGN(4); + .text16 : { + FILL(0x90909090) +- __text16_start = .; ++ HIDDEN(__text16_start = .); + *(.text16) +- __text16_end = .; ++ HIDDEN(__text16_end = .); + } +- __text16_len = ABSOLUTE(__text16_end) - ABSOLUTE(__text16_start); +- __text16_dwords = (__text16_len + 3) >> 2; ++ HIDDEN(__text16_len = ABSOLUTE(__text16_end) - ABSOLUTE(__text16_start)); ++ HIDDEN(__text16_dwords = (__text16_len + 3) >> 2); + + /* + * .textnr is used for 32-bit code that is used on the code +@@ -118,99 +119,92 @@ SECTIONS + . = ALIGN(16); + .textnr : { + FILL(0x90909090) +- __textnr_start = .; ++ HIDDEN(__textnr_start = .); + *(.textnr) +- __textnr_end = .; ++ HIDDEN(__textnr_end = .); + } +- __textnr_len = ABSOLUTE(__textnr_end) - ABSOLUTE(__textnr_start); +- __textnr_dwords = (__textnr_len + 3) >> 2; ++ HIDDEN(__textnr_len = ABSOLUTE(__textnr_end) - ABSOLUTE(__textnr_start)); ++ HIDDEN(__textnr_dwords = (__textnr_len + 3) >> 2); + + . = ALIGN(16); +- __bcopyxx_start = .; ++ HIDDEN(__bcopyxx_start = .); + + .bcopyxx.text : { + FILL(0x90909090) +- __bcopyxx_text_start = .; ++ HIDDEN(__bcopyxx_text_start = .); + *(.bcopyxx.text) +- __bcopyxx_text_end = .; ++ HIDDEN(__bcopyxx_text_end = .); + } +- __bcopyxx_text_len = ABSOLUTE(__bcopyxx_text_end) - ABSOLUTE(__bcopyxx_text_start); +- __bcopyxx_text_dwords = (__bcopyxx_text_len + 3) >> 2; ++ HIDDEN(__bcopyxx_text_len = ABSOLUTE(__bcopyxx_text_end) - ABSOLUTE(__bcopyxx_text_start)); ++ HIDDEN(__bcopyxx_text_dwords = (__bcopyxx_text_len + 3) >> 2); + + .bcopyxx.data : { +- __bcopyxx_data_start = .; ++ HIDDEN(__bcopyxx_data_start = .); + *(.bcopyxx.text) +- __bcopyxx_data_end = .; ++ HIDDEN(__bcopyxx_data_end = .); + } +- __bcopyxx_data_len = ABSOLUTE(__bcopyxx_data_end) - ABSOLUTE(__bcopyxx_data_start); +- __bcopyxx_data_dwords = (__bcopyxx_data_len + 3) >> 2; ++ HIDDEN(__bcopyxx_data_len = ABSOLUTE(__bcopyxx_data_end) - ABSOLUTE(__bcopyxx_data_start)); ++ HIDDEN(__bcopyxx_data_dwords = (__bcopyxx_data_len + 3) >> 2); + +- __bcopyxx_end = .; +- __bcopyxx_len = ABSOLUTE(__bcopyxx_end) - ABSOLUTE(__bcopyxx_start); +- __bcopyxx_dwords = (__bcopyxx_len + 3) >> 2; ++ HIDDEN(__bcopyxx_end = .); ++ HIDDEN(__bcopyxx_len = ABSOLUTE(__bcopyxx_end) - ABSOLUTE(__bcopyxx_start)); ++ HIDDEN(__bcopyxx_dwords = (__bcopyxx_len + 3) >> 2); + + . = ALIGN(4); + .data16 : { +- __data16_start = .; ++ HIDDEN(__data16_start = .); + *(.data16) +- __data16_end = .; ++ HIDDEN(__data16_end = .); + } +- __data16_len = ABSOLUTE(__data16_end) - ABSOLUTE(__data16_start); +- __data16_dwords = (__data16_len + 3) >> 2; ++ HIDDEN(__data16_len = ABSOLUTE(__data16_end) - ABSOLUTE(__data16_start)); ++ HIDDEN(__data16_dwords = (__data16_len + 3) >> 2); + + . = ALIGN(4); +- __config_lma = .; ++ HIDDEN(__config_lma = ABSOLUTE(.)); + . += SIZEOF(.config); + + . = ALIGN(4); +- __replacestub_lma = .; ++ HIDDEN(__replacestub_lma = ABSOLUTE(.)); + . += SIZEOF(.replacestub); + + /* The 32-bit code loads above the non-progbits sections */ + + . = ALIGN(16); +- __pm_code_lma = .; ++ HIDDEN(__pm_code_lma = ABSOLUTE(.)); + +- __high_clear_start = .; ++ HIDDEN(__high_clear_start = .); + + . = ALIGN(512); + .adv (NOLOAD) : { +- __adv_start = .; ++ HIDDEN(__adv_start = .); + *(.adv) +- __adv_end = .; ++ HIDDEN(__adv_end = .); + } +- __adv_len = ABSOLUTE(__adv_end) - ABSOLUTE(__adv_start); +- __adv_dwords = (__adv_len + 3) >> 2; ++ HIDDEN(__adv_len = ABSOLUTE(__adv_end) - ABSOLUTE(__adv_start)); ++ HIDDEN(__adv_dwords = (__adv_len + 3) >> 2); + + /* Late uninitialized sections */ + + . = ALIGN(4); + .uibss (NOLOAD) : { +- __uibss_start = .; ++ HIDDEN(__uibss_start = .); + *(.uibss) +- __uibss_end = .; ++ HIDDEN(__uibss_end = .); + } +- __uibss_len = ABSOLUTE(__uibss_end) - ABSOLUTE(__uibss_start); +- __uibss_dwords = (__uibss_len + 3) >> 2; ++ HIDDEN(__uibss_len = ABSOLUTE(__uibss_end) - ABSOLUTE(__uibss_start)); ++ HIDDEN(__uibss_dwords = (__uibss_len + 3) >> 2); + +- _end16 = .; +- __assert_end16 = ASSERT(_end16 <= 0x10000, "64K overflow"); ++ HIDDEN(_end16 = .); ++ HIDDEN(__assert_end16 = ASSERT(_end16 <= 0x10000, "64K overflow")); + + /* + * Special 16-bit segments + */ +- +- . = ALIGN(65536); +- .real_mode (NOLOAD) : { +- *(.real_mode) +- } +- real_mode_seg = core_real_mode >> 4; +- + . = ALIGN(65536); + .xfer_buf (NOLOAD) : { + *(.xfer_buf) + } +- xfer_buf_seg = core_xfer_buf >> 4; ++ HIDDEN(xfer_buf_seg = core_xfer_buf >> 4); + + /* + * The auxilliary data segment is used by the 16-bit code +@@ -219,33 +213,33 @@ SECTIONS + + . = ALIGN(16); + .auxseg (NOLOAD) : { +- __auxseg_start = .; ++ HIDDEN(__auxseg_start = .); + *(.auxseg) +- __auxseg_end = .; ++ HIDDEN(__auxseg_end = .); + } +- __auxseg_len = ABSOLUTE(__auxseg_end) - ABSOLUTE(__auxseg_start); +- __auxseg_dwords = (__auxseg_len + 3) >> 2; +- aux_seg = __auxseg_start >> 4; ++ HIDDEN(__auxseg_len = ABSOLUTE(__auxseg_end) - ABSOLUTE(__auxseg_start)); ++ HIDDEN(__auxseg_dwords = (__auxseg_len + 3) >> 2); ++ HIDDEN(aux_seg = __auxseg_start >> 4); + + /* + * Used to allocate lowmem buffers from 32-bit code + */ + .lowmem (NOLOAD) : { +- __lowmem_start = .; ++ HIDDEN(__lowmem_start = .); + *(.lowmem) +- __lowmem_end = .; ++ HIDDEN(__lowmem_end = .); + } +- __lowmem_len = ABSOLUTE(__lowmem_end) - ABSOLUTE(__lowmem_start); +- __lowmem_dwords = (__lowmem_len + 3) >> 2; ++ HIDDEN(__lowmem_len = ABSOLUTE(__lowmem_end) - ABSOLUTE(__lowmem_start)); ++ HIDDEN(__lowmem_dwords = (__lowmem_len + 3) >> 2); + +- __high_clear_end = .; ++ HIDDEN(__high_clear_end = .); + +- __high_clear_len = ABSOLUTE(__high_clear_end) - ABSOLUTE(__high_clear_start); +- __high_clear_dwords = (__high_clear_len + 3) >> 2; ++ HIDDEN(__high_clear_len = ABSOLUTE(__high_clear_end) - ABSOLUTE(__high_clear_start)); ++ HIDDEN(__high_clear_dwords = (__high_clear_len + 3) >> 2); + + /* Start of the lowmem heap */ + . = ALIGN(16); +- __lowmem_heap = .; ++ HIDDEN(__lowmem_heap = .); + + /* + * 32-bit code. This is a hack for the moment due to the +@@ -254,136 +248,137 @@ SECTIONS + + . = 0x100000; + +- __pm_code_start = .; +- __vma_to_lma = __pm_code_lma - __pm_code_start; ++ HIDDEN(__pm_code_start = .); ++ HIDDEN(__vma_to_lma = ABSOLUTE(__pm_code_lma - __pm_code_start)); + + .text : AT(ADDR(.text) + __vma_to_lma) { + FILL(0x90909090) +- __text_start = .; ++ HIDDEN(__text_start = .); + *(.text) + *(.text.*) +- __text_end = .; ++ HIDDEN(__text_end = .); + } + + .rodata : AT(ADDR(.rodata) + __vma_to_lma) { +- __rodata_start = .; ++ HIDDEN(__rodata_start = .); + *(.rodata) + *(.rodata.*) +- __rodata_end = .; ++ HIDDEN(__rodata_end = .); + } + + .ctors : AT(ADDR(.ctors) + __vma_to_lma) { +- __ctors_start = .; ++ HIDDEN(__ctors_start = .); + KEEP (*(SORT(.ctors.*))) + KEEP (*(.ctors)) +- __ctors_end = .; ++ HIDDEN(__ctors_end = .); + } + + .dtors : AT(ADDR(.dtors) + __vma_to_lma) { +- __dtors_start = .; ++ HIDDEN(__dtors_start = .); + KEEP (*(SORT(.dtors.*))) + KEEP (*(.dtors)) +- __dtors_end = .; ++ HIDDEN(__dtors_end = .); + } + + .dynsym : AT(ADDR(.dynsym) + __vma_to_lma) { +- __dynsym_start = .; +- *(.dynsym) +- __dynsym_end = .; ++ HIDDEN(__dynsym_start = .); ++ KEEP (*(.dynsym)) ++ HIDDEN(__dynsym_end = .); + } +- __dynsym_len = __dynsym_end - __dynsym_start; ++ HIDDEN(__dynsym_len = __dynsym_end - __dynsym_start); + + .dynstr : AT(ADDR(.dynstr) + __vma_to_lma) { +- __dynstr_start = .; +- *(.dynstr) +- __dynstr_end = .; ++ HIDDEN(__dynstr_start = .); ++ KEEP (*(.dynstr)) ++ HIDDEN(__dynstr_end = .); + } +- __dynstr_len = __dynstr_end - __dynstr_start; ++ HIDDEN(__dynstr_len = __dynstr_end - __dynstr_start); + + .gnu.hash : AT(ADDR(.gnu.hash) + __vma_to_lma) { +- __gnu_hash_start = .; +- *(.gnu.hash) +- __gnu_hash_end = .; ++ HIDDEN(__gnu_hash_start = .); ++ KEEP (*(.gnu.hash)) ++ HIDDEN(__gnu_hash_end = .); + } + + + .dynlink : AT(ADDR(.dynlink) + __vma_to_lma) { +- __dynlink_start = .; +- *(.dynlink) +- __dynlink_end = .; ++ HIDDEN(__dynlink_start = .); ++ KEEP (*(.dynlink)) ++ HIDDEN(__dynlink_end = .); + } + + .got : AT(ADDR(.got) + __vma_to_lma) { +- __got_start = .; +- KEEP (*(.got.plt)) ++ HIDDEN(__got_start = .); + KEEP (*(.got)) +- __got_end = .; ++ KEEP (*(.got.plt)) ++ HIDDEN(__got_end = .); + } + + .dynamic : AT(ADDR(.dynamic) + __vma_to_lma) { +- __dynamic_start = .; +- *(.dynamic) +- __dynamic_end = .; ++ HIDDEN(__dynamic_start = .); ++ KEEP (*(.dynamic)) ++ HIDDEN(__dynamic_end = .); + } + + .data : AT(ADDR(.data) + __vma_to_lma) { +- __data_start = .; ++ HIDDEN(__data_start = .); + *(.data) + *(.data.*) +- __data_end = .; ++ HIDDEN(__data_end = .); + } + +- __pm_code_end = .; +- __pm_code_len = ABSOLUTE(__pm_code_end) - ABSOLUTE(__pm_code_start); +- __pm_code_dwords = (__pm_code_len + 3) >> 2; ++ HIDDEN(__pm_code_end = .); ++ HIDDEN(__pm_code_len = ABSOLUTE(__pm_code_end) - ABSOLUTE(__pm_code_start)); ++ HIDDEN(__pm_code_dwords = (__pm_code_len + 3) >> 2); + + . = ALIGN(128); + +- __bss_vma = .; +- __bss_lma = .; /* Dummy */ ++ HIDDEN(__bss_vma = .); ++ HIDDEN(__bss_lma = ABSOLUTE(.)); /* Dummy */ + .bss (NOLOAD) : AT (__bss_lma) { +- __bss_start = .; ++ HIDDEN(__bss_start = .); + *(.bss) + *(.bss.*) + *(COMMON) +- __bss_end = .; ++ HIDDEN(__bss_end = .); + } +- __bss_len = ABSOLUTE(__bss_end) - ABSOLUTE(__bss_start); +- __bss_dwords = (__bss_len + 3) >> 2; ++ HIDDEN(__bss_len = ABSOLUTE(__bss_end) - ABSOLUTE(__bss_start)); ++ HIDDEN(__bss_dwords = (__bss_len + 3) >> 2); + + /* Very large objects which don't need to be zeroed */ + +- __hugebss_vma = .; +- __hugebss_lma = .; /* Dummy */ ++ HIDDEN(__hugebss_vma = .); ++ HIDDEN(__hugebss_lma = ABSOLUTE(.)); /* Dummy */ + .hugebss (NOLOAD) : AT (__hugebss_lma) { +- __hugebss_start = .; ++ HIDDEN(__hugebss_start = .); + *(.hugebss) + *(.hugebss.*) +- __hugebss_end = .; ++ HIDDEN(__hugebss_end = .); + } +- __hugebss_len = ABSOLUTE(__hugebss_end) - ABSOLUTE(__hugebss_start); +- __hugebss_dwords = (__hugebss_len + 3) >> 2; ++ HIDDEN(__hugebss_len = ABSOLUTE(__hugebss_end) - ABSOLUTE(__hugebss_start)); ++ HIDDEN(__hugebss_dwords = (__hugebss_len + 3) >> 2); + + + /* XXX: This stack should be unified with the COM32 stack */ +- __stack_vma = .; +- __stack_lma = .; /* Dummy */ ++ HIDDEN(__stack_vma = .); ++ HIDDEN(__stack_lma = ABSOLUTE(.)); /* Dummy */ + .stack (NOLOAD) : AT(__stack_lma) { +- __stack_start = .; ++ HIDDEN(__stack_start = .); + *(.stack) +- __stack_end = .; ++ HIDDEN(__stack_end = .); + } +- __stack_len = ABSOLUTE(__stack_end) - ABSOLUTE(__stack_start); +- __stack_dwords = (__stack_len + 3) >> 2; ++ HIDDEN(__stack_len = ABSOLUTE(__stack_end) - ABSOLUTE(__stack_start)); ++ HIDDEN(__stack_dwords = (__stack_len + 3) >> 2); + +- _end = .; ++ HIDDEN(_end = .); + + /* COM32R and kernels are loaded after our own PM code */ + . = ALIGN(65536); +- free_high_memory = .; ++ HIDDEN(free_high_memory = .); + + /* Stuff we don't need... */ + /DISCARD/ : { + *(.eh_frame) ++ *(.interp) + } + } +diff --git a/core/layout.inc b/core/layout.inc +index 53ca783d..635df537 100644 +--- a/core/layout.inc ++++ b/core/layout.inc +@@ -139,17 +139,6 @@ serial_buf_size equ 4096 ; Should be a power of 2 + core_xfer_buf resb 65536 + + ; +-; Segment for the real mode code (needed as long as we have a in-kernel +-; loader and/or COM16 support. +-; One symbol for the segment number, one for the absolute address +-; +- extern real_mode_seg +- section .real_mode write nobits align=65536 +- global core_real_mode:data hidden +-core_real_mode resb 65536 +-comboot_seg equ real_mode_seg ; COMBOOT image loading zone +- +-; + ; At the very end, the lowmem heap + ; + extern __lowmem_heap +-- +2.13.3 + diff --git a/boot/syslinux/0011-extlinux-Use-the-host-toolchain-to-build.patch b/boot/syslinux/0011-extlinux-Use-the-host-toolchain-to-build.patch new file mode 100644 index 000000000..62675cf6c --- /dev/null +++ b/boot/syslinux/0011-extlinux-Use-the-host-toolchain-to-build.patch @@ -0,0 +1,53 @@ +From 4df2e7c0ae84bfbdba0ed285c0664aa089b38b7e Mon Sep 17 00:00:00 2001 +From: Carlos Santos +Date: Sat, 30 Sep 2017 19:49:55 -0300 +Subject: [PATCH] extlinux: Use the host toolchain to build. + +It is meant to run on the host machine, hence must be built using the +host toolchain. + +Signed-off-by: Carlos Santos +--- + extlinux/Makefile | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/extlinux/Makefile b/extlinux/Makefile +index 02d1db51..5c4baa5a 100644 +--- a/extlinux/Makefile ++++ b/extlinux/Makefile +@@ -18,9 +18,9 @@ include $(MAKEDIR)/syslinux.mk + + OPTFLAGS = -g -Os + INCLUDES = -I$(SRC) -I$(objdir) -I$(SRC)/../libinstaller +-CFLAGS = $(GCCWARN) -Wno-sign-compare -D_FILE_OFFSET_BITS=64 \ ++CFLAGS = $(CFLAGS_FOR_BUILD) $(GCCWARN) -Wno-sign-compare -D_FILE_OFFSET_BITS=64 \ + $(OPTFLAGS) $(INCLUDES) +-LDFLAGS = ++LDFLAGS = $(LDFLAGS_FOR_BUILD) + + SRCS = main.c \ + mountinfo.c \ +@@ -52,16 +52,16 @@ spotless: clean + installer: extlinux + + extlinux: $(OBJS) +- $(CC) $(LDFLAGS) -o $@ $^ ++ $(CC_FOR_BUILD) $(LDFLAGS) -o $@ $^ + + strip: + $(STRIP) extlinux + + %.o: %.c +- $(CC) $(UMAKEDEPS) $(CFLAGS) -c -o $@ $< ++ $(CC_FOR_BUILD) $(UMAKEDEPS) $(CFLAGS) -c -o $@ $< + %.i: %.c +- $(CC) $(UMAKEDEPS) $(CFLAGS) -E -o $@ $< ++ $(CC_FOR_BUILD) $(UMAKEDEPS) $(CFLAGS) -E -o $@ $< + %.s: %.c +- $(CC) $(UMAKEDEPS) $(CFLAGS) -S -o $@ $< ++ $(CC_FOR_BUILD) $(UMAKEDEPS) $(CFLAGS) -S -o $@ $< + + -include .*.d +-- +2.13.5 + diff --git a/boot/syslinux/0012-pull-in-sys-sysmacros-h-for-major-minor-makedev.patch b/boot/syslinux/0012-pull-in-sys-sysmacros-h-for-major-minor-makedev.patch new file mode 100644 index 000000000..beba5cc24 --- /dev/null +++ b/boot/syslinux/0012-pull-in-sys-sysmacros-h-for-major-minor-makedev.patch @@ -0,0 +1,34 @@ +From 1a74985b2a404639b08882c57f3147229605dfd5 Mon Sep 17 00:00:00 2001 +From: Mike Frysinger +Date: Tue, 19 Apr 2016 06:50:31 -0400 +Subject: [PATCH] extlinux: pull in sys/sysmacros.h for major/minor/makedev + +These functions are defined in sys/sysmacros.h, so add the include to +main.c. This is already handled correctly in mountinfo.c. Otherwise +we get build failures like: + +main.o: In function 'find_device_sysfs': +extlinux/main.c:1131: undefined reference to 'minor' + +Signed-off-by: Mike Frysinger +Signed-off-by: Gene Cumm +Signed-off-by: Alexander Sverdlin +--- + extlinux/main.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/extlinux/main.c b/extlinux/main.c +index a7ebd49..ebff7ea 100644 +--- a/extlinux/main.c ++++ b/extlinux/main.c +@@ -38,6 +38,7 @@ + #include + #include + #include ++#include + #include + #include + #include +-- +2.10.5.GIT + diff --git a/boot/syslinux/0013-Fix-build-with-gnu-efi-version-3.0.9.patch b/boot/syslinux/0013-Fix-build-with-gnu-efi-version-3.0.9.patch new file mode 100644 index 000000000..17a6d37ce --- /dev/null +++ b/boot/syslinux/0013-Fix-build-with-gnu-efi-version-3.0.9.patch @@ -0,0 +1,45 @@ +From 44a1b42e561b9a257209300e2860b901b100cc17 Mon Sep 17 00:00:00 2001 +From: Carlos Santos +Date: Tue, 26 Feb 2019 08:07:22 -0300 +Subject: [PATCH] Fix build with gnu-efi version 3.0.9 + +Adapt a patch already applied upstream to prevent multiple definitions +of 'memset' and 'memcpy'. + +Signed-off-by: Carlos Santos +(adapted from commit 363d61c4f112b972649b19d67e96b9321f738f00) +--- + mk/lib.mk | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/mk/lib.mk b/mk/lib.mk +index ceb95bd0..c9b6eaf3 100644 +--- a/mk/lib.mk ++++ b/mk/lib.mk +@@ -186,9 +186,9 @@ MINLIBOBJS = \ + # $(LIBVESA_OBJS) + + CORELIBOBJS = \ +- memcpy.o memset.o memcmp.o printf.o strncmp.o vfprintf.o \ ++ memcmp.o printf.o strncmp.o vfprintf.o \ + strlen.o vsnprintf.o snprintf.o stpcpy.o strcmp.o strdup.o \ +- strcpy.o strncpy.o setjmp.o fopen.o fread.o fread2.o puts.o \ ++ strcpy.o strncpy.o fopen.o fread.o fread2.o puts.o \ + strtoul.o strntoumax.o strcasecmp.o \ + sprintf.o strlcat.o strchr.o strlcpy.o strncasecmp.o ctypes.o \ + fputs.o fwrite2.o fwrite.o fgetc.o fclose.o lmalloc.o \ +@@ -203,6 +203,11 @@ CORELIBOBJS = \ + $(LIBENTRY_OBJS) \ + $(LIBMODULE_OBJS) + ++ifndef EFI_BUILD ++# For EFI, these are part of gnu-efi ++CORELIBOBJS += setjmp.o memcpy.o memset.o ++endif ++ + LDFLAGS = -m elf_$(ARCH) --hash-style=gnu -T $(com32)/lib/$(ARCH)/elf.ld + + .SUFFIXES: .c .o .a .so .lo .i .S .s .ls .ss .lss +-- +2.14.5 + diff --git a/boot/syslinux/0014-Fix-build-with-binutils-note-gnu-property-section.patch b/boot/syslinux/0014-Fix-build-with-binutils-note-gnu-property-section.patch new file mode 100644 index 000000000..fedd81569 --- /dev/null +++ b/boot/syslinux/0014-Fix-build-with-binutils-note-gnu-property-section.patch @@ -0,0 +1,47 @@ +From beb526ca925983c7da229043790ecd552d910650 Mon Sep 17 00:00:00 2001 +From: Christian Stewart +Date: Thu, 4 Apr 2019 23:24:31 -0700 +Subject: [PATCH] Fix build with binutils note gnu property section + +This fixes the following build error with newer binutils: + + objcopy -O binary mbr.elf mbr.bin + perl /build/syslinux/src/syslinux/mbr/checksize.pl mbr.bin + mbr.bin: too big (452 > 440) + +Corresponding bug reports: + + - https://bugs.archlinux.org/task/60405 + - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=906414 + +Strips the .note.gnu.property in the linker scripts for the MBRs. + +Signed-off-by: Christian Stewart +--- + mbr/i386/mbr.ld | 1 + + mbr/x86_64/mbr.ld | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/mbr/i386/mbr.ld b/mbr/i386/mbr.ld +index d14ba802..53683461 100644 +--- a/mbr/i386/mbr.ld ++++ b/mbr/i386/mbr.ld +@@ -70,4 +70,5 @@ SECTIONS + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } + /DISCARD/ : { *(.note.GNU-stack) } ++ /DISCARD/ : { *(.note.gnu.property) } + } +diff --git a/mbr/x86_64/mbr.ld b/mbr/x86_64/mbr.ld +index ae27d49a..b8c0d895 100644 +--- a/mbr/x86_64/mbr.ld ++++ b/mbr/x86_64/mbr.ld +@@ -69,4 +69,5 @@ SECTIONS + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } + /DISCARD/ : { *(.note.GNU-stack) } ++ /DISCARD/ : { *(.note.gnu.property) } + } +-- +2.21.0 + diff --git a/boot/syslinux/0015-efi-main.c-include-efisetjmp.h.patch b/boot/syslinux/0015-efi-main.c-include-efisetjmp.h.patch new file mode 100644 index 000000000..2fd61ecbc --- /dev/null +++ b/boot/syslinux/0015-efi-main.c-include-efisetjmp.h.patch @@ -0,0 +1,60 @@ +From 7d68fa68cd9f2987bd85339f3391913a8b0e58c7 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 24 Mar 2020 10:21:27 +0100 +Subject: [PATCH] efi/main.c: include +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Building syslinux against gnu-efi 3.0.10 currently fails with: + +syslinux/efi/main.c:33:8: error: unknown type name ‘jmp_buf’ + 33 | static jmp_buf load_error_buf; + | ^~~~~~~ +syslinux/efi/main.c: In function ‘local_boot’: +syslinux/efi/main.c:189:5: warning: implicit declaration of function ‘longjmp’ [-Wimplicit-function-declaration] + 189 | longjmp(&load_error_buf, 1); + | ^~~~~~~ +syslinux/efi/main.c: In function ‘build_gdt’: +syslinux/efi/main.c:907:75: warning: taking address of packed member of ‘struct dt_desc’ may result in an unaligned pointer value [-Waddress-of-packed-member] + 907 | status = emalloc(gdt.limit, __SIZEOF_POINTER__ , (EFI_PHYSICAL_ADDRESS *)&gdt.base); + | ^~~~~~~~~ +syslinux/efi/main.c: In function ‘efi_main’: +syslinux/efi/main.c:1390:7: warning: implicit declaration of function ‘setjmp’ [-Wimplicit-function-declaration] + 1390 | if (!setjmp(&load_error_buf)) + | ^~~~~~ +make[3]: *** [syslinux/mk/efi.mk:63: main.o] Error 1 + +This is due to gnu-efi commit 486ba3c3bdd147b7d98159b9e650be60bce0f027 +("Do not include efisetjmp.h on efi.h"), in which they state: + + Do not include efisetjmp.h on efi.h + + People than really want to use efisetjmp implementation can include + the header on their own. + + Signed-off-by: leo + +So we act as specified, and include from efi/main.c. + +Signed-off-by: Thomas Petazzoni +Upstream: https://www.syslinux.org/archives/2020-March/026621.html +--- + efi/main.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/efi/main.c b/efi/main.c +index 6a748412..e924cfb1 100644 +--- a/efi/main.c ++++ b/efi/main.c +@@ -12,6 +12,7 @@ + #include + + #include "efi.h" ++#include + #include "fio.h" + #include "version.h" + #include "efi_pxe.h" +-- +2.25.1 + diff --git a/boot/syslinux/0016-Workaround-multiple-definition-of-symbol-errors.patch b/boot/syslinux/0016-Workaround-multiple-definition-of-symbol-errors.patch new file mode 100644 index 000000000..ea91de5cb --- /dev/null +++ b/boot/syslinux/0016-Workaround-multiple-definition-of-symbol-errors.patch @@ -0,0 +1,126 @@ +From 16f293d67eace501c98494976030f4319778ebf5 Mon Sep 17 00:00:00 2001 +From: Merlin Mathesius +Date: Wed, 13 May 2020 08:02:27 -0500 +Subject: [PATCH] Workaround multiple definition of symbol errors + +[From https://src.fedoraproject.org/rpms/syslinux/raw/rawhide/f/0005-Workaround-multiple-definition-of-symbol-errors.patch + plus adding '-z muldefs' for gpxe] +Signed-off-by: Peter Seiderer +--- + com32/cmenu/Makefile | 2 +- + com32/elflink/ldlinux/Makefile | 2 +- + com32/gpllib/Makefile | 2 +- + com32/hdt/Makefile | 2 +- + core/Makefile | 2 +- + dos/Makefile | 2 +- + efi/Makefile | 2 +- + gpxe/src/arch/i386/Makefile | 2 +- + 8 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/com32/cmenu/Makefile b/com32/cmenu/Makefile +index 6bb52316..66cdd649 100644 +--- a/com32/cmenu/Makefile ++++ b/com32/cmenu/Makefile +@@ -49,7 +49,7 @@ makeoutputdirs: + @mkdir -p $(OBJ)/libmenu + + libmenu/libmenu.elf: $(LIBMENU) +- $(LD) -shared $(LDFLAGS) -soname $(patsubst %.elf,%.c32,$(@F)) \ ++ $(LD) -shared $(LDFLAGS) -z muldefs -soname $(patsubst %.elf,%.c32,$(@F)) \ + -o $@ $^ + + tidy dist: +diff --git a/com32/elflink/ldlinux/Makefile b/com32/elflink/ldlinux/Makefile +index d948da43..67434a1f 100644 +--- a/com32/elflink/ldlinux/Makefile ++++ b/com32/elflink/ldlinux/Makefile +@@ -33,7 +33,7 @@ endif + all: $(BTARGET) ldlinux_lnx.a + + ldlinux.elf : $(OBJS) +- $(LD) $(LDFLAGS) -soname $(SONAME) -o $@ $^ $(LIBS) ++ $(LD) $(LDFLAGS) -z muldefs -soname $(SONAME) -o $@ $^ $(LIBS) + + LNXCFLAGS += -D__export='__attribute__((visibility("default")))' + LNXLIBOBJS = get_key.lo +diff --git a/com32/gpllib/Makefile b/com32/gpllib/Makefile +index e3e30d76..17520a1e 100644 +--- a/com32/gpllib/Makefile ++++ b/com32/gpllib/Makefile +@@ -24,7 +24,7 @@ makeoutputdirs: + $(addprefix $(OBJ),$(sort $(dir $(LIBOBJS)))),$(b)) + + libgpl.elf : $(LIBOBJS) +- $(LD) -shared $(LDFLAGS) -soname $(patsubst %.elf,%.c32,$(@F)) -o $@ $^ ++ $(LD) -shared $(LDFLAGS) -z muldefs -soname $(patsubst %.elf,%.c32,$(@F)) -o $@ $^ + + tidy dist clean: + find . \( -name \*.o -o -name .\*.d -o -name \*.tmp \) -print0 | \ +diff --git a/com32/hdt/Makefile b/com32/hdt/Makefile +index 80f2d0a0..8509cd96 100644 +--- a/com32/hdt/Makefile ++++ b/com32/hdt/Makefile +@@ -52,7 +52,7 @@ QEMU ?= qemu-kvm + all: $(MODULES) $(TESTFILES) + + hdt.elf : $(OBJS) $(LIBS) $(C_LIBS) +- $(LD) $(LDFLAGS) -o $@ $^ ++ $(LD) $(LDFLAGS) -z muldefs -o $@ $^ + + memtest: + -[ ! -f $(FLOPPY_DIR)/$(MEMTEST) ] && $(WGET) $(MEMTEST_URL) -O $(FLOPPY_DIR)/$(MEMTEST) +diff --git a/core/Makefile b/core/Makefile +index ad0acb5a..3bee4dc9 100644 +--- a/core/Makefile ++++ b/core/Makefile +@@ -164,7 +164,7 @@ AUXLIBS = libisolinux.a libisolinux-debug.a libldlinux.a \ + LDSCRIPT = $(SRC)/$(ARCH)/syslinux.ld + + %.elf: %.o $(LIBDEP) $(LDSCRIPT) $(AUXLIBS) +- $(LD) $(LDFLAGS) -Bsymbolic $(LD_PIE) -E --hash-style=gnu -T $(LDSCRIPT) -M -o $@ $< \ ++ $(LD) $(LDFLAGS) -z muldefs -Bsymbolic $(LD_PIE) -E --hash-style=gnu -T $(LDSCRIPT) -M -o $@ $< \ + --start-group $(LIBS) $(subst $(*F).elf,lib$(*F).a,$@) --end-group \ + > $(@:.elf=.map) + $(OBJDUMP) -h $@ > $(@:.elf=.sec) +diff --git a/dos/Makefile b/dos/Makefile +index b9c337d5..2af87346 100644 +--- a/dos/Makefile ++++ b/dos/Makefile +@@ -19,7 +19,7 @@ include $(MAKEDIR)/embedded.mk + CFLAGS += -D__MSDOS__ -mregparm=3 -DREGPARM=3 + # CFLAGS += -DDEBUG + +-LDFLAGS = -T $(SRC)/dosexe.ld ++LDFLAGS = -T $(SRC)/dosexe.ld -z muldefs + OPTFLAGS = -g + INCLUDES = -include code16.h -nostdinc -iwithprefix include \ + -I$(SRC) -I$(SRC)/.. -I$(SRC)/../libfat \ +diff --git a/efi/Makefile b/efi/Makefile +index d24d16db..7c714ebf 100644 +--- a/efi/Makefile ++++ b/efi/Makefile +@@ -70,7 +70,7 @@ $(OBJS): subdirs + BTARGET = syslinux.efi + + syslinux.so: $(OBJS) $(CORE_OBJS) $(LIB_OBJS) +- $(LD) $(LDFLAGS) --strip-debug -o $@ $^ -lgnuefi -lefi ++ $(LD) $(LDFLAGS) -z muldefs --strip-debug -o $@ $^ -lgnuefi -lefi + + # We need to rename the .hash section because the EFI firmware + # linker really doesn't like it. +diff --git a/gpxe/src/arch/i386/Makefile b/gpxe/src/arch/i386/Makefile +index dd8da802..be1d00ff 100644 +--- a/gpxe/src/arch/i386/Makefile ++++ b/gpxe/src/arch/i386/Makefile +@@ -55,7 +55,7 @@ ASFLAGS += --32 + ifeq ($(HOST_OS),FreeBSD) + LDFLAGS += -m elf_i386_fbsd + else +-LDFLAGS += -m elf_i386 ++LDFLAGS += -z muldefs -m elf_i386 + endif + + # EFI requires -fshort-wchar, and nothing else currently uses wchar_t +-- +2.30.1 + diff --git a/boot/syslinux/0017-Replace-builtin-strlen-that-appears-to-get-optimized.patch b/boot/syslinux/0017-Replace-builtin-strlen-that-appears-to-get-optimized.patch new file mode 100644 index 000000000..69a7e87d8 --- /dev/null +++ b/boot/syslinux/0017-Replace-builtin-strlen-that-appears-to-get-optimized.patch @@ -0,0 +1,42 @@ +From 698a6ce88524b727d265b204d648e78d8acb485c Mon Sep 17 00:00:00 2001 +From: Merlin Mathesius +Date: Wed, 13 May 2020 11:58:37 -0500 +Subject: [PATCH] Replace builtin strlen that appears to get optimized away + +[From https://src.fedoraproject.org/rpms/syslinux/raw/rawhide/f/0006-Replace-builtin-strlen-that-appears-to-get-optimized.patch] +Signed-off-by: Peter Seiderer +--- + dos/string.h | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/dos/string.h b/dos/string.h +index f648de2d..407d0233 100644 +--- a/dos/string.h ++++ b/dos/string.h +@@ -5,12 +5,22 @@ + #ifndef _STRING_H + #define _STRING_H + ++#include ++ + /* Standard routines */ + #define memcpy(a,b,c) __builtin_memcpy(a,b,c) + #define memmove(a,b,c) __builtin_memmove(a,b,c) + #define memset(a,b,c) __builtin_memset(a,b,c) + #define strcpy(a,b) __builtin_strcpy(a,b) +-#define strlen(a) __builtin_strlen(a) ++#define strlen(a) inline_strlen(a) ++ ++/* replacement for builtin strlen that appears to get optimized away */ ++static inline size_t inline_strlen(const char *str) ++{ ++ size_t l; ++ for (l = 0; *str++; l++); ++ return l; ++} + + /* This only returns true or false */ + static inline int memcmp(const void *__m1, const void *__m2, unsigned int __n) +-- +2.30.1 + diff --git a/boot/syslinux/Config.in b/boot/syslinux/Config.in new file mode 100644 index 000000000..c95dac180 --- /dev/null +++ b/boot/syslinux/Config.in @@ -0,0 +1,61 @@ +config BR2_TARGET_SYSLINUX + bool "syslinux" + depends on BR2_i386 || BR2_x86_64 + # Make sure at least one of the flavors is installed + select BR2_TARGET_SYSLINUX_ISOLINUX \ + if !BR2_TARGET_SYSLINUX_PXELINUX && \ + !BR2_TARGET_SYSLINUX_MBR && \ + !BR2_TARGET_SYSLINUX_EFI + select BR2_PACKAGE_UTIL_LINUX + select BR2_PACKAGE_UTIL_LINUX_LIBUUID + help + The syslinux bootloader for x86 systems. + This includes: syslinux, pxelinux, extlinux. + + http://syslinux.org + +if BR2_TARGET_SYSLINUX + +config BR2_TARGET_SYSLINUX_LEGACY_BIOS + bool + +config BR2_TARGET_SYSLINUX_ISOLINUX + bool "install isolinux" + select BR2_TARGET_SYSLINUX_LEGACY_BIOS + help + Install the legacy-BIOS 'isolinux' image, to boot off + optical media (CDROM, DVD.) + +config BR2_TARGET_SYSLINUX_PXELINUX + bool "install pxelinux" + select BR2_TARGET_SYSLINUX_LEGACY_BIOS + help + Install the legacy-BIOS 'pxelinux' image, to boot off + the network using PXE. + +config BR2_TARGET_SYSLINUX_MBR + bool "install mbr" + select BR2_TARGET_SYSLINUX_LEGACY_BIOS + help + Install the legacy-BIOS 'mbr' image, to boot off a + local MBR-partition (e.g. prepared with 'extlinux' + or 'syslinux'). + +config BR2_TARGET_SYSLINUX_EFI + bool "install efi" + depends on BR2_PACKAGE_GNU_EFI_ARCH_SUPPORTS + select BR2_PACKAGE_GNU_EFI + help + Install the 'efi' image, to boot from an EFI environment. + +if BR2_TARGET_SYSLINUX_LEGACY_BIOS + +config BR2_TARGET_SYSLINUX_C32 + string "modules to install" + help + Enter a space-separated list of .c32 modules to install. + Leave empty to install no module. + +endif # BR2_TARGET_SYSLINUX_LEGACY_BIOS + +endif # BR2_TARGET_SYSLINUX diff --git a/boot/syslinux/syslinux.hash b/boot/syslinux/syslinux.hash new file mode 100644 index 000000000..9bec3a20e --- /dev/null +++ b/boot/syslinux/syslinux.hash @@ -0,0 +1,4 @@ +# From https://www.kernel.org/pub/linux/utils/boot/syslinux/sha256sums.asc +sha256 26d3986d2bea109d5dc0e4f8c4822a459276cf021125e8c9f23c3cca5d8c850e syslinux-6.03.tar.xz +# Locally computed +sha256 dcc100d4161cc0b7177545ab6e47216f84857cda3843847c792a25289852dcaa COPYING diff --git a/boot/syslinux/syslinux.mk b/boot/syslinux/syslinux.mk new file mode 100644 index 000000000..cc52c49ae --- /dev/null +++ b/boot/syslinux/syslinux.mk @@ -0,0 +1,115 @@ +################################################################################ +# +# syslinux to make target msdos/iso9660 filesystems bootable +# +################################################################################ + +SYSLINUX_VERSION = 6.03 +SYSLINUX_SOURCE = syslinux-$(SYSLINUX_VERSION).tar.xz +SYSLINUX_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/boot/syslinux + +SYSLINUX_LICENSE = GPL-2.0+ +SYSLINUX_LICENSE_FILES = COPYING + +SYSLINUX_INSTALL_IMAGES = YES + +# host-util-linux needed to provide libuuid when building host tools +SYSLINUX_DEPENDENCIES = \ + host-nasm \ + host-python3 \ + host-upx \ + host-util-linux \ + util-linux + +ifeq ($(BR2_TARGET_SYSLINUX_LEGACY_BIOS),y) +SYSLINUX_TARGET += bios +endif + +# The syslinux build system must be forced to use Buildroot's gnu-efi +# package by setting EFIINC, LIBDIR and LIBEFI. Otherwise, it uses its +# own copy of gnu-efi included in syslinux's sources since 6.03 +# release. +ifeq ($(BR2_TARGET_SYSLINUX_EFI),y) +ifeq ($(BR2_ARCH_IS_64),y) +SYSLINUX_EFI_BITS = efi64 +else +SYSLINUX_EFI_BITS = efi32 +endif # 64-bit +SYSLINUX_DEPENDENCIES += gnu-efi +SYSLINUX_TARGET += $(SYSLINUX_EFI_BITS) +SYSLINUX_EFI_ARGS = \ + EFIINC=$(STAGING_DIR)/usr/include/efi \ + LIBDIR=$(STAGING_DIR)/usr/lib \ + LIBEFI=$(STAGING_DIR)/usr/lib/libefi.a +endif # EFI + +# The syslinux tarball comes with pre-compiled binaries. +# Since timestamps might not be in the correct order, a rebuild is +# not always triggered for all the different images. +# Cleanup the mess even before we attempt a build, so we indeed +# build everything from source. +define SYSLINUX_CLEANUP + rm -rf $(@D)/bios $(@D)/efi32 $(@D)/efi64 +endef +SYSLINUX_POST_PATCH_HOOKS += SYSLINUX_CLEANUP + +# syslinux build system has no convenient way to pass CFLAGS, +# and the internal zlib should take precedence so -I shouldn't +# be used. +define SYSLINUX_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE1) \ + ASCIIDOC_OK=-1 \ + A2X_XML_OK=-1 \ + CC="$(TARGET_CC)" \ + LD="$(TARGET_LD)" \ + OBJCOPY="$(TARGET_OBJCOPY)" \ + AS="$(TARGET_AS)" \ + NASM="$(HOST_DIR)/bin/nasm" \ + CC_FOR_BUILD="$(HOSTCC)" \ + CFLAGS_FOR_BUILD="$(HOST_CFLAGS)" \ + LDFLAGS_FOR_BUILD="$(HOST_LDFLAGS)" \ + PYTHON=$(HOST_DIR)/bin/python3 \ + $(SYSLINUX_EFI_ARGS) -C $(@D) $(SYSLINUX_TARGET) +endef + +# While the actual bootloader is compiled for the target, several +# utilities for installing the bootloader are meant for the host. +# Repeat the target, otherwise syslinux will try to build everything +# Repeat LD (and CC) as it happens that some binaries are linked at +# install-time. +define SYSLINUX_INSTALL_TARGET_CMDS + $(TARGET_MAKE_ENV) $(MAKE1) $(SYSLINUX_EFI_ARGS) INSTALLROOT=$(HOST_DIR) \ + CC="$(TARGET_CC)" \ + LD="$(TARGET_LD)" \ + -C $(@D) $(SYSLINUX_TARGET) install +endef + +# That 'syslinux' binary is an installer actually built for the target. +# However, buildroot makes no usage of it, so better delete it than have it +# installed at the wrong place +define SYSLINUX_POST_INSTALL_CLEANUP + rm -rf $(HOST_DIR)/bin/syslinux +endef +SYSLINUX_POST_INSTALL_TARGET_HOOKS += SYSLINUX_POST_INSTALL_CLEANUP + +SYSLINUX_IMAGES-$(BR2_TARGET_SYSLINUX_ISOLINUX) += bios/core/isolinux.bin +SYSLINUX_IMAGES-$(BR2_TARGET_SYSLINUX_PXELINUX) += bios/core/pxelinux.bin +SYSLINUX_IMAGES-$(BR2_TARGET_SYSLINUX_MBR) += bios/mbr/mbr.bin +SYSLINUX_IMAGES-$(BR2_TARGET_SYSLINUX_EFI) += $(SYSLINUX_EFI_BITS)/efi/syslinux.efi + +SYSLINUX_C32 = $(call qstrip,$(BR2_TARGET_SYSLINUX_C32)) + +# We install the c32 modules from the host-installed tree, where they +# are all neatly installed in a single location, while they are +# scattered around everywhere in the build tree. +define SYSLINUX_INSTALL_IMAGES_CMDS + for i in $(SYSLINUX_IMAGES-y); do \ + $(INSTALL) -D -m 0755 $(@D)/$$i $(BINARIES_DIR)/syslinux/$${i##*/}; \ + done + for i in $(SYSLINUX_C32); do \ + $(INSTALL) -D -m 0755 $(HOST_DIR)/share/syslinux/$${i} \ + $(BINARIES_DIR)/syslinux/$${i}; \ + done +endef + +$(eval $(generic-package)) diff --git a/boot/uboot/Config.in b/boot/uboot/Config.in new file mode 100644 index 000000000..557472b58 --- /dev/null +++ b/boot/uboot/Config.in @@ -0,0 +1,576 @@ +config BR2_TARGET_UBOOT + bool "U-Boot" + help + Build "Das U-Boot" Boot Monitor + + https://www.denx.de/wiki/U-Boot + +if BR2_TARGET_UBOOT +choice + prompt "Build system" + default BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG if BR2_TARGET_UBOOT_LATEST_VERSION + default BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY + +config BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG + bool "Kconfig" + help + Select this option if you use a recent U-Boot version (2015.04 + or newer), so that we use the Kconfig build system. + +config BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY + bool "Legacy" + help + Select this option if you use an old U-Boot (older than + 2015.04), so that we use the old build system. + +endchoice + +if BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY +config BR2_TARGET_UBOOT_BOARDNAME + string "U-Boot board name" + help + One of U-Boot supported boards to be built. + This will be suffixed with _config to meet U-Boot standard + naming. See boards.cfg in U-Boot source code for the list of + available configurations. +endif + +choice + prompt "U-Boot Version" + help + Select the specific U-Boot version you want to use + +config BR2_TARGET_UBOOT_LATEST_VERSION + bool "2022.04" + +config BR2_TARGET_UBOOT_CUSTOM_VERSION + bool "Custom version" + help + This option allows to use a specific official versions + +config BR2_TARGET_UBOOT_CUSTOM_TARBALL + bool "Custom tarball" + +config BR2_TARGET_UBOOT_CUSTOM_GIT + bool "Custom Git repository" + +config BR2_TARGET_UBOOT_CUSTOM_HG + bool "Custom Mercurial repository" + +config BR2_TARGET_UBOOT_CUSTOM_SVN + bool "Custom Subversion repository" + +endchoice + +config BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE + string "U-Boot version" + depends on BR2_TARGET_UBOOT_CUSTOM_VERSION + +config BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION + string "URL of custom U-Boot tarball" + depends on BR2_TARGET_UBOOT_CUSTOM_TARBALL + +if BR2_TARGET_UBOOT_CUSTOM_GIT || BR2_TARGET_UBOOT_CUSTOM_HG || BR2_TARGET_UBOOT_CUSTOM_SVN + +config BR2_TARGET_UBOOT_CUSTOM_REPO_URL + string "URL of custom repository" + +config BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION + string "Custom repository version" + help + Revision to use in the typical format used by + Git/Mercurial/Subversion E.G. a sha id, a tag, branch, .. + +endif + +config BR2_TARGET_UBOOT_VERSION + string + default "2022.04" if BR2_TARGET_UBOOT_LATEST_VERSION + default BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE \ + if BR2_TARGET_UBOOT_CUSTOM_VERSION + default "custom" if BR2_TARGET_UBOOT_CUSTOM_TARBALL + default BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION \ + if BR2_TARGET_UBOOT_CUSTOM_GIT || BR2_TARGET_UBOOT_CUSTOM_HG || BR2_TARGET_UBOOT_CUSTOM_SVN + +config BR2_TARGET_UBOOT_PATCH + string "Custom U-Boot patches" + default BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR if BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR != "" # legacy + help + A space-separated list of patches to apply to U-Boot. + Each patch can be described as an URL, a local file path, + or a directory. In the case of a directory, all files + matching *.patch in the directory will be applied. + + Most users may leave this empty + +if BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG +choice + prompt "U-Boot configuration" + default BR2_TARGET_UBOOT_USE_DEFCONFIG + +config BR2_TARGET_UBOOT_USE_DEFCONFIG + bool "Using an in-tree board defconfig file" + +config BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG + bool "Using a custom board (def)config file" + +endchoice + +config BR2_TARGET_UBOOT_BOARD_DEFCONFIG + string "Board defconfig" + depends on BR2_TARGET_UBOOT_USE_DEFCONFIG + help + Name of the board for which U-Boot should be built, without + the _defconfig suffix. + +config BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE + string "Configuration file path" + depends on BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG + help + Path to the U-Boot configuration file. + +config BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES + string "Additional configuration fragment files" + help + A space-separated list of configuration fragment files, + that will be merged to the main U-Boot configuration file. +endif + +config BR2_TARGET_UBOOT_NEEDS_DTC + bool "U-Boot needs dtc" + select BR2_PACKAGE_HOST_DTC + help + Select this option if your U-Boot board configuration + requires the Device Tree compiler to be available. + +config BR2_TARGET_UBOOT_NEEDS_PYTHON3 + bool "U-Boot needs host python 3.x" + help + Select this option if U-Boot needs a host Python 3.x + interpreter. This is the case for some U-Boot + configurations, after U-Boot 2020.01. + +config BR2_TARGET_UBOOT_NEEDS_PYLIBFDT + bool "U-Boot needs pylibfdt" + select BR2_TARGET_UBOOT_NEEDS_PYTHON3 + help + Select this option if your U-Boot board configuration + requires the Python libfdt library to be available. + +config BR2_TARGET_UBOOT_NEEDS_PYELFTOOLS + bool "U-Boot needs pyelftools" + select BR2_TARGET_UBOOT_NEEDS_PYTHON3 + help + Select this option if your U-Boot board configuration + requires the Python pyelftools library to be available. + This is used by some rockchip SOCs for elf parsing. + For example: rk3399 soc boards. + +config BR2_TARGET_UBOOT_NEEDS_OPENSSL + bool "U-Boot needs OpenSSL" + help + Select this option if your U-Boot board configuration + requires OpenSSL to be available on the host. This is + typically the case when the board configuration has + CONFIG_FIT_SIGNATURE enabled. + +config BR2_TARGET_UBOOT_NEEDS_LZOP + bool "U-Boot needs lzop" + help + Select this option if your U-Boot board configuration + requires lzop to be available on the host. This is typically + the case when the board configuration has CONFIG_SPL_LZO + enabled. + +config BR2_TARGET_UBOOT_NEEDS_GNUTLS + bool "U-Boot needs gnutls" + help + Select this option if your U-Boot board configuration + requires gnutls to be available on the host. This is + typically the case when the board configuration has + CONFIG_TOOLS_MKEFICAPSULE enabled. + +config BR2_TARGET_UBOOT_NEEDS_UTIL_LINUX + bool "U-Boot needs util-linux" + help + Select this option if your U-Boot board configuration + requires util-linux (-luuid) to be available on the host. + This is typically the case when the board configuration + has CONFIG_TOOLS_MKEFICAPSULE enabled. + +config BR2_TARGET_UBOOT_NEEDS_ATF_BL31 + bool "U-Boot needs ATF BL31" + depends on BR2_TARGET_ARM_TRUSTED_FIRMWARE + depends on !BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33 + select BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31 + help + Some specific platforms (such as Allwinner A64/H5) + encapsulate the BL31 part of ATF inside U-Boot. This option + makes sure ATF gets built prior to U-Boot, and that the BL31 + variable pointing to ATF's BL31 binary, is passed during the + Buildroot build. + +choice + prompt "U-Boot ATF BL31 format" + default BR2_TARGET_UBOOT_NEEDS_ATF_BL31_BIN + depends on BR2_TARGET_UBOOT_NEEDS_ATF_BL31 + +config BR2_TARGET_UBOOT_NEEDS_ATF_BL31_BIN + bool "bl31.bin" + +config BR2_TARGET_UBOOT_NEEDS_ATF_BL31_ELF + bool "bl31.elf" + +endchoice + +config BR2_TARGET_UBOOT_NEEDS_OPTEE_TEE + bool "U-Boot needs OPTEE TEE" + depends on BR2_TARGET_OPTEE_OS_CORE + help + Some platforms (such as Rockchip) encapsulate the TEE inside + U-Boot. This option makes sure optee-os gets built prior to + U-Boot, and that the TEE variable pointing to OPTEE's + tee.elf, is passed during the Buildroot build. + +config BR2_TARGET_UBOOT_NEEDS_OPENSBI + bool "U-Boot needs OpenSBI" + depends on BR2_TARGET_OPENSBI + help + Some RISC-V platforms (such as SiFive HiFive Unleashed) + encapsulate the OpenSBI firmware image inside U-Boot. + This option makes sure OpenSBI gets built prior to U-Boot, + and that the OpenSBI variable pointing to OpenSBI binary, + is passed during the Buildroot build. + +config BR2_TARGET_UBOOT_NEEDS_IMX_FIRMWARE + bool "U-Boot needs firmware-imx" + depends on BR2_PACKAGE_FIRMWARE_IMX + depends on BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW || \ + BR2_PACKAGE_FIRMWARE_IMX_NEEDS_HDMI_FW + help + Some i.MX8 platforms (such as i.MX8 M, i.MX 8M Mini, i.MX 8M + Nano) encapsulate NXP specific firmware (DDR, HDMI) inside + U-Boot. + This option makes sure that the i.MX firmwares are copied into + the U-Boot source directory. + +menu "U-Boot binary format" + +config BR2_TARGET_UBOOT_FORMAT_AIS + bool "u-boot.ais" + help + AIS (Application Image Script) is a format defined by TI. + It is required to load code/data on OMAP-L1 processors. + u-boot.ais contains U-Boot with the SPL support. + +config BR2_TARGET_UBOOT_FORMAT_BIN + bool "u-boot.bin" + default y + +config BR2_TARGET_UBOOT_FORMAT_DTB + bool "u-boot.dtb" + +config BR2_TARGET_UBOOT_FORMAT_DTB_BIN + bool "u-boot-dtb.bin" + +config BR2_TARGET_UBOOT_FORMAT_NAND_BIN + bool "u-boot-nand.bin" + +config BR2_TARGET_UBOOT_FORMAT_ELF + bool "u-boot.elf" + +config BR2_TARGET_UBOOT_FORMAT_IMG + bool "u-boot.img" + +config BR2_TARGET_UBOOT_FORMAT_DTB_IMG + bool "u-boot-dtb.img" + +config BR2_TARGET_UBOOT_FORMAT_IMX + bool "u-boot.imx" + +config BR2_TARGET_UBOOT_FORMAT_DTB_IMX + bool "u-boot-dtb.imx" + +config BR2_TARGET_UBOOT_FORMAT_ITB + bool "u-boot.itb" + +config BR2_TARGET_UBOOT_FORMAT_KWB + bool "u-boot.kwb (Marvell)" + depends on BR2_arm + +config BR2_TARGET_UBOOT_FORMAT_NAND + bool "u-boot.nand (Freescale i.MX28)" + depends on BR2_arm + help + This is Freescale i.MX28 BootStream format (.sb), with a + header for booting from a NAND flash. + + U-Boot includes an mxsboot tool to generate this format, + starting from 2011.12. + + There are two possibilities when preparing an image writable + to NAND flash: + 1) The NAND was not written at all yet or the BCB (Boot + Control Blocks) is broken. In this case, the NAND image + 'u-boot.nand' needs to written. + 2) The NAND flash was already written with a good BCB. This + applies after 'u-boot.nand' was correctly written. There is no + need to write the BCB again. In this case, the bootloader can + be upgraded by writing 'u-boot.sb'. + + To satisfy both cases, the 'u-boot.nand' image obtained from + mxsboot as well as the U-Boot make target 'u-boot.sb' are + copied to the binaries directory. + + See doc/README.mxs (or doc/README.mx28_common before 2013.07) + +if BR2_TARGET_UBOOT_FORMAT_NAND + +config BR2_TARGET_UBOOT_FORMAT_NAND_PAGE_SIZE + int "NAND page size" + default 2048 + help + The NAND page size of the targets NAND flash in bytes as a + decimal integer value. + + The value provided here is passed to the -w option of mxsboot. + +config BR2_TARGET_UBOOT_FORMAT_NAND_OOB_SIZE + int "NAND OOB size" + default 64 + help + The NAND OOB size of the targets NAND flash in bytes as a + decimal integer value. + + The value provided here is passed to the -o option of mxsboot. + +config BR2_TARGET_UBOOT_FORMAT_NAND_ERASE_SIZE + int "NAND erase size" + default 131072 + help + The NAND eraseblock size of the targets NAND flash in bytes as + a decimal integer value. + + The value provided here is passed to the -e option of mxsboot. + +endif + +config BR2_TARGET_UBOOT_FORMAT_SB + bool "u-boot.sb (Freescale i.MX28)" + depends on BR2_arm + +config BR2_TARGET_UBOOT_FORMAT_SD + bool "u-boot.sd (Freescale i.MX28)" + depends on BR2_arm + help + This is Freescale i.MX28 SB format, with a header for booting + from an SD card. + + U-Boot includes an mxsboot tool to generate this format, + starting from 2011.12. + + See doc/README.mxs (or doc/README.mx28_common before 2013.07) + +config BR2_TARGET_UBOOT_FORMAT_STM32 + bool "u-boot.stm32" + depends on BR2_arm + +config BR2_TARGET_UBOOT_FORMAT_CUSTOM + bool "Custom (specify below)" + help + On some platforms, the standard U-Boot binary is not called + u-boot.bin, but u-boot.bin. If this is your case, + you should select this option and specify the correct name(s) + in BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME. + +config BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME + string "U-Boot binary format: custom names" + depends on BR2_TARGET_UBOOT_FORMAT_CUSTOM + help + In case the U-Boot binary for the target platform is not among + the default names, one or more custom names can be listed + here. + Use space to separate multiple names. + Example: + u-boot_magic.bin + +endmenu + +config BR2_TARGET_UBOOT_OMAP_IFT + bool "produce a .ift signed image (OMAP)" + depends on BR2_TARGET_UBOOT_FORMAT_BIN + depends on BR2_arm || BR2_armeb + select BR2_PACKAGE_HOST_OMAP_U_BOOT_UTILS + help + Use gpsign to produce an image of u-boot.bin signed with + a Configuration Header for booting on OMAP processors. + This allows U-Boot to boot without the need for an + intermediate bootloader (e.g. x-loader) if it is written + on the first sector of the boot medium. + This only works for some media, such as NAND. Check your + chip documentation for details. You might also want to + read the documentation of gpsign, the tool that generates + the .ift image, at: + https://github.com/nmenon/omap-u-boot-utils/blob/master/README + +if BR2_TARGET_UBOOT_OMAP_IFT + +config BR2_TARGET_UBOOT_OMAP_IFT_CONFIG + string "gpsign Configuration Header config file" + help + The Configuration Header (CH) config file defines the + desired content of the CH for the signed image. + It usually contains external RAM settings and + possibly other external devices initialization. + The omap-u-boot-utils software contains example + configuration files for some boards: + https://github.com/nmenon/omap-u-boot-utils/tree/master/configs + +endif + +config BR2_TARGET_UBOOT_SPL + bool "Install U-Boot SPL binary image" + depends on !BR2_TARGET_XLOADER + help + Install the U-Boot SPL binary image to the images + directory. + SPL is a first stage bootloader loaded into internal + memory in charge of enabling and configuring the + external memory (DDR), and load the u-boot program + into DDR. + +config BR2_TARGET_UBOOT_SPL_NAME + string "U-Boot SPL/TPL binary image name(s)" + default "spl/u-boot-spl.bin" + depends on BR2_TARGET_UBOOT_SPL + help + A space-separated list of SPL/TPL binaries, generated during + u-boot build. For most platform SPL name is spl/u-boot-spl.bin + and TPL name is tpl/u-boot-tpl.bin but not always. SPL name is + MLO on OMAP and SPL on i.MX6 for example. + +config BR2_TARGET_UBOOT_ZYNQMP + bool "Boot on the Xilinx ZynqMP SoCs" + depends on BR2_aarch64 + help + Enable options specific to the Xilinx ZynqMP family of SoCs. + +if BR2_TARGET_UBOOT_ZYNQMP + +config BR2_TARGET_UBOOT_ZYNQMP_PMUFW + string "PMU firmware location" + depends on BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG + help + Location of a PMU firmware binary. + + If not empty, instructs the U-Boot build process to generate + a boot.bin (to be loaded by the ZynqMP boot ROM) containing + both the U-Boot SPL and the PMU firmware in the + Xilinx-specific boot format. + + The value can be an absolute or relative path, and will be + used directly from where it is located, or an URI + (e.g. http://...), and it will be downloaded and used from + the download directory. + + If empty, the generated boot.bin will not contain a PMU + firmware. + + This feature requires U-Boot >= 2018.07. + +config BR2_TARGET_UBOOT_ZYNQMP_PM_CFG + string "PMU configuration location" + depends on BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG + help + Location of a PMU configuration file. + + If not empty, Buildroot will convert the PMU configuration + file into a loadable blob and pass it to U-Boot. The blob gets + embedded into the U-Boot SPL and is used to configure the PMU + during board initialization. + + Unlike the PMU firmware, the PMU configuration file is unique + to each board configuration. A PMU configuration file can be + generated by building your Xilinx SDK BSP. It can be found in + the BSP source, for example at + ./psu_cortexa53_0/libsrc/xilpm_v2_4/src/pm_cfg_obj.c + + Leave this option empty if your PMU firmware has a hard-coded + configuration object or you are loading it by any other means. + + This feature requires U-Boot >= v2019.10. + +config BR2_TARGET_UBOOT_ZYNQMP_PSU_INIT_FILE + string "Custom psu_init_gpl file" + depends on BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG + help + On ZynqMP the booloader is responsible for some basic + initializations, such as enabling peripherals and + configuring pinmuxes. The psu_init_gpl.c file (and, + optionally, psu_init_gpl.h) contains the code for such + initializations. + + Although U-Boot contains psu_init_gpl.c files for some + boards, each of them describes only one specific + configuration. Users of a different board, or needing a + different configuration, can generate custom files using the + Xilinx development tools. + + Set this variable to the path to your psu_init_gpl.c file + (e.g. "board/myboard/psu_init_gpl.c"). psu_init_gpl.h, if + needed, should be in the same directory. U-Boot will build + and link the user-provided file instead of the built-in one. + + Leave empty to use the files provided by U-Boot. + + This feature requires commit + 6da4f67ad09cd8b311d77b2b04e557b7ef65b56c from upstream + U-Boot, available from versions after 2018.07. + +endif + +config BR2_TARGET_UBOOT_ALTERA_SOCFPGA_IMAGE_CRC + bool "CRC image for Altera SoC FPGA (mkpimage)" + depends on BR2_arm + depends on BR2_TARGET_UBOOT_SPL || BR2_TARGET_UBOOT_FORMAT_DTB_BIN + help + Pass the U-Boot image through the mkpimage tool to enable + booting on the Altera SoC FPGA based platforms. + + On some platforms, it's the SPL that needs to be passed + through mkpimage. On some other platforms there is no SPL + because the internal SRAM is big enough to store the full + U-Boot. In this case, it's directly the full U-Boot image + that is passed through mkpimage. + + If BR2_TARGET_UBOOT_SPL is enabled then + BR2_TARGET_UBOOT_SPL_NAME is converted by mkpimage using + header version 0. + + Otherwise the full u-boot-dtb.bin is converted using + mkpimage header version 1. + + In either case the resulting file will be given a .crc + extension. + +if BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG + +config BR2_TARGET_UBOOT_CUSTOM_DTS_PATH + string "Device Tree Source file paths" + help + Space-separated list of paths to device tree source files + that will be copied to arch/ARCH/dts/ before starting the + build. + + To use this device tree source file, the U-Boot configuration + file must refer to it. + +endif + +config BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS + string "Custom make options" + help + List of custom make options passed at build time. Can be + used for example to pass a DEVICE_TREE= value. + +endif # BR2_TARGET_UBOOT diff --git a/boot/uboot/uboot.hash b/boot/uboot/uboot.hash new file mode 100644 index 000000000..a8bd81790 --- /dev/null +++ b/boot/uboot/uboot.hash @@ -0,0 +1,3 @@ +# Locally computed: +sha256 68e065413926778e276ec3abd28bb32fa82abaa4a6898d570c1f48fbdb08bcd0 u-boot-2022.04.tar.bz2 +sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 Licenses/gpl-2.0.txt diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk new file mode 100644 index 000000000..a9f9b1bf1 --- /dev/null +++ b/boot/uboot/uboot.mk @@ -0,0 +1,541 @@ +################################################################################ +# +# uboot +# +################################################################################ + +UBOOT_VERSION = $(call qstrip,$(BR2_TARGET_UBOOT_VERSION)) +UBOOT_BOARD_NAME = $(call qstrip,$(BR2_TARGET_UBOOT_BOARDNAME)) + +UBOOT_LICENSE = GPL-2.0+ +ifeq ($(BR2_TARGET_UBOOT_LATEST_VERSION),y) +UBOOT_LICENSE_FILES = Licenses/gpl-2.0.txt +endif +UBOOT_CPE_ID_VENDOR = denx +UBOOT_CPE_ID_PRODUCT = u-boot + +UBOOT_INSTALL_IMAGES = YES + +# u-boot 2020.01+ needs make 4.0+ +UBOOT_DEPENDENCIES = host-pkgconf $(BR2_MAKE_HOST_DEPENDENCY) +UBOOT_MAKE = $(BR2_MAKE) + +ifeq ($(BR2_TARGET_UBOOT_CUSTOM_TARBALL),y) +# Handle custom U-Boot tarballs as specified by the configuration +UBOOT_TARBALL = $(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION)) +UBOOT_SITE = $(patsubst %/,%,$(dir $(UBOOT_TARBALL))) +UBOOT_SOURCE = $(notdir $(UBOOT_TARBALL)) +else ifeq ($(BR2_TARGET_UBOOT_CUSTOM_GIT),y) +UBOOT_SITE = $(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_REPO_URL)) +UBOOT_SITE_METHOD = git +else ifeq ($(BR2_TARGET_UBOOT_CUSTOM_HG),y) +UBOOT_SITE = $(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_REPO_URL)) +UBOOT_SITE_METHOD = hg +else ifeq ($(BR2_TARGET_UBOOT_CUSTOM_SVN),y) +UBOOT_SITE = $(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_REPO_URL)) +UBOOT_SITE_METHOD = svn +else +# Handle stable official U-Boot versions +UBOOT_SITE = https://ftp.denx.de/pub/u-boot +UBOOT_SOURCE = u-boot-$(UBOOT_VERSION).tar.bz2 +endif + +ifeq ($(BR2_TARGET_UBOOT)$(BR2_TARGET_UBOOT_LATEST_VERSION),y) +BR_NO_CHECK_HASH_FOR += $(UBOOT_SOURCE) +endif + +ifeq ($(BR2_TARGET_UBOOT_FORMAT_BIN),y) +UBOOT_BINS += u-boot.bin +endif + +ifeq ($(BR2_TARGET_UBOOT_FORMAT_DTB),y) +UBOOT_BINS += u-boot.dtb +endif + +ifeq ($(BR2_TARGET_UBOOT_FORMAT_ELF),y) +UBOOT_BINS += u-boot +# To make elf usable for debuging on ARC use special target +ifeq ($(BR2_arc),y) +UBOOT_MAKE_TARGET += mdbtrick +endif +endif + +# Call 'make all' unconditionally +UBOOT_MAKE_TARGET += all + +ifeq ($(BR2_TARGET_UBOOT_FORMAT_KWB),y) +UBOOT_BINS += u-boot.kwb +UBOOT_MAKE_TARGET += u-boot.kwb +endif + +ifeq ($(BR2_TARGET_UBOOT_FORMAT_AIS),y) +UBOOT_BINS += u-boot.ais +UBOOT_MAKE_TARGET += u-boot.ais +endif + +ifeq ($(BR2_TARGET_UBOOT_FORMAT_NAND_BIN),y) +UBOOT_BINS += u-boot-nand.bin +endif + +ifeq ($(BR2_TARGET_UBOOT_FORMAT_DTB_IMG),y) +UBOOT_BINS += u-boot-dtb.img +UBOOT_MAKE_TARGET += u-boot-dtb.img +endif + +ifeq ($(BR2_TARGET_UBOOT_FORMAT_DTB_IMX),y) +UBOOT_BINS += u-boot-dtb.imx +UBOOT_MAKE_TARGET += u-boot-dtb.imx +endif + +ifeq ($(BR2_TARGET_UBOOT_FORMAT_DTB_BIN),y) +UBOOT_BINS += u-boot-dtb.bin +UBOOT_MAKE_TARGET += u-boot-dtb.bin +endif + +ifeq ($(BR2_TARGET_UBOOT_FORMAT_IMG),y) +UBOOT_BINS += u-boot.img +UBOOT_MAKE_TARGET += u-boot.img +endif + +ifeq ($(BR2_TARGET_UBOOT_FORMAT_ITB),y) +UBOOT_BINS += u-boot.itb +UBOOT_MAKE_TARGET += u-boot.itb +endif + +ifeq ($(BR2_TARGET_UBOOT_FORMAT_IMX),y) +UBOOT_BINS += u-boot.imx +UBOOT_MAKE_TARGET += u-boot.imx +endif + +ifeq ($(BR2_TARGET_UBOOT_FORMAT_SB),y) +UBOOT_BINS += u-boot.sb +UBOOT_MAKE_TARGET += u-boot.sb +# mxsimage needs OpenSSL +UBOOT_DEPENDENCIES += host-elftosb host-openssl +endif + +ifeq ($(BR2_TARGET_UBOOT_FORMAT_SD),y) +# BootStream (.sb) is generated by U-Boot, we convert it to SD format +UBOOT_BINS += u-boot.sd +UBOOT_MAKE_TARGET += u-boot.sb +UBOOT_DEPENDENCIES += host-elftosb host-openssl +endif + +ifeq ($(BR2_TARGET_UBOOT_FORMAT_NAND),y) +UBOOT_BINS += u-boot.nand +UBOOT_MAKE_TARGET += u-boot.sb +UBOOT_DEPENDENCIES += host-elftosb host-openssl +endif + +ifeq ($(BR2_TARGET_UBOOT_FORMAT_STM32),y) +UBOOT_BINS += u-boot.stm32 +UBOOT_MAKE_TARGET += u-boot.stm32 +endif + +ifeq ($(BR2_TARGET_UBOOT_FORMAT_CUSTOM),y) +UBOOT_BINS += $(call qstrip,$(BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME)) +endif + +ifeq ($(BR2_TARGET_UBOOT_OMAP_IFT),y) +UBOOT_BINS += u-boot.bin +UBOOT_BIN_IFT = u-boot.bin.ift +endif + +# The kernel calls AArch64 'arm64', but U-Boot calls it just 'arm', so +# we have to special case it. Similar for i386/x86_64 -> x86 +ifeq ($(NORMALIZED_ARCH),arm64) +UBOOT_ARCH = arm +else ifneq ($(filter $(NORMALIZED_ARCH),i386 x86_64),) +UBOOT_ARCH = x86 +else +UBOOT_ARCH = $(NORMALIZED_ARCH) +endif + +UBOOT_MAKE_OPTS += \ + CROSS_COMPILE="$(TARGET_CROSS)" \ + ARCH=$(UBOOT_ARCH) \ + HOSTCC="$(HOSTCC) $(subst -I/,-isystem /,$(subst -I /,-isystem /,$(HOST_CFLAGS)))" \ + HOSTLDFLAGS="$(HOST_LDFLAGS)" \ + $(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS)) + +ifeq ($(BR2_TARGET_UBOOT_NEEDS_ATF_BL31),y) +UBOOT_DEPENDENCIES += arm-trusted-firmware +ifeq ($(BR2_TARGET_UBOOT_NEEDS_ATF_BL31_ELF),y) +UBOOT_MAKE_OPTS += BL31=$(BINARIES_DIR)/bl31.elf +define UBOOT_COPY_ATF_FIRMWARE + cp $(BINARIES_DIR)/bl31.elf $(@D)/ +endef +UBOOT_PRE_BUILD_HOOKS += UBOOT_COPY_ATF_FIRMWARE +else +UBOOT_MAKE_OPTS += BL31=$(BINARIES_DIR)/bl31.bin +define UBOOT_COPY_ATF_FIRMWARE + cp $(BINARIES_DIR)/bl31.bin $(@D)/ +endef +UBOOT_PRE_BUILD_HOOKS += UBOOT_COPY_ATF_FIRMWARE +endif +endif + +ifeq ($(BR2_TARGET_UBOOT_NEEDS_OPTEE_TEE),y) +UBOOT_DEPENDENCIES += optee-os +UBOOT_MAKE_OPTS += TEE=$(BINARIES_DIR)/tee.elf +endif + +ifeq ($(BR2_TARGET_UBOOT_NEEDS_OPENSBI),y) +UBOOT_DEPENDENCIES += opensbi +UBOOT_MAKE_OPTS += OPENSBI=$(BINARIES_DIR)/fw_dynamic.bin +endif + +# Mainline U-Boot versions can create the i.MX specific boot images +# and need some NXP firmware blobs. +ifeq ($(BR2_TARGET_UBOOT_NEEDS_IMX_FIRMWARE),y) +UBOOT_DEPENDENCIES += firmware-imx +UBOOT_IMX_FW_FILES = \ + $(if $(BR2_PACKAGE_FIRMWARE_IMX_NEEDS_HDMI_FW),signed_hdmi_imx8m.bin) \ + $(if $(BR2_PACKAGE_FIRMWARE_IMX_LPDDR4),lpddr4*.bin) \ + $(if $(BR2_PACKAGE_FIRMWARE_IMX_DDR4),ddr4*.bin) \ + $(if $(BR2_PACKAGE_FIRMWARE_IMX_DDR3),ddr3*.bin) + +define UBOOT_COPY_IMX_FW_FILES + $(foreach fw,$(UBOOT_IMX_FW_FILES),\ + cp $(BINARIES_DIR)/$(fw) $(@D)/ + ) +endef +UBOOT_PRE_BUILD_HOOKS += UBOOT_COPY_IMX_FW_FILES +endif + +ifeq ($(BR2_TARGET_UBOOT_NEEDS_DTC),y) +UBOOT_DEPENDENCIES += host-dtc +endif + +ifeq ($(BR2_TARGET_UBOOT_NEEDS_PYTHON3),y) +UBOOT_DEPENDENCIES += host-python3 host-python-setuptools +endif + +ifeq ($(BR2_TARGET_UBOOT_NEEDS_PYLIBFDT),y) +UBOOT_DEPENDENCIES += host-swig +endif + +ifeq ($(BR2_TARGET_UBOOT_NEEDS_PYELFTOOLS),y) +UBOOT_DEPENDENCIES += host-python-pyelftools +endif + +ifeq ($(BR2_TARGET_UBOOT_NEEDS_OPENSSL),y) +UBOOT_DEPENDENCIES += host-openssl +endif + +ifeq ($(BR2_TARGET_UBOOT_NEEDS_LZOP),y) +UBOOT_DEPENDENCIES += host-lzop +endif + +ifeq ($(BR2_TARGET_UBOOT_NEEDS_GNUTLS),y) +UBOOT_DEPENDENCIES += host-gnutls +endif + +ifeq ($(BR2_TARGET_UBOOT_NEEDS_UTIL_LINUX),y) +UBOOT_DEPENDENCIES += host-util-linux +endif + +# prior to u-boot 2013.10 the license info was in COPYING. Copy it so +# legal-info finds it +define UBOOT_COPY_OLD_LICENSE_FILE + if [ -f $(@D)/COPYING ]; then \ + $(INSTALL) -m 0644 -D $(@D)/COPYING $(@D)/Licenses/gpl-2.0.txt; \ + fi +endef + +UBOOT_POST_EXTRACT_HOOKS += UBOOT_COPY_OLD_LICENSE_FILE +UBOOT_POST_RSYNC_HOOKS += UBOOT_COPY_OLD_LICENSE_FILE + +# Older versions break on gcc 10+ because of redefined symbols +define UBOOT_DROP_YYLLOC + $(Q)grep -Z -l -r -E '^YYLTYPE yylloc;$$' $(@D) \ + |xargs -0 -r $(SED) '/^YYLTYPE yylloc;$$/d' +endef +UBOOT_POST_PATCH_HOOKS += UBOOT_DROP_YYLLOC + +ifneq ($(ARCH_XTENSA_OVERLAY_FILE),) +define UBOOT_XTENSA_OVERLAY_EXTRACT + $(call arch-xtensa-overlay-extract,$(@D),u-boot) +endef +UBOOT_POST_EXTRACT_HOOKS += UBOOT_XTENSA_OVERLAY_EXTRACT +UBOOT_EXTRA_DOWNLOADS += $(ARCH_XTENSA_OVERLAY_URL) +endif + +# Analogous code exists in linux/linux.mk. Basically, the generic +# package infrastructure handles downloading and applying remote +# patches. Local patches are handled depending on whether they are +# directories or files. +UBOOT_PATCHES = $(call qstrip,$(BR2_TARGET_UBOOT_PATCH)) +UBOOT_PATCH = $(filter ftp://% http://% https://%,$(UBOOT_PATCHES)) + +define UBOOT_APPLY_LOCAL_PATCHES + for p in $(filter-out ftp://% http://% https://%,$(UBOOT_PATCHES)) ; do \ + if test -d $$p ; then \ + $(APPLY_PATCHES) $(@D) $$p \*.patch || exit 1 ; \ + else \ + $(APPLY_PATCHES) $(@D) `dirname $$p` `basename $$p` || exit 1; \ + fi \ + done +endef +UBOOT_POST_PATCH_HOOKS += UBOOT_APPLY_LOCAL_PATCHES + +# Fixup inclusion of libfdt headers, which can fail in older u-boot versions +# when libfdt-devel is installed system-wide. +# The core change is equivalent to upstream commit +# e0d20dc1521e74b82dbd69be53a048847798a90a (first in v2018.03). However, the fixup +# is complicated by the fact that the underlying u-boot code changed multiple +# times in history: +# - The directory scripts/dtc/libfdt only exists since upstream commit +# c0e032e0090d6541549b19cc47e06ccd1f302893 (first in v2017.11). For earlier +# versions, create a dummy scripts/dtc/libfdt directory with symlinks for the +# fdt-related files. This allows to use the same -I option for both +# cases. +# - The variable 'srctree' used to be called 'SRCTREE' before upstream commit +# 01286329b27b27eaeda045b469d41b1d9fce545a (first in v2014.04). +# - The original location for libfdt, 'lib/libfdt/', used to be simply +# 'libfdt' before upstream commit 0de71d507157c4bd4fddcd3a419140d2b986eed2 +# (first in v2010.06). Make the 'lib' part optional in the substitution to +# handle this. +define UBOOT_FIXUP_LIBFDT_INCLUDE + $(Q)if [ ! -d $(@D)/scripts/dtc/libfdt ]; then \ + mkdir -p $(@D)/scripts/dtc/libfdt; \ + cd $(@D)/scripts/dtc/libfdt; \ + ln -s ../../../include/fdt.h .; \ + ln -s ../../../include/libfdt*.h .; \ + ln -s ../../../lib/libfdt/libfdt_internal.h .; \ + fi + $(Q)$(SED) \ + 's%-I\ *\$$(srctree)/lib/libfdt%-I$$(srctree)/scripts/dtc/libfdt%; \ + s%-I\ *\$$(SRCTREE)\(/lib\)\?/libfdt%-I$$(SRCTREE)/scripts/dtc/libfdt%' \ + $(@D)/tools/Makefile +endef +UBOOT_POST_PATCH_HOOKS += UBOOT_FIXUP_LIBFDT_INCLUDE + +ifeq ($(BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY),y) +define UBOOT_CONFIGURE_CMDS + $(TARGET_CONFIGURE_OPTS) \ + $(UBOOT_MAKE) -C $(@D) $(UBOOT_MAKE_OPTS) \ + $(UBOOT_BOARD_NAME)_config +endef +else ifeq ($(BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG),y) +ifeq ($(BR2_TARGET_UBOOT_USE_DEFCONFIG),y) +UBOOT_KCONFIG_DEFCONFIG = $(call qstrip,$(BR2_TARGET_UBOOT_BOARD_DEFCONFIG))_defconfig +else ifeq ($(BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG),y) +UBOOT_KCONFIG_FILE = $(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE)) +endif # BR2_TARGET_UBOOT_USE_DEFCONFIG + +UBOOT_KCONFIG_FRAGMENT_FILES = $(call qstrip,$(BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES)) +UBOOT_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig + +# UBOOT_MAKE_OPTS overrides HOSTCC / HOSTLDFLAGS to allow the build to +# find our host-openssl. However, this triggers a bug in the kconfig +# build script that causes it to build with /usr/include/ncurses.h +# (which is typically wchar) but link with +# $(HOST_DIR)/lib/libncurses.so (which is not). We don't actually +# need any host-package for kconfig, so remove the HOSTCC/HOSTLDFLAGS +# override again. In addition, host-ccache is not ready at kconfig +# time, so use HOSTCC_NOCCACHE. +UBOOT_KCONFIG_OPTS = $(UBOOT_MAKE_OPTS) HOSTCC="$(HOSTCC_NOCCACHE)" HOSTLDFLAGS="" +endif # BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY + +UBOOT_CUSTOM_DTS_PATH = $(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_DTS_PATH)) + +define UBOOT_BUILD_CMDS + $(if $(UBOOT_CUSTOM_DTS_PATH), + cp -f $(UBOOT_CUSTOM_DTS_PATH) $(@D)/arch/$(UBOOT_ARCH)/dts/ + ) + $(TARGET_CONFIGURE_OPTS) \ + PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \ + PKG_CONFIG_SYSROOT_DIR="/" \ + PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \ + PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \ + PKG_CONFIG_LIBDIR="$(HOST_DIR)/lib/pkgconfig:$(HOST_DIR)/share/pkgconfig" \ + $(UBOOT_MAKE) -C $(@D) $(UBOOT_MAKE_OPTS) \ + $(UBOOT_MAKE_TARGET) + $(if $(BR2_TARGET_UBOOT_FORMAT_SD), + $(@D)/tools/mxsboot sd $(@D)/u-boot.sb $(@D)/u-boot.sd) + $(if $(BR2_TARGET_UBOOT_FORMAT_NAND), + $(@D)/tools/mxsboot \ + -w $(BR2_TARGET_UBOOT_FORMAT_NAND_PAGE_SIZE) \ + -o $(BR2_TARGET_UBOOT_FORMAT_NAND_OOB_SIZE) \ + -e $(BR2_TARGET_UBOOT_FORMAT_NAND_ERASE_SIZE) \ + nand $(@D)/u-boot.sb $(@D)/u-boot.nand) +endef + +define UBOOT_BUILD_OMAP_IFT + $(HOST_DIR)/bin/gpsign -f $(@D)/u-boot.bin \ + -c $(call qstrip,$(BR2_TARGET_UBOOT_OMAP_IFT_CONFIG)) +endef + +define UBOOT_INSTALL_IMAGES_CMDS + $(foreach f,$(UBOOT_BINS), \ + cp -dpf $(@D)/$(f) $(BINARIES_DIR)/ + ) + $(if $(BR2_TARGET_UBOOT_FORMAT_NAND), + cp -dpf $(@D)/u-boot.sb $(BINARIES_DIR)) + $(if $(BR2_TARGET_UBOOT_SPL), + $(foreach f,$(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME)), \ + cp -dpf $(@D)/$(f) $(BINARIES_DIR)/ + ) + ) +endef + +ifeq ($(BR2_TARGET_UBOOT_ZYNQMP),y) + +UBOOT_ZYNQMP_PMUFW = $(call qstrip,$(BR2_TARGET_UBOOT_ZYNQMP_PMUFW)) + +ifneq ($(findstring ://,$(UBOOT_ZYNQMP_PMUFW)),) +UBOOT_EXTRA_DOWNLOADS += $(UBOOT_ZYNQMP_PMUFW) +BR_NO_CHECK_HASH_FOR += $(notdir $(UBOOT_ZYNQMP_PMUFW)) +UBOOT_ZYNQMP_PMUFW_PATH = $(UBOOT_DL_DIR)/$(notdir $(UBOOT_ZYNQMP_PMUFW)) +else ifneq ($(UBOOT_ZYNQMP_PMUFW),) +UBOOT_ZYNQMP_PMUFW_PATH = $(shell readlink -f $(UBOOT_ZYNQMP_PMUFW)) +endif + +define UBOOT_ZYNQMP_KCONFIG_PMUFW + $(call KCONFIG_SET_OPT,CONFIG_PMUFW_INIT_FILE,"$(UBOOT_ZYNQMP_PMUFW_PATH)") +endef + +UBOOT_ZYNQMP_PM_CFG = $(call qstrip,$(BR2_TARGET_UBOOT_ZYNQMP_PM_CFG)) +ifneq ($(UBOOT_ZYNQMP_PM_CFG),) +UBOOT_ZYNQMP_PM_CFG_BIN = $(UBOOT_DIR)/pm_cfg_obj.bin +define UBOOT_ZYNQMP_KCONFIG_PM_CFG + $(call KCONFIG_SET_OPT,CONFIG_ZYNQMP_SPL_PM_CFG_OBJ_FILE,"$(UBOOT_ZYNQMP_PM_CFG_BIN)", \ + $(@D)/.config) +endef + +define UBOOT_ZYNQMP_PM_CFG_CONVERT + $(UBOOT_DIR)/tools/zynqmp_pm_cfg_obj_convert.py \ + "$(UBOOT_ZYNQMP_PM_CFG)" \ + "$(UBOOT_ZYNQMP_PM_CFG_BIN)" +endef +UBOOT_PRE_BUILD_HOOKS += UBOOT_ZYNQMP_PM_CFG_CONVERT +endif + +UBOOT_ZYNQMP_PSU_INIT = $(call qstrip,$(BR2_TARGET_UBOOT_ZYNQMP_PSU_INIT_FILE)) +UBOOT_ZYNQMP_PSU_INIT_PATH = $(shell readlink -f $(UBOOT_ZYNQMP_PSU_INIT)) + +ifneq ($(UBOOT_ZYNQMP_PSU_INIT),) +define UBOOT_ZYNQMP_KCONFIG_PSU_INIT + $(call KCONFIG_SET_OPT,CONFIG_XILINX_PS_INIT_FILE,"$(UBOOT_ZYNQMP_PSU_INIT_PATH)") +endef +endif + +endif # BR2_TARGET_UBOOT_ZYNQMP + +define UBOOT_INSTALL_OMAP_IFT_IMAGE + cp -dpf $(@D)/$(UBOOT_BIN_IFT) $(BINARIES_DIR)/ +endef + +ifeq ($(BR2_TARGET_UBOOT_OMAP_IFT),y) +ifeq ($(BR_BUILDING),y) +ifeq ($(call qstrip,$(BR2_TARGET_UBOOT_OMAP_IFT_CONFIG)),) +$(error No gpsign config file. Check your BR2_TARGET_UBOOT_OMAP_IFT_CONFIG setting) +endif +ifeq ($(wildcard $(call qstrip,$(BR2_TARGET_UBOOT_OMAP_IFT_CONFIG))),) +$(error gpsign config file $(BR2_TARGET_UBOOT_OMAP_IFT_CONFIG) not found. Check your BR2_TARGET_UBOOT_OMAP_IFT_CONFIG setting) +endif +endif +UBOOT_DEPENDENCIES += host-omap-u-boot-utils +UBOOT_POST_BUILD_HOOKS += UBOOT_BUILD_OMAP_IFT +UBOOT_POST_INSTALL_IMAGES_HOOKS += UBOOT_INSTALL_OMAP_IFT_IMAGE +endif + +ifeq ($(BR2_TARGET_UBOOT_ALTERA_SOCFPGA_IMAGE_CRC),y) +ifeq ($(BR2_TARGET_UBOOT_SPL),y) +UBOOT_CRC_ALTERA_SOCFPGA_INPUT_IMAGES = $(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME)) +UBOOT_CRC_ALTERA_SOCFPGA_HEADER_VERSION = 0 +else +UBOOT_CRC_ALTERA_SOCFPGA_INPUT_IMAGES = u-boot-dtb.bin +UBOOT_CRC_ALTERA_SOCFPGA_HEADER_VERSION = 1 +endif +define UBOOT_CRC_ALTERA_SOCFPGA_IMAGE + $(foreach f,$(UBOOT_CRC_ALTERA_SOCFPGA_INPUT_IMAGES), \ + $(HOST_DIR)/bin/mkpimage \ + -v $(UBOOT_CRC_ALTERA_SOCFPGA_HEADER_VERSION) \ + -o $(BINARIES_DIR)/$(notdir $(call qstrip,$(f))).crc \ + $(@D)/$(call qstrip,$(f)) + ) +endef +UBOOT_DEPENDENCIES += host-mkpimage +UBOOT_POST_INSTALL_IMAGES_HOOKS += UBOOT_CRC_ALTERA_SOCFPGA_IMAGE +endif + +define UBOOT_KCONFIG_FIXUP_CMDS + $(UBOOT_ZYNQMP_KCONFIG_PMUFW) + $(UBOOT_ZYNQMP_KCONFIG_PM_CFG) + $(UBOOT_ZYNQMP_KCONFIG_PSU_INIT) +endef + +ifeq ($(BR2_TARGET_UBOOT)$(BR_BUILDING),yy) + +# +# Check U-Boot board name (for legacy) or the defconfig/custom config +# file options (for kconfig) +# +ifeq ($(BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY),y) +ifeq ($(UBOOT_BOARD_NAME),) +$(error No U-Boot board name set. Check your BR2_TARGET_UBOOT_BOARDNAME setting) +endif # UBOOT_BOARD_NAME +else ifeq ($(BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG),y) +ifeq ($(BR2_TARGET_UBOOT_USE_DEFCONFIG),y) +ifeq ($(call qstrip,$(BR2_TARGET_UBOOT_BOARD_DEFCONFIG)),) +$(error No board defconfig name specified, check your BR2_TARGET_UBOOT_BOARD_DEFCONFIG setting) +endif # qstrip BR2_TARGET_UBOOT_BOARD_DEFCONFIG +endif # BR2_TARGET_UBOOT_USE_DEFCONFIG +ifeq ($(BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG),y) +ifeq ($(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE)),) +$(error No board configuration file specified, check your BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE setting) +endif # qstrip BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE +endif # BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG +endif # BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY + +# +# Check custom version option +# +ifeq ($(BR2_TARGET_UBOOT_CUSTOM_VERSION),y) +ifeq ($(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE)),) +$(error No custom U-Boot version specified. Check your BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE setting) +endif # qstrip BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE +endif # BR2_TARGET_UBOOT_CUSTOM_VERSION + +# +# Check custom tarball option +# +ifeq ($(BR2_TARGET_UBOOT_CUSTOM_TARBALL),y) +ifeq ($(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION)),) +$(error No custom U-Boot tarball specified. Check your BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION setting) +endif # qstrip BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION +endif # BR2_TARGET_UBOOT_CUSTOM_TARBALL + +# +# Check Git/Mercurial repo options +# +ifeq ($(BR2_TARGET_UBOOT_CUSTOM_GIT)$(BR2_TARGET_UBOOT_CUSTOM_HG),y) +ifeq ($(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_REPO_URL)),) +$(error No custom U-Boot repository URL specified. Check your BR2_TARGET_UBOOT_CUSTOM_REPO_URL setting) +endif # qstrip BR2_TARGET_UBOOT_CUSTOM_CUSTOM_REPO_URL +ifeq ($(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION)),) +$(error No custom U-Boot repository version specified. Check your BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION setting) +endif # qstrip BR2_TARGET_UBOOT_CUSTOM_CUSTOM_REPO_VERSION +endif # BR2_TARGET_UBOOT_CUSTOM_GIT || BR2_TARGET_UBOOT_CUSTOM_HG + +endif # BR2_TARGET_UBOOT && BR_BUILDING + +ifeq ($(BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY),y) +UBOOT_DEPENDENCIES += \ + $(BR2_BISON_HOST_DEPENDENCY) \ + $(BR2_FLEX_HOST_DEPENDENCY) +$(eval $(generic-package)) +else ifeq ($(BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG),y) +UBOOT_MAKE_ENV = $(TARGET_MAKE_ENV) +# Starting with 2021.10, the kconfig in uboot calls the cross-compiler +# to check its capabilities. So we need the toolchain before we can +# call the configurators. +UBOOT_KCONFIG_DEPENDENCIES += \ + toolchain \ + $(BR2_MAKE_HOST_DEPENDENCY) \ + $(BR2_BISON_HOST_DEPENDENCY) \ + $(BR2_FLEX_HOST_DEPENDENCY) +$(eval $(kconfig-package)) +endif # BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY diff --git a/boot/vexpress-firmware/Config.in b/boot/vexpress-firmware/Config.in new file mode 100644 index 000000000..265fb4be1 --- /dev/null +++ b/boot/vexpress-firmware/Config.in @@ -0,0 +1,8 @@ +config BR2_TARGET_VEXPRESS_FIRMWARE + bool "vexpress-firmware" + depends on BR2_aarch64 + help + Versatile Express firmware from ARM, with Linaro mods last + change. + + https://git.linaro.org/arm/vexpress-firmware.git diff --git a/boot/vexpress-firmware/vexpress-firmware.hash b/boot/vexpress-firmware/vexpress-firmware.hash new file mode 100644 index 000000000..ac636e151 --- /dev/null +++ b/boot/vexpress-firmware/vexpress-firmware.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 ea92d686e6e211074fb0f62cb5e011f4cfc294c7f6ec9fb27b7d987db7bf51c5 vexpress-firmware-901f81977c3b367a2e0bf3d6444be302822d97a3-br1.tar.gz diff --git a/boot/vexpress-firmware/vexpress-firmware.mk b/boot/vexpress-firmware/vexpress-firmware.mk new file mode 100644 index 000000000..693a9cb86 --- /dev/null +++ b/boot/vexpress-firmware/vexpress-firmware.mk @@ -0,0 +1,20 @@ +################################################################################ +# +# vexpress-firmware +# +################################################################################ + +VEXPRESS_FIRMWARE_VERSION = 901f81977c3b367a2e0bf3d6444be302822d97a3 +VEXPRESS_FIRMWARE_SITE = https://git.linaro.org/arm/vexpress-firmware.git +VEXPRESS_FIRMWARE_SITE_METHOD = git +# The only available license files are in PDF and RTF formats, and we +# support only plain text. +VEXPRESS_FIRMWARE_LICENSE = ARM EULA + +VEXPRESS_FIRMWARE_INSTALL_IMAGES = YES + +define VEXPRESS_FIRMWARE_INSTALL_IMAGES_CMDS + $(INSTALL) -D -m 0644 $(@D)/SOFTWARE/bl30.bin $(BINARIES_DIR)/scp-fw.bin +endef + +$(eval $(generic-package)) diff --git a/configs/aarch64_efi_defconfig b/configs/aarch64_efi_defconfig new file mode 100644 index 000000000..1bd06c51f --- /dev/null +++ b/configs/aarch64_efi_defconfig @@ -0,0 +1,37 @@ +# Architecture +BR2_aarch64=y + +# Toolchain, required for eudev and grub +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y + +# System +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y + +## Required tools to create bootable media +BR2_PACKAGE_HOST_GENIMAGE=y + +# Bootloader +BR2_TARGET_GRUB2=y +BR2_TARGET_GRUB2_ARM64_EFI=y + +# Filesystem / image +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="200M" +# BR2_TARGET_ROOTFS_TAR is not set +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/aarch64-efi/post-image.sh support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/aarch64-efi/genimage-efi.cfg" + +# Linux headers same as kernel, a 5.15 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.4" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Host tools for genimage +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/acmesystems_acqua_a5_256mb_defconfig b/configs/acmesystems_acqua_a5_256mb_defconfig new file mode 100644 index 000000000..f8129f378 --- /dev/null +++ b/configs/acmesystems_acqua_a5_256mb_defconfig @@ -0,0 +1,26 @@ +BR2_arm=y +BR2_cortex_a5=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_INSTRUCTIONS_THUMB2=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4=y +BR2_SYSTEM_DHCP="eth0" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/acmesystems/acqua-a5/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.107" +BR2_LINUX_KERNEL_DEFCONFIG="sama5" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="board/acmesystems/acqua-a5/at91-sama5d3_acqua.dts" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="https://github.com/linux4sam/at91bootstrap.git" +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="v3.10.3" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="acqua-256m" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/acmesystems_acqua_a5_512mb_defconfig b/configs/acmesystems_acqua_a5_512mb_defconfig new file mode 100644 index 000000000..e399d4a9f --- /dev/null +++ b/configs/acmesystems_acqua_a5_512mb_defconfig @@ -0,0 +1,26 @@ +BR2_arm=y +BR2_cortex_a5=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_INSTRUCTIONS_THUMB2=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4=y +BR2_SYSTEM_DHCP="eth0" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/acmesystems/acqua-a5/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.107" +BR2_LINUX_KERNEL_DEFCONFIG="sama5" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="board/acmesystems/acqua-a5/at91-sama5d3_acqua.dts" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="https://github.com/linux4sam/at91bootstrap.git" +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="v3.10.3" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="acqua-512m" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/acmesystems_aria_g25_128mb_defconfig b/configs/acmesystems_aria_g25_128mb_defconfig new file mode 100644 index 000000000..c428e318d --- /dev/null +++ b/configs/acmesystems_aria_g25_128mb_defconfig @@ -0,0 +1,38 @@ +# Architecture +BR2_arm=y +BR2_arm926t=y + +# Kernel headers +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y + +# System configuration +BR2_TARGET_GENERIC_ISSUE="Welcome to Aria-G25 Buildroot" +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" +BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/acmesystems/aria-g25/genimage.cfg" + +# Kernel configuration +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19.216" +BR2_LINUX_KERNEL_DEFCONFIG="at91_dt" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-ariag25" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Root filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# AT91bootstrap bootloader +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="https://github.com/linux4sam/at91bootstrap.git" +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="v3.10.3" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="aria-128m" + +# Tools to build sdcard.img +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/acmesystems_aria_g25_256mb_defconfig b/configs/acmesystems_aria_g25_256mb_defconfig new file mode 100644 index 000000000..83f7625dc --- /dev/null +++ b/configs/acmesystems_aria_g25_256mb_defconfig @@ -0,0 +1,38 @@ +# Architecture +BR2_arm=y +BR2_arm926t=y + +# Kernel headers +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y + +# System configuration +BR2_TARGET_GENERIC_ISSUE="Welcome to Aria-G25 Buildroot" +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" +BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/acmesystems/aria-g25/genimage.cfg" + +# Kernel configuration +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19.216" +BR2_LINUX_KERNEL_DEFCONFIG="at91_dt" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-ariag25" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Root filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# AT91bootstrap bootloader +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="https://github.com/linux4sam/at91bootstrap.git" +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="v3.10.3" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="aria-256m" + +# Tools to build sdcard.img +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/acmesystems_arietta_g25_128mb_defconfig b/configs/acmesystems_arietta_g25_128mb_defconfig new file mode 100644 index 000000000..b882b2bdb --- /dev/null +++ b/configs/acmesystems_arietta_g25_128mb_defconfig @@ -0,0 +1,38 @@ +# Architecture +BR2_arm=y +BR2_arm926t=y + +# Kernel headers +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y + +# System configuration +BR2_TARGET_GENERIC_ISSUE="Welcome to Arietta-G25 Buildroot" +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" +BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/acmesystems/arietta-g25/genimage.cfg" + +# Kernel configuration +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19.216" +BR2_LINUX_KERNEL_DEFCONFIG="at91_dt" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-ariettag25" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Root filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# AT91bootstrap bootloader +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="https://github.com/linux4sam/at91bootstrap.git" +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="v3.10.3" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="arietta-128m" + +# Tools to build sdcard.img +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/acmesystems_arietta_g25_256mb_defconfig b/configs/acmesystems_arietta_g25_256mb_defconfig new file mode 100644 index 000000000..10501d462 --- /dev/null +++ b/configs/acmesystems_arietta_g25_256mb_defconfig @@ -0,0 +1,38 @@ +# Architecture +BR2_arm=y +BR2_arm926t=y + +# Kernel headers +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y + +# System configuration +BR2_TARGET_GENERIC_ISSUE="Welcome to Arietta-G25 Buildroot" +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" +BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/acmesystems/arietta-g25/genimage.cfg" + +# Kernel configuration +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19.216" +BR2_LINUX_KERNEL_DEFCONFIG="at91_dt" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-ariettag25" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Root filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# AT91bootstrap bootloader +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="https://github.com/linux4sam/at91bootstrap.git" +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="v3.10.3" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="arietta-256m" + +# Tools to build sdcard.img +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/amarula_a64_relic_defconfig b/configs/amarula_a64_relic_defconfig new file mode 100644 index 000000000..304a3ef82 --- /dev/null +++ b/configs/amarula_a64_relic_defconfig @@ -0,0 +1,63 @@ +BR2_aarch64=y +BR2_cortex_a53=y +BR2_ARM_FPU_VFPV4=y + +# Linux headers same as kernel, a 4.17 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_17=y + +# Firmware +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://github.com/apritzel/arm-trusted-firmware.git" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="sun50iw1p1" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="aa75c8da415158a94b82a430b2b40000778e851f" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.07" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="amarula_a64_relic" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb" +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="spl/sunxi-spl.bin" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,amarula,linux-amarula,v1.0a)/linux-amarula_v1.0a.tar.gz" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun50i-a64-amarula-relic" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_GENERIC_ISSUE="Welcome to Amarula A64-Relic" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_PACKAGE_HOST_ANDROID_TOOLS=y +BR2_PACKAGE_HOST_ANDROID_TOOLS_FASTBOOT=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/amarula/a64-relic/genimage.cfg" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/amarula/a64-relic/post-build.sh" +BR2_ROOTFS_OVERLAY="board/amarula/a64-relic/rootfs_overlay" + +# wireless firmware +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XX=y + +# wireless tools +BR2_PACKAGE_IW=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_WPA_SUPPLICANT_NL80211=y +BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT=y +BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y diff --git a/configs/amarula_vyasa_rk3288_defconfig b/configs/amarula_vyasa_rk3288_defconfig new file mode 100644 index 000000000..ff96019e1 --- /dev/null +++ b/configs/amarula_vyasa_rk3288_defconfig @@ -0,0 +1,47 @@ +# Architecture +BR2_arm=y +BR2_cortex_a17=y +BR2_ARM_FPU_NEON_VFPV4=y + +# Linux headers same as kernel, a 5.14 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_14=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="vyasa-rk3288" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_FORMAT_DTB_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="spl/u-boot-spl-dtb.bin tpl/u-boot-tpl.bin" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.14.13" +BR2_LINUX_KERNEL_DEFCONFIG="multi_v7" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x02000000" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="rk3288-vyasa" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/amarula/vyasa/linux_gmac.fragment" + +# Filesystem +BR2_TARGET_GENERIC_HOSTNAME="vyasa-rk3288" +BR2_TARGET_GENERIC_ISSUE="Welcome to VYASA RK3288!" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="512M" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/amarula/vyasa/genimage.cfg" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/amarula/vyasa/post-build.sh" diff --git a/configs/andes_ae350_45_defconfig b/configs/andes_ae350_45_defconfig new file mode 100644 index 000000000..a35ddd06b --- /dev/null +++ b/configs/andes_ae350_45_defconfig @@ -0,0 +1,43 @@ +BR2_riscv=y +BR2_riscv_custom=y +BR2_RISCV_ISA_CUSTOM_RVM=y +BR2_RISCV_ISA_CUSTOM_RVF=y +BR2_RISCV_ISA_CUSTOM_RVD=y +BR2_RISCV_ISA_CUSTOM_RVC=y +BR2_GLOBAL_PATCH_DIR="board/andes/ae350/patches" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" +BR2_ROOTFS_OVERLAY="board/andes/ae350/rootfs_overlay" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/andes/ae350/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/andes/ae350/genimage_sdcard.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/andestech/linux.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="v5.10.84-ae350_45" +BR2_LINUX_KERNEL_DEFCONFIG="ae350_rv64_smp" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="board/andes/ae350/ae350.dts" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_OPENSBI=y +BR2_TARGET_OPENSBI_PLAT="andes/ae350" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="ae350_rv64_spl_xip" +BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/andes/ae350/uboot.config.fragment" +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_NEEDS_OPENSBI=y +# BR2_TARGET_UBOOT_FORMAT_BIN is not set +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb" +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="ARCH_FLAGS=-march=rv64imafdc" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/arcturus_ucls1012a_defconfig b/configs/arcturus_ucls1012a_defconfig new file mode 100644 index 000000000..124cc3ff9 --- /dev/null +++ b/configs/arcturus_ucls1012a_defconfig @@ -0,0 +1,36 @@ +# Architecture +BR2_aarch64=y + +# Linux headers same as kernel, a 5.4 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4=y + +# System settings +BR2_TARGET_GENERIC_HOSTNAME="ucls1012a" +BR2_TARGET_GENERIC_ISSUE="Welcome to uCLS1012A-SOM" +BR2_SYSTEM_DHCP="eth0" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/arcturus/aarch64-ucls1012a/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/arcturus/aarch64-ucls1012a/post-image.sh" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,ArcturusNetworks,uCLS1012A-kernel,v.22.06)/linux-v.22.06.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="ucls1012a" +BR2_LINUX_KERNEL_IMAGEGZ=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="arcturus/arc-ucls1012a" + +# Filesystem +BR2_TARGET_ROOTFS_CPIO=y +BR2_TARGET_ROOTFS_CPIO_GZIP=y + +# U-boot +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,ArcturusNetworks,uCLS1012A-uboot,v.22.06)/uboot-v.22.06.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="UCLS1012A_QSPI128" + +# Tools +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y diff --git a/configs/arcturus_ucp1020_defconfig b/configs/arcturus_ucp1020_defconfig new file mode 100644 index 000000000..8b90f4475 --- /dev/null +++ b/configs/arcturus_ucp1020_defconfig @@ -0,0 +1,30 @@ +# Architecture +BR2_powerpc=y +BR2_powerpc_8548=y + +# Linux headers same as kernel, a 4.4 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y + +# System settings +BR2_TARGET_GENERIC_HOSTNAME="UCP1020" +BR2_TARGET_GENERIC_ISSUE="Welcome to Arcturus uCP1020 System on Module" +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" +BR2_SYSTEM_DHCP="eth0" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,ArcturusNetworks,uCP1020-kernel,v20190618)/linux-v20190618.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="ucp1020" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="ucp1020" + +# Filesystem +BR2_TARGET_ROOTFS_JFFS2=y + +# U-boot +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,ArcturusNetworks,uCP1020-uboot,v20190618)/uboot-v20190618.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="UCP1020" diff --git a/configs/arm_foundationv8_defconfig b/configs/arm_foundationv8_defconfig new file mode 100644 index 000000000..3c63f5dc7 --- /dev/null +++ b/configs/arm_foundationv8_defconfig @@ -0,0 +1,18 @@ +BR2_aarch64=y +# Linux headers same as kernel, a 5.16 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_16=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.16.20" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="arm/foundation-v8-gicv3-psci" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_BOOT_WRAPPER_AARCH64=y +BR2_TARGET_BOOT_WRAPPER_AARCH64_DTS="arm/foundation-v8-gicv3-psci" +BR2_TARGET_BOOT_WRAPPER_AARCH64_BOOTARGS="root=/dev/vda consolelog=9 console=ttyAMA0 rw" +BR2_TARGET_BOOT_WRAPPER_AARCH64_PSCI=y +BR2_TARGET_BOOT_WRAPPER_AARCH64_GICV3=y diff --git a/configs/arm_juno_defconfig b/configs/arm_juno_defconfig new file mode 100644 index 000000000..583298677 --- /dev/null +++ b/configs/arm_juno_defconfig @@ -0,0 +1,23 @@ +BR2_aarch64=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_6=y +BR2_TARGET_GENERIC_HOSTNAME="juno-buildroot" +BR2_TARGET_GENERIC_ISSUE="Welcome to SNPS Juno by Buildroot" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.6" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/arm/juno/linux-juno-defconfig" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="arm/juno arm/juno-r1 arm/juno-r2" +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://github.com/ARM-software/arm-trusted-firmware.git" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="v1.4" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="juno" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_FIP=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="vexpress_aemv8a_juno" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.03" +BR2_TARGET_VEXPRESS_FIRMWARE=y diff --git a/configs/armadeus_apf27_defconfig b/configs/armadeus_apf27_defconfig new file mode 100644 index 000000000..457a14b02 --- /dev/null +++ b/configs/armadeus_apf27_defconfig @@ -0,0 +1,34 @@ +# Architecture +BR2_arm=y +BR2_arm926t=y + +# Linux headers same as kernel, a 4.12 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_12=y + +# System +BR2_TARGET_GENERIC_HOSTNAME="apf27" +BR2_TARGET_GENERIC_ISSUE="Welcome to Armadeus development platform !" +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" + +# Filesystem +BR2_TARGET_ROOTFS_UBIFS=y +BR2_TARGET_ROOTFS_UBIFS_MAXLEBCNT=2047 +BR2_TARGET_ROOTFS_UBI=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.12.4" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/armadeus/apf27/linux-4.12.config" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0xA0008000" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx27-apf27dev" + +# U-boot +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.09" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="apf27" diff --git a/configs/armadeus_apf28_defconfig b/configs/armadeus_apf28_defconfig new file mode 100644 index 000000000..01e14e661 --- /dev/null +++ b/configs/armadeus_apf28_defconfig @@ -0,0 +1,28 @@ +# Architecture +BR2_arm=y +BR2_arm926t=y + +# Linux headers same as kernel, a 4.9 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_9=y + +# System +BR2_TARGET_GENERIC_HOSTNAME="apf28" +BR2_TARGET_GENERIC_ISSUE="Welcome to Armadeus development platform !" +BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.9.289" +BR2_LINUX_KERNEL_DEFCONFIG="mxs" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x40008000" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx28-apf28dev" + +# Filesystem +BR2_TARGET_ROOTFS_UBIFS=y +BR2_TARGET_ROOTFS_UBIFS_LEBSIZE=0x1f000 +BR2_TARGET_ROOTFS_UBIFS_MAXLEBCNT=4227 +BR2_TARGET_ROOTFS_UBI=y +BR2_TARGET_ROOTFS_UBI_SUBSIZE=0 diff --git a/configs/armadeus_apf51_defconfig b/configs/armadeus_apf51_defconfig new file mode 100644 index 000000000..aa7c2f84a --- /dev/null +++ b/configs/armadeus_apf51_defconfig @@ -0,0 +1,27 @@ +# Architecture +BR2_arm=y +BR2_cortex_a8=y + +# Linux headers same as kernel, a 4.4 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y + +# System +BR2_TARGET_GENERIC_HOSTNAME="apf51" +BR2_TARGET_GENERIC_ISSUE="Welcome to Armadeus development platform !" +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc2" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.291" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/armadeus/apf51/linux-4.4.config" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x90008000" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx51-apf51dev" + +# Filesystem +BR2_TARGET_ROOTFS_UBIFS=y +BR2_TARGET_ROOTFS_UBIFS_MAXLEBCNT=135301 +BR2_TARGET_ROOTFS_UBI=y diff --git a/configs/aspeed_ast2500evb_defconfig b/configs/aspeed_ast2500evb_defconfig new file mode 100644 index 000000000..8db5a39a1 --- /dev/null +++ b/configs/aspeed_ast2500evb_defconfig @@ -0,0 +1,44 @@ +# Architecture +BR2_arm=y + +# System +BR2_TARGET_GENERIC_HOSTNAME="aspeed-evb" +BR2_TARGET_GENERIC_ISSUE="Aspeed EVB" +BR2_SYSTEM_DHCP="eth0" + +# Filesystem +BR2_TARGET_ROOTFS_CPIO=y +BR2_TARGET_ROOTFS_CPIO_XZ=y + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/aspeed/common/post-image.sh" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_17=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.17.7" +BR2_LINUX_KERNEL_DEFCONFIG="aspeed_g5" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/aspeed/ast2500-evb/linux.fragment" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="aspeed-ast2500-evb" +BR2_LINUX_KERNEL_XZ=y + +# Boot +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="evb-ast2500" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="DEVICE_TREE=ast2500-evb" +BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/aspeed/ast2500-evb/uboot.fragment" +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y +BR2_PACKAGE_HOST_GENIMAGE=y + +# Target tools +BR2_PACKAGE_MTD=y diff --git a/configs/aspeed_ast2600evb_defconfig b/configs/aspeed_ast2600evb_defconfig new file mode 100644 index 000000000..cd058ad0a --- /dev/null +++ b/configs/aspeed_ast2600evb_defconfig @@ -0,0 +1,44 @@ +# Architecture +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_FPU_VFPV4=y + +# System +BR2_TARGET_GENERIC_HOSTNAME="aspeed-evb" +BR2_TARGET_GENERIC_ISSUE="Aspeed EVB" +BR2_SYSTEM_DHCP="eth0" + +# Filesystem +BR2_TARGET_ROOTFS_CPIO=y +BR2_TARGET_ROOTFS_CPIO_XZ=y + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/aspeed/common/post-image.sh" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_17=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.17.7" +BR2_LINUX_KERNEL_DEFCONFIG="aspeed_g5" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="aspeed-ast2600-evb" + +# Boot +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/openbmc/u-boot.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="f2b82fa4ba17ed8091fe76c284220006645a293b" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="evb-ast2600" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="DEVICE_TREE=ast2600a1-evb" + +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y +BR2_PACKAGE_HOST_GENIMAGE=y + +# Target tools +BR2_PACKAGE_MTD=y diff --git a/configs/asus_tinker_rk3288_defconfig b/configs/asus_tinker_rk3288_defconfig new file mode 100644 index 000000000..6963fa939 --- /dev/null +++ b/configs/asus_tinker_rk3288_defconfig @@ -0,0 +1,47 @@ +# Architecture +BR2_arm=y +BR2_cortex_a17=y +BR2_ARM_FPU_NEON_VFPV4=y + +# Linux headers same as kernel, a 5.14 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_14=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="tinker-rk3288" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_FORMAT_DTB_IMG=y +BR2_TARGET_UBOOT_FORMAT_DTB_BIN=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="spl/u-boot-spl-dtb.bin" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.14.13" +BR2_LINUX_KERNEL_DEFCONFIG="multi_v7" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x02000000" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="rk3288-tinker" +BR2_LINUX_KERNEL_INSTALL_TARGET=y + +# Filesystem +BR2_TARGET_GENERIC_HOSTNAME="tinker-rk3288" +BR2_TARGET_GENERIC_ISSUE="Welcome to TINKER RK3288!" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="512M" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/asus/tinker/genimage.cfg" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/asus/tinker/post-build.sh" diff --git a/configs/at91sam9260eknf_defconfig b/configs/at91sam9260eknf_defconfig new file mode 100644 index 000000000..b795ad6ef --- /dev/null +++ b/configs/at91sam9260eknf_defconfig @@ -0,0 +1,33 @@ +# Architecture +BR2_arm=y +BR2_arm926t=y + +# Linux headers same as kernel, a 4.8 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_8=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.8.6" +BR2_LINUX_KERNEL_DEFCONFIG="at91_dt" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91sam9260ek" + +# Filesystem +BR2_TARGET_ROOTFS_UBIFS=y +BR2_TARGET_ROOTFS_UBI=y + +# Bootloaders +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="https://github.com/linux4sam/at91bootstrap.git" +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="v3.10.3" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="at91sam9260eknf_uboot" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.09.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="at91sam9260ek_nandflash" + +# Host packages +BR2_PACKAGE_HOST_SAM_BA=y diff --git a/configs/at91sam9g20dfc_defconfig b/configs/at91sam9g20dfc_defconfig new file mode 100644 index 000000000..46626d857 --- /dev/null +++ b/configs/at91sam9g20dfc_defconfig @@ -0,0 +1,39 @@ +# Architecture +BR2_arm=y +BR2_arm926t=y + +# Linux headers same as kernel, a 4.8 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_8=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.8.6" +BR2_LINUX_KERNEL_DEFCONFIG="at91_dt" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91sam9g20ek" + +# Filesystem +BR2_TARGET_ROOTFS_TAR=y +BR2_TARGET_ROOTFS_UBI=y +BR2_TARGET_ROOTFS_UBI_PEBSIZE=0x20000 +BR2_TARGET_ROOTFS_UBI_SUBSIZE=512 +BR2_TARGET_ROOTFS_UBIFS=y +BR2_TARGET_ROOTFS_UBIFS_LEBSIZE=0x1f800 +BR2_TARGET_ROOTFS_UBIFS_MINIOSIZE=0x800 +BR2_TARGET_ROOTFS_UBIFS_MAXLEBCNT=2047 + +# Bootloaders +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="https://github.com/linux4sam/at91bootstrap.git" +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="v3.10.3" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="at91sam9g20eknf_uboot" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.09.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="at91sam9g20ek_nandflash" + +# Host packages +BR2_PACKAGE_HOST_SAM_BA=y diff --git a/configs/at91sam9g45m10ek_defconfig b/configs/at91sam9g45m10ek_defconfig new file mode 100644 index 000000000..bf0771bc1 --- /dev/null +++ b/configs/at91sam9g45m10ek_defconfig @@ -0,0 +1,34 @@ +# Architecture +BR2_arm=y +BR2_arm926t=y + +# Linux headers same as kernel, a 4.8 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_8=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.8.6" +BR2_LINUX_KERNEL_DEFCONFIG="at91_dt" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91sam9m10g45ek" + +# Filesystem +BR2_TARGET_ROOTFS_UBIFS=y +BR2_TARGET_ROOTFS_UBIFS_MAXLEBCNT=2047 +BR2_TARGET_ROOTFS_UBI=y + +# Bootloaders +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="https://github.com/linux4sam/at91bootstrap.git" +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="v3.10.3" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="at91sam9m10g45eknf_uboot" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.09.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="at91sam9m10g45ek_nandflash" + +# Host packages +BR2_PACKAGE_HOST_SAM_BA=y diff --git a/configs/at91sam9rlek_defconfig b/configs/at91sam9rlek_defconfig new file mode 100644 index 000000000..5c0fdc599 --- /dev/null +++ b/configs/at91sam9rlek_defconfig @@ -0,0 +1,34 @@ +# Architecture +BR2_arm=y +BR2_arm926t=y + +# Linux headers same as kernel, a 4.8 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_8=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.8.6" +BR2_LINUX_KERNEL_DEFCONFIG="at91_dt" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91sam9rlek" + +# Filesystem +BR2_TARGET_ROOTFS_UBIFS=y +BR2_TARGET_ROOTFS_UBIFS_MAXLEBCNT=2047 +BR2_TARGET_ROOTFS_UBI=y + +# Bootloaders +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="https://github.com/linux4sam/at91bootstrap.git" +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="v3.10.3" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="at91sam9rleknf_uboot" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.09.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="at91sam9rlek_nandflash" + +# Host packages +BR2_PACKAGE_HOST_SAM_BA=y diff --git a/configs/at91sam9x5ek_defconfig b/configs/at91sam9x5ek_defconfig new file mode 100644 index 000000000..70e2d9482 --- /dev/null +++ b/configs/at91sam9x5ek_defconfig @@ -0,0 +1,28 @@ +BR2_arm=y +BR2_arm926t=y +# Linux headers same as kernel, a 4.4 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,linux-at91,linux4sam_6.1)/linux-linux4sam_6.1.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="at91_dt" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91sam9g15ek at91sam9g25ek at91sam9g35ek at91sam9x25ek at91sam9x35ek" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_UBIFS=y +BR2_TARGET_ROOTFS_UBIFS_LEBSIZE=0x1f000 +BR2_TARGET_ROOTFS_UBI=y +BR2_TARGET_ROOTFS_UBI_SUBSIZE=2048 +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="https://github.com/linux4sam/at91bootstrap.git" +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="v3.10.3" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="at91sam9x5eknf_uboot" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/linux4sam/u-boot-at91.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="linux4sam_6.1" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="at91sam9x5ek_nandflash" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_PACKAGE_HOST_SAM_BA=y diff --git a/configs/at91sam9x5ek_dev_defconfig b/configs/at91sam9x5ek_dev_defconfig new file mode 100644 index 000000000..8714463d8 --- /dev/null +++ b/configs/at91sam9x5ek_dev_defconfig @@ -0,0 +1,99 @@ +# Architecture +BR2_arm=y +BR2_arm926t=y + +# Toolchain +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y +# Needed for some packages +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y +# Needed for gdb +BR2_PTHREAD_DEBUG=y +# Needed for some packages +BR2_TOOLCHAIN_BUILDROOT_CXX=y + +# System Configuration +# Needed for usb-utils +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,linux-at91,linux4sam_6.1)/linux-linux4sam_6.1.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="at91_dt" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91sam9g15ek at91sam9g25ek at91sam9g35ek at91sam9x25ek at91sam9x35ek" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Packages +BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y +BR2_PACKAGE_ALSA_UTILS=y +BR2_PACKAGE_ALSA_UTILS_ALSACONF=y +BR2_PACKAGE_ALSA_UTILS_APLAY=y +BR2_PACKAGE_FFMPEG=y +BR2_PACKAGE_FFMPEG_GPL=y +BR2_PACKAGE_FFMPEG_SWSCALE=y +BR2_PACKAGE_MPG123=y +BR2_PACKAGE_BZIP2=y +BR2_PACKAGE_GZIP=y +BR2_PACKAGE_UNZIP=y +BR2_PACKAGE_XZ=y +BR2_PACKAGE_ZIP=y +BR2_PACKAGE_GDB=y +BR2_PACKAGE_LMBENCH=y +BR2_PACKAGE_DOSFSTOOLS=y +BR2_PACKAGE_DOSFSTOOLS_FATLABEL=y +BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT=y +BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y +BR2_PACKAGE_MMC_UTILS=y +BR2_PACKAGE_MTD=y +BR2_PACKAGE_WILC1000_FIRMWARE=y +BR2_PACKAGE_WILC3000_FIRMWARE=y +BR2_PACKAGE_EVTEST=y +BR2_PACKAGE_I2C_TOOLS=y +BR2_PACKAGE_SETSERIAL=y +BR2_PACKAGE_SPI_TOOLS=y +BR2_PACKAGE_USBUTILS=y +BR2_PACKAGE_LIBDRM=y +BR2_PACKAGE_LIBDRM_INSTALL_TESTS=y +BR2_PACKAGE_DTC=y +BR2_PACKAGE_DTC_PROGRAMS=y +BR2_PACKAGE_BLUEZ5_UTILS=y +BR2_PACKAGE_BRIDGE_UTILS=y +BR2_PACKAGE_CAN_UTILS=y +BR2_PACKAGE_ETHTOOL=y +BR2_PACKAGE_IPERF=y +BR2_PACKAGE_IPROUTE2=y +BR2_PACKAGE_IPTABLES=y +BR2_PACKAGE_IW=y +BR2_PACKAGE_LRZSZ=y +BR2_PACKAGE_MII_DIAG=y +BR2_PACKAGE_OPENSSH=y +BR2_PACKAGE_WGET=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_BASH=y +BR2_PACKAGE_HTOP=y +BR2_PACKAGE_VIM=y + +# Filesystem +BR2_TARGET_ROOTFS_UBIFS=y +BR2_TARGET_ROOTFS_UBIFS_LEBSIZE=0x1f000 +BR2_TARGET_ROOTFS_UBI=y +BR2_TARGET_ROOTFS_UBI_SUBSIZE=2048 + +# Bootloaders +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="https://github.com/linux4sam/at91bootstrap.git" +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="v3.10.3" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="at91sam9x5eknf_uboot" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/linux4sam/u-boot-at91.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="linux4sam_6.1" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="at91sam9x5ek_nandflash" +BR2_TARGET_UBOOT_NEEDS_DTC=y + +# Host packages +BR2_PACKAGE_HOST_SAM_BA=y diff --git a/configs/at91sam9x5ek_mmc_defconfig b/configs/at91sam9x5ek_mmc_defconfig new file mode 100644 index 000000000..79a300a81 --- /dev/null +++ b/configs/at91sam9x5ek_mmc_defconfig @@ -0,0 +1,47 @@ +# Architecture +BR2_arm=y +BR2_arm926t=y + +# Toolchain +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y + +# Creation of the SD card image +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/atmel/at91sam9x5ek_mmc/genimage.cfg" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,linux-at91,linux4sam_6.1)/linux-linux4sam_6.1.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="at91_dt" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91sam9g15ek at91sam9g25ek at91sam9g35ek at91sam9x25ek at91sam9x35ek" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# Bootloaders +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="https://github.com/linux4sam/at91bootstrap.git" +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="v3.10.3" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="at91sam9x5eksd_uboot" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/linux4sam/u-boot-at91.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="linux4sam_6.1" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="at91sam9x5ek_mmc" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SOURCE="board/atmel/at91sam9x5ek_mmc/uboot-env.txt" +BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SIZE="0x4000" + +# Host packages +# Needed to generate the SD card image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/at91sam9x5ek_mmc_dev_defconfig b/configs/at91sam9x5ek_mmc_dev_defconfig new file mode 100644 index 000000000..948159471 --- /dev/null +++ b/configs/at91sam9x5ek_mmc_dev_defconfig @@ -0,0 +1,108 @@ +# Architecture +BR2_arm=y +BR2_arm926t=y + +# Toolchain +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y +# Needed for some packages +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y +# Needed for gdb +BR2_PTHREAD_DEBUG=y +# Needed for some packages +BR2_TOOLCHAIN_BUILDROOT_CXX=y + +# System Configuration +# Needed for usb-utils +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y +# Creation of the SD card image +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/atmel/at91sam9x5ek_mmc/genimage.cfg" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,linux-at91,linux4sam_6.1)/linux-linux4sam_6.1.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="at91_dt" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91sam9g15ek at91sam9g25ek at91sam9g35ek at91sam9x25ek at91sam9x35ek" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Packages +BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y +BR2_PACKAGE_ALSA_UTILS=y +BR2_PACKAGE_ALSA_UTILS_ALSACONF=y +BR2_PACKAGE_ALSA_UTILS_APLAY=y +BR2_PACKAGE_FFMPEG=y +BR2_PACKAGE_FFMPEG_GPL=y +BR2_PACKAGE_FFMPEG_SWSCALE=y +BR2_PACKAGE_MPG123=y +BR2_PACKAGE_BZIP2=y +BR2_PACKAGE_GZIP=y +BR2_PACKAGE_UNZIP=y +BR2_PACKAGE_XZ=y +BR2_PACKAGE_ZIP=y +BR2_PACKAGE_GDB=y +BR2_PACKAGE_LMBENCH=y +BR2_PACKAGE_DOSFSTOOLS=y +BR2_PACKAGE_DOSFSTOOLS_FATLABEL=y +BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT=y +BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y +BR2_PACKAGE_MMC_UTILS=y +BR2_PACKAGE_MTD=y +BR2_PACKAGE_WILC1000_FIRMWARE=y +BR2_PACKAGE_WILC3000_FIRMWARE=y +BR2_PACKAGE_EVTEST=y +BR2_PACKAGE_I2C_TOOLS=y +BR2_PACKAGE_SETSERIAL=y +BR2_PACKAGE_SPI_TOOLS=y +BR2_PACKAGE_USBUTILS=y +BR2_PACKAGE_LIBDRM=y +BR2_PACKAGE_LIBDRM_INSTALL_TESTS=y +BR2_PACKAGE_DTC=y +BR2_PACKAGE_DTC_PROGRAMS=y +BR2_PACKAGE_BLUEZ5_UTILS=y +BR2_PACKAGE_BRIDGE_UTILS=y +BR2_PACKAGE_CAN_UTILS=y +BR2_PACKAGE_ETHTOOL=y +BR2_PACKAGE_IPERF=y +BR2_PACKAGE_IPROUTE2=y +BR2_PACKAGE_IPTABLES=y +BR2_PACKAGE_IW=y +BR2_PACKAGE_LRZSZ=y +BR2_PACKAGE_MII_DIAG=y +BR2_PACKAGE_OPENSSH=y +BR2_PACKAGE_WGET=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_BASH=y +BR2_PACKAGE_HTOP=y +BR2_PACKAGE_VIM=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" + +# Bootloaders +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="https://github.com/linux4sam/at91bootstrap.git" +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="v3.10.3" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="at91sam9x5eksd_uboot" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/linux4sam/u-boot-at91.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="linux4sam_6.1" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="at91sam9x5ek_mmc" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SOURCE="board/atmel/at91sam9x5ek_mmc/uboot-env.txt" +BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SIZE="0x4000" + +# Host packages +# Needed to generate the SD card image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/atmel_sama5d27_som1_ek_mmc_dev_defconfig b/configs/atmel_sama5d27_som1_ek_mmc_dev_defconfig new file mode 100644 index 000000000..38618a573 --- /dev/null +++ b/configs/atmel_sama5d27_som1_ek_mmc_dev_defconfig @@ -0,0 +1,85 @@ +BR2_arm=y +BR2_cortex_a5=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_INSTRUCTIONS_THUMB2=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y +BR2_PTHREAD_DEBUG=y +BR2_TOOLCHAIN_BUILDROOT_CXX=y +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/atmel/sama5d27_som1_ek_mmc/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,linux4microchip,linux,linux4microchip-2021.10)/linux-linux4microchip-2021.10.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="sama5" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama5d27_som1_ek" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y +BR2_PACKAGE_ALSA_UTILS=y +BR2_PACKAGE_ALSA_UTILS_ALSACONF=y +BR2_PACKAGE_ALSA_UTILS_APLAY=y +BR2_PACKAGE_FFMPEG=y +BR2_PACKAGE_FFMPEG_GPL=y +BR2_PACKAGE_FFMPEG_SWSCALE=y +BR2_PACKAGE_MPG123=y +BR2_PACKAGE_BZIP2=y +BR2_PACKAGE_GZIP=y +BR2_PACKAGE_UNZIP=y +BR2_PACKAGE_XZ=y +BR2_PACKAGE_ZIP=y +BR2_PACKAGE_GDB=y +BR2_PACKAGE_LMBENCH=y +BR2_PACKAGE_DOSFSTOOLS=y +BR2_PACKAGE_DOSFSTOOLS_FATLABEL=y +BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT=y +BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y +BR2_PACKAGE_MMC_UTILS=y +BR2_PACKAGE_MTD=y +BR2_PACKAGE_WILC1000_FIRMWARE=y +BR2_PACKAGE_WILC3000_FIRMWARE=y +BR2_PACKAGE_EVTEST=y +BR2_PACKAGE_I2C_TOOLS=y +BR2_PACKAGE_RNG_TOOLS=y +BR2_PACKAGE_SETSERIAL=y +BR2_PACKAGE_SPI_TOOLS=y +BR2_PACKAGE_USBUTILS=y +BR2_PACKAGE_LIBDRM=y +BR2_PACKAGE_LIBDRM_INSTALL_TESTS=y +BR2_PACKAGE_DTC=y +BR2_PACKAGE_DTC_PROGRAMS=y +BR2_PACKAGE_BLUEZ5_UTILS=y +BR2_PACKAGE_BRIDGE_UTILS=y +BR2_PACKAGE_CAN_UTILS=y +BR2_PACKAGE_ETHTOOL=y +BR2_PACKAGE_IPERF=y +BR2_PACKAGE_IPROUTE2=y +BR2_PACKAGE_IPTABLES=y +BR2_PACKAGE_IW=y +BR2_PACKAGE_LRZSZ=y +BR2_PACKAGE_MII_DIAG=y +BR2_PACKAGE_OPENSSH=y +BR2_PACKAGE_WGET=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_BASH=y +BR2_PACKAGE_HTOP=y +BR2_PACKAGE_VIM=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,at91bootstrap,v4.0.1)/at91bootstrap3-v4.0.1.tar.gz" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama5d27_som1_eksd_uboot" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,u-boot-at91,linux4sam-2020.04)/u-boot-at91-linux4sam-2020.04.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sama5d27_som1_ek_mmc" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/atmel_sama5d2_xplained_mmc_defconfig b/configs/atmel_sama5d2_xplained_mmc_defconfig new file mode 100644 index 000000000..5b6381260 --- /dev/null +++ b/configs/atmel_sama5d2_xplained_mmc_defconfig @@ -0,0 +1,30 @@ +BR2_arm=y +BR2_cortex_a5=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_INSTRUCTIONS_THUMB2=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/atmel/sama5d2_xplained_mmc/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,linux4microchip,linux,linux4microchip-2021.10)/linux-linux4microchip-2021.10.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="sama5" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama5d2_xplained" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,at91bootstrap,v4.0.1)/at91bootstrap3-v4.0.1.tar.gz" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama5d2_xplainedsd_uboot" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,u-boot-at91,linux4sam_6.2)/u-boot-at91-linux4sam_6.2.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sama5d2_xplained_mmc" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/atmel_sama5d2_xplained_mmc_dev_defconfig b/configs/atmel_sama5d2_xplained_mmc_dev_defconfig new file mode 100644 index 000000000..1654408aa --- /dev/null +++ b/configs/atmel_sama5d2_xplained_mmc_dev_defconfig @@ -0,0 +1,105 @@ +# Architecture +BR2_arm=y +BR2_cortex_a5=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_INSTRUCTIONS_THUMB2=y + +# Toolchain +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +# Needed for some packages +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y +# Needed for gdb +BR2_PTHREAD_DEBUG=y +# Needed for some packages +BR2_TOOLCHAIN_BUILDROOT_CXX=y + +# System Configuration +# Needed for usb-utils +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y +# Creation of the SD card image +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/atmel/sama5d2_xplained_mmc/genimage.cfg" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,linux4microchip,linux,linux4microchip-2021.10)/linux-linux4microchip-2021.10.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="sama5" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama5d2_xplained" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Packages +BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y +BR2_PACKAGE_ALSA_UTILS=y +BR2_PACKAGE_ALSA_UTILS_ALSACONF=y +BR2_PACKAGE_ALSA_UTILS_APLAY=y +BR2_PACKAGE_FFMPEG=y +BR2_PACKAGE_FFMPEG_GPL=y +BR2_PACKAGE_FFMPEG_SWSCALE=y +BR2_PACKAGE_MPG123=y +BR2_PACKAGE_BZIP2=y +BR2_PACKAGE_GZIP=y +BR2_PACKAGE_UNZIP=y +BR2_PACKAGE_XZ=y +BR2_PACKAGE_ZIP=y +BR2_PACKAGE_GDB=y +BR2_PACKAGE_LMBENCH=y +BR2_PACKAGE_DOSFSTOOLS=y +BR2_PACKAGE_DOSFSTOOLS_FATLABEL=y +BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT=y +BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y +BR2_PACKAGE_MMC_UTILS=y +BR2_PACKAGE_MTD=y +BR2_PACKAGE_WILC1000_FIRMWARE=y +BR2_PACKAGE_WILC3000_FIRMWARE=y +BR2_PACKAGE_EVTEST=y +BR2_PACKAGE_I2C_TOOLS=y +BR2_PACKAGE_SETSERIAL=y +BR2_PACKAGE_SPI_TOOLS=y +BR2_PACKAGE_USBUTILS=y +BR2_PACKAGE_LIBDRM=y +BR2_PACKAGE_LIBDRM_INSTALL_TESTS=y +BR2_PACKAGE_DTC=y +BR2_PACKAGE_DTC_PROGRAMS=y +BR2_PACKAGE_BLUEZ5_UTILS=y +BR2_PACKAGE_BRIDGE_UTILS=y +BR2_PACKAGE_CAN_UTILS=y +BR2_PACKAGE_ETHTOOL=y +BR2_PACKAGE_IPERF=y +BR2_PACKAGE_IPROUTE2=y +BR2_PACKAGE_IPTABLES=y +BR2_PACKAGE_IW=y +BR2_PACKAGE_LRZSZ=y +BR2_PACKAGE_MII_DIAG=y +BR2_PACKAGE_OPENSSH=y +BR2_PACKAGE_WGET=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_BASH=y +BR2_PACKAGE_HTOP=y +BR2_PACKAGE_VIM=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" + +# Bootloaders +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,at91bootstrap,v4.0.1)/at91bootstrap3-v4.0.1.tar.gz" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama5d2_xplainedsd_uboot" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,u-boot-at91,linux4sam_6.2)/u-boot-at91-linux4sam_6.2.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sama5d2_xplained_mmc" +BR2_TARGET_UBOOT_NEEDS_DTC=y + +# Host packages +# Needed to generate the SD card image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/atmel_sama5d3_xplained_defconfig b/configs/atmel_sama5d3_xplained_defconfig new file mode 100644 index 000000000..7ef45db46 --- /dev/null +++ b/configs/atmel_sama5d3_xplained_defconfig @@ -0,0 +1,27 @@ +BR2_arm=y +BR2_cortex_a5=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_INSTRUCTIONS_THUMB2=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,linux4microchip,linux,linux4microchip-2021.10)/linux-linux4microchip-2021.10.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="sama5" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama5d3_xplained" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_UBIFS=y +BR2_TARGET_ROOTFS_UBIFS_LEBSIZE=0x1f000 +BR2_TARGET_ROOTFS_UBI=y +BR2_TARGET_ROOTFS_UBI_SUBSIZE=2048 +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,at91bootstrap,v4.0.1)/at91bootstrap3-v4.0.1.tar.gz" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama5d3_xplainednf_uboot" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,u-boot-at91,linux4sam_6.2)/u-boot-at91-linux4sam_6.2.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sama5d3_xplained_nandflash" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_PACKAGE_HOST_SAM_BA=y diff --git a/configs/atmel_sama5d3_xplained_dev_defconfig b/configs/atmel_sama5d3_xplained_dev_defconfig new file mode 100644 index 000000000..64455cb2e --- /dev/null +++ b/configs/atmel_sama5d3_xplained_dev_defconfig @@ -0,0 +1,99 @@ +# Architecture +BR2_arm=y +BR2_cortex_a5=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_INSTRUCTIONS_THUMB2=y + +# Toolchain +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +# Needed for some packages +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y +# Needed for gdb +BR2_PTHREAD_DEBUG=y +# Needed for some packages +BR2_TOOLCHAIN_BUILDROOT_CXX=y + +# System Configuration +# Needed for usb-utils +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,linux4microchip,linux,linux4microchip-2021.10)/linux-linux4microchip-2021.10.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="sama5" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama5d3_xplained" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Packages +BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y +BR2_PACKAGE_ALSA_UTILS=y +BR2_PACKAGE_ALSA_UTILS_ALSACONF=y +BR2_PACKAGE_ALSA_UTILS_APLAY=y +BR2_PACKAGE_FFMPEG=y +BR2_PACKAGE_FFMPEG_GPL=y +BR2_PACKAGE_FFMPEG_SWSCALE=y +BR2_PACKAGE_MPG123=y +BR2_PACKAGE_BZIP2=y +BR2_PACKAGE_GZIP=y +BR2_PACKAGE_UNZIP=y +BR2_PACKAGE_XZ=y +BR2_PACKAGE_ZIP=y +BR2_PACKAGE_GDB=y +BR2_PACKAGE_LMBENCH=y +BR2_PACKAGE_DOSFSTOOLS=y +BR2_PACKAGE_DOSFSTOOLS_FATLABEL=y +BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT=y +BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y +BR2_PACKAGE_MMC_UTILS=y +BR2_PACKAGE_MTD=y +BR2_PACKAGE_WILC1000_FIRMWARE=y +BR2_PACKAGE_WILC3000_FIRMWARE=y +BR2_PACKAGE_EVTEST=y +BR2_PACKAGE_I2C_TOOLS=y +BR2_PACKAGE_SETSERIAL=y +BR2_PACKAGE_SPI_TOOLS=y +BR2_PACKAGE_USBUTILS=y +BR2_PACKAGE_LIBDRM=y +BR2_PACKAGE_LIBDRM_INSTALL_TESTS=y +BR2_PACKAGE_DTC=y +BR2_PACKAGE_DTC_PROGRAMS=y +BR2_PACKAGE_BLUEZ5_UTILS=y +BR2_PACKAGE_BRIDGE_UTILS=y +BR2_PACKAGE_CAN_UTILS=y +BR2_PACKAGE_ETHTOOL=y +BR2_PACKAGE_IPERF=y +BR2_PACKAGE_IPROUTE2=y +BR2_PACKAGE_IPTABLES=y +BR2_PACKAGE_IW=y +BR2_PACKAGE_LRZSZ=y +BR2_PACKAGE_MII_DIAG=y +BR2_PACKAGE_OPENSSH=y +BR2_PACKAGE_WGET=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_BASH=y +BR2_PACKAGE_HTOP=y +BR2_PACKAGE_VIM=y + +# Filesystem +BR2_TARGET_ROOTFS_UBIFS=y +BR2_TARGET_ROOTFS_UBIFS_LEBSIZE=0x1f000 +BR2_TARGET_ROOTFS_UBI=y +BR2_TARGET_ROOTFS_UBI_SUBSIZE=2048 + +# Bootloaders +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,at91bootstrap,v4.0.1)/at91bootstrap3-v4.0.1.tar.gz" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama5d3_xplainednf_uboot" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,u-boot-at91,linux4sam_6.2)/u-boot-at91-linux4sam_6.2.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sama5d3_xplained_nandflash" +BR2_TARGET_UBOOT_NEEDS_DTC=y + +# Host packages +BR2_PACKAGE_HOST_SAM_BA=y diff --git a/configs/atmel_sama5d3_xplained_mmc_defconfig b/configs/atmel_sama5d3_xplained_mmc_defconfig new file mode 100644 index 000000000..1b7d26988 --- /dev/null +++ b/configs/atmel_sama5d3_xplained_mmc_defconfig @@ -0,0 +1,29 @@ +BR2_arm=y +BR2_cortex_a5=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_INSTRUCTIONS_THUMB2=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/atmel/sama5d3_xplained_mmc/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,linux4microchip,linux,linux4microchip-2021.10)/linux-linux4microchip-2021.10.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="sama5" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama5d3_xplained" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,at91bootstrap,v4.0.1)/at91bootstrap3-v4.0.1.tar.gz" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama5d3_xplainedsd_uboot" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,u-boot-at91,linux4sam_6.2)/u-boot-at91-linux4sam_6.2.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sama5d3_xplained_mmc" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/atmel_sama5d3_xplained_mmc_dev_defconfig b/configs/atmel_sama5d3_xplained_mmc_dev_defconfig new file mode 100644 index 000000000..8f5724d63 --- /dev/null +++ b/configs/atmel_sama5d3_xplained_mmc_dev_defconfig @@ -0,0 +1,104 @@ +# Architecture +BR2_arm=y +BR2_cortex_a5=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_INSTRUCTIONS_THUMB2=y + +# Toolchain +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +# Needed for some packages +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y +# Needed for gdb +BR2_PTHREAD_DEBUG=y +# Needed for some packages +BR2_TOOLCHAIN_BUILDROOT_CXX=y + +# System Configuration +# Needed for usb-utils +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y +# Creation of the SD card image +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/atmel/sama5d3_xplained_mmc/genimage.cfg" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,linux4microchip,linux,linux4microchip-2021.10)/linux-linux4microchip-2021.10.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="sama5" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama5d3_xplained" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Packages +BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y +BR2_PACKAGE_ALSA_UTILS=y +BR2_PACKAGE_ALSA_UTILS_ALSACONF=y +BR2_PACKAGE_ALSA_UTILS_APLAY=y +BR2_PACKAGE_FFMPEG=y +BR2_PACKAGE_FFMPEG_GPL=y +BR2_PACKAGE_FFMPEG_SWSCALE=y +BR2_PACKAGE_MPG123=y +BR2_PACKAGE_BZIP2=y +BR2_PACKAGE_GZIP=y +BR2_PACKAGE_UNZIP=y +BR2_PACKAGE_XZ=y +BR2_PACKAGE_ZIP=y +BR2_PACKAGE_GDB=y +BR2_PACKAGE_LMBENCH=y +BR2_PACKAGE_DOSFSTOOLS=y +BR2_PACKAGE_DOSFSTOOLS_FATLABEL=y +BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT=y +BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y +BR2_PACKAGE_MMC_UTILS=y +BR2_PACKAGE_MTD=y +BR2_PACKAGE_WILC1000_FIRMWARE=y +BR2_PACKAGE_WILC3000_FIRMWARE=y +BR2_PACKAGE_EVTEST=y +BR2_PACKAGE_I2C_TOOLS=y +BR2_PACKAGE_SETSERIAL=y +BR2_PACKAGE_SPI_TOOLS=y +BR2_PACKAGE_USBUTILS=y +BR2_PACKAGE_LIBDRM=y +BR2_PACKAGE_LIBDRM_INSTALL_TESTS=y +BR2_PACKAGE_DTC=y +BR2_PACKAGE_DTC_PROGRAMS=y +BR2_PACKAGE_BLUEZ5_UTILS=y +BR2_PACKAGE_BRIDGE_UTILS=y +BR2_PACKAGE_CAN_UTILS=y +BR2_PACKAGE_ETHTOOL=y +BR2_PACKAGE_IPERF=y +BR2_PACKAGE_IPROUTE2=y +BR2_PACKAGE_IPTABLES=y +BR2_PACKAGE_IW=y +BR2_PACKAGE_LRZSZ=y +BR2_PACKAGE_MII_DIAG=y +BR2_PACKAGE_OPENSSH=y +BR2_PACKAGE_WGET=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_BASH=y +BR2_PACKAGE_HTOP=y +BR2_PACKAGE_VIM=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" + +# Bootloaders +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,at91bootstrap,v4.0.1)/at91bootstrap3-v4.0.1.tar.gz" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama5d3_xplainedsd_uboot" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,u-boot-at91,linux4sam_6.2)/u-boot-at91-linux4sam_6.2.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sama5d3_xplained_mmc" +BR2_TARGET_UBOOT_NEEDS_DTC=y + +# Host packages +# Needed to generate the SD card image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/atmel_sama5d3xek_defconfig b/configs/atmel_sama5d3xek_defconfig new file mode 100644 index 000000000..f71e84bf0 --- /dev/null +++ b/configs/atmel_sama5d3xek_defconfig @@ -0,0 +1,38 @@ +# Architecture +BR2_arm=y +BR2_cortex_a5=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_INSTRUCTIONS_THUMB2=y + +# Toolchain +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_9=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,linux-at91,linux4sam_5.8)/linux-linux4sam_5.8.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="sama5" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sama5d31ek sama5d33ek sama5d34ek sama5d35ek sama5d36ek" + +# Filesystem +BR2_TARGET_ROOTFS_UBIFS=y +BR2_TARGET_ROOTFS_UBIFS_LEBSIZE=0x1f000 +BR2_TARGET_ROOTFS_UBI=y +BR2_TARGET_ROOTFS_UBI_SUBSIZE=2048 + +# Bootloaders +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,at91bootstrap,v3.10.3)/at91bootstrap3-v3.10.3.tar.gz" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama5d3xeknf_uboot" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,u-boot-at91,linux4sam_5.8)/u-boot-at91-linux4sam_5.8.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sama5d3xek_nandflash" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_SPL=y + +# Host packages +BR2_PACKAGE_HOST_SAM_BA=y diff --git a/configs/atmel_sama5d4_xplained_defconfig b/configs/atmel_sama5d4_xplained_defconfig new file mode 100644 index 000000000..c0b606bc9 --- /dev/null +++ b/configs/atmel_sama5d4_xplained_defconfig @@ -0,0 +1,31 @@ +BR2_arm=y +BR2_cortex_a5=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_INSTRUCTIONS_THUMB2=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,linux4microchip,linux,linux4microchip-2021.10)/linux-linux4microchip-2021.10.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="sama5" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama5d4_xplained" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_UBIFS=y +BR2_TARGET_ROOTFS_UBIFS_LEBSIZE=0x3e000 +BR2_TARGET_ROOTFS_UBIFS_MINIOSIZE=0x1000 +BR2_TARGET_ROOTFS_UBIFS_MAXLEBCNT=2082 +BR2_TARGET_ROOTFS_UBI=y +BR2_TARGET_ROOTFS_UBI_PEBSIZE=0x40000 +BR2_TARGET_ROOTFS_UBI_SUBSIZE=0 +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,at91bootstrap,v4.0.1)/at91bootstrap3-v4.0.1.tar.gz" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama5d4_xplainednf_uboot_secure" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,u-boot-at91,linux4sam_6.2)/u-boot-at91-linux4sam_6.2.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sama5d4_xplained_nandflash" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_PACKAGE_HOST_SAM_BA=y diff --git a/configs/atmel_sama5d4_xplained_dev_defconfig b/configs/atmel_sama5d4_xplained_dev_defconfig new file mode 100644 index 000000000..fab91cf0b --- /dev/null +++ b/configs/atmel_sama5d4_xplained_dev_defconfig @@ -0,0 +1,103 @@ +# Architecture +BR2_arm=y +BR2_cortex_a5=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_INSTRUCTIONS_THUMB2=y + +# Toolchain +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +# Needed for some packages +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y +# Needed for gdb +BR2_PTHREAD_DEBUG=y +# Needed for some packages +BR2_TOOLCHAIN_BUILDROOT_CXX=y + +# System Configuration +# Needed for usb-utils +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,linux4microchip,linux,linux4microchip-2021.10)/linux-linux4microchip-2021.10.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="sama5" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama5d4_xplained" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Packages +BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y +BR2_PACKAGE_ALSA_UTILS=y +BR2_PACKAGE_ALSA_UTILS_ALSACONF=y +BR2_PACKAGE_ALSA_UTILS_APLAY=y +BR2_PACKAGE_FFMPEG=y +BR2_PACKAGE_FFMPEG_GPL=y +BR2_PACKAGE_FFMPEG_SWSCALE=y +BR2_PACKAGE_MPG123=y +BR2_PACKAGE_BZIP2=y +BR2_PACKAGE_GZIP=y +BR2_PACKAGE_UNZIP=y +BR2_PACKAGE_XZ=y +BR2_PACKAGE_ZIP=y +BR2_PACKAGE_GDB=y +BR2_PACKAGE_LMBENCH=y +BR2_PACKAGE_DOSFSTOOLS=y +BR2_PACKAGE_DOSFSTOOLS_FATLABEL=y +BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT=y +BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y +BR2_PACKAGE_MMC_UTILS=y +BR2_PACKAGE_MTD=y +BR2_PACKAGE_WILC1000_FIRMWARE=y +BR2_PACKAGE_WILC3000_FIRMWARE=y +BR2_PACKAGE_EVTEST=y +BR2_PACKAGE_I2C_TOOLS=y +BR2_PACKAGE_SETSERIAL=y +BR2_PACKAGE_SPI_TOOLS=y +BR2_PACKAGE_USBUTILS=y +BR2_PACKAGE_LIBDRM=y +BR2_PACKAGE_LIBDRM_INSTALL_TESTS=y +BR2_PACKAGE_DTC=y +BR2_PACKAGE_DTC_PROGRAMS=y +BR2_PACKAGE_BLUEZ5_UTILS=y +BR2_PACKAGE_BRIDGE_UTILS=y +BR2_PACKAGE_CAN_UTILS=y +BR2_PACKAGE_ETHTOOL=y +BR2_PACKAGE_IPERF=y +BR2_PACKAGE_IPROUTE2=y +BR2_PACKAGE_IPTABLES=y +BR2_PACKAGE_IW=y +BR2_PACKAGE_LRZSZ=y +BR2_PACKAGE_MII_DIAG=y +BR2_PACKAGE_OPENSSH=y +BR2_PACKAGE_WGET=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_BASH=y +BR2_PACKAGE_HTOP=y +BR2_PACKAGE_VIM=y + +# Filesystem +BR2_TARGET_ROOTFS_UBIFS=y +BR2_TARGET_ROOTFS_UBIFS_LEBSIZE=0x3e000 +BR2_TARGET_ROOTFS_UBIFS_MINIOSIZE=0x1000 +BR2_TARGET_ROOTFS_UBIFS_MAXLEBCNT=2082 +BR2_TARGET_ROOTFS_UBI=y +BR2_TARGET_ROOTFS_UBI_PEBSIZE=0x40000 +BR2_TARGET_ROOTFS_UBI_SUBSIZE=0 + +# Bootloaders +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,at91bootstrap,v4.0.1)/at91bootstrap3-v4.0.1.tar.gz" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama5d4_xplainednf_uboot_secure" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,u-boot-at91,linux4sam_6.2)/u-boot-at91-linux4sam_6.2.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sama5d4_xplained_nandflash" +BR2_TARGET_UBOOT_NEEDS_DTC=y + +# Host packages +BR2_PACKAGE_HOST_SAM_BA=y diff --git a/configs/atmel_sama5d4_xplained_mmc_defconfig b/configs/atmel_sama5d4_xplained_mmc_defconfig new file mode 100644 index 000000000..ff0107320 --- /dev/null +++ b/configs/atmel_sama5d4_xplained_mmc_defconfig @@ -0,0 +1,30 @@ +BR2_arm=y +BR2_cortex_a5=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_INSTRUCTIONS_THUMB2=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/atmel/sama5d4_xplained_mmc/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,linux4microchip,linux,linux4microchip-2021.10)/linux-linux4microchip-2021.10.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="sama5" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama5d4_xplained" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,at91bootstrap,v4.0.1)/at91bootstrap3-v4.0.1.tar.gz" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama5d4_xplainedsd_uboot_secure" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,u-boot-at91,linux4sam_6.2)/u-boot-at91-linux4sam_6.2.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sama5d4_xplained_mmc" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/atmel_sama5d4_xplained_mmc_dev_defconfig b/configs/atmel_sama5d4_xplained_mmc_dev_defconfig new file mode 100644 index 000000000..f9074e986 --- /dev/null +++ b/configs/atmel_sama5d4_xplained_mmc_dev_defconfig @@ -0,0 +1,105 @@ +# Architecture +BR2_arm=y +BR2_cortex_a5=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_INSTRUCTIONS_THUMB2=y + +# Toolchain +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +# Needed for some packages +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y +# Needed for gdb +BR2_PTHREAD_DEBUG=y +# Needed for some packages +BR2_TOOLCHAIN_BUILDROOT_CXX=y + +# System Configuration +# Needed for usb-utils +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y +# Creation of the SD card image +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/atmel/sama5d4_xplained_mmc/genimage.cfg" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,linux4microchip,linux,linux4microchip-2021.10)/linux-linux4microchip-2021.10.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="sama5" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama5d4_xplained" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Packages +BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y +BR2_PACKAGE_ALSA_UTILS=y +BR2_PACKAGE_ALSA_UTILS_ALSACONF=y +BR2_PACKAGE_ALSA_UTILS_APLAY=y +BR2_PACKAGE_FFMPEG=y +BR2_PACKAGE_FFMPEG_GPL=y +BR2_PACKAGE_FFMPEG_SWSCALE=y +BR2_PACKAGE_MPG123=y +BR2_PACKAGE_BZIP2=y +BR2_PACKAGE_GZIP=y +BR2_PACKAGE_UNZIP=y +BR2_PACKAGE_XZ=y +BR2_PACKAGE_ZIP=y +BR2_PACKAGE_GDB=y +BR2_PACKAGE_LMBENCH=y +BR2_PACKAGE_DOSFSTOOLS=y +BR2_PACKAGE_DOSFSTOOLS_FATLABEL=y +BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT=y +BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y +BR2_PACKAGE_MMC_UTILS=y +BR2_PACKAGE_MTD=y +BR2_PACKAGE_WILC1000_FIRMWARE=y +BR2_PACKAGE_WILC3000_FIRMWARE=y +BR2_PACKAGE_EVTEST=y +BR2_PACKAGE_I2C_TOOLS=y +BR2_PACKAGE_SETSERIAL=y +BR2_PACKAGE_SPI_TOOLS=y +BR2_PACKAGE_USBUTILS=y +BR2_PACKAGE_LIBDRM=y +BR2_PACKAGE_LIBDRM_INSTALL_TESTS=y +BR2_PACKAGE_DTC=y +BR2_PACKAGE_DTC_PROGRAMS=y +BR2_PACKAGE_BLUEZ5_UTILS=y +BR2_PACKAGE_BRIDGE_UTILS=y +BR2_PACKAGE_CAN_UTILS=y +BR2_PACKAGE_ETHTOOL=y +BR2_PACKAGE_IPERF=y +BR2_PACKAGE_IPROUTE2=y +BR2_PACKAGE_IPTABLES=y +BR2_PACKAGE_IW=y +BR2_PACKAGE_LRZSZ=y +BR2_PACKAGE_MII_DIAG=y +BR2_PACKAGE_OPENSSH=y +BR2_PACKAGE_WGET=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_BASH=y +BR2_PACKAGE_HTOP=y +BR2_PACKAGE_VIM=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" + +# Bootloaders +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,at91bootstrap,v4.0.1)/at91bootstrap3-v4.0.1.tar.gz" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama5d4_xplainedsd_uboot_secure" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,u-boot-at91,linux4sam_6.2)/u-boot-at91-linux4sam_6.2.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sama5d4_xplained_mmc" +BR2_TARGET_UBOOT_NEEDS_DTC=y + +# Host packages +# Needed to generate the SD card image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/avenger96_defconfig b/configs/avenger96_defconfig new file mode 100644 index 000000000..d2c1b9013 --- /dev/null +++ b/configs/avenger96_defconfig @@ -0,0 +1,34 @@ +BR2_arm=y +BR2_cortex_a7=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_8=y +BR2_ROOTFS_OVERLAY="board/arrow/avenger96/overlay/" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/stmicroelectronics/common/stm32mp157/post-image.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.8.13" +BR2_LINUX_KERNEL_DEFCONFIG="multi_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="stm32mp157a-dhcor-avenger96" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE="v2.2" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="stm32mp1" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="STM32MP_SDMMC=1 AARCH32_SP=sp_min DTB_FILE_NAME=stm32mp157a-avenger96.dtb" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_DEBUG=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES="*.stm32" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_DTC=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2020.07" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="stm32mp15_trusted" +# BR2_TARGET_UBOOT_FORMAT_BIN is not set +BR2_TARGET_UBOOT_FORMAT_STM32=y +BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="DEVICE_TREE=stm32mp15xx-dhcor-avenger96" +BR2_PACKAGE_HOST_GENIMAGE=y diff --git a/configs/bananapi_m1_defconfig b/configs/bananapi_m1_defconfig new file mode 100644 index 000000000..23da36334 --- /dev/null +++ b/configs/bananapi_m1_defconfig @@ -0,0 +1,29 @@ +BR2_arm=y +BR2_cortex_a7=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_18=y +BR2_TARGET_GENERIC_ISSUE="Welcome to Bananapi M1" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/bananapi/bananapi-m1/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.18.12" +BR2_LINUX_KERNEL_DEFCONFIG="sunxi" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun7i-a20-bananapi" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.07" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="Bananapi" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin" +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/bananapi/bananapi-m1/boot.cmd" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/bananapi_m1_plus_defconfig b/configs/bananapi_m1_plus_defconfig new file mode 100644 index 000000000..271124f79 --- /dev/null +++ b/configs/bananapi_m1_plus_defconfig @@ -0,0 +1,45 @@ +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_FPU_NEON_VFPV4=y +BR2_GLOBAL_PATCH_DIR="board/sinovoip/m1-plus/patches" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_TARGET_GENERIC_HOSTNAME="bananapi" +BR2_TARGET_GENERIC_ISSUE="Welcome to Banana Pi!" +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" +BR2_ROOTFS_OVERLAY="board/sinovoip/m1-plus/rootfs_overlay" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/sinovoip/m1-plus/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/sinovoip/m1-plus/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.3" +BR2_LINUX_KERNEL_DEFCONFIG="sunxi" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/sinovoip/m1-plus/linux-wifi.fragment" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun7i-a20-bananapi-m1-plus" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XXX=y +BR2_PACKAGE_IW=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_WPA_SUPPLICANT_CLI=y +BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2019.10" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="bananapi_m1_plus" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/sinovoip/m1-plus/boot.cmd" diff --git a/configs/bananapi_m2_plus_defconfig b/configs/bananapi_m2_plus_defconfig new file mode 100644 index 000000000..77a403ce8 --- /dev/null +++ b/configs/bananapi_m2_plus_defconfig @@ -0,0 +1,30 @@ +BR2_arm=y +BR2_cortex_a7=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_0=y +BR2_TARGET_GENERIC_ISSUE="Welcome to Bananapi M2 Plus" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/sinovoip/m2-plus/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.0" +BR2_LINUX_KERNEL_DEFCONFIG="sunxi" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-h3-bananapi-m2-plus" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2019.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="Sinovoip_BPI_M2_Plus" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-sunxi-with-spl.bin" +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/sinovoip/m2-plus/boot.cmd" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/bananapi_m2_ultra_defconfig b/configs/bananapi_m2_ultra_defconfig new file mode 100644 index 000000000..2ec0e60e8 --- /dev/null +++ b/configs/bananapi_m2_ultra_defconfig @@ -0,0 +1,32 @@ +BR2_arm=y +BR2_cortex_a7=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_18=y +BR2_TARGET_GENERIC_ISSUE="Welcome to Bananapi M2 Ultra" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/bananapi/bananapi-m2-ultra/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.18.12" +BR2_LINUX_KERNEL_DEFCONFIG="sunxi" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-r40-bananapi-m2-ultra" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="bananapi_m2_berry" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-sunxi-with-spl.bin" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/bananapi/bananapi-m2-ultra/boot.cmd" diff --git a/configs/bananapi_m2_zero_defconfig b/configs/bananapi_m2_zero_defconfig new file mode 100644 index 000000000..e5c89fce4 --- /dev/null +++ b/configs/bananapi_m2_zero_defconfig @@ -0,0 +1,31 @@ +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_FPU_NEON_VFPV4=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_9=y +BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot for the Bananapi M2 Zero" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/bananapi/bananapi-m2-zero/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.9.11" +BR2_LINUX_KERNEL_DEFCONFIG="sunxi" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-h2-plus-bananapi-m2-zero" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="bananapi_m2_zero" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2020.10" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-sunxi-with-spl.bin" +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/bananapi/bananapi-m2-zero/boot.cmd" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/bananapi_m64_defconfig b/configs/bananapi_m64_defconfig new file mode 100644 index 000000000..b93332ed2 --- /dev/null +++ b/configs/bananapi_m64_defconfig @@ -0,0 +1,50 @@ +BR2_aarch64=y +BR2_cortex_a53=y +BR2_ARM_FPU_VFPV4=y + +# Linux headers same as kernel, a 5.0 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_0=y + +# Firmware +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://github.com/apritzel/arm-trusted-firmware.git" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="sun50iw1p1" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="aa75c8da415158a94b82a430b2b40000778e851f" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2019.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="bananapi_m64" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb" +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="spl/sunxi-spl.bin" +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/bananapi/bananapi-m64/boot.cmd" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.0" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun50i-a64-bananapi-m64" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_GENERIC_ISSUE="Welcome to Bananapi M64" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/bananapi/bananapi-m64/genimage.cfg" diff --git a/configs/bananapro_defconfig b/configs/bananapro_defconfig new file mode 100644 index 000000000..e18c83d59 --- /dev/null +++ b/configs/bananapro_defconfig @@ -0,0 +1,76 @@ +# Architecture +BR2_arm=y +BR2_cortex_a7=y +BR2_GLOBAL_PATCH_DIR="board/lemaker/bananapro/patches" +BR2_ARM_EABIHF=y +BR2_ARM_FPU_NEON_VFPV4=y + +# Linux headers same as kernel, a 5.4 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4=y + +# Toolchain +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y + +# System configuration +BR2_TARGET_GENERIC_HOSTNAME="bananapro" +BR2_TARGET_GENERIC_ISSUE="Welcome to Banana Pro!" +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" +BR2_ROOTFS_OVERLAY="board/lemaker/bananapro/rootfs_overlay" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/lemaker/bananapro/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/lemaker/bananapro/post-image.sh" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.7" +BR2_LINUX_KERNEL_USE_DEFCONFIG=y +BR2_LINUX_KERNEL_DEFCONFIG="sunxi" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/lemaker/bananapro/linux-wifi.fragment" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun7i-a20-bananapro" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Bootloaders +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.04" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="Bananapro" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_FORMAT_BIN=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin" + +# Wifi firmware for brcm43362 +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XXX=y + +# Audio +BR2_PACKAGE_ALSA_UTILS=y +# BR2_PACKAGE_ALSA_UTILS_ALSAMIXER is not set +BR2_PACKAGE_ALSA_UTILS_AMIXER=y +BR2_PACKAGE_ALSA_UTILS_APLAY=y + +# For automatic firmware loading +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y + +# Wireless packages +BR2_PACKAGE_IW=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_WPA_SUPPLICANT_CLI=y +BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y + +# Host tools +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y diff --git a/configs/beagleboardx15_defconfig b/configs/beagleboardx15_defconfig new file mode 100644 index 000000000..039a07b11 --- /dev/null +++ b/configs/beagleboardx15_defconfig @@ -0,0 +1,29 @@ +BR2_arm=y +BR2_cortex_a15=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_9=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/beagleboardx15/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.9" +BR2_LINUX_KERNEL_DEFCONFIG="omap2plus" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="am57xx-beagle-x15 am57xx-beagle-x15-revb1" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.11" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="am57xx_evm" +BR2_TARGET_UBOOT_NEEDS_DTC=y +# BR2_TARGET_UBOOT_FORMAT_BIN is not set +BR2_TARGET_UBOOT_FORMAT_IMG=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="spl/u-boot-spl.bin" +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="MLO" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/beaglebone_defconfig b/configs/beaglebone_defconfig new file mode 100644 index 000000000..06154d98b --- /dev/null +++ b/configs/beaglebone_defconfig @@ -0,0 +1,52 @@ +# Architecture +BR2_arm=y +BR2_cortex_a8=y +BR2_ARM_FPU_VFPV3=y + +# Patches +BR2_GLOBAL_PATCH_DIR="board/beaglebone/patches" + +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y + +# System +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y + +# Image +BR2_ROOTFS_POST_BUILD_SCRIPT="board/beaglebone/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/beaglebone/genimage.cfg" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,beagleboard,linux,5.10.30-ti-r3)/linux-5.10.30-ti-r3.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="omap2plus" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="am335x-evm am335x-bone am335x-boneblack am335x-bonegreen am335x-evmsk am335x-boneblue am335x-boneblack-wireless" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.04" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="am335x_evm" +BR2_TARGET_UBOOT_NEEDS_DTC=y +# BR2_TARGET_UBOOT_FORMAT_BIN is not set +BR2_TARGET_UBOOT_FORMAT_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="MLO" + +# Required tools to create the SD image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# Supporting host tools to build FIT image +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y diff --git a/configs/beaglebone_qt5_defconfig b/configs/beaglebone_qt5_defconfig new file mode 100644 index 000000000..ff03a05a8 --- /dev/null +++ b/configs/beaglebone_qt5_defconfig @@ -0,0 +1,46 @@ +BR2_arm=y +BR2_cortex_a8=y +BR2_GLOBAL_PATCH_DIR="board/beaglebone/patches" +BR2_TOOLCHAIN_BUILDROOT_GLIBC=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y +BR2_TOOLCHAIN_BUILDROOT_CXX=y +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y +BR2_ROOTFS_OVERLAY="board/beaglebone/rootfs_overlay" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/beaglebone/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/beaglebone/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,beagleboard,linux,4.19.79-ti-r30)/linux-4.19.79-ti-r30.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="omap2plus" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/beaglebone/linux-sgx.fragment" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="am335x-evm am335x-bone am335x-boneblack am335x-bonegreen am335x-evmsk am335x-boneblue am335x-boneblack-wireless" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_PACKAGE_FBV=y +BR2_PACKAGE_QT5=y +BR2_PACKAGE_QT5BASE_EXAMPLES=y +BR2_PACKAGE_QT5BASE_EGLFS=y +BR2_PACKAGE_QT5BASE_DEFAULT_QPA="eglfs" +BR2_PACKAGE_QT5QUICKCONTROLS=y +BR2_PACKAGE_TI_SGX_DEMOS=y +BR2_PACKAGE_TI_SGX_KM=y +BR2_PACKAGE_TI_SGX_UM=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="250M" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.04" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="am335x_evm" +BR2_TARGET_UBOOT_NEEDS_DTC=y +# BR2_TARGET_UBOOT_FORMAT_BIN is not set +BR2_TARGET_UBOOT_FORMAT_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="MLO" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y diff --git a/configs/beagleboneai_defconfig b/configs/beagleboneai_defconfig new file mode 100644 index 000000000..586a75317 --- /dev/null +++ b/configs/beagleboneai_defconfig @@ -0,0 +1,30 @@ +BR2_arm=y +BR2_cortex_a15=y +BR2_GLOBAL_PATCH_DIR="board/beagleboneai/patches" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_SYSTEM_DHCP="eth0" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/beagleboneai/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/beagleboneai/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.79" +BR2_LINUX_KERNEL_DEFCONFIG="omap2plus" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="am5729-beagleboneai" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.04" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="am57xx_evm" +BR2_TARGET_UBOOT_NEEDS_DTC=y +# BR2_TARGET_UBOOT_FORMAT_BIN is not set +BR2_TARGET_UBOOT_FORMAT_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="MLO" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/beaglev_defconfig b/configs/beaglev_defconfig new file mode 100644 index 000000000..79af8c2ec --- /dev/null +++ b/configs/beaglev_defconfig @@ -0,0 +1,41 @@ +BR2_riscv=y +BR2_riscv_custom=y +BR2_RISCV_ISA_CUSTOM_RVM=y +BR2_RISCV_ISA_CUSTOM_RVF=y +BR2_RISCV_ISA_CUSTOM_RVD=y +BR2_RISCV_ISA_CUSTOM_RVC=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_13=y +BR2_ROOTFS_POST_BUILD_SCRIPT="board/beaglev/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/beaglev/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +# tag buildroot-20210609 of the 5.13 branch (esmil_starlight) +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,starfive-tech,linux,83dba1f25dfc118cacec991c31a7a4cfa7405c89)/linux-83dba1f25dfc118cacec991c31a7a4cfa7405c89.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="starlight" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="starfive/jh7100-beaglev-starlight" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_BEAGLEV_DDRINIT=y +BR2_TARGET_BEAGLEV_SECONDBOOT=y +BR2_TARGET_OPENSBI=y +BR2_TARGET_OPENSBI_CUSTOM_TARBALL=y +# upstream opensbi master branch +BR2_TARGET_OPENSBI_CUSTOM_TARBALL_LOCATION="$(call github,riscv,opensbi,79f9b4220ffa7f74356054be25d450d7958bf16c)/opensbi-79f9b4220ffa7f74356054be25d450d7958bf16c.tar.gz" +BR2_TARGET_OPENSBI_PLAT="generic" +# BR2_TARGET_OPENSBI_INSTALL_DYNAMIC_IMG is not set +# BR2_TARGET_OPENSBI_INSTALL_JUMP_IMG is not set +BR2_TARGET_OPENSBI_UBOOT_PAYLOAD=y +BR2_TARGET_OPENSBI_FW_FDT_PATH=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +# HEAD of the starfive-tech:Fedora_VIC_7100_2021.04 branch +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,starfive-tech,u-boot,64ead5b83959da8eb87b6963843addf5942e6ed4)/uboot-64ead5b83959da8eb87b6963843addf5942e6ed4.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="starfive_vic7100_beagle_v_smode" +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_JH71XX_TOOLS=y diff --git a/configs/beelink_gs1_defconfig b/configs/beelink_gs1_defconfig new file mode 100644 index 000000000..d4682d6b7 --- /dev/null +++ b/configs/beelink_gs1_defconfig @@ -0,0 +1,45 @@ +# Architecture +BR2_aarch64=y +BR2_ARM_FPU_VFPV4=y +BR2_TARGET_GENERIC_ISSUE="Welcome to Beelink GS1" +# MDEV is required to autoload the ethernet driver module +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y +BR2_SYSTEM_DHCP="eth0" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/beelink/gs1/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/beelink/gs1/genimage.cfg" + +# Kernel Linux headers same as kernel, 5.15 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun50i-h6-beelink-gs1" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# Firmware +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE="v2.5" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="sun50i_h6" + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="beelink_gs1" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/broadcom_northstar_defconfig b/configs/broadcom_northstar_defconfig new file mode 100644 index 000000000..1008de168 --- /dev/null +++ b/configs/broadcom_northstar_defconfig @@ -0,0 +1,14 @@ +BR2_arm=y +BR2_cortex_a9=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/broadcom/northstar/post-image.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/broadcom/northstar/linux.config" +BR2_LINUX_KERNEL_APPENDED_ZIMAGE=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm4708-smartrg-sr400ac bcm47094-luxul-xwr-3150-v1" +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_ROOTFS_UBI=y +BR2_TARGET_ROOTFS_UBI_SUBSIZE=2048 +BR2_TARGET_ROOTFS_UBIFS_LEBSIZE=0x1f000 +BR2_PACKAGE_HOST_FIRMWARE_UTILS=y +BR2_PACKAGE_HOST_LZMA_ALONE=y diff --git a/configs/canaan_kd233_defconfig b/configs/canaan_kd233_defconfig new file mode 100644 index 000000000..3aa5dccf0 --- /dev/null +++ b/configs/canaan_kd233_defconfig @@ -0,0 +1,36 @@ +# Architecture +BR2_riscv=y +BR2_RISCV_64=y +BR2_riscv_custom=y +BR2_RISCV_ISA_CUSTOM_RVM=y +BR2_RISCV_ISA_CUSTOM_RVA=y +BR2_RISCV_ISA_CUSTOM_RVF=y +BR2_RISCV_ISA_CUSTOM_RVD=y +BR2_RISCV_ISA_CUSTOM_RVC=y +# BR2_RISCV_USE_MMU is not set +BR2_RISCV_ABI_LP64D=y + +# Binary format +BR2_BINFMT_FLAT=y +BR2_BINFMT_FLAT_ONE=y +# BR2_TARGET_ENABLE_ROOT_LOGIN is not set + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.19" +BR2_LINUX_KERNEL_DEFCONFIG="nommu_k210" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/canaan/kd233/linux-cpio.config" +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y +BR2_LINUX_KERNEL_IMAGE_NAME="loader.bin" + +# Packages +BR2_PACKAGE_HOST_PYTHON_KFLASH=y +BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config" +BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES="board/canaan/k210-soc/busybox-tiny.config" +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set + +# Filesystem +BR2_INIT_NONE=y +BR2_TARGET_ROOTFS_INITRAMFS=y +BR2_ROOTFS_OVERLAY="board/canaan/k210-soc/rootfs_overlay" diff --git a/configs/chromebook_elm_defconfig b/configs/chromebook_elm_defconfig new file mode 100644 index 000000000..827d92963 --- /dev/null +++ b/configs/chromebook_elm_defconfig @@ -0,0 +1,37 @@ +# Architecture +BR2_aarch64=y +BR2_cortex_a72_a53=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# Linux headers same as kernel (5.10 series) +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10" + +# Build Kernel with a Custom config. +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/chromebook/elm/linux.config" + +# DTS support +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="mediatek/mt8173-elm" + +# Package Firmware for WiFi chip. +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_SD8797=y + +# Scripts to generate final images. +BR2_ROOTFS_POST_BUILD_SCRIPT="board/chromebook/elm/sign.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/chromebook/mksd.sh" + +# Supporting host tools to build / sign FIT Image. +BR2_PACKAGE_HOST_PARTED=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y +BR2_PACKAGE_HOST_VBOOT_UTILS=y diff --git a/configs/chromebook_snow_defconfig b/configs/chromebook_snow_defconfig new file mode 100644 index 000000000..bcb94b716 --- /dev/null +++ b/configs/chromebook_snow_defconfig @@ -0,0 +1,23 @@ +BR2_arm=y +BR2_cortex_a15=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_15=y +BR2_TARGET_GENERIC_GETTY_PORT="tty1" +BR2_TARGET_GENERIC_GETTY_TERM="linux" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/chromebook/snow/sign.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/chromebook/mksd.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.15" +BR2_LINUX_KERNEL_PATCH="board/chromebook/snow/linux-4.15-dts-tpm.patch" +BR2_LINUX_KERNEL_DEFCONFIG="exynos" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/chromebook/snow/linux-4.15.fragment" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="exynos5250-snow" +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_SD8797=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_PACKAGE_HOST_PARTED=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y +BR2_PACKAGE_HOST_VBOOT_UTILS=y diff --git a/configs/ci20_defconfig b/configs/ci20_defconfig new file mode 100644 index 000000000..09eddc4e6 --- /dev/null +++ b/configs/ci20_defconfig @@ -0,0 +1,37 @@ +# architecture +BR2_mipsel=y +BR2_mips_xburst=y +# BR2_MIPS_SOFT_FLOAT is not set +BR2_KERNEL_HEADERS_AS_KERNEL=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4=y + +# system +BR2_TARGET_GENERIC_GETTY_PORT="ttyS4" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/ci20/genimage.cfg" + +# kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.58" +BR2_LINUX_KERNEL_DEFCONFIG="ci20" +BR2_LINUX_KERNEL_INSTALL_TARGET=y + +# u-boot +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2020.07" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="ci20_mmc" +BR2_TARGET_UBOOT_FORMAT_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="spl/u-boot-spl.bin" +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SOURCE="board/ci20/uboot-env.txt" +BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SIZE="32768" + +# host +BR2_PACKAGE_HOST_GENIMAGE=y diff --git a/configs/cubieboard2_defconfig b/configs/cubieboard2_defconfig new file mode 100644 index 000000000..18337fac7 --- /dev/null +++ b/configs/cubieboard2_defconfig @@ -0,0 +1,42 @@ +# Architecture +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_FPU_NEON_VFPV4=y + +# Linux headers same as kernel, a 5.15 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.11" +BR2_LINUX_KERNEL_DEFCONFIG="multi_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun7i-a20-cubieboard2" + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="Cubieboard2" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin" +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/cubietech/cubieboard2/boot.cmd" + +# System +BR2_TARGET_GENERIC_HOSTNAME="Cubieboard2" +BR2_TARGET_GENERIC_ISSUE="Welcome to Cubieboard2!" +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/cubietech/cubieboard2/post-image.sh" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/engicam_imx6qdl_icore_defconfig b/configs/engicam_imx6qdl_icore_defconfig new file mode 100644 index 000000000..d8a51c7ab --- /dev/null +++ b/configs/engicam_imx6qdl_icore_defconfig @@ -0,0 +1,43 @@ +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_FPU_VFPV3=y + +# Linux headers same as kernel, a 5.0 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_0=y + +# System +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc3" + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2019.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="imx6qdl_icore_mmc" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_FORMAT_DTB_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="SPL" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.0" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x10008000" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6dl-icore imx6q-icore imx6q-icore-ofcap10 imx6q-icore-ofcap12" + +# Filesystem +BR2_TARGET_GENERIC_ISSUE="Welcome to Engicam i.CoreM6 Quad/Dual/DualLite/Solo" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/engicam/icorem6/genimage.cfg" diff --git a/configs/engicam_imx6qdl_icore_qt5_defconfig b/configs/engicam_imx6qdl_icore_qt5_defconfig new file mode 100644 index 000000000..2d213e4ab --- /dev/null +++ b/configs/engicam_imx6qdl_icore_qt5_defconfig @@ -0,0 +1,81 @@ +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_FPU_VFPV3=y + +# Linux headers same as kernel, a 4.13 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_13=y + +# System +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc3" +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2017.07" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="imx6qdl_icore_mmc" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_FORMAT_DTB_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="SPL" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.13" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x10008000" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6dl-icore imx6q-icore imx6q-icore-ofcap10 imx6q-icore-ofcap12" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/engicam/icorem6/linux_qt5.fragment" + +# Filesystem +BR2_TARGET_GENERIC_ISSUE="Welcome to Engicam i.CoreM6 Quad/Dual/DualLite/Solo" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/engicam/icorem6/genimage.cfg" +BR2_ROOTFS_OVERLAY="board/engicam/icorem6/rootfs_overlay" + +# qt5 dependencies +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y +BR2_TOOLCHAIN_BUILDROOT_CXX=y + +# qt5 +BR2_PACKAGE_QT5=y +BR2_PACKAGE_QT5BASE_OPENGL_LIB=y +BR2_PACKAGE_QT5BASE_LINUXFB=y +BR2_PACKAGE_QT5BASE_FONTCONFIG=y +BR2_PACKAGE_QT5BASE_GIF=y +BR2_PACKAGE_QT5BASE_JPEG=y + +# mesa3d +BR2_PACKAGE_MESA3D=y +BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_ETNAVIV=y +BR2_PACKAGE_MESA3D_OPENGL_ES=y +BR2_PACKAGE_MESA3D_OPENGL_EGL=y + +# qt5 demo packages +BR2_PACKAGE_GLMARK2=y +BR2_PACKAGE_MESA3D_DEMOS=y +BR2_PACKAGE_KMSCUBE=y +BR2_PACKAGE_QT5CINEX=y +BR2_PACKAGE_QT5CINEX_HD=y + +# fonts +BR2_PACKAGE_BITSTREAM_VERA=y +BR2_PACKAGE_CANTARELL=y +BR2_PACKAGE_DEJAVU=y +BR2_PACKAGE_FONT_AWESOME=y +BR2_PACKAGE_GHOSTSCRIPT_FONTS=y +BR2_PACKAGE_INCONSOLATA=y +BR2_PACKAGE_LIBERATION=y diff --git a/configs/engicam_imx6qdl_icore_rqs_defconfig b/configs/engicam_imx6qdl_icore_rqs_defconfig new file mode 100644 index 000000000..45ed67be0 --- /dev/null +++ b/configs/engicam_imx6qdl_icore_rqs_defconfig @@ -0,0 +1,43 @@ +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_FPU_VFPV3=y + +# Linux headers same as kernel, a 5.0 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_0=y + +# System +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc3" + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2019.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="imx6qdl_icore_rqs" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_FORMAT_DTB_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="SPL" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.0" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x10008000" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6dl-icore-rqs imx6q-icore-rqs" + +# Filesystem +BR2_TARGET_GENERIC_ISSUE="Welcome to Engicam i.CoreM6 Quad/Dual/DualLite/Solo RQS Starter Kit" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/engicam/icorem6_rqs/genimage.cfg" diff --git a/configs/engicam_imx6ul_geam_defconfig b/configs/engicam_imx6ul_geam_defconfig new file mode 100644 index 000000000..aac8432ef --- /dev/null +++ b/configs/engicam_imx6ul_geam_defconfig @@ -0,0 +1,43 @@ +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_FPU_VFPV3=y + +# Linux headers same as kernel, a 4.11 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_11=y + +# System +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2017.07-rc1" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="imx6ul_geam_mmc" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_FORMAT_DTB_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="SPL" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.5" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x80008000" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6ul-geam-kit" + +# Filesystem +BR2_TARGET_GENERIC_ISSUE="Welcome to Engicam GEAM6UL Starter Kit" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/engicam/geam6ul/genimage.cfg" diff --git a/configs/engicam_imx6ul_isiot_defconfig b/configs/engicam_imx6ul_isiot_defconfig new file mode 100644 index 000000000..57a66dea3 --- /dev/null +++ b/configs/engicam_imx6ul_isiot_defconfig @@ -0,0 +1,43 @@ +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_FPU_VFPV3=y + +# Linux headers same as kernel, a 5.0 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_0=y + +# System +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2019.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="imx6ul_isiot_emmc" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_FORMAT_DTB_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="SPL" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.0" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x80008000" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6ul-isiot-emmc" + +# Filesystem +BR2_TARGET_GENERIC_ISSUE="Welcome to Engicam Is.IoT eMMC Starter Kit" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/engicam/isiot/genimage.cfg" diff --git a/configs/freescale_imx28evk_defconfig b/configs/freescale_imx28evk_defconfig new file mode 100644 index 000000000..bd5b007ed --- /dev/null +++ b/configs/freescale_imx28evk_defconfig @@ -0,0 +1,34 @@ +# architecture +BR2_arm=y +BR2_arm926t=y + +# Linux headers same as kernel, a 5.4 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4=y + +# system +BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0" + +# kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.42" +BR2_LINUX_KERNEL_DEFCONFIG="mxs" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx28-evk" + +# bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="mx28evk" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2020.04" +BR2_TARGET_UBOOT_FORMAT_SD=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# To generate SD Image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/mxs/post-image.sh" diff --git a/configs/freescale_imx6dlsabreauto_defconfig b/configs/freescale_imx6dlsabreauto_defconfig new file mode 100644 index 000000000..8fe10f627 --- /dev/null +++ b/configs/freescale_imx6dlsabreauto_defconfig @@ -0,0 +1,44 @@ +# architecture +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_FPU_VFPV3=y + +# patches +BR2_GLOBAL_PATCH_DIR="board/freescale/imx6sabre/patches" + +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y + +# system +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc3" + +# kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/linux-imx.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6dl-sabreauto" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# filesystem +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# required tools to create the microSD image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="mx6dlsabreauto" +BR2_TARGET_UBOOT_FORMAT_IMX=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/uboot-imx.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_TARGET_UBOOT_NEEDS_DTC=y diff --git a/configs/freescale_imx6dlsabresd_defconfig b/configs/freescale_imx6dlsabresd_defconfig new file mode 100644 index 000000000..74debbfd4 --- /dev/null +++ b/configs/freescale_imx6dlsabresd_defconfig @@ -0,0 +1,43 @@ +# architecture +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_FPU_VFPV3=y + +# patches +BR2_GLOBAL_PATCH_DIR="board/freescale/imx6sabre/patches" + +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y + +# system +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" + +# kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/linux-imx.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6dl-sabresd" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# filesystem +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh" +BR2_TARGET_ROOTFS_EXT2=y + +# required tools to create the microSD image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="mx6dlsabresd" +BR2_TARGET_UBOOT_FORMAT_IMX=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/uboot-imx.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_TARGET_UBOOT_NEEDS_DTC=y diff --git a/configs/freescale_imx6qsabreauto_defconfig b/configs/freescale_imx6qsabreauto_defconfig new file mode 100644 index 000000000..58b4a5f92 --- /dev/null +++ b/configs/freescale_imx6qsabreauto_defconfig @@ -0,0 +1,44 @@ +# architecture +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_FPU_VFPV3=y + +# patches +BR2_GLOBAL_PATCH_DIR="board/freescale/imx6sabre/patches" + +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y + +# system +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc3" + +# kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/linux-imx.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6q-sabreauto" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# filesystem +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# required tools to create the microSD image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="mx6qsabreauto" +BR2_TARGET_UBOOT_FORMAT_IMX=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/uboot-imx.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_TARGET_UBOOT_NEEDS_DTC=y diff --git a/configs/freescale_imx6qsabresd_defconfig b/configs/freescale_imx6qsabresd_defconfig new file mode 100644 index 000000000..f2ac993da --- /dev/null +++ b/configs/freescale_imx6qsabresd_defconfig @@ -0,0 +1,44 @@ +# architecture +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_FPU_VFPV3=y + +# patches +BR2_GLOBAL_PATCH_DIR="board/freescale/imx6sabre/patches" + +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y + +# system +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" + +# kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/linux-imx.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6q-sabresd" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# filesystem +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# required tools to create the microSD image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="mx6qsabresd" +BR2_TARGET_UBOOT_FORMAT_IMX=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/uboot-imx.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_TARGET_UBOOT_NEEDS_DTC=y diff --git a/configs/freescale_imx6sxsabresd_defconfig b/configs/freescale_imx6sxsabresd_defconfig new file mode 100644 index 000000000..9f48ef2da --- /dev/null +++ b/configs/freescale_imx6sxsabresd_defconfig @@ -0,0 +1,43 @@ +# architecture +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_FPU_VFPV3=y + +# patches +BR2_GLOBAL_PATCH_DIR="board/freescale/imx6sabre/patches" + +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y + +# system +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" + +# kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/linux-imx.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6sx-sdb" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# filesystem +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh" +BR2_TARGET_ROOTFS_EXT2=y + +# required tools to create the microSD image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="mx6sxsabresd" +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/uboot-imx.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_TARGET_UBOOT_FORMAT_IMX=y +BR2_TARGET_UBOOT_NEEDS_DTC=y diff --git a/configs/freescale_imx6ullevk_defconfig b/configs/freescale_imx6ullevk_defconfig new file mode 100644 index 000000000..4c5c3b252 --- /dev/null +++ b/configs/freescale_imx6ullevk_defconfig @@ -0,0 +1,25 @@ +BR2_arm=y +BR2_cortex_a7=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/linux-imx.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6ull-14x14-evk" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="mx6ull_14x14_evk" +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/uboot-imx.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_FORMAT_IMX=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/freescale_imx7dsabresd_defconfig b/configs/freescale_imx7dsabresd_defconfig new file mode 100644 index 000000000..5a9cff488 --- /dev/null +++ b/configs/freescale_imx7dsabresd_defconfig @@ -0,0 +1,38 @@ +# architecture +BR2_arm=y +BR2_cortex_a7=y + +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y + +# system +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/linux-imx.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx7d-sdb" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="mx7dsabresd" +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/uboot-imx.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_TARGET_UBOOT_FORMAT_IMX=y +BR2_TARGET_UBOOT_NEEDS_DTC=y + +# required tools to create the microSD image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh" diff --git a/configs/freescale_imx8mmevk_defconfig b/configs/freescale_imx8mmevk_defconfig new file mode 100644 index 000000000..ae82f2915 --- /dev/null +++ b/configs/freescale_imx8mmevk_defconfig @@ -0,0 +1,42 @@ +BR2_aarch64=y +BR2_ARM_FPU_VFPV3=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc1" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/imx8-bootloader-prepare.sh board/freescale/common/imx/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="${UBOOT_DIR}/arch/arm/dts/imx8mm-evk.dtb" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/linux-imx" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v8" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/imx8mm-evk freescale/imx8mm-evk-revb-qca-wifi" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_PACKAGE_FREESCALE_IMX=y +BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM=y +BR2_PACKAGE_FIRMWARE_IMX=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/imx-atf" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="imx8mm" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/uboot-imx" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="imx8mm_evk" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-nodtb.bin" +BR2_TARGET_UBOOT_SPL=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_IMX_MKIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y diff --git a/configs/freescale_imx8mnevk_defconfig b/configs/freescale_imx8mnevk_defconfig new file mode 100644 index 000000000..b24eb1566 --- /dev/null +++ b/configs/freescale_imx8mnevk_defconfig @@ -0,0 +1,43 @@ +BR2_aarch64=y +BR2_ARM_FPU_VFPV3=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc1" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/imx8-bootloader-prepare.sh board/freescale/common/imx/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="${UBOOT_DIR}/arch/arm/dts/imx8mn-ddr4-evk.dtb" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/linux-imx" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v8" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/imx8mn-ddr4-evk" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_PACKAGE_FREESCALE_IMX=y +BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN=y +BR2_PACKAGE_FIRMWARE_IMX=y +BR2_PACKAGE_FIRMWARE_IMX_DDR4=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/imx-atf" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="imx8mn" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/uboot-imx" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="imx8mn_ddr4_evk" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-nodtb.bin" +BR2_TARGET_UBOOT_SPL=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_IMX_MKIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y diff --git a/configs/freescale_imx8mpevk_defconfig b/configs/freescale_imx8mpevk_defconfig new file mode 100644 index 000000000..8d0e6e0f3 --- /dev/null +++ b/configs/freescale_imx8mpevk_defconfig @@ -0,0 +1,42 @@ +BR2_aarch64=y +BR2_ARM_FPU_VFPV3=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc1" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/imx8-bootloader-prepare.sh board/freescale/common/imx/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="${UBOOT_DIR}/arch/arm/dts/imx8mp-evk.dtb" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/linux-imx" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v8" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/imx8mp-evk" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_PACKAGE_FREESCALE_IMX=y +BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MP=y +BR2_PACKAGE_FIRMWARE_IMX=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/imx-atf" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="imx8mp" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/uboot-imx" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="imx8mp_evk" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-nodtb.bin" +BR2_TARGET_UBOOT_SPL=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_IMX_MKIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y diff --git a/configs/freescale_imx8mqevk_defconfig b/configs/freescale_imx8mqevk_defconfig new file mode 100644 index 000000000..7f5dd87b5 --- /dev/null +++ b/configs/freescale_imx8mqevk_defconfig @@ -0,0 +1,42 @@ +BR2_aarch64=y +BR2_ARM_FPU_VFPV3=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/imx8-bootloader-prepare.sh board/freescale/common/imx/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="${UBOOT_DIR}/arch/arm/dts/imx8mq-evk.dtb" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/linux-imx" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v8" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/imx8mq-evk" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_PACKAGE_FREESCALE_IMX=y +BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M=y +BR2_PACKAGE_FIRMWARE_IMX=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/imx-atf" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="imx8mq" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/uboot-imx" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="imx8mq_evk" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-nodtb.bin" +BR2_TARGET_UBOOT_SPL=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_IMX_MKIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y diff --git a/configs/freescale_imx8qmmek_defconfig b/configs/freescale_imx8qmmek_defconfig new file mode 100644 index 000000000..8a0e866ce --- /dev/null +++ b/configs/freescale_imx8qmmek_defconfig @@ -0,0 +1,40 @@ +BR2_aarch64=y +BR2_ARM_FPU_VFPV4=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/imx8-bootloader-prepare.sh board/freescale/common/imx/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="${UBOOT_DIR}/arch/arm/dts/fsl-imx8qm-mek.dtb" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/linux-imx" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v8" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/imx8qm-mek" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_PACKAGE_FREESCALE_IMX=y +BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8=y +BR2_PACKAGE_FIRMWARE_IMX=y +BR2_PACKAGE_IMX_SC_FIRMWARE=y +BR2_PACKAGE_IMX_SECO=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/imx-atf" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="imx8qm" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/uboot-imx" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="imx8qm_mek" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_IMX_MKIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y diff --git a/configs/freescale_imx8qxpmek_defconfig b/configs/freescale_imx8qxpmek_defconfig new file mode 100644 index 000000000..1ffbd123e --- /dev/null +++ b/configs/freescale_imx8qxpmek_defconfig @@ -0,0 +1,42 @@ +BR2_aarch64=y +BR2_cortex_a35=y +BR2_ARM_FPU_VFPV3=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyLP0" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/imx8-bootloader-prepare.sh board/freescale/common/imx/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="${UBOOT_DIR}/arch/arm/dts/fsl-imx8qxp-mek.dtb" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/linux-imx" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v8" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/imx8qxp-mek" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_PACKAGE_FREESCALE_IMX=y +BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X=y +BR2_PACKAGE_FIRMWARE_IMX=y +BR2_PACKAGE_IMX_SC_FIRMWARE=y +BR2_PACKAGE_IMX_SECO=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/imx-atf" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="imx8qx" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/uboot-imx" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="lf-5.10.y-1.0.0" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="imx8qxp_mek" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_IMX_MKIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y diff --git a/configs/freescale_p1025twr_defconfig b/configs/freescale_p1025twr_defconfig new file mode 100644 index 000000000..f476d9270 --- /dev/null +++ b/configs/freescale_p1025twr_defconfig @@ -0,0 +1,24 @@ +# Architecture +BR2_powerpc=y +BR2_powerpc_8548=y + +# Linux headers same as kernel, a 4.15 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_15=y + +# Serial port config +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.15.7" +BR2_LINUX_KERNEL_DEFCONFIG="mpc85xx_smp" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="fsl/p1025twr" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_ROOTFS_CPIO=y +BR2_TARGET_ROOTFS_CPIO_GZIP=y +BR2_TARGET_ROOTFS_CPIO_UIMAGE=y +# BR2_TARGET_ROOTFS_TAR is not set diff --git a/configs/freescale_t1040d4rdb_defconfig b/configs/freescale_t1040d4rdb_defconfig new file mode 100644 index 000000000..df44046ef --- /dev/null +++ b/configs/freescale_t1040d4rdb_defconfig @@ -0,0 +1,24 @@ +# Architecture +BR2_powerpc64=y +BR2_powerpc_e5500=y + +# Linux headers same as kernel, a 4.15 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_15=y + +# Serial port config +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.15.7" +BR2_LINUX_KERNEL_DEFCONFIG="corenet64_smp" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="fsl/t1040d4rdb" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_ROOTFS_CPIO=y +BR2_TARGET_ROOTFS_CPIO_GZIP=y +BR2_TARGET_ROOTFS_CPIO_UIMAGE=y +# BR2_TARGET_ROOTFS_TAR is not set diff --git a/configs/freescale_t2080_qds_rdb_defconfig b/configs/freescale_t2080_qds_rdb_defconfig new file mode 100644 index 000000000..3d03c32f7 --- /dev/null +++ b/configs/freescale_t2080_qds_rdb_defconfig @@ -0,0 +1,25 @@ +# Architecture +BR2_powerpc64=y +BR2_powerpc_e6500=y + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_17=y + +# Serial port config +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.17.14" +BR2_LINUX_KERNEL_DEFCONFIG="corenet64_smp" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="fsl/t2080qds fsl/t2080rdb" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_ROOTFS_CPIO=y +BR2_TARGET_ROOTFS_CPIO_GZIP=y +BR2_TARGET_ROOTFS_CPIO_UIMAGE=y +# BR2_TARGET_ROOTFS_TAR is not set + diff --git a/configs/friendlyarm_nanopc_t4_defconfig b/configs/friendlyarm_nanopc_t4_defconfig new file mode 100644 index 000000000..2f7c53904 --- /dev/null +++ b/configs/friendlyarm_nanopc_t4_defconfig @@ -0,0 +1,53 @@ +# Architecture +BR2_aarch64=y +BR2_cortex_a72_a53=y + +# Linux headers same as kernel, a 5.8 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_8=y + +# Firmware +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="11a0a46a899fcc3b1fdb214b382f3d7495d88eca" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="rk3399" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_ARM32_TOOLCHAIN=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES="" + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2020.07" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="nanopc-t4-rk3399" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31_ELF=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb" +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="idbloader.img" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.8.2" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="rockchip/rk3399-nanopc-t4" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_GENERIC_HOSTNAME="nanopc-t4" +BR2_TARGET_GENERIC_ISSUE="Welcome to NanoPC-T4" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/friendlyarm/nanopc-t4/genimage.cfg" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/friendlyarm/nanopc-t4/post-build.sh" diff --git a/configs/friendlyarm_nanopi_a64_defconfig b/configs/friendlyarm_nanopi_a64_defconfig new file mode 100644 index 000000000..4df22b2a2 --- /dev/null +++ b/configs/friendlyarm_nanopi_a64_defconfig @@ -0,0 +1,50 @@ +BR2_aarch64=y +BR2_cortex_a53=y +BR2_ARM_FPU_VFPV4=y + +# Linux headers same as kernel, a 5.0 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_0=y + +# Firmware +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://github.com/apritzel/arm-trusted-firmware.git" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="sun50iw1p1" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="aa75c8da415158a94b82a430b2b40000778e851f" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2019.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="nanopi_a64" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb" +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="spl/sunxi-spl.bin" +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/friendlyarm/nanopi-a64/boot.cmd" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.0" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun50i-a64-nanopi-a64" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_GENERIC_ISSUE="Welcome to FriendlyARM Nanopi A64" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/friendlyarm/nanopi-a64/genimage.cfg" diff --git a/configs/friendlyarm_nanopi_m1_defconfig b/configs/friendlyarm_nanopi_m1_defconfig new file mode 100644 index 000000000..18cfcb261 --- /dev/null +++ b/configs/friendlyarm_nanopi_m1_defconfig @@ -0,0 +1,45 @@ +# Architecture +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_FPU_VFPV4=y + +# Linux headers same as kernel, a 5.0 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_0=y + +# System configuration +BR2_TARGET_GENERIC_HOSTNAME="nanopi-m1" +BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot for the NanoPi M1" + +# Bootloaders +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2019.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="nanopi_m1" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-sunxi-with-spl.bin" +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/friendlyarm/nanopi-m1/boot.cmd" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.0" +BR2_LINUX_KERNEL_DEFCONFIG="sunxi" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-h3-nanopi-m1" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/friendlyarm/nanopi-m1/genimage.cfg" +# BR2_TARGET_ROOTFS_TAR is not set + +# Additional tools +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/friendlyarm_nanopi_m1_plus_defconfig b/configs/friendlyarm_nanopi_m1_plus_defconfig new file mode 100644 index 000000000..06adc54b1 --- /dev/null +++ b/configs/friendlyarm_nanopi_m1_plus_defconfig @@ -0,0 +1,45 @@ +# Architecture +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_FPU_VFPV4=y + +# Linux headers same as kernel, a 5.0 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_0=y + +# System configuration +BR2_TARGET_GENERIC_HOSTNAME="nanopi-m1-plus" +BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot for the NanoPi M1 Plus" + +# Bootloaders +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2019.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="nanopi_m1_plus" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-sunxi-with-spl.bin" +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/friendlyarm/nanopi-m1-plus/boot.cmd" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.0" +BR2_LINUX_KERNEL_DEFCONFIG="sunxi" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-h3-nanopi-m1-plus" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/friendlyarm/nanopi-m1-plus/genimage.cfg" +# BR2_TARGET_ROOTFS_TAR is not set + +# Additional tools +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/friendlyarm_nanopi_m4_defconfig b/configs/friendlyarm_nanopi_m4_defconfig new file mode 100644 index 000000000..9c3f58f20 --- /dev/null +++ b/configs/friendlyarm_nanopi_m4_defconfig @@ -0,0 +1,53 @@ +# Architecture +BR2_aarch64=y +BR2_cortex_a72_a53=y + +# Linux headers same as kernel, a 5.8 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_8=y + +# Firmware +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="11a0a46a899fcc3b1fdb214b382f3d7495d88eca" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="rk3399" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_ARM32_TOOLCHAIN=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES="" + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2020.07" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="nanopi-m4-rk3399" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31_ELF=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb" +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="idbloader.img" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.8.2" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="rockchip/rk3399-nanopi-m4" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_GENERIC_HOSTNAME="nanopi-m4" +BR2_TARGET_GENERIC_ISSUE="Welcome to NANOPI-M4" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/friendlyarm/nanopi-m4/genimage.cfg" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/friendlyarm/nanopi-m4/post-build.sh" diff --git a/configs/friendlyarm_nanopi_neo2_defconfig b/configs/friendlyarm_nanopi_neo2_defconfig new file mode 100644 index 000000000..9262737b8 --- /dev/null +++ b/configs/friendlyarm_nanopi_neo2_defconfig @@ -0,0 +1,50 @@ +BR2_aarch64=y +BR2_cortex_a53=y +BR2_ARM_FPU_VFPV4=y + +# Linux headers same as kernel, a 5.0 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_0=y + +# Firmware +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://github.com/apritzel/arm-trusted-firmware.git" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="sun50iw1p1" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="aa75c8da415158a94b82a430b2b40000778e851f" +R2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2019.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="nanopi_neo2" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb" +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="spl/sunxi-spl.bin" +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/friendlyarm/nanopi-neo2/boot.cmd" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.0" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun50i-h5-nanopi-neo2" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_GENERIC_ISSUE="Welcome to FriendlyARM Nanopi NEO2" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/friendlyarm/nanopi-neo2/genimage.cfg" diff --git a/configs/friendlyarm_nanopi_neo4_defconfig b/configs/friendlyarm_nanopi_neo4_defconfig new file mode 100644 index 000000000..a11872ef2 --- /dev/null +++ b/configs/friendlyarm_nanopi_neo4_defconfig @@ -0,0 +1,55 @@ +# Architecture +BR2_aarch64=y +BR2_cortex_a72_a53=y + +# Linux headers same as kernel, a 5.4 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4=y + +# Firmware +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="11a0a46a899fcc3b1fdb214b382f3d7495d88eca" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="rk3399" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_ARM32_TOOLCHAIN=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES="" + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2020.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="nanopi-neo4-rk3399" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31_ELF=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb" +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="idbloader.img" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.18" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="rockchip/rk3399-nanopi-neo4" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_GENERIC_HOSTNAME="NanoPi Neo4" +BR2_TARGET_GENERIC_ISSUE="Welcome to NanoPi Neo4!" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="70M" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/friendlyarm/nanopi-neo4/genimage.cfg" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/friendlyarm/nanopi-neo4/post-build.sh" diff --git a/configs/friendlyarm_nanopi_neo_plus2_defconfig b/configs/friendlyarm_nanopi_neo_plus2_defconfig new file mode 100644 index 000000000..461e468cb --- /dev/null +++ b/configs/friendlyarm_nanopi_neo_plus2_defconfig @@ -0,0 +1,62 @@ +BR2_aarch64=y +BR2_cortex_a53=y +BR2_ARM_FPU_VFPV4=y + +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_3=y +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y +BR2_ROOTFS_OVERLAY="board/friendlyarm/nanopi-neo-plus2/rootfs_overlay" + +# Firmware +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://github.com/apritzel/arm-trusted-firmware.git" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="sun50iw1p1" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="aa75c8da415158a94b82a430b2b40000778e851f" +R2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2019.10" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="nanopi_neo_plus2" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb" +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="spl/sunxi-spl.bin" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.3.4" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun50i-h5-nanopi-neo-plus2" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/friendlyarm/nanopi-neo-plus2/linux-extras.config" + +# Filesystem +BR2_TARGET_GENERIC_ISSUE="Welcome to FriendlyARM Nanopi NEO Plus2" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/friendlyarm/nanopi-neo-plus2/genimage.cfg" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/friendlyarm/nanopi-neo-plus2/post-build.sh" + +# wireless firmware +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XXX=y + +# wireless tools +BR2_PACKAGE_IW=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WIRELESS_TOOLS_LIB=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_WPA_SUPPLICANT_NL80211=y +BR2_PACKAGE_WPA_SUPPLICANT_CLI=y diff --git a/configs/friendlyarm_nanopi_r1_defconfig b/configs/friendlyarm_nanopi_r1_defconfig new file mode 100644 index 000000000..8b03f6dd0 --- /dev/null +++ b/configs/friendlyarm_nanopi_r1_defconfig @@ -0,0 +1,49 @@ +# Architecture +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_FPU_VFPV4=y + +# Linux headers same as kernel, a 5.0 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_0=y + +# System configuration +BR2_TARGET_GENERIC_HOSTNAME="nanopi-r1" +BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot for the NanoPi R1" + +# Bootloaders +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2019.01" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_CUSTOM_DTS_PATH="board/friendlyarm/nanopi-r1/uboot/sun8i-h3-nanopi-r1.dts" +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-sunxi-with-spl.bin" +BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG=y +BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE="board/friendlyarm/nanopi-r1/uboot/nanopi_r1_defconfig" +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/friendlyarm/nanopi-r1/boot.cmd" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.0" +BR2_LINUX_KERNEL_DEFCONFIG="sunxi" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/friendlyarm/nanopi-r1/kernel/linux-extras.config" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="board/friendlyarm/nanopi-r1/kernel/sun8i-h3-nanopi-r1.dts" +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-h3-nanopi-r1" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/friendlyarm/nanopi-r1/genimage.cfg" +# BR2_TARGET_ROOTFS_TAR is not set + +# Additional tools +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/friendlyarm_nanopi_r2s_defconfig b/configs/friendlyarm_nanopi_r2s_defconfig new file mode 100644 index 000000000..ce252a5d7 --- /dev/null +++ b/configs/friendlyarm_nanopi_r2s_defconfig @@ -0,0 +1,41 @@ +BR2_aarch64=y +BR2_cortex_a53=y +BR2_ARM_FPU_VFPV4=y +BR2_TARGET_GENERIC_HOSTNAME="rk3328-nanopi-r2s" +BR2_TARGET_GENERIC_ISSUE="Welcome to Nanopi R2S RK3328" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/friendlyarm/nanopi-r2s/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/friendlyarm/nanopi-r2s/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.16" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="rockchip/rk3328-nanopi-r2s" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE="v2.5" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="rk3328" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES="" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_ARM32_TOOLCHAIN=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="nanopi-r2s-rk3328" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31_ELF=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb" +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="idbloader.img" +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y diff --git a/configs/galileo_defconfig b/configs/galileo_defconfig new file mode 100644 index 000000000..312162b7a --- /dev/null +++ b/configs/galileo_defconfig @@ -0,0 +1,25 @@ +BR2_x86_x1000=y +BR2_GLOBAL_PATCH_DIR="board/intel/galileo/patches" +# Needed for TARGET_GRUB2 +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y +# Linux headers same as kernel, a 3.14 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_14=y +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS1" +BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200=y +BR2_ROOTFS_OVERLAY="board/intel/galileo/rootfs_overlay" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/intel/galileo/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/intel/galileo/post-image.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,mdr78,Linux-x1000,8b3c9d8ce1656a26b1097d9091d53bfb39fef640)/linux-8b3c9d8ce1656a26b1097d9091d53bfb39fef640.tar.gz" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/intel/galileo/linux-3.14.config" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_GRUB2=y +BR2_TARGET_GRUB2_I386_EFI=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/globalscale_espressobin_defconfig b/configs/globalscale_espressobin_defconfig new file mode 100644 index 000000000..8d44b25ae --- /dev/null +++ b/configs/globalscale_espressobin_defconfig @@ -0,0 +1,27 @@ +BR2_aarch64=y +BR2_cortex_a53=y +BR2_ARM_FPU_VFPV4=y + +# Linux headers same as kernel, a 5.15 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.1" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/globalscale/espressobin/linux-extras.config" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="marvell/armada-3720-espressobin marvell/armada-3720-espressobin-emmc marvell/armada-3720-espressobin-v7 marvell/armada-3720-espressobin-v7-emmc marvell/armada-3720-espressobin-ultra" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot for the Marvell ESPRESSObin" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +BR2_TARGET_ROOTFS_TAR_GZIP=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/globalscale/espressobin/genimage.cfg" diff --git a/configs/grinn_chiliboard_defconfig b/configs/grinn_chiliboard_defconfig new file mode 100644 index 000000000..80f3077b7 --- /dev/null +++ b/configs/grinn_chiliboard_defconfig @@ -0,0 +1,28 @@ +BR2_arm=y +BR2_cortex_a8=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_14=y +BR2_SYSTEM_DHCP="eth0" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/grinn/chiliboard/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.14.14" +BR2_LINUX_KERNEL_DEFCONFIG="omap2plus" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="am335x-chiliboard" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2020.10" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="chiliboard" +BR2_TARGET_UBOOT_FORMAT_IMG=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="spl/u-boot-spl.bin" +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="MLO" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/grinn_liteboard_defconfig b/configs/grinn_liteboard_defconfig new file mode 100644 index 000000000..9cad66e15 --- /dev/null +++ b/configs/grinn_liteboard_defconfig @@ -0,0 +1,27 @@ +BR2_arm=y +BR2_cortex_a7=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_14=y +BR2_SYSTEM_DHCP="eth0" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/grinn/liteboard/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.14.14" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6ul-liteboard" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="liteboard" +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_FORMAT_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="SPL" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/hifive_unleashed_defconfig b/configs/hifive_unleashed_defconfig new file mode 100644 index 000000000..0b87f2588 --- /dev/null +++ b/configs/hifive_unleashed_defconfig @@ -0,0 +1,55 @@ +# Architecture +BR2_riscv=y +BR2_riscv_custom=y +BR2_RISCV_ISA_CUSTOM_RVM=y +BR2_RISCV_ISA_CUSTOM_RVF=y +BR2_RISCV_ISA_CUSTOM_RVD=y +BR2_RISCV_ISA_CUSTOM_RVC=y +BR2_RISCV_64=y +BR2_RISCV_ABI_LP64D=y + +# System +BR2_SYSTEM_DHCP="eth0" +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttySIF0" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/sifive/hifive-unleashed/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/sifive/hifive-unleashed/genimage_sdcard.cfg" + +# Filesystem +BR2_TARGET_ROOTFS_CPIO=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/sifive/hifive-unleashed/linux.config.fragment" +BR2_LINUX_KERNEL_IMAGE=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sifive/hifive-unleashed-a00" +BR2_LINUX_KERNEL_INSTALL_TARGET=y + +# Bootloader +BR2_TARGET_OPENSBI=y +BR2_TARGET_OPENSBI_PLAT="generic" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.01" +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sifive_fu540" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_OPENSBI=y +BR2_TARGET_UBOOT_FORMAT_ITB=y +BR2_TARGET_UBOOT_SPL=y + +# Host tools +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/sifive/hifive-unleashed/boot.cmd" diff --git a/configs/imx23evk_defconfig b/configs/imx23evk_defconfig new file mode 100644 index 000000000..94d159cf9 --- /dev/null +++ b/configs/imx23evk_defconfig @@ -0,0 +1,34 @@ +# architecture +BR2_arm=y +BR2_arm926t=y + +# Linux headers same as kernel, a 4.8 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_8=y + +# system +BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0" + +# kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.8.6" +BR2_LINUX_KERNEL_DEFCONFIG="mxs" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx23-evk" + +# bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="mx23evk" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_FORMAT_SD=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# To generate SD card image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/mxs/post-image.sh" diff --git a/configs/imx6-sabreauto_defconfig b/configs/imx6-sabreauto_defconfig new file mode 100644 index 000000000..24b3fd387 --- /dev/null +++ b/configs/imx6-sabreauto_defconfig @@ -0,0 +1,41 @@ +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_FPU_VFPV3=y + +# Linux headers same as kernel, a 5.15 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# System +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc3" + +# required tools to create the SD card image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# Filesystem +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="mx6sabreauto" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_NEEDS_LZOP=y +BR2_TARGET_UBOOT_FORMAT_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="SPL" +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.1" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6q-sabreauto imx6dl-sabreauto imx6qp-sabreauto" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y diff --git a/configs/imx6-sabresd_defconfig b/configs/imx6-sabresd_defconfig new file mode 100644 index 000000000..c237c2dc7 --- /dev/null +++ b/configs/imx6-sabresd_defconfig @@ -0,0 +1,40 @@ +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_FPU_VFPV3=y + +# Linux headers same as kernel, a 5.15 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# System +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" + +# required tools to create the SD card image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# Filesystem +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="mx6sabresd" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.04" +BR2_TARGET_UBOOT_FORMAT_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="SPL" +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.41" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6q-sabresd imx6dl-sabresd imx6qp-sabresd" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y diff --git a/configs/imx6-sabresd_qt5_defconfig b/configs/imx6-sabresd_qt5_defconfig new file mode 100644 index 000000000..d962ac689 --- /dev/null +++ b/configs/imx6-sabresd_qt5_defconfig @@ -0,0 +1,100 @@ +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_FPU_VFPV3=y + +# Linux headers same as kernel, a 5.15 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Additional features needed for packages +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y +BR2_TOOLCHAIN_BUILDROOT_CXX=y + +# System +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" + +# required tools to create the SD card image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# Filesystem +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="320M" +BR2_ROOTFS_OVERLAY="board/freescale/imx6-sabresd/rootfs_overlay" + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="mx6sabresd" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.04" +BR2_TARGET_UBOOT_FORMAT_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="SPL" +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.41" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6q-sabresd imx6dl-sabresd imx6qp-sabresd" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/freescale/imx6-sabresd/linux_qt5.fragment" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# GL driver +BR2_PACKAGE_MESA3D=y +BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_ETNAVIV=y +BR2_PACKAGE_MESA3D_OPENGL_ES=y +BR2_PACKAGE_MESA3D_OPENGL_EGL=y + +# Fonts +BR2_PACKAGE_BITSTREAM_VERA=y +BR2_PACKAGE_CANTARELL=y +BR2_PACKAGE_DEJAVU=y +BR2_PACKAGE_FONT_AWESOME=y +BR2_PACKAGE_GHOSTSCRIPT_FONTS=y +BR2_PACKAGE_INCONSOLATA=y +BR2_PACKAGE_LIBERATION=y + +# GL demos +BR2_PACKAGE_GLMARK2=y +BR2_PACKAGE_KMSCUBE=y +BR2_PACKAGE_LIBV4L=y +BR2_PACKAGE_LIBV4L_UTILS=y +BR2_PACKAGE_MESA3D_DEMOS=y + +# Qt5 +BR2_PACKAGE_QT5=y +BR2_PACKAGE_QT5BASE_OPENGL_LIB=y +BR2_PACKAGE_QT5BASE_LINUXFB=y +BR2_PACKAGE_QT5BASE_FONTCONFIG=y +BR2_PACKAGE_QT5BASE_GIF=y +BR2_PACKAGE_QT5BASE_JPEG=y +BR2_PACKAGE_QT5CINEX=y +BR2_PACKAGE_QT5CINEX_HD=y + +# NXP firmware package +BR2_PACKAGE_FREESCALE_IMX=y +BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q=y +BR2_PACKAGE_FIRMWARE_IMX=y + +# libdrm tests +BR2_PACKAGE_LIBDRM_INSTALL_TESTS=y + +# gstreamer-1.0 +BR2_PACKAGE_GSTREAMER1=y +BR2_PACKAGE_GST1_PLUGINS_GOOD=y +BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2=y +BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2_PROBE=y +BR2_PACKAGE_GST1_PLUGINS_BAD=y +BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOPARSERS=y +BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_KMS=y +BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOTESTSRC=y + +# For automatic kernel module loading +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y diff --git a/configs/imx6slevk_defconfig b/configs/imx6slevk_defconfig new file mode 100644 index 000000000..9448267e2 --- /dev/null +++ b/configs/imx6slevk_defconfig @@ -0,0 +1,27 @@ +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_FPU_VFPV3=y +# Linux headers same as kernel, a 5.15 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="mx6slevk" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_FORMAT_IMX=y +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.11" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6sl-evk" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh" +# required tools to create the SD card image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/imx6sx-sdb_defconfig b/configs/imx6sx-sdb_defconfig new file mode 100644 index 000000000..c36520a16 --- /dev/null +++ b/configs/imx6sx-sdb_defconfig @@ -0,0 +1,27 @@ +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_FPU_VFPV3=y +# Linux headers same as kernel, a 5.15 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="mx6sxsabresd" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_FORMAT_IMX=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.11" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6sx-sdb imx6sx-sdb-reva" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh" +# required tools to create the SD card image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/imx6ulevk_defconfig b/configs/imx6ulevk_defconfig new file mode 100644 index 000000000..22b5a4548 --- /dev/null +++ b/configs/imx6ulevk_defconfig @@ -0,0 +1,40 @@ +# architecture +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_FPU_NEON_VFPV4=y + +# Linux headers same as kernel, a 5.15 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# system +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" + +# kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.11" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6ul-14x14-evk" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="mx6ul_14x14_evk" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_FORMAT_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="SPL" +BR2_TARGET_UBOOT_NEEDS_DTC=y + +# required tools to create the SD card image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# filesystem / image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y diff --git a/configs/imx6ullevk_defconfig b/configs/imx6ullevk_defconfig new file mode 100644 index 000000000..c6e298169 --- /dev/null +++ b/configs/imx6ullevk_defconfig @@ -0,0 +1,38 @@ +# architecture +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_FPU_NEON_VFPV4=y + +# Linux headers same as kernel, a 5.14 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_14=y + +# system +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" + +# kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.14.14" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6ull-14x14-evk" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="mx6ull_14x14_evk" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_FORMAT_DTB_IMX=y +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y + +# required tools to create the SD card image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# filesystem / image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y diff --git a/configs/imx6ulpico_defconfig b/configs/imx6ulpico_defconfig new file mode 100644 index 000000000..e406d9938 --- /dev/null +++ b/configs/imx6ulpico_defconfig @@ -0,0 +1,55 @@ +# architecture +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_FPU_NEON_VFPV4=y + +# Linux headers same as kernel, a 5.15 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# system +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc5" + +# rootfs overlay +BR2_ROOTFS_OVERLAY="board/technexion/imx6ulpico/rootfs_overlay" + +# kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.11" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6ul-pico-pi imx6ul-pico-hobbit imx6ul-pico-dwarf" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_LINUX_KERNEL_INSTALL_TARGET=y + +# wifi firmware for brcm4339 +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XX=y + +# For automatic firmware loading +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y + +# wireless packages +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y + +# bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="SPL" +BR2_TARGET_UBOOT_BOARDNAME="pico-imx6ul" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_FORMAT_DTB_IMG=y + +# required tools to create the eMMC image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# filesystem / image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y diff --git a/configs/imx7d-sdb_defconfig b/configs/imx7d-sdb_defconfig new file mode 100644 index 000000000..8ee5e1fc4 --- /dev/null +++ b/configs/imx7d-sdb_defconfig @@ -0,0 +1,38 @@ +# architecture +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_FPU_NEON_VFPV4=y + +# Linux headers same as kernel, a 5.13 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_13=y + +# system +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.13" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx7d-sdb" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_LINUX_KERNEL_INSTALL_TARGET=y + +# U-Boot +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="mx7dsabresd" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.07" +BR2_TARGET_UBOOT_FORMAT_DTB_IMX=y + +# Filesystem +BR2_ROOTFS_OVERLAY="board/freescale/imx7dsdb/rootfs_overlay" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# required tools to create the eMMC image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/imx7dpico_defconfig b/configs/imx7dpico_defconfig new file mode 100644 index 000000000..c6ea04b68 --- /dev/null +++ b/configs/imx7dpico_defconfig @@ -0,0 +1,50 @@ +# architecture +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_FPU_NEON_VFPV4=y + +# Linux headers same as kernel, a 5.13 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_13=y + +# system +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc4" + +# kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.13" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx7d-pico-pi" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_LINUX_KERNEL_INSTALL_TARGET=y + +# bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="SPL" +BR2_TARGET_UBOOT_BOARDNAME="pico-pi-imx7d" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.07" +BR2_TARGET_UBOOT_FORMAT_DTB_IMG=y + +# wifi firmware for brcm43439 +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XX=y + +# For automatic firmware loading +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y + +# wireless packages +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y + +# required tools to create the eMMC image +BR2_PACKAGE_HOST_GENIMAGE=y + +# filesystem / image +BR2_ROOTFS_OVERLAY="board/technexion/imx7dpico/rootfs_overlay" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y diff --git a/configs/imx8mmpico_defconfig b/configs/imx8mmpico_defconfig new file mode 100644 index 000000000..7c19c8c81 --- /dev/null +++ b/configs/imx8mmpico_defconfig @@ -0,0 +1,39 @@ +BR2_aarch64=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/imx8-bootloader-prepare.sh board/freescale/common/imx/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="${UBOOT_DIR}/arch/arm/dts/imx8mm-pico-pi.dtb" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,TechNexion,linux-tn-imx,tn-hardknott_5.10.72-2.2.0_20220207)/linux-tn-im-tn-hardknott_5.10.72-2.2.0_20220207.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="tn_imx8" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/imx8mm-pico-pi freescale/imx8mm-pico-pi-ili9881c" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_PACKAGE_FREESCALE_IMX=y +BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM=y +BR2_PACKAGE_FIRMWARE_IMX=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/imx-atf" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="lf-5.10.72-2.2.0" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="imx8mm" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,TechNexion,u-boot-tn-imx,tn-hardknott_5.10.72-2.2.0_20220207)/u-boot-tn-imx-tn-hardknott_5.10.72-2.2.0_20220207.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="pico-imx8mm" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-nodtb.bin" +BR2_TARGET_UBOOT_SPL=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_IMX_MKIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y diff --git a/configs/imx8mpico_defconfig b/configs/imx8mpico_defconfig new file mode 100644 index 000000000..55746fb67 --- /dev/null +++ b/configs/imx8mpico_defconfig @@ -0,0 +1,39 @@ +BR2_aarch64=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/imx8-bootloader-prepare.sh board/freescale/common/imx/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="${UBOOT_DIR}/arch/arm/dts/imx8mq-pico-pi.dtb" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,TechNexion,linux-tn-imx,tn-hardknott_5.10.72-2.2.0_20220207)/linux-tn-im-tn-hardknott_5.10.72-2.2.0_20220207.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="tn_imx8" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/imx8mq-pico-pi freescale/imx8mq-pico-pi-dcss-ili9881c" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_PACKAGE_FREESCALE_IMX=y +BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M=y +BR2_PACKAGE_FIRMWARE_IMX=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/imx-atf" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="lf-5.10.72-2.2.0" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="imx8mq" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,TechNexion,u-boot-tn-imx,tn-hardknott_5.10.72-2.2.0_20220207)/u-boot-tn-imx-tn-hardknott_5.10.72-2.2.0_20220207.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="pico-imx8mq" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-nodtb.bin" +BR2_TARGET_UBOOT_SPL=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_IMX_MKIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y diff --git a/configs/imx8mqevk_defconfig b/configs/imx8mqevk_defconfig new file mode 100644 index 000000000..73f3f3dcc --- /dev/null +++ b/configs/imx8mqevk_defconfig @@ -0,0 +1,41 @@ +BR2_aarch64=y +BR2_ARM_FPU_VFPV3=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_8=y +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/imx8-bootloader-prepare.sh board/freescale/common/imx/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="${UBOOT_DIR}/arch/arm/dts/imx8mq-evk.dtb" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.8.7" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/imx8mq-evk" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_PACKAGE_FREESCALE_IMX=y +BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M=y +BR2_PACKAGE_FIRMWARE_IMX=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/imx-atf" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="rel_imx_5.4.24_2.1.0" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="imx8mq" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/uboot-imx" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="rel_imx_5.4.24_2.1.0" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="imx8mq_evk" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-nodtb.bin" +BR2_TARGET_UBOOT_SPL=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_IMX_MKIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y diff --git a/configs/kontron_bl_imx8mm_defconfig b/configs/kontron_bl_imx8mm_defconfig new file mode 100644 index 000000000..ff376662e --- /dev/null +++ b/configs/kontron_bl_imx8mm_defconfig @@ -0,0 +1,59 @@ +# Architecture +BR2_aarch64=y +BR2_cortex_a53=y +BR2_ARM_FPU_VFPV3=y + +# System +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc2" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.16" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/imx8mm-kontron-n801x-s" +BR2_LINUX_KERNEL_DTB_KEEP_DIRNAME=y +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_16=y + +BR2_PACKAGE_FREESCALE_IMX=y +BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM=y +BR2_PACKAGE_FIRMWARE_IMX=y + +# Filesystem / image +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" + +# Bootloader +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE="v2.6" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="imx8mm" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="IMX_BOOT_UART_BASE=0x30880000" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.04" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="kontron-sl-mx8mm" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_NEEDS_GNUTLS=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31_BIN=y +BR2_TARGET_UBOOT_NEEDS_IMX_FIRMWARE=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="flash.bin" +BR2_TARGET_UBOOT_SPL=y + +# Required host tools to create the SD/eMMC image +BR2_ROOTFS_POST_BUILD_SCRIPT="board/kontron/bl-imx8mm/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BINARIES_DIR)/genimage.cfg" +BR2_PACKAGE_HOST_GENIMAGE=y diff --git a/configs/kontron_pitx_imx8m_defconfig b/configs/kontron_pitx_imx8m_defconfig new file mode 100644 index 000000000..460f1a97e --- /dev/null +++ b/configs/kontron_pitx_imx8m_defconfig @@ -0,0 +1,61 @@ +# Architecture +BR2_aarch64=y + +# System +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc2" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/kontron/pitx-imx8m/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BINARIES_DIR)/genimage.cfg" +BR2_GLOBAL_PATCH_DIR="board/kontron/pitx-imx8m/patches" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.17.7" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/imx8mq-kontron-pitx-imx8m" +BR2_LINUX_KERNEL_DTB_KEEP_DIRNAME=y +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_17=y + +BR2_PACKAGE_FREESCALE_IMX=y +BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M=y +BR2_PACKAGE_FIRMWARE_IMX=y + +# Filesystem / image +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" + +# Bootloader +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE="v2.5" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="imx8mq" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.04" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="kontron_pitx_imx8m" +BR2_TARGET_UBOOT_NEEDS_GNUTLS=y +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31_BIN=y +BR2_TARGET_UBOOT_NEEDS_IMX_FIRMWARE=y +BR2_TARGET_UBOOT_NEEDS_UTIL_LINUX=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="flash.bin" +BR2_TARGET_UBOOT_SPL=y + +# Required host tools to create the SD/eMMC image +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_IMX_MKIMAGE=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y diff --git a/configs/kontron_smarc_sal28_defconfig b/configs/kontron_smarc_sal28_defconfig new file mode 100644 index 000000000..37e415cf3 --- /dev/null +++ b/configs/kontron_smarc_sal28_defconfig @@ -0,0 +1,35 @@ +BR2_aarch64=y +BR2_cortex_a72=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_16=y +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y +BR2_ROOTFS_OVERLAY="board/kontron/smarc-sal28/rootfs_overlay" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/kontron/smarc-sal28/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BINARIES_DIR)/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.16" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/fsl-ls1028a-kontron-sl28 freescale/fsl-ls1028a-kontron-sl28-var2 freescale/fsl-ls1028a-kontron-sl28-var3-ads2 freescale/fsl-ls1028a-kontron-sl28-var4 freescale/fsl-ls1028a-kontron-kbox-a-230-ls" +BR2_LINUX_KERNEL_DTB_KEEP_DIRNAME=y +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_PACKAGE_RCW_SMARC_SAL28=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="128M" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="kontron_sl28" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +# BR2_TARGET_UBOOT_FORMAT_BIN is not set +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.rom" +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y diff --git a/configs/lafrite_defconfig b/configs/lafrite_defconfig new file mode 100644 index 000000000..b3326f6b4 --- /dev/null +++ b/configs/lafrite_defconfig @@ -0,0 +1,21 @@ +BR2_aarch64=y +BR2_cortex_a53=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y +BR2_SYSTEM_DHCP="eth0" +BR2_ROOTFS_OVERLAY="board/librecomputer/lafrite/overlay/" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/librecomputer/lafrite/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.9" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="amlogic/meson-gxl-s805x-libretech-ac" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +# BR2_TARGET_ROOTFS_TAR is not set +BR2_PACKAGE_HOST_GENIMAGE=y diff --git a/configs/lego_ev3_defconfig b/configs/lego_ev3_defconfig new file mode 100644 index 000000000..555a63e36 --- /dev/null +++ b/configs/lego_ev3_defconfig @@ -0,0 +1,52 @@ +# architecture +BR2_arm=y +BR2_arm926t=y + +# Toolchain +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y + +# system +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS1" +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/lego/ev3/post-image.sh" +# Linux headers same as kernel, a 4.19 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19" +BR2_LINUX_KERNEL_DEFCONFIG="davinci_all" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/lego/ev3/linux.fragment" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0xc0008000" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="da850-lego-ev3" + +# Target packages +BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES="board/lego/ev3/busybox.fragment" +BR2_PACKAGE_BLUEZ5_UTILS=y +BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=y +BR2_PACKAGE_BRICKD=y +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_TI_CC2560=y + +# filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_SQUASHFS=y +BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y +# BR2_TARGET_ROOTFS_TAR is not set + +# U-Boot +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.07" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="legoev3" + +# host +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/licheepi_zero_defconfig b/configs/licheepi_zero_defconfig new file mode 100644 index 000000000..0d3115a99 --- /dev/null +++ b/configs/licheepi_zero_defconfig @@ -0,0 +1,53 @@ +# Target options +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_FPU_VFPV4=y + +# Toolchain +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_3=y + +# System configuration +BR2_TARGET_GENERIC_HOSTNAME="licheepi-zero" +BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot for the LicheePi Zero" +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" +BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/licheepi/genimage.cfg" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.3.5" +BR2_LINUX_KERNEL_DEFCONFIG="sunxi" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-v3s-licheepi-zero sun8i-v3s-licheepi-zero-dock" + +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y + +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_WPA_SUPPLICANT_AUTOSCAN=y + +# Filesystem images +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# Bootloaders +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="LicheePi_Zero" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-sunxi-with-spl.bin" +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/licheepi/boot.cmd" + +# Required host utilities for building an SDCard image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/linksprite_pcduino_defconfig b/configs/linksprite_pcduino_defconfig new file mode 100644 index 000000000..806c4f069 --- /dev/null +++ b/configs/linksprite_pcduino_defconfig @@ -0,0 +1,63 @@ +# Architecture +BR2_arm=y +BR2_cortex_a8=y + +# System settings +BR2_TARGET_GENERIC_HOSTNAME="pcduino" +BR2_TARGET_GENERIC_ISSUE="pcDuino buildroot is ready" + +# Serial port config +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" + +# SD image scripts +BR2_ROOTFS_POST_BUILD_SCRIPT="board/orangepi/common/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BINARIES_DIR)/genimage.cfg" + +# For kernel modules autoloading +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y + +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_16=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.16.1" +BR2_LINUX_KERNEL_DEFCONFIG="sunxi" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun4i-a10-pcduino" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/linksprite/pcduino/linux-extras.config" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_LINUX_KERNEL_INSTALL_TARGET=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# U-Boot +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="Linksprite_pcDuino" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin" + +# Host packages +BR2_PACKAGE_HOST_GENIMAGE=y + +# Target packages: wireless support for pcduino-lite-wifi +BR2_PACKAGE_IW=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WIRELESS_TOOLS_LIB=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_WPA_SUPPLICANT_NL80211=y +BR2_PACKAGE_WPA_SUPPLICANT_CLI=y +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y diff --git a/configs/mender_x86_64_efi_defconfig b/configs/mender_x86_64_efi_defconfig new file mode 100644 index 000000000..4ab4c7b03 --- /dev/null +++ b/configs/mender_x86_64_efi_defconfig @@ -0,0 +1,83 @@ +# Architecture +BR2_x86_64=y + +# Toolchain +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_17=y +# Required for eudev (to autoload drivers) +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y +# Required for sysvinit +BR2_TOOLCHAIN_BUILDROOT_USE_SSP=y + +# System +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y + +# Required as vda4 doesn't mount on first boot with busybox +BR2_INIT_SYSV=y + +# Required tools to create bootable media +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_MTOOLS=y + +# Bootloader +BR2_TARGET_GRUB2=y +BR2_TARGET_GRUB2_X86_64_EFI=y +# Add mandatory modules from MENDER_GRUBENV_MANDATORY_MODULES +BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI="boot linux ext2 fat squash4 part_msdos part_gpt normal efi_gop loadenv hashsum echo halt gcry_sha256 test regexp" +BR2_TARGET_GRUB2_INSTALL_TOOLS=y + +# Required tools to create a mender image +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MENDER_ARTIFACT=y + +# Filesystem / image +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="128M" +# BR2_TARGET_ROOTFS_TAR is not set +BR2_ROOTFS_OVERLAY="board/mender/x86_64/overlay" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/mender/x86_64/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/mender/x86_64/post-image-efi.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="--data-part-size=32M --device-type=buildroot-x86_64 --artifact-name=1.0" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.18.14" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/mender/x86_64/linux.config" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y + +# Firmware +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3168=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_5000=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2A=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2B=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7260=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7265D=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8000C=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8265=y +BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y +BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y + +# Packages +# +# Use connman so that networking setup is simpler, via connmanctl tool +# acpid is for seamless power button support +BR2_PACKAGE_ACPID=y +BR2_PACKAGE_CONNMAN=y +BR2_PACKAGE_CONNMAN_CLIENT=y +BR2_PACKAGE_CONNMAN_WIFI=y +BR2_PACKAGE_MENDER=y +BR2_PACKAGE_MENDER_GRUBENV=y +BR2_PACKAGE_MENDER_GRUBENV_DEFINES="board/mender/x86_64/mender_grubenv_defines" diff --git a/configs/microchip_sam9x60ek_mmc_defconfig b/configs/microchip_sam9x60ek_mmc_defconfig new file mode 100644 index 000000000..7a1a699d2 --- /dev/null +++ b/configs/microchip_sam9x60ek_mmc_defconfig @@ -0,0 +1,27 @@ +BR2_arm=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_TARGET_GENERIC_HOSTNAME="sam9x60ek" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/microchip/sam9x60ek_mmc/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,linux4microchip,linux,linux4microchip-2021.10)/linux-linux4microchip-2021.10.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="at91_dt" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sam9x60ek" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,at91bootstrap,v4.0.1)/at91bootstrap-v4.0.1.tar.gz" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sam9x60eksd_uboot" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,u-boot-at91,linux4sam-2020.04)/u-boot-at91-linux4sam-2020.04.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sam9x60ek_mmc" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/microchip_sam9x60ek_mmc_dev_defconfig b/configs/microchip_sam9x60ek_mmc_dev_defconfig new file mode 100644 index 000000000..2b4e23429 --- /dev/null +++ b/configs/microchip_sam9x60ek_mmc_dev_defconfig @@ -0,0 +1,83 @@ +BR2_arm=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y +BR2_PTHREAD_DEBUG=y +BR2_TOOLCHAIN_BUILDROOT_CXX=y +BR2_TARGET_GENERIC_HOSTNAME="sam9x60ek" +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/microchip/sam9x60ek_mmc/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,linux4microchip,linux,linux4microchip-2021.10)/linux-linux4microchip-2021.10.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="at91_dt" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sam9x60ek" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y +BR2_PACKAGE_ALSA_UTILS=y +BR2_PACKAGE_ALSA_UTILS_ALSACONF=y +BR2_PACKAGE_ALSA_UTILS_APLAY=y +BR2_PACKAGE_FFMPEG=y +BR2_PACKAGE_FFMPEG_GPL=y +BR2_PACKAGE_FFMPEG_SWSCALE=y +BR2_PACKAGE_MPG123=y +BR2_PACKAGE_BZIP2=y +BR2_PACKAGE_GZIP=y +BR2_PACKAGE_UNZIP=y +BR2_PACKAGE_XZ=y +BR2_PACKAGE_ZIP=y +BR2_PACKAGE_GDB=y +BR2_PACKAGE_LMBENCH=y +BR2_PACKAGE_DOSFSTOOLS=y +BR2_PACKAGE_DOSFSTOOLS_FATLABEL=y +BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT=y +BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y +BR2_PACKAGE_MMC_UTILS=y +BR2_PACKAGE_MTD=y +BR2_PACKAGE_WILC1000_FIRMWARE=y +BR2_PACKAGE_WILC3000_FIRMWARE=y +BR2_PACKAGE_EVTEST=y +BR2_PACKAGE_I2C_TOOLS=y +BR2_PACKAGE_SETSERIAL=y +BR2_PACKAGE_SPI_TOOLS=y +BR2_PACKAGE_USBUTILS=y +BR2_PACKAGE_LIBSYSFS=y +BR2_PACKAGE_LIBDRM=y +BR2_PACKAGE_LIBDRM_INSTALL_TESTS=y +BR2_PACKAGE_DTC=y +BR2_PACKAGE_DTC_PROGRAMS=y +BR2_PACKAGE_ARGP_STANDALONE=y +BR2_PACKAGE_BLUEZ5_UTILS=y +BR2_PACKAGE_BRIDGE_UTILS=y +BR2_PACKAGE_CAN_UTILS=y +BR2_PACKAGE_ETHTOOL=y +BR2_PACKAGE_IPERF=y +BR2_PACKAGE_IPROUTE2=y +BR2_PACKAGE_IPTABLES=y +BR2_PACKAGE_IW=y +BR2_PACKAGE_LRZSZ=y +BR2_PACKAGE_MII_DIAG=y +BR2_PACKAGE_OPENSSH=y +BR2_PACKAGE_WGET=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_BASH=y +BR2_PACKAGE_HTOP=y +BR2_PACKAGE_VIM=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,at91bootstrap,v4.0.1)/at91bootstrap-v4.0.1.tar.gz" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sam9x60eksd_uboot" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,u-boot-at91,linux4sam-2020.04)/u-boot-at91-linux4sam-2020.04.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sam9x60ek_mmc" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/microchip_sama5d27_wlsom1_ek_mmc_defconfig b/configs/microchip_sama5d27_wlsom1_ek_mmc_defconfig new file mode 100644 index 000000000..024e8a146 --- /dev/null +++ b/configs/microchip_sama5d27_wlsom1_ek_mmc_defconfig @@ -0,0 +1,30 @@ +BR2_arm=y +BR2_cortex_a5=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_INSTRUCTIONS_THUMB2=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/atmel/sama5d27_wlsom1_ek_mmc/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,linux4microchip,linux,linux4microchip-2021.10)/linux-linux4microchip-2021.10.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="sama5" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama5d27_wlsom1_ek" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,at91bootstrap,v4.0.1)/at91bootstrap-v4.0.1.tar.gz" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama5d27_wlsom1_eksd_uboot" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,u-boot-at91,linux4sam_6.2)/u-boot-at91-linux4sam_6.2.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sama5d27_wlsom1_ek_mmc" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/microchip_sama5d27_wlsom1_ek_mmc_dev_defconfig b/configs/microchip_sama5d27_wlsom1_ek_mmc_dev_defconfig new file mode 100644 index 000000000..f9aa6cdc0 --- /dev/null +++ b/configs/microchip_sama5d27_wlsom1_ek_mmc_dev_defconfig @@ -0,0 +1,86 @@ +BR2_arm=y +BR2_cortex_a5=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_INSTRUCTIONS_THUMB2=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y +BR2_PTHREAD_DEBUG=y +BR2_TOOLCHAIN_BUILDROOT_CXX=y +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/atmel/sama5d27_wlsom1_ek_mmc/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,linux4microchip,linux,linux4microchip-2021.10)/linux-linux4microchip-2021.10.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="sama5" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama5d27_wlsom1_ek" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y +BR2_PACKAGE_ALSA_UTILS=y +BR2_PACKAGE_ALSA_UTILS_ALSACONF=y +BR2_PACKAGE_ALSA_UTILS_APLAY=y +BR2_PACKAGE_FFMPEG=y +BR2_PACKAGE_FFMPEG_GPL=y +BR2_PACKAGE_FFMPEG_SWSCALE=y +BR2_PACKAGE_MPG123=y +BR2_PACKAGE_BZIP2=y +BR2_PACKAGE_GZIP=y +BR2_PACKAGE_UNZIP=y +BR2_PACKAGE_XZ=y +BR2_PACKAGE_ZIP=y +BR2_PACKAGE_GDB=y +BR2_PACKAGE_LMBENCH=y +BR2_PACKAGE_DOSFSTOOLS=y +BR2_PACKAGE_DOSFSTOOLS_FATLABEL=y +BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT=y +BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y +BR2_PACKAGE_MMC_UTILS=y +BR2_PACKAGE_MTD=y +BR2_PACKAGE_WILC1000_FIRMWARE=y +BR2_PACKAGE_WILC3000_FIRMWARE=y +BR2_PACKAGE_EVTEST=y +BR2_PACKAGE_I2C_TOOLS=y +BR2_PACKAGE_SETSERIAL=y +BR2_PACKAGE_SPI_TOOLS=y +BR2_PACKAGE_USBUTILS=y +BR2_PACKAGE_LIBSYSFS=y +BR2_PACKAGE_LIBDRM=y +BR2_PACKAGE_LIBDRM_INSTALL_TESTS=y +BR2_PACKAGE_DTC=y +BR2_PACKAGE_DTC_PROGRAMS=y +BR2_PACKAGE_ARGP_STANDALONE=y +BR2_PACKAGE_BLUEZ5_UTILS=y +BR2_PACKAGE_BRIDGE_UTILS=y +BR2_PACKAGE_CAN_UTILS=y +BR2_PACKAGE_ETHTOOL=y +BR2_PACKAGE_IPERF=y +BR2_PACKAGE_IPROUTE2=y +BR2_PACKAGE_IPTABLES=y +BR2_PACKAGE_IW=y +BR2_PACKAGE_LRZSZ=y +BR2_PACKAGE_MII_DIAG=y +BR2_PACKAGE_OPENSSH=y +BR2_PACKAGE_WGET=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_BASH=y +BR2_PACKAGE_HTOP=y +BR2_PACKAGE_VIM=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,at91bootstrap,v4.0.1)/at91bootstrap-v4.0.1.tar.gz" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama5d27_wlsom1_eksd_uboot" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,u-boot-at91,linux4sam_6.2)/u-boot-at91-linux4sam_6.2.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sama5d27_wlsom1_ek_mmc" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/microchip_sama5d2_icp_mmc_defconfig b/configs/microchip_sama5d2_icp_mmc_defconfig new file mode 100644 index 000000000..27ea4970f --- /dev/null +++ b/configs/microchip_sama5d2_icp_mmc_defconfig @@ -0,0 +1,31 @@ +BR2_arm=y +BR2_cortex_a5=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_INSTRUCTIONS_THUMB2=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/microchip/sama5d2_icp/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,linux4microchip,linux,linux4microchip-2021.10)/linux-linux4microchip-2021.10.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="sama5" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama5d2_icp" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,at91bootstrap,v4.0.1)/at91bootstrap-v4.0.1.tar.gz" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama5d2_icpsd_uboot" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,u-boot-at91,linux4sam-2020.10)/u-boot-at91-linux4sam-2020.10.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sama5d2_icp_mmc" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/microchip_sama5d2_icp_mmc_dev_defconfig b/configs/microchip_sama5d2_icp_mmc_dev_defconfig new file mode 100644 index 000000000..b1b22c131 --- /dev/null +++ b/configs/microchip_sama5d2_icp_mmc_dev_defconfig @@ -0,0 +1,75 @@ +BR2_arm=y +BR2_cortex_a5=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_INSTRUCTIONS_THUMB2=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y +BR2_PTHREAD_DEBUG=y +BR2_TOOLCHAIN_BUILDROOT_CXX=y +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/microchip/sama5d2_icp/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,linux4microchip,linux,linux4microchip-2021.10)/linux-linux4microchip-2021.10.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="sama5" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama5d2_icp" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_PACKAGE_LINUX_TOOLS_IIO=y +BR2_PACKAGE_BZIP2=y +BR2_PACKAGE_XZ=y +BR2_PACKAGE_ZIP=y +BR2_PACKAGE_GDB=y +BR2_PACKAGE_LMBENCH=y +BR2_PACKAGE_STRACE=y +BR2_PACKAGE_TREE=y +BR2_PACKAGE_DOSFSTOOLS=y +BR2_PACKAGE_DOSFSTOOLS_FATLABEL=y +BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT=y +BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y +BR2_PACKAGE_MMC_UTILS=y +BR2_PACKAGE_MTD=y +BR2_PACKAGE_WILC1000_FIRMWARE=y +BR2_PACKAGE_WILC3000_FIRMWARE=y +BR2_PACKAGE_EVTEST=y +BR2_PACKAGE_SETSERIAL=y +BR2_PACKAGE_SPI_TOOLS=y +BR2_PACKAGE_USBUTILS=y +BR2_PACKAGE_LIBSYSFS=y +BR2_PACKAGE_LIBDRM=y +BR2_PACKAGE_LIBDRM_INSTALL_TESTS=y +BR2_PACKAGE_DTC=y +BR2_PACKAGE_DTC_PROGRAMS=y +BR2_PACKAGE_ARGP_STANDALONE=y +BR2_PACKAGE_BLUEZ5_UTILS=y +BR2_PACKAGE_BRIDGE_UTILS=y +BR2_PACKAGE_CAN_UTILS=y +BR2_PACKAGE_ETHTOOL=y +BR2_PACKAGE_IPERF=y +BR2_PACKAGE_IPROUTE2=y +BR2_PACKAGE_IPTABLES=y +BR2_PACKAGE_IW=y +BR2_PACKAGE_LRZSZ=y +BR2_PACKAGE_MII_DIAG=y +BR2_PACKAGE_OPENSSH=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_HTOP=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,at91bootstrap,v4.0.1)/at91bootstrap-v4.0.1.tar.gz" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama5d2_icpsd_uboot" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,u-boot-at91,linux4sam-2020.10)/u-boot-at91-linux4sam-2020.10.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sama5d2_icp_mmc" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/microchip_sama7g5ek_mmc_defconfig b/configs/microchip_sama7g5ek_mmc_defconfig new file mode 100644 index 000000000..7ab81d1dd --- /dev/null +++ b/configs/microchip_sama7g5ek_mmc_defconfig @@ -0,0 +1,29 @@ +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_FPU_NEON_VFPV4=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/microchip/sama7g5ek/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.21" +BR2_LINUX_KERNEL_DEFCONFIG="sama7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama7g5ek" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,at91bootstrap,v4.0.1)/at91bootstrap-v4.0.1.tar.gz" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama7g5eksd_uboot" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,u-boot-at91,linux4sam-2021.04)/u-boot-at91-linux4sam-2021.04.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sama7g5ek_mmc1" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/microchip_sama7g5ek_mmc_dev_defconfig b/configs/microchip_sama7g5ek_mmc_dev_defconfig new file mode 100644 index 000000000..d68846e55 --- /dev/null +++ b/configs/microchip_sama7g5ek_mmc_dev_defconfig @@ -0,0 +1,75 @@ +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_FPU_NEON_VFPV4=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y +BR2_PTHREAD_DEBUG=y +BR2_TOOLCHAIN_BUILDROOT_CXX=y +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/microchip/sama7g5ek/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.21" +BR2_LINUX_KERNEL_DEFCONFIG="sama7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama7g5ek" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_PACKAGE_LINUX_TOOLS_IIO=y +BR2_PACKAGE_BZIP2=y +BR2_PACKAGE_XZ=y +BR2_PACKAGE_ZIP=y +BR2_PACKAGE_GDB=y +BR2_PACKAGE_LMBENCH=y +BR2_PACKAGE_STRACE=y +BR2_PACKAGE_TREE=y +BR2_PACKAGE_DOSFSTOOLS=y +BR2_PACKAGE_DOSFSTOOLS_FATLABEL=y +BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT=y +BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y +BR2_PACKAGE_MMC_UTILS=y +BR2_PACKAGE_MTD=y +BR2_PACKAGE_WILC1000_FIRMWARE=y +BR2_PACKAGE_WILC3000_FIRMWARE=y +BR2_PACKAGE_EVTEST=y +BR2_PACKAGE_RNG_TOOLS=y +# BR2_PACKAGE_RNG_TOOLS_JITTERENTROPY_LIBRARY is not set +BR2_PACKAGE_SETSERIAL=y +BR2_PACKAGE_SPI_TOOLS=y +BR2_PACKAGE_USBUTILS=y +BR2_PACKAGE_LIBSYSFS=y +BR2_PACKAGE_LIBDRM=y +BR2_PACKAGE_LIBDRM_INSTALL_TESTS=y +BR2_PACKAGE_DTC=y +BR2_PACKAGE_DTC_PROGRAMS=y +BR2_PACKAGE_ARGP_STANDALONE=y +BR2_PACKAGE_BLUEZ5_UTILS=y +BR2_PACKAGE_BRIDGE_UTILS=y +BR2_PACKAGE_CAN_UTILS=y +BR2_PACKAGE_ETHTOOL=y +BR2_PACKAGE_IPERF=y +BR2_PACKAGE_IPROUTE2=y +BR2_PACKAGE_IPTABLES=y +BR2_PACKAGE_IW=y +BR2_PACKAGE_LRZSZ=y +BR2_PACKAGE_MII_DIAG=y +BR2_PACKAGE_OPENSSH=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_HTOP=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,at91bootstrap,v4.0.1)/at91bootstrap-v4.0.1.tar.gz" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama7g5eksd_uboot" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,u-boot-at91,linux4sam-2021.04)/u-boot-at91-linux4sam-2021.04.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sama7g5ek_mmc1" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/minnowboard_max_defconfig b/configs/minnowboard_max_defconfig new file mode 100644 index 000000000..1270f2395 --- /dev/null +++ b/configs/minnowboard_max_defconfig @@ -0,0 +1,38 @@ +# Architecture +BR2_x86_64=y +BR2_x86_silvermont=y + +# Misc +BR2_SYSTEM_DHCP="eth0" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/minnowboard/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/minnowboard/genimage.cfg" + +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +# Needed for grub2 +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y + +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# Needed for ethernet +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169=y + +# Linux kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.11" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/minnowboard/linux.config" + +# Bootloader +BR2_TARGET_GRUB2=y +BR2_TARGET_GRUB2_X86_64_EFI=y + +# Filesystem image +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set diff --git a/configs/mx25pdk_defconfig b/configs/mx25pdk_defconfig new file mode 100644 index 000000000..ec4f8b828 --- /dev/null +++ b/configs/mx25pdk_defconfig @@ -0,0 +1,35 @@ +# Architecture +BR2_arm=y +BR2_arm926t=y + +# Linux headers same as kernel, a 4.15 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_15=y + +# System +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" + +# required tools to create the SD card image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# Filesystem +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="mx25pdk" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.01" +BR2_TARGET_UBOOT_FORMAT_IMX=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.15.7" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v4_v5" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx25-pdk" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y diff --git a/configs/mx51evk_defconfig b/configs/mx51evk_defconfig new file mode 100644 index 000000000..a4bebdec9 --- /dev/null +++ b/configs/mx51evk_defconfig @@ -0,0 +1,35 @@ +# Architecture +BR2_arm=y +BR2_cortex_a8=y + +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y + +# System +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" + +# required tools to create the SD card image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# Filesystem +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="mx51evk" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.01" +BR2_TARGET_UBOOT_FORMAT_IMX=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.9" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx51-babbage" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y diff --git a/configs/mx53loco_defconfig b/configs/mx53loco_defconfig new file mode 100644 index 000000000..18785aa0c --- /dev/null +++ b/configs/mx53loco_defconfig @@ -0,0 +1,35 @@ +# Architecture +BR2_arm=y +BR2_cortex_a8=y + +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y + +# System +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" + +# required tools to create the SD card image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# Filesystem +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="mx53loco" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.01" +BR2_TARGET_UBOOT_FORMAT_IMX=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.9" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx53-qsb imx53-qsrb" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y diff --git a/configs/mx6cubox_defconfig b/configs/mx6cubox_defconfig new file mode 100644 index 000000000..86f506ef0 --- /dev/null +++ b/configs/mx6cubox_defconfig @@ -0,0 +1,48 @@ +# Architecture +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_FPU_VFPV3=y + +# Toolchain +# Linux headers same as kernel, a 5.15 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# System configuration +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" +BR2_ROOTFS_OVERLAY="board/solidrun/mx6cubox/rootfs_overlay" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.53" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6dl-cubox-i imx6dl-cubox-i-emmc-som-v15 imx6dl-cubox-i-som-v15 imx6dl-hummingboard imx6dl-hummingboard-emmc-som-v15 imx6dl-hummingboard-som-v15 imx6q-cubox-i imx6q-cubox-i-emmc-som-v15 imx6q-cubox-i-som-v15 imx6q-hummingboard imx6q-hummingboard-emmc-som-v15 imx6q-hummingboard-som-v15" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem images +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# Bootloaders +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.07" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="mx6cuboxi" +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_FORMAT_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="SPL" +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y + +# required tools to create the SD card image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y diff --git a/configs/mx6sx_udoo_neo_defconfig b/configs/mx6sx_udoo_neo_defconfig new file mode 100644 index 000000000..793d992ce --- /dev/null +++ b/configs/mx6sx_udoo_neo_defconfig @@ -0,0 +1,34 @@ +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_FPU_VFPV3=y +# Linux headers same as kernel, a 5.15 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y +BR2_ROOTFS_POST_BUILD_SCRIPT="board/udoo/common/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="udoo_neo" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01" +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_FORMAT_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="SPL" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.13" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6sx-udoo-neo-basic imx6sx-udoo-neo-full imx6sx-udoo-neo-extended" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +# required tools to create the SD card image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/udoo/common/boot.scr.txt" diff --git a/configs/mx6udoo_defconfig b/configs/mx6udoo_defconfig new file mode 100644 index 000000000..5092ef0fd --- /dev/null +++ b/configs/mx6udoo_defconfig @@ -0,0 +1,35 @@ +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_FPU_VFPV3=y +BR2_GLOBAL_PATCH_DIR="board/udoo/mx6qdl/patches" +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc1" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/udoo/common/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="udoo" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2020.10" +BR2_TARGET_UBOOT_FORMAT_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="SPL" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.84" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6q-udoo imx6dl-udoo" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +# required tools to create the SD card image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/udoo/common/boot.scr.txt" diff --git a/configs/nexbox_a95x_defconfig b/configs/nexbox_a95x_defconfig new file mode 100644 index 000000000..69f8b9078 --- /dev/null +++ b/configs/nexbox_a95x_defconfig @@ -0,0 +1,21 @@ +BR2_aarch64=y +BR2_cortex_a53=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y +BR2_SYSTEM_DHCP="eth0" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/nexbox/a95x/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/nexbox/a95x/post-image.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.12" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="amlogic/meson-gxbb-nexbox-a95x amlogic/meson-gxl-s905x-nexbox-a95x" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y diff --git a/configs/nezha_defconfig b/configs/nezha_defconfig new file mode 100644 index 000000000..2d66d6cb4 --- /dev/null +++ b/configs/nezha_defconfig @@ -0,0 +1,36 @@ +BR2_riscv=y +BR2_GLOBAL_PATCH_DIR="board/nezha/patches" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_14=y +BR2_ROOTFS_OVERLAY="board/nezha/overlay" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/nezha/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,smaeul,linux,012f5a3d01be6d44e32c74bb3637ec281790b297)/linux-012f5a3d01be6d44e32c74bb3637ec281790b297.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="nezha" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun20i-d1-nezha" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_OPENSBI=y +BR2_TARGET_OPENSBI_CUSTOM_TARBALL=y +BR2_TARGET_OPENSBI_CUSTOM_TARBALL_LOCATION="$(call github,smaeul,opensbi,b9125c6f8909d1cc0417795737fc13cb6297ff11)/opensbi-b9125c6f8909d1cc0417795737fc13cb6297ff11.tar.gz" +BR2_TARGET_OPENSBI_PLAT="generic" +# BR2_TARGET_OPENSBI_INSTALL_JUMP_IMG is not set +BR2_TARGET_SUN20I_D1_SPL=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,smaeul,u-boot,62392d3b8a624a80646c1876533336f90140088d)/uboot-62392d3b8a624a80646c1876533336f90140088d.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="nezha" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_NEEDS_OPENSBI=y +# BR2_TARGET_UBOOT_FORMAT_BIN is not set +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.toc1" +BR2_PACKAGE_HOST_GENIMAGE=y diff --git a/configs/nitrogen6sx_defconfig b/configs/nitrogen6sx_defconfig new file mode 100644 index 000000000..3c2fe0cc7 --- /dev/null +++ b/configs/nitrogen6sx_defconfig @@ -0,0 +1,44 @@ +# architecture +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_FPU_VFPV3=y + +# system +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/boundarydevices/common/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/boundarydevices/common/post-image.sh" +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y + +# filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y + +# bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +# Latest revision of branch boundary-imx_v2020.10 +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/u-boot-imx6/archive/f2c92d83.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="nitrogen6sx" +BR2_TARGET_UBOOT_FORMAT_IMX=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/boundarydevices/common/boot.cmd" + +# kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +# Latest revision of branch boundary-imx_5.10.x_2.0.0 +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/linux-imx6/archive/950d5f1b.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="boundary" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6sx-nitrogen6sx imx6sx-nitrogen6sx-m4" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y diff --git a/configs/nitrogen6x_defconfig b/configs/nitrogen6x_defconfig new file mode 100644 index 000000000..9e1d3ae1b --- /dev/null +++ b/configs/nitrogen6x_defconfig @@ -0,0 +1,43 @@ +# architecture +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_FPU_VFPV3=y + +# system +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc1" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/boundarydevices/common/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/boundarydevices/common/post-image.sh" +BR2_PACKAGE_HOST_GENIMAGE=y + +# filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y + +# bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +# Latest revision of branch boundary-imx_v2020.10 +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/u-boot-imx6/archive/f2c92d83.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="nitrogen6q" +BR2_TARGET_UBOOT_FORMAT_IMX=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/boundarydevices/common/boot.cmd" + +# kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +# Latest revision of branch boundary-imx_5.10.x_2.0.0 +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/linux-imx6/archive/950d5f1b.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="boundary" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6dl-nit6xlite imx6dl-nitrogen6_vm imx6dl-nitrogen6x imx6q-nitrogen6x imx6dl-nitrogen6_som2 imx6q-nitrogen6_som2 imx6qp-nitrogen6_som2 imx6q-nitrogen6_max imx6qp-nitrogen6_max imx6q-sabrelite" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y diff --git a/configs/nitrogen7_defconfig b/configs/nitrogen7_defconfig new file mode 100644 index 000000000..0dbced86e --- /dev/null +++ b/configs/nitrogen7_defconfig @@ -0,0 +1,43 @@ +# architecture +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_FPU_NEON_VFPV4=y + +# system +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/boundarydevices/common/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/boundarydevices/common/post-image.sh" +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y + +# filesystem +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y + +# bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +# Latest revision of branch boundary-imx_v2020.10 +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/u-boot-imx6/archive/f2c92d83.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="nitrogen7" +BR2_TARGET_UBOOT_FORMAT_IMX=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/boundarydevices/common/boot.cmd" + +# kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +# Latest revision of branch boundary-imx_5.10.x_2.0.0 +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/linux-imx6/archive/950d5f1b.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="boundary" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx7d-nitrogen7 imx7d-nitrogen7-m4" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y diff --git a/configs/nitrogen8m_defconfig b/configs/nitrogen8m_defconfig new file mode 100644 index 000000000..a41e5f04d --- /dev/null +++ b/configs/nitrogen8m_defconfig @@ -0,0 +1,58 @@ +# Architecture +BR2_aarch64=y +BR2_cortex_a53=y + +# System +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/freescale/common/imx/imx8-bootloader-prepare.sh board/boundarydevices/common/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/boundarydevices/common/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="${UBOOT_DIR}/arch/arm/dts/imx8mq-nitrogen8m.dtb" +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_IMX_MKIMAGE=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y + +# DDR training binaries +BR2_PACKAGE_FREESCALE_IMX=y +BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M=y +BR2_PACKAGE_FIRMWARE_IMX=y + +# ARM Trusted Firmware +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL=y +# Latest revision of branch boundary-imx_5.4.70_2.3.0 +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/imx-atf/archive/9f6114fd.tar.gz" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="imx8mq" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="nitrogen8m" +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +# Latest revision of branch boundary-imx_v2020.10 +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/u-boot-imx6/archive/f2c92d83.tar.gz" +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-nodtb.bin" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_SPL=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +# Latest revision of branch boundary-imx_5.10.x_2.0.0 +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/linux-imx6/archive/950d5f1b.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="boundary" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/imx8mq-nitrogen8m freescale/imx8mq-nitrogen8m-m4 freescale/imx8mq-nitrogen8m_som freescale/imx8mq-nitrogen8m_som-m4" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y diff --git a/configs/nitrogen8mm_defconfig b/configs/nitrogen8mm_defconfig new file mode 100644 index 000000000..a635f8012 --- /dev/null +++ b/configs/nitrogen8mm_defconfig @@ -0,0 +1,58 @@ +# Architecture +BR2_aarch64=y +BR2_cortex_a53=y + +# System +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc1" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/freescale/common/imx/imx8-bootloader-prepare.sh board/boundarydevices/common/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/boundarydevices/common/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="${UBOOT_DIR}/arch/arm/dts/imx8mm-nitrogen8mm.dtb" +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_IMX_MKIMAGE=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y + +# DDR training binaries +BR2_PACKAGE_FREESCALE_IMX=y +BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM=y +BR2_PACKAGE_FIRMWARE_IMX=y + +# ARM Trusted Firmware +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL=y +# Latest revision of branch boundary-imx_5.4.70_2.3.0 +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/imx-atf/archive/9f6114fd.tar.gz" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="imx8mm" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="nitrogen8mm_2g" +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +# Latest revision of branch boundary-imx_v2020.10 +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/u-boot-imx6/archive/f2c92d83.tar.gz" +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-nodtb.bin" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_SPL=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +# Latest revision of branch boundary-imx_5.10.x_2.0.0 +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/linux-imx6/archive/950d5f1b.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="boundary" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/imx8mm-nitrogen8mm freescale/imx8mm-nitrogen8mm-m4 freescale/imx8mm-nitrogen8mm_rev2 freescale/imx8mm-nitrogen8mm_rev2-m4 freescale/imx8mm-nitrogen8mm_som freescale/imx8mm-nitrogen8mm_som-m4" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y diff --git a/configs/nitrogen8mn_defconfig b/configs/nitrogen8mn_defconfig new file mode 100644 index 000000000..5c2101441 --- /dev/null +++ b/configs/nitrogen8mn_defconfig @@ -0,0 +1,58 @@ +# Architecture +BR2_aarch64=y +BR2_cortex_a53=y + +# System +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc1" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/freescale/common/imx/imx8-bootloader-prepare.sh board/boundarydevices/common/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/boundarydevices/common/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="${UBOOT_DIR}/arch/arm/dts/imx8mn-nitrogen8_nano.dtb" +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_IMX_MKIMAGE=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y + +# DDR training binaries +BR2_PACKAGE_FREESCALE_IMX=y +BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN=y +BR2_PACKAGE_FIRMWARE_IMX=y + +# ARM Trusted Firmware +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL=y +# Latest revision of branch boundary-imx_5.4.70_2.3.0 +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/imx-atf/archive/9f6114fd.tar.gz" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="imx8mn" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="nitrogen8_nano_8mn1gr0" +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +# Latest revision of branch boundary-imx_v2020.10 +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/u-boot-imx6/archive/f2c92d83.tar.gz" +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-nodtb.bin" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_SPL=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +# Latest revision of branch boundary-imx_5.10.x_2.0.0 +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/linux-imx6/archive/950d5f1b.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="boundary" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/imx8mn-nitrogen8_nano freescale/imx8mn-nitrogen8mn freescale/imx8mn-nitrogen8mn_som" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y diff --git a/configs/nitrogen8mp_defconfig b/configs/nitrogen8mp_defconfig new file mode 100644 index 000000000..dc7427c85 --- /dev/null +++ b/configs/nitrogen8mp_defconfig @@ -0,0 +1,58 @@ +# Architecture +BR2_aarch64=y +BR2_cortex_a53=y + +# System +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc1" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/freescale/common/imx/imx8-bootloader-prepare.sh board/boundarydevices/common/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/boundarydevices/common/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="${UBOOT_DIR}/arch/arm/dts/imx8mp-nitrogen8mp.dtb" +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_IMX_MKIMAGE=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y + +# DDR training binaries +BR2_PACKAGE_FREESCALE_IMX=y +BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MP=y +BR2_PACKAGE_FIRMWARE_IMX=y + +# ARM Trusted Firmware +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL=y +# Latest revision of branch boundary-imx_5.4.70_2.3.0 +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/imx-atf/archive/9f6114fd.tar.gz" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="imx8mp" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="nitrogen8mp_2gr0" +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +# Latest revision of branch boundary-imx_v2020.10 +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/u-boot-imx6/archive/f2c92d83.tar.gz" +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-nodtb.bin" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_SPL=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +# Latest revision of branch boundary-imx_5.10.x_2.0.0 +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/linux-imx6/archive/950d5f1b.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="boundary" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/imx8mp-nitrogen8mp freescale/imx8mp-nitrogen8mp-m4 freescale/imx8mp-nitrogen8mp-enc freescale/imx8mp-nitrogen8mp-enc-tc358743" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y diff --git a/configs/octavo_osd32mp1_brk_defconfig b/configs/octavo_osd32mp1_brk_defconfig new file mode 100644 index 000000000..5f00c2ee5 --- /dev/null +++ b/configs/octavo_osd32mp1_brk_defconfig @@ -0,0 +1,60 @@ +# architecture +BR2_arm=y +BR2_cortex_a7=y + +# global patch directory +BR2_GLOBAL_PATCH_DIR="board/octavo/osd32mp1-brk/patches" + +# Linux headers same as kernel, a 5.4 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4=y + +# rootfs overlay +BR2_ROOTFS_OVERLAY="board/octavo/osd32mp1-brk/overlay/" + +# image generation +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/octavo/osd32mp1-brk/genimage.cfg" + +# Kernel, use CUSTOM_DTS_PATH associated with INTREE_DTS_NAME to build the right +# device-tree +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/STMicroelectronics/linux.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="v5.4-stm32mp-r1.1" +BR2_LINUX_KERNEL_DEFCONFIG="multi_v7" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(LINUX_DIR)/arch/arm/configs/fragment-01-multiv7_cleanup.config $(LINUX_DIR)/arch/arm/configs/fragment-02-multiv7_addons.config" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="stm32mp157c-osd32mp1-brk" +BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="board/octavo/osd32mp1-brk/linux-dts/*" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set + +# TF-A +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://github.com/STMicroelectronics/arm-trusted-firmware.git" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="v2.2-stm32mp-r2.2" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="stm32mp1" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_DTS_PATH="board/octavo/osd32mp1-brk/tfa-dts/*" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="STM32MP_SDMMC=1 AARCH32_SP=sp_min DTB_FILE_NAME=stm32mp157c-osd32mp1-brk.dtb STM32MP_USB_PROGRAMMER=1" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES="*.stm32" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_DTC=y + +# U-Boot +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/STMicroelectronics/u-boot.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="v2020.01-stm32mp-r1.1" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="osd32mp1_brk_trusted" +# BR2_TARGET_UBOOT_FORMAT_BIN is not set +BR2_TARGET_UBOOT_FORMAT_STM32=y +BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="DEVICE_TREE=stm32mp157c-osd32mp1-brk" + +# Package needed to generate the image +BR2_PACKAGE_HOST_GENIMAGE=y diff --git a/configs/octavo_osd32mp1_red_defconfig b/configs/octavo_osd32mp1_red_defconfig new file mode 100644 index 000000000..ee8dbcb76 --- /dev/null +++ b/configs/octavo_osd32mp1_red_defconfig @@ -0,0 +1,60 @@ +# architecture +BR2_arm=y +BR2_cortex_a7=y + +# global patch directory +BR2_GLOBAL_PATCH_DIR="board/octavo/osd32mp1-red/patches" + +# Linux headers same as kernel, a 4.19 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y + +# rootfs overlay +BR2_ROOTFS_OVERLAY="board/octavo/osd32mp1-red/overlay/" + +# image generation +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/octavo/osd32mp1-red/genimage.cfg" + +# Kernel, use CUSTOM_DTS_PATH associated with INTREE_DTS_NAME to build the right +# device-tree +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/STMicroelectronics/linux.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="v4.19-stm32mp-r3.3" +BR2_LINUX_KERNEL_DEFCONFIG="multi_v7" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(LINUX_DIR)/arch/arm/configs/fragment-01-multiv7_cleanup.config $(LINUX_DIR)/arch/arm/configs/fragment-02-multiv7_addons.config" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="osd32mp1-red" +BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="board/octavo/osd32mp1-red/linux-dts/*" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set + +# TF-A +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://github.com/STMicroelectronics/arm-trusted-firmware.git" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="v2.0-stm32mp-r1.5" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="stm32mp1" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_DTS_PATH="board/octavo/osd32mp1-red/tfa-dts/*" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="STM32MP_SDMMC=1 AARCH32_SP=sp_min DTB_FILE_NAME=osd32mp1-red.dtb STM32MP_USB_PROGRAMMER=1 CFLAGS=-Wno-array-bounds" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES="*.stm32" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_DTC=y + +# U-Boot +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/STMicroelectronics/u-boot.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="v2018.11-stm32mp-r3.2" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="stm32mp15_trusted" +# BR2_TARGET_UBOOT_FORMAT_BIN is not set +BR2_TARGET_UBOOT_FORMAT_STM32=y +BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="DEVICE_TREE=osd32mp1-red" + +# Package needed to generate the image +BR2_PACKAGE_HOST_GENIMAGE=y diff --git a/configs/odroidc2_defconfig b/configs/odroidc2_defconfig new file mode 100644 index 000000000..5f97fc3dd --- /dev/null +++ b/configs/odroidc2_defconfig @@ -0,0 +1,42 @@ +# Architecture +BR2_aarch64=y + +# Linux headers same as kernel, a 5.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_7=y + +# System +BR2_TARGET_GENERIC_HOSTNAME="odroidc2" +BR2_TARGET_GENERIC_GETTY_PORT="ttyAML0" +BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_ROOTFS_OVERLAY="board/hardkernel/odroidc2/rootfs_overlay" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/hardkernel/odroidc2/post-image.sh" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="amlogic/meson-gxbb-odroidc2" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y + +# U-Boot +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY=y +BR2_TARGET_UBOOT_BOARDNAME="odroid-c2" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2020.07" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/hardkernel/odroidc2/boot.cmd" + +# Firmware +BR2_PACKAGE_ODROIDC2_FIRMWARE=y + +# Required tools to create the SD image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MESON_TOOLS=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/odroidxu4_defconfig b/configs/odroidxu4_defconfig new file mode 100644 index 000000000..69958e138 --- /dev/null +++ b/configs/odroidxu4_defconfig @@ -0,0 +1,27 @@ +BR2_arm=y +BR2_cortex_a7=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/hardkernel/odroidxu4/post-image.sh" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_14=y +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/hardkernel/linux.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="4.14.16-104" +BR2_LINUX_KERNEL_DEFCONFIG="odroidxu4" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="exynos5422-odroidxu4" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/hardkernel/u-boot.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="88af53fbcef8386cb4d5f04c19f4b2bcb69e90ca" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="odroid-xu4" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_FORMAT_DTB_BIN=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="sd_fuse/bl1.bin.hardkernel sd_fuse/bl2.bin.hardkernel.720k_uboot sd_fuse/tzsw.bin.hardkernel " +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/olimex_a10_olinuxino_lime_defconfig b/configs/olimex_a10_olinuxino_lime_defconfig new file mode 100644 index 000000000..d0e00301f --- /dev/null +++ b/configs/olimex_a10_olinuxino_lime_defconfig @@ -0,0 +1,50 @@ +# Architecture +BR2_arm=y +BR2_cortex_a8=y + +# Linux headers same as kernel, a 5.14 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_14=y + +# System configuration +BR2_TARGET_GENERIC_HOSTNAME="a10-olinuxino" +BR2_TARGET_GENERIC_ISSUE="Welcome to OLinuXino!" +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/olimex/a10_olinuxino/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/olimex/a10_olinuxino/genimage.cfg" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.14.13" +BR2_LINUX_KERNEL_USE_DEFCONFIG=y +BR2_LINUX_KERNEL_DEFCONFIG="sunxi" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun4i-a10-olinuxino-lime" +BR2_LINUX_KERNEL_INSTALL_TARGET=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Bootloaders +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="A10-OLinuXino-Lime" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_FORMAT_BIN=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin" +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/olimex/a10_olinuxino/boot.cmd" + +# Additional tools +BR2_PACKAGE_HOST_GENIMAGE=y diff --git a/configs/olimex_a13_olinuxino_defconfig b/configs/olimex_a13_olinuxino_defconfig new file mode 100644 index 000000000..6d25d7d0a --- /dev/null +++ b/configs/olimex_a13_olinuxino_defconfig @@ -0,0 +1,49 @@ +# Architecture +BR2_arm=y +BR2_cortex_a8=y + +# Linux headers same as kernel, a 5.14 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_14=y + +# System configuration +BR2_TARGET_GENERIC_HOSTNAME="a13-olinuxino" +BR2_TARGET_GENERIC_ISSUE="Welcome to OLinuXino!" +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" + +# Bootloaders +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="A13-OLinuXino" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_FORMAT_BIN=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.14.13" +BR2_LINUX_KERNEL_USE_DEFCONFIG=y +BR2_LINUX_KERNEL_DEFCONFIG="sunxi" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun5i-a13-olinuxino" +BR2_LINUX_KERNEL_INSTALL_TARGET=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_ROOTFS_POST_BUILD_SCRIPT="board/olimex/a13_olinuxino/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/olimex/a13_olinuxino/genimage.cfg" + +# Additional tools +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/olimex_a20_olinuxino_lime2_defconfig b/configs/olimex_a20_olinuxino_lime2_defconfig new file mode 100644 index 000000000..e325184e9 --- /dev/null +++ b/configs/olimex_a20_olinuxino_lime2_defconfig @@ -0,0 +1,59 @@ +# Architecture +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_EABIHF=y + +# Linux headers same as kernel, a 5.15 LTS series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Toolchain +# glibc is needed for sunxi-mali-utgard package. +BR2_TOOLCHAIN_BUILDROOT_GLIBC=y + +# System configuration +BR2_TARGET_GENERIC_HOSTNAME="a20-olinuxino" +BR2_TARGET_GENERIC_ISSUE="Welcome to OLinuXino!" +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" +BR2_ROOTFS_OVERLAY="board/olimex/a20_olinuxino/rootfs_overlay" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/olimex/a20_olinuxino/genimage.cfg" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.53" +BR2_LINUX_KERNEL_USE_DEFCONFIG=y +BR2_LINUX_KERNEL_DEFCONFIG="sunxi" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/olimex/a20_olinuxino/linux-disable-lima.fragment" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun7i-a20-olinuxino-lime2" +BR2_LINUX_KERNEL_INSTALL_TARGET=y + +# sunxi packages +BR2_PACKAGE_SUNXI_TOOLS=y +BR2_PACKAGE_SUNXI_MALI_UTGARD=y +BR2_PACKAGE_SUNXI_MALI_UTGARD_DRIVER=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Bootloaders +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.07" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="A20-OLinuXino-Lime2" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_FORMAT_BIN=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin" +BR2_PACKAGE_HOST_UBOOT_TOOLS=y + +# Additional tools +BR2_PACKAGE_HOST_GENIMAGE=y diff --git a/configs/olimex_a20_olinuxino_lime_defconfig b/configs/olimex_a20_olinuxino_lime_defconfig new file mode 100644 index 000000000..ba814b98b --- /dev/null +++ b/configs/olimex_a20_olinuxino_lime_defconfig @@ -0,0 +1,59 @@ +# Architecture +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_EABIHF=y + +# Linux headers same as kernel, a 5.15 LTS series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Toolchain +# glibc is needed for sunxi-mali-utgard package. +BR2_TOOLCHAIN_BUILDROOT_GLIBC=y + +# System configuration +BR2_TARGET_GENERIC_HOSTNAME="a20-olinuxino" +BR2_TARGET_GENERIC_ISSUE="Welcome to OLinuXino!" +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" +BR2_ROOTFS_OVERLAY="board/olimex/a20_olinuxino/rootfs_overlay" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/olimex/a20_olinuxino/genimage.cfg" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.53" +BR2_LINUX_KERNEL_USE_DEFCONFIG=y +BR2_LINUX_KERNEL_DEFCONFIG="sunxi" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/olimex/a20_olinuxino/linux-disable-lima.fragment" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun7i-a20-olinuxino-lime" +BR2_LINUX_KERNEL_INSTALL_TARGET=y + +# sunxi packages +BR2_PACKAGE_SUNXI_TOOLS=y +BR2_PACKAGE_SUNXI_MALI_UTGARD=y +BR2_PACKAGE_SUNXI_MALI_UTGARD_DRIVER=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Bootloaders +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.07" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="A20-OLinuXino-Lime" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_FORMAT_BIN=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin" +BR2_PACKAGE_HOST_UBOOT_TOOLS=y + +# Additional tools +BR2_PACKAGE_HOST_GENIMAGE=y diff --git a/configs/olimex_a20_olinuxino_micro_defconfig b/configs/olimex_a20_olinuxino_micro_defconfig new file mode 100644 index 000000000..1394c0b8b --- /dev/null +++ b/configs/olimex_a20_olinuxino_micro_defconfig @@ -0,0 +1,49 @@ +# Architecture +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_FPU_NEON_VFPV4=y + +# Linux headers same as kernel, a 5.14 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_14=y + +# System configuration +BR2_TARGET_GENERIC_HOSTNAME="a20-olinuxino" +BR2_TARGET_GENERIC_ISSUE="Welcome to OLinuXino!" +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" +BR2_SYSTEM_DHCP="eth0" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/olimex/a20_olinuxino/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/olimex/a20_olinuxino/genimage.cfg" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.14.13" +BR2_LINUX_KERNEL_DEFCONFIG="sunxi" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun7i-a20-olinuxino-micro" +BR2_LINUX_KERNEL_INSTALL_TARGET=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Bootloaders +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="A20-OLinuXino_MICRO" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin" +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/olimex/a20_olinuxino/boot.cmd" + +# Additional tools +BR2_PACKAGE_HOST_GENIMAGE=y diff --git a/configs/olimex_a33_olinuxino_defconfig b/configs/olimex_a33_olinuxino_defconfig new file mode 100644 index 000000000..cdbc63efe --- /dev/null +++ b/configs/olimex_a33_olinuxino_defconfig @@ -0,0 +1,52 @@ +# Architecture +BR2_arm=y +BR2_cortex_a7=y + +# Linux headers same as kernel, a 5.14 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_14=y + +# System configuration +BR2_TARGET_GENERIC_HOSTNAME="A33-olinuxino" +BR2_TARGET_GENERIC_ISSUE="Welcome to A33 OLinuXino!" +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" + +# Bootloaders +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="A33-OLinuXino" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_FORMAT_BIN=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin" +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/olimex/a33_olinuxino/boot.cmd" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.14.13" +BR2_LINUX_KERNEL_USE_DEFCONFIG=y +BR2_LINUX_KERNEL_DEFCONFIG="sunxi" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-a33-olinuxino" +BR2_LINUX_KERNEL_INSTALL_TARGET=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_ROOTFS_POST_BUILD_SCRIPT="board/olimex/a33_olinuxino/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/olimex/a33_olinuxino/genimage.cfg" + +# Additional tools +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/olimex_a64_olinuxino_defconfig b/configs/olimex_a64_olinuxino_defconfig new file mode 100644 index 000000000..53e8c2ece --- /dev/null +++ b/configs/olimex_a64_olinuxino_defconfig @@ -0,0 +1,50 @@ +BR2_aarch64=y +BR2_cortex_a53=y +BR2_ARM_FPU_VFPV4=y + +# Linux headers same as kernel, a 5.15 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Firmware +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE="v2.5" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="sun50i_a64" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="a64-olinuxino" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-sunxi-with-spl.bin" +BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="SCP=/dev/null" +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/olimex/a64-olinuxino/boot.cmd" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.7" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun50i-a64-olinuxino" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_GENERIC_ISSUE="Welcome to Olimex A64-OLinuXino" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/olimex/a64-olinuxino/genimage.cfg" diff --git a/configs/olimex_imx233_olinuxino_defconfig b/configs/olimex_imx233_olinuxino_defconfig new file mode 100644 index 000000000..275dd98af --- /dev/null +++ b/configs/olimex_imx233_olinuxino_defconfig @@ -0,0 +1,52 @@ +# Architecture +BR2_arm=y +BR2_arm926t=y + +# Linux headers same as kernel, a 5.4 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4=y + +# System +BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0" + +# For automatic firmware loading +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.8" +BR2_LINUX_KERNEL_DEFCONFIG="mxs" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/olimex/imx233_olinuxino/linux-wifi.fragment" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx23-olinuxino" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x42000000" + +# Firmware for WiFi +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_7010=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271=y +BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y +BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y +BR2_PACKAGE_ZD1211_FIRMWARE=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set + +# U-Boot +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2017.11" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="mx23_olinuxino" +BR2_TARGET_UBOOT_FORMAT_SD=y + +# To generate SD Image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/mxs/post-image.sh" + diff --git a/configs/olimex_stmp157_olinuxino_lime_defconfig b/configs/olimex_stmp157_olinuxino_lime_defconfig new file mode 100644 index 000000000..a63394fa0 --- /dev/null +++ b/configs/olimex_stmp157_olinuxino_lime_defconfig @@ -0,0 +1,47 @@ +# Architecture +BR2_arm=y +BR2_cortex_a7=y + +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y + +# System configuration +BR2_TARGET_GENERIC_HOSTNAME="stmp1-olinuxino" +BR2_TARGET_GENERIC_ISSUE="Welcome to OLinuXino!" +BR2_ROOTFS_OVERLAY="board/olimex/stmp1_olinuxino/rootfs_overlay" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/olimex/stmp1_olinuxino/genimage.cfg" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/OLIMEX/linux-olimex.git" +# branch release-20220413-v5.10.105 +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="d417808c240d55576ee76e5cbb40413ad444ecfd" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/olimex/stmp1_olinuxino/linux.config" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="stm32mp1xx-olinuxino-lime" +BR2_LINUX_KERNEL_INSTALL_TARGET=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Bootloaders +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/OLIMEX/u-boot-olinuxino.git" +# release-20220413, based on 2021.04 +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="b39c5a7c93a2d8efaecc9cad4284378af857c3f7" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="STM32-OLinuXino-LIME" +# BR2_TARGET_UBOOT_FORMAT_BIN is not set +BR2_TARGET_UBOOT_FORMAT_IMG=y +BR2_TARGET_UBOOT_FORMAT_STM32=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="spl/u-boot-spl.stm32" + +# Additional tools +BR2_PACKAGE_HOST_GENIMAGE=y diff --git a/configs/olpc_xo175_defconfig b/configs/olpc_xo175_defconfig new file mode 100644 index 000000000..bb7aa047f --- /dev/null +++ b/configs/olpc_xo175_defconfig @@ -0,0 +1,29 @@ +BR2_arm=y +BR2_pj4=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_8=y +BR2_ROOTFS_POST_BUILD_SCRIPT="board/olpc/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/olpc/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.8.2" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/olpc/xo-1.75/linux.config" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/olpc/linux.config" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8686_V8=y +BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8686_V9=y +BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8688=y +BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_SD8787=y +BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_SD8797=y +BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_SD8887=y +BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_SD8897=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_LABEL="XO175" +BR2_TARGET_ROOTFS_EXT2_SIZE="32M" +BR2_TARGET_ROOTFS_EXT2_MKFS_OPTIONS="-O dir_index,^huge_file,^64bit,^extent" +BR2_PACKAGE_HOST_GENIMAGE=y diff --git a/configs/olpc_xo1_defconfig b/configs/olpc_xo1_defconfig new file mode 100644 index 000000000..41226d892 --- /dev/null +++ b/configs/olpc_xo1_defconfig @@ -0,0 +1,27 @@ +BR2_x86_geode=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_7=y +BR2_ROOTFS_POST_BUILD_SCRIPT="board/olpc/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/olpc/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.7.1" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/olpc/xo-1/linux.config" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/olpc/linux.config" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_USB8388_V9=y +BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_USB8388_OLPC=y +BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_USB_THINFIRM=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_LABEL="XO1" +BR2_TARGET_ROOTFS_EXT2_SIZE="32M" +BR2_TARGET_ROOTFS_EXT2_MKFS_OPTIONS="-O dir_index,^huge_file,^64bit,^extent" +BR2_TARGET_ROOTFS_JFFS2=y +BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_128K=y +BR2_TARGET_ROOTFS_JFFS2_PAD=y +BR2_PACKAGE_HOST_GENIMAGE=y diff --git a/configs/openblocks_a6_defconfig b/configs/openblocks_a6_defconfig new file mode 100644 index 000000000..2238c0940 --- /dev/null +++ b/configs/openblocks_a6_defconfig @@ -0,0 +1,24 @@ +# Architecture +BR2_arm=y +BR2_arm926t=y + +# system +BR2_TARGET_GENERIC_HOSTNAME="openblocks-a6" +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" +BR2_SYSTEM_DHCP="eth0" + +# filesystem +BR2_TARGET_ROOTFS_JFFS2=y +BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_16K=y + +# Linux headers same as kernel, a 4.14 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_14=y + +# kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.14.253" +BR2_LINUX_KERNEL_DEFCONFIG="mvebu_v5" +BR2_LINUX_KERNEL_APPENDED_UIMAGE=y +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x8000" +BR2_LINUX_KERNEL_INTREE_DTS_NAME="kirkwood-openblocks_a6" diff --git a/configs/orangepi_lite2_defconfig b/configs/orangepi_lite2_defconfig new file mode 100644 index 000000000..c6be1c46b --- /dev/null +++ b/configs/orangepi_lite2_defconfig @@ -0,0 +1,60 @@ +BR2_aarch64=y +BR2_cortex_a53=y +BR2_ARM_FPU_VFPV4=y + +# Linux headers same as kernel, a 4.19 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y + +# Firmware +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://github.com/ARM-software/arm-trusted-firmware.git" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="v2.0" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="sun50i_h6" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/amarula/u-boot-amarula" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="h6-v1.0a" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="orangepi_lite2" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,amarula,linux-amarula,h6-v1.0b)/linux-amarula_h6-v1.0b.tar.gz" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun50i-h6-orangepi-lite2" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_GENERIC_ISSUE="Welcome to Orangepi Lite2" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/orangepi/orangepi-lite2/genimage.cfg" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/orangepi/orangepi-lite2/post-build.sh" +BR2_ROOTFS_OVERLAY="board/orangepi/orangepi-lite2/rootfs_overlay" + +# wireless firmware +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XXX=y + +# wireless tools +BR2_PACKAGE_IW=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_WPA_SUPPLICANT_NL80211=y +BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT=y +BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y diff --git a/configs/orangepi_lite_defconfig b/configs/orangepi_lite_defconfig new file mode 100644 index 000000000..e83481645 --- /dev/null +++ b/configs/orangepi_lite_defconfig @@ -0,0 +1,39 @@ +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_FPU_VFPV4=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y +BR2_TARGET_GENERIC_HOSTNAME="OrangePi_Lite" +BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot for the Orange Pi Lite" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.1" +BR2_LINUX_KERNEL_DEFCONFIG="sunxi" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/orangepi/orangepi-lite/linux-extras.config" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-h3-orangepi-lite" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_PACKAGE_RTL8189FS=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_WPA_SUPPLICANT_CLI=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="orangepi_lite" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin" +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/orangepi/orangepi-lite/boot.cmd" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/orangepi/orangepi-lite/genimage.cfg" diff --git a/configs/orangepi_one_defconfig b/configs/orangepi_one_defconfig new file mode 100644 index 000000000..ba128424a --- /dev/null +++ b/configs/orangepi_one_defconfig @@ -0,0 +1,32 @@ +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_FPU_VFPV4=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_12=y +BR2_TARGET_GENERIC_HOSTNAME="OrangePi_One" +BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot for the Orange Pi One" +BR2_SYSTEM_DHCP="eth0" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.12.2" +BR2_LINUX_KERNEL_DEFCONFIG="sunxi" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-h3-orangepi-one" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.04" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="orangepi_one" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin" +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_ROOTFS_POST_BUILD_SCRIPT="board/orangepi/common/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BINARIES_DIR)/genimage.cfg" diff --git a/configs/orangepi_one_plus_defconfig b/configs/orangepi_one_plus_defconfig new file mode 100644 index 000000000..1084d4223 --- /dev/null +++ b/configs/orangepi_one_plus_defconfig @@ -0,0 +1,46 @@ +BR2_aarch64=y +BR2_cortex_a53=y +BR2_ARM_FPU_VFPV4=y + +# Linux headers same as kernel, a 4.19 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y + +# Firmware +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://github.com/ARM-software/arm-trusted-firmware.git" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="v2.0" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="sun50i_h6" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.09" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="orangepi_one_plus" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,amarula,linux-amarula,h6-v1.0b)/linux-amarula_h6-v1.0b.tar.gz" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun50i-h6-orangepi-one-plus" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_GENERIC_ISSUE="Welcome to Orangepi One+" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/orangepi/orangepi-one-plus/genimage.cfg" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/orangepi/orangepi-one-plus/post-build.sh" diff --git a/configs/orangepi_pc2_defconfig b/configs/orangepi_pc2_defconfig new file mode 100644 index 000000000..c7e17c8eb --- /dev/null +++ b/configs/orangepi_pc2_defconfig @@ -0,0 +1,50 @@ +BR2_aarch64=y +BR2_cortex_a53=y +BR2_ARM_FPU_VFPV4=y + +# Linux headers same as kernel, a 5.0 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_0=y + +# Firmware +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://github.com/apritzel/arm-trusted-firmware.git" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="sun50iw1p1" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="aa75c8da415158a94b82a430b2b40000778e851f" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2019.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="orangepi_pc2" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb" +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="spl/sunxi-spl.bin" +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/orangepi/orangepi-pc2/boot.cmd" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.0" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun50i-h5-orangepi-pc2" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_GENERIC_ISSUE="Welcome to Orangepi PC2" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/orangepi/orangepi-pc2/genimage.cfg" diff --git a/configs/orangepi_pc_defconfig b/configs/orangepi_pc_defconfig new file mode 100644 index 000000000..fd0f64e0e --- /dev/null +++ b/configs/orangepi_pc_defconfig @@ -0,0 +1,32 @@ +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_FPU_VFPV4=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_TARGET_GENERIC_HOSTNAME="OrangePi_PC" +BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot for the Orange Pi PC" +BR2_SYSTEM_DHCP="eth0" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/orangepi/common/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BINARIES_DIR)/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.9" +BR2_LINUX_KERNEL_DEFCONFIG="sunxi" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/orangepi/orangepi-pc/linux.fragment" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-h3-orangepi-pc" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2020.10" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="orangepi_pc" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-sunxi-with-spl.bin" +BR2_PACKAGE_HOST_GENIMAGE=y diff --git a/configs/orangepi_pc_plus_defconfig b/configs/orangepi_pc_plus_defconfig new file mode 100644 index 000000000..ba946e528 --- /dev/null +++ b/configs/orangepi_pc_plus_defconfig @@ -0,0 +1,47 @@ +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_FPU_VFPV4=y +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_12=y +BR2_TARGET_GENERIC_HOSTNAME="OrangePi_PC_Plus" +BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot for the Orange Pi PC Plus" +BR2_SYSTEM_DHCP="eth0" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.12.2" +BR2_LINUX_KERNEL_DEFCONFIG="sunxi" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-h3-orangepi-pc-plus" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/orangepi/orangepi-pc-plus/linux-extras.config" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.04" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="orangepi_pc_plus" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin" +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_ROOTFS_POST_BUILD_SCRIPT="board/orangepi/common/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BINARIES_DIR)/genimage.cfg" + +# wireless driver and firmware +BR2_PACKAGE_RTL8189FS=y +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y + +# wireless tools +BR2_PACKAGE_IW=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WIRELESS_TOOLS_LIB=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_WPA_SUPPLICANT_NL80211=y +BR2_PACKAGE_WPA_SUPPLICANT_CLI=y diff --git a/configs/orangepi_plus_defconfig b/configs/orangepi_plus_defconfig new file mode 100644 index 000000000..11d748648 --- /dev/null +++ b/configs/orangepi_plus_defconfig @@ -0,0 +1,44 @@ +# Architecture +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_FPU_VFPV4=y + +# Linux headers same as kernel, a 5.0 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_0=y + +# System configuration +BR2_TARGET_GENERIC_HOSTNAME="OrangePi_Plus" +BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot for the Orange Pi Plus" + +# Bootloaders +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2019.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="orangepi_plus" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-sunxi-with-spl.bin" +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/orangepi/orangepi-plus/boot.cmd" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.0" +BR2_LINUX_KERNEL_DEFCONFIG="sunxi" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-h3-orangepi-plus" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/orangepi/orangepi-plus/genimage.cfg" + +# Additional tools +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/orangepi_prime_defconfig b/configs/orangepi_prime_defconfig new file mode 100644 index 000000000..f8f958c67 --- /dev/null +++ b/configs/orangepi_prime_defconfig @@ -0,0 +1,50 @@ +BR2_aarch64=y +BR2_cortex_a53=y +BR2_ARM_FPU_VFPV4=y + +# Linux headers same as kernel, a 5.0 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_0=y + +# Firmware +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://github.com/apritzel/arm-trusted-firmware.git" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="sun50iw1p1" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="aa75c8da415158a94b82a430b2b40000778e851f" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2019.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="orangepi_prime" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb" +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="spl/sunxi-spl.bin" +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/orangepi/orangepi-prime/boot.cmd" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.0" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun50i-h5-orangepi-prime" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_GENERIC_ISSUE="Welcome to Orangepi Prime" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/orangepi/orangepi-prime/genimage.cfg" diff --git a/configs/orangepi_r1_defconfig b/configs/orangepi_r1_defconfig new file mode 100644 index 000000000..bad1f9400 --- /dev/null +++ b/configs/orangepi_r1_defconfig @@ -0,0 +1,40 @@ +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_FPU_VFPV4=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_TARGET_GENERIC_HOSTNAME="OrangePi_R1" +BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot for the Orange Pi R1" +BR2_SYSTEM_DHCP="eth0" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.10" +BR2_LINUX_KERNEL_DEFCONFIG="sunxi" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-h2-plus-orangepi-r1" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/orangepi/orangepi-r1/linux-extras.config" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2020.10" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="orangepi_r1" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-sunxi-with-spl.bin" +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/orangepi/orangepi-r1/boot.cmd" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/orangepi/orangepi-r1/genimage.cfg" + +# spi flash support +BR2_PACKAGE_MTD=y diff --git a/configs/orangepi_rk3399_defconfig b/configs/orangepi_rk3399_defconfig new file mode 100644 index 000000000..bcce35feb --- /dev/null +++ b/configs/orangepi_rk3399_defconfig @@ -0,0 +1,53 @@ +# Architecture +BR2_aarch64=y +BR2_cortex_a72_a53=y + +# Linux headers same as kernel, a 5.8 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_8=y + +# Firmware +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="11a0a46a899fcc3b1fdb214b382f3d7495d88eca" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="rk3399" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_ARM32_TOOLCHAIN=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES="" + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2020.07" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="orangepi-rk3399" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31_ELF=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb" +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="idbloader.img" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.8.2" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="rockchip/rk3399-orangepi" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_GENERIC_HOSTNAME="orangepi-rk3399" +BR2_TARGET_GENERIC_ISSUE="Welcome to ORANGEPI-RK3399" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/orangepi/orangepi-rk3399/genimage.cfg" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/orangepi/orangepi-rk3399/post-build.sh" diff --git a/configs/orangepi_win_defconfig b/configs/orangepi_win_defconfig new file mode 100644 index 000000000..715ff3b71 --- /dev/null +++ b/configs/orangepi_win_defconfig @@ -0,0 +1,48 @@ +BR2_aarch64=y +BR2_cortex_a53=y +BR2_ARM_FPU_VFPV4=y + +# Linux headers same as kernel, a 4.14 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_14=y + +# Firmware +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://github.com/apritzel/arm-trusted-firmware.git" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="sun50iw1p1" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="aa75c8da415158a94b82a430b2b40000778e851f" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2017.11" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="orangepi_win" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb" +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="spl/sunxi-spl.bin" +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/orangepi/orangepi-win/boot.cmd" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.14" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun50i-a64-orangepi-win" + +# Filesystem +BR2_TARGET_GENERIC_ISSUE="Welcome to Orangepi Win/Win Plus" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/orangepi/orangepi-win/genimage.cfg" diff --git a/configs/orangepi_zero_defconfig b/configs/orangepi_zero_defconfig new file mode 100644 index 000000000..464e075e5 --- /dev/null +++ b/configs/orangepi_zero_defconfig @@ -0,0 +1,64 @@ +# Architecture +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_FPU_VFPV4=y + +# System +BR2_TARGET_GENERIC_HOSTNAME="OrangePi_Zero" +BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot for the Orange Pi Zero" +BR2_GLOBAL_PATCH_DIR="board/orangepi/orangepi-zero/patches" +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y +BR2_SYSTEM_DHCP="eth0" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.16" +BR2_LINUX_KERNEL_DEFCONFIG="sunxi" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-h2-plus-orangepi-zero" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/orangepi/orangepi-zero/linux-extras.fragment" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_LINUX_KERNEL_INSTALL_TARGET=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="orangepi_zero" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin" + +# Required tools to create the SD image +BR2_PACKAGE_HOST_GENIMAGE=y + +# Image +BR2_ROOTFS_POST_BUILD_SCRIPT="board/orangepi/common/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BINARIES_DIR)/genimage.cfg" + +# Wireless driver and firmware +BR2_PACKAGE_XR819_XRADIO=y +BR2_PACKAGE_ARMBIAN_FIRMWARE=y +BR2_PACKAGE_ARMBIAN_FIRMWARE_XR819=y + +# Wireless support +BR2_PACKAGE_IW=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WIRELESS_TOOLS_LIB=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_WPA_SUPPLICANT_NL80211=y +BR2_PACKAGE_WPA_SUPPLICANT_CLI=y + +# Spi flash support +BR2_PACKAGE_MTD=y diff --git a/configs/orangepi_zero_plus2_defconfig b/configs/orangepi_zero_plus2_defconfig new file mode 100644 index 000000000..ef171c3ad --- /dev/null +++ b/configs/orangepi_zero_plus2_defconfig @@ -0,0 +1,67 @@ +BR2_aarch64=y +BR2_cortex_a53=y +BR2_ARM_FPU_VFPV4=y + +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_16=y +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y +BR2_ROOTFS_OVERLAY="board/orangepi/orangepi-zero-plus2/rootfs_overlay" + +# Firmware +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE="v2.5" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="sun50i_a64" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="orangepi_zero_plus2" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin" +BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="SCP=/dev/null" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.16.1" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun50i-h5-orangepi-zero-plus2" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/orangepi/orangepi-zero-plus2/linux-extras.config" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_DTB_KEEP_DIRNAME=y + +# wireless firmware +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XXX=y + +# wireless tools +BR2_PACKAGE_IW=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WIRELESS_TOOLS_LIB=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_WPA_SUPPLICANT_NL80211=y +BR2_PACKAGE_WPA_SUPPLICANT_CLI=y + +# Filesystem +BR2_TARGET_GENERIC_ISSUE="Welcome to Orangepi Zero Plus2" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" + +# host tools +BR2_PACKAGE_HOST_GENIMAGE=y + +# image scripts +BR2_ROOTFS_POST_BUILD_SCRIPT="board/orangepi/common/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BINARIES_DIR)/genimage.cfg" diff --git a/configs/orangepi_zero_plus_defconfig b/configs/orangepi_zero_plus_defconfig new file mode 100644 index 000000000..e8de5c203 --- /dev/null +++ b/configs/orangepi_zero_plus_defconfig @@ -0,0 +1,51 @@ +BR2_aarch64=y +BR2_cortex_a53=y +BR2_ARM_FPU_VFPV4=y + +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_7=y +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y +BR2_SYSTEM_DHCP="eth0" + +# Firmware +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE="v2.5" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="sun50i_a64" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2020.10" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="orangepi_zero_plus" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb" +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="spl/sunxi-spl.bin" +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/orangepi/orangepi-zero-plus/boot.cmd" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.7.19" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun50i-h5-orangepi-zero-plus" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_GENERIC_ISSUE="Welcome to Orangepi Zero Plus" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/orangepi/orangepi-zero-plus/genimage.cfg" diff --git a/configs/pandaboard_defconfig b/configs/pandaboard_defconfig new file mode 100644 index 000000000..376ecfe50 --- /dev/null +++ b/configs/pandaboard_defconfig @@ -0,0 +1,48 @@ +# Architecture +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_FPU_VFPV3=y + +# Linux headers same as kernel, a 5.12 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_12=y + +# System +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS2" +BR2_SYSTEM_DHCP="eth0" + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/pandaboard/genimage.cfg" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.12.2" +BR2_LINUX_KERNEL_DEFCONFIG="omap2plus" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="omap4-panda-es omap4-panda omap4-panda-a4" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.04" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="omap4_panda" +BR2_TARGET_UBOOT_FORMAT_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="MLO" + +# Required tools to create the SD card image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/pc_x86_64_bios_defconfig b/configs/pc_x86_64_bios_defconfig new file mode 100644 index 000000000..df5988d75 --- /dev/null +++ b/configs/pc_x86_64_bios_defconfig @@ -0,0 +1,66 @@ +# Architecture +BR2_x86_64=y + +# Toolchain, required for eudev (to autoload drivers) +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y + +# System +BR2_TARGET_GENERIC_GETTY_PORT="tty1" +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y + +# Required tools to create bootable media +BR2_PACKAGE_HOST_GENIMAGE=y + +# Bootloader +BR2_TARGET_GRUB2=y +BR2_TARGET_GRUB2_INSTALL_TOOLS=y + +# Filesystem / image +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +# BR2_TARGET_ROOTFS_TAR is not set +BR2_ROOTFS_POST_BUILD_SCRIPT="board/pc/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/pc/genimage-bios.cfg" + +# Linux headers same as kernel, a 4.19 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19.204" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/pc/linux.config" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Firmware +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3168=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_5000=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2A=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2B=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7260=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7265D=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8000C=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8265=y +BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y +BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y + +# Packages +# +# Use connman so that networking setup is simpler, via connmanctl tool +# acpid is for seamless power button support +BR2_PACKAGE_ACPID=y +BR2_PACKAGE_CONNMAN=y +BR2_PACKAGE_CONNMAN_CLIENT=y +BR2_PACKAGE_CONNMAN_WIFI=y diff --git a/configs/pc_x86_64_efi_defconfig b/configs/pc_x86_64_efi_defconfig new file mode 100644 index 000000000..18d2c477d --- /dev/null +++ b/configs/pc_x86_64_efi_defconfig @@ -0,0 +1,67 @@ +# Architecture +BR2_x86_64=y + +# Toolchain, required for eudev (to autoload drivers) +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y + +# System +BR2_TARGET_GENERIC_GETTY_PORT="tty1" +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y + +# Required tools to create bootable media +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# Bootloader +BR2_TARGET_GRUB2=y +BR2_TARGET_GRUB2_X86_64_EFI=y + +# Filesystem / image +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +# BR2_TARGET_ROOTFS_TAR is not set +BR2_ROOTFS_POST_BUILD_SCRIPT="board/pc/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/pc/post-image-efi.sh" + +# Linux headers same as kernel, a 4.19 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19.204" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/pc/linux.config" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Firmware +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3168=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_5000=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2A=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2B=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7260=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7265D=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8000C=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8265=y +BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y +BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y + +# Packages +# +# Use connman so that networking setup is simpler, via connmanctl tool +# acpid is for seamless power button support +BR2_PACKAGE_ACPID=y +BR2_PACKAGE_CONNMAN=y +BR2_PACKAGE_CONNMAN_CLIENT=y +BR2_PACKAGE_CONNMAN_WIFI=y diff --git a/configs/pcengines_apu2_defconfig b/configs/pcengines_apu2_defconfig new file mode 100644 index 000000000..a85808554 --- /dev/null +++ b/configs/pcengines_apu2_defconfig @@ -0,0 +1,28 @@ +# Architecture +BR2_x86_64=y + +# Kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_16=y +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.16" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/pcengines/apu2/linux.config" +BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y + +# Default hostname and TTY +BR2_TARGET_GENERIC_HOSTNAME="apu2" +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" + +# Networking +BR2_SYSTEM_DHCP="eth0" + +# Rootfs +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_ISO9660=y +BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="board/pcengines/apu2/isolinux.cfg" +BR2_TARGET_ROOTFS_ISO9660_HYBRID=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Bootloader +BR2_TARGET_SYSLINUX=y diff --git a/configs/pine64_defconfig b/configs/pine64_defconfig new file mode 100644 index 000000000..2bdb6f6ae --- /dev/null +++ b/configs/pine64_defconfig @@ -0,0 +1,50 @@ +BR2_aarch64=y +BR2_cortex_a53=y +BR2_ARM_FPU_VFPV4=y + +# Linux headers same as kernel, a 5.0 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_0=y + +# Firmware +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://github.com/apritzel/arm-trusted-firmware.git" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="sun50iw1p1" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="aa75c8da415158a94b82a430b2b40000778e851f" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2019.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="pine64_plus" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb" +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="spl/sunxi-spl.bin" +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/pine64/pine64/boot.cmd" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.0" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun50i-a64-pine64" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_GENERIC_ISSUE="Welcome to PINE64" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/pine64/pine64/genimage.cfg" diff --git a/configs/pine64_sopine_defconfig b/configs/pine64_sopine_defconfig new file mode 100644 index 000000000..f59f2387e --- /dev/null +++ b/configs/pine64_sopine_defconfig @@ -0,0 +1,49 @@ +BR2_aarch64=y +BR2_cortex_a53=y +BR2_ARM_FPU_VFPV4=y + +# Linux headers same as kernel, a 5.0 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_0=y + +# Firmware +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE="v2.7" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="sun50i_a64" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2019.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sopine_baseboard" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb" +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="spl/sunxi-spl.bin" +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/pine64/sopine/boot.cmd" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.0" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun50i-a64-sopine-baseboard" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_GENERIC_ISSUE="Welcome to PINE64 SOPINE" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/pine64/sopine/genimage.cfg" diff --git a/configs/qemu_aarch64_sbsa_defconfig b/configs/qemu_aarch64_sbsa_defconfig new file mode 100644 index 000000000..0d4e8b2c2 --- /dev/null +++ b/configs/qemu_aarch64_sbsa_defconfig @@ -0,0 +1,53 @@ +# Architecture +BR2_aarch64=y +BR2_cortex_a57=y + +# Toolchain +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y + +# System +BR2_SYSTEM_DHCP="eth0" +BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_ROOTFS_EXT2_SIZE="128M" + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh board/qemu/aarch64-sbsa/assemble-flash-images support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG) -c board/qemu/aarch64-sbsa/genimage.cfg" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.18" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# UEFI firmware +BR2_TARGET_EDK2=y +BR2_TARGET_EDK2_PLATFORM_QEMU_SBSA=y +BR2_TARGET_GRUB2=y +BR2_TARGET_GRUB2_ARM64_EFI=y + +# ARM Trusted Firmware +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://github.com/ARM-software/arm-trusted-firmware.git" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="v2.7" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="qemu_sbsa" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_FIP=y + +# Host tools for genimage +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_MTOOLS=y + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_aarch64_virt_defconfig b/configs/qemu_aarch64_virt_defconfig new file mode 100644 index 000000000..03df0ad9e --- /dev/null +++ b/configs/qemu_aarch64_virt_defconfig @@ -0,0 +1,30 @@ +# Architecture +BR2_aarch64=y +BR2_cortex_a53=y + +# System +BR2_SYSTEM_DHCP="eth0" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.18" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/aarch64-virt/linux.config" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_arm_versatile_defconfig b/configs/qemu_arm_versatile_defconfig new file mode 100644 index 000000000..4f43273a8 --- /dev/null +++ b/configs/qemu_arm_versatile_defconfig @@ -0,0 +1,31 @@ +# Architecture +BR2_arm=y +BR2_arm926t=y + +# System +BR2_SYSTEM_DHCP="eth0" +BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.18" +BR2_LINUX_KERNEL_DEFCONFIG="versatile" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/qemu/arm-versatile/linux.fragment" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="versatile-pb" + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_arm_vexpress_defconfig b/configs/qemu_arm_vexpress_defconfig new file mode 100644 index 000000000..2c813456f --- /dev/null +++ b/configs/qemu_arm_vexpress_defconfig @@ -0,0 +1,35 @@ +# Architecture +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_FPU_VFPV3D16=y + +# System +BR2_SYSTEM_DHCP="eth0" +BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" +# Qemu >= 5.1 requires an SD card size to be a power of 2, e.g. 64 MiB. +BR2_TARGET_ROOTFS_EXT2_SIZE="64M" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.18" +BR2_LINUX_KERNEL_DEFCONFIG="vexpress" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="vexpress-v2p-ca9" + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_arm_vexpress_tz_defconfig b/configs/qemu_arm_vexpress_tz_defconfig new file mode 100644 index 000000000..576c44115 --- /dev/null +++ b/configs/qemu_arm_vexpress_tz_defconfig @@ -0,0 +1,65 @@ +# Architecture +BR2_arm=y +BR2_cortex_a15=y +BR2_ARM_FPU_VFPV3D16=y + +# System +BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/qemu/arm-vexpress-tz/post-build.sh" + +# optee-test needs toolchain C++ +BR2_TOOLCHAIN_BUILDROOT_CXX=y + +# Filesystem +BR2_TARGET_ROOTFS_CPIO=y +BR2_TARGET_ROOTFS_CPIO_GZIP=y +BR2_TARGET_ROOTFS_CPIO_UIMAGE=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.18" +BR2_LINUX_KERNEL_DEFCONFIG="vexpress" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/qemu/arm-vexpress-tz/linux.fragment" + +# TF-A for booting OP-TEE secure and uboot/linux non secure +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE="v2.7" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="qemu" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_FIP=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_OPTEE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="BL32_RAM_LOCATION=tdram" + +# OP-TEE components +BR2_TARGET_OPTEE_OS=y +BR2_TARGET_OPTEE_OS_NEEDS_DTC=y +BR2_TARGET_OPTEE_OS_PLATFORM="vexpress-qemu_virt" +BR2_PACKAGE_OPTEE_BENCHMARK=y +BR2_PACKAGE_OPTEE_EXAMPLES=y +BR2_PACKAGE_OPTEE_TEST=y + +# Enable OpenSSL library for some optee-test tests +BR2_PACKAGE_OPENSSL=y +BR2_PACKAGE_LIBOPENSSL=y + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# U-boot for booting the dear Linux kernel +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.04" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="qemu_arm" +BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/qemu/arm-vexpress-tz/u-boot.config" + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_m68k_mcf5208_defconfig b/configs/qemu_m68k_mcf5208_defconfig new file mode 100644 index 000000000..0490b9e29 --- /dev/null +++ b/configs/qemu_m68k_mcf5208_defconfig @@ -0,0 +1,36 @@ +# Architecture +BR2_m68k=y +BR2_m68k_cf5208=y + +# System +BR2_SYSTEM_DHCP="eth0" + +# Filesystem +BR2_TARGET_ROOTFS_INITRAMFS=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.18" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/m68k-mcf5208/linux.config" +BR2_LINUX_KERNEL_VMLINUX=y + +# Serial port config +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" + +# use minimal busybox with hush and networking tools +BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config" + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_m68k_q800_defconfig b/configs/qemu_m68k_q800_defconfig new file mode 100644 index 000000000..30d8982db --- /dev/null +++ b/configs/qemu_m68k_q800_defconfig @@ -0,0 +1,33 @@ +# Architecture +BR2_m68k=y +BR2_m68k_68040=y + +# System +BR2_SYSTEM_DHCP="eth0" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.18" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/m68k-q800/linux.config" +BR2_LINUX_KERNEL_VMLINUX=y + +# Serial port config +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_microblazebe_mmu_defconfig b/configs/qemu_microblazebe_mmu_defconfig new file mode 100644 index 000000000..7bd2ae53b --- /dev/null +++ b/configs/qemu_microblazebe_mmu_defconfig @@ -0,0 +1,31 @@ +# Architecture +BR2_microblaze=y +BR2_microblazebe=y + +# System +BR2_SYSTEM_DHCP="eth0" +BR2_TARGET_GENERIC_GETTY_PORT="ttyUL0" + +# Filesystem +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_ROOTFS_INITRAMFS=y + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.18" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/microblazebe-mmu/linux.config" +BR2_LINUX_KERNEL_LINUX_BIN=y +BR2_LINUX_KERNEL_PATCH="board/qemu/microblazebe-mmu/0001-net-xilinx-xemaclite-add-2.00.b-revision.patch" + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_microblazeel_mmu_defconfig b/configs/qemu_microblazeel_mmu_defconfig new file mode 100644 index 000000000..cd8c5a3cb --- /dev/null +++ b/configs/qemu_microblazeel_mmu_defconfig @@ -0,0 +1,31 @@ +# Architecture +BR2_microblaze=y +BR2_microblazeel=y + +# System +BR2_SYSTEM_DHCP="eth0" +BR2_TARGET_GENERIC_GETTY_PORT="ttyUL0" + +# Filesystem +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_ROOTFS_INITRAMFS=y + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.18" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/microblazeel-mmu/linux.config" +BR2_LINUX_KERNEL_LINUX_BIN=y +BR2_LINUX_KERNEL_PATCH="board/qemu/microblazeel-mmu/0001-net-xilinx-xemaclite-add-2.00.b-revision.patch" + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_mips32r2_malta_defconfig b/configs/qemu_mips32r2_malta_defconfig new file mode 100644 index 000000000..49d84c308 --- /dev/null +++ b/configs/qemu_mips32r2_malta_defconfig @@ -0,0 +1,33 @@ +# Architecture +BR2_mips=y +BR2_mips_32r2=y + +# System +BR2_SYSTEM_DHCP="eth0" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.18" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips32r2-malta/linux.config" +BR2_LINUX_KERNEL_VMLINUX=y + +# Serial port config +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_mips32r2el_malta_defconfig b/configs/qemu_mips32r2el_malta_defconfig new file mode 100644 index 000000000..5363018c4 --- /dev/null +++ b/configs/qemu_mips32r2el_malta_defconfig @@ -0,0 +1,33 @@ +# Architecture +BR2_mipsel=y +BR2_mips_32r2=y + +# System +BR2_SYSTEM_DHCP="eth0" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.18" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips32r2el-malta/linux.config" +BR2_LINUX_KERNEL_VMLINUX=y + +# Serial port config +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_mips32r6_malta_defconfig b/configs/qemu_mips32r6_malta_defconfig new file mode 100644 index 000000000..f77feb9b6 --- /dev/null +++ b/configs/qemu_mips32r6_malta_defconfig @@ -0,0 +1,33 @@ +# Architecture +BR2_mips=y +BR2_mips_32r6=y + +# System +BR2_SYSTEM_DHCP="eth0" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.18" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips32r6-malta/linux.config" +BR2_LINUX_KERNEL_VMLINUX=y + +# Serial port config +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_mips32r6el_malta_defconfig b/configs/qemu_mips32r6el_malta_defconfig new file mode 100644 index 000000000..575034441 --- /dev/null +++ b/configs/qemu_mips32r6el_malta_defconfig @@ -0,0 +1,33 @@ +# Architecture +BR2_mipsel=y +BR2_mips_32r6=y + +# System +BR2_SYSTEM_DHCP="eth0" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.18" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips32r6el-malta/linux.config" +BR2_LINUX_KERNEL_VMLINUX=y + +# Serial port config +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_mips64_malta_defconfig b/configs/qemu_mips64_malta_defconfig new file mode 100644 index 000000000..e9438fda1 --- /dev/null +++ b/configs/qemu_mips64_malta_defconfig @@ -0,0 +1,33 @@ +# Architecture +BR2_mips64=y +BR2_MIPS_NABI64=y + +# System +BR2_SYSTEM_DHCP="eth0" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.18" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips64-malta/linux.config" +BR2_LINUX_KERNEL_VMLINUX=y + +# Serial port config +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_mips64el_malta_defconfig b/configs/qemu_mips64el_malta_defconfig new file mode 100644 index 000000000..4b1c8e22a --- /dev/null +++ b/configs/qemu_mips64el_malta_defconfig @@ -0,0 +1,33 @@ +# Architecture +BR2_mips64el=y +BR2_MIPS_NABI64=y + +# System +BR2_SYSTEM_DHCP="eth0" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.18" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips64el-malta/linux.config" +BR2_LINUX_KERNEL_VMLINUX=y + +# Serial port config +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_mips64r6_malta_defconfig b/configs/qemu_mips64r6_malta_defconfig new file mode 100644 index 000000000..87ef7902a --- /dev/null +++ b/configs/qemu_mips64r6_malta_defconfig @@ -0,0 +1,34 @@ +# Architecture +BR2_mips64=y +BR2_mips_64r6=y +BR2_MIPS_NABI64=y + +# System +BR2_SYSTEM_DHCP="eth0" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.18" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips64r6-malta/linux.config" +BR2_LINUX_KERNEL_VMLINUX=y + +# Serial port config +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_mips64r6el_malta_defconfig b/configs/qemu_mips64r6el_malta_defconfig new file mode 100644 index 000000000..5774207f6 --- /dev/null +++ b/configs/qemu_mips64r6el_malta_defconfig @@ -0,0 +1,34 @@ +# Architecture +BR2_mips64el=y +BR2_mips_64r6=y +BR2_MIPS_NABI64=y + +# System +BR2_SYSTEM_DHCP="eth0" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.18" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips64r6el-malta/linux.config" +BR2_LINUX_KERNEL_VMLINUX=y + +# Serial port config +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_nios2_10m50_defconfig b/configs/qemu_nios2_10m50_defconfig new file mode 100644 index 000000000..4b9c53e8d --- /dev/null +++ b/configs/qemu_nios2_10m50_defconfig @@ -0,0 +1,21 @@ +BR2_nios2=y +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.18" +BR2_LINUX_KERNEL_DEFCONFIG="10m50" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/qemu/nios2-10m50/linux.fragment" +BR2_TARGET_ROOTFS_INITRAMFS=y + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Kernel needs mkimage +BR2_PACKAGE_HOST_UBOOT_TOOLS=y + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_or1k_defconfig b/configs/qemu_or1k_defconfig new file mode 100644 index 000000000..b3d9d7915 --- /dev/null +++ b/configs/qemu_or1k_defconfig @@ -0,0 +1,24 @@ +# Architecture +BR2_or1k=y + +# Filesystem +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_ROOTFS_INITRAMFS=y + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.18" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/or1k/linux.config" + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_ppc64_e5500_defconfig b/configs/qemu_ppc64_e5500_defconfig new file mode 100644 index 000000000..8458f2739 --- /dev/null +++ b/configs/qemu_ppc64_e5500_defconfig @@ -0,0 +1,31 @@ +# Architecture +BR2_powerpc64=y +BR2_powerpc_e5500=y + +# System +BR2_BINUTILS_VERSION_2_36_X=y +BR2_SYSTEM_DHCP="eth0" +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as the kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_17=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.17.7" +BR2_LINUX_KERNEL_DEFCONFIG="corenet64_smp" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/qemu/ppc64-e5500/linux.fragment" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_ppc64_pseries_defconfig b/configs/qemu_ppc64_pseries_defconfig new file mode 100644 index 000000000..480ebea29 --- /dev/null +++ b/configs/qemu_ppc64_pseries_defconfig @@ -0,0 +1,30 @@ +# Architecture +BR2_powerpc64=y +BR2_powerpc_power7=y + +# System +BR2_BINUTILS_VERSION_2_36_X=y +BR2_SYSTEM_DHCP="eth0" +BR2_TARGET_GENERIC_GETTY_PORT="hvc0" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_17=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.17.7" +BR2_LINUX_KERNEL_DEFCONFIG="pseries" +BR2_LINUX_KERNEL_VMLINUX=y + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_ppc64le_powernv8_defconfig b/configs/qemu_ppc64le_powernv8_defconfig new file mode 100644 index 000000000..8de4cf518 --- /dev/null +++ b/configs/qemu_ppc64le_powernv8_defconfig @@ -0,0 +1,30 @@ +# Architecture +BR2_powerpc64le=y +BR2_powerpc_power8=y + +# System +BR2_BINUTILS_VERSION_2_36_X=y +BR2_TARGET_GENERIC_GETTY_PORT="hvc0" +BR2_SYSTEM_DHCP="eth0" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_17=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.17.7" +BR2_LINUX_KERNEL_DEFCONFIG="powernv" +BR2_LINUX_KERNEL_VMLINUX=y + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_ppc64le_pseries_defconfig b/configs/qemu_ppc64le_pseries_defconfig new file mode 100644 index 000000000..98c6afdf9 --- /dev/null +++ b/configs/qemu_ppc64le_pseries_defconfig @@ -0,0 +1,30 @@ +# Architecture +BR2_powerpc64le=y +BR2_powerpc_power8=y + +# System +BR2_BINUTILS_VERSION_2_36_X=y +BR2_TARGET_GENERIC_GETTY_PORT="hvc0" +BR2_SYSTEM_DHCP="eth0" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_17=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.17.7" +BR2_LINUX_KERNEL_DEFCONFIG="pseries_le" +BR2_LINUX_KERNEL_VMLINUX=y + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_ppc_bamboo_defconfig b/configs/qemu_ppc_bamboo_defconfig new file mode 100644 index 000000000..f4cc5589e --- /dev/null +++ b/configs/qemu_ppc_bamboo_defconfig @@ -0,0 +1,36 @@ +# Architecture +BR2_powerpc=y +BR2_powerpc_440fp=y + +# System +BR2_SYSTEM_DHCP="eth0" + +# Filesystem +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_ROOTFS_INITRAMFS=y + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_17=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.17.7" +BR2_LINUX_KERNEL_DEFCONFIG="44x/bamboo" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/qemu/ppc-bamboo/linux.fragment" +BR2_LINUX_KERNEL_VMLINUX=y + +# Serial port config +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" + +# Kernel needs mkimage +BR2_PACKAGE_HOST_UBOOT_TOOLS=y + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_ppc_e500mc_defconfig b/configs/qemu_ppc_e500mc_defconfig new file mode 100644 index 000000000..0a1877c44 --- /dev/null +++ b/configs/qemu_ppc_e500mc_defconfig @@ -0,0 +1,30 @@ +# Architecture +BR2_powerpc=y +BR2_powerpc_e500mc=y + +# System +BR2_SYSTEM_DHCP="eth0" +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as the kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_17=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.17.7" +BR2_LINUX_KERNEL_DEFCONFIG="corenet32_smp" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/qemu/ppc-e500mc/linux.fragment" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_ppc_g3beige_defconfig b/configs/qemu_ppc_g3beige_defconfig new file mode 100644 index 000000000..1c11bcf77 --- /dev/null +++ b/configs/qemu_ppc_g3beige_defconfig @@ -0,0 +1,33 @@ +# Architecture +BR2_powerpc=y +BR2_powerpc_750=y + +# System +BR2_SYSTEM_DHCP="eth0" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_17=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.17.7" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/ppc-g3beige/linux.config" +BR2_LINUX_KERNEL_VMLINUX=y + +# Serial port config +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_ppc_mac99_defconfig b/configs/qemu_ppc_mac99_defconfig new file mode 100644 index 000000000..2331041c2 --- /dev/null +++ b/configs/qemu_ppc_mac99_defconfig @@ -0,0 +1,34 @@ +# Architecture +BR2_powerpc=y +BR2_powerpc_7400=y + +# System +BR2_SYSTEM_DHCP="eth0" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_17=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.17.7" +BR2_LINUX_KERNEL_DEFCONFIG="pmac32" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/qemu/ppc-mac99/linux.fragment" +BR2_LINUX_KERNEL_VMLINUX=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Serial port config +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" + +# Filesystem +BR2_TARGET_ROOTFS_CPIO=y +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_ppc_mpc8544ds_defconfig b/configs/qemu_ppc_mpc8544ds_defconfig new file mode 100644 index 000000000..b9a0812d5 --- /dev/null +++ b/configs/qemu_ppc_mpc8544ds_defconfig @@ -0,0 +1,37 @@ +# Architecture +BR2_powerpc=y +BR2_powerpc_8548=y + +# System +BR2_GLOBAL_PATCH_DIR="board/qemu/ppc-mpc8544ds/patches" +BR2_SYSTEM_DHCP="eth0" + +# Filesystem +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_ROOTFS_INITRAMFS=y + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_17=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.17.7" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/ppc-mpc8544ds/linux.config" +BR2_LINUX_KERNEL_VMLINUX=y + +# Serial port config +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" + +# Kernel needs mkimage +BR2_PACKAGE_HOST_UBOOT_TOOLS=y + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_riscv32_virt_defconfig b/configs/qemu_riscv32_virt_defconfig new file mode 100644 index 000000000..faf4e1e31 --- /dev/null +++ b/configs/qemu_riscv32_virt_defconfig @@ -0,0 +1,32 @@ +# Architecture +BR2_riscv=y +BR2_RISCV_32=y + +# System +BR2_SYSTEM_DHCP="eth0" +BR2_TARGET_GENERIC_GETTY=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.43" +BR2_LINUX_KERNEL_DEFCONFIG="rv32" +BR2_LINUX_KERNEL_IMAGE=y + +# Bootloader +BR2_TARGET_OPENSBI=y +BR2_TARGET_OPENSBI_PLAT="generic" + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_riscv64_nommu_virt_defconfig b/configs/qemu_riscv64_nommu_virt_defconfig new file mode 100644 index 000000000..5fab255d8 --- /dev/null +++ b/configs/qemu_riscv64_nommu_virt_defconfig @@ -0,0 +1,31 @@ +# Architecture +BR2_riscv=y +BR2_RISCV_64=y +# BR2_RISCV_USE_MMU is not set + +# Busybox with hush +BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config" + +# System +BR2_TARGET_GENERIC_GETTY=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.19" +BR2_LINUX_KERNEL_DEFCONFIG="nommu_virt" +BR2_LINUX_KERNEL_IMAGE=y + +# Disable network scripts +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_riscv64_virt_defconfig b/configs/qemu_riscv64_virt_defconfig new file mode 100644 index 000000000..c455680ee --- /dev/null +++ b/configs/qemu_riscv64_virt_defconfig @@ -0,0 +1,32 @@ +# Architecture +BR2_riscv=y +BR2_RISCV_64=y + +# System +BR2_SYSTEM_DHCP="eth0" +BR2_TARGET_GENERIC_GETTY=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.43" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_IMAGE=y + +# Bootloader +BR2_TARGET_OPENSBI=y +BR2_TARGET_OPENSBI_PLAT="generic" + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_s390x_defconfig b/configs/qemu_s390x_defconfig new file mode 100644 index 000000000..346df04ad --- /dev/null +++ b/configs/qemu_s390x_defconfig @@ -0,0 +1,26 @@ +# Architecture +BR2_s390x=y + +# System +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y +BR2_SYSTEM_DHCP="eth0" + +# Filesystem +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.18" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_sh4_r2d_defconfig b/configs/qemu_sh4_r2d_defconfig new file mode 100644 index 000000000..0f12b7dfe --- /dev/null +++ b/configs/qemu_sh4_r2d_defconfig @@ -0,0 +1,30 @@ +# Architecture +BR2_sh=y +BR2_sh4=y + +# System +BR2_SYSTEM_DHCP="eth0" +BR2_TARGET_GENERIC_GETTY_PORT="ttySC1" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Linux kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.18" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/sh4-r2d/linux.config" +BR2_LINUX_KERNEL_ZIMAGE=y + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_sh4eb_r2d_defconfig b/configs/qemu_sh4eb_r2d_defconfig new file mode 100644 index 000000000..d5ee371e7 --- /dev/null +++ b/configs/qemu_sh4eb_r2d_defconfig @@ -0,0 +1,29 @@ +# Architecture +BR2_sh=y +BR2_sh4eb=y + +# System +BR2_TARGET_GENERIC_GETTY_PORT="ttySC1" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Linux kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.18" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/sh4eb-r2d/linux.config" +BR2_LINUX_KERNEL_ZIMAGE=y + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_sparc64_sun4u_defconfig b/configs/qemu_sparc64_sun4u_defconfig new file mode 100644 index 000000000..485b497e7 --- /dev/null +++ b/configs/qemu_sparc64_sun4u_defconfig @@ -0,0 +1,28 @@ +# Architecture +BR2_sparc64=y +BR2_sparc_v9=y + +# System +BR2_SYSTEM_DHCP="eth0" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Linux kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.18" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/sparc64-sun4u/linux.config" + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_sparc_ss10_defconfig b/configs/qemu_sparc_ss10_defconfig new file mode 100644 index 000000000..2ba04c086 --- /dev/null +++ b/configs/qemu_sparc_ss10_defconfig @@ -0,0 +1,28 @@ +# Architecture +BR2_sparc=y +BR2_sparc_v8=y + +# System +BR2_SYSTEM_DHCP="eth0" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Linux kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.18" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/sparc-ss10/linux.config" + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_x86_64_defconfig b/configs/qemu_x86_64_defconfig new file mode 100644 index 000000000..cc505a854 --- /dev/null +++ b/configs/qemu_x86_64_defconfig @@ -0,0 +1,31 @@ +# Architecture +BR2_x86_64=y + +# System +BR2_SYSTEM_DHCP="eth0" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Image +BR2_ROOTFS_POST_BUILD_SCRIPT="board/qemu/x86_64/post-build.sh" + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.18" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/x86_64/linux.config" +BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_x86_defconfig b/configs/qemu_x86_defconfig new file mode 100644 index 000000000..34b7e2d29 --- /dev/null +++ b/configs/qemu_x86_defconfig @@ -0,0 +1,31 @@ +# Architecture +BR2_i386=y +BR2_x86_pentiumpro=y + +# System +BR2_SYSTEM_DHCP="eth0" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Image +BR2_ROOTFS_POST_BUILD_SCRIPT="board/qemu/x86/post-build.sh" + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.18" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/x86/linux.config" + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_xtensa_lx60_defconfig b/configs/qemu_xtensa_lx60_defconfig new file mode 100644 index 000000000..cb7810609 --- /dev/null +++ b/configs/qemu_xtensa_lx60_defconfig @@ -0,0 +1,36 @@ +# Architecture +BR2_xtensa=y +BR2_XTENSA_CUSTOM=y +BR2_XTENSA_OVERLAY_FILE="https://github.com/jcmvbkbc/xtensa-toolchain-build/raw/95291b7c39e6f790d0b2f062c945a630290f2c81/overlays/xtensa_dc233c.tar.gz" + +# System +BR2_SYSTEM_DHCP="eth0" +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" + +# Filesystem +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_ROOTFS_INITRAMFS=y + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.18" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/xtensa-lx60/linux.config" +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y +BR2_LINUX_KERNEL_IMAGE_NAME="Image.elf" +BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="Image" + +# Kernel needs mkimage +BR2_PACKAGE_HOST_UBOOT_TOOLS=y + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/qemu_xtensa_lx60_nommu_defconfig b/configs/qemu_xtensa_lx60_nommu_defconfig new file mode 100644 index 000000000..4be1b66ed --- /dev/null +++ b/configs/qemu_xtensa_lx60_nommu_defconfig @@ -0,0 +1,40 @@ +# Architecture +BR2_xtensa=y +BR2_XTENSA_CUSTOM=y +BR2_XTENSA_OVERLAY_FILE="https://github.com/jcmvbkbc/xtensa-toolchain-build/raw/95291b7c39e6f790d0b2f062c945a630290f2c81/overlays/xtensa_dc233c.tar.gz" +# BR2_XTENSA_USE_MMU is not set + +# Use minimal busybox with hush and networking tools +BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config" + +# System +BR2_SYSTEM_DHCP="eth0" +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" + +# Filesystem +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_ROOTFS_INITRAMFS=y + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.18" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/xtensa-lx60/linux-nommu.config" +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y +BR2_LINUX_KERNEL_IMAGE_NAME="Image.elf" +BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="Image" + +# Kernel needs mkimage +BR2_PACKAGE_HOST_UBOOT_TOOLS=y + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y diff --git a/configs/raspberrypi0_defconfig b/configs/raspberrypi0_defconfig new file mode 100644 index 000000000..4506e94bc --- /dev/null +++ b/configs/raspberrypi0_defconfig @@ -0,0 +1,39 @@ +BR2_arm=y +BR2_arm1176jzf_s=y +BR2_ARM_EABIHF=y + +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y + +BR2_TOOLCHAIN_BUILDROOT_CXX=y + +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,0b54dbda3cca2beb51e236a25738784e90853b64)/linux-0b54dbda3cca2beb51e236a25738784e90853b64.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="bcmrpi" + +# Build the DTBs for A/B from the kernel sources: the zero is the same +# as the A+ model, just in a different form-factor +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2708-rpi-zero" + +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +BR2_PACKAGE_RPI_FIRMWARE=y +BR2_PACKAGE_RPI_FIRMWARE_BOOTCODE_BIN=y +BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI=y +BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE="board/raspberrypi0/config_default.txt" +# BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTB_OVERLAYS is not set + +# Required tools to create the SD image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# Filesystem / image +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +# BR2_TARGET_ROOTFS_TAR is not set +BR2_ROOTFS_POST_BUILD_SCRIPT="board/raspberrypi0/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/raspberrypi0/post-image.sh" diff --git a/configs/raspberrypi0w_defconfig b/configs/raspberrypi0w_defconfig new file mode 100644 index 000000000..7a35794c2 --- /dev/null +++ b/configs/raspberrypi0w_defconfig @@ -0,0 +1,34 @@ +BR2_arm=y +BR2_arm1176jzf_s=y +BR2_ARM_EABIHF=y + +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y + +BR2_TOOLCHAIN_BUILDROOT_CXX=y + +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,0b54dbda3cca2beb51e236a25738784e90853b64)/linux-0b54dbda3cca2beb51e236a25738784e90853b64.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="bcmrpi" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2708-rpi-zero-w" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +BR2_PACKAGE_RPI_FIRMWARE=y +BR2_PACKAGE_RPI_FIRMWARE_BOOTCODE_BIN=y +BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI=y +BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE="board/raspberrypi0w/config_0w.txt" + +# Required tools to create the SD image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# Filesystem / image +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +# BR2_TARGET_ROOTFS_TAR is not set +BR2_ROOTFS_POST_BUILD_SCRIPT="board/raspberrypi0w/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/raspberrypi0w/post-image.sh" diff --git a/configs/raspberrypi2_defconfig b/configs/raspberrypi2_defconfig new file mode 100644 index 000000000..9b484c558 --- /dev/null +++ b/configs/raspberrypi2_defconfig @@ -0,0 +1,41 @@ +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_EABIHF=y +BR2_ARM_FPU_NEON_VFPV4=y + +BR2_TOOLCHAIN_BUILDROOT_CXX=y + +BR2_SYSTEM_DHCP="eth0" + +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y + +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,0b54dbda3cca2beb51e236a25738784e90853b64)/linux-0b54dbda3cca2beb51e236a25738784e90853b64.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="bcm2709" + +# Build the DTB from the kernel sources +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2709-rpi-2-b" + +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +BR2_PACKAGE_RPI_FIRMWARE=y +BR2_PACKAGE_RPI_FIRMWARE_BOOTCODE_BIN=y +BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI=y +BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE="board/raspberrypi/config_default.txt" +# BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTB_OVERLAYS is not set + +# Required tools to create the SD image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# Filesystem / image +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +# BR2_TARGET_ROOTFS_TAR is not set +BR2_ROOTFS_POST_BUILD_SCRIPT="board/raspberrypi2/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/raspberrypi2/post-image.sh" diff --git a/configs/raspberrypi3_64_defconfig b/configs/raspberrypi3_64_defconfig new file mode 100644 index 000000000..4d838ae0e --- /dev/null +++ b/configs/raspberrypi3_64_defconfig @@ -0,0 +1,39 @@ +BR2_aarch64=y +BR2_cortex_a53=y +BR2_ARM_FPU_VFPV4=y + +BR2_TOOLCHAIN_BUILDROOT_CXX=y + +BR2_SYSTEM_DHCP="eth0" + +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y + +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,0b54dbda3cca2beb51e236a25738784e90853b64)/linux-0b54dbda3cca2beb51e236a25738784e90853b64.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="bcmrpi3" + +# Build the DTB from the kernel sources +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm2710-rpi-3-b broadcom/bcm2710-rpi-3-b-plus broadcom/bcm2837-rpi-3-b" + +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +BR2_PACKAGE_RPI_FIRMWARE=y +BR2_PACKAGE_RPI_FIRMWARE_BOOTCODE_BIN=y +BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI=y +BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE="board/raspberrypi3-64/config_3_64bit.txt" + +# Required tools to create the SD image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# Filesystem / image +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +# BR2_TARGET_ROOTFS_TAR is not set +BR2_ROOTFS_POST_BUILD_SCRIPT="board/raspberrypi3-64/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/raspberrypi3-64/post-image.sh" diff --git a/configs/raspberrypi3_defconfig b/configs/raspberrypi3_defconfig new file mode 100644 index 000000000..0a59ab42a --- /dev/null +++ b/configs/raspberrypi3_defconfig @@ -0,0 +1,39 @@ +BR2_arm=y +BR2_cortex_a53=y +BR2_ARM_FPU_NEON_VFPV4=y + +BR2_TOOLCHAIN_BUILDROOT_CXX=y + +BR2_SYSTEM_DHCP="eth0" + +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y + +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,0b54dbda3cca2beb51e236a25738784e90853b64)/linux-0b54dbda3cca2beb51e236a25738784e90853b64.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="bcm2709" + +# Build the DTB from the kernel sources +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2710-rpi-3-b bcm2710-rpi-3-b-plus bcm2710-rpi-cm3" + +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +BR2_PACKAGE_RPI_FIRMWARE=y +BR2_PACKAGE_RPI_FIRMWARE_BOOTCODE_BIN=y +BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI=y +BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE="board/raspberrypi3/config_3.txt" + +# Required tools to create the SD image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# Filesystem / image +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +# BR2_TARGET_ROOTFS_TAR is not set +BR2_ROOTFS_POST_BUILD_SCRIPT="board/raspberrypi3/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/raspberrypi3/post-image.sh" diff --git a/configs/raspberrypi3_qt5we_defconfig b/configs/raspberrypi3_qt5we_defconfig new file mode 100644 index 000000000..40d0c0f88 --- /dev/null +++ b/configs/raspberrypi3_qt5we_defconfig @@ -0,0 +1,53 @@ +BR2_arm=y +BR2_cortex_a53=y +BR2_ARM_FPU_NEON_VFPV4=y + +BR2_TOOLCHAIN_BUILDROOT_GLIBC=y +BR2_TOOLCHAIN_BUILDROOT_CXX=y + +BR2_SYSTEM_DHCP="eth0" + +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y + +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,0b54dbda3cca2beb51e236a25738784e90853b64)/linux-0b54dbda3cca2beb51e236a25738784e90853b64.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="bcm2709" + +# Build the DTB from the kernel sources +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2710-rpi-3-b bcm2710-rpi-3-b-plus bcm2710-rpi-cm3" + +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Build Qt5 WebEngine +BR2_PACKAGE_LIBERATION=y +BR2_PACKAGE_QT5=y +BR2_PACKAGE_QT5BASE_EXAMPLES=y +BR2_PACKAGE_QT5BASE_GIF=y +BR2_PACKAGE_QT5BASE_JPEG=y +BR2_PACKAGE_QT5BASE_PNG=y +BR2_PACKAGE_QT5WEBENGINE=y +BR2_PACKAGE_QT5WEBENGINE_PROPRIETARY_CODECS=y +BR2_PACKAGE_RPI_FIRMWARE=y +BR2_PACKAGE_RPI_FIRMWARE_BOOTCODE_BIN=y +BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI=y +BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE="board/raspberrypi3/config_3_qt5we.txt" +BR2_PACKAGE_RPI_USERLAND=y +BR2_PACKAGE_CA_CERTIFICATES=y +BR2_PACKAGE_NTP=y + +# Required tools to create the SD image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# Filesystem / image +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="400M" +# BR2_TARGET_ROOTFS_TAR is not set +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y +BR2_ROOTFS_POST_BUILD_SCRIPT="board/raspberrypi3/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/raspberrypi3/post-image.sh" diff --git a/configs/raspberrypi4_64_defconfig b/configs/raspberrypi4_64_defconfig new file mode 100644 index 000000000..5942f7c4e --- /dev/null +++ b/configs/raspberrypi4_64_defconfig @@ -0,0 +1,38 @@ +BR2_aarch64=y +BR2_cortex_a72=y +BR2_ARM_FPU_VFPV4=y + +BR2_TOOLCHAIN_BUILDROOT_CXX=y + +BR2_SYSTEM_DHCP="eth0" + +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y + +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,0b54dbda3cca2beb51e236a25738784e90853b64)/linux-0b54dbda3cca2beb51e236a25738784e90853b64.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="bcm2711" + +# Build the DTB from the kernel sources +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm2711-rpi-4-b" + +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +BR2_PACKAGE_RPI_FIRMWARE=y +BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4=y +BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE="board/raspberrypi4-64/config_4_64bit.txt" + +# Required tools to create the SD image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# Filesystem / image +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +# BR2_TARGET_ROOTFS_TAR is not set +BR2_ROOTFS_POST_BUILD_SCRIPT="board/raspberrypi4-64/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/raspberrypi4-64/post-image.sh" diff --git a/configs/raspberrypi4_defconfig b/configs/raspberrypi4_defconfig new file mode 100644 index 000000000..4e5580c14 --- /dev/null +++ b/configs/raspberrypi4_defconfig @@ -0,0 +1,38 @@ +BR2_arm=y +BR2_cortex_a72=y +BR2_ARM_FPU_NEON_VFPV4=y + +BR2_TOOLCHAIN_BUILDROOT_CXX=y + +BR2_SYSTEM_DHCP="eth0" + +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y + +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,0b54dbda3cca2beb51e236a25738784e90853b64)/linux-0b54dbda3cca2beb51e236a25738784e90853b64.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="bcm2711" + +# Build the DTB from the kernel sources +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2711-rpi-4-b" + +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +BR2_PACKAGE_RPI_FIRMWARE=y +BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4=y +BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE="board/raspberrypi4/config_4.txt" + +# Required tools to create the SD image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# Filesystem / image +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +# BR2_TARGET_ROOTFS_TAR is not set +BR2_ROOTFS_POST_BUILD_SCRIPT="board/raspberrypi4/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/raspberrypi4/post-image.sh" diff --git a/configs/raspberrypi_defconfig b/configs/raspberrypi_defconfig new file mode 100644 index 000000000..cca53f9b3 --- /dev/null +++ b/configs/raspberrypi_defconfig @@ -0,0 +1,40 @@ +BR2_arm=y +BR2_arm1176jzf_s=y +BR2_ARM_EABIHF=y + +BR2_SYSTEM_DHCP="eth0" + +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y + +BR2_TOOLCHAIN_BUILDROOT_CXX=y + +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,0b54dbda3cca2beb51e236a25738784e90853b64)/linux-0b54dbda3cca2beb51e236a25738784e90853b64.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="bcmrpi" + +# Build the DTBs for A/B, A+/B+ and compute module from the kernel sources +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2708-rpi-b bcm2708-rpi-b-plus bcm2708-rpi-cm" + +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +BR2_PACKAGE_RPI_FIRMWARE=y +BR2_PACKAGE_RPI_FIRMWARE_BOOTCODE_BIN=y +BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI=y +BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE="board/raspberrypi/config_default.txt" +# BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTB_OVERLAYS is not set + +# Required tools to create the SD image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# Filesystem / image +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +# BR2_TARGET_ROOTFS_TAR is not set +BR2_ROOTFS_POST_BUILD_SCRIPT="board/raspberrypi/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/raspberrypi/post-image.sh" diff --git a/configs/raspberrypicm4io_64_defconfig b/configs/raspberrypicm4io_64_defconfig new file mode 100644 index 000000000..29cb0472d --- /dev/null +++ b/configs/raspberrypicm4io_64_defconfig @@ -0,0 +1,41 @@ +BR2_aarch64=y +BR2_cortex_a72=y +BR2_ARM_FPU_VFPV4=y + +BR2_TOOLCHAIN_BUILDROOT_CXX=y + +BR2_SYSTEM_DHCP="eth0" + +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y + +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,0b54dbda3cca2beb51e236a25738784e90853b64)/linux-0b54dbda3cca2beb51e236a25738784e90853b64.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="bcm2711" + +# Build the DTB from the kernel sources +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm2711-rpi-cm4" + +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +BR2_PACKAGE_RPI_FIRMWARE=y +BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4=y +BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE="board/raspberrypicm4io-64/config_cm4io_64bit.txt" + +# Required tools to create the SD image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# Required tool to flash CM4 eMMC memory +BR2_PACKAGE_HOST_RASPBERRYPI_USBBOOT=y + +# Filesystem / image +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +# BR2_TARGET_ROOTFS_TAR is not set +BR2_ROOTFS_POST_BUILD_SCRIPT="board/raspberrypicm4io-64/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/raspberrypicm4io-64/post-image.sh" diff --git a/configs/raspberrypicm4io_defconfig b/configs/raspberrypicm4io_defconfig new file mode 100644 index 000000000..017aecc0d --- /dev/null +++ b/configs/raspberrypicm4io_defconfig @@ -0,0 +1,41 @@ +BR2_arm=y +BR2_cortex_a72=y +BR2_ARM_FPU_NEON_VFPV4=y + +BR2_TOOLCHAIN_BUILDROOT_CXX=y + +BR2_SYSTEM_DHCP="eth0" + +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y + +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,0b54dbda3cca2beb51e236a25738784e90853b64)/linux-0b54dbda3cca2beb51e236a25738784e90853b64.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="bcm2711" + +# Build the DTB from the kernel sources +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2711-rpi-cm4" + +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +BR2_PACKAGE_RPI_FIRMWARE=y +BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4=y +BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE="board/raspberrypicm4io-64/config_cm4io.txt" + +# Required tools to create the SD image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# Required tool to flash CM4 eMMC memory +BR2_PACKAGE_HOST_RASPBERRYPI_USBBOOT=y + +# Filesystem / image +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +# BR2_TARGET_ROOTFS_TAR is not set +BR2_ROOTFS_POST_BUILD_SCRIPT="board/raspberrypicm4io/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/raspberrypicm4io/post-image.sh" diff --git a/configs/raspberrypizero2w_defconfig b/configs/raspberrypizero2w_defconfig new file mode 100644 index 000000000..2ea503ca2 --- /dev/null +++ b/configs/raspberrypizero2w_defconfig @@ -0,0 +1,36 @@ +BR2_arm=y +BR2_cortex_a53=y +BR2_ARM_FPU_NEON_VFPV4=y + +# Linux headers same as kernel, 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y + +BR2_TOOLCHAIN_BUILDROOT_CXX=y + +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,0b54dbda3cca2beb51e236a25738784e90853b64)/linux-0b54dbda3cca2beb51e236a25738784e90853b64.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="bcm2709" + +# Build the DTB from the kernel sources +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2710-rpi-zero-2-w" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +BR2_PACKAGE_RPI_FIRMWARE=y +BR2_PACKAGE_RPI_FIRMWARE_BOOTCODE_BIN=y +BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI=y +BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE="board/raspberrypizero2w/config_zero2w.txt" + +# MicroSD images generation tools +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# Filesystem / image +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +# BR2_TARGET_ROOTFS_TAR is not set +BR2_ROOTFS_POST_BUILD_SCRIPT="board/raspberrypizero2w/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/raspberrypizero2w/post-image.sh" diff --git a/configs/riotboard_defconfig b/configs/riotboard_defconfig new file mode 100644 index 000000000..3efcd8859 --- /dev/null +++ b/configs/riotboard_defconfig @@ -0,0 +1,42 @@ +# architecture +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_FPU_VFPV3=y + +# system +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc1" + +# bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.07" +BR2_TARGET_UBOOT_BOARDNAME="riotboard" +BR2_TARGET_UBOOT_FORMAT_IMX=y + +# Linux headers same as kernel, a 4.18 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_18=y + +# kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.18.10" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6dl-riotboard" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# required tools to create the SD card image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# rootfs +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_ROOTFS_OVERLAY="board/embest/riotboard/rootfs_overlay" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/embest/riotboard/genimage.cfg" diff --git a/configs/roc_pc_rk3399_defconfig b/configs/roc_pc_rk3399_defconfig new file mode 100644 index 000000000..ae7cf19a8 --- /dev/null +++ b/configs/roc_pc_rk3399_defconfig @@ -0,0 +1,55 @@ +# Architecture +BR2_aarch64=y +BR2_cortex_a72_a53=y + +# Linux headers same as kernel, a 5.4 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4=y + +# Firmware +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="11a0a46a899fcc3b1fdb214b382f3d7495d88eca" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="rk3399" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_ARM32_TOOLCHAIN=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES="" + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2020.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="roc-pc-rk3399" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31_ELF=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb" +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="idbloader.img" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.18" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="rockchip/rk3399-roc-pc" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_GENERIC_HOSTNAME="roc-rk3399-pc" +BR2_TARGET_GENERIC_ISSUE="Welcome to ROC-RK3399-PC!" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/firefly/roc-rk3399-pc/genimage.cfg" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/firefly/roc-rk3399-pc/post-build.sh" diff --git a/configs/rock64_defconfig b/configs/rock64_defconfig new file mode 100644 index 000000000..2fae2298d --- /dev/null +++ b/configs/rock64_defconfig @@ -0,0 +1,40 @@ +BR2_aarch64=y +BR2_GLOBAL_PATCH_DIR="board/pine64/rock64/patches" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS2" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/pine64/rock64/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/pine64/rock64/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19.216" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="rockchip/rk3328-rock64" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="128M" +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE="v2.2" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="rk3328" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES="bl31/*.elf" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/ayufan-rock64/linux-mainline-u-boot.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="release-2020-07" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rock64-rk3328" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31_ELF=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb" +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="spl/u-boot-spl.bin tpl/u-boot-tpl.bin" +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y diff --git a/configs/rock_pi_4_defconfig b/configs/rock_pi_4_defconfig new file mode 100644 index 000000000..401a59bac --- /dev/null +++ b/configs/rock_pi_4_defconfig @@ -0,0 +1,55 @@ +# Architecture +BR2_aarch64=y +BR2_cortex_a72_a53=y + +# Linux headers same as kernel, a 5.4 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4=y + +# Firmware +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="11a0a46a899fcc3b1fdb214b382f3d7495d88eca" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="rk3399" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_ARM32_TOOLCHAIN=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES="" + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/amarula/u-boot-amarula.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="cf2747360fdd1eb0d51dd01a984c7c62c7f714fe" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rock-pi-4-rk3399" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31_ELF=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb" +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="idbloader.img" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.46" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="rockchip/rk3399-rock-pi-4" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_GENERIC_HOSTNAME="rockpi4" +BR2_TARGET_GENERIC_ISSUE="Welcome to ROCK_PI_4" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="96M" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/radxa/rockpi-4/genimage.cfg" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/radxa/rockpi-4/post-build.sh" diff --git a/configs/rock_pi_n10_defconfig b/configs/rock_pi_n10_defconfig new file mode 100644 index 000000000..c622839c8 --- /dev/null +++ b/configs/rock_pi_n10_defconfig @@ -0,0 +1,55 @@ +# Architecture +BR2_aarch64=y +BR2_cortex_a72_a53=y + +# Linux headers same as kernel, a 5.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_7=y + +# Firmware +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="11a0a46a899fcc3b1fdb214b382f3d7495d88eca" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="rk3399" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_ARM32_TOOLCHAIN=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES="" + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/amarula/u-boot-amarula.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="cf2747360fdd1eb0d51dd01a984c7c62c7f714fe" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rock-pi-n10-rk3399pro" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31_ELF=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb" +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="idbloader.img" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.7.2" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="rockchip/rk3399pro-rock-pi-n10" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_GENERIC_HOSTNAME="rockpi-n10" +BR2_TARGET_GENERIC_ISSUE="Welcome to ROCKPI-N10" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="160M" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/radxa/rockpi-n10/genimage.cfg" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/radxa/rockpi-n10/post-build.sh" diff --git a/configs/rock_pi_n8_defconfig b/configs/rock_pi_n8_defconfig new file mode 100644 index 000000000..b7135d631 --- /dev/null +++ b/configs/rock_pi_n8_defconfig @@ -0,0 +1,46 @@ +# Architecture +BR2_arm=y +BR2_cortex_a17=y +BR2_ARM_FPU_NEON_VFPV4=y + +# Linux headers same as kernel, a 5.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_7=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/amarula/u-boot-amarula.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="ba120841bf40ebaed049d64bb4f980083a1cf6b7" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rock-pi-n8-rk3288" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_FORMAT_DTB_IMG=y +BR2_TARGET_UBOOT_FORMAT_DTB_BIN=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="idbloader.img" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/amarula/linux-amarula.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="5dcb0132685b07beb82065c5d7521e6c555c55b6" +BR2_LINUX_KERNEL_USE_DEFCONFIG=y +BR2_LINUX_KERNEL_DEFCONFIG="multi_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="rk3288-rock-pi-n8" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_GENERIC_HOSTNAME="rockpi-n8" +BR2_TARGET_GENERIC_ISSUE="Welcome to ROCKPI-N8" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/radxa/rockpi-n8/genimage.cfg" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/radxa/rockpi-n8/post-build.sh" diff --git a/configs/rockpro64_defconfig b/configs/rockpro64_defconfig new file mode 100644 index 000000000..d39640f85 --- /dev/null +++ b/configs/rockpro64_defconfig @@ -0,0 +1,52 @@ +# Architecture +BR2_aarch64=y +BR2_cortex_a72_a53=y + +# Linux headers same as kernel, a 5.8 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_8=y + +# Firmware +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE="v2.7" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="rk3399" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_ARM32_TOOLCHAIN=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES="" + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2020.07" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rockpro64-rk3399" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31_ELF=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb" +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="idbloader.img" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.8.2" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="rockchip/rk3399-rockpro64" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_GENERIC_HOSTNAME="rockpro64" +BR2_TARGET_GENERIC_ISSUE="Welcome to ROCKPRO64" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/pine64/rockpro64/genimage.cfg" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/pine64/rockpro64/post-build.sh" diff --git a/configs/roseapplepi_defconfig b/configs/roseapplepi_defconfig new file mode 100644 index 000000000..0f37d5dc0 --- /dev/null +++ b/configs/roseapplepi_defconfig @@ -0,0 +1,43 @@ +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_GLOBAL_PATCH_DIR="board/roseapplepi/patches" +# Linux headers same as kernel, a 5.15 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y +BR2_SYSTEM_DHCP="eth0" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/roseapplepi/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/roseapplepi/genimage.cfg" + +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.14" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/roseapplepi/linux.config" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x8000" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="owl-s500-roseapplepi" + +# Filesystem / image +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Bootloaders +BR2_TARGET_S500_BOOTLOADER=y +BR2_TARGET_S500_BOOTLOADER_BOARD="linux/bubble_gum_sd" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/xapp-le/u-boot.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="a035d2673a90143a1a74557503b2e137b1447ae6" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="actduino_bubble_gum_v10" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_FORMAT_DTB_IMG=y + +# Required tools to create the SD image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/s6lx9_microboard_defconfig b/configs/s6lx9_microboard_defconfig new file mode 100644 index 000000000..97b2d3fe7 --- /dev/null +++ b/configs/s6lx9_microboard_defconfig @@ -0,0 +1,13 @@ +BR2_microblaze=y +BR2_microblazeel=y +# Linux headers same as kernel, a 4.4 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyUL0" +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_ROOTFS_INITRAMFS=y +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.7" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/avnet/s6lx9_microboard/lx9_mmu_defconfig" +BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="board/avnet/s6lx9_microboard/lx9_mmu.dts" diff --git a/configs/sheevaplug_defconfig b/configs/sheevaplug_defconfig new file mode 100644 index 000000000..7f186df22 --- /dev/null +++ b/configs/sheevaplug_defconfig @@ -0,0 +1,34 @@ +# Architecture +BR2_arm=y +BR2_arm926t=y + +# system +BR2_GLOBAL_PATCH_DIR="board/sheevaplug/patches" +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" +BR2_SYSTEM_DHCP="eth0" + +# filesystem +BR2_TARGET_ROOTFS_JFFS2=y +BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_128K=y + +# Linux headers same as kernel, a 4.14 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_14=y + +# bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sheevaplug" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.07" +BR2_TARGET_UBOOT_FORMAT_KWB=y +# BR2_TARGET_UBOOT_NETWORK is not set + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.14.253" +BR2_LINUX_KERNEL_DEFCONFIG="mvebu_v5" +BR2_LINUX_KERNEL_APPENDED_UIMAGE=y +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x8000" +BR2_LINUX_KERNEL_INTREE_DTS_NAME="kirkwood-sheevaplug" diff --git a/configs/sipeed_maix_bit_defconfig b/configs/sipeed_maix_bit_defconfig new file mode 100644 index 000000000..d2bac9e0b --- /dev/null +++ b/configs/sipeed_maix_bit_defconfig @@ -0,0 +1,36 @@ +# Architecture +BR2_riscv=y +BR2_RISCV_64=y +BR2_riscv_custom=y +BR2_RISCV_ISA_CUSTOM_RVM=y +BR2_RISCV_ISA_CUSTOM_RVA=y +BR2_RISCV_ISA_CUSTOM_RVF=y +BR2_RISCV_ISA_CUSTOM_RVD=y +BR2_RISCV_ISA_CUSTOM_RVC=y +# BR2_RISCV_USE_MMU is not set +BR2_RISCV_ABI_LP64D=y + +# Binary format +BR2_BINFMT_FLAT=y +BR2_BINFMT_FLAT_ONE=y +# BR2_TARGET_ENABLE_ROOT_LOGIN is not set + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.19" +BR2_LINUX_KERNEL_DEFCONFIG="nommu_k210" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/sipeed/maix-bit/linux-cpio.config" +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y +BR2_LINUX_KERNEL_IMAGE_NAME="loader.bin" + +# Packages +BR2_PACKAGE_HOST_PYTHON_KFLASH=y +BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config" +BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES="board/canaan/k210-soc/busybox-tiny.config" +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set + +# Filesystem +BR2_INIT_NONE=y +BR2_TARGET_ROOTFS_INITRAMFS=y +BR2_ROOTFS_OVERLAY="board/canaan/k210-soc/rootfs_overlay" diff --git a/configs/sipeed_maix_bit_sdcard_defconfig b/configs/sipeed_maix_bit_sdcard_defconfig new file mode 100644 index 000000000..e1c9dc417 --- /dev/null +++ b/configs/sipeed_maix_bit_sdcard_defconfig @@ -0,0 +1,54 @@ +# Architecture +BR2_riscv=y +BR2_RISCV_64=y +BR2_riscv_custom=y +BR2_RISCV_ISA_CUSTOM_RVM=y +BR2_RISCV_ISA_CUSTOM_RVA=y +BR2_RISCV_ISA_CUSTOM_RVF=y +BR2_RISCV_ISA_CUSTOM_RVD=y +BR2_RISCV_ISA_CUSTOM_RVC=y +# BR2_RISCV_USE_MMU is not set +BR2_RISCV_ABI_LP64D=y + +# System +BR2_BINFMT_FLAT=y +BR2_BINFMT_FLAT_ONE=y +# BR2_TARGET_ENABLE_ROOT_LOGIN is not set + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.19" +BR2_LINUX_KERNEL_DEFCONFIG="nommu_k210_sdcard" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/canaan/k210-soc/linux-sdcard.config" +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y +BR2_LINUX_KERNEL_IMAGE_NAME="loader.bin" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="canaan/sipeed_maix_bit" + +# Packages +BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config" +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set + +# Filesystem +BR2_INIT_NONE=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_SIZE="64M" +BR2_ROOTFS_OVERLAY="board/canaan/k210-soc/rootfs_overlay" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/canaan/k210-soc/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/canaan/k210-soc/genimage.cfg" + +# Bootloader and related host tools +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.04" +BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/canaan/k210-soc/uboot.config" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sipeed_maix_bitm" +BR2_TARGET_UBOOT_FORMAT_BIN=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_PYTHON_KFLASH=y diff --git a/configs/sipeed_maix_dock_defconfig b/configs/sipeed_maix_dock_defconfig new file mode 100644 index 000000000..a7f0441e5 --- /dev/null +++ b/configs/sipeed_maix_dock_defconfig @@ -0,0 +1,36 @@ +# Architecture +BR2_riscv=y +BR2_RISCV_64=y +BR2_riscv_custom=y +BR2_RISCV_ISA_CUSTOM_RVM=y +BR2_RISCV_ISA_CUSTOM_RVA=y +BR2_RISCV_ISA_CUSTOM_RVF=y +BR2_RISCV_ISA_CUSTOM_RVD=y +BR2_RISCV_ISA_CUSTOM_RVC=y +# BR2_RISCV_USE_MMU is not set +BR2_RISCV_ABI_LP64D=y + +# Binary format +BR2_BINFMT_FLAT=y +BR2_BINFMT_FLAT_ONE=y +# BR2_TARGET_ENABLE_ROOT_LOGIN is not set + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.19" +BR2_LINUX_KERNEL_DEFCONFIG="nommu_k210" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/sipeed/maix-dock/linux-cpio.config" +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y +BR2_LINUX_KERNEL_IMAGE_NAME="loader.bin" + +# Packages +BR2_PACKAGE_HOST_PYTHON_KFLASH=y +BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config" +BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES="board/canaan/k210-soc/busybox-tiny.config" +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set + +# Filesystem +BR2_INIT_NONE=y +BR2_TARGET_ROOTFS_INITRAMFS=y +BR2_ROOTFS_OVERLAY="board/canaan/k210-soc/rootfs_overlay" diff --git a/configs/sipeed_maix_dock_sdcard_defconfig b/configs/sipeed_maix_dock_sdcard_defconfig new file mode 100644 index 000000000..6b7f8d9c6 --- /dev/null +++ b/configs/sipeed_maix_dock_sdcard_defconfig @@ -0,0 +1,54 @@ +# Architecture +BR2_riscv=y +BR2_RISCV_64=y +BR2_riscv_custom=y +BR2_RISCV_ISA_CUSTOM_RVM=y +BR2_RISCV_ISA_CUSTOM_RVA=y +BR2_RISCV_ISA_CUSTOM_RVF=y +BR2_RISCV_ISA_CUSTOM_RVD=y +BR2_RISCV_ISA_CUSTOM_RVC=y +# BR2_RISCV_USE_MMU is not set +BR2_RISCV_ABI_LP64D=y + +# System +BR2_BINFMT_FLAT=y +BR2_BINFMT_FLAT_ONE=y +# BR2_TARGET_ENABLE_ROOT_LOGIN is not set + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.19" +BR2_LINUX_KERNEL_DEFCONFIG="nommu_k210_sdcard" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/canaan/k210-soc/linux-sdcard.config" +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y +BR2_LINUX_KERNEL_IMAGE_NAME="loader.bin" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="canaan/sipeed_maix_dock" + +# Packages +BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config" +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set + +# Filesystem +BR2_INIT_NONE=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_SIZE="64M" +BR2_ROOTFS_OVERLAY="board/canaan/k210-soc/rootfs_overlay" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/canaan/k210-soc/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/canaan/k210-soc/genimage.cfg" + +# Bootloader and related host tools +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.04" +BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/canaan/k210-soc/uboot.config" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sipeed_maix_bitm" +BR2_TARGET_UBOOT_FORMAT_BIN=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_PYTHON_KFLASH=y diff --git a/configs/sipeed_maix_go_defconfig b/configs/sipeed_maix_go_defconfig new file mode 100644 index 000000000..a68f9d3b7 --- /dev/null +++ b/configs/sipeed_maix_go_defconfig @@ -0,0 +1,36 @@ +# Architecture +BR2_riscv=y +BR2_RISCV_64=y +BR2_riscv_custom=y +BR2_RISCV_ISA_CUSTOM_RVM=y +BR2_RISCV_ISA_CUSTOM_RVA=y +BR2_RISCV_ISA_CUSTOM_RVF=y +BR2_RISCV_ISA_CUSTOM_RVD=y +BR2_RISCV_ISA_CUSTOM_RVC=y +# BR2_RISCV_USE_MMU is not set +BR2_RISCV_ABI_LP64D=y + +# Binary format +BR2_BINFMT_FLAT=y +BR2_BINFMT_FLAT_ONE=y +# BR2_TARGET_ENABLE_ROOT_LOGIN is not set + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.19" +BR2_LINUX_KERNEL_DEFCONFIG="nommu_k210" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/sipeed/maix-go/linux-cpio.config" +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y +BR2_LINUX_KERNEL_IMAGE_NAME="loader.bin" + +# Packages +BR2_PACKAGE_HOST_PYTHON_KFLASH=y +BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config" +BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES="board/canaan/k210-soc/busybox-tiny.config" +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set + +# Filesystem +BR2_INIT_NONE=y +BR2_TARGET_ROOTFS_INITRAMFS=y +BR2_ROOTFS_OVERLAY="board/canaan/k210-soc/rootfs_overlay" diff --git a/configs/sipeed_maix_go_sdcard_defconfig b/configs/sipeed_maix_go_sdcard_defconfig new file mode 100644 index 000000000..a127872cd --- /dev/null +++ b/configs/sipeed_maix_go_sdcard_defconfig @@ -0,0 +1,54 @@ +# Architecture +BR2_riscv=y +BR2_RISCV_64=y +BR2_riscv_custom=y +BR2_RISCV_ISA_CUSTOM_RVM=y +BR2_RISCV_ISA_CUSTOM_RVA=y +BR2_RISCV_ISA_CUSTOM_RVF=y +BR2_RISCV_ISA_CUSTOM_RVD=y +BR2_RISCV_ISA_CUSTOM_RVC=y +# BR2_RISCV_USE_MMU is not set +BR2_RISCV_ABI_LP64D=y + +# System +BR2_BINFMT_FLAT=y +BR2_BINFMT_FLAT_ONE=y +# BR2_TARGET_ENABLE_ROOT_LOGIN is not set + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.19" +BR2_LINUX_KERNEL_DEFCONFIG="nommu_k210_sdcard" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/canaan/k210-soc/linux-sdcard.config" +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y +BR2_LINUX_KERNEL_IMAGE_NAME="loader.bin" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="canaan/sipeed_maix_go" + +# Packages +BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config" +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set + +# Filesystem +BR2_INIT_NONE=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_SIZE="64M" +BR2_ROOTFS_OVERLAY="board/canaan/k210-soc/rootfs_overlay" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/canaan/k210-soc/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/canaan/k210-soc/genimage.cfg" + +# Bootloader and related host tools +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.04" +BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/canaan/k210-soc/uboot.config" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sipeed_maix_bitm" +BR2_TARGET_UBOOT_FORMAT_BIN=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_PYTHON_KFLASH=y diff --git a/configs/sipeed_maixduino_defconfig b/configs/sipeed_maixduino_defconfig new file mode 100644 index 000000000..c52adb5db --- /dev/null +++ b/configs/sipeed_maixduino_defconfig @@ -0,0 +1,36 @@ +# Architecture +BR2_riscv=y +BR2_RISCV_64=y +BR2_riscv_custom=y +BR2_RISCV_ISA_CUSTOM_RVM=y +BR2_RISCV_ISA_CUSTOM_RVA=y +BR2_RISCV_ISA_CUSTOM_RVF=y +BR2_RISCV_ISA_CUSTOM_RVD=y +BR2_RISCV_ISA_CUSTOM_RVC=y +# BR2_RISCV_USE_MMU is not set +BR2_RISCV_ABI_LP64D=y + +# Binary format +BR2_BINFMT_FLAT=y +BR2_BINFMT_FLAT_ONE=y +# BR2_TARGET_ENABLE_ROOT_LOGIN is not set + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.19" +BR2_LINUX_KERNEL_DEFCONFIG="nommu_k210" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/sipeed/maixduino/linux-cpio.config" +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y +BR2_LINUX_KERNEL_IMAGE_NAME="loader.bin" + +# Packages +BR2_PACKAGE_HOST_PYTHON_KFLASH=y +BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config" +BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES="board/canaan/k210-soc/busybox-tiny.config" +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set + +# Filesystem +BR2_INIT_NONE=y +BR2_TARGET_ROOTFS_INITRAMFS=y +BR2_ROOTFS_OVERLAY="board/canaan/k210-soc/rootfs_overlay" diff --git a/configs/sipeed_maixduino_sdcard_defconfig b/configs/sipeed_maixduino_sdcard_defconfig new file mode 100644 index 000000000..baaa2bc7b --- /dev/null +++ b/configs/sipeed_maixduino_sdcard_defconfig @@ -0,0 +1,54 @@ +# Architecture +BR2_riscv=y +BR2_RISCV_64=y +BR2_riscv_custom=y +BR2_RISCV_ISA_CUSTOM_RVM=y +BR2_RISCV_ISA_CUSTOM_RVA=y +BR2_RISCV_ISA_CUSTOM_RVF=y +BR2_RISCV_ISA_CUSTOM_RVD=y +BR2_RISCV_ISA_CUSTOM_RVC=y +# BR2_RISCV_USE_MMU is not set +BR2_RISCV_ABI_LP64D=y + +# System +BR2_BINFMT_FLAT=y +BR2_BINFMT_FLAT_ONE=y +# BR2_TARGET_ENABLE_ROOT_LOGIN is not set + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.19" +BR2_LINUX_KERNEL_DEFCONFIG="nommu_k210_sdcard" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/canaan/k210-soc/linux-sdcard.config" +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y +BR2_LINUX_KERNEL_IMAGE_NAME="loader.bin" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="canaan/sipeed_maixduino" + +# Packages +BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config" +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set + +# Filesystem +BR2_INIT_NONE=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_SIZE="64M" +BR2_ROOTFS_OVERLAY="board/canaan/k210-soc/rootfs_overlay" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/canaan/k210-soc/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/canaan/k210-soc/genimage.cfg" + +# Bootloader and related host tools +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.04" +BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/canaan/k210-soc/uboot.config" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sipeed_maix_bitm" +BR2_TARGET_UBOOT_FORMAT_BIN=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_PYTHON_KFLASH=y diff --git a/configs/snps_arc700_axs101_defconfig b/configs/snps_arc700_axs101_defconfig new file mode 100644 index 000000000..3a6bd5c0d --- /dev/null +++ b/configs/snps_arc700_axs101_defconfig @@ -0,0 +1,29 @@ +# Architecture +BR2_arcle=y + +# System +BR2_TARGET_GENERIC_HOSTNAME="axs101" +BR2_TARGET_GENERIC_ISSUE="Welcome to the ARC Software Development Platform" +BR2_TARGET_ROOTFS_INITRAMFS=y +BR2_SYSTEM_DHCP="eth0" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/synopsys/axs10x/post-build.sh" + +# Linux headers same as kernel, a 5.16 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_16=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.16" +BR2_LINUX_KERNEL_DEFCONFIG="axs101" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="axs101" +BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/synopsys/axs10x/uboot-fragment.config" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y diff --git a/configs/snps_archs38_axs103_defconfig b/configs/snps_archs38_axs103_defconfig new file mode 100644 index 000000000..2002520d1 --- /dev/null +++ b/configs/snps_archs38_axs103_defconfig @@ -0,0 +1,30 @@ +# Architecture +BR2_arcle=y +BR2_archs38=y + +# System +BR2_TARGET_GENERIC_HOSTNAME="axs103" +BR2_TARGET_GENERIC_ISSUE="Welcome to the ARC Software Development Platform" +BR2_TARGET_ROOTFS_INITRAMFS=y +BR2_SYSTEM_DHCP="eth0" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/synopsys/axs10x/post-build.sh" + +# Linux headers same as kernel, a 5.16 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_16=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.16" +BR2_LINUX_KERNEL_DEFCONFIG="axs103_smp" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="axs103" +BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/synopsys/axs10x/uboot-fragment.config" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y diff --git a/configs/snps_archs38_haps_defconfig b/configs/snps_archs38_haps_defconfig new file mode 100644 index 000000000..02e020bb4 --- /dev/null +++ b/configs/snps_archs38_haps_defconfig @@ -0,0 +1,18 @@ +# Architecture +BR2_arcle=y +BR2_archs38=y + +# System +BR2_TARGET_GENERIC_HOSTNAME="zebu_hs" +BR2_TARGET_GENERIC_ISSUE="Welcome to the HAPS Development Platform" +BR2_TARGET_ROOTFS_INITRAMFS=y + +# Linux headers same as kernel, a 5.16 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_16=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.16" +BR2_LINUX_KERNEL_DEFCONFIG="haps_hs_smp" +BR2_LINUX_KERNEL_VMLINUX=y diff --git a/configs/snps_archs38_hsdk_defconfig b/configs/snps_archs38_hsdk_defconfig new file mode 100644 index 000000000..413ca5098 --- /dev/null +++ b/configs/snps_archs38_hsdk_defconfig @@ -0,0 +1,34 @@ +BR2_arcle=y +BR2_archs38_full=y +BR2_TOOLCHAIN_BUILDROOT_GLIBC=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_16=y +BR2_PACKAGE_GLIBC_UTILS=y +BR2_TOOLCHAIN_BUILDROOT_CXX=y +BR2_TARGET_OPTIMIZATION="-mfpu=fpud_all" +BR2_TARGET_GENERIC_HOSTNAME="hsdk" +BR2_TARGET_GENERIC_ISSUE="Welcome to the HSDK Platform" +BR2_SYSTEM_DHCP="eth0" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/synopsys/hsdk/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.16" +BR2_LINUX_KERNEL_DEFCONFIG="hsdk" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/synopsys/hsdk/linux.fragment" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="hsdk" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_FORMAT_ELF=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SOURCE="board/synopsys/hsdk/uboot.env.txt" +BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SIZE="0x4000" diff --git a/configs/socrates_cyclone5_defconfig b/configs/socrates_cyclone5_defconfig new file mode 100644 index 000000000..6ecbf05d8 --- /dev/null +++ b/configs/socrates_cyclone5_defconfig @@ -0,0 +1,32 @@ +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_FPU_NEON=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_16=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/altera/socrates_cyclone5/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.16.7" +BR2_LINUX_KERNEL_DEFCONFIG="socfpga" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="socfpga_cyclone5_socrates" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.03" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="socfpga_socrates" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_FORMAT_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_ALTERA_SOCFPGA_IMAGE_CRC=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SOURCE="board/altera/socrates_cyclone5/boot-env.txt" +BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SIZE="8192" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/solidrun_clearfog_defconfig b/configs/solidrun_clearfog_defconfig new file mode 100644 index 000000000..b73b9e8ec --- /dev/null +++ b/configs/solidrun_clearfog_defconfig @@ -0,0 +1,42 @@ +# Architecture +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_FPU_NEON=y + +# Linux headers same as kernel, a 4.20 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_20=y + +# System configuration +BR2_ROOTFS_POST_BUILD_SCRIPT="board/solidrun/clearfog/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/solidrun/clearfog/genimage.cfg" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.20" +BR2_LINUX_KERNEL_DEFCONFIG="mvebu_v7" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/solidrun/clearfog/linux.fragment" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="armada-388-clearfog-base" +BR2_LINUX_KERNEL_INSTALL_TARGET=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_PACKAGE_HOST_GENIMAGE=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2019.07" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="clearfog" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +# BR2_TARGET_UBOOT_FORMAT_BIN is not set +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-spl.kwb" diff --git a/configs/solidrun_clearfog_gt_8k_defconfig b/configs/solidrun_clearfog_gt_8k_defconfig new file mode 100644 index 000000000..bec4a7dac --- /dev/null +++ b/configs/solidrun_clearfog_gt_8k_defconfig @@ -0,0 +1,45 @@ +BR2_aarch64=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_TARGET_GENERIC_HOSTNAME="clearfog-gt-8k" +BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot for SolidRun Clearfog GT-8K" + +# Firmware +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE="v2.4" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="a80x0_mcbin" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_FIP=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_TARGETS="mrvl_flash" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="USE_COHERENT_MEM=0" +BR2_TARGET_BINARIES_MARVELL=y +BR2_TARGET_MV_DDR_MARVELL=y + +# U-Boot +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2020.10" +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="clearfog_gt_8k" +BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/solidrun/clearfog_gt_8k/uboot-fragment.config" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.5" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/solidrun/clearfog_gt_8k/linux-extras.config" +BR2_LINUX_KERNEL_INTREE_DTS_NAME="marvell/armada-8040-clearfog-gt-8k" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# rootfs +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/solidrun/clearfog_gt_8k/post-build-mainline.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/solidrun/clearfog_gt_8k/genimage.cfg" diff --git a/configs/solidrun_macchiatobin_defconfig b/configs/solidrun_macchiatobin_defconfig new file mode 100644 index 000000000..7d06313b0 --- /dev/null +++ b/configs/solidrun_macchiatobin_defconfig @@ -0,0 +1,47 @@ +BR2_aarch64=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_TARGET_GENERIC_HOSTNAME="mcbin" +BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot for Marvell MacchiatoBin" + +# Firmware +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE="v2.4" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="a80x0_mcbin" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_FIP=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_TARGETS="mrvl_flash" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="USE_COHERENT_MEM=0" +BR2_TARGET_BINARIES_MARVELL=y +BR2_TARGET_MV_DDR_MARVELL=y + +# U-Boot +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2020.10" +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_USE_DEFCONFIG=y +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="mvebu_mcbin-88f8040" +BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/solidrun/macchiatobin/uboot-fragment.config" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.5" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="marvell/armada-8040-mcbin" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/solidrun/macchiatobin/linux-extras.config" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# rootfs +BR2_TARGET_ROOTFS_TAR=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" + +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/solidrun/macchiatobin/genimage.cfg" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/solidrun/macchiatobin/post-build-mainline.sh" diff --git a/configs/spike_riscv64_defconfig b/configs/spike_riscv64_defconfig new file mode 100644 index 000000000..cc145bcd8 --- /dev/null +++ b/configs/spike_riscv64_defconfig @@ -0,0 +1,13 @@ +BR2_riscv=y +BR2_RISCV_64=y +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.13" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y +BR2_TARGET_ROOTFS_CPIO=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_OPENSBI=y +BR2_TARGET_OPENSBI_PLAT="generic" +BR2_TARGET_OPENSBI_LINUX_PAYLOAD=y +BR2_PACKAGE_HOST_RISCV_ISA_SIM=y diff --git a/configs/stm32f429_disco_xip_defconfig b/configs/stm32f429_disco_xip_defconfig new file mode 100644 index 000000000..f9b3270ec --- /dev/null +++ b/configs/stm32f429_disco_xip_defconfig @@ -0,0 +1,21 @@ +BR2_arm=y +BR2_cortex_m4=y +BR2_KERNEL_HEADERS_5_15=y +# BR2_UCLIBC_INSTALL_UTILS is not set +BR2_ENABLE_LTO=y +BR2_ROOTFS_POST_BUILD_SCRIPT="board/stmicroelectronics/common/stm32f4xx/stm32-post-build.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/stmicroelectronics/stm32f429-disco/linux.config" +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y +BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="xipImage" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="stm32f429-disco" +BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config" +BR2_TARGET_ROOTFS_INITRAMFS=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_AFBOOT_STM32=y +BR2_TARGET_AFBOOT_STM32_KERNEL_ADDR=0x0800C000 +BR2_PACKAGE_HOST_OPENOCD=y diff --git a/configs/stm32f469_disco_sd_defconfig b/configs/stm32f469_disco_sd_defconfig new file mode 100644 index 000000000..ea1361efc --- /dev/null +++ b/configs/stm32f469_disco_sd_defconfig @@ -0,0 +1,26 @@ +BR2_arm=y +BR2_cortex_m4=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_14=y +BR2_ROOTFS_POST_BUILD_SCRIPT="board/stmicroelectronics/common/stm32f4xx/stm32-post-build.sh board/stmicroelectronics/stm32f469-disco/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/stmicroelectronics/stm32f469-disco/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.14.12" +BR2_LINUX_KERNEL_DEFCONFIG="stm32" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(LINUX_DIR)/arch/arm/configs/dram_0x00000000.config board/stmicroelectronics/stm32f469-disco/linux-sd.fragment" +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y +BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="zImage" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="stm32f469-disco" +BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_SIZE="32M" +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="stm32f469-discovery" +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_OPENOCD=y diff --git a/configs/stm32f469_disco_xip_defconfig b/configs/stm32f469_disco_xip_defconfig new file mode 100644 index 000000000..fc3b3f921 --- /dev/null +++ b/configs/stm32f469_disco_xip_defconfig @@ -0,0 +1,21 @@ +BR2_arm=y +BR2_cortex_m4=y +BR2_KERNEL_HEADERS_5_15=y +# BR2_UCLIBC_INSTALL_UTILS is not set +BR2_ENABLE_LTO=y +BR2_ROOTFS_POST_BUILD_SCRIPT="board/stmicroelectronics/common/stm32f4xx/stm32-post-build.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.6" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/stmicroelectronics/stm32f469-disco/linux-xip.config" +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y +BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="xipImage" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="stm32f469-disco" +BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config" +BR2_TARGET_ROOTFS_INITRAMFS=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_AFBOOT_STM32=y +BR2_TARGET_AFBOOT_STM32_KERNEL_ADDR=0x0800C000 +BR2_PACKAGE_HOST_OPENOCD=y diff --git a/configs/stm32mp157a_dk1_defconfig b/configs/stm32mp157a_dk1_defconfig new file mode 100644 index 000000000..a487ce989 --- /dev/null +++ b/configs/stm32mp157a_dk1_defconfig @@ -0,0 +1,47 @@ +# Architecture +BR2_arm=y +BR2_cortex_a7=y + +# Linux headers same as kernel, a 5.13 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_13=y + +# System configuration +BR2_ROOTFS_OVERLAY="board/stmicroelectronics/stm32mp157a-dk1/overlay/" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/stmicroelectronics/common/stm32mp157/post-image.sh" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.13" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/stmicroelectronics/stm32mp157a-dk1/linux.config" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="stm32mp157a-dk1" +BR2_LINUX_KERNEL_INSTALL_TARGET=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +# BR2_TARGET_ROOTFS_TAR is not set + +# Bootloaders +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE="v2.5" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="stm32mp1" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="STM32MP_SDMMC=1 AARCH32_SP=sp_min DTB_FILE_NAME=stm32mp157a-dk1.dtb" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES="*.stm32" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_DTC=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="stm32mp15_trusted" +# BR2_TARGET_UBOOT_FORMAT_BIN is not set +BR2_TARGET_UBOOT_FORMAT_STM32=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="DEVICE_TREE=stm32mp157a-dk1" + +# Additional tools +BR2_PACKAGE_HOST_GENIMAGE=y diff --git a/configs/stm32mp157c_dk2_defconfig b/configs/stm32mp157c_dk2_defconfig new file mode 100644 index 000000000..f1f7baaa0 --- /dev/null +++ b/configs/stm32mp157c_dk2_defconfig @@ -0,0 +1,47 @@ +# Architecture +BR2_arm=y +BR2_cortex_a7=y + +# Linux headers same as kernel, a 5.13 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_13=y + +# System configuration +BR2_ROOTFS_OVERLAY="board/stmicroelectronics/stm32mp157c-dk2/overlay/" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/stmicroelectronics/common/stm32mp157/post-image.sh" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.13" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/stmicroelectronics/stm32mp157c-dk2/linux.config" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="stm32mp157c-dk2" +BR2_LINUX_KERNEL_INSTALL_TARGET=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +# BR2_TARGET_ROOTFS_TAR is not set + +# Bootloaders +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE="v2.5" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="stm32mp1" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="STM32MP_SDMMC=1 AARCH32_SP=sp_min DTB_FILE_NAME=stm32mp157c-dk2.dtb" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES="*.stm32" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_DTC=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="stm32mp15_trusted" +# BR2_TARGET_UBOOT_FORMAT_BIN is not set +BR2_TARGET_UBOOT_FORMAT_STM32=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="DEVICE_TREE=stm32mp157c-dk2" + +# Additional tools +BR2_PACKAGE_HOST_GENIMAGE=y diff --git a/configs/stm32mp157c_odyssey_defconfig b/configs/stm32mp157c_odyssey_defconfig new file mode 100644 index 000000000..6b699830b --- /dev/null +++ b/configs/stm32mp157c_odyssey_defconfig @@ -0,0 +1,34 @@ +BR2_arm=y +BR2_cortex_a7=y +BR2_GLOBAL_PATCH_DIR="board/seeed/stm32mp157c-odyssey/patches" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_ROOTFS_OVERLAY="board/seeed/stm32mp157c-odyssey/overlay/" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/seeed/stm32mp157c-odyssey/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.1" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/seeed/stm32mp157c-odyssey/linux.config" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="stm32mp157c-odyssey" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="stm32mp1" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="STM32MP_SDMMC=1 AARCH32_SP=sp_min DTB_FILE_NAME=stm32mp157c-odyssey.dtb" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES="*.stm32" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_DTC=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="stm32mp15_trusted" +BR2_TARGET_UBOOT_NEEDS_DTC=y +# BR2_TARGET_UBOOT_FORMAT_BIN is not set +BR2_TARGET_UBOOT_FORMAT_STM32=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="DEVICE_TREE=stm32mp157c-odyssey" +BR2_PACKAGE_HOST_GENIMAGE=y diff --git a/configs/terasic_de10nano_cyclone5_defconfig b/configs/terasic_de10nano_cyclone5_defconfig new file mode 100644 index 000000000..8fb7cf664 --- /dev/null +++ b/configs/terasic_de10nano_cyclone5_defconfig @@ -0,0 +1,31 @@ +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_FPU_NEON=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_11=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/terasic/de10nano_cyclone5/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/altera-opensource/linux-socfpga.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_socfpga-5.11_21.06.01_pr" +BR2_LINUX_KERNEL_DEFCONFIG="socfpga" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="socfpga_cyclone5_de0_nano_soc" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" +BR2_TARGET_BAREBOX=y +BR2_TARGET_BAREBOX_CUSTOM_VERSION=y +BR2_TARGET_BAREBOX_CUSTOM_VERSION_VALUE="2021.07.0" +BR2_TARGET_BAREBOX_BOARD_DEFCONFIG="socfpga" +BR2_TARGET_BAREBOX_IMAGE_FILE="images/barebox-socfpga-de10_nano.img" +BR2_TARGET_BAREBOX_CUSTOM_ENV=y +BR2_TARGET_BAREBOX_CUSTOM_ENV_PATH="board/terasic/de10nano_cyclone5/barebox-env" +BR2_TARGET_BAREBOX_AUX=y +BR2_TARGET_BAREBOX_AUX_BOARD_DEFCONFIG="socfpga-xload-2" +BR2_TARGET_BAREBOX_AUX_IMAGE_FILE="images/barebox-socfpga-de10_nano-xload.img" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/toradex_apalis_imx6_defconfig b/configs/toradex_apalis_imx6_defconfig new file mode 100644 index 000000000..40a2d2d52 --- /dev/null +++ b/configs/toradex_apalis_imx6_defconfig @@ -0,0 +1,25 @@ +BR2_arm=y +BR2_cortex_a9=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_9=y +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/toradex/apalis-imx6/post-image.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://git.toradex.com/linux-toradex.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="d899927728beca8357a5b4120b690cb3c1d80844" +BR2_LINUX_KERNEL_DEFCONFIG="apalis_imx6" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6q-apalis-eval imx6q-apalis-ixora imx6q-apalis-ixora-v1.1" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://git.toradex.com/u-boot-toradex.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="30a1208727729dae22cb42f9ba9ba17efe5e6f77" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="apalis_imx6" +BR2_TARGET_UBOOT_FORMAT_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="SPL" +BR2_PACKAGE_HOST_GENIMAGE=y diff --git a/configs/ts4900_defconfig b/configs/ts4900_defconfig new file mode 100644 index 000000000..e7950cea4 --- /dev/null +++ b/configs/ts4900_defconfig @@ -0,0 +1,16 @@ +BR2_arm=y +BR2_cortex_a9=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_12=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/technologic/ts4900/post-image.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.12" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x10008000" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6q-ts4900" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_PACKAGE_TS4900_FPGA=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_PACKAGE_HOST_GENIMAGE=y diff --git a/configs/ts5500_defconfig b/configs/ts5500_defconfig new file mode 100644 index 000000000..871c02e95 --- /dev/null +++ b/configs/ts5500_defconfig @@ -0,0 +1,26 @@ +# architecture +BR2_i386=y +BR2_x86_i586=y + +# Linux headers same as kernel, a 4.14 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_14=y + +# system +BR2_TARGET_GENERIC_GETTY_PORT="ttyS1" +BR2_ROOTFS_OVERLAY="board/technologic/ts5500/fs-overlay" + +# kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.14" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/technologic/ts5500/linux-4.14.config" +BR2_LINUX_KERNEL_INSTALL_TARGET=y + +# rootfs +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# bootloader +BR2_TARGET_SYSLINUX=y +BR2_TARGET_SYSLINUX_MBR=y diff --git a/configs/ts7680_defconfig b/configs/ts7680_defconfig new file mode 100644 index 000000000..9e058b1d7 --- /dev/null +++ b/configs/ts7680_defconfig @@ -0,0 +1,16 @@ +BR2_arm=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_9=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/technologic/ts7680/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,embeddedTS,linux-4.9.y,v4.9.311-ts)/linux-v4.9.311-ts.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="ts_imx28" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x40008000" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx28-ts7680" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_PACKAGE_HOST_GENIMAGE=y diff --git a/configs/uevm5432_defconfig b/configs/uevm5432_defconfig new file mode 100644 index 000000000..7b9a4309c --- /dev/null +++ b/configs/uevm5432_defconfig @@ -0,0 +1,46 @@ +# Architecture +BR2_arm=y +BR2_cortex_a15=y +BR2_ARM_FPU_NEON_VFPV4=y + +# Linux headers same as kernel, a 5.12 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_12=y + +# System +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS2" +BR2_SYSTEM_DHCP="eth0" + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/uevm5432/genimage.cfg" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.12.2" +BR2_LINUX_KERNEL_DEFCONFIG="omap2plus" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="omap5-uevm" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.04" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="omap5_uevm" +BR2_TARGET_UBOOT_FORMAT_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="MLO" + +# Required tools to create the SD card image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/wandboard_defconfig b/configs/wandboard_defconfig new file mode 100644 index 000000000..0966719d4 --- /dev/null +++ b/configs/wandboard_defconfig @@ -0,0 +1,46 @@ +# Architecture +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_FPU_VFPV3=y + +# Linux headers same as kernel, a 5.13 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_13=y + +# System +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" + +# Image +BR2_ROOTFS_OVERLAY="board/wandboard/rootfs_overlay" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.07" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="wandboard" +BR2_TARGET_UBOOT_FORMAT_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="SPL" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.13" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6q-wandboard imx6dl-wandboard imx6q-wandboard-revb1 imx6dl-wandboard-revb1 imx6q-wandboard-revd1 imx6dl-wandboard-revd1 imx6qp-wandboard-revd1" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# Required tools to create the SD image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y diff --git a/configs/warp7_defconfig b/configs/warp7_defconfig new file mode 100644 index 000000000..04dfc94f7 --- /dev/null +++ b/configs/warp7_defconfig @@ -0,0 +1,52 @@ +# architecture +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_FPU_NEON_VFPV4=y + +# Linux headers same as kernel, a 5.16 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_16=y + +# system +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" + +# rootfs overlay +BR2_ROOTFS_OVERLAY="board/warp7/rootfs_overlay" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.16.5" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx7s-warp" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +# U-Boot +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="warp7" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01" +BR2_TARGET_UBOOT_FORMAT_DTB_IMX=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y + +# wifi firmware for brcm43430 +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XXX=y + +# For automatic firmware loading +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y + +# wireless packages +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y + +# Filesystem +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# required tools to create the eMMC image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/warpboard_defconfig b/configs/warpboard_defconfig new file mode 100644 index 000000000..1655381aa --- /dev/null +++ b/configs/warpboard_defconfig @@ -0,0 +1,58 @@ +# architecture +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_FPU_VFPV3=y + +# Linux headers same as kernel, a 4.9 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_9=y + +# system +BR2_TARGET_GENERIC_HOSTNAME="warpboard" +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" + +# rootfs overlay +BR2_ROOTFS_OVERLAY="board/freescale/warpboard/rootfs_overlay" + +# kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.9" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/freescale/warpboard/linux.fragment" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6sl-warp" + +# wifi firmware for brcm4330 +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XX=y + +# For automatic firmware loading +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y + +# wireless packages +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y + +# uboot +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="warp" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.11" +BR2_TARGET_UBOOT_FORMAT_IMX=y + +# host utility +BR2_PACKAGE_HOST_DFU_UTIL=y +BR2_PACKAGE_HOST_IMX_USB_LOADER=y + +# Filesystem +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# required tools to create the eMMC image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/zynq_microzed_defconfig b/configs/zynq_microzed_defconfig new file mode 100644 index 000000000..10a4f4095 --- /dev/null +++ b/configs/zynq_microzed_defconfig @@ -0,0 +1,32 @@ +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y +BR2_ROOTFS_POST_BUILD_SCRIPT="board/zynq/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/zynq/post-image.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,Xilinx,linux-xlnx,xlnx_rebase_v5.15_LTS_2022.1)/xlnx_rebase_v5.15_LTS_2022.1.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="xilinx_zynq" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x8000" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="zynq-microzed" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,Xilinx,u-boot-xlnx,xlnx_rebase_v2022.01_2022.1)/xlnx_rebase_v2022.01_2022.1.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="xilinx_zynq_virt" +BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/zynq/microzed/uboot.fragment" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_FORMAT_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="spl/boot.bin" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/zynq_qmtech_defconfig b/configs/zynq_qmtech_defconfig new file mode 100644 index 000000000..f536b80f5 --- /dev/null +++ b/configs/zynq_qmtech_defconfig @@ -0,0 +1,33 @@ +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_GLOBAL_PATCH_DIR="board/qmtech/zynq/patches" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyPS0" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/zynq/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/zynq/post-image.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,Xilinx,linux-xlnx,xilinx-v2019.2.01)/linux-xilinx-v2019.2.01.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="xilinx_zynq" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x8000" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="zynq-qmtech" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,jolivain,u-boot-xlnx,xilinx-v2019.2.qmtech.1)/uboot-xilinx-v2019.2.qmtech.1.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="zynq_qmtech" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_FORMAT_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="spl/boot.bin" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/zynq_zc706_defconfig b/configs/zynq_zc706_defconfig new file mode 100644 index 000000000..82c47be7a --- /dev/null +++ b/configs/zynq_zc706_defconfig @@ -0,0 +1,32 @@ +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y +BR2_ROOTFS_POST_BUILD_SCRIPT="board/zynq/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/zynq/post-image.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,Xilinx,linux-xlnx,xlnx_rebase_v5.15_LTS_2022.1)/xlnx_rebase_v5.15_LTS_2022.1.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="xilinx_zynq" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x8000" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="zynq-zc706" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,Xilinx,u-boot-xlnx,xlnx_rebase_v2022.01_2022.1)/xlnx_rebase_v2022.01_2022.1.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="xilinx_zynq_virt" +BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/zynq/zc706/uboot.fragment" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_FORMAT_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="spl/boot.bin" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/zynq_zed_defconfig b/configs/zynq_zed_defconfig new file mode 100644 index 000000000..34e1b6718 --- /dev/null +++ b/configs/zynq_zed_defconfig @@ -0,0 +1,32 @@ +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y +BR2_ROOTFS_POST_BUILD_SCRIPT="board/zynq/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/zynq/post-image.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,Xilinx,linux-xlnx,xlnx_rebase_v5.15_LTS_2022.1)/xlnx_rebase_v5.15_LTS_2022.1.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="xilinx_zynq" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x8000" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="zynq-zed" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,Xilinx,u-boot-xlnx,xlnx_rebase_v2022.01_2022.1)/xlnx_rebase_v2022.01_2022.1.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="xilinx_zynq_virt" +BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/zynq/zed/uboot.fragment" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_FORMAT_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="spl/boot.bin" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/zynqmp_kria_kv260_defconfig b/configs/zynqmp_kria_kv260_defconfig new file mode 100644 index 000000000..4700e651d --- /dev/null +++ b/configs/zynqmp_kria_kv260_defconfig @@ -0,0 +1,40 @@ +BR2_aarch64=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y +BR2_ROOTFS_POST_BUILD_SCRIPT="board/zynqmp/post-build.sh board/zynqmp/kria/kv260/kv260.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/zynqmp/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="ttyPS1,115200 mmcblk1p2 ${UBOOT_DIR}" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,Xilinx,linux-xlnx,xlnx_rebase_v5.15_LTS_2022.1)/xlnx_rebase_v5.15_LTS_2022.1.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="xilinx_zynqmp" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="xilinx/smk-k26-revA-sck-kv-g-revB" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL_LOCATION="$(call github,Xilinx,arm-trusted-firmware,xlnx_rebase_v2.6_2022.1)/xlnx_rebase_v2.6_2022.1.tar.gz" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="zynqmp" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="ZYNQMP_CONSOLE=cadence1" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31_UBOOT=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,Xilinx,u-boot-xlnx,xlnx_rebase_v2022.01_2022.1)/xlnx_rebase_v2022.01_2022.1.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="xilinx_zynqmp_virt" +BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/zynqmp/kria/kv260/uboot.fragment" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="spl/boot.bin" +BR2_TARGET_UBOOT_ZYNQMP=y +BR2_TARGET_UBOOT_ZYNQMP_PMUFW="https://github.com/lucaceresoli/zynqmp-pmufw-binaries/raw/v2022.1/bin/pmufw-v2022.1.bin" +BR2_TARGET_UBOOT_ZYNQMP_PM_CFG="board/zynqmp/kria/kv260/pm_cfg_obj.c" +BR2_TARGET_UBOOT_FORMAT_ITB=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_GLOBAL_PATCH_DIR="board/zynqmp/kria/patches" diff --git a/configs/zynqmp_zcu102_defconfig b/configs/zynqmp_zcu102_defconfig new file mode 100644 index 000000000..217fa0814 --- /dev/null +++ b/configs/zynqmp_zcu102_defconfig @@ -0,0 +1,38 @@ +BR2_aarch64=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y +BR2_ROOTFS_POST_BUILD_SCRIPT="board/zynqmp/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/zynqmp/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="ttyPS0,115200 mmcblk0p2" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,Xilinx,linux-xlnx,xlnx_rebase_v5.15_LTS_2022.1)/xlnx_rebase_v5.15_LTS_2022.1.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="xilinx_zynqmp" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="xilinx/zynqmp-zcu102-rev1.0" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL_LOCATION="$(call github,Xilinx,arm-trusted-firmware,xlnx_rebase_v2.6_2022.1)/xlnx_rebase_v2.6_2022.1.tar.gz" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="zynqmp" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31_UBOOT=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,Xilinx,u-boot-xlnx,xlnx_rebase_v2022.01_2022.1)/xlnx_rebase_v2022.01_2022.1.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="xilinx_zynqmp_virt" +BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/zynqmp/zcu102/uboot.fragment" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="spl/boot.bin" +BR2_TARGET_UBOOT_ZYNQMP=y +BR2_TARGET_UBOOT_ZYNQMP_PMUFW="https://github.com/lucaceresoli/zynqmp-pmufw-binaries/raw/v2022.1/bin/pmufw-v2022.1.bin" +BR2_TARGET_UBOOT_ZYNQMP_PM_CFG="board/zynqmp/zcu102/pm_cfg_obj.c" +BR2_TARGET_UBOOT_FORMAT_ITB=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/configs/zynqmp_zcu106_defconfig b/configs/zynqmp_zcu106_defconfig new file mode 100644 index 000000000..3d98dffe0 --- /dev/null +++ b/configs/zynqmp_zcu106_defconfig @@ -0,0 +1,39 @@ +BR2_aarch64=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y +BR2_ROOTFS_POST_BUILD_SCRIPT="board/zynqmp/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/zynqmp/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="ttyPS0,115200 mmcblk0p2" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,Xilinx,linux-xlnx,xlnx_rebase_v5.15_LTS_2022.1)/xlnx_rebase_v5.15_LTS_2022.1.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="xilinx_zynqmp" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="xilinx/zynqmp-zcu106-revA" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL_LOCATION="$(call github,Xilinx,arm-trusted-firmware,xlnx_rebase_v2.6_2022.1)/xlnx_rebase_v2.6_2022.1.tar.gz" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="zynqmp" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31_UBOOT=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,Xilinx,u-boot-xlnx,xlnx_rebase_v2022.01_2022.1)/xlnx_rebase_v2022.01_2022.1.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="xilinx_zynqmp_virt" +BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/zynqmp/zcu106/uboot.fragment" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="spl/boot.bin" +BR2_TARGET_UBOOT_ZYNQMP=y +BR2_TARGET_UBOOT_ZYNQMP_PMUFW="https://github.com/lucaceresoli/zynqmp-pmufw-binaries/raw/v2022.1/bin/pmufw-v2022.1.bin" +BR2_TARGET_UBOOT_ZYNQMP_PM_CFG="board/zynqmp/zcu106/pm_cfg_obj.c" +BR2_TARGET_UBOOT_FORMAT_ITB=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_GLOBAL_PATCH_DIR="board/zynqmp/zcu106/patches" diff --git a/docs/conf/asciidoc-text.conf b/docs/conf/asciidoc-text.conf new file mode 100644 index 000000000..bb614b9d8 --- /dev/null +++ b/docs/conf/asciidoc-text.conf @@ -0,0 +1,23 @@ +# Refer to following asciidoc documentation: +# https://asciidoc-py.github.io/userguide.html +# In particular sections "Macros" and "Attribute References" +# +# For hyperlinks, show 'link text [URL]' (if link text provided) or 'URL' +[http-inlinemacro] +{0=}{0? [}{name}:{target}{0?]} +[https-inlinemacro] +{0=}{0? [}{name}:{target}{0?]} +[ftp-inlinemacro] +{0=}{0? [}{name}:{target}{0?]} +[file-inlinemacro] +{0=}{0? [}{name}:{target}{0?]} +[irc-inlinemacro] +{0=}{0? [}{name}:{target}{0?]} +[mailto-inlinemacro] +{0=}{0? [}{name}:{target}{0?]} + +# Hide image representation from text manual +[image-inlinemacro] +{empty} +[image-blockmacro] +{empty} diff --git a/docs/images b/docs/images new file mode 120000 index 000000000..7356350c8 --- /dev/null +++ b/docs/images @@ -0,0 +1 @@ +website/images \ No newline at end of file diff --git a/docs/manual/adding-board-support.txt b/docs/manual/adding-board-support.txt new file mode 100644 index 000000000..cd90a5871 --- /dev/null +++ b/docs/manual/adding-board-support.txt @@ -0,0 +1,56 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +[[adding-board-support]] +== Adding support for a particular board + +Buildroot contains basic configurations for several publicly available +hardware boards, so that users of such a board can easily build a system +that is known to work. You are welcome to add support for other boards +to Buildroot too. + +To do so, you need to create a normal Buildroot configuration that +builds a basic system for the hardware: (internal) toolchain, kernel, +bootloader, filesystem and a simple BusyBox-only userspace. No specific +package should be selected: the configuration should be as minimal as +possible, and should only build a working basic BusyBox system for the +target platform. You can of course use more complicated configurations +for your internal projects, but the Buildroot project will only +integrate basic board configurations. This is because package +selections are highly application-specific. + +Once you have a known working configuration, run +make +savedefconfig+. This will generate a minimal +defconfig+ file at the +root of the Buildroot source tree. Move this file into the +configs/+ +directory, and rename it +_defconfig+. If the configuration +is a bit more complicated, it is nice to manually reformat it and +separate it into sections, with a comment before each section. Typical +sections are _Architecture_, _Toolchain options_ (typically just linux +headers version), _Firmware_, _Bootloader_, _Kernel_, and _Filesystem_. + +Always use fixed versions or commit hashes for the different +components, not the "latest" version. For example, set ++BR2_LINUX_KERNEL_CUSTOM_VERSION=y+ and ++BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE+ to the kernel version you tested +with. + +It is recommended to use as much as possible upstream versions of the +Linux kernel and bootloaders, and to use as much as possible default +kernel and bootloader configurations. If they are incorrect for your +board, or no default exists, we encourage you to send fixes to the +corresponding upstream projects. + +However, in the mean time, you may want to store kernel or bootloader +configuration or patches specific to your target platform. To do so, +create a directory +board/+ and a subdirectory ++board//+. You can then store your patches +and configurations in these directories, and reference them from the main +Buildroot configuration. Refer to xref:customize[] for more details. + +Before submitting patches for new boards it is recommended to test it by +building it using latest gitlab-CI docker container. To do this use +utils/docker-run script and inside it issue these commands: +-------------------- + $ make +_defconfig+ + $ make +-------------------- diff --git a/docs/manual/adding-packages-asciidoc.txt b/docs/manual/adding-packages-asciidoc.txt new file mode 100644 index 000000000..0bfe99d22 --- /dev/null +++ b/docs/manual/adding-packages-asciidoc.txt @@ -0,0 +1,133 @@ +// -*- mode:doc; -*- +// vim: syntax=asciidoc + +=== Infrastructure for asciidoc documents + +[[asciidoc-documents-tutorial]] + +The Buildroot manual, which you are currently reading, is entirely written +using the http://asciidoc.org/[AsciiDoc] mark-up syntax. The manual is then +rendered to many formats: + +* html +* split-html +* pdf +* epub +* text + +Although Buildroot only contains one document written in AsciiDoc, there +is, as for packages, an infrastructure for rendering documents using the +AsciiDoc syntax. + +Also as for packages, the AsciiDoc infrastructure is available from a +xref:outside-br-custom[br2-external tree]. This allows documentation for +a br2-external tree to match the Buildroot documentation, as it will be +rendered to the same formats and use the same layout and theme. + +==== +asciidoc-document+ tutorial + +Whereas package infrastructures are suffixed with +-package+, the document +infrastructures are suffixed with +-document+. So, the AsciiDoc infrastructure +is named +asciidoc-document+. + +Here is an example to render a simple AsciiDoc document. + +---- +01: ################################################################################ +02: # +03: # foo-document +04: # +05: ################################################################################ +06: +07: FOO_SOURCES = $(sort $(wildcard $(FOO_DOCDIR)/*)) +08: $(eval $(call asciidoc-document)) +---- + +On line 7, the Makefile declares what the sources of the document are. +Currently, it is expected that the document's sources are only local; +Buildroot will not attempt to download anything to render a document. +Thus, you must indicate where the sources are. Usually, the string +above is sufficient for a document with no sub-directory structure. + +On line 8, we call the +asciidoc-document+ function, which generates all +the Makefile code necessary to render the document. + +==== +asciidoc-document+ reference + +The list of variables that can be set in a +.mk+ file to give metadata +information is (assuming the document name is +foo+) : + +* +FOO_SOURCES+, mandatory, defines the source files for the document. + +* +FOO_RESOURCES+, optional, may contain a space-separated list of paths + to one or more directories containing so-called resources (like CSS or + images). By default, empty. + +* +FOO_DEPENDENCIES+, optional, the list of packages (most probably, + host-packages) that must be built before building this document. + +There are also additional hooks (see xref:hooks[] for general information +on hooks), that a document may set to define extra actions to be done at +various steps: + +* +FOO_POST_RSYNC_HOOKS+ to run additional commands after the sources + have been copied by Buildroot. This can for example be used to + generate part of the manual with information extracted from the + tree. As an example, Buildroot uses this hook to generate the tables + in the appendices. + +* +FOO_CHECK_DEPENDENCIES_HOOKS+ to run additional tests on required + components to generate the document. In AsciiDoc, it is possible to + call filters, that is, programs that will parse an AsciiDoc block and + render it appropriately (e.g. http://ditaa.sourceforge.net/[ditaa] or + https://pythonhosted.org/aafigure/[aafigure]). + +* +FOO_CHECK_DEPENDENCIES__HOOKS+, to run additional tests for + the specified format ++ (see the list of rendered formats, above). + +Buildroot sets the following variable that can be used in the definitions +above: + +* +$(FOO_DOCDIR)+, similar to +$(FOO_PKGDIR)+, contains the path to the + directory containing +foo.mk+. It can be used to refer to the document + sources, and can be used in the hooks, especially the post-rsync hook + if parts of the documentation needs to be generated. + +* +$(@D)+, as for traditional packages, contains the path to the directory + where the document will be copied and built. + +Here is a complete example that uses all variables and all hooks: + +---- +01: ################################################################################ +02: # +03: # foo-document +04: # +05: ################################################################################ +06: +07: FOO_SOURCES = $(sort $(wildcard $(FOO_DOCDIR)/*)) +08: FOO_RESOURCES = $(sort $(wildcard $(FOO_DOCDIR)/ressources)) +09: +10: define FOO_GEN_EXTRA_DOC +11: /path/to/generate-script --outdir=$(@D) +12: endef +13: FOO_POST_RSYNC_HOOKS += FOO_GEN_EXTRA_DOC +14: +15: define FOO_CHECK_MY_PROG +16: if ! which my-prog >/dev/null 2>&1; then \ +17: echo "You need my-prog to generate the foo document"; \ +18: exit 1; \ +19: fi +20: endef +21: FOO_CHECK_DEPENDENCIES_HOOKS += FOO_CHECK_MY_PROG +22: +23: define FOO_CHECK_MY_OTHER_PROG +24: if ! which my-other-prog >/dev/null 2>&1; then \ +25: echo "You need my-other-prog to generate the foo document as PDF"; \ +26: exit 1; \ +27: fi +28: endef +29: FOO_CHECK_DEPENDENCIES_PDF_HOOKS += FOO_CHECK_MY_OTHER_PROG +30: +31: $(eval $(call asciidoc-document)) +---- diff --git a/docs/manual/adding-packages-autotools.txt b/docs/manual/adding-packages-autotools.txt new file mode 100644 index 000000000..a041d91eb --- /dev/null +++ b/docs/manual/adding-packages-autotools.txt @@ -0,0 +1,175 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +=== Infrastructure for autotools-based packages + +[[autotools-package-tutorial]] + +==== +autotools-package+ tutorial + +First, let's see how to write a +.mk+ file for an autotools-based +package, with an example : + +------------------------ +01: ################################################################################ +02: # +03: # libfoo +04: # +05: ################################################################################ +06: +07: LIBFOO_VERSION = 1.0 +08: LIBFOO_SOURCE = libfoo-$(LIBFOO_VERSION).tar.gz +09: LIBFOO_SITE = http://www.foosoftware.org/download +10: LIBFOO_INSTALL_STAGING = YES +11: LIBFOO_INSTALL_TARGET = NO +12: LIBFOO_CONF_OPTS = --disable-shared +13: LIBFOO_DEPENDENCIES = libglib2 host-pkgconf +14: +15: $(eval $(autotools-package)) +------------------------ + +On line 7, we declare the version of the package. + +On line 8 and 9, we declare the name of the tarball (xz-ed tarball recommended) +and the location of the tarball on the Web. Buildroot will automatically +download the tarball from this location. + +On line 10, we tell Buildroot to install the package to the staging +directory. The staging directory, located in +output/staging/+ +is the directory where all the packages are installed, including their +development files, etc. By default, packages are not installed to the +staging directory, since usually, only libraries need to be installed in +the staging directory: their development files are needed to compile +other libraries or applications depending on them. Also by default, when +staging installation is enabled, packages are installed in this location +using the +make install+ command. + +On line 11, we tell Buildroot to not install the package to the +target directory. This directory contains what will become the root +filesystem running on the target. For purely static libraries, it is +not necessary to install them in the target directory because they will +not be used at runtime. By default, target installation is enabled; setting +this variable to NO is almost never needed. Also by default, packages are +installed in this location using the +make install+ command. + +On line 12, we tell Buildroot to pass a custom configure option, that +will be passed to the +./configure+ script before configuring +and building the package. + +On line 13, we declare our dependencies, so that they are built +before the build process of our package starts. + +Finally, on line line 15, we invoke the +autotools-package+ +macro that generates all the Makefile rules that actually allows the +package to be built. + +[[autotools-package-reference]] + +==== +autotools-package+ reference + +The main macro of the autotools package infrastructure is ++autotools-package+. It is similar to the +generic-package+ macro. The ability to +have target and host packages is also available, with the ++host-autotools-package+ macro. + +Just like the generic infrastructure, the autotools infrastructure +works by defining a number of variables before calling the ++autotools-package+ macro. + +First, all the package metadata information variables that exist in the +generic infrastructure also exist in the autotools infrastructure: ++LIBFOO_VERSION+, +LIBFOO_SOURCE+, ++LIBFOO_PATCH+, +LIBFOO_SITE+, ++LIBFOO_SUBDIR+, +LIBFOO_DEPENDENCIES+, ++LIBFOO_INSTALL_STAGING+, +LIBFOO_INSTALL_TARGET+. + +A few additional variables, specific to the autotools infrastructure, +can also be defined. Many of them are only useful in very specific +cases, typical packages will therefore only use a few of them. + +* +LIBFOO_SUBDIR+ may contain the name of a subdirectory + inside the package that contains the configure script. This is useful, + if for example, the main configure script is not at the root of the + tree extracted by the tarball. If +HOST_LIBFOO_SUBDIR+ is + not specified, it defaults to +LIBFOO_SUBDIR+. + +* +LIBFOO_CONF_ENV+, to specify additional environment + variables to pass to the configure script. By default, empty. + +* +LIBFOO_CONF_OPTS+, to specify additional configure + options to pass to the configure script. By default, empty. + +* +LIBFOO_MAKE+, to specify an alternate +make+ + command. This is typically useful when parallel make is enabled in + the configuration (using +BR2_JLEVEL+) but that this + feature should be disabled for the given package, for one reason or + another. By default, set to +$(MAKE)+. If parallel building + is not supported by the package, then it should be set to + +LIBFOO_MAKE=$(MAKE1)+. + +* +LIBFOO_MAKE_ENV+, to specify additional environment + variables to pass to make in the build step. These are passed before + the +make+ command. By default, empty. + +* +LIBFOO_MAKE_OPTS+, to specify additional variables to + pass to make in the build step. These are passed after the + +make+ command. By default, empty. + +* +LIBFOO_AUTORECONF+, tells whether the package should + be autoreconfigured or not (i.e. if the configure script and + Makefile.in files should be re-generated by re-running autoconf, + automake, libtool, etc.). Valid values are +YES+ and + +NO+. By default, the value is +NO+ + +* +LIBFOO_AUTORECONF_ENV+, to specify additional environment + variables to pass to the 'autoreconf' program if + +LIBFOO_AUTORECONF=YES+. These are passed in the environment of + the 'autoreconf' command. By default, empty. + +* +LIBFOO_AUTORECONF_OPTS+ to specify additional options + passed to the 'autoreconf' program if + +LIBFOO_AUTORECONF=YES+. By default, empty. + +* +LIBFOO_GETTEXTIZE+, tells whether the package should be + gettextized or not (i.e. if the package uses a different gettext + version than Buildroot provides, and it is needed to run + 'gettextize'.) Only valid when +LIBFOO_AUTORECONF=YES+. Valid + values are +YES+ and +NO+. The default is +NO+. + +* +LIBFOO_GETTEXTIZE_OPTS+, to specify additional options passed to + the 'gettextize' program, if +LIBFOO_GETTEXTIZE=YES+. You may + use that if, for example, the +.po+ files are not located in the + standard place (i.e. in +po/+ at the root of the package.) By + default, '-f'. + +* +LIBFOO_LIBTOOL_PATCH+ tells whether the Buildroot + patch to fix libtool cross-compilation issues should be applied or + not. Valid values are +YES+ and +NO+. By + default, the value is +YES+ + +* +LIBFOO_INSTALL_STAGING_OPTS+ contains the make options + used to install the package to the staging directory. By default, the + value is +DESTDIR=$(STAGING_DIR) install+, which is + correct for most autotools packages. It is still possible to override + it. + +* +LIBFOO_INSTALL_TARGET_OPTS+ contains the make options + used to install the package to the target directory. By default, the + value is +DESTDIR=$(TARGET_DIR) install+. The default + value is correct for most autotools packages, but it is still possible + to override it if needed. + +With the autotools infrastructure, all the steps required to build +and install the packages are already defined, and they generally work +well for most autotools-based packages. However, when required, it is +still possible to customize what is done in any particular step: + +* By adding a post-operation hook (after extract, patch, configure, + build or install). See xref:hooks[] for details. + +* By overriding one of the steps. For example, even if the autotools + infrastructure is used, if the package +.mk+ file defines its + own +LIBFOO_CONFIGURE_CMDS+ variable, it will be used + instead of the default autotools one. However, using this method + should be restricted to very specific cases. Do not use it in the + general case. diff --git a/docs/manual/adding-packages-cargo.txt b/docs/manual/adding-packages-cargo.txt new file mode 100644 index 000000000..e18fd9ce2 --- /dev/null +++ b/docs/manual/adding-packages-cargo.txt @@ -0,0 +1,100 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +=== Infrastructure for Cargo-based packages + +Cargo is the package manager for the Rust programming language. It allows the +user to build programs or libraries written in Rust, but it also downloads and +manages their dependencies, to ensure repeatable builds. Cargo packages are +called "crates". + +[[cargo-package-tutorial]] + +==== +cargo-package+ tutorial + +The +Config.in+ file of Cargo-based package 'foo' should contain: + +--------------------------- +01: config BR2_PACKAGE_FOO +02: bool "foo" +03: depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS +04: select BR2_PACKAGE_HOST_RUSTC +05: help +06: This is a comment that explains what foo is. +07: +08: http://foosoftware.org/foo/ +--------------------------- + +And the +.mk+ file for this package should contain: + +------------------------------ +01: ################################################################################ +02: # +03: # foo +04: # +05: ################################################################################ +06: +07: FOO_VERSION = 1.0 +08: FOO_SOURCE = foo-$(FOO_VERSION).tar.gz +09: FOO_SITE = http://www.foosoftware.org/download +10: FOO_LICENSE = GPL-3.0+ +11: FOO_LICENSE_FILES = COPYING +12: +13: $(eval $(cargo-package)) +-------------------------------- + +The Makefile starts with the definition of the standard variables for +package declaration (lines 7 to 11). + +As seen in line 13, it is based on the +cargo-package+ +infrastructure. Cargo will be invoked automatically by this +infrastructure to build and install the package. + +It is still possible to define custom build commands or install +commands (i.e. with FOO_BUILD_CMDS and FOO_INSTALL_TARGET_CMDS). +Those will then replace the commands from the cargo infrastructure. + +==== +cargo-package+ reference + +The main macros for the Cargo package infrastructure are ++cargo-package+ for target packages and +host-cargo-package+ for host +packages. + +Just like the generic infrastructure, the Cargo infrastructure works +by defining a number of variables before calling the +cargo-package+ +or +host-cargo-package+ macros. + +First, all the package metadata information variables that exist in +the generic infrastructure also exist in the Cargo infrastructure: ++FOO_VERSION+, +FOO_SOURCE+, +FOO_PATCH+, +FOO_SITE+, ++FOO_DEPENDENCIES+, +FOO_LICENSE+, +FOO_LICENSE_FILES+, etc. + +A few additional variables, specific to the Cargo infrastructure, can +also be defined. Many of them are only useful in very specific cases, +typical packages will therefore only use a few of them. + +* +FOO_SUBDIR+ may contain the name of a subdirectory inside the package + that contains the Cargo.toml file. This is useful, if for example, it + is not at the root of the tree extracted by the tarball. If + +HOST_FOO_SUBDIR+ is not specified, it defaults to +FOO_SUBDIR+. + +* +FOO_CARGO_ENV+ can be used to pass additional variables in the + environment of +cargo+ invocations. It used at both build and + installation time + +* +FOO_CARGO_BUILD_OPTS+ can be used to pass additional options to + +cargo+ at build time. + +* +FOO_CARGO_INSTALL_OPTS+ can be used to pass additional options to + +cargo+ at install time. + +A crate can depend on other libraries from crates.io or git +repositories, listed in its +Cargo.toml+ file. Buildroot automatically +takes care of downloading such dependencies as part of the download +step of packages that use the +cargo-package+ infrastructure. Such +dependencies are then kept together with the package source code in +the tarball cached in Buildroot's +DL_DIR+, and therefore the hash of +the package's tarball includes such dependencies. + +This mechanism ensures that any change in the dependencies will be +detected, and allows the build to be performed completely offline. diff --git a/docs/manual/adding-packages-cmake.txt b/docs/manual/adding-packages-cmake.txt new file mode 100644 index 000000000..541d7422c --- /dev/null +++ b/docs/manual/adding-packages-cmake.txt @@ -0,0 +1,157 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +=== Infrastructure for CMake-based packages + +[[cmake-package-tutorial]] + +==== +cmake-package+ tutorial + +First, let's see how to write a +.mk+ file for a CMake-based package, +with an example : + +------------------------ +01: ################################################################################ +02: # +03: # libfoo +04: # +05: ################################################################################ +06: +07: LIBFOO_VERSION = 1.0 +08: LIBFOO_SOURCE = libfoo-$(LIBFOO_VERSION).tar.gz +09: LIBFOO_SITE = http://www.foosoftware.org/download +10: LIBFOO_INSTALL_STAGING = YES +11: LIBFOO_INSTALL_TARGET = NO +12: LIBFOO_CONF_OPTS = -DBUILD_DEMOS=ON +13: LIBFOO_DEPENDENCIES = libglib2 host-pkgconf +14: +15: $(eval $(cmake-package)) +------------------------ + +On line 7, we declare the version of the package. + +On line 8 and 9, we declare the name of the tarball (xz-ed tarball recommended) +and the location of the tarball on the Web. Buildroot will automatically +download the tarball from this location. + +On line 10, we tell Buildroot to install the package to the staging +directory. The staging directory, located in +output/staging/+ +is the directory where all the packages are installed, including their +development files, etc. By default, packages are not installed to the +staging directory, since usually, only libraries need to be installed in +the staging directory: their development files are needed to compile +other libraries or applications depending on them. Also by default, when +staging installation is enabled, packages are installed in this location +using the +make install+ command. + +On line 11, we tell Buildroot to not install the package to the +target directory. This directory contains what will become the root +filesystem running on the target. For purely static libraries, it is +not necessary to install them in the target directory because they will +not be used at runtime. By default, target installation is enabled; setting +this variable to NO is almost never needed. Also by default, packages are +installed in this location using the +make install+ command. + +On line 12, we tell Buildroot to pass custom options to CMake when it is +configuring the package. + +On line 13, we declare our dependencies, so that they are built +before the build process of our package starts. + +Finally, on line line 15, we invoke the +cmake-package+ +macro that generates all the Makefile rules that actually allows the +package to be built. + +[[cmake-package-reference]] + +==== +cmake-package+ reference + +The main macro of the CMake package infrastructure is ++cmake-package+. It is similar to the +generic-package+ macro. The ability to +have target and host packages is also available, with the ++host-cmake-package+ macro. + +Just like the generic infrastructure, the CMake infrastructure works +by defining a number of variables before calling the +cmake-package+ +macro. + +First, all the package metadata information variables that exist in +the generic infrastructure also exist in the CMake infrastructure: ++LIBFOO_VERSION+, +LIBFOO_SOURCE+, +LIBFOO_PATCH+, +LIBFOO_SITE+, ++LIBFOO_SUBDIR+, +LIBFOO_DEPENDENCIES+, +LIBFOO_INSTALL_STAGING+, ++LIBFOO_INSTALL_TARGET+. + +A few additional variables, specific to the CMake infrastructure, can +also be defined. Many of them are only useful in very specific cases, +typical packages will therefore only use a few of them. + +* +LIBFOO_SUBDIR+ may contain the name of a subdirectory inside the + package that contains the main CMakeLists.txt file. This is useful, + if for example, the main CMakeLists.txt file is not at the root of + the tree extracted by the tarball. If +HOST_LIBFOO_SUBDIR+ is not + specified, it defaults to +LIBFOO_SUBDIR+. + +* +LIBFOO_CONF_ENV+, to specify additional environment variables to + pass to CMake. By default, empty. + +* +LIBFOO_CONF_OPTS+, to specify additional configure options to pass + to CMake. By default, empty. A number of common CMake options are + set by the +cmake-package+ infrastructure; so it is normally not + necessary to set them in the package's +*.mk+ file unless you want + to override them: + +** +CMAKE_BUILD_TYPE+ is driven by +BR2_ENABLE_RUNTIME_DEBUG+; +** +CMAKE_INSTALL_PREFIX+; +** +BUILD_SHARED_LIBS+ is driven by +BR2_STATIC_LIBS+; +** +BUILD_DOC+, +BUILD_DOCS+ are disabled; +** +BUILD_EXAMPLE+, +BUILD_EXAMPLES+ are disabled; +** +BUILD_TEST+, +BUILD_TESTS+, +BUILD_TESTING+ are disabled. + +* +LIBFOO_SUPPORTS_IN_SOURCE_BUILD = NO+ should be set when the package + cannot be built inside the source tree but needs a separate build + directory. + +* +LIBFOO_MAKE+, to specify an alternate +make+ command. This is + typically useful when parallel make is enabled in the configuration + (using +BR2_JLEVEL+) but that this feature should be disabled for + the given package, for one reason or another. By default, set to + +$(MAKE)+. If parallel building is not supported by the package, + then it should be set to +LIBFOO_MAKE=$(MAKE1)+. + +* +LIBFOO_MAKE_ENV+, to specify additional environment variables to + pass to make in the build step. These are passed before the +make+ + command. By default, empty. + +* +LIBFOO_MAKE_OPTS+, to specify additional variables to pass to make + in the build step. These are passed after the +make+ command. By + default, empty. + +* +LIBFOO_INSTALL_OPTS+ contains the make options used to + install the package to the host directory. By default, the value + is +install+, which is correct for most CMake packages. It is still + possible to override it. + +* +LIBFOO_INSTALL_STAGING_OPTS+ contains the make options used to + install the package to the staging directory. By default, the value + is +DESTDIR=$(STAGING_DIR) install/fast+, which is correct for most + CMake packages. It is still possible to override it. + +* +LIBFOO_INSTALL_TARGET_OPTS+ contains the make options used to + install the package to the target directory. By default, the value + is +DESTDIR=$(TARGET_DIR) install/fast+. The default value is correct + for most CMake packages, but it is still possible to override it if + needed. + +With the CMake infrastructure, all the steps required to build and +install the packages are already defined, and they generally work well +for most CMake-based packages. However, when required, it is still +possible to customize what is done in any particular step: + +* By adding a post-operation hook (after extract, patch, configure, + build or install). See xref:hooks[] for details. + +* By overriding one of the steps. For example, even if the CMake + infrastructure is used, if the package +.mk+ file defines its own + +LIBFOO_CONFIGURE_CMDS+ variable, it will be used instead of the + default CMake one. However, using this method should be restricted + to very specific cases. Do not use it in the general case. diff --git a/docs/manual/adding-packages-conclusion.txt b/docs/manual/adding-packages-conclusion.txt new file mode 100644 index 000000000..93f90a419 --- /dev/null +++ b/docs/manual/adding-packages-conclusion.txt @@ -0,0 +1,13 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +=== Conclusion + +As you can see, adding a software package to Buildroot is simply a +matter of writing a Makefile using an existing example and modifying it +according to the compilation process required by the package. + +If you package software that might be useful for other people, don't +forget to send a patch to the Buildroot mailing list (see +xref:submitting-patches[])! + diff --git a/docs/manual/adding-packages-directory.txt b/docs/manual/adding-packages-directory.txt new file mode 100644 index 000000000..04f5241d0 --- /dev/null +++ b/docs/manual/adding-packages-directory.txt @@ -0,0 +1,645 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +=== Package directory + +First of all, create a directory under the +package+ directory for +your software, for example +libfoo+. + +Some packages have been grouped by topic in a sub-directory: ++x11r7+, +qt5+ and +gstreamer+. If your package fits in +one of these categories, then create your package directory in these. +New subdirectories are discouraged, however. + +=== Config files + +For the package to be displayed in the configuration tool, you need to +create a Config file in your package directory. There are two types: ++Config.in+ and +Config.in.host+. + +==== +Config.in+ file + +For packages used on the target, create a file named +Config.in+. This +file will contain the option descriptions related to our +libfoo+ software +that will be used and displayed in the configuration tool. It should basically +contain: + +--------------------------- +config BR2_PACKAGE_LIBFOO + bool "libfoo" + help + This is a comment that explains what libfoo is. The help text + should be wrapped. + + http://foosoftware.org/libfoo/ +--------------------------- + +The +bool+ line, +help+ line and other metadata information about the +configuration option must be indented with one tab. The help text +itself should be indented with one tab and two spaces, lines should +be wrapped to fit 72 columns, where tab counts for 8, so 62 characters +in the text itself. The help text must mention the upstream URL of the +project after an empty line. + +As a convention specific to Buildroot, the ordering of the attributes +is as follows: + +1. The type of option: +bool+, +string+... with the prompt +2. If needed, the +default+ value(s) +3. Any dependencies on the target in +depends on+ form +4. Any dependencies on the toolchain in +depends on+ form +5. Any dependencies on other packages in +depends on+ form +6. Any dependency of the +select+ form +7. The help keyword and help text. + +You can add other sub-options into a +if BR2_PACKAGE_LIBFOO...endif+ +statement to configure particular things in your software. You can look at +examples in other packages. The syntax of the +Config.in+ file is the same +as the one for the kernel Kconfig file. The documentation for this syntax is +available at http://kernel.org/doc/Documentation/kbuild/kconfig-language.txt[] + +Finally you have to add your new +libfoo/Config.in+ to ++package/Config.in+ (or in a category subdirectory if you decided to +put your package in one of the existing categories). The files +included there are 'sorted alphabetically' per category and are 'NOT' +supposed to contain anything but the 'bare' name of the package. + +-------------------------- +source "package/libfoo/Config.in" +-------------------------- + + +==== +Config.in.host+ file + +Some packages also need to be built for the host system. There are two +options here: + +* The host package is only required to satisfy build-time + dependencies of one or more target packages. In this case, add + +host-foo+ to the target package's +BAR_DEPENDENCIES+ variable. No + +Config.in.host+ file should be created. + +* The host package should be explicitly selectable by the user from + the configuration menu. In this case, create a +Config.in.host+ file + for that host package: ++ +--------------------------- +config BR2_PACKAGE_HOST_FOO + bool "host foo" + help + This is a comment that explains what foo for the host is. + + http://foosoftware.org/foo/ +--------------------------- ++ +The same coding style and options as for the +Config.in+ file are valid. ++ +Finally you have to add your new +libfoo/Config.in.host+ to ++package/Config.in.host+. The files included there are 'sorted alphabetically' +and are 'NOT' supposed to contain anything but the 'bare' name of the package. ++ +-------------------------- +source "package/foo/Config.in.host" +-------------------------- ++ +The host package will then be available from the +Host utilities+ menu. + +[[depends-on-vs-select]] +==== Choosing +depends on+ or +select+ + +The +Config.in+ file of your package must also ensure that +dependencies are enabled. Typically, Buildroot uses the following +rules: + +* Use a +select+ type of dependency for dependencies on + libraries. These dependencies are generally not obvious and it + therefore make sense to have the kconfig system ensure that the + dependencies are selected. For example, the _libgtk2_ package uses + +select BR2_PACKAGE_LIBGLIB2+ to make sure this library is also + enabled. + The +select+ keyword expresses the dependency with a backward + semantic. + +* Use a +depends on+ type of dependency when the user really needs to + be aware of the dependency. Typically, Buildroot uses this type of + dependency for dependencies on target architecture, MMU support and + toolchain options (see xref:dependencies-target-toolchain-options[]), + or for dependencies on "big" things, such as the X.org system. + The +depends on+ keyword expresses the dependency with a forward + semantic. + +.Note +The current problem with the _kconfig_ language is that these two +dependency semantics are not internally linked. Therefore, it may be +possible to select a package, whom one of its dependencies/requirement +is not met. + +An example illustrates both the usage of +select+ and +depends on+. + +-------------------------- +config BR2_PACKAGE_RRDTOOL + bool "rrdtool" + depends on BR2_USE_WCHAR + select BR2_PACKAGE_FREETYPE + select BR2_PACKAGE_LIBART + select BR2_PACKAGE_LIBPNG + select BR2_PACKAGE_ZLIB + help + RRDtool is the OpenSource industry standard, high performance + data logging and graphing system for time series data. + + http://oss.oetiker.ch/rrdtool/ + +comment "rrdtool needs a toolchain w/ wchar" + depends on !BR2_USE_WCHAR +-------------------------- + + +Note that these two dependency types are only transitive with the +dependencies of the same kind. + +This means, in the following example: + +-------------------------- +config BR2_PACKAGE_A + bool "Package A" + +config BR2_PACKAGE_B + bool "Package B" + depends on BR2_PACKAGE_A + +config BR2_PACKAGE_C + bool "Package C" + depends on BR2_PACKAGE_B + +config BR2_PACKAGE_D + bool "Package D" + select BR2_PACKAGE_B + +config BR2_PACKAGE_E + bool "Package E" + select BR2_PACKAGE_D +-------------------------- + +* Selecting +Package C+ will be visible if +Package B+ has been + selected, which in turn is only visible if +Package A+ has been + selected. + +* Selecting +Package E+ will select +Package D+, which will select + +Package B+, it will not check for the dependencies of +Package B+, + so it will not select +Package A+. + +* Since +Package B+ is selected but +Package A+ is not, this violates + the dependency of +Package B+ on +Package A+. Therefore, in such a + situation, the transitive dependency has to be added explicitly: + +-------------------------- +config BR2_PACKAGE_D + bool "Package D" + depends on BR2_PACKAGE_A + select BR2_PACKAGE_B + +config BR2_PACKAGE_E + bool "Package E" + depends on BR2_PACKAGE_A + select BR2_PACKAGE_D +-------------------------- + +Overall, for package library dependencies, +select+ should be +preferred. + +Note that such dependencies will ensure that the dependency option +is also enabled, but not necessarily built before your package. To do +so, the dependency also needs to be expressed in the +.mk+ file of the +package. + +Further formatting details: see xref:writing-rules-config-in[the +coding style]. + +[[dependencies-target-toolchain-options]] +==== Dependencies on target and toolchain options + +Many packages depend on certain options of the toolchain: the choice of +C library, C++ support, thread support, RPC support, wchar support, +or dynamic library support. Some packages can only be built on certain +target architectures, or if an MMU is available in the processor. + +These dependencies have to be expressed with the appropriate 'depends +on' statements in the Config.in file. Additionally, for dependencies on +toolchain options, a +comment+ should be displayed when the option is +not enabled, so that the user knows why the package is not available. +Dependencies on target architecture or MMU support should not be +made visible in a comment: since it is unlikely that the user can +freely choose another target, it makes little sense to show these +dependencies explicitly. + +The +comment+ should only be visible if the +config+ option itself would +be visible when the toolchain option dependencies are met. This means +that all other dependencies of the package (including dependencies on +target architecture and MMU support) have to be repeated on the ++comment+ definition. To keep it clear, the +depends on+ statement for +these non-toolchain option should be kept separate from the +depends on+ +statement for the toolchain options. +If there is a dependency on a config option in that same file (typically +the main package) it is preferable to have a global +if ... endif+ +construct rather than repeating the +depends on+ statement on the +comment and other config options. + +The general format of a dependency +comment+ for package foo is: + +-------------------------- +foo needs a toolchain w/ featA, featB, featC +-------------------------- + +for example: + +-------------------------- +mpd needs a toolchain w/ C++, threads, wchar +-------------------------- + +or + +-------------------------- +crda needs a toolchain w/ threads +-------------------------- + +Note that this text is kept brief on purpose, so that it will fit on a +80-character terminal. + +The rest of this section enumerates the different target and toolchain +options, the corresponding config symbols to depend on, and the text to +use in the comment. + +* Target architecture +** Dependency symbol: +BR2_powerpc+, +BR2_mips+, ... (see +arch/Config.in+) +** Comment string: no comment to be added + +* MMU support +** Dependency symbol: +BR2_USE_MMU+ +** Comment string: no comment to be added + +* Gcc +__sync_*+ built-ins used for atomic operations. They are + available in variants operating on 1 byte, 2 bytes, 4 bytes and 8 + bytes. Since different architectures support atomic operations on + different sizes, one dependency symbol is available for each size: +** Dependency symbol: +BR2_TOOLCHAIN_HAS_SYNC_1+ for 1 byte, + +BR2_TOOLCHAIN_HAS_SYNC_2+ for 2 bytes, + +BR2_TOOLCHAIN_HAS_SYNC_4+ for 4 bytes, +BR2_TOOLCHAIN_HAS_SYNC_8+ + for 8 bytes. +** Comment string: no comment to be added + +* Gcc +__atomic_*+ built-ins used for atomic operations. +** Dependency symbol: +BR2_TOOLCHAIN_HAS_ATOMIC+. +** Comment string: no comment to be added + +* Kernel headers +** Dependency symbol: +BR2_TOOLCHAIN_HEADERS_AT_LEAST_X_Y+, (replace + +X_Y+ with the proper version, see +toolchain/Config.in+) +** Comment string: +headers >= X.Y+ and/or `headers <= X.Y` (replace + +X.Y+ with the proper version) + +* GCC version +** Dependency symbol: +BR2_TOOLCHAIN_GCC_AT_LEAST_X_Y+, (replace + +X_Y+ with the proper version, see +toolchain/Config.in+) +** Comment string: +gcc >= X.Y+ and/or `gcc <= X.Y` (replace + +X.Y+ with the proper version) + +* Host GCC version +** Dependency symbol: +BR2_HOST_GCC_AT_LEAST_X_Y+, (replace + +X_Y+ with the proper version, see +Config.in+) +** Comment string: no comment to be added +** Note that it is usually not the package itself that has a minimum + host GCC version, but rather a host-package on which it depends. + +* C library +** Dependency symbol: +BR2_TOOLCHAIN_USES_GLIBC+, + +BR2_TOOLCHAIN_USES_MUSL+, +BR2_TOOLCHAIN_USES_UCLIBC+ +** Comment string: for the C library, a slightly different comment text + is used: +foo needs a glibc toolchain+, or `foo needs a glibc + toolchain w/ C++` + +* C++ support +** Dependency symbol: +BR2_INSTALL_LIBSTDCPP+ +** Comment string: `C++` + +* D support +** Dependency symbol: +BR2_TOOLCHAIN_HAS_DLANG+ +** Comment string: `Dlang` + +* Fortran support +** Dependency symbol: +BR2_TOOLCHAIN_HAS_FORTRAN+ +** Comment string: `fortran` + +* thread support +** Dependency symbol: +BR2_TOOLCHAIN_HAS_THREADS+ +** Comment string: +threads+ (unless +BR2_TOOLCHAIN_HAS_THREADS_NPTL+ + is also needed, in which case, specifying only +NPTL+ is sufficient) + +* NPTL thread support +** Dependency symbol: +BR2_TOOLCHAIN_HAS_THREADS_NPTL+ +** Comment string: +NPTL+ + +* RPC support +** Dependency symbol: +BR2_TOOLCHAIN_HAS_NATIVE_RPC+ +** Comment string: +RPC+ + +* wchar support +** Dependency symbol: +BR2_USE_WCHAR+ +** Comment string: +wchar+ + +* dynamic library +** Dependency symbol: +!BR2_STATIC_LIBS+ +** Comment string: +dynamic library+ + +==== Dependencies on a Linux kernel built by buildroot + +Some packages need a Linux kernel to be built by buildroot. These are +typically kernel modules or firmware. A comment should be added in the +Config.in file to express this dependency, similar to dependencies on +toolchain options. The general format is: + +-------------------------- +foo needs a Linux kernel to be built +-------------------------- + +If there is a dependency on both toolchain options and the Linux +kernel, use this format: + +-------------------------- +foo needs a toolchain w/ featA, featB, featC and a Linux kernel to be built +-------------------------- + +==== Dependencies on udev /dev management + +If a package needs udev /dev management, it should depend on symbol ++BR2_PACKAGE_HAS_UDEV+, and the following comment should be added: + +-------------------------- +foo needs udev /dev management +-------------------------- + +If there is a dependency on both toolchain options and udev /dev +management, use this format: + +-------------------------- +foo needs udev /dev management and a toolchain w/ featA, featB, featC +-------------------------- + +==== Dependencies on features provided by virtual packages + +Some features can be provided by more than one package, such as the +openGL libraries. + +See xref:virtual-package-tutorial[] for more on the virtual packages. + +=== The +.mk+ file + +[[adding-packages-mk]] + +Finally, here's the hardest part. Create a file named +libfoo.mk+. It +describes how the package should be downloaded, configured, built, +installed, etc. + +Depending on the package type, the +.mk+ file must be written in a +different way, using different infrastructures: + +* *Makefiles for generic packages* (not using autotools or CMake): + These are based on an infrastructure similar to the one used for + autotools-based packages, but require a little more work from the + developer. They specify what should be done for the configuration, + compilation and installation of the package. This + infrastructure must be used for all packages that do not use the + autotools as their build system. In the future, other specialized + infrastructures might be written for other build systems. We cover + them through in a xref:generic-package-tutorial[tutorial] and a + xref:generic-package-reference[reference]. + +* *Makefiles for autotools-based software* (autoconf, automake, etc.): + We provide a dedicated infrastructure for such packages, since + autotools is a very common build system. This infrastructure 'must' + be used for new packages that rely on the autotools as their build + system. We cover them through a xref:autotools-package-tutorial[tutorial] + and xref:autotools-package-reference[reference]. + +* *Makefiles for cmake-based software*: We provide a dedicated + infrastructure for such packages, as CMake is a more and more + commonly used build system and has a standardized behaviour. This + infrastructure 'must' be used for new packages that rely on + CMake. We cover them through a xref:cmake-package-tutorial[tutorial] + and xref:cmake-package-reference[reference]. + +* *Makefiles for Python modules*: We have a dedicated infrastructure + for Python modules that use the +distutils+, +flit+, +pep517+ or + +setuptools+ mechanisms. We cover them through a + xref:python-package-tutorial[tutorial] and a + xref:python-package-reference[reference]. + +* *Makefiles for Lua modules*: We have a dedicated infrastructure for + Lua modules available through the LuaRocks web site. We cover them + through a xref:luarocks-package-tutorial[tutorial] and a + xref:luarocks-package-reference[reference]. + +Further formatting details: see xref:writing-rules-mk[the writing +rules]. + +[[adding-packages-hash]] +=== The +.hash+ file + +When possible, you must add a third file, named +libfoo.hash+, that +contains the hashes of the downloaded files for the +libfoo+ +package. The only reason for not adding a +.hash+ file is when hash +checking is not possible due to how the package is downloaded. + +When a package has a version selection choice, then the hash file may be +stored in a subdirectory named after the version, e.g. ++package/libfoo/1.2.3/libfoo.hash+. This is especially important if the +different versions have different licensing terms, but they are stored +in the same file. Otherwise, the hash file should stay in the package's +directory. + +The hashes stored in that file are used to validate the integrity of the +downloaded files and of the license files. + +The format of this file is one line for each file for which to check the +hash, each line with the following three fields separated by two spaces: + +* the type of hash, one of: +** +md5+, +sha1+, +sha224+, +sha256+, +sha384+, +sha512+ +* the hash of the file: +** for +md5+, 32 hexadecimal characters +** for +sha1+, 40 hexadecimal characters +** for +sha224+, 56 hexadecimal characters +** for +sha256+, 64 hexadecimal characters +** for +sha384+, 96 hexadecimal characters +** for +sha512+, 128 hexadecimal characters +* the name of the file: +** for a source archive: the basename of the file, without any directory + component, +** for a license file: the path as it appears in +FOO_LICENSE_FILES+. + +Lines starting with a +#+ sign are considered comments, and ignored. Empty +lines are ignored. + +There can be more than one hash for a single file, each on its own line. In +this case, all hashes must match. + +.Note +Ideally, the hashes stored in this file should match the hashes published by +upstream, e.g. on their website, in the e-mail announcement... If upstream +provides more than one type of hash (e.g. +sha1+ and +sha512+), then it is +best to add all those hashes in the +.hash+ file. If upstream does not +provide any hash, or only provides an +md5+ hash, then compute at least one +strong hash yourself (preferably +sha256+, but not +md5+), and mention +this in a comment line above the hashes. + +.Note +The hashes for license files are used to detect a license change when a +package version is bumped. The hashes are checked during the make legal-info +target run. For a package with multiple versions (like Qt5), +create the hash file in a subdirectory ++ of that package +(see also xref:patch-apply-order[]). + +The example below defines a +sha1+ and a +sha256+ published by upstream for +the main +libfoo-1.2.3.tar.bz2+ tarball, an +md5+ from upstream and a +locally-computed +sha256+ hashes for a binary blob, a +sha256+ for a +downloaded patch, and an archive with no hash: + +---- +# Hashes from: http://www.foosoftware.org/download/libfoo-1.2.3.tar.bz2.{sha1,sha256}: +sha1 486fb55c3efa71148fe07895fd713ea3a5ae343a libfoo-1.2.3.tar.bz2 +sha256 efc8103cc3bcb06bda6a781532d12701eb081ad83e8f90004b39ab81b65d4369 libfoo-1.2.3.tar.bz2 + +# md5 from: http://www.foosoftware.org/download/libfoo-1.2.3.tar.bz2.md5, sha256 locally computed: +md5 2d608f3c318c6b7557d551a5a09314f03452f1a1 libfoo-data.bin +sha256 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b libfoo-data.bin + +# Locally computed: +sha256 ff52101fb90bbfc3fe9475e425688c660f46216d7e751c4bbdb1dc85cdccacb9 libfoo-fix-blabla.patch + +# Hash for license files: +sha256 a45a845012742796534f7e91fe623262ccfb99460a2bd04015bd28d66fba95b8 COPYING +sha256 01b1f9f2c8ee648a7a596a1abe8aa4ed7899b1c9e5551bda06da6e422b04aa55 doc/COPYING.LGPL +---- + +If the +.hash+ file is present, and it contains one or more hashes for a +downloaded file, the hash(es) computed by Buildroot (after download) must +match the hash(es) stored in the +.hash+ file. If one or more hashes do +not match, Buildroot considers this an error, deletes the downloaded file, +and aborts. + +If the +.hash+ file is present, but it does not contain a hash for a +downloaded file, Buildroot considers this an error and aborts. However, +the downloaded file is left in the download directory since this +typically indicates that the +.hash+ file is wrong but the downloaded +file is probably OK. + +Hashes are currently checked for files fetched from http/ftp servers, +Git repositories, files copied using scp and local files. Hashes are +not checked for other version control systems (such as Subversion, +CVS, etc.) because Buildroot currently does not generate reproducible +tarballs when source code is fetched from such version control +systems. + +Hashes should only be added in +.hash+ files for files that are +guaranteed to be stable. For example, patches auto-generated by Github +are not guaranteed to be stable, and therefore their hashes can change +over time. Such patches should not be downloaded, and instead be added +locally to the package folder. + +If the +.hash+ file is missing, then no check is done at all. + +[[adding-packages-start-script]] +=== The +SNNfoo+ start script + +Packages that provide a system daemon usually need to be started somehow +at boot. Buildroot comes with support for several init systems, some +are considered tier one (see xref:init-system[]), while others are also +available but do not have the same level of integration. Ideally, all +packages providing a system daemon should provide a start script for +BusyBox/SysV init and a systemd unit file. + +For consistency, the start script must follow the style and composition +as shown in the reference: +package/busybox/S01syslogd+. An annotated +example of this style is shown below. There is no specific coding style +for systemd unit files, but if a package comes with its own unit file, +that is preferred over a buildroot specific one, if it is compatible +with buildroot. + +The name of the start script is composed of the +SNN+ and the daemon +name. The +NN+ is the start order number which needs to be carefully +chosen. For example, a program that requires networking to be up should +not start before +S40network+. The scripts are started in alphabetical +order, so +S01syslogd+ starts before +S01watchdogd+, and +S02sysctl+ +start thereafter. + +------------------------------ +01: #!/bin/sh +02: +03: DAEMON="syslogd" +04: PIDFILE="/var/run/$DAEMON.pid" +05: +06: SYSLOGD_ARGS="" +07: +08: # shellcheck source=/dev/null +09: [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" +10: +11: # BusyBox' syslogd does not create a pidfile, so pass "-n" in the command line +12: # and use "-m" to instruct start-stop-daemon to create one. +13: start() { +14: printf 'Starting %s: ' "$DAEMON" +15: # shellcheck disable=SC2086 # we need the word splitting +16: start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "/sbin/$DAEMON" \ +17: -- -n $SYSLOGD_ARGS +18: status=$? +19: if [ "$status" -eq 0 ]; then +20: echo "OK" +21: else +22: echo "FAIL" +23: fi +24: return "$status" +25: } +26: +27: stop() { +28: printf 'Stopping %s: ' "$DAEMON" +29: start-stop-daemon -K -q -p "$PIDFILE" +30: status=$? +31: if [ "$status" -eq 0 ]; then +32: rm -f "$PIDFILE" +33: echo "OK" +34: else +35: echo "FAIL" +36: fi +37: return "$status" +38: } +39: +40: restart() { +41: stop +42: sleep 1 +43: start +44: } +45: +46: case "$1" in +47: start|stop|restart) +48: "$1";; +49: reload) +50: # Restart, since there is no true "reload" feature. +51: restart;; +52: *) +53: echo "Usage: $0 {start|stop|restart|reload}" +54: exit 1 +55: esac +------------------------------ + +*Note:* programs that support reloading their configuration in some +fashion (+SIGHUP+) should provide a +reload()+ function similar to ++stop()+. The +start-stop-daemon+ supports +-K -s HUP+ for this. +It is recommended to always append +-x "/sbin/$DAEMON"+ to all the ++start-stop-daemon+ commands to ensure signals are set to a PID that +matches +$DAEMON+. + +Both start scripts and unit files can source command line arguments from ++/etc/default/foo+, in general, if such a file does not exist it should +not block the start of the daemon, unless there is some site specirfic +command line argument the daemon requires to start. For start scripts a ++FOO_ARGS="-s -o -m -e -args"+ can be defined to a default value in and +the user can override this from +/etc/default/foo+. diff --git a/docs/manual/adding-packages-generic.txt b/docs/manual/adding-packages-generic.txt new file mode 100644 index 000000000..fbe37f9ca --- /dev/null +++ b/docs/manual/adding-packages-generic.txt @@ -0,0 +1,664 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +=== Infrastructure for packages with specific build systems + +By 'packages with specific build systems' we mean all the packages +whose build system is not one of the standard ones, such as +'autotools' or 'CMake'. This typically includes packages whose build +system is based on hand-written Makefiles or shell scripts. + +[[generic-package-tutorial]] + +==== +generic-package+ tutorial + +------------------------------ +01: ################################################################################ +02: # +03: # libfoo +04: # +05: ################################################################################ +06: +07: LIBFOO_VERSION = 1.0 +08: LIBFOO_SOURCE = libfoo-$(LIBFOO_VERSION).tar.gz +09: LIBFOO_SITE = http://www.foosoftware.org/download +10: LIBFOO_LICENSE = GPL-3.0+ +11: LIBFOO_LICENSE_FILES = COPYING +12: LIBFOO_INSTALL_STAGING = YES +13: LIBFOO_CONFIG_SCRIPTS = libfoo-config +14: LIBFOO_DEPENDENCIES = host-libaaa libbbb +15: +16: define LIBFOO_BUILD_CMDS +17: $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) all +18: endef +19: +20: define LIBFOO_INSTALL_STAGING_CMDS +21: $(INSTALL) -D -m 0755 $(@D)/libfoo.a $(STAGING_DIR)/usr/lib/libfoo.a +22: $(INSTALL) -D -m 0644 $(@D)/foo.h $(STAGING_DIR)/usr/include/foo.h +23: $(INSTALL) -D -m 0755 $(@D)/libfoo.so* $(STAGING_DIR)/usr/lib +24: endef +25: +26: define LIBFOO_INSTALL_TARGET_CMDS +27: $(INSTALL) -D -m 0755 $(@D)/libfoo.so* $(TARGET_DIR)/usr/lib +28: $(INSTALL) -d -m 0755 $(TARGET_DIR)/etc/foo.d +29: endef +30: +31: define LIBFOO_USERS +32: foo -1 libfoo -1 * - - - LibFoo daemon +33: endef +34: +35: define LIBFOO_DEVICES +36: /dev/foo c 666 0 0 42 0 - - - +37: endef +38: +39: define LIBFOO_PERMISSIONS +40: /bin/foo f 4755 foo libfoo - - - - - +41: endef +42: +43: $(eval $(generic-package)) +-------------------------------- + +The Makefile begins on line 7 to 11 with metadata information: the +version of the package (+LIBFOO_VERSION+), the name of the +tarball containing the package (+LIBFOO_SOURCE+) (xz-ed tarball recommended) +the Internet location at which the tarball can be downloaded from +(+LIBFOO_SITE+), the license (+LIBFOO_LICENSE+) and file with the +license text (+LIBFOO_LICENSE_FILES+). All variables must start with +the same prefix, +LIBFOO_+ in this case. This prefix is always the +uppercased version of the package name (see below to understand where +the package name is defined). + +On line 12, we specify that this package wants to install something to +the staging space. This is often needed for libraries, since they must +install header files and other development files in the staging space. +This will ensure that the commands listed in the ++LIBFOO_INSTALL_STAGING_CMDS+ variable will be executed. + +On line 13, we specify that there is some fixing to be done to some +of the 'libfoo-config' files that were installed during ++LIBFOO_INSTALL_STAGING_CMDS+ phase. +These *-config files are executable shell script files that are +located in '$(STAGING_DIR)/usr/bin' directory and are executed +by other 3rd party packages to find out the location and the linking +flags of this particular package. + +The problem is that all these *-config files by default give wrong, +host system linking flags that are unsuitable for cross-compiling. + +For example: '-I/usr/include' instead of '-I$(STAGING_DIR)/usr/include' +or: '-L/usr/lib' instead of '-L$(STAGING_DIR)/usr/lib' + +So some sed magic is done to these scripts to make them give correct +flags. +The argument to be given to +LIBFOO_CONFIG_SCRIPTS+ is the file name(s) +of the shell script(s) needing fixing. All these names are relative to +'$(STAGING_DIR)/usr/bin' and if needed multiple names can be given. + +In addition, the scripts listed in +LIBFOO_CONFIG_SCRIPTS+ are removed +from +$(TARGET_DIR)/usr/bin+, since they are not needed on the target. + +.Config script: 'divine' package +================================ +Package divine installs shell script '$(STAGING_DIR)/usr/bin/divine-config'. + +So its fixup would be: + +-------------------------------- +DIVINE_CONFIG_SCRIPTS = divine-config +-------------------------------- +================================ + +.Config script: 'imagemagick' package: +================================ +Package imagemagick installs the following scripts: +'$(STAGING_DIR)/usr/bin/{Magick,Magick++,MagickCore,MagickWand,Wand}-config' + +So it's fixup would be: + +-------------------------------- +IMAGEMAGICK_CONFIG_SCRIPTS = \ + Magick-config Magick++-config \ + MagickCore-config MagickWand-config Wand-config +-------------------------------- +================================ + +On line 14, we specify the list of dependencies this package relies +on. These dependencies are listed in terms of lower-case package names, +which can be packages for the target (without the +host-+ +prefix) or packages for the host (with the +host-+) prefix). +Buildroot will ensure that all these packages are built and installed +'before' the current package starts its configuration. + +The rest of the Makefile, lines 16..29, defines what should be done +at the different steps of the package configuration, compilation and +installation. ++LIBFOO_BUILD_CMDS+ tells what steps should be performed to +build the package. +LIBFOO_INSTALL_STAGING_CMDS+ tells what +steps should be performed to install the package in the staging space. ++LIBFOO_INSTALL_TARGET_CMDS+ tells what steps should be +performed to install the package in the target space. + +All these steps rely on the +$(@D)+ variable, which +contains the directory where the source code of the package has been +extracted. + +On lines 31..33, we define a user that is used by this package (e.g. +to run a daemon as non-root) (+LIBFOO_USERS+). + +On line 35..37, we define a device-node file used by this package +(+LIBFOO_DEVICES+). + +On line 39..41, we define the permissions to set to specific files +installed by this package (+LIBFOO_PERMISSIONS+). + +Finally, on line 43, we call the +generic-package+ function, which +generates, according to the variables defined previously, all the +Makefile code necessary to make your package working. + +[[generic-package-reference]] + +==== +generic-package+ reference + +There are two variants of the generic target. The +generic-package+ macro is +used for packages to be cross-compiled for the target. The ++host-generic-package+ macro is used for host packages, natively compiled +for the host. It is possible to call both of them in a single +.mk+ +file: once to create the rules to generate a target +package and once to create the rules to generate a host package: + +---------------------- +$(eval $(generic-package)) +$(eval $(host-generic-package)) +---------------------- + +This might be useful if the compilation of the target package requires +some tools to be installed on the host. If the package name is ++libfoo+, then the name of the package for the target is also ++libfoo+, while the name of the package for the host is ++host-libfoo+. These names should be used in the DEPENDENCIES +variables of other packages, if they depend on +libfoo+ or ++host-libfoo+. + +The call to the +generic-package+ and/or +host-generic-package+ macro +*must* be at the end of the +.mk+ file, after all variable definitions. +The call to +host-generic-package+ *must* be after the call to ++generic-package+, if any. + +For the target package, the +generic-package+ uses the variables defined by +the .mk file and prefixed by the uppercased package name: ++LIBFOO_*+. +host-generic-package+ uses the +HOST_LIBFOO_*+ variables. For +'some' variables, if the +HOST_LIBFOO_+ prefixed variable doesn't +exist, the package infrastructure uses the corresponding variable +prefixed by +LIBFOO_+. This is done for variables that are likely to +have the same value for both the target and host packages. See below +for details. + +The list of variables that can be set in a +.mk+ file to give metadata +information is (assuming the package name is +libfoo+) : + +* +LIBFOO_VERSION+, mandatory, must contain the version of the + package. Note that if +HOST_LIBFOO_VERSION+ doesn't exist, it is + assumed to be the same as +LIBFOO_VERSION+. It can also be a + revision number or a tag for packages that are fetched directly + from their version control system. Examples: + ** a version for a release tarball: +LIBFOO_VERSION = 0.1.2+ + ** a sha1 for a git tree: +LIBFOO_VERSION = cb9d6aa9429e838f0e54faa3d455bcbab5eef057+ + ** a tag for a git tree +LIBFOO_VERSION = v0.1.2+ ++ +.Note: +Using a branch name as +FOO_VERSION+ is not supported, because it does +not and can not work as people would expect it should: ++ + 1. due to local caching, Buildroot will not re-fetch the repository, + so people who expect to be able to follow the remote repository + would be quite surprised and disappointed; + 2. because two builds can never be perfectly simultaneous, and because + the remote repository may get new commits on the branch anytime, + two users, using the same Buildroot tree and building the same + configuration, may get different source, thus rendering the build + non reproducible, and people would be quite surprised and + disappointed. + +* +LIBFOO_SOURCE+ may contain the name of the tarball of the package, + which Buildroot will use to download the tarball from + +LIBFOO_SITE+. If +HOST_LIBFOO_SOURCE+ is not specified, it defaults + to +LIBFOO_SOURCE+. If none are specified, then the value is assumed + to be +libfoo-$(LIBFOO_VERSION).tar.gz+. + + Example: +LIBFOO_SOURCE = foobar-$(LIBFOO_VERSION).tar.bz2+ + +* +LIBFOO_PATCH+ may contain a space-separated list of patch file + names, that Buildroot will download and apply to the package source + code. If an entry contains +://+, then Buildroot will assume it is a + full URL and download the patch from this location. Otherwise, + Buildroot will assume that the patch should be downloaded from + +LIBFOO_SITE+. If +HOST_LIBFOO_PATCH+ is not specified, it defaults + to +LIBFOO_PATCH+. Note that patches that are included in Buildroot + itself use a different mechanism: all files of the form + +*.patch+ present in the package directory inside + Buildroot will be applied to the package after extraction (see + xref:patch-policy[patching a package]). Finally, patches listed in + the +LIBFOO_PATCH+ variable are applied _before_ the patches stored + in the Buildroot package directory. + +* +LIBFOO_SITE+ provides the location of the package, which can be a + URL or a local filesystem path. HTTP, FTP and SCP are supported URL + types for retrieving package tarballs. In these cases don't include a + trailing slash: it will be added by Buildroot between the directory + and the filename as appropriate. Git, Subversion, Mercurial, + and Bazaar are supported URL types for retrieving packages directly + from source code management systems. There is a helper function to make + it easier to download source tarballs from GitHub (refer to + xref:github-download-url[] for details). A filesystem path may be used + to specify either a tarball or a directory containing the package + source code. See +LIBFOO_SITE_METHOD+ below for more details on how + retrieval works. + + Note that SCP URLs should be of the form + +scp://[user@]host:filepath+, and that filepath is relative to the + user's home directory, so you may want to prepend the path with a + slash for absolute paths: + +scp://[user@]host:/absolutepath+. The same goes for SFTP URLs. + + If +HOST_LIBFOO_SITE+ is not specified, it defaults to + +LIBFOO_SITE+. + Examples: + + +LIBFOO_SITE=http://www.libfoosoftware.org/libfoo+ + + +LIBFOO_SITE=http://svn.xiph.org/trunk/Tremor+ + + +LIBFOO_SITE=/opt/software/libfoo.tar.gz+ + + +LIBFOO_SITE=$(TOPDIR)/../src/libfoo+ + +* +LIBFOO_DL_OPTS+ is a space-separated list of additional options to + pass to the downloader. Useful for retrieving documents with + server-side checking for user logins and passwords, or to use a proxy. + All download methods valid for +LIBFOO_SITE_METHOD+ are supported; + valid options depend on the download method (consult the man page + for the respective download utilities). + +* +LIBFOO_EXTRA_DOWNLOADS+ is a space-separated list of additional + files that Buildroot should download. If an entry contains +://+ + then Buildroot will assume it is a complete URL and will download + the file using this URL. Otherwise, Buildroot will assume the file + to be downloaded is located at +LIBFOO_SITE+. Buildroot will not do + anything with those additional files, except download them: it will + be up to the package recipe to use them from +$(LIBFOO_DL_DIR)+. + +* +LIBFOO_SITE_METHOD+ determines the method used to fetch or copy the + package source code. In many cases, Buildroot guesses the method + from the contents of +LIBFOO_SITE+ and setting +LIBFOO_SITE_METHOD+ + is unnecessary. When +HOST_LIBFOO_SITE_METHOD+ is not specified, it + defaults to the value of +LIBFOO_SITE_METHOD+. + + The possible values of +LIBFOO_SITE_METHOD+ are: + ** +wget+ for normal FTP/HTTP downloads of tarballs. Used by + default when +LIBFOO_SITE+ begins with +http://+, +https://+ or + +ftp://+. + ** +scp+ for downloads of tarballs over SSH with scp. Used by + default when +LIBFOO_SITE+ begins with +scp://+. + ** +sftp+ for downloads of tarballs over SSH with sftp. Used by + default when +LIBFOO_SITE+ begins with +sftp://+. + ** +svn+ for retrieving source code from a Subversion repository. + Used by default when +LIBFOO_SITE+ begins with +svn://+. When a + +http://+ Subversion repository URL is specified in + +LIBFOO_SITE+, one 'must' specify +LIBFOO_SITE_METHOD=svn+. + Buildroot performs a checkout which is preserved as a tarball in + the download cache; subsequent builds use the tarball instead of + performing another checkout. + ** +cvs+ for retrieving source code from a CVS repository. + Used by default when +LIBFOO_SITE+ begins with +cvs://+. + The downloaded source code is cached as with the +svn+ method. + Anonymous pserver mode is assumed otherwise explicitly defined + on +LIBFOO_SITE+. Both + +LIBFOO_SITE=cvs://libfoo.net:/cvsroot/libfoo+ and + +LIBFOO_SITE=cvs://:ext:libfoo.net:/cvsroot/libfoo+ + are accepted, on the former anonymous pserver access mode is + assumed. + +LIBFOO_SITE+ 'must' contain the source URL as well as the remote + repository directory. The module is the package name. + +LIBFOO_VERSION+ is 'mandatory' and 'must' be a tag, a branch, or + a date (e.g. "2014-10-20", "2014-10-20 13:45", "2014-10-20 + 13:45+01" see "man cvs" for further details). + ** +git+ for retrieving source code from a Git repository. Used by + default when +LIBFOO_SITE+ begins with +git://+. The downloaded + source code is cached as with the +svn+ method. + ** +hg+ for retrieving source code from a Mercurial repository. One + 'must' specify +LIBFOO_SITE_METHOD=hg+ when +LIBFOO_SITE+ + contains a Mercurial repository URL. The downloaded source code + is cached as with the +svn+ method. + ** +bzr+ for retrieving source code from a Bazaar repository. Used + by default when +LIBFOO_SITE+ begins with +bzr://+. The + downloaded source code is cached as with the +svn+ method. + ** +file+ for a local tarball. One should use this when + +LIBFOO_SITE+ specifies a package tarball as a local filename. + Useful for software that isn't available publicly or in version + control. + ** +local+ for a local source code directory. One should use this + when +LIBFOO_SITE+ specifies a local directory path containing + the package source code. Buildroot copies the contents of the + source directory into the package's build directory. Note that + for +local+ packages, no patches are applied. If you need to + still patch the source code, use +LIBFOO_POST_RSYNC_HOOKS+, see + xref:hooks-rsync[]. + +* +LIBFOO_GIT_SUBMODULES+ can be set to +YES+ to create an archive + with the git submodules in the repository. This is only available + for packages downloaded with git (i.e. when + +LIBFOO_SITE_METHOD=git+). Note that we try not to use such git + submodules when they contain bundled libraries, in which case we + prefer to use those libraries from their own package. + +* +LIBFOO_GIT_LFS+ should be set to +YES+ if the Git repository uses + Git LFS to store large files out of band. This is only available for + packages downloaded with git (i.e. when +LIBFOO_SITE_METHOD=git+). + +* +LIBFOO_STRIP_COMPONENTS+ is the number of leading components + (directories) that tar must strip from file names on extraction. + The tarball for most packages has one leading component named + "-", thus Buildroot passes + --strip-components=1 to tar to remove it. + For non-standard packages that don't have this component, or + that have more than one leading component to strip, set this + variable with the value to be passed to tar. Default: 1. + +* +LIBFOO_EXCLUDES+ is a space-separated list of patterns to exclude + when extracting the archive. Each item from that list is passed as + a tar's +--exclude+ option. By default, empty. + +* +LIBFOO_DEPENDENCIES+ lists the dependencies (in terms of package + name) that are required for the current target package to + compile. These dependencies are guaranteed to be compiled and + installed before the configuration of the current package starts. + However, modifications to configuration of these dependencies will + not force a rebuild of the current package. In a similar way, + +HOST_LIBFOO_DEPENDENCIES+ lists the dependencies for the current + host package. + +* +LIBFOO_EXTRACT_DEPENDENCIES+ lists the dependencies (in terms of + package name) that are required for the current target package to be + extracted. These dependencies are guaranteed to be compiled and + installed before the extract step of the current package + starts. This is only used internally by the package infrastructure, + and should typically not be used directly by packages. + +* +LIBFOO_PATCH_DEPENDENCIES+ lists the dependencies (in terms of + package name) that are required for the current package to be + patched. These dependencies are guaranteed to be extracted and + patched (but not necessarily built) before the current package is + patched. In a similar way, +HOST_LIBFOO_PATCH_DEPENDENCIES+ lists + the dependencies for the current host package. + This is seldom used; usually, +LIBFOO_DEPENDENCIES+ is what you + really want to use. + +* +LIBFOO_PROVIDES+ lists all the virtual packages +libfoo+ is an + implementation of. See xref:virtual-package-tutorial[]. + +* +LIBFOO_INSTALL_STAGING+ can be set to +YES+ or +NO+ (default). If + set to +YES+, then the commands in the +LIBFOO_INSTALL_STAGING_CMDS+ + variables are executed to install the package into the staging + directory. + +* +LIBFOO_INSTALL_TARGET+ can be set to +YES+ (default) or +NO+. If + set to +YES+, then the commands in the +LIBFOO_INSTALL_TARGET_CMDS+ + variables are executed to install the package into the target + directory. + +* +LIBFOO_INSTALL_IMAGES+ can be set to +YES+ or +NO+ (default). If + set to +YES+, then the commands in the +LIBFOO_INSTALL_IMAGES_CMDS+ + variable are executed to install the package into the images + directory. + +* +LIBFOO_CONFIG_SCRIPTS+ lists the names of the files in + '$(STAGING_DIR)/usr/bin' that need some special fixing to make them + cross-compiling friendly. Multiple file names separated by space can + be given and all are relative to '$(STAGING_DIR)/usr/bin'. The files + listed in +LIBFOO_CONFIG_SCRIPTS+ are also removed from + +$(TARGET_DIR)/usr/bin+ since they are not needed on the target. + +* +LIBFOO_DEVICES+ lists the device files to be created by Buildroot + when using the static device table. The syntax to use is the + makedevs one. You can find some documentation for this syntax in the + xref:makedev-syntax[]. This variable is optional. + +* +LIBFOO_PERMISSIONS+ lists the changes of permissions to be done at + the end of the build process. The syntax is once again the makedevs one. + You can find some documentation for this syntax in the xref:makedev-syntax[]. + This variable is optional. + +* +LIBFOO_USERS+ lists the users to create for this package, if it installs + a program you want to run as a specific user (e.g. as a daemon, or as a + cron-job). The syntax is similar in spirit to the makedevs one, and is + described in the xref:makeuser-syntax[]. This variable is optional. + +* +LIBFOO_LICENSE+ defines the license (or licenses) under which the package + is released. + This name will appear in the manifest file produced by +make legal-info+. + If the license appears in https://spdx.org/licenses/[the SPDX License List], + use the SPDX short identifier to make the manifest file uniform. + Otherwise, describe the license in a precise and concise way, avoiding + ambiguous names such as +BSD+ which actually name a family of licenses. + This variable is optional. If it is not defined, +unknown+ will appear in + the +license+ field of the manifest file for this package. + + The expected format for this variable must comply with the following rules: + ** If different parts of the package are released under different + licenses, then +comma+ separate licenses (e.g. +`LIBFOO_LICENSE = + GPL-2.0+, LGPL-2.1+`+). If there is clear distinction between which + component is licensed under what license, then annotate the license + with that component, between parenthesis (e.g. +`LIBFOO_LICENSE = + GPL-2.0+ (programs), LGPL-2.1+ (libraries)`+). + ** If some licenses are conditioned on a sub-option being enabled, append + the conditional licenses with a comma (e.g.: `FOO_LICENSE += , GPL-2.0+ + (programs)`); the infrastructure will internally remove the space before + the comma. + ** If the package is dual licensed, then separate licenses with the + +or+ keyword (e.g. +`LIBFOO_LICENSE = AFL-2.1 or GPL-2.0+`+). + +* +LIBFOO_LICENSE_FILES+ is a space-separated list of files in the package + tarball that contain the license(s) under which the package is released. + +make legal-info+ copies all of these files in the +legal-info+ directory. + See xref:legal-info[] for more information. + This variable is optional. If it is not defined, a warning will be produced + to let you know, and +not saved+ will appear in the +license files+ field + of the manifest file for this package. + +* +LIBFOO_ACTUAL_SOURCE_TARBALL+ only applies to packages whose + +LIBFOO_SITE+ / +LIBFOO_SOURCE+ pair points to an archive that does + not actually contain source code, but binary code. This a very + uncommon case, only known to apply to external toolchains which come + already compiled, although theoretically it might apply to other + packages. In such cases a separate tarball is usually available with + the actual source code. Set +LIBFOO_ACTUAL_SOURCE_TARBALL+ to the + name of the actual source code archive and Buildroot will download + it and use it when you run +make legal-info+ to collect + legally-relevant material. Note this file will not be downloaded + during regular builds nor by +make source+. + +* +LIBFOO_ACTUAL_SOURCE_SITE+ provides the location of the actual + source tarball. The default value is +LIBFOO_SITE+, so you don't + need to set this variable if the binary and source archives are + hosted on the same directory. If +LIBFOO_ACTUAL_SOURCE_TARBALL+ is + not set, it doesn't make sense to define + +LIBFOO_ACTUAL_SOURCE_SITE+. + +* +LIBFOO_REDISTRIBUTE+ can be set to +YES+ (default) or +NO+ to indicate if + the package source code is allowed to be redistributed. Set it to +NO+ for + non-opensource packages: Buildroot will not save the source code for this + package when collecting the +legal-info+. + +* +LIBFOO_FLAT_STACKSIZE+ defines the stack size of an application built into + the FLAT binary format. The application stack size on the NOMMU architecture + processors can't be enlarged at run time. The default stack size for the + FLAT binary format is only 4k bytes. If the application consumes more stack, + append the required number here. + +* +LIBFOO_BIN_ARCH_EXCLUDE+ is a space-separated list of paths (relative + to the target directory) to ignore when checking that the package + installs correctly cross-compiled binaries. You seldom need to set this + variable, unless the package installs binary blobs outside the default + locations, `/lib/firmware`, `/usr/lib/firmware`, `/lib/modules`, + `/usr/lib/modules`, and `/usr/share`, which are automatically excluded. + +* +LIBFOO_IGNORE_CVES+ is a space-separated list of CVEs that tells + Buildroot CVE tracking tools which CVEs should be ignored for this + package. This is typically used when the CVE is fixed by a patch in + the package, or when the CVE for some reason does not affect the + Buildroot package. A Makefile comment must always precede the + addition of a CVE to this variable. Example: + +---------------------- +# 0001-fix-cve-2020-12345.patch +LIBFOO_IGNORE_CVES += CVE-2020-12345 +# only when built with libbaz, which Buildroot doesn't support +LIBFOO_IGNORE_CVES += CVE-2020-54321 +---------------------- + +* +LIBFOO_CPE_ID_*+ variables is a set of variables that allows the + package to define its https://nvd.nist.gov/products/cpe[CPE + identifier]. The available variables are: ++ +-- +** +LIBFOO_CPE_ID_PREFIX+, specifies the prefix of the CPE identifier, + i.e the first three fields. When not defined, the default value is + +cpe:2.3:a+. + +** +LIBFOO_CPE_ID_VENDOR+, specifies the vendor part of the CPE + identifier. When not defined, the default value is + +_project+. + +** +LIBFOO_CPE_ID_PRODUCT+, specifies the product part of the CPE + identifier. When not defined, the default value is ++. + +** +LIBFOO_CPE_ID_VERSION+, specifies the version part of the CPE + identifier. When not defined the default value is + +$(LIBFOO_VERSION)+. + +** +LIBFOO_CPE_ID_UPDATE+ specifies the _update_ part of the CPE + identifier. When not defined the default value is +*+. +-- ++ +If any of those variables is defined, then the generic package +infrastructure assumes the package provides valid CPE information. In +this case, the generic package infrastructure will define ++LIBFOO_CPE_ID+. ++ +For a host package, if its +LIBFOO_CPE_ID_*+ variables are not +defined, it inherits the value of those variables from the +corresponding target package. + +The recommended way to define these variables is to use the following +syntax: + +---------------------- +LIBFOO_VERSION = 2.32 +---------------------- + +Now, the variables that define what should be performed at the +different steps of the build process. + +* +LIBFOO_EXTRACT_CMDS+ lists the actions to be performed to extract + the package. This is generally not needed as tarballs are + automatically handled by Buildroot. However, if the package uses a + non-standard archive format, such as a ZIP or RAR file, or has a + tarball with a non-standard organization, this variable allows to + override the package infrastructure default behavior. + +* +LIBFOO_CONFIGURE_CMDS+ lists the actions to be performed to + configure the package before its compilation. + +* +LIBFOO_BUILD_CMDS+ lists the actions to be performed to + compile the package. + +* +HOST_LIBFOO_INSTALL_CMDS+ lists the actions to be performed + to install the package, when the package is a host package. The + package must install its files to the directory given by + +$(HOST_DIR)+. All files, including development files such as + headers should be installed, since other packages might be compiled + on top of this package. + +* +LIBFOO_INSTALL_TARGET_CMDS+ lists the actions to be + performed to install the package to the target directory, when the + package is a target package. The package must install its files to + the directory given by +$(TARGET_DIR)+. Only the files required for + 'execution' of the package have to be + installed. Header files, static libraries and documentation will be + removed again when the target filesystem is finalized. + +* +LIBFOO_INSTALL_STAGING_CMDS+ lists the actions to be + performed to install the package to the staging directory, when the + package is a target package. The package must install its files to + the directory given by +$(STAGING_DIR)+. All development files + should be installed, since they might be needed to compile other + packages. + +* +LIBFOO_INSTALL_IMAGES_CMDS+ lists the actions to be performed to + install the package to the images directory, when the package is a + target package. The package must install its files to the directory + given by +$(BINARIES_DIR)+. Only files that are binary images (aka + images) that do not belong in the +TARGET_DIR+ but are necessary + for booting the board should be placed here. For example, a package + should utilize this step if it has binaries which would be similar + to the kernel image, bootloader or root filesystem images. + +* +LIBFOO_INSTALL_INIT_SYSV+, +LIBFOO_INSTALL_INIT_OPENRC+ and + +LIBFOO_INSTALL_INIT_SYSTEMD+ list the actions to install init + scripts either for the systemV-like init systems (busybox, + sysvinit, etc.), openrc or for the systemd units. These commands + will be run only when the relevant init system is installed (i.e. + if systemd is selected as the init system in the configuration, + only +LIBFOO_INSTALL_INIT_SYSTEMD+ will be run). The only exception + is when openrc is chosen as init system and +LIBFOO_INSTALL_INIT_OPENRC+ + has not been set, in such situation +LIBFOO_INSTALL_INIT_SYSV+ will + be called, since openrc supports sysv init scripts. + When systemd is used as the init system, buildroot will automatically enable + all services using the +systemctl preset-all+ command in the final phase of + image building. You can add preset files to prevent a particular unit from + being automatically enabled by buildroot. + +* +LIBFOO_HELP_CMDS+ lists the actions to print the package help, which + is included to the main +make help+ output. These commands can print + anything in any format. + This is seldom used, as packages rarely have custom rules. *Do not use + this variable*, unless you really know that you need to print help. + +* +LIBFOO_LINUX_CONFIG_FIXUPS+ lists the Linux kernel configuration + options that are needed to build and use this package, and without + which the package is fundamentally broken. This shall be a set of + calls to one of the kconfig tweaking option: `KCONFIG_ENABLE_OPT`, + `KCONFIG_DISABLE_OPT`, or `KCONFIG_SET_OPT`. + This is seldom used, as package usually have no strict requirements on + the kernel options. + +The preferred way to define these variables is: + +---------------------- +define LIBFOO_CONFIGURE_CMDS + action 1 + action 2 + action 3 +endef +---------------------- + +In the action definitions, you can use the following variables: + +* +$(LIBFOO_PKGDIR)+ contains the path to the directory containing the + +libfoo.mk+ and +Config.in+ files. This variable is useful when it is + necessary to install a file bundled in Buildroot, like a runtime + configuration file, a splashscreen image... + +* +$(@D)+, which contains the directory in which the package source + code has been uncompressed. + +* +$(LIBFOO_DL_DIR)+ contains the path to the directory where all the downloads + made by Buildroot for +libfoo+ are stored in. + +* +$(TARGET_CC)+, +$(TARGET_LD)+, etc. to get the target + cross-compilation utilities + +* +$(TARGET_CROSS)+ to get the cross-compilation toolchain prefix + +* Of course the +$(HOST_DIR)+, +$(STAGING_DIR)+ and +$(TARGET_DIR)+ + variables to install the packages properly. Those variables point to + the global _host_, _staging_ and _target_ directories, unless + _per-package directory_ support is used, in which case they point to + the current package _host_, _staging_ and _target_ directories. In + both cases, it doesn't make any difference from the package point of + view: it should simply use +HOST_DIR+, +STAGING_DIR+ and + +TARGET_DIR+. See xref:top-level-parallel-build[] for more details + about _per-package directory_ support. + +Finally, you can also use hooks. See xref:hooks[] for more information. diff --git a/docs/manual/adding-packages-gettext.txt b/docs/manual/adding-packages-gettext.txt new file mode 100644 index 000000000..e9c6968e7 --- /dev/null +++ b/docs/manual/adding-packages-gettext.txt @@ -0,0 +1,62 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +=== Gettext integration and interaction with packages + +Many packages that support internationalization use the gettext +library. Dependencies for this library are fairly complicated and +therefore, deserve some explanation. + +The 'glibc' C library integrates a full-blown implementation of +'gettext', supporting translation. Native Language Support is +therefore built-in in 'glibc'. + +On the other hand, the 'uClibc' and 'musl' C libraries only provide a +stub implementation of the gettext functionality, which allows to +compile libraries and programs using gettext functions, but without +providing the translation capabilities of a full-blown gettext +implementation. With such C libraries, if real Native Language Support +is necessary, it can be provided by the +libintl+ library of the ++gettext+ package. + +Due to this, and in order to make sure that Native Language Support is +properly handled, packages in Buildroot that can use NLS support +should: + +1. Ensure NLS support is enabled when +BR2_SYSTEM_ENABLE_NLS=y+. This + is done automatically for 'autotools' packages and therefore should + only be done for packages using other package infrastructures. + +1. Add +$(TARGET_NLS_DEPENDENCIES)+ to the package + +_DEPENDENCIES+ variable. This addition should be done + unconditionally: the value of this variable is automatically + adjusted by the core infrastructure to contain the relevant list of + packages. If NLS support is disabled, this variable is empty. If + NLS support is enabled, this variable contains +host-gettext+ so + that tools needed to compile translation files are available on the + host. In addition, if 'uClibc' or 'musl' are used, this variable + also contains +gettext+ in order to get the full-blown 'gettext' + implementation. + +1. If needed, add +$(TARGET_NLS_LIBS)+ to the linker flags, so that + the package gets linked with +libintl+. This is generally not + needed with 'autotools' packages as they usually detect + automatically that they should link with +libintl+. However, + packages using other build systems, or problematic autotools-based + packages may need this. +$(TARGET_NLS_LIBS)+ should be added + unconditionally to the linker flags, as the core automatically + makes it empty or defined to +-lintl+ depending on the + configuration. + +No changes should be made to the +Config.in+ file to support NLS. + +Finally, certain packages need some gettext utilities on the target, +such as the +gettext+ program itself, which allows to retrieve +translated strings, from the command line. In such a case, the package +should: + +* use +select BR2_PACKAGE_GETTEXT+ in their +Config.in+ file, + indicating in a comment above that it's a runtime dependency only. + +* not add any +gettext+ dependency in the +DEPENDENCIES+ variable of + their +.mk+ file. diff --git a/docs/manual/adding-packages-golang.txt b/docs/manual/adding-packages-golang.txt new file mode 100644 index 000000000..c952cde57 --- /dev/null +++ b/docs/manual/adding-packages-golang.txt @@ -0,0 +1,133 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +=== Infrastructure for Go packages + +This infrastructure applies to Go packages that use the standard +build system and use bundled dependencies. + +[[golang-package-tutorial]] + +==== +golang-package+ tutorial + +First, let's see how to write a +.mk+ file for a go package, +with an example : + +------------------------ +01: ################################################################################ +02: # +03: # foo +04: # +05: ################################################################################ +06: +07: FOO_VERSION = 1.0 +08: FOO_SITE = $(call github,bar,foo,$(FOO_VERSION)) +09: FOO_LICENSE = BSD-3-Clause +10: FOO_LICENSE_FILES = LICENSE +11: +12: $(eval $(golang-package)) +------------------------ + +On line 7, we declare the version of the package. + +On line 8, we declare the upstream location of the package, here +fetched from Github, since a large number of Go packages are hosted on +Github. + +On line 9 and 10, we give licensing details about the package. + +Finally, on line 12, we invoke the +golang-package+ macro that +generates all the Makefile rules that actually allow the package to be +built. + +[[golang-package-reference]] + +==== +golang-package+ reference + +In their +Config.in+ file, packages using the +golang-package+ +infrastructure should depend on +BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS+ +because Buildroot will automatically add a dependency on +host-go+ +to such packages. +If you need CGO support in your package, you must add a dependency on ++BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS+. + +The main macro of the Go package infrastructure is ++golang-package+. It is similar to the +generic-package+ macro. The +ability to build host packages is also available, with the ++host-golang-package+ macro. +Host packages built by +host-golang-package+ macro should depend on +BR2_PACKAGE_HOST_GO_HOST_ARCH_SUPPORTS. + +Just like the generic infrastructure, the Go infrastructure works +by defining a number of variables before calling the +golang-package+. + +All the package metadata information variables that exist in the +xref:generic-package-reference[generic package infrastructure] also +exist in the Go infrastructure: +FOO_VERSION+, +FOO_SOURCE+, ++FOO_PATCH+, +FOO_SITE+, +FOO_SUBDIR+, +FOO_DEPENDENCIES+, ++FOO_LICENSE+, +FOO_LICENSE_FILES+, +FOO_INSTALL_STAGING+, etc. + +Note that it is not necessary to add +host-go+ in the ++FOO_DEPENDENCIES+ variable of a package, since this basic dependency +is automatically added as needed by the Go package infrastructure. + +A few additional variables, specific to the Go infrastructure, can +optionally be defined, depending on the package's needs. Many of them +are only useful in very specific cases, typical packages will +therefore only use a few of them, or none. + +* The package must specify its Go module name in the +FOO_GOMOD+ + variable. If not specified, it defaults to + +URL-domain/1st-part-of-URL/2nd-part-of-URL+, e.g +FOO_GOMOD+ will + take the value +github.com/bar/foo+ for a package that specifies + +FOO_SITE = $(call github,bar,foo,$(FOO_VERSION))+. The Go package + infrastructure will automatically generate a minimal +go.mod+ file + in the package source tree if it doesn't exist. + +* +FOO_LDFLAGS+ and +FOO_TAGS+ can be used to pass respectively the + +LDFLAGS+ or the +TAGS+ to the +go+ build command. + +* +FOO_BUILD_TARGETS+ can be used to pass the list of targets that + should be built. If +FOO_BUILD_TARGETS+ is not specified, it + defaults to +.+. We then have two cases: + +** +FOO_BUILD_TARGETS+ is +.+. In this case, we assume only one binary + will be produced, and that by default we name it after the package + name. If that is not appropriate, the name of the produced binary + can be overridden using +FOO_BIN_NAME+. + +** +FOO_BUILD_TARGETS+ is not +.+. In this case, we iterate over the + values to build each target, and for each produced a binary that is + the non-directory component of the target. For example if + +FOO_BUILD_TARGETS = cmd/docker cmd/dockerd+ the binaries produced + are +docker+ and +dockerd+. + +* +FOO_INSTALL_BINS+ can be used to pass the list of binaries that + should be installed in +/usr/bin+ on the target. If + +FOO_INSTALL_BINS+ is not specified, it defaults to the lower-case + name of package. + +With the Go infrastructure, all the steps required to build and +install the packages are already defined, and they generally work well +for most Go-based packages. However, when required, it is still +possible to customize what is done in any particular step: + +* By adding a post-operation hook (after extract, patch, configure, + build or install). See xref:hooks[] for details. + +* By overriding one of the steps. For example, even if the Go + infrastructure is used, if the package +.mk+ file defines its own + +FOO_BUILD_CMDS+ variable, it will be used instead of the default Go + one. However, using this method should be restricted to very + specific cases. Do not use it in the general case. + +A Go package can depend on other Go modules, listed in its +go.mod+ +file. Buildroot automatically takes care of downloading such +dependencies as part of the download step of packages that use the ++golang-package+ infrastructure. Such dependencies are then kept +together with the package source code in the tarball cached in +Buildroot's +DL_DIR+, and therefore the hash of the package's tarball +includes such dependencies. + +This mechanism ensures that any change in the dependencies will be +detected, and allows the build to be performed completely offline. diff --git a/docs/manual/adding-packages-hooks.txt b/docs/manual/adding-packages-hooks.txt new file mode 100644 index 000000000..741b71ca2 --- /dev/null +++ b/docs/manual/adding-packages-hooks.txt @@ -0,0 +1,89 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +[[hooks]] +=== Hooks available in the various build steps + +The generic infrastructure (and as a result also the derived autotools +and cmake infrastructures) allow packages to specify hooks. +These define further actions to perform after existing steps. +Most hooks aren't really useful for generic packages, since the +.mk+ +file already has full control over the actions performed in each step +of the package construction. + +The following hook points are available: + +* +LIBFOO_PRE_DOWNLOAD_HOOKS+ +* +LIBFOO_POST_DOWNLOAD_HOOKS+ + +* +LIBFOO_PRE_EXTRACT_HOOKS+ +* +LIBFOO_POST_EXTRACT_HOOKS+ + +* +LIBFOO_PRE_RSYNC_HOOKS+ +* +LIBFOO_POST_RSYNC_HOOKS+ + +* +LIBFOO_PRE_PATCH_HOOKS+ +* +LIBFOO_POST_PATCH_HOOKS+ + +* +LIBFOO_PRE_CONFIGURE_HOOKS+ +* +LIBFOO_POST_CONFIGURE_HOOKS+ + +* +LIBFOO_PRE_BUILD_HOOKS+ +* +LIBFOO_POST_BUILD_HOOKS+ + +* +LIBFOO_PRE_INSTALL_HOOKS+ (for host packages only) +* +LIBFOO_POST_INSTALL_HOOKS+ (for host packages only) + +* +LIBFOO_PRE_INSTALL_STAGING_HOOKS+ (for target packages only) +* +LIBFOO_POST_INSTALL_STAGING_HOOKS+ (for target packages only) + +* +LIBFOO_PRE_INSTALL_TARGET_HOOKS+ (for target packages only) +* +LIBFOO_POST_INSTALL_TARGET_HOOKS+ (for target packages only) + +* +LIBFOO_PRE_INSTALL_IMAGES_HOOKS+ +* +LIBFOO_POST_INSTALL_IMAGES_HOOKS+ + +* +LIBFOO_PRE_LEGAL_INFO_HOOKS+ +* +LIBFOO_POST_LEGAL_INFO_HOOKS+ + +* +LIBFOO_TARGET_FINALIZE_HOOKS+ + +These variables are 'lists' of variable names containing actions to be +performed at this hook point. This allows several hooks to be +registered at a given hook point. Here is an example: + +---------------------- +define LIBFOO_POST_PATCH_FIXUP + action1 + action2 +endef + +LIBFOO_POST_PATCH_HOOKS += LIBFOO_POST_PATCH_FIXUP +---------------------- + +[[hooks-rsync]] +==== Using the +POST_RSYNC+ hook +The +POST_RSYNC+ hook is run only for packages that use a local source, +either through the +local+ site method or the +OVERRIDE_SRCDIR+ +mechanism. In this case, package sources are copied using +rsync+ from +the local location into the buildroot build directory. The +rsync+ +command does not copy all files from the source directory, though. +Files belonging to a version control system, like the directories ++.git+, +.hg+, etc. are not copied. For most packages this is +sufficient, but a given package can perform additional actions using +the +POST_RSYNC+ hook. + +In principle, the hook can contain any command you want. One specific +use case, though, is the intentional copying of the version control +directory using +rsync+. The +rsync+ command you use in the hook can, among +others, use the following variables: + +* +$(SRCDIR)+: the path to the overridden source directory +* +$(@D)+: the path to the build directory + +==== Target-finalize hook + +Packages may also register hooks in +LIBFOO_TARGET_FINALIZE_HOOKS+. +These hooks are run after all packages are built, but before the +filesystem images are generated. They are seldom used, and your +package probably do not need them. diff --git a/docs/manual/adding-packages-kconfig.txt b/docs/manual/adding-packages-kconfig.txt new file mode 100644 index 000000000..a35681775 --- /dev/null +++ b/docs/manual/adding-packages-kconfig.txt @@ -0,0 +1,96 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +=== Infrastructure for packages using kconfig for configuration files + +A popular way for a software package to handle user-specified +configuration is +kconfig+. Among others, it is used by the Linux +kernel, Busybox, and Buildroot itself. The presence of a .config file +and a +menuconfig+ target are two well-known symptoms of kconfig being +used. + +Buildroot features an infrastructure for packages that use kconfig for +their configuration. This infrastructure provides the necessary logic to +expose the package's +menuconfig+ target as +foo-menuconfig+ in +Buildroot, and to handle the copying back and forth of the configuration +file in a correct way. + +The +kconfig-package+ infrastructure is based on the +generic-package+ +infrastructure. All variables supported by +generic-package+ are +available in +kconfig-package+ as well. See +xref:generic-package-reference[] for more details. + +In order to use the +kconfig-package+ infrastructure for a Buildroot +package, the minimally required lines in the +.mk+ file, in addition to +the variables required by the +generic-package+ infrastructure, are: + +------------------------------ +FOO_KCONFIG_FILE = reference-to-source-configuration-file + +$(eval $(kconfig-package)) +------------------------------ + +This snippet creates the following make targets: + +* +foo-menuconfig+, which calls the package's +menuconfig+ target + +* +foo-update-config+, which copies the configuration back to the + source configuration file. It is not possible to use this target + when fragment files are set. + +* +foo-update-defconfig+, which copies the configuration back to the + source configuration file. The configuration file will only list the + options that differ from the default values. It is not possible to + use this target when fragment files are set. + +* +foo-diff-config+, which outputs the differences between the current + configuration and the one defined in the Buildroot configuration for + this kconfig package. The output is useful to identify the + configuration changes that may have to be propagated to + configuration fragments for example. + +and ensures that the source configuration file is copied to the build +directory at the right moment. + +There are two options to specify a configuration file to use, either ++FOO_KCONFIG_FILE+ (as in the example, above) or +FOO_KCONFIG_DEFCONFIG+. +It is mandatory to provide either, but not both: + +* +FOO_KCONFIG_FILE+ specifies the path to a defconfig or full-config file + to be used to configure the package. + +* +FOO_KCONFIG_DEFCONFIG+ specifies the defconfig 'make' rule to call to + configure the package. + +In addition to these minimally required lines, several optional variables can +be set to suit the needs of the package under consideration: + +* +FOO_KCONFIG_EDITORS+: a space-separated list of kconfig editors to + support, for example 'menuconfig xconfig'. By default, 'menuconfig'. + +* +FOO_KCONFIG_FRAGMENT_FILES+: a space-separated list of configuration + fragment files that are merged to the main configuration file. + Fragment files are typically used when there is a desire to stay in sync + with an upstream (def)config file, with some minor modifications. + +* +FOO_KCONFIG_OPTS+: extra options to pass when calling the kconfig + editors. This may need to include '$(FOO_MAKE_OPTS)', for example. By + default, empty. + +* +FOO_KCONFIG_FIXUP_CMDS+: a list of shell commands needed to fixup the + configuration file after copying it or running a kconfig editor. Such + commands may be needed to ensure a configuration consistent with other + configuration of Buildroot, for example. By default, empty. + +* +FOO_KCONFIG_DOTCONFIG+: path (with filename) of the +.config+ file, + relative to the package source tree. The default, +.config+, should + be well suited for all packages that use the standard kconfig + infrastructure as inherited from the Linux kernel; some packages use + a derivative of kconfig that use a different location. + +* +FOO_KCONFIG_DEPENDENCIES+: the list of packages (most probably, host + packages) that need to be built before this package's kconfig is + interpreted. Seldom used. By default, empty. + +* +FOO_KCONFIG_SUPPORTS_DEFCONFIG+: whether the package's kconfig system + supports using defconfig files; few packages do not. By default, 'YES'. diff --git a/docs/manual/adding-packages-kernel-module.txt b/docs/manual/adding-packages-kernel-module.txt new file mode 100644 index 000000000..1d4251333 --- /dev/null +++ b/docs/manual/adding-packages-kernel-module.txt @@ -0,0 +1,143 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +=== Infrastructure for packages building kernel modules + +Buildroot offers a helper infrastructure to make it easy to write packages that +build and install Linux kernel modules. Some packages only contain a kernel +module, other packages contain programs and libraries in addition to kernel +modules. Buildroot's helper infrastructure supports either case. + +[[kernel-module-tutorial]] +==== +kernel-module+ tutorial + +Let's start with an example on how to prepare a simple package that only +builds a kernel module, and no other component: + +---- +01: ################################################################################ +02: # +03: # foo +04: # +05: ################################################################################ +06: +07: FOO_VERSION = 1.2.3 +08: FOO_SOURCE = foo-$(FOO_VERSION).tar.xz +09: FOO_SITE = http://www.foosoftware.org/download +10: FOO_LICENSE = GPL-2.0 +11: FOO_LICENSE_FILES = COPYING +12: +13: $(eval $(kernel-module)) +14: $(eval $(generic-package)) +---- + +Lines 7-11 define the usual meta-data to specify the version, archive name, +remote URI where to find the package source, licensing information. + +On line 13, we invoke the +kernel-module+ helper infrastructure, that +generates all the appropriate Makefile rules and variables to build +that kernel module. + +Finally, on line 14, we invoke the +xref:generic-package-tutorial[+generic-package+ infrastructure]. + +The dependency on +linux+ is automatically added, so it is not needed to +specify it in +FOO_DEPENDENCIES+. + +What you may have noticed is that, unlike other package infrastructures, +we explicitly invoke a second infrastructure. This allows a package to +build a kernel module, but also, if needed, use any one of other package +infrastructures to build normal userland components (libraries, +executables...). Using the +kernel-module+ infrastructure on its own is +not sufficient; another package infrastructure *must* be used. + +Let's look at a more complex example: + +---- +01: ################################################################################ +02: # +03: # foo +04: # +05: ################################################################################ +06: +07: FOO_VERSION = 1.2.3 +08: FOO_SOURCE = foo-$(FOO_VERSION).tar.xz +09: FOO_SITE = http://www.foosoftware.org/download +10: FOO_LICENSE = GPL-2.0 +11: FOO_LICENSE_FILES = COPYING +12: +13: FOO_MODULE_SUBDIRS = driver/base +14: FOO_MODULE_MAKE_OPTS = KVERSION=$(LINUX_VERSION_PROBED) +15: +16: ifeq ($(BR2_PACKAGE_LIBBAR),y) +17: FOO_DEPENDENCIES += libbar +18: FOO_CONF_OPTS += --enable-bar +19: FOO_MODULE_SUBDIRS += driver/bar +20: else +21: FOO_CONF_OPTS += --disable-bar +22: endif +23: +24: $(eval $(kernel-module)) +26: $(eval $(autotools-package)) +---- + +Here, we see that we have an autotools-based package, that also builds +the kernel module located in sub-directory +driver/base+ and, if libbar +is enabled, the kernel module located in sub-directory +driver/bar+, and +defines the variable +KVERSION+ to be passed to the Linux buildsystem +when building the module(s). + + +[[kernel-module-reference]] +==== +kernel-module+ reference + +The main macro for the kernel module infrastructure is +kernel-module+. +Unlike other package infrastructures, it is not stand-alone, and requires +any of the other +*-package+ macros be called after it. + +The +kernel-module+ macro defines post-build and post-target-install +hooks to build the kernel modules. If the package's +.mk+ needs access +to the built kernel modules, it should do so in a post-build hook, +*registered after* the call to +kernel-module+. Similarly, if the +package's +.mk+ needs access to the kernel module after it has been +installed, it should do so in a post-install hook, *registered after* +the call to +kernel-module+. Here's an example: + +---- +$(eval $(kernel-module)) + +define FOO_DO_STUFF_WITH_KERNEL_MODULE + # Do something with it... +endef +FOO_POST_BUILD_HOOKS += FOO_DO_STUFF_WITH_KERNEL_MODULE + +$(eval $(generic-package)) +---- + +Finally, unlike the other package infrastructures, there is no ++host-kernel-module+ variant to build a host kernel module. + +The following additional variables can optionally be defined to further +configure the build of the kernel module: + +* +FOO_MODULE_SUBDIRS+ may be set to one or more sub-directories (relative + to the package source top-directory) where the kernel module sources are. + If empty or not set, the sources for the kernel module(s) are considered + to be located at the top of the package source tree. + +* +FOO_MODULE_MAKE_OPTS+ may be set to contain extra variable definitions + to pass to the Linux buildsystem. + +[[kernel-variables]] +You may also reference (but you may *not* set!) those variables: + + * +LINUX_DIR+ contains the path to where the Linux kernel has been + extracted and built. + + * +LINUX_VERSION+ contains the version string as configured by the user. + + * +LINUX_VERSION_PROBED+ contains the real version string of the kernel, + retrieved with running `make -C $(LINUX_DIR) kernelrelease` + + * +KERNEL_ARCH+ contains the name of the current architecture, like `arm`, + `mips`... diff --git a/docs/manual/adding-packages-linux-kernel-spec-infra.txt b/docs/manual/adding-packages-linux-kernel-spec-infra.txt new file mode 100644 index 000000000..b948e208d --- /dev/null +++ b/docs/manual/adding-packages-linux-kernel-spec-infra.txt @@ -0,0 +1,152 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +[[linux-kernel-specific-infra]] +=== Infrastructure specific to the Linux kernel package + +The Linux kernel package can use some specific infrastructures based on package +hooks for building Linux kernel tools or/and building Linux kernel extensions. + +[[linux-kernel-tools]] +==== linux-kernel-tools + +Buildroot offers a helper infrastructure to build some userspace tools +for the target available within the Linux kernel sources. Since their +source code is part of the kernel source code, a special package, ++linux-tools+, exists and re-uses the sources of the Linux kernel that +runs on the target. + +Let's look at an example of a Linux tool. For a new Linux tool named ++foo+, create a new menu entry in the existing ++package/linux-tools/Config.in+. This file will contain the option +descriptions related to each kernel tool that will be used and +displayed in the configuration tool. It would basically look like: + +------------------------------ +01: config BR2_PACKAGE_LINUX_TOOLS_FOO +02: bool "foo" +03: select BR2_PACKAGE_LINUX_TOOLS +04: help +05: This is a comment that explains what foo kernel tool is. +06: +07: http://foosoftware.org/foo/ +------------------------------ + +The name of the option starts with the prefix +BR2_PACKAGE_LINUX_TOOLS_+, +followed by the uppercase name of the tool (like is done for packages). + +.Note +Unlike other packages, the +linux-tools+ package options appear in the ++linux+ kernel menu, under the `Linux Kernel Tools` sub-menu, not under +the `Target packages` main menu. + +Then for each linux tool, add a new +.mk.in+ file named ++package/linux-tools/linux-tool-foo.mk.in+. It would basically look like: + +------------------------------ +01: ################################################################################ +02: # +03: # foo +04: # +05: ################################################################################ +06: +07: LINUX_TOOLS += foo +08: +09: FOO_DEPENDENCIES = libbbb +10: +11: define FOO_BUILD_CMDS +12: $(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools foo +13: endef +14: +15: define FOO_INSTALL_STAGING_CMDS +16: $(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools \ +17: DESTDIR=$(STAGING_DIR) \ +18: foo_install +19: endef +20: +21: define FOO_INSTALL_TARGET_CMDS +22: $(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools \ +23: DESTDIR=$(TARGET_DIR) \ +24: foo_install +25: endef +-------------------------------- + +On line 7, we register the Linux tool +foo+ to the list of available +Linux tools. + +On line 9, we specify the list of dependencies this tool relies on. These +dependencies are added to the Linux package dependencies list only when the ++foo+ tool is selected. + +The rest of the Makefile, lines 11-25 defines what should be done at the +different steps of the Linux tool build process like for a +xref:generic-package-tutorial[+generic package+]. They will actually be +used only when the +foo+ tool is selected. The only supported commands are ++_BUILD_CMDS+, +_INSTALL_STAGING_CMDS+ and +_INSTALL_TARGET_CMDS+. + +.Note +One *must not* call +$(eval $(generic-package))+ or any other +package infrastructure! Linux tools are not packages by themselves, +they are part of the +linux-tools+ package. + +[[linux-kernel-ext]] +==== linux-kernel-extensions + +Some packages provide new features that require the Linux kernel tree +to be modified. This can be in the form of patches to be applied on +the kernel tree, or in the form of new files to be added to the +tree. The Buildroot's Linux kernel extensions infrastructure provides +a simple solution to automatically do this, just after the kernel +sources are extracted and before the kernel patches are +applied. Examples of extensions packaged using this mechanism are the +real-time extensions Xenomai and RTAI, as well as the set of +out-of-tree LCD screens drivers +fbtft+. + +Let's look at an example on how to add a new Linux extension +foo+. + +First, create the package +foo+ that provides the extension: this +package is a standard package; see the previous chapters on how to +create such a package. This package is in charge of downloading the +sources archive, checking the hash, defining the licence informations +and building user space tools if any. + +Then create the 'Linux extension' proper: create a new menu entry in +the existing +linux/Config.ext.in+. This file contains the option +descriptions related to each kernel extension that will be used and +displayed in the configuration tool. It would basically look like: + +------------------------------ +01: config BR2_LINUX_KERNEL_EXT_FOO +02: bool "foo" +03: help +04: This is a comment that explains what foo kernel extension is. +05: +06: http://foosoftware.org/foo/ +------------------------------ + +Then for each linux extension, add a new +.mk+ file named ++linux/linux-ext-foo.mk+. It should basically contain: + +------------------------------ +01: ################################################################################ +02: # +03: # foo +04: # +05: ################################################################################ +06: +07: LINUX_EXTENSIONS += foo +08: +09: define FOO_PREPARE_KERNEL +10: $(FOO_DIR)/prepare-kernel-tree.sh --linux-dir=$(@D) +11: endef +-------------------------------- + +On line 7, we add the Linux extension +foo+ to the list of available +Linux extensions. + +On line 9-11, we define what should be done by the extension to modify +the Linux kernel tree; this is specific to the linux extension and can +use the variables defined by the +foo+ package, like: +$(FOO_DIR)+ or ++$(FOO_VERSION)+... as well as all the Linux variables, like: ++$(LINUX_VERSION)+ or +$(LINUX_VERSION_PROBED)+, +$(KERNEL_ARCH)+... +See the xref:kernel-variables[definition of those kernel variables]. diff --git a/docs/manual/adding-packages-luarocks.txt b/docs/manual/adding-packages-luarocks.txt new file mode 100644 index 000000000..70f48fc02 --- /dev/null +++ b/docs/manual/adding-packages-luarocks.txt @@ -0,0 +1,109 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +=== Infrastructure for LuaRocks-based packages + +[[luarocks-package-tutorial]] + +==== +luarocks-package+ tutorial + +First, let's see how to write a +.mk+ file for a LuaRocks-based package, +with an example : + +------------------------ +01: ################################################################################ +02: # +03: # lua-foo +04: # +05: ################################################################################ +06: +07: LUA_FOO_VERSION = 1.0.2-1 +08: LUA_FOO_NAME_UPSTREAM = foo +09: LUA_FOO_DEPENDENCIES = bar +10: +11: LUA_FOO_BUILD_OPTS += BAR_INCDIR=$(STAGING_DIR)/usr/include +12: LUA_FOO_BUILD_OPTS += BAR_LIBDIR=$(STAGING_DIR)/usr/lib +13: LUA_FOO_LICENSE = luaFoo license +14: LUA_FOO_LICENSE_FILES = $(LUA_FOO_SUBDIR)/COPYING +15: +16: $(eval $(luarocks-package)) +------------------------ + +On line 7, we declare the version of the package (the same as in the rockspec, +which is the concatenation of the upstream version and the rockspec revision, +separated by a hyphen '-'). + +On line 8, we declare that the package is called "foo" on LuaRocks. In +Buildroot, we give Lua-related packages a name that starts with "lua", so the +Buildroot name is different from the upstream name. +LUA_FOO_NAME_UPSTREAM+ +makes the link between the two names. + +On line 9, we declare our dependencies against native libraries, so that they +are built before the build process of our package starts. + +On lines 11-12, we tell Buildroot to pass custom options to LuaRocks when it is +building the package. + +On lines 13-14, we specify the licensing terms for the package. + +Finally, on line 16, we invoke the +luarocks-package+ +macro that generates all the Makefile rules that actually allows the +package to be built. + +Most of these details can be retrieved from the +rock+ and +rockspec+. +So, this file and the Config.in file can be generated by running the +command +luarocks buildroot foo lua-foo+ in the Buildroot +directory. This command runs a specific Buildroot addon of +luarocks+ +that will automatically generate a Buildroot package. The result must +still be manually inspected and possibly modified. + +* The +package/Config.in+ file has to be updated manually to include the + generated Config.in files. + +[[luarocks-package-reference]] + +==== +luarocks-package+ reference + +LuaRocks is a deployment and management system for Lua modules, and supports +various +build.type+: +builtin+, +make+ and +cmake+. In the context of +Buildroot, the +luarocks-package+ infrastructure only supports the +builtin+ +mode. LuaRocks packages that use the +make+ or +cmake+ build mechanisms +should instead be packaged using the +generic-package+ and +cmake-package+ +infrastructures in Buildroot, respectively. + +The main macro of the LuaRocks package infrastructure is +luarocks-package+: +like +generic-package+ it works by defining a number of variables providing +metadata information about the package, and then calling +luarocks-package+. + +Just like the generic infrastructure, the LuaRocks infrastructure works +by defining a number of variables before calling the +luarocks-package+ +macro. + +First, all the package metadata information variables that exist in +the generic infrastructure also exist in the LuaRocks infrastructure: ++LUA_FOO_VERSION+, +LUA_FOO_SOURCE+, +LUA_FOO_SITE+, ++LUA_FOO_DEPENDENCIES+, +LUA_FOO_LICENSE+, +LUA_FOO_LICENSE_FILES+. + +Two of them are populated by the LuaRocks infrastructure (for the ++download+ step). If your package is not hosted on the LuaRocks mirror ++$(BR2_LUAROCKS_MIRROR)+, you can override them: + +* +LUA_FOO_SITE+, which defaults to +$(BR2_LUAROCKS_MIRROR)+ + +* +LUA_FOO_SOURCE+, which defaults to + +$(lowercase LUA_FOO_NAME_UPSTREAM)-$(LUA_FOO_VERSION).src.rock+ + +A few additional variables, specific to the LuaRocks infrastructure, are +also defined. They can be overridden in specific cases. + +* +LUA_FOO_NAME_UPSTREAM+, which defaults to +lua-foo+, i.e. the Buildroot + package name + +* +LUA_FOO_ROCKSPEC+, which defaults to + +$(lowercase LUA_FOO_NAME_UPSTREAM)-$(LUA_FOO_VERSION).rockspec+ + +* +LUA_FOO_SUBDIR+, which defaults to + +$(LUA_FOO_NAME_UPSTREAM)-$(LUA_FOO_VERSION_WITHOUT_ROCKSPEC_REVISION)+ + +* +LUA_FOO_BUILD_OPTS+ contains additional build options for the + +luarocks build+ call. diff --git a/docs/manual/adding-packages-meson.txt b/docs/manual/adding-packages-meson.txt new file mode 100644 index 000000000..029c8c248 --- /dev/null +++ b/docs/manual/adding-packages-meson.txt @@ -0,0 +1,133 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +=== Infrastructure for Meson-based packages + +[[meson-package-tutorial]] + +==== +meson-package+ tutorial + +http://mesonbuild.com[Meson] is an open source build system meant to be both +extremely fast, and, even more importantly, as user friendly as possible. It +uses https://ninja-build.org[Ninja] as a companion tool to perform the actual +build operations. + +Let's see how to write a +.mk+ file for a Meson-based package, with an example: + +------------------------------ +01: ################################################################################ +02: # +03: # foo +04: # +05: ################################################################################ +06: +07: FOO_VERSION = 1.0 +08: FOO_SOURCE = foo-$(FOO_VERSION).tar.gz +09: FOO_SITE = http://www.foosoftware.org/download +10: FOO_LICENSE = GPL-3.0+ +11: FOO_LICENSE_FILES = COPYING +12: FOO_INSTALL_STAGING = YES +13: +14: FOO_DEPENDENCIES = host-pkgconf bar +15: +16: ifeq ($(BR2_PACKAGE_BAZ),y) +17: FOO_CONF_OPTS += -Dbaz=true +18: FOO_DEPENDENCIES += baz +19: else +20: FOO_CONF_OPTS += -Dbaz=false +21: endif +22: +23: $(eval $(meson-package)) +-------------------------------- + +The Makefile starts with the definition of the standard variables for package +declaration (lines 7 to 11). + +On line line 23, we invoke the +meson-package+ macro that generates all the +Makefile rules that actually allows the package to be built. + +In the example, +host-pkgconf+ and +bar+ are declared as dependencies in ++FOO_DEPENDENCIES+ at line 14 because the Meson build file of +foo+ uses +`pkg-config` to determine the compilation flags and libraries of package +bar+. + +Note that it is not necessary to add +host-meson+ in the +FOO_DEPENDENCIES+ +variable of a package, since this basic dependency is automatically added as +needed by the Meson package infrastructure. + +If the "baz" package is selected, then support for the "baz" feature in "foo" is +activated by adding +-Dbaz=true+ to +FOO_CONF_OPTS+ at line 17, as specified in +the +meson_options.txt+ file in "foo" source tree. The "baz" package is also +added to +FOO_DEPENDENCIES+. Note that the support for +baz+ is explicitly +disabled at line 20, if the package is not selected. + +To sum it up, to add a new meson-based package, the Makefile example can be +copied verbatim then edited to replace all occurences of +FOO+ with the +uppercase name of the new package and update the values of the standard +variables. + +[[meson-package-reference]] + +==== +meson-package+ reference + +The main macro of the Meson package infrastructure is +meson-package+. It is +similar to the +generic-package+ macro. The ability to have target and host +packages is also available, with the +host-meson-package+ macro. + +Just like the generic infrastructure, the Meson infrastructure works by defining +a number of variables before calling the +meson-package+ macro. + +First, all the package metadata information variables that exist in the generic +infrastructure also exist in the Meson infrastructure: +FOO_VERSION+, ++FOO_SOURCE+, +FOO_PATCH+, +FOO_SITE+, +FOO_SUBDIR+, +FOO_DEPENDENCIES+, ++FOO_INSTALL_STAGING+, +FOO_INSTALL_TARGET+. + +A few additional variables, specific to the Meson infrastructure, can also be +defined. Many of them are only useful in very specific cases, typical packages +will therefore only use a few of them. + +* +FOO_SUBDIR+ may contain the name of a subdirectory inside the + package that contains the main meson.build file. This is useful, + if for example, the main meson.build file is not at the root of + the tree extracted by the tarball. If +HOST_FOO_SUBDIR+ is not + specified, it defaults to +FOO_SUBDIR+. + +* +FOO_CONF_ENV+, to specify additional environment variables to pass to + +meson+ for the configuration step. By default, empty. + +* +FOO_CONF_OPTS+, to specify additional options to pass to +meson+ for the + configuration step. By default, empty. + +* +FOO_CFLAGS+, to specify compiler arguments added to the package specific + +cross-compile.conf+ file +c_args+ property. By default, the value of + +TARGET_CFLAGS+. + +* +FOO_CXXFLAGS+, to specify compiler arguments added to the package specific + +cross-compile.conf+ file +cpp_args+ property. By default, the value of + +TARGET_CXXFLAGS+. + +* +FOO_LDFLAGS+, to specify compiler arguments added to the package specific + +cross-compile.conf+ file +c_link_args+ and +cpp_link_args+ properties. By + default, the value of +TARGET_LDFLAGS+. + +* +FOO_MESON_EXTRA_BINARIES+, to specify a space-separated list of programs + to add to the `[binaries]` section of the meson `cross-compilation.conf` + configuration file. The format is `program-name='/path/to/program'`, with + no space around the +=+ sign, and with the path of the program between + single quotes. By default, empty. Note that Buildroot already sets the + correct values for +c+, +cpp+, +ar+, +strip+, and +pkgconfig+. + +* +FOO_MESON_EXTRA_PROPERTIES+, to specify a space-separated list of + properties to add to the `[properties]` section of the meson + `cross-compilation.conf` configuration file. The format is + `property-name=` with no space around the +=+ sign, and with + single quotes around string values. By default, empty. Note that + Buildroot already sets values for +needs_exe_wrapper+, +c_args+, + +c_link_args+, +cpp_args+, +cpp_link_args+, +sys_root+, and + +pkg_config_libdir+. + +* +FOO_NINJA_ENV+, to specify additional environment variables to pass to + +ninja+, meson companion tool in charge of the build operations. By default, + empty. + +* +FOO_NINJA_OPTS+, to specify a space-separated list of targets to build. By + default, empty, to build the default target(s). diff --git a/docs/manual/adding-packages-perl.txt b/docs/manual/adding-packages-perl.txt new file mode 100644 index 000000000..6ce693fd6 --- /dev/null +++ b/docs/manual/adding-packages-perl.txt @@ -0,0 +1,129 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +=== Infrastructure for Perl/CPAN packages + +[[perl-package-tutorial]] + +==== +perl-package+ tutorial + +First, let's see how to write a +.mk+ file for a Perl/CPAN package, +with an example : + +------------------------ +01: ################################################################################ +02: # +03: # perl-foo-bar +04: # +05: ################################################################################ +06: +07: PERL_FOO_BAR_VERSION = 0.02 +08: PERL_FOO_BAR_SOURCE = Foo-Bar-$(PERL_FOO_BAR_VERSION).tar.gz +09: PERL_FOO_BAR_SITE = $(BR2_CPAN_MIRROR)/authors/id/M/MO/MONGER +10: PERL_FOO_BAR_DEPENDENCIES = perl-strictures +11: PERL_FOO_BAR_LICENSE = Artistic or GPL-1.0+ +12: PERL_FOO_BAR_LICENSE_FILES = LICENSE +13: PERL_FOO_BAR_DISTNAME = Foo-Bar +14: +15: $(eval $(perl-package)) +------------------------ + +On line 7, we declare the version of the package. + +On line 8 and 9, we declare the name of the tarball and the location +of the tarball on a CPAN server. Buildroot will automatically download +the tarball from this location. + +On line 10, we declare our dependencies, so that they are built +before the build process of our package starts. + +On line 11 and 12, we give licensing details about the package (its +license on line 11, and the file containing the license text on line +12). + +On line 13, the name of the distribution as needed by the script ++utils/scancpan+ (in order to regenerate/upgrade these package files). + +Finally, on line 15, we invoke the +perl-package+ macro that +generates all the Makefile rules that actually allow the package to be +built. + +Most of these data can be retrieved from https://metacpan.org/. +So, this file and the Config.in can be generated by running +the script +utils/scancpan Foo-Bar+ in the Buildroot directory +(or in a br2-external tree). +This script creates a Config.in file and foo-bar.mk file for the +requested package, and also recursively for all dependencies specified by +CPAN. You should still manually edit the result. In particular, the +following things should be checked. + +* If the perl module links with a shared library that is provided by + another (non-perl) package, this dependency is not added automatically. + It has to be added manually to +PERL_FOO_BAR_DEPENDENCIES+. +* The +package/Config.in+ file has to be updated manually to include the + generated Config.in files. As a hint, the +scancpan+ script prints out + the required +source "..."+ statements, sorted alphabetically. + +[[perl-package-reference]] + +==== +perl-package+ reference + +As a policy, packages that provide Perl/CPAN modules should all be +named +perl-+ in Buildroot. + +This infrastructure handles various Perl build systems : ++ExtUtils-MakeMaker+ (EUMM), +Module-Build+ (MB) and +Module-Build-Tiny+. ++Build.PL+ is preferred by default when a package provides a +Makefile.PL+ +and a +Build.PL+. + +The main macro of the Perl/CPAN package infrastructure is ++perl-package+. It is similar to the +generic-package+ macro. The ability to +have target and host packages is also available, with the ++host-perl-package+ macro. + +Just like the generic infrastructure, the Perl/CPAN infrastructure +works by defining a number of variables before calling the ++perl-package+ macro. + +First, all the package metadata information variables that exist in the +generic infrastructure also exist in the Perl/CPAN infrastructure: ++PERL_FOO_VERSION+, +PERL_FOO_SOURCE+, ++PERL_FOO_PATCH+, +PERL_FOO_SITE+, ++PERL_FOO_SUBDIR+, +PERL_FOO_DEPENDENCIES+, ++PERL_FOO_INSTALL_TARGET+. + +Note that setting +PERL_FOO_INSTALL_STAGING+ to +YES+ has no effect +unless a +PERL_FOO_INSTALL_STAGING_CMDS+ variable is defined. The perl +infrastructure doesn't define these commands since Perl modules generally +don't need to be installed to the +staging+ directory. + +A few additional variables, specific to the Perl/CPAN infrastructure, +can also be defined. Many of them are only useful in very specific +cases, typical packages will therefore only use a few of them. + +* +PERL_FOO_PREFER_INSTALLER+/+HOST_PERL_FOO_PREFER_INSTALLER+, + specifies the preferred installation method. Possible values are + +EUMM+ (for +Makefile.PL+ based installation using + +ExtUtils-MakeMaker+) and +MB+ (for +Build.PL+ based installation + using +Module-Build+). This variable is only used when the package + provides both installation methods. + +* +PERL_FOO_CONF_ENV+/+HOST_PERL_FOO_CONF_ENV+, to specify additional + environment variables to pass to the +perl Makefile.PL+ or +perl Build.PL+. + By default, empty. + +* +PERL_FOO_CONF_OPTS+/+HOST_PERL_FOO_CONF_OPTS+, to specify additional + configure options to pass to the +perl Makefile.PL+ or +perl Build.PL+. + By default, empty. + +* +PERL_FOO_BUILD_OPTS+/+HOST_PERL_FOO_BUILD_OPTS+, to specify additional + options to pass to +make pure_all+ or +perl Build build+ in the build step. + By default, empty. + +* +PERL_FOO_INSTALL_TARGET_OPTS+, to specify additional options to + pass to +make pure_install+ or +perl Build install+ in the install step. + By default, empty. + +* +HOST_PERL_FOO_INSTALL_OPTS+, to specify additional options to + pass to +make pure_install+ or +perl Build install+ in the install step. + By default, empty. diff --git a/docs/manual/adding-packages-python.txt b/docs/manual/adding-packages-python.txt new file mode 100644 index 000000000..500967f23 --- /dev/null +++ b/docs/manual/adding-packages-python.txt @@ -0,0 +1,259 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +=== Infrastructure for Python packages + +This infrastructure applies to Python packages that use the standard +Python setuptools or pep517 mechanisms as their build system, generally +recognizable by the usage of a +setup.py+ script or +pyproject.toml+ +file. + +[[python-package-tutorial]] + +==== +python-package+ tutorial + +First, let's see how to write a +.mk+ file for a Python package, +with an example : + +------------------------ +01: ################################################################################ +02: # +03: # python-foo +04: # +05: ################################################################################ +06: +07: PYTHON_FOO_VERSION = 1.0 +08: PYTHON_FOO_SOURCE = python-foo-$(PYTHON_FOO_VERSION).tar.xz +09: PYTHON_FOO_SITE = http://www.foosoftware.org/download +10: PYTHON_FOO_LICENSE = BSD-3-Clause +11: PYTHON_FOO_LICENSE_FILES = LICENSE +12: PYTHON_FOO_ENV = SOME_VAR=1 +13: PYTHON_FOO_DEPENDENCIES = libmad +14: PYTHON_FOO_SETUP_TYPE = distutils +15: +16: $(eval $(python-package)) +------------------------ + +On line 7, we declare the version of the package. + +On line 8 and 9, we declare the name of the tarball (xz-ed tarball +recommended) and the location of the tarball on the Web. Buildroot +will automatically download the tarball from this location. + +On line 10 and 11, we give licensing details about the package (its +license on line 10, and the file containing the license text on line +11). + +On line 12, we tell Buildroot to pass custom options to the Python ++setup.py+ script when it is configuring the package. + +On line 13, we declare our dependencies, so that they are built +before the build process of our package starts. + +On line 14, we declare the specific Python build system being used. In +this case the +distutils+ Python build system is used. The four +supported ones are +distutils+, +flit+, +pep517+ and +setuptools+. + +Finally, on line 16, we invoke the +python-package+ macro that +generates all the Makefile rules that actually allow the package to be +built. + +[[python-package-reference]] + +==== +python-package+ reference + +As a policy, packages that merely provide Python modules should all be +named +python-+ in Buildroot. Other packages that use the +Python build system, but are not Python modules, can freely choose +their name (existing examples in Buildroot are +scons+ and ++supervisor+). + +The main macro of the Python package infrastructure is ++python-package+. It is similar to the +generic-package+ macro. It is +also possible to create Python host packages with the ++host-python-package+ macro. + +Just like the generic infrastructure, the Python infrastructure works +by defining a number of variables before calling the +python-package+ +or +host-python-package+ macros. + +All the package metadata information variables that exist in the +xref:generic-package-reference[generic package infrastructure] also +exist in the Python infrastructure: +PYTHON_FOO_VERSION+, ++PYTHON_FOO_SOURCE+, +PYTHON_FOO_PATCH+, +PYTHON_FOO_SITE+, ++PYTHON_FOO_SUBDIR+, +PYTHON_FOO_DEPENDENCIES+, +PYTHON_FOO_LICENSE+, ++PYTHON_FOO_LICENSE_FILES+, +PYTHON_FOO_INSTALL_STAGING+, etc. + +Note that: + + * It is not necessary to add +python+ or +host-python+ in the + +PYTHON_FOO_DEPENDENCIES+ variable of a package, since these basic + dependencies are automatically added as needed by the Python + package infrastructure. + + * Similarly, it is not needed to add +host-setuptools+ to + +PYTHON_FOO_DEPENDENCIES+ for setuptools-based packages, since it's + automatically added by the Python infrastructure as needed. + +One variable specific to the Python infrastructure is mandatory: + +* +PYTHON_FOO_SETUP_TYPE+, to define which Python build system is used + by the package. The four supported values are +distutils+, +flit+, + +pep517+ and +setuptools+. If you don't know which one is used in + your package, look at the +setup.py+ or +pyproject.toml+ file in your + package source code, and see whether it imports things from the + +distutils+, +flit+ module or the +setuptools+ module. If the package + is using a +pyproject.toml+ file without any build-system requires + and with a local in-tree backend-path one should use +pep517+. + +A few additional variables, specific to the Python infrastructure, can +optionally be defined, depending on the package's needs. Many of them +are only useful in very specific cases, typical packages will +therefore only use a few of them, or none. + +* +PYTHON_FOO_SUBDIR+ may contain the name of a subdirectory inside the + package that contains the main +setup.py+ or +pyproject.toml+ file. + This is useful, if for example, the main +setup.py+ or +pyproject.toml+ + file is not at the root of the tree extracted by the tarball. If + +HOST_PYTHON_FOO_SUBDIR+ is not specified, it defaults to + +PYTHON_FOO_SUBDIR+. + +* +PYTHON_FOO_ENV+, to specify additional environment variables to + pass to the Python +setup.py+ script (for distutils/setuptools + packages) or the +support/scripts/pyinstaller.py+ script (for + flit/pep517 packages) for both the build and install steps. Note + that the infrastructure is automatically passing several standard + variables, defined in +PKG_PYTHON_DISTUTILS_ENV+ (for distutils + target packages), +HOST_PKG_PYTHON_DISTUTILS_ENV+ (for distutils + host packages), +PKG_PYTHON_SETUPTOOLS_ENV+ (for setuptools target + packages), +HOST_PKG_PYTHON_SETUPTOOLS_ENV+ (for setuptools host + packages), +PKG_PYTHON_PEP517_ENV+ (for flit/pep517 target packages) + and +HOST_PKG_PYTHON_PEP517_ENV+ (for flit/pep517 host packages). + +* +PYTHON_FOO_BUILD_OPTS+, to specify additional options to pass to the + Python +setup.py+ script during the build step, this generally only + makes sense to use for distutils/setuptools based packages as + flit/pep517 based packages do not pass these options to a +setup.py+ + script but instead pass them to +support/scripts/pyinstaller.py+. + For target distutils packages, the +PKG_PYTHON_DISTUTILS_BUILD_OPTS+ + options are already passed automatically by the infrastructure. + +* +PYTHON_FOO_INSTALL_TARGET_OPTS+, +PYTHON_FOO_INSTALL_STAGING_OPTS+, + +HOST_PYTHON_FOO_INSTALL_OPTS+ to specify additional options to pass + to the Python +setup.py+ script (for distutils/setuptools packages) + or +support/scripts/pyinstaller.py+ (for flit/pep517 packages) during + the target installation step, the staging installation step or the + host installation, respectively. Note that the infrastructure is + automatically passing some options, defined in + +PKG_PYTHON_DISTUTILS_INSTALL_TARGET_OPTS+ or + +PKG_PYTHON_DISTUTILS_INSTALL_STAGING_OPTS+ (for target distutils + packages), +HOST_PKG_PYTHON_DISTUTILS_INSTALL_OPTS+ (for host + distutils packages), +PKG_PYTHON_SETUPTOOLS_INSTALL_TARGET_OPTS+ or + +PKG_PYTHON_SETUPTOOLS_INSTALL_STAGING_OPTS+ (for target setuptools + packages), +HOST_PKG_PYTHON_SETUPTOOLS_INSTALL_OPTS+ (for host + setuptools packages) and +PKG_PYTHON_PEP517_INSTALL_TARGET_OPTS+ or + +PKG_PYTHON_PEP517_INSTALL_STAGING_OPTS+ (for target flit/pep517 + packages). + +With the Python infrastructure, all the steps required to build and +install the packages are already defined, and they generally work well +for most Python-based packages. However, when required, it is still +possible to customize what is done in any particular step: + +* By adding a post-operation hook (after extract, patch, configure, + build or install). See xref:hooks[] for details. + +* By overriding one of the steps. For example, even if the Python + infrastructure is used, if the package +.mk+ file defines its own + +PYTHON_FOO_BUILD_CMDS+ variable, it will be used instead of the + default Python one. However, using this method should be restricted + to very specific cases. Do not use it in the general case. + +[[scanpypi]] + +==== Generating a +python-package+ from a PyPI repository + +If the Python package for which you would like to create a Buildroot +package is available on PyPI, you may want to use the +scanpypi+ tool +located in +utils/+ to automate the process. + +You can find the list of existing PyPI packages +https://pypi.python.org[here]. + ++scanpypi+ requires Python's +setuptools+ package to be installed on +your host. + +When at the root of your buildroot directory just do : + +----------------------- +utils/scanpypi foo bar -o package +----------------------- + +This will generate packages +python-foo+ and +python-bar+ in the package +folder if they exist on https://pypi.python.org. + +Find the +external python modules+ menu and insert your package inside. +Keep in mind that the items inside a menu should be in alphabetical order. + +Please keep in mind that you'll most likely have to manually check the +package for any mistakes as there are things that cannot be guessed by +the generator (e.g. dependencies on any of the python core modules +such as BR2_PACKAGE_PYTHON_ZLIB). Also, please take note that the +license and license files are guessed and must be checked. You also +need to manually add the package to the +package/Config.in+ file. + +If your Buildroot package is not in the official Buildroot tree but in +a br2-external tree, use the -o flag as follows: + +----------------------- +utils/scanpypi foo bar -o other_package_dir +----------------------- + +This will generate packages +python-foo+ and +python-bar+ in the ++other_package_directory+ instead of +package+. + +Option +-h+ will list the available options: + +----------------------- +utils/scanpypi -h +----------------------- + +[[python-package-cffi-backend]] + +==== +python-package+ CFFI backend + +C Foreign Function Interface for Python (CFFI) provides a convenient +and reliable way to call compiled C code from Python using interface +declarations written in C. Python packages relying on this backend can +be identified by the appearance of a +cffi+ dependency in the ++install_requires+ field of their +setup.py+ file. + +Such a package should: + + * add +python-cffi+ as a runtime dependency in order to install the +compiled C library wrapper on the target. This is achieved by adding ++select BR2_PACKAGE_PYTHON_CFFI+ to the package +Config.in+. + +------------------------ +config BR2_PACKAGE_PYTHON_FOO + bool "python-foo" + select BR2_PACKAGE_PYTHON_CFFI # runtime +------------------------ + + * add +host-python-cffi+ as a build-time dependency in order to +cross-compile the C wrapper. This is achieved by adding ++host-python-cffi+ to the +PYTHON_FOO_DEPENDENCIES+ variable. + +------------------------ +################################################################################ +# +# python-foo +# +################################################################################ + +... + +PYTHON_FOO_DEPENDENCIES = host-python-cffi + +$(eval $(python-package)) +------------------------ diff --git a/docs/manual/adding-packages-qmake.txt b/docs/manual/adding-packages-qmake.txt new file mode 100644 index 000000000..699d082aa --- /dev/null +++ b/docs/manual/adding-packages-qmake.txt @@ -0,0 +1,85 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +=== Infrastructure for QMake-based packages + +[[qmake-package-tutorial]] + +==== +qmake-package+ tutorial + +First, let's see how to write a +.mk+ file for a QMake-based package, with +an example : + +------------------------ +01: ################################################################################ +02: # +03: # libfoo +04: # +05: ################################################################################ +06: +07: LIBFOO_VERSION = 1.0 +08: LIBFOO_SOURCE = libfoo-$(LIBFOO_VERSION).tar.gz +09: LIBFOO_SITE = http://www.foosoftware.org/download +10: LIBFOO_CONF_OPTS = QT_CONFIG+=bar QT_CONFIG-=baz +11: LIBFOO_DEPENDENCIES = bar +12: +13: $(eval $(qmake-package)) +------------------------ + +On line 7, we declare the version of the package. + +On line 8 and 9, we declare the name of the tarball (xz-ed tarball +recommended) and the location of the tarball on the Web. Buildroot +will automatically download the tarball from this location. + +On line 10, we tell Buildroot what options to enable for libfoo. + +On line 11, we tell Buildroot the dependencies of libfoo. + +Finally, on line line 13, we invoke the +qmake-package+ +macro that generates all the Makefile rules that actually allows the +package to be built. + +[[qmake-package-reference]] + +==== +qmake-package+ reference + +The main macro of the QMake package infrastructure is +qmake-package+. +It is similar to the +generic-package+ macro. + +Just like the generic infrastructure, the QMake infrastructure works +by defining a number of variables before calling the +qmake-package+ +macro. + +First, all the package metadata information variables that exist in +the generic infrastructure also exist in the QMake infrastructure: ++LIBFOO_VERSION+, +LIBFOO_SOURCE+, +LIBFOO_PATCH+, +LIBFOO_SITE+, ++LIBFOO_SUBDIR+, +LIBFOO_DEPENDENCIES+, +LIBFOO_INSTALL_STAGING+, ++LIBFOO_INSTALL_TARGET+. + +An additional variable, specific to the QMake infrastructure, can +also be defined. + +* +LIBFOO_CONF_ENV+, to specify additional environment variables to + pass to the +qmake+ script for the configuration step. By default, empty. + +* +LIBFOO_CONF_OPTS+, to specify additional options to pass to the + +qmake+ script for the configuration step. By default, empty. + +* +LIBFOO_MAKE_ENV+, to specify additional environment variables to the + +make+ command during the build and install steps. By default, empty. + +* +LIBFOO_MAKE_OPTS+, to specify additional targets to pass to the + +make+ command during the build step. By default, empty. + +* +LIBFOO_INSTALL_STAGING_OPTS+, to specify additional targets to pass + to the +make+ command during the staging installation step. By default, + +install+. + +* +LIBFOO_INSTALL_TARGET_OPTS+, to specify additional targets to pass + to the +make+ command during the target installation step. By default, + +install+. + +* +LIBFOO_SYNC_QT_HEADERS+, to run syncqt.pl before qmake. Some packages + need this to have a properly populated include directory before + running the build. diff --git a/docs/manual/adding-packages-rebar.txt b/docs/manual/adding-packages-rebar.txt new file mode 100644 index 000000000..d78b3171d --- /dev/null +++ b/docs/manual/adding-packages-rebar.txt @@ -0,0 +1,108 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +=== Infrastructure for rebar-based packages + +[[rebar-package-tutorial]] + +==== +rebar-package+ tutorial + +First, let's see how to write a +.mk+ file for a rebar-based package, +with an example : + +------------------------------ +01: ################################################################################ +02: # +03: # erlang-foobar +04: # +05: ################################################################################ +06: +07: ERLANG_FOOBAR_VERSION = 1.0 +08: ERLANG_FOOBAR_SOURCE = erlang-foobar-$(ERLANG_FOOBAR_VERSION).tar.xz +09: ERLANG_FOOBAR_SITE = http://www.foosoftware.org/download +10: ERLANG_FOOBAR_DEPENDENCIES = host-libaaa libbbb +11: +12: $(eval $(rebar-package)) +-------------------------------- + +On line 7, we declare the version of the package. + +On line 8 and 9, we declare the name of the tarball (xz-ed tarball +recommended) and the location of the tarball on the Web. Buildroot +will automatically download the tarball from this location. + +On line 10, we declare our dependencies, so that they are built +before the build process of our package starts. + +Finally, on line 12, we invoke the +rebar-package+ macro that +generates all the Makefile rules that actually allows the package to +be built. + +[[rebar-package-reference]] + +==== +rebar-package+ reference + +The main macro of the +rebar+ package infrastructure is ++rebar-package+. It is similar to the +generic-package+ macro. The +ability to have host packages is also available, with the ++host-rebar-package+ macro. + +Just like the generic infrastructure, the +rebar+ infrastructure works +by defining a number of variables before calling the +rebar-package+ +macro. + +First, all the package metadata information variables that exist in +the generic infrastructure also exist in the +rebar+ infrastructure: ++ERLANG_FOOBAR_VERSION+, +ERLANG_FOOBAR_SOURCE+, ++ERLANG_FOOBAR_PATCH+, +ERLANG_FOOBAR_SITE+, ++ERLANG_FOOBAR_SUBDIR+, +ERLANG_FOOBAR_DEPENDENCIES+, ++ERLANG_FOOBAR_INSTALL_STAGING+, +ERLANG_FOOBAR_INSTALL_TARGET+, ++ERLANG_FOOBAR_LICENSE+ and +ERLANG_FOOBAR_LICENSE_FILES+. + +A few additional variables, specific to the +rebar+ infrastructure, +can also be defined. Many of them are only useful in very specific +cases, typical packages will therefore only use a few of them. + +* +ERLANG_FOOBAR_USE_AUTOCONF+, to specify that the package uses + _autoconf_ at the configuration step. When a package sets this + variable to +YES+, the +autotools+ infrastructure is used. ++ +.Note +You can also use some of the variables from the +autotools+ + infrastructure: +ERLANG_FOOBAR_CONF_ENV+, +ERLANG_FOOBAR_CONF_OPTS+, + +ERLANG_FOOBAR_AUTORECONF+, +ERLANG_FOOBAR_AUTORECONF_ENV+ and + +ERLANG_FOOBAR_AUTORECONF_OPTS+. + +* +ERLANG_FOOBAR_USE_BUNDLED_REBAR+, to specify that the package has + a bundled version of _rebar_ *and* that it shall be used. Valid + values are +YES+ or +NO+ (the default). ++ +.Note +If the package bundles a _rebar_ utility, but can use the generic + one that Buildroot provides, just say +NO+ (i.e., do not specify + this variable). Only set if it is mandatory to use the _rebar_ + utility bundled in this package. + +* +ERLANG_FOOBAR_REBAR_ENV+, to specify additional environment + variables to pass to the _rebar_ utility. + +* +ERLANG_FOOBAR_KEEP_DEPENDENCIES+, to keep the dependencies + described in the rebar.config file. Valid values are +YES+ or +NO+ + (the default). Unless this variable is set to +YES+, the _rebar_ + infrastructure removes such dependencies in a post-patch hook to + ensure rebar does not download nor compile them. + +With the rebar infrastructure, all the steps required to build +and install the packages are already defined, and they generally work +well for most rebar-based packages. However, when required, it is +still possible to customize what is done in any particular step: + +* By adding a post-operation hook (after extract, patch, configure, + build or install). See xref:hooks[] for details. + +* By overriding one of the steps. For example, even if the rebar + infrastructure is used, if the package +.mk+ file defines its + own +ERLANG_FOOBAR_BUILD_CMDS+ variable, it will be used instead + of the default rebar one. However, using this method should be + restricted to very specific cases. Do not use it in the general + case. diff --git a/docs/manual/adding-packages-tips.txt b/docs/manual/adding-packages-tips.txt new file mode 100644 index 000000000..d8c2eceb1 --- /dev/null +++ b/docs/manual/adding-packages-tips.txt @@ -0,0 +1,242 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +=== Tips and tricks + +[[package-name-variable-relation]] +==== Package name, config entry name and makefile variable relationship + +In Buildroot, there is some relationship between: + +* the _package name_, which is the package directory name (and the + name of the +*.mk+ file); + +* the config entry name that is declared in the +Config.in+ file; + +* the makefile variable prefix. + +It is mandatory to maintain consistency between these elements, +using the following rules: + +* the package directory and the +*.mk+ name are the _package name_ + itself (e.g.: +package/foo-bar_boo/foo-bar_boo.mk+); + +* the _make_ target name is the _package name_ itself (e.g.: + +foo-bar_boo+); + +* the config entry is the upper case _package name_ with `.` and `-` + characters substituted with `_`, prefixed with +BR2_PACKAGE_+ (e.g.: + +BR2_PACKAGE_FOO_BAR_BOO+); + +* the +*.mk+ file variable prefix is the upper case _package name_ + with `.` and `-` characters substituted with `_` (e.g.: + +FOO_BAR_BOO_VERSION+). + +[[check-package]] +==== How to check the coding style + +Buildroot provides a script in +utils/check-package+ that checks new or +changed files for coding style. It is not a complete language validator, +but it catches many common mistakes. It is meant to run in the actual +files you created or modified, before creating the patch for submission. + +This script can be used for packages, filesystem makefiles, Config.in +files, etc. It does not check the files defining the package +infrastructures and some other files containing similar common code. + +To use it, run the +check-package+ script, by telling which files you +created or changed: + +---- +$ ./utils/check-package package/new-package/* +---- + +If you have the +utils+ directory in your path you can also run: + +---- +$ cd package/new-package/ +$ check-package * +---- + +The tool can also be used for packages in a br2-external: + +---- +$ check-package -b /path/to/br2-ext-tree/package/my-package/* +---- + +[[testing-package]] +==== How to test your package + +Once you have added your new package, it is important that you test it +under various conditions: does it build for all architectures? Does it +build with the different C libraries? Does it need threads, NPTL? And +so on... + +Buildroot runs http://autobuild.buildroot.org/[autobuilders] which +continuously test random configurations. However, these only build the +`master` branch of the git tree, and your new fancy package is not yet +there. + +Buildroot provides a script in +utils/test-pkg+ that uses the same base +configurations as used by the autobuilders so you can test your package +in the same conditions. + +First, create a config snippet that contains all the necessary options +needed to enable your package, but without any architecture or toolchain +option. For example, let's create a config snippet that just enables ++libcurl+, without any TLS backend: + +---- +$ cat libcurl.config +BR2_PACKAGE_LIBCURL=y +---- + +If your package needs more configuration options, you can add them to the +config snippet. For example, here's how you would test +libcurl+ with ++openssl+ as a TLS backend and the +curl+ program: + +---- +$ cat libcurl.config +BR2_PACKAGE_LIBCURL=y +BR2_PACKAGE_LIBCURL_CURL=y +BR2_PACKAGE_OPENSSL=y +---- + +Then run the +test-pkg+ script, by telling it what config snippet to use +and what package to test: + +---- +$ ./utils/test-pkg -c libcurl.config -p libcurl +---- + +By default, +test-pkg+ will build your package against a subset of the +toolchains used by the autobuilders, which has been selected by the +Buildroot developers as being the most useful and representative +subset. If you want to test all toolchains, pass the +-a+ option. Note +that in any case, internal toolchains are excluded as they take too +long to build. + +The output lists all toolchains that are tested and the corresponding +result (excerpt, results are fake): + +---- +$ ./utils/test-pkg -c libcurl.config -p libcurl + armv5-ctng-linux-gnueabi [ 1/11]: OK + armv7-ctng-linux-gnueabihf [ 2/11]: OK + br-aarch64-glibc [ 3/11]: SKIPPED + br-arcle-hs38 [ 4/11]: SKIPPED + br-arm-basic [ 5/11]: FAILED + br-arm-cortex-a9-glibc [ 6/11]: OK + br-arm-cortex-a9-musl [ 7/11]: FAILED + br-arm-cortex-m4-full [ 8/11]: OK + br-arm-full [ 9/11]: OK + br-arm-full-nothread [10/11]: FAILED + br-arm-full-static [11/11]: OK +11 builds, 2 skipped, 2 build failed, 1 legal-info failed +---- + +The results mean: + +* `OK`: the build was successful. +* `SKIPPED`: one or more configuration options listed in the config + snippet were not present in the final configuration. This is due to + options having dependencies not satisfied by the toolchain, such as + for example a package that +depends on BR2_USE_MMU+ with a noMMU + toolchain. The missing options are reported in +missing.config+ in + the output build directory (+~/br-test-pkg/TOOLCHAIN_NAME/+ by + default). +* `FAILED`: the build failed. Inspect the +logfile+ file in the output + build directory to see what went wrong: +** the actual build failed, +** the legal-info failed, +** one of the preliminary steps (downloading the config file, applying + the configuration, running `dirclean` for the package) failed. + +When there are failures, you can just re-run the script with the same +options (after you fixed your package); the script will attempt to +re-build the package specified with +-p+ for all toolchains, without +the need to re-build all the dependencies of that package. + +The +test-pkg+ script accepts a few options, for which you can get some +help by running: + +---- +$ ./utils/test-pkg -h +---- + +[[github-download-url]] +==== How to add a package from GitHub + +Packages on GitHub often don't have a download area with release tarballs. +However, it is possible to download tarballs directly from the repository +on GitHub. As GitHub is known to have changed download mechanisms in the +past, the 'github' helper function should be used as shown below. + +------------------------ +# Use a tag or a full commit ID +FOO_VERSION = 1.0 +FOO_SITE = $(call github,,,v$(FOO_VERSION)) +------------------------ + +.Notes +- The FOO_VERSION can either be a tag or a commit ID. +- The tarball name generated by github matches the default one from + Buildroot (e.g.: +foo-f6fb6654af62045239caed5950bc6c7971965e60.tar.gz+), + so it is not necessary to specify it in the +.mk+ file. +- When using a commit ID as version, you should use the full 40 hex characters. +- When the tag contains a prefix such as +v+ in +v1.0+, then the + +VERSION+ variable should contain just +1.0+, and the +v+ should be + added directly in the +SITE+ variable, as illustrated above. This + ensures that the +VERSION+ variable value can be used to match + against http://www.release-monitoring.org/[release-monitoring.org] + results. + +If the package you wish to add does have a release section on GitHub, the +maintainer may have uploaded a release tarball, or the release may just point +to the automatically generated tarball from the git tag. If there is a +release tarball uploaded by the maintainer, we prefer to use that since it +may be slightly different (e.g. it contains a configure script so we don't +need to do AUTORECONF). + +You can see on the release page if it's an uploaded tarball or a git tag: + +image::github_hash_mongrel2.png[] + +- If it looks like the image above then it was uploaded by the + maintainer and you should use that link (in that example: + 'mongrel2-v1.9.2.tar.bz2') to specify +FOO_SITE+, and not use the + 'github' helper. + +- On the other hand, if there's is *only* the "Source code" link, then + it's an automatically generated tarball and you should use the + 'github' helper function. + +[[gitlab-download-url]] +==== How to add a package from Gitlab + +In a similar way to the +github+ macro described in +xref:github-download-url[], Buildroot also provides the +gitlab+ macro +to download from Gitlab repositories. It can be used to download +auto-generated tarballs produced by Gitlab, either for specific tags +or commits: + +------------------------ +# Use a tag or a full commit ID +FOO_VERSION = 1.0 +FOO_SITE = $(call gitlab,,,v$(FOO_VERSION)) +------------------------ + +By default, it will use a +.tar.gz+ tarball, but Gitlab also provides ++.tar.bz2+ tarballs, so by adding a +_SOURCE+ variable, this ++.tar.bz2+ tarball can be used: + +------------------------ +# Use a tag or a full commit ID +FOO_VERSION = 1.0 +FOO_SITE = $(call gitlab,,,v$(FOO_VERSION)) +FOO_SOURCE = foo-$(FOO_VERSION).tar.bz2 +------------------------ + +If there is a specific tarball uploaded by the upstream developers in ++https://gitlab.com//releases/+, do not use this macro, but +rather use directly the link to the tarball. diff --git a/docs/manual/adding-packages-virtual.txt b/docs/manual/adding-packages-virtual.txt new file mode 100644 index 000000000..722e6e377 --- /dev/null +++ b/docs/manual/adding-packages-virtual.txt @@ -0,0 +1,144 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +=== Infrastructure for virtual packages + +[[virtual-package-tutorial]] + +In Buildroot, a virtual package is a package whose functionalities are +provided by one or more packages, referred to as 'providers'. The virtual +package management is an extensible mechanism allowing the user to choose +the provider used in the rootfs. + +For example, 'OpenGL ES' is an API for 2D and 3D graphics on embedded systems. +The implementation of this API is different for the 'Allwinner Tech Sunxi' and +the 'Texas Instruments OMAP35xx' platforms. So +libgles+ will be a virtual +package and +sunxi-mali-utgard+ and +ti-gfx+ will be the providers. + +==== +virtual-package+ tutorial + +In the following example, we will explain how to add a new virtual package +('something-virtual') and a provider for it ('some-provider'). + +First, let's create the virtual package. + +==== Virtual package's +Config.in+ file + +The +Config.in+ file of virtual package 'something-virtual' should contain: + +--------------------------- +01: config BR2_PACKAGE_HAS_SOMETHING_VIRTUAL +02: bool +03: +04: config BR2_PACKAGE_PROVIDES_SOMETHING_VIRTUAL +05: depends on BR2_PACKAGE_HAS_SOMETHING_VIRTUAL +06: string +--------------------------- + +In this file, we declare two options, +BR2_PACKAGE_HAS_SOMETHING_VIRTUAL+ and ++BR2_PACKAGE_PROVIDES_SOMETHING_VIRTUAL+, whose values will be used by the +providers. + +==== Virtual package's +.mk+ file + +The +.mk+ for the virtual package should just evaluate the +virtual-package+ macro: + +--------------------------- +01: ################################################################################ +02: # +03: # something-virtual +04: # +05: ################################################################################ +06: +07: $(eval $(virtual-package)) +--------------------------- + +The ability to have target and host packages is also available, with the ++host-virtual-package+ macro. + +==== Provider's +Config.in+ file + +When adding a package as a provider, only the +Config.in+ file requires some +modifications. + +The +Config.in+ file of the package 'some-provider', which provides the +functionalities of 'something-virtual', should contain: + +--------------------------- +01: config BR2_PACKAGE_SOME_PROVIDER +02: bool "some-provider" +03: select BR2_PACKAGE_HAS_SOMETHING_VIRTUAL +04: help +05: This is a comment that explains what some-provider is. +06: +07: http://foosoftware.org/some-provider/ +08: +09: if BR2_PACKAGE_SOME_PROVIDER +10: config BR2_PACKAGE_PROVIDES_SOMETHING_VIRTUAL +11: default "some-provider" +12: endif +--------------------------- + +On line 3, we select +BR2_PACKAGE_HAS_SOMETHING_VIRTUAL+, and on line 11, we +set the value of +BR2_PACKAGE_PROVIDES_SOMETHING_VIRTUAL+ to the name of the +provider, but only if it is selected. + +==== Provider's +.mk+ file + +The +.mk+ file should also declare an additional variable ++SOME_PROVIDER_PROVIDES+ to contain the names of all the virtual +packages it is an implementation of: + +--------------------------- +01: SOME_PROVIDER_PROVIDES = something-virtual +--------------------------- + +Of course, do not forget to add the proper build and runtime dependencies for +this package! + +==== Notes on depending on a virtual package + +When adding a package that requires a certain +FEATURE+ provided by a virtual +package, you have to use +depends on BR2_PACKAGE_HAS_FEATURE+, like so: + +--------------------------- +config BR2_PACKAGE_HAS_FEATURE + bool + +config BR2_PACKAGE_FOO + bool "foo" + depends on BR2_PACKAGE_HAS_FEATURE +--------------------------- + +==== Notes on depending on a specific provider + +If your package really requires a specific provider, then you'll have to +make your package +depends on+ this provider; you can _not_ +select+ a +provider. + +Let's take an example with two providers for a +FEATURE+: + +--------------------------- +config BR2_PACKAGE_HAS_FEATURE + bool + +config BR2_PACKAGE_FOO + bool "foo" + select BR2_PACKAGE_HAS_FEATURE + +config BR2_PACKAGE_BAR + bool "bar" + select BR2_PACKAGE_HAS_FEATURE +--------------------------- + +And you are adding a package that needs +FEATURE+ as provided by +foo+, +but not as provided by +bar+. + +If you were to use +select BR2_PACKAGE_FOO+, then the user would still +be able to select +BR2_PACKAGE_BAR+ in the menuconfig. This would create +a configuration inconsistency, whereby two providers of the same +FEATURE+ +would be enabled at once, one explicitly set by the user, the other +implicitly by your +select+. + +Instead, you have to use +depends on BR2_PACKAGE_FOO+, which avoids any +implicit configuration inconsistency. diff --git a/docs/manual/adding-packages-waf.txt b/docs/manual/adding-packages-waf.txt new file mode 100644 index 000000000..101cddf1f --- /dev/null +++ b/docs/manual/adding-packages-waf.txt @@ -0,0 +1,91 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +=== Infrastructure for Waf-based packages + +[[waf-package-tutorial]] + +==== +waf-package+ tutorial + +First, let's see how to write a +.mk+ file for a Waf-based package, with +an example : + +------------------------ +01: ################################################################################ +02: # +03: # libfoo +04: # +05: ################################################################################ +06: +07: LIBFOO_VERSION = 1.0 +08: LIBFOO_SOURCE = libfoo-$(LIBFOO_VERSION).tar.gz +09: LIBFOO_SITE = http://www.foosoftware.org/download +10: LIBFOO_CONF_OPTS = --enable-bar --disable-baz +11: LIBFOO_DEPENDENCIES = bar +12: +13: $(eval $(waf-package)) +------------------------ + +On line 7, we declare the version of the package. + +On line 8 and 9, we declare the name of the tarball (xz-ed tarball +recommended) and the location of the tarball on the Web. Buildroot +will automatically download the tarball from this location. + +On line 10, we tell Buildroot what options to enable for libfoo. + +On line 11, we tell Buildroot the dependencies of libfoo. + +Finally, on line line 13, we invoke the +waf-package+ +macro that generates all the Makefile rules that actually allows the +package to be built. + +[[waf-package-reference]] + +==== +waf-package+ reference + +The main macro of the Waf package infrastructure is +waf-package+. +It is similar to the +generic-package+ macro. + +Just like the generic infrastructure, the Waf infrastructure works +by defining a number of variables before calling the +waf-package+ +macro. + +First, all the package metadata information variables that exist in +the generic infrastructure also exist in the Waf infrastructure: ++LIBFOO_VERSION+, +LIBFOO_SOURCE+, +LIBFOO_PATCH+, +LIBFOO_SITE+, ++LIBFOO_SUBDIR+, +LIBFOO_DEPENDENCIES+, +LIBFOO_INSTALL_STAGING+, ++LIBFOO_INSTALL_TARGET+. + +An additional variable, specific to the Waf infrastructure, can +also be defined. + +* +LIBFOO_SUBDIR+ may contain the name of a subdirectory inside the + package that contains the main wscript file. This is useful, + if for example, the main wscript file is not at the root of + the tree extracted by the tarball. If +HOST_LIBFOO_SUBDIR+ is not + specified, it defaults to +LIBFOO_SUBDIR+. + +* +LIBFOO_NEEDS_EXTERNAL_WAF+ can be set to +YES+ or +NO+ to tell + Buildroot to use the bundled +waf+ executable. If set to +NO+, the + default, then Buildroot will use the waf executable provided in the + package source tree; if set to +YES+, then Buildroot will download, + install waf as a host tool and use it to build the package. + +* +LIBFOO_WAF_OPTS+, to specify additional options to pass to the + +waf+ script at every step of the package build process: configure, + build and installation. By default, empty. + +* +LIBFOO_CONF_OPTS+, to specify additional options to pass to the + +waf+ script for the configuration step. By default, empty. + +* +LIBFOO_BUILD_OPTS+, to specify additional options to pass to the + +waf+ script during the build step. By default, empty. + +* +LIBFOO_INSTALL_STAGING_OPTS+, to specify additional options to pass + to the +waf+ script during the staging installation step. By default, + empty. + +* +LIBFOO_INSTALL_TARGET_OPTS+, to specify additional options to pass + to the +waf+ script during the target installation step. By default, + empty. diff --git a/docs/manual/adding-packages.txt b/docs/manual/adding-packages.txt new file mode 100644 index 000000000..814355cd7 --- /dev/null +++ b/docs/manual/adding-packages.txt @@ -0,0 +1,58 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +[[adding-packages]] +== Adding new packages to Buildroot + +This section covers how new packages (userspace libraries or +applications) can be integrated into Buildroot. It also shows how +existing packages are integrated, which is needed for fixing issues or +tuning their configuration. + +When you add a new package, be sure to test it in various conditions +(see xref:testing-package[]) and also check it for coding style (see +xref:check-package[]). + +include::adding-packages-directory.txt[] + +include::adding-packages-generic.txt[] + +include::adding-packages-autotools.txt[] + +include::adding-packages-cmake.txt[] + +include::adding-packages-python.txt[] + +include::adding-packages-luarocks.txt[] + +include::adding-packages-perl.txt[] + +include::adding-packages-virtual.txt[] + +include::adding-packages-kconfig.txt[] + +include::adding-packages-rebar.txt[] + +include::adding-packages-waf.txt[] + +include::adding-packages-meson.txt[] + +include::adding-packages-cargo.txt[] + +include::adding-packages-golang.txt[] + +include::adding-packages-qmake.txt[] + +include::adding-packages-kernel-module.txt[] + +include::adding-packages-asciidoc.txt[] + +include::adding-packages-linux-kernel-spec-infra.txt[] + +include::adding-packages-hooks.txt[] + +include::adding-packages-gettext.txt[] + +include::adding-packages-tips.txt[] + +include::adding-packages-conclusion.txt[] diff --git a/docs/manual/advanced.txt b/docs/manual/advanced.txt new file mode 100644 index 000000000..b7bfc4923 --- /dev/null +++ b/docs/manual/advanced.txt @@ -0,0 +1,16 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +=== Advanced usage + +include::using-buildroot-toolchain.txt[] + +include::using-buildroot-debugger.txt[] + +include::ccache-support.txt[] + +include::download-location.txt[] + +include::package-make-target.txt[] + +include::using-buildroot-development.txt[] diff --git a/docs/manual/appendix.txt b/docs/manual/appendix.txt new file mode 100644 index 000000000..86afa4bda --- /dev/null +++ b/docs/manual/appendix.txt @@ -0,0 +1,6 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +include::makedev-syntax.txt[] +include::makeusers-syntax.txt[] +include::migrating.txt[] diff --git a/docs/manual/beyond-buildroot.txt b/docs/manual/beyond-buildroot.txt new file mode 100644 index 000000000..eefea1fec --- /dev/null +++ b/docs/manual/beyond-buildroot.txt @@ -0,0 +1,66 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +== Beyond Buildroot + +=== Boot the generated images + +==== NFS boot + +To achieve NFS-boot, enable _tar root filesystem_ in the _Filesystem +images_ menu. + +After a complete build, just run the following commands to setup the +NFS-root directory: + +------------------- +sudo tar -xavf /path/to/output_dir/rootfs.tar -C /path/to/nfs_root_dir +------------------- + +Remember to add this path to +/etc/exports+. + +Then, you can execute a NFS-boot from your target. + +==== Live CD + +To build a live CD image, enable the _iso image_ option in the +_Filesystem images_ menu. Note that this option is only available on +the x86 and x86-64 architectures, and if you are building your kernel +with Buildroot. + +You can build a live CD image with either IsoLinux, Grub or Grub 2 as +a bootloader, but only Isolinux supports making this image usable both +as a live CD and live USB (through the _Build hybrid image_ option). + +You can test your live CD image using QEMU: + +------------------- +qemu-system-i386 -cdrom output/images/rootfs.iso9660 +------------------- + +Or use it as a hard-drive image if it is a hybrid ISO: + +------------------- +qemu-system-i386 -hda output/images/rootfs.iso9660 +------------------- + +It can be easily flashed to a USB drive with +dd+: + +------------------- +dd if=output/images/rootfs.iso9660 of=/dev/sdb +------------------- + +=== Chroot + +If you want to chroot in a generated image, then there are few thing +you should be aware of: + +* you should setup the new root from the _tar root filesystem_ image; + +* either the selected target architecture is compatible with your host + machine, or you should use some +qemu-*+ binary and correctly set it + within the +binfmt+ properties to be able to run the binaries built + for the target on your host machine; + +* Buildroot does not currently provide +host-qemu+ and +binfmt+ + correctly built and set for that kind of use. diff --git a/docs/manual/ccache-support.txt b/docs/manual/ccache-support.txt new file mode 100644 index 000000000..ab4f10be2 --- /dev/null +++ b/docs/manual/ccache-support.txt @@ -0,0 +1,69 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +[[ccache]] +==== Using +ccache+ in Buildroot + +http://ccache.samba.org[ccache] is a compiler cache. It stores the +object files resulting from each compilation process, and is able to +skip future compilation of the same source file (with same compiler +and same arguments) by using the pre-existing object files. When doing +almost identical builds from scratch a number of times, it can nicely +speed up the build process. + ++ccache+ support is integrated in Buildroot. You just have to enable ++Enable compiler cache+ in +Build options+. This will automatically +build +ccache+ and use it for every host and target compilation. + +The cache is located in the directory defined by the +BR2_CCACHE_DIR+ +configuration option, which defaults to ++$HOME/.buildroot-ccache+. This default location is outside of +Buildroot output directory so that it can be shared by separate +Buildroot builds. If you want to get rid of the cache, simply remove +this directory. + +You can get statistics on the cache (its size, number of hits, +misses, etc.) by running +make ccache-stats+. + +The make target +ccache-options+ and the +CCACHE_OPTIONS+ variable +provide more generic access to the ccache. For example + +----------------- +# set cache limit size +make CCACHE_OPTIONS="--max-size=5G" ccache-options + +# zero statistics counters +make CCACHE_OPTIONS="--zero-stats" ccache-options +----------------- + ++ccache+ makes a hash of the source files and of the compiler options. +If a compiler option is different, the cached object file will not be +used. Many compiler options, however, contain an absolute path to the +staging directory. Because of this, building in a different output +directory would lead to many cache misses. + +To avoid this issue, buildroot has the +Use relative paths+ option +(+BR2_CCACHE_USE_BASEDIR+). This will rewrite all absolute paths that +point inside the output directory into relative paths. Thus, changing +the output directory no longer leads to cache misses. + +A disadvantage of the relative paths is that they also end up to be +relative paths in the object file. Therefore, for example, the debugger +will no longer find the file, unless you cd to the output directory +first. + +See https://ccache.samba.org/manual.html#_compiling_in_different_directories[the +ccache manual's section on "Compiling in different directories"] for +more details about this rewriting of absolute paths. + +When +ccache+ is enabled in Buildroot using the +BR2_CCACHE=y+ option: + +* +ccache+ is used during the Buildroot build itself + +* +ccache+ is not used when building outside of Buildroot, for example + when directly calling the cross-compiler or using the SDK + +One can override this behavior using the +BR2_USE_CCACHE+ environment +variable: when set to +1+, usage of ccache is enabled (default during +the Buildroot build), when unset or set to a value different from +1+, +usage of ccache is disabled. diff --git a/docs/manual/common-usage.txt b/docs/manual/common-usage.txt new file mode 100644 index 000000000..9abd3799d --- /dev/null +++ b/docs/manual/common-usage.txt @@ -0,0 +1,420 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +== General Buildroot usage + +include::make-tips.txt[] + +include::rebuilding-packages.txt[] + +=== Offline builds + +If you intend to do an offline build and just want to download +all sources that you previously selected in the configurator +('menuconfig', 'nconfig', 'xconfig' or 'gconfig'), then issue: + +-------------------- + $ make source +-------------------- + +You can now disconnect or copy the content of your +dl+ +directory to the build-host. + +=== Building out-of-tree + +As default, everything built by Buildroot is stored in the directory ++output+ in the Buildroot tree. + +Buildroot also supports building out of tree with a syntax similar to +the Linux kernel. To use it, add +O=+ to the make command +line: + +-------------------- + $ make O=/tmp/build +-------------------- + +Or: + +-------------------- + $ cd /tmp/build; make O=$PWD -C path/to/buildroot +-------------------- + +All the output files will be located under +/tmp/build+. If the +O+ +path does not exist, Buildroot will create it. + +*Note:* the +O+ path can be either an absolute or a relative path, but if it's +passed as a relative path, it is important to note that it is interpreted +relative to the main Buildroot source directory, *not* the current working +directory. + +When using out-of-tree builds, the Buildroot +.config+ and temporary +files are also stored in the output directory. This means that you can +safely run multiple builds in parallel using the same source tree as +long as they use unique output directories. + +For ease of use, Buildroot generates a Makefile wrapper in the output +directory - so after the first run, you no longer need to pass +O=<...>+ +and +-C <...>+, simply run (in the output directory): + +-------------------- + $ make +-------------------- + +[[env-vars]] + +=== Environment variables + +Buildroot also honors some environment variables, when they are passed +to +make+ or set in the environment: + +* +HOSTCXX+, the host C++ compiler to use +* +HOSTCC+, the host C compiler to use +* +UCLIBC_CONFIG_FILE=+, path to + the uClibc configuration file, used to compile uClibc, if an + internal toolchain is being built. + + + Note that the uClibc configuration file can also be set from the + configuration interface, so through the Buildroot +.config+ file; this + is the recommended way of setting it. + + +* +BUSYBOX_CONFIG_FILE=+, path to + the BusyBox configuration file. + + + Note that the BusyBox configuration file can also be set from the + configuration interface, so through the Buildroot +.config+ file; this + is the recommended way of setting it. + + +* +BR2_CCACHE_DIR+ to override the directory where + Buildroot stores the cached files when using ccache. + + +* +BR2_DL_DIR+ to override the directory in which + Buildroot stores/retrieves downloaded files. + + + Note that the Buildroot download directory can also be set from the + configuration interface, so through the Buildroot +.config+ file. See + xref:download-location[] for more details on how you can set the download + directory. +* +BR2_GRAPH_ALT+, if set and non-empty, to use an alternate color-scheme in + build-time graphs +* +BR2_GRAPH_OUT+ to set the filetype of generated graphs, either +pdf+ (the + default), or +png+. +* +BR2_GRAPH_DEPS_OPTS+ to pass extra options to the dependency graph; see + xref:graph-depends[] for the accepted options +* +BR2_GRAPH_DOT_OPTS+ is passed verbatim as options to the +dot+ utility to + draw the dependency graph. +* +BR2_GRAPH_SIZE_OPTS+ to pass extra options to the size graph; see + xref:graph-size[] for the acepted options + +An example that uses config files located in the toplevel directory and +in your $HOME: + +-------------------- + $ make UCLIBC_CONFIG_FILE=uClibc.config BUSYBOX_CONFIG_FILE=$HOME/bb.config +-------------------- + +If you want to use a compiler other than the default +gcc+ +or +g+++ for building helper-binaries on your host, then do + +-------------------- + $ make HOSTCXX=g++-4.3-HEAD HOSTCC=gcc-4.3-HEAD +-------------------- + +=== Dealing efficiently with filesystem images + +Filesystem images can get pretty big, depending on the filesystem you choose, +the number of packages, whether you provisioned free space... Yet, some +locations in the filesystems images may just be _empty_ (e.g. a long run of +'zeroes'); such a file is called a _sparse_ file. + +Most tools can handle sparse files efficiently, and will only store or write +those parts of a sparse file that are not empty. + +For example: + +* +tar+ accepts the +-S+ option to tell it to only store non-zero blocks + of sparse files: +** +tar cf archive.tar -S [files...]+ will efficiently store sparse files + in a tarball +** +tar xf archive.tar -S+ will efficiently store sparse files extracted + from a tarball + +* +cp+ accepts the +--sparse=WHEN+ option (+WHEN+ is one of +auto+, + +never+ or +always+): +** +cp --sparse=always source.file dest.file+ will make +dest.file+ a + sparse file if +source.file+ has long runs of zeroes + +Other tools may have similar options. Please consult their respective man +pages. + +You can use sparse files if you need to store the filesystem images (e.g. +to transfer from one machine to another), or if you need to send them (e.g. +to the Q&A team). + +Note however that flashing a filesystem image to a device while using the +sparse mode of +dd+ may result in a broken filesystem (e.g. the block bitmap +of an ext2 filesystem may be corrupted; or, if you have sparse files in +your filesystem, those parts may not be all-zeroes when read back). You +should only use sparse files when handling files on the build machine, not +when transferring them to an actual device that will be used on the target. + +=== Details about packages + +[[package-details]] + +Buildroot can produce a JSON blurb that describes the set of enabled +packages in the current configuration, together with their +dependencies, licenses and other metadata. This JSON blurb is produced +by using the +show-info+ make target: + +------------------------ +make show-info +------------------------ + +Buildroot can also produce details about packages as HTML and JSON +output using the +pkg-stats+ make target. Amongst other things, these +details include whether known CVEs (security vulnerabilities) affect +the packages in your current configuration. It also shows if there is +a newer upstream version for those packages. + +------------------------ +make pkg-stats +------------------------ + +=== Graphing the dependencies between packages + +[[graph-depends]] + +One of Buildroot's jobs is to know the dependencies between packages, +and make sure they are built in the right order. These dependencies +can sometimes be quite complicated, and for a given system, it is +often not easy to understand why such or such package was brought into +the build by Buildroot. + +In order to help understanding the dependencies, and therefore better +understand what is the role of the different components in your +embedded Linux system, Buildroot is capable of generating dependency +graphs. + +To generate a dependency graph of the full system you have compiled, +simply run: + +------------------------ +make graph-depends +------------------------ + +You will find the generated graph in ++output/graphs/graph-depends.pdf+. + +If your system is quite large, the dependency graph may be too complex +and difficult to read. It is therefore possible to generate the +dependency graph just for a given package: + +------------------------ +make -graph-depends +------------------------ + +You will find the generated graph in ++output/graph/-graph-depends.pdf+. + +Note that the dependency graphs are generated using the +dot+ tool +from the _Graphviz_ project, which you must have installed on your +system to use this feature. In most distributions, it is available as +the +graphviz+ package. + +By default, the dependency graphs are generated in the PDF +format. However, by passing the +BR2_GRAPH_OUT+ environment variable, you +can switch to other output formats, such as PNG, PostScript or +SVG. All formats supported by the +-T+ option of the +dot+ tool are +supported. + +-------------------------------- +BR2_GRAPH_OUT=svg make graph-depends +-------------------------------- + +The +graph-depends+ behaviour can be controlled by setting options in the ++BR2_GRAPH_DEPS_OPTS+ environment variable. The accepted options are: + +* +--depth N+, +-d N+, to limit the dependency depth to +N+ levels. The + default, +0+, means no limit. + +* +--stop-on PKG+, +-s PKG+, to stop the graph on the package +PKG+. + +PKG+ can be an actual package name, a glob, the keyword 'virtual' + (to stop on virtual packages), or the keyword 'host' (to stop on + host packages). The package is still present on the graph, but its + dependencies are not. + +* +--exclude PKG+, +-x PKG+, like +--stop-on+, but also omits +PKG+ from + the graph. + +* +--transitive+, +--no-transitive+, to draw (or not) the transitive + dependencies. The default is to not draw transitive dependencies. + +* +--colors R,T,H+, the comma-separated list of colors to draw the + root package (+R+), the target packages (+T+) and the host packages + (+H+). Defaults to: +lightblue,grey,gainsboro+ + +-------------------------------- +BR2_GRAPH_DEPS_OPTS='-d 3 --no-transitive --colors=red,green,blue' make graph-depends +-------------------------------- + +=== Graphing the build duration + +[[graph-duration]] + +When the build of a system takes a long time, it is sometimes useful +to be able to understand which packages are the longest to build, to +see if anything can be done to speed up the build. In order to help +such build time analysis, Buildroot collects the build time of each +step of each package, and allows to generate graphs from this data. + +To generate the build time graph after a build, run: + +---------------- +make graph-build +---------------- + +This will generate a set of files in +output/graphs+ : + +* +build.hist-build.pdf+, a histogram of the build time for each + package, ordered in the build order. + +* +build.hist-duration.pdf+, a histogram of the build time for each + package, ordered by duration (longest first) + +* +build.hist-name.pdf+, a histogram of the build time for each + package, order by package name. + +* +build.pie-packages.pdf+, a pie chart of the build time per package + +* +build.pie-steps.pdf+, a pie chart of the global time spent in each + step of the packages build process. + +This +graph-build+ target requires the Python Matplotlib and Numpy +libraries to be installed (+python-matplotlib+ and +python-numpy+ on +most distributions), and also the +argparse+ module if you're using a +Python version older than 2.7 (+python-argparse+ on most +distributions). + +By default, the output format for the graph is PDF, but a different +format can be selected using the +BR2_GRAPH_OUT+ environment variable. The +only other format supported is PNG: + +---------------- +BR2_GRAPH_OUT=png make graph-build +---------------- + +[[graph-size]] +=== Graphing the filesystem size contribution of packages + +When your target system grows, it is sometimes useful to understand +how much each Buildroot package is contributing to the overall root +filesystem size. To help with such an analysis, Buildroot collects +data about files installed by each package and using this data, +generates a graph and CSV files detailing the size contribution of +the different packages. + +To generate these data after a build, run: + +---------------- +make graph-size +---------------- + +This will generate: + +* +output/graphs/graph-size.pdf+, a pie chart of the contribution of + each package to the overall root filesystem size + +* +output/graphs/package-size-stats.csv+, a CSV file giving the size + contribution of each package to the overall root filesystem size + +* +output/graphs/file-size-stats.csv+, a CSV file giving the size + contribution of each installed file to the package it belongs, and + to the overall filesystem size. + +This +graph-size+ target requires the Python Matplotlib library to be +installed (+python-matplotlib+ on most distributions), and also the ++argparse+ module if you're using a Python version older than 2.7 +(+python-argparse+ on most distributions). + +Just like for the duration graph, a +BR2_GRAPH_OUT+ environment variable +is supported to adjust the output file format. See xref:graph-depends[] +for details about this environment variable. + +Additionally, one may set the environment variable +BR2_GRAPH_SIZE_OPTS+ +to further control the generated graph. Accepted options are: + +* `--size-limit X`, `-l X`, will group all packages which individual + contribution is below `X` percent, to a single entry labelled _Others_ + in the graph. By default, `X=0.01`, which means packages each + contributing less than 1% are grouped under _Others_. Accepted values + are in the range `[0.0..1.0]`. + +* `--iec`, `--binary`, `--si`, `--decimal`, to use IEC (binary, powers + of 1024) or SI (decimal, powers of 1000; the default) prefixes. + +* `--biggest-first`, to sort packages in decreasing size order, rather + than in increasing size order. + +.Note +The collected filesystem size data is only meaningful after a complete +clean rebuild. Be sure to run +make clean all+ before using +make +graph-size+. + +To compare the root filesystem size of two different Buildroot compilations, +for example after adjusting the configuration or when switching to another +Buildroot release, use the +size-stats-compare+ script. It takes two ++file-size-stats.csv+ files (produced by +make graph-size+) as input. +Refer to the help text of this script for more details: + +---------------- +utils/size-stats-compare -h +---------------- + +[[top-level-parallel-build]] +=== Top-level parallel build + +.Note +This section deals with a very experimental feature, which is known to +break even in some non-unusual situations. Use at your own risk. + +Buildroot has always been capable of using parallel build on a per +package basis: each package is built by Buildroot using +make -jN+ (or +the equivalent invocation for non-make-based build systems). The level +of parallelism is by default number of CPUs + 1, but it can be +adjusted using the +BR2_JLEVEL+ configuration option. + +Until 2020.02, Buildroot was however building packages in a serial +fashion: each package was built one after the other, without +parallelization of the build between packages. As of 2020.02, +Buildroot has experimental support for *top-level parallel build*, +which allows some signicant build time savings by building packages +that have no dependency relationship in parallel. This feature is +however marked as experimental and is known not to work in some cases. + +In order to use top-level parallel build, one must: + +. Enable the option +BR2_PER_PACKAGE_DIRECTORIES+ in the Buildroot +configuration + +. Use +make -jN+ when starting the Buildroot build + +Internally, the +BR2_PER_PACKAGE_DIRECTORIES+ will enable a mechanism +called *per-package directories*, which will have the following +effects: + +* Instead of a global _target_ directory and a global _host_ directory + common to all packages, per-package _target_ and _host_ directories + will be used, in +$(O)/per-package//target/+ and + +$(O)/per-package//host/+ respectively. Those folders will be + populated from the corresponding folders of the package dependencies + at the beginning of ++ build. The compiler and all other tools + will therefore only be able to see and access files installed by + dependencies explicitly listed by ++. + +* At the end of the build, the global _target_ and _host_ directories + will be populated, located in +$(O)/target+ and +$(O)/host+ + respectively. This means that during the build, those folders will + be empty and it's only at the very end of the build that they will + be populated. + +include::advanced.txt[] diff --git a/docs/manual/configure-other-components.txt b/docs/manual/configure-other-components.txt new file mode 100644 index 000000000..60a80f0a4 --- /dev/null +++ b/docs/manual/configure-other-components.txt @@ -0,0 +1,60 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +== Configuration of other components + +Before attempting to modify any of the components below, make sure you +have already configured Buildroot itself, and have enabled the +corresponding package. + +BusyBox:: ++ +If you already have a BusyBox configuration file, you can directly +specify this file in the Buildroot configuration, using ++BR2_PACKAGE_BUSYBOX_CONFIG+. Otherwise, Buildroot will start from a +default BusyBox configuration file. ++ +To make subsequent changes to the configuration, use +make +busybox-menuconfig+ to open the BusyBox configuration editor. ++ +It is also possible to specify a BusyBox configuration file through an +environment variable, although this is not recommended. Refer to +xref:env-vars[] for more details. + +uClibc:: ++ +Configuration of uClibc is done in the same way as for BusyBox. The +configuration variable to specify an existing configuration file is ++BR2_UCLIBC_CONFIG+. The command to make subsequent changes is +make +uclibc-menuconfig+. + +Linux kernel:: ++ +If you already have a kernel configuration file, you can directly +specify this file in the Buildroot configuration, using ++BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG+. ++ +If you do not yet have a kernel configuration file, you can either start +by specifying a defconfig in the Buildroot configuration, using ++BR2_LINUX_KERNEL_USE_DEFCONFIG+, or start by creating an empty file and +specifying it as custom configuration file, using ++BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG+. ++ +To make subsequent changes to the configuration, use +make +linux-menuconfig+ to open the Linux configuration editor. + +Barebox:: ++ +Configuration of Barebox is done in the same way as for the Linux +kernel. The corresponding configuration variables are ++BR2_TARGET_BAREBOX_USE_CUSTOM_CONFIG+ and ++BR2_TARGET_BAREBOX_USE_DEFCONFIG+. To open the configuration editor, +use +make barebox-menuconfig+. + +U-Boot:: ++ +Configuration of U-Boot (version 2015.04 or newer) is done in the same +way as for the Linux kernel. The corresponding configuration variables +are +BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG+ and ++BR2_TARGET_UBOOT_USE_DEFCONFIG+. To open the configuration editor, +use +make uboot-menuconfig+. diff --git a/docs/manual/configure.txt b/docs/manual/configure.txt new file mode 100644 index 000000000..60860d2c7 --- /dev/null +++ b/docs/manual/configure.txt @@ -0,0 +1,431 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +[[configure]] +== Buildroot configuration + +All the configuration options in +make *config+ have a help text +providing details about the option. + +The +make *config+ commands also offer a search tool. Read the help +message in the different frontend menus to know how to use it: + +* in _menuconfig_, the search tool is called by pressing +/+; +* in _xconfig_, the search tool is called by pressing +Ctrl+ + +f+. + +The result of the search shows the help message of the matching items. +In _menuconfig_, numbers in the left column provide a shortcut to the +corresponding entry. Just type this number to directly jump to the +entry, or to the containing menu in case the entry is not selectable due +to a missing dependency. + +Although the menu structure and the help text of the entries should be +sufficiently self-explanatory, a number of topics require additional +explanation that cannot easily be covered in the help text and are +therefore covered in the following sections. + +=== Cross-compilation toolchain + +A compilation toolchain is the set of tools that allows you to compile +code for your system. It consists of a compiler (in our case, +gcc+), +binary utils like assembler and linker (in our case, +binutils+) and a +C standard library (for example +http://www.gnu.org/software/libc/libc.html[GNU Libc], +http://www.uclibc-ng.org/[uClibc-ng]). + +The system installed on your development station certainly already has +a compilation toolchain that you can use to compile an application +that runs on your system. If you're using a PC, your compilation +toolchain runs on an x86 processor and generates code for an x86 +processor. Under most Linux systems, the compilation toolchain uses +the GNU libc (glibc) as the C standard library. This compilation +toolchain is called the "host compilation toolchain". The machine on +which it is running, and on which you're working, is called the "host +system" footnote:[This terminology differs from what is used by GNU +configure, where the host is the machine on which the application will +run (which is usually the same as target)]. + +The compilation toolchain is provided by your distribution, and +Buildroot has nothing to do with it (other than using it to build a +cross-compilation toolchain and other tools that are run on the +development host). + +As said above, the compilation toolchain that comes with your system +runs on and generates code for the processor in your host system. As +your embedded system has a different processor, you need a +cross-compilation toolchain - a compilation toolchain that runs on +your _host system_ but generates code for your _target system_ (and +target processor). For example, if your host system uses x86 and your +target system uses ARM, the regular compilation toolchain on your host +runs on x86 and generates code for x86, while the cross-compilation +toolchain runs on x86 and generates code for ARM. + +Buildroot provides two solutions for the cross-compilation toolchain: + + * The *internal toolchain backend*, called +Buildroot toolchain+ in + the configuration interface. + + * The *external toolchain backend*, called +External toolchain+ in + the configuration interface. + +The choice between these two solutions is done using the +Toolchain +Type+ option in the +Toolchain+ menu. Once one solution has been +chosen, a number of configuration options appear, they are detailed in +the following sections. + +[[internal-toolchain-backend]] +==== Internal toolchain backend + +The _internal toolchain backend_ is the backend where Buildroot builds +by itself a cross-compilation toolchain, before building the userspace +applications and libraries for your target embedded system. + +This backend supports several C libraries: +http://www.uclibc-ng.org[uClibc-ng], +http://www.gnu.org/software/libc/libc.html[glibc] and +http://www.musl-libc.org[musl]. + +Once you have selected this backend, a number of options appear. The +most important ones allow to: + + * Change the version of the Linux kernel headers used to build the + toolchain. This item deserves a few explanations. In the process of + building a cross-compilation toolchain, the C library is being + built. This library provides the interface between userspace + applications and the Linux kernel. In order to know how to "talk" + to the Linux kernel, the C library needs to have access to the + _Linux kernel headers_ (i.e. the +.h+ files from the kernel), which + define the interface between userspace and the kernel (system + calls, data structures, etc.). Since this interface is backward + compatible, the version of the Linux kernel headers used to build + your toolchain do not need to match _exactly_ the version of the + Linux kernel you intend to run on your embedded system. They only + need to have a version equal or older to the version of the Linux + kernel you intend to run. If you use kernel headers that are more + recent than the Linux kernel you run on your embedded system, then + the C library might be using interfaces that are not provided by + your Linux kernel. + + * Change the version of the GCC compiler, binutils and the C library. + + * Select a number of toolchain options (uClibc only): whether the + toolchain should have RPC support (used mainly for NFS), + wide-char support, locale support (for internationalization), + C++ support or thread support. Depending on which options you choose, + the number of userspace applications and libraries visible in + Buildroot menus will change: many applications and libraries require + certain toolchain options to be enabled. Most packages show a comment + when a certain toolchain option is required to be able to enable + those packages. If needed, you can further refine the uClibc + configuration by running +make uclibc-menuconfig+. Note however that + all packages in Buildroot are tested against the default uClibc + configuration bundled in Buildroot: if you deviate from this + configuration by removing features from uClibc, some packages may no + longer build. + +It is worth noting that whenever one of those options is modified, +then the entire toolchain and system must be rebuilt. See +xref:full-rebuild[]. + +Advantages of this backend: + +* Well integrated with Buildroot +* Fast, only builds what's necessary + +Drawbacks of this backend: + +* Rebuilding the toolchain is needed when doing +make clean+, which + takes time. If you're trying to reduce your build time, consider + using the _External toolchain backend_. + +[[external-toolchain-backend]] +==== External toolchain backend + +The _external toolchain backend_ allows to use existing pre-built +cross-compilation toolchains. Buildroot knows about a number of +well-known cross-compilation toolchains (from +http://www.linaro.org[Linaro] for ARM, +http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/[Sourcery +CodeBench] for ARM, x86-64, PowerPC, and MIPS, and is capable of +downloading them automatically, or it can be pointed to a custom +toolchain, either available for download or installed locally. + +Then, you have three solutions to use an external toolchain: + +* Use a predefined external toolchain profile, and let Buildroot + download, extract and install the toolchain. Buildroot already knows + about a few CodeSourcery and Linaro toolchains. Just select the + toolchain profile in +Toolchain+ from the available ones. This is + definitely the easiest solution. + +* Use a predefined external toolchain profile, but instead of having + Buildroot download and extract the toolchain, you can tell Buildroot + where your toolchain is already installed on your system. Just + select the toolchain profile in +Toolchain+ through the available + ones, unselect +Download toolchain automatically+, and fill the + +Toolchain path+ text entry with the path to your cross-compiling + toolchain. + +* Use a completely custom external toolchain. This is particularly + useful for toolchains generated using crosstool-NG or with Buildroot + itself. To do this, select the +Custom toolchain+ solution in the + +Toolchain+ list. You need to fill the +Toolchain path+, +Toolchain + prefix+ and +External toolchain C library+ options. Then, you have + to tell Buildroot what your external toolchain supports. If your + external toolchain uses the 'glibc' library, you only have to tell + whether your toolchain supports C\++ or not and whether it has + built-in RPC support. If your external toolchain uses the 'uClibc' + library, then you have to tell Buildroot if it supports RPC, + wide-char, locale, program invocation, threads and C++. + At the beginning of the execution, Buildroot will tell you if + the selected options do not match the toolchain configuration. + +Our external toolchain support has been tested with toolchains from +CodeSourcery and Linaro, toolchains generated by +http://crosstool-ng.org[crosstool-NG], and toolchains generated by +Buildroot itself. In general, all toolchains that support the +'sysroot' feature should work. If not, do not hesitate to contact the +developers. + +We do not support toolchains or SDK generated by OpenEmbedded or +Yocto, because these toolchains are not pure toolchains (i.e. just the +compiler, binutils, the C and C++ libraries). Instead these toolchains +come with a very large set of pre-compiled libraries and +programs. Therefore, Buildroot cannot import the 'sysroot' of the +toolchain, as it would contain hundreds of megabytes of pre-compiled +libraries that are normally built by Buildroot. + +We also do not support using the distribution toolchain (i.e. the +gcc/binutils/C library installed by your distribution) as the +toolchain to build software for the target. This is because your +distribution toolchain is not a "pure" toolchain (i.e. only with the +C/C++ library), so we cannot import it properly into the Buildroot +build environment. So even if you are building a system for a x86 or +x86_64 target, you have to generate a cross-compilation toolchain with +Buildroot or crosstool-NG. + +If you want to generate a custom toolchain for your project, that can +be used as an external toolchain in Buildroot, our recommendation is +to build it either with Buildroot itself (see +xref:build-toolchain-with-buildroot[]) or with +http://crosstool-ng.org[crosstool-NG]. + +Advantages of this backend: + +* Allows to use well-known and well-tested cross-compilation + toolchains. + +* Avoids the build time of the cross-compilation toolchain, which is + often very significant in the overall build time of an embedded + Linux system. + +Drawbacks of this backend: + +* If your pre-built external toolchain has a bug, may be hard to get a + fix from the toolchain vendor, unless you build your external + toolchain by yourself using Buildroot or Crosstool-NG. + +[[build-toolchain-with-buildroot]] +==== Build an external toolchain with Buildroot + +The Buildroot internal toolchain option can be used to create an +external toolchain. Here are a series of steps to build an internal +toolchain and package it up for reuse by Buildroot itself (or other +projects). + +Create a new Buildroot configuration, with the following details: + +* Select the appropriate *Target options* for your target CPU + architecture + +* In the *Toolchain* menu, keep the default of *Buildroot toolchain* + for *Toolchain type*, and configure your toolchain as desired + +* In the *System configuration* menu, select *None* as the *Init + system* and *none* as */bin/sh* + +* In the *Target packages* menu, disable *BusyBox* + +* In the *Filesystem images* menu, disable *tar the root filesystem* + +Then, we can trigger the build, and also ask Buildroot to generate a +SDK. This will conveniently generate for us a tarball which contains +our toolchain: + +----- +make sdk +----- + +This produces the SDK tarball in +$(O)/images+, with a name similar to ++arm-buildroot-linux-uclibcgnueabi_sdk-buildroot.tar.gz+. Save this +tarball, as it is now the toolchain that you can re-use as an external +toolchain in other Buildroot projects. + +In those other Buildroot projects, in the *Toolchain* menu: + +* Set *Toolchain type* to *External toolchain* + +* Set *Toolchain* to *Custom toolchain* + +* Set *Toolchain origin* to *Toolchain to be downloaded and installed* + +* Set *Toolchain URL* to +file:///path/to/your/sdk/tarball.tar.gz+ + +===== External toolchain wrapper + +When using an external toolchain, Buildroot generates a wrapper program, +that transparently passes the appropriate options (according to the +configuration) to the external toolchain programs. In case you need to +debug this wrapper to check exactly what arguments are passed, you can +set the environment variable +BR2_DEBUG_WRAPPER+ to either one of: + +* +0+, empty or not set: no debug + +* +1+: trace all arguments on a single line + +* +2+: trace one argument per line + +=== /dev management + +On a Linux system, the +/dev+ directory contains special files, called +_device files_, that allow userspace applications to access the +hardware devices managed by the Linux kernel. Without these _device +files_, your userspace applications would not be able to use the +hardware devices, even if they are properly recognized by the Linux +kernel. + +Under +System configuration+, +/dev management+, Buildroot offers four +different solutions to handle the +/dev+ directory : + + * The first solution is *Static using device table*. This is the old + classical way of handling device files in Linux. With this method, + the device files are persistently stored in the root filesystem + (i.e. they persist across reboots), and there is nothing that will + automatically create and remove those device files when hardware + devices are added or removed from the system. Buildroot therefore + creates a standard set of device files using a _device table_, the + default one being stored in +system/device_table_dev.txt+ in the + Buildroot source code. This file is processed when Buildroot + generates the final root filesystem image, and the _device files_ + are therefore not visible in the +output/target+ directory. The + +BR2_ROOTFS_STATIC_DEVICE_TABLE+ option allows to change the + default device table used by Buildroot, or to add an additional + device table, so that additional _device files_ are created by + Buildroot during the build. So, if you use this method, and a + _device file_ is missing in your system, you can for example create + a +board///device_table_dev.txt+ file + that contains the description of your additional _device files_, + and then you can set +BR2_ROOTFS_STATIC_DEVICE_TABLE+ to + +system/device_table_dev.txt + board///device_table_dev.txt+. For more + details about the format of the device table file, see + xref:makedev-syntax[]. + + * The second solution is *Dynamic using devtmpfs only*. _devtmpfs_ is + a virtual filesystem inside the Linux kernel that has been + introduced in kernel 2.6.32 (if you use an older kernel, it is not + possible to use this option). When mounted in +/dev+, this virtual + filesystem will automatically make _device files_ appear and + disappear as hardware devices are added and removed from the + system. This filesystem is not persistent across reboots: it is + filled dynamically by the kernel. Using _devtmpfs_ requires the + following kernel configuration options to be enabled: + +CONFIG_DEVTMPFS+ and +CONFIG_DEVTMPFS_MOUNT+. When Buildroot is in + charge of building the Linux kernel for your embedded device, it + makes sure that those two options are enabled. However, if you + build your Linux kernel outside of Buildroot, then it is your + responsibility to enable those two options (if you fail to do so, + your Buildroot system will not boot). + + * The third solution is *Dynamic using devtmpfs + mdev*. This method + also relies on the _devtmpfs_ virtual filesystem detailed above (so + the requirement to have +CONFIG_DEVTMPFS+ and + +CONFIG_DEVTMPFS_MOUNT+ enabled in the kernel configuration still + apply), but adds the +mdev+ userspace utility on top of it. +mdev+ + is a program part of BusyBox that the kernel will call every time a + device is added or removed. Thanks to the +/etc/mdev.conf+ + configuration file, +mdev+ can be configured to for example, set + specific permissions or ownership on a device file, call a script + or application whenever a device appears or disappear, + etc. Basically, it allows _userspace_ to react on device addition + and removal events. +mdev+ can for example be used to automatically + load kernel modules when devices appear on the system. +mdev+ is + also important if you have devices that require a firmware, as it + will be responsible for pushing the firmware contents to the + kernel. +mdev+ is a lightweight implementation (with fewer + features) of +udev+. For more details about +mdev+ and the syntax + of its configuration file, see + http://git.busybox.net/busybox/tree/docs/mdev.txt. + + * The fourth solution is *Dynamic using devtmpfs + eudev*. This + method also relies on the _devtmpfs_ virtual filesystem detailed + above, but adds the +eudev+ userspace daemon on top of it. +eudev+ + is a daemon that runs in the background, and gets called by the + kernel when a device gets added or removed from the system. It is a + more heavyweight solution than +mdev+, but provides higher + flexibility. +eudev+ is a standalone version of +udev+, the + original userspace daemon used in most desktop Linux distributions, + which is now part of Systemd. For more details, see + http://en.wikipedia.org/wiki/Udev. + +The Buildroot developers recommendation is to start with the *Dynamic +using devtmpfs only* solution, until you have the need for userspace +to be notified when devices are added/removed, or if firmwares are +needed, in which case *Dynamic using devtmpfs + mdev* is usually a +good solution. + +Note that if +systemd+ is chosen as init system, /dev management will +be performed by the +udev+ program provided by +systemd+. + +[[init-system]] +=== init system + +The _init_ program is the first userspace program started by the +kernel (it carries the PID number 1), and is responsible for starting +the userspace services and programs (for example: web server, +graphical applications, other network servers, etc.). + +Buildroot allows to use three different types of init systems, which +can be chosen from +System configuration+, +Init system+: + + * The first solution is *BusyBox*. Amongst many programs, BusyBox has + an implementation of a basic +init+ program, which is sufficient + for most embedded systems. Enabling the +BR2_INIT_BUSYBOX+ will + ensure BusyBox will build and install its +init+ program. This is + the default solution in Buildroot. The BusyBox +init+ program will + read the +/etc/inittab+ file at boot to know what to do. The syntax + of this file can be found in + http://git.busybox.net/busybox/tree/examples/inittab (note that + BusyBox +inittab+ syntax is special: do not use a random +inittab+ + documentation from the Internet to learn about BusyBox + +inittab+). The default +inittab+ in Buildroot is stored in + +system/skeleton/etc/inittab+. Apart from mounting a few important + filesystems, the main job the default inittab does is to start the + +/etc/init.d/rcS+ shell script, and start a +getty+ program (which + provides a login prompt). + + * The second solution is *systemV*. This solution uses the old + traditional _sysvinit_ program, packed in Buildroot in + +package/sysvinit+. This was the solution used in most desktop + Linux distributions, until they switched to more recent + alternatives such as Upstart or Systemd. +sysvinit+ also works with + an +inittab+ file (which has a slightly different syntax than the + one from BusyBox). The default +inittab+ installed with this init + solution is located in +package/sysvinit/inittab+. + + * The third solution is *systemd*. +systemd+ is the new generation + init system for Linux. It does far more than traditional _init_ + programs: aggressive parallelization capabilities, uses socket and + D-Bus activation for starting services, offers on-demand starting + of daemons, keeps track of processes using Linux control groups, + supports snapshotting and restoring of the system state, + etc. +systemd+ will be useful on relatively complex embedded + systems, for example the ones requiring D-Bus and services + communicating between each other. It is worth noting that +systemd+ + brings a fairly big number of large dependencies: +dbus+, +udev+ + and more. For more details about +systemd+, see + http://www.freedesktop.org/wiki/Software/systemd. + +The solution recommended by Buildroot developers is to use the +*BusyBox init* as it is sufficient for most embedded +systems. *systemd* can be used for more complex situations. diff --git a/docs/manual/contribute.txt b/docs/manual/contribute.txt new file mode 100644 index 000000000..e588c69be --- /dev/null +++ b/docs/manual/contribute.txt @@ -0,0 +1,716 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +== Contributing to Buildroot + +There are many ways in which you can contribute to Buildroot: analyzing +and fixing bugs, analyzing and fixing package build failures detected by +the autobuilders, testing and reviewing patches sent by other +developers, working on the items in our TODO list and sending your own +improvements to Buildroot or its manual. The following sections give a +little more detail on each of these items. + +If you are interested in contributing to Buildroot, the first thing you +should do is to subscribe to the Buildroot mailing list. This list is +the main way of interacting with other Buildroot developers and to send +contributions to. If you aren't subscribed yet, then refer to +xref:community-resources[] for the subscription link. + +If you are going to touch the code, it is highly recommended to use a +git repository of Buildroot, rather than starting from an extracted +source code tarball. Git is the easiest way to develop from and directly +send your patches to the mailing list. Refer to xref:getting-buildroot[] +for more information on obtaining a Buildroot git tree. + +=== Reproducing, analyzing and fixing bugs + +A first way of contributing is to have a look at the open bug reports in +the https://bugs.buildroot.org/buglist.cgi?product=buildroot[Buildroot bug +tracker]. As we strive to keep the bug count as small as possible, all +help in reproducing, analyzing and fixing reported bugs is more than +welcome. Don't hesitate to add a comment to bug reports reporting your +findings, even if you don't yet see the full picture. + +=== Analyzing and fixing autobuild failures + +The Buildroot autobuilders are a set of build machines that continuously +run Buildroot builds based on random configurations. This is done for +all architectures supported by Buildroot, with various toolchains, and +with a random selection of packages. With the large commit activity on +Buildroot, these autobuilders are a great help in detecting problems +very early after commit. + +All build results are available at http://autobuild.buildroot.org[], +statistics are at http://autobuild.buildroot.org/stats.php[]. Every day, +an overview of all failed packages is sent to the mailing list. + +Detecting problems is great, but obviously these problems have to be +fixed as well. Your contribution is very welcome here! There are +basically two things that can be done: + +- Analyzing the problems. The daily summary mails do not contain details + about the actual failures: in order to see what's going on you have to + open the build log and check the last output. Having someone doing + this for all packages in the mail is very useful for other developers, + as they can make a quick initial analysis based on this output alone. + +- Fixing a problem. When fixing autobuild failures, you should follow + these steps: + . Check if you can reproduce the problem by building with the same + configuration. You can do this manually, or use the + http://git.buildroot.org/buildroot-test/tree/utils/br-reproduce-build[br-reproduce-build] + script that will automatically clone a Buildroot git repository, + checkout the correct revision, download and set the right + configuration, and start the build. + . Analyze the problem and create a fix. + . Verify that the problem is really fixed by starting from a clean + Buildroot tree and only applying your fix. + . Send the fix to the Buildroot mailing list (see + xref:submitting-patches[]). In case you created a patch against the + package sources, you should also send the patch upstream so that the + problem will be fixed in a later release, and the patch in Buildroot + can be removed. + In the commit message of a patch fixing an autobuild failure, add a + reference to the build result directory, as follows: +--------------------- +Fixes: http://autobuild.buildroot.org/results/51000a9d4656afe9e0ea6f07b9f8ed374c2e4069 +--------------------- + +=== Reviewing and testing patches + +With the amount of patches sent to the mailing list each day, the +maintainer has a very hard job to judge which patches are ready to apply +and which ones aren't. Contributors can greatly help here by reviewing +and testing these patches. + +In the review process, do not hesitate to respond to patch submissions +for remarks, suggestions or anything that will help everyone to +understand the patches and make them better. Please use internet +style replies in plain text emails when responding to patch +submissions. + +To indicate approval of a patch, there are three formal tags that keep +track of this approval. To add your tag to a patch, reply to it with the +approval tag below the original author's Signed-off-by line. These tags +will be picked up automatically by patchwork (see +xref:apply-patches-patchwork[]) and will be part of the commit log when +the patch is accepted. + +Tested-by:: Indicates that the patch has been tested successfully. + You are encouraged to specify what kind of testing you performed + (compile-test on architecture X and Y, runtime test on target A, + ...). This additional information helps other testers and the + maintainer. + +Reviewed-by:: Indicates that you code-reviewed the patch and did your + best in spotting problems, but you are not sufficiently familiar with + the area touched to provide an Acked-by tag. This means that there + may be remaining problems in the patch that would be spotted by + someone with more experience in that area. Should such problems be + detected, your Reviewed-by tag remains appropriate and you cannot + be blamed. + +Acked-by:: Indicates that you code-reviewed the patch and you are + familiar enough with the area touched to feel that the patch can be + committed as-is (no additional changes required). In case it later + turns out that something is wrong with the patch, your Acked-by could + be considered inappropriate. The difference between Acked-by and + Reviewed-by is thus mainly that you are prepared to take the blame on + Acked patches, but not on Reviewed ones. + +If you reviewed a patch and have comments on it, you should simply reply +to the patch stating these comments, without providing a Reviewed-by or +Acked-by tag. These tags should only be provided if you judge the patch +to be good as it is. + +It is important to note that neither Reviewed-by nor Acked-by imply +that testing has been performed. To indicate that you both reviewed and +tested the patch, provide two separate tags (Reviewed/Acked-by and +Tested-by). + +Note also that _any developer_ can provide Tested/Reviewed/Acked-by +tags, without exception, and we encourage everyone to do this. Buildroot +does not have a defined group of _core_ developers, it just so happens +that some developers are more active than others. The maintainer will +value tags according to the track record of their submitter. Tags +provided by a regular contributor will naturally be trusted more than +tags provided by a newcomer. As you provide tags more regularly, your +'trustworthiness' (in the eyes of the maintainer) will go up, but _any_ +tag provided is valuable. + +Buildroot's Patchwork website can be used to pull in patches for testing +purposes. Please see xref:apply-patches-patchwork[] for more +information on using Buildroot's Patchwork website to apply patches. + +[[apply-patches-patchwork]] +==== Applying Patches from Patchwork + +The main use of Buildroot's Patchwork website for a developer is for +pulling in patches into their local git repository for testing +purposes. + +When browsing patches in the patchwork management interface, an +mbox+ +link is provided at the top of the page. Copy this link address and +run the following commands: + +--------------------- +$ git checkout -b +$ wget -O - | git am +--------------------- + +Another option for applying patches is to create a bundle. A bundle is +a set of patches that you can group together using the patchwork +interface. Once the bundle is created and the bundle is made public, +you can copy the +mbox+ link for the bundle and apply the bundle +using the above commands. + + +=== Work on items from the TODO list + +If you want to contribute to Buildroot but don't know where to start, +and you don't like any of the above topics, you can always work on items +from the http://elinux.org/Buildroot#Todo_list[Buildroot TODO list]. +Don't hesitate to discuss an item first on the mailing list or on IRC. +Do edit the wiki to indicate when you start working on an item, so we +avoid duplicate efforts. + +[[submitting-patches]] +=== Submitting patches + +[NOTE] +_Please, do not attach patches to bugs, send them to the mailing list +instead_. + +If you made some changes to Buildroot and you would like to contribute +them to the Buildroot project, proceed as follows. + +==== The formatting of a patch + +We expect patches to be formatted in a specific way. This is necessary +to make it easy to review patches, to be able to apply them easily to +the git repository, to make it easy to find back in the history how +and why things have changed, and to make it possible to use +git +bisect+ to locate the origin of a problem. + +First of all, it is essential that the patch has a good commit +message. The commit message should start with a separate line with a +brief summary of the change, prefixed by the area touched by the +patch. A few examples of good commit titles: + +* +package/linuxptp: bump version to 2.0+ + +* +configs/imx23evk: bump Linux version to 4.19+ + +* +package/pkg-generic: postpone evaluation of dependency conditions+ + +* +boot/uboot: needs host-{flex,bison}+ + +* +support/testing: add python-ubjson tests+ + +The description that follows the prefix should start with a lower case +letter (i.e "bump", "needs", "postpone", "add" in the above examples). + +Second, the body of the commit message should describe _why_ this +change is needed, and if necessary also give details about _how_ it +was done. When writing the commit message, think of how the reviewers +will read it, but also think about how you will read it when you look +at this change again a few years down the line. + +Third, the patch itself should do only one change, but do it +completely. Two unrelated or weakly related changes should usually be +done in two separate patches. This usually means that a patch affects +only a single package. If several changes are related, it is often +still possible to split them up in small patches and apply them in a +specific order. Small patches make it easier to review, and often +make it easier to understand afterwards why a change was done. +However, each patch must be complete. It is not allowed that the +build is broken when only the first but not the second patch is +applied. This is necessary to be able to use +git bisect+ afterwards. + +Of course, while you're doing your development, you're probably going +back and forth between packages, and certainly not committing things +immediately in a way that is clean enough for submission. So most +developers rewrite the history of commits to produce a clean set of +commits that is appropriate for submission. To do this, you need to +use _interactive rebasing_. You can learn about it +https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History[in the Pro +Git book]. Sometimes, it is even easier to discard you history with ++git reset --soft origin/master+ and select individual changes with ++git add -i+ or +git add -p+. + +Finally, the patch should be signed off. This is done by adding ++Signed-off-by: Your Real Name + at the end of the +commit message. +git commit -s+ does that for you, if configured +properly. The +Signed-off-by+ tag means that you publish the patch +under the Buildroot license (i.e. GPL-2.0+, except for package patches, +which have the upstream license), and that you are allowed to do so. +See http://developercertificate.org/[the Developer Certificate of +Origin] for details. + +When adding new packages, you should submit every package in a +separate patch. This patch should have the update to ++package/Config.in+, the package +Config.in+ file, the +.mk+ file, the ++.hash+ file, any init script, and all package patches. If the package +has many sub-options, these are sometimes better added as separate +follow-up patches. The summary line should be something like ++: new package+. The body of the commit message can be +empty for simple packages, or it can contain the description of the +package (like the Config.in help text). If anything special has to be +done to build the package, this should also be explained explicitly in +the commit message body. + +When you bump a package to a new version, you should also submit a +separate patch for each package. Don't forget to update the +.hash+ +file, or add it if it doesn't exist yet. Also don't forget to check if +the +_LICENSE+ and +_LICENSE_FILES+ are still valid. The summary line +should be something like +: bump to version +. If the new version only contains security updates compared +to the existing one, the summary should be +: security +bump to version + and the commit message body should show +the CVE numbers that are fixed. If some package patches can be removed +in the new version, it should be explained explicitly why they can be +removed, preferably with the upstream commit ID. Also any other +required changes should be explained explicitly, like configure +options that no longer exist or are no longer needed. + +If you are interested in getting notified of build failures and of +further changes in the packages you added or modified, please add +yourself to the DEVELOPERS file. This should be done in the same patch +creating or modifying the package. See xref:DEVELOPERS[the DEVELOPERS file] +for more information. + +Buildroot provides a handy tool to check for common coding style +mistakes on files you created or modified, called +check-package+ (see +xref:check-package[] for more information). + +==== Preparing a patch series + +Starting from the changes committed in your local git view, _rebase_ +your development branch on top of the upstream tree before generating +a patch set. To do so, run: + +--------------------- +$ git fetch --all --tags +$ git rebase origin/master +--------------------- + +Now, you are ready to generate then submit your patch set. + +To generate it, run: + +--------------------- +$ git format-patch -M -n -s -o outgoing origin/master +--------------------- + +This will generate patch files in the +outgoing+ subdirectory, +automatically adding the +Signed-off-by+ line. + +Once patch files are generated, you can review/edit the commit message +before submitting them, using your favorite text editor. + +Buildroot provides a handy tool to know to whom your patches should be +sent, called +get-developers+ (see xref:DEVELOPERS[] for more +information). This tool reads your patches and outputs the appropriate ++git send-email+ command to use: + +--------------------- +$ ./utils/get-developers outgoing/* +--------------------- + +Use the output of +get-developers+ to send your patches: + +--------------------- +$ git send-email --to buildroot@buildroot.org --cc bob --cc alice outgoing/* +--------------------- + +Alternatively, +get-developers -e+ can be used directly with the ++--cc-cmd+ argument to +git send-email+ to automatically CC the +affected developers: + +--------------------- +$ git send-email --to buildroot@buildroot.org \ + --cc-cmd './utils/get-developers -e' origin/master +--------------------- + ++git+ can be configured to automatically do this out of the box with: + +--------------------- +$ git config sendemail.to buildroot@buildroot.org +$ git config sendemail.ccCmd "$(pwd)/utils/get-developers -e" +--------------------- + +And then just do: + +--------------------- +$ git send-email origin/master +--------------------- + +Note that +git+ should be configured to use your mail account. +To configure +git+, see +man git-send-email+ or google it. + +If you do not use +git send-email+, make sure posted *patches are not +line-wrapped*, otherwise they cannot easily be applied. In such a case, +fix your e-mail client, or better yet, learn to use +git send-email+. + +==== Cover letter + +If you want to present the whole patch set in a separate mail, add ++--cover-letter+ to the +git format-patch+ command (see +man +git-format-patch+ for further information). This will generate a +template for an introduction e-mail to your patch series. + +A 'cover letter' may be useful to introduce the changes you propose +in the following cases: + +* large number of commits in the series; + +* deep impact of the changes in the rest of the project; + +* RFC footnote:[RFC: (Request for comments) change proposal]; + +* whenever you feel it will help presenting your work, your choices, + the review process, etc. + +==== Patches for maintenance branches + +When fixing bugs on a maintenance branch, bugs should be fixed on the +master branch first. The commit log for such a patch may then contain a +post-commit note specifying what branches are affected: + +---- +package/foo: fix stuff + +Signed-off-by: Your Real Name +--- +Backport to: 2020.02.x, 2020.05.x +(2020.08.x not affected as the version was bumped) +---- + +Those changes will then be backported by a maintainer to the affected +branches. + +However, some bugs may apply only to a specific release, for example +because it is using an older version of a package. In that case, patches +should be based off the maintenance branch, and the patch subject prefix +must include the maintenance branch name (for example "[PATCH 2020.02.x]"). +This can be done with the +git format-patch+ flag +--subject-prefix+: + +--------------------- +$ git format-patch --subject-prefix "PATCH 2020.02.x" \ + -M -s -o outgoing origin/2020.02.x +--------------------- + +Then send the patches with +git send-email+, as described above. + +==== Patch revision changelog + +When improvements are requested, the new revision of each commit +should include a changelog of the modifications between each +submission. Note that when your patch series is introduced by a cover +letter, an overall changelog may be added to the cover letter in +addition to the changelog in the individual commits. +The best thing to rework a patch series is by interactive rebasing: ++git rebase -i origin/master+. Consult the git manual for more +information. + +When added to the individual commits, this changelog is added when +editing the commit message. Below the +Signed-off-by+ section, add ++---+ and your changelog. + +Although the changelog will be visible for the reviewers in the mail +thread, as well as in +https://patchwork.ozlabs.org/project/buildroot/list/[patchwork], +git+ +will automatically ignores lines below +---+ when the patch will be +merged. This is the intended behavior: the changelog is not meant to +be preserved forever in the +git+ history of the project. + +Hereafter the recommended layout: + +--------------- +Patch title: short explanation, max 72 chars + +A paragraph that explains the problem, and how it manifests itself. If +the problem is complex, it is OK to add more paragraphs. All paragraphs +should be wrapped at 72 characters. + +A paragraph that explains the root cause of the problem. Again, more +than one paragraph is OK. + +Finally, one or more paragraphs that explain how the problem is solved. +Don't hesitate to explain complex solutions in detail. + +Signed-off-by: John DOE + +--- +Changes v2 -> v3: + - foo bar (suggested by Jane) + - bar buz + +Changes v1 -> v2: + - alpha bravo (suggested by John) + - charly delta +--------------- + +Any patch revision should include the version number. The version number +is simply composed of the letter +v+ followed by an +integer+ greater or +equal to two (i.e. "PATCH v2", "PATCH v3" ...). + +This can be easily handled with +git format-patch+ by using the option ++--subject-prefix+: + +--------------------- +$ git format-patch --subject-prefix "PATCH v4" \ + -M -s -o outgoing origin/master +--------------------- + +Since git version 1.8.1, you can also use +-v + (where is the +version number): + +--------------------- +$ git format-patch -v4 -M -s -o outgoing origin/master +--------------------- + +When you provide a new version of a patch, please mark the old one as +superseded in +https://patchwork.ozlabs.org/project/buildroot/list/[patchwork]. You +need to create an account on +https://patchwork.ozlabs.org/project/buildroot/list/[patchwork] to be +able to modify the status of your patches. Note that you can only change +the status of patches you submitted yourself, which means the email +address you register in +https://patchwork.ozlabs.org/project/buildroot/list/[patchwork] should +match the one you use for sending patches to the mailing list. + +You can also add the +--in-reply-to + option when +submitting a patch to the mailing list. The id of the mail to reply to +can be found under the "Message Id" tag on +https://patchwork.ozlabs.org/project/buildroot/list/[patchwork]. The +advantage of *in-reply-to* is that patchwork will automatically mark +the previous version of the patch as superseded. + +[[reporting-bugs]] +=== Reporting issues/bugs or getting help + +Before reporting any issue, please check in +xref:community-resources[the mailing list archive] whether someone has +already reported and/or fixed a similar problem. + +However you choose to report bugs or get help, either by +opening a bug in the xref:community-resources[bug tracker] or by +xref:community-resources[sending a mail to the mailing list], there are +a number of details to provide in order to help people reproduce and +find a solution to the issue. + +Try to think as if you were trying to help someone else; in +that case, what would you need? + +Here is a short list of details to provide in such case: + +* host machine (OS/release) +* version of Buildroot +* target for which the build fails +* package(s) for which the build fails +* the command that fails and its output +* any information you think that may be relevant + +Additionally, you should add the +.config+ file (or if you know how, a ++defconfig+; see xref:customize-store-buildroot-config[]). + +If some of these details are too large, do not hesitate to use a +pastebin service. Note that not all available pastebin services will +preserve Unix-style line terminators when downloading raw pastes. +Following pastebin services are known to work correctly: +- https://gist.github.com/ +- http://code.bulix.org/ + +=== Using the runtime tests framework + +Buildroot includes a run-time testing framework built upon Python +scripting and QEMU runtime execution. The goals of the framework are +the following: + +* build a well defined Buildroot configuration +* optionally, verify some properties of the build output +* optionally, boot the build results under Qemu, and verify that a + given feature is working as expected + +The entry point to use the runtime tests framework is the ++support/testing/run-tests+ tool, which has a series of options +documented in the tool's help '-h' description. Some common options +include setting the download folder, the output folder, keeping build +output, and for multiple test cases, you can set the JLEVEL for each. + +Here is an example walk through of running a test case. + +* For a first step, let us see what all the test case options are. The test +cases can be listed by executing +support/testing/run-tests -l+. These tests +can all be run individually during test development from the console. Both +one at a time and selectively as a group of a subset of tests. + +--------------------- +$ support/testing/run-tests -l +List of tests +test_run (tests.utils.test_check_package.TestCheckPackage) +test_run (tests.toolchain.test_external.TestExternalToolchainBuildrootMusl) ... ok +test_run (tests.toolchain.test_external.TestExternalToolchainBuildrootuClibc) ... ok +test_run (tests.toolchain.test_external.TestExternalToolchainCCache) ... ok +test_run (tests.toolchain.test_external.TestExternalToolchainCtngMusl) ... ok +test_run (tests.toolchain.test_external.TestExternalToolchainLinaroArm) ... ok +test_run (tests.toolchain.test_external.TestExternalToolchainSourceryArmv4) ... ok +test_run (tests.toolchain.test_external.TestExternalToolchainSourceryArmv5) ... ok +test_run (tests.toolchain.test_external.TestExternalToolchainSourceryArmv7) ... ok +[snip] +test_run (tests.init.test_systemd.TestInitSystemSystemdRoFull) ... ok +test_run (tests.init.test_systemd.TestInitSystemSystemdRoIfupdown) ... ok +test_run (tests.init.test_systemd.TestInitSystemSystemdRoNetworkd) ... ok +test_run (tests.init.test_systemd.TestInitSystemSystemdRwFull) ... ok +test_run (tests.init.test_systemd.TestInitSystemSystemdRwIfupdown) ... ok +test_run (tests.init.test_systemd.TestInitSystemSystemdRwNetworkd) ... ok +test_run (tests.init.test_busybox.TestInitSystemBusyboxRo) ... ok +test_run (tests.init.test_busybox.TestInitSystemBusyboxRoNet) ... ok +test_run (tests.init.test_busybox.TestInitSystemBusyboxRw) ... ok +test_run (tests.init.test_busybox.TestInitSystemBusyboxRwNet) ... ok + +Ran 157 tests in 0.021s + +OK +--------------------- + +* Then, to run one test case: + +--------------------- +$ support/testing/run-tests -d dl -o output_folder -k tests.init.test_busybox.TestInitSystemBusyboxRw +15:03:26 TestInitSystemBusyboxRw Starting +15:03:28 TestInitSystemBusyboxRw Building +15:08:18 TestInitSystemBusyboxRw Building done +15:08:27 TestInitSystemBusyboxRw Cleaning up +. +Ran 1 test in 301.140s + +OK +--------------------- + +The standard output indicates if the test is successful or not. By +default, the output folder for the test is deleted automatically +unless the option +-k+ is passed to *keep* the output directory. + +==== Creating a test case + +Within the Buildroot repository, the testing framework is organized at the +top level in +support/testing/+ by folders of +conf+, +infra+ and +tests+. +All the test cases live under the +tests+ folder and are organized in various +folders representing the category of test. + +The best way to get familiar with how to create a test case is to look +at a few of the basic file system +support/testing/tests/fs/+ and init ++support/testing/tests/init/+ test scripts. Those tests give good +examples of a basic tests that include both checking the build +results, and doing runtime tests. There are other more advanced cases +that use things like nested +br2-external+ folders to provide +skeletons and additional packages. + +Creating a basic test case involves: + +* Defining a test class that inherits from +infra.basetest.BRTest+ + +* Defining the +config+ member of the test class, to the Buildroot + configuration to build for this test case. It can optionally rely on + configuration snippets provided by the runtime test infrastructure: + +infra.basetest.BASIC_TOOLCHAIN_CONFIG+ to get a basic + architecture/toolchain configuration, and + +infra.basetest.MINIMAL_CONFIG+ to not build any filesystem. The + advantage of using +infra.basetest.BASIC_TOOLCHAIN_CONFIG+ is that a + matching Linux kernel image is provided, which allows to boot the + resulting image in Qemu without having to build a Linux kernel image + as part of the test case, therefore significant decreasing the build + time required for the test case. + +* Implementing a +def test_run(self):+ function to implement the + actual tests to run after the build has completed. They may be tests + that verify the build output, by running command on the host using + the +run_cmd_on_host()+ helper function. Or they may boot the + generated system in Qemu using the +Emulator+ object available as + +self.emulator+ in the test case. For example +self.emulator.boot()+ + allows to boot the system in Qemu, +self.emulator.login()+ allows to + login, +self.emulator.run()+ allows to run shell commands inside + Qemu. + +After creating the test script, add yourself to the +DEVELOPERS+ file to +be the maintainer of that test case. + +==== Debugging a test case + +When a test case runs, the +output_folder+ will contain the following: + +--------------------- +$ ls output_folder/ +TestInitSystemBusyboxRw/ +TestInitSystemBusyboxRw-build.log +TestInitSystemBusyboxRw-run.log +--------------------- + ++TestInitSystemBusyboxRw/+ is the Buildroot output directory, and it +is preserved only if the +-k+ option is passed. + ++TestInitSystemBusyboxRw-build.log+ is the log of the Buildroot build. + ++TestInitSystemBusyboxRw-run.log+ is the log of the Qemu boot and +test. This file will only exist if the build was successful and the +test case involves booting under Qemu. + +If you want to manually run Qemu to do manual tests of the build +result, the first few lines of +TestInitSystemBusyboxRw-run.log+ +contain the Qemu command line to use. + +You can also make modifications to the current sources inside the ++output_folder+ (e.g. for debug purposes) and rerun the standard +Buildroot make targets (in order to regenerate the complete image with +the new modifications) and then rerun the test. + +==== Runtime tests and Gitlab CI + +All runtime tests are regularly executed by Buildroot Gitlab CI +infrastructure, see .gitlab.yml and +https://gitlab.com/buildroot.org/buildroot/-/jobs. + +You can also use Gitlab CI to test your new test cases, or verify that +existing tests continue to work after making changes in Buildroot. + +In order to achieve this, you need to create a fork of the Buildroot +project on Gitlab, and be able to push branches to your Buildroot fork +on Gitlab. + +The name of the branch that you push will determine if a Gitlab CI +pipeline will be triggered or not, and for which test cases. + +In the examples below, the component of the branch name is an +arbitrary string you choose. + +* To trigger all run-test test case jobs, push a branch that ends with + +-runtime-tests+: + +--------------------- + $ git push gitlab HEAD:-runtime-tests +--------------------- + +* To trigger one or several test case jobs, push a branch that ends + with the complete test case name + (+tests.init.test_busybox.TestInitSystemBusyboxRo+) or with the name + of a category of tests (+tests.init.test_busybox+): + +--------------------- + $ git push gitlab HEAD:- +--------------------- + +Example to run one test: + +--------------------- + $ git push gitlab HEAD:foo-tests.init.test_busybox.TestInitSystemBusyboxRo +--------------------- + +Examples to run several tests part of the same group: + +--------------------- + $ git push gitlab HEAD:foo-tests.init.test_busybox + $ git push gitlab HEAD:foo-tests.init +--------------------- diff --git a/docs/manual/customize-configuration.txt b/docs/manual/customize-configuration.txt new file mode 100644 index 000000000..fa8f45467 --- /dev/null +++ b/docs/manual/customize-configuration.txt @@ -0,0 +1,64 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +[[customize-store-buildroot-config]] +=== Storing the Buildroot configuration + +The Buildroot configuration can be stored using the command + +make savedefconfig+. + +This strips the Buildroot configuration down by removing configuration +options that are at their default value. The result is stored in a file +called +defconfig+. If you want to save it in another place, change the ++BR2_DEFCONFIG+ option in the Buildroot configuration itself, or call +make with +make savedefconfig BR2_DEFCONFIG=+. + +The recommended place to store this defconfig is ++configs/_defconfig+. If you follow this recommendation, the +configuration will be listed in +make list-defconfigs+ and can be set +again by running +make _defconfig+. + +Alternatively, you can copy the file to any other place and rebuild with ++make defconfig BR2_DEFCONFIG=+. + +[[customize-store-package-config]] +=== Storing the configuration of other components + +The configuration files for BusyBox, the Linux kernel, Barebox, U-Boot +and uClibc should be stored as well if changed. For each of these +components, a Buildroot configuration option exists to point to an input +configuration file, e.g. +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+. To store +their configuration, set these configuration options to a path where you +want to save the configuration files, and then use the helper targets +described below to actually store the configuration. + +As explained in xref:customize-dir-structure[], the recommended path to +store these configuration files is ++board///foo.config+. + +Make sure that you create a configuration file 'before' changing +the +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+ etc. options. Otherwise, +Buildroot will try to access this config file, which doesn't exist +yet, and will fail. You can create the configuration file by running ++make linux-menuconfig+ etc. + +Buildroot provides a few helper targets to make the saving of +configuration files easier. + +* +make linux-update-defconfig+ saves the linux configuration to the + path specified by +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+. It + simplifies the config file by removing default values. However, + this only works with kernels starting from 2.6.33. For earlier + kernels, use +make linux-update-config+. +* +make busybox-update-config+ saves the busybox configuration to the + path specified by +BR2_PACKAGE_BUSYBOX_CONFIG+. +* +make uclibc-update-config+ saves the uClibc configuration to the + path specified by +BR2_UCLIBC_CONFIG+. +* +make barebox-update-defconfig+ saves the barebox configuration to the + path specified by +BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE+. +* +make uboot-update-defconfig+ saves the U-Boot configuration to the + path specified by +BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE+. +* For at91bootstrap3, no helper exists so you have to copy the config + file manually to +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE+. + + diff --git a/docs/manual/customize-device-permission-tables.txt b/docs/manual/customize-device-permission-tables.txt new file mode 100644 index 000000000..02dd8ad98 --- /dev/null +++ b/docs/manual/customize-device-permission-tables.txt @@ -0,0 +1,30 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +[[customize-device-permission]] +==== Setting file permissions and ownership and adding custom devices nodes + +Sometimes it is needed to set specific permissions or ownership on files +or device nodes. For example, certain files may need to be owned by +root. Since the post-build scripts are not run as root, you cannot do +such changes from there unless you use an explicit fakeroot from the +post-build script. + +Instead, Buildroot provides support for so-called _permission tables_. +To use this feature, set config option +BR2_ROOTFS_DEVICE_TABLE+ to a +space-separated list of permission tables, regular text files following +the xref:makedev-syntax[makedev syntax]. + +If you are using a static device table (i.e. not using +devtmpfs+, ++mdev+, or +(e)udev+) then you can add device nodes using the same +syntax, in so-called _device tables_. To use this feature, set config +option +BR2_ROOTFS_STATIC_DEVICE_TABLE+ to a space-separated list of +device tables. + +As shown in xref:customize-dir-structure[], the recommended location for +such files is +board///+. + +It should be noted that if the specific permissions or device nodes are +related to a specific application, you should set variables ++FOO_PERMISSIONS+ and +FOO_DEVICES+ in the package's +.mk+ file instead +(see xref:generic-package-reference[]). diff --git a/docs/manual/customize-directory-structure.txt b/docs/manual/customize-directory-structure.txt new file mode 100644 index 000000000..a3a7ad4cb --- /dev/null +++ b/docs/manual/customize-directory-structure.txt @@ -0,0 +1,111 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +[[customize-dir-structure]] +=== Recommended directory structure + +When customizing Buildroot for your project, you will be creating one or +more project-specific files that need to be stored somewhere. While most +of these files could be placed in _any_ location as their path is to be +specified in the Buildroot configuration, the Buildroot developers +recommend a specific directory structure which is described in this +section. + +Orthogonal to this directory structure, you can choose _where_ you place +this structure itself: either inside the Buildroot tree, or outside of +it using a br2-external tree. Both options are valid, the choice is up +to you. + +----- ++-- board/ +| +-- / +| +-- / +| +-- linux.config +| +-- busybox.config +| +-- +| +-- post_build.sh +| +-- post_image.sh +| +-- rootfs_overlay/ +| | +-- etc/ +| | +-- +| +-- patches/ +| +-- foo/ +| | +-- +| +-- libbar/ +| +-- +| ++-- configs/ +| +-- _defconfig +| ++-- package/ +| +-- / +| +-- Config.in (if not using a br2-external tree) +| +-- .mk (if not using a br2-external tree) +| +-- package1/ +| | +-- Config.in +| | +-- package1.mk +| +-- package2/ +| +-- Config.in +| +-- package2.mk +| ++-- Config.in (if using a br2-external tree) ++-- external.mk (if using a br2-external tree) ++-- external.desc (if using a br2-external tree) +------ + +Details on the files shown above are given further in this chapter. + +Note: if you choose to place this structure outside of the Buildroot +tree but in a br2-external tree, the and possibly +components may be superfluous and can be left out. + +==== Implementing layered customizations + +It is quite common for a user to have several related projects that partly +need the same customizations. Instead of duplicating these +customizations for each project, it is recommended to use a layered +customization approach, as explained in this section. + +Almost all of the customization methods available in Buildroot, like +post-build scripts and root filesystem overlays, accept a +space-separated list of items. The specified items are always treated in +order, from left to right. By creating more than one such item, one for +the common customizations and another one for the really +project-specific customizations, you can avoid unnecessary duplication. +Each layer is typically embodied by a separate directory inside ++board//+. Depending on your projects, you could even introduce +more than two layers. + +An example directory structure for where a user has two customization +layers 'common' and 'fooboard' is: + +----- ++-- board/ + +-- / + +-- common/ + | +-- post_build.sh + | +-- rootfs_overlay/ + | | +-- ... + | +-- patches/ + | +-- ... + | + +-- fooboard/ + +-- linux.config + +-- busybox.config + +-- + +-- post_build.sh + +-- rootfs_overlay/ + | +-- ... + +-- patches/ + +-- ... +----- + +For example, if the user has the +BR2_GLOBAL_PATCH_DIR+ configuration +option set as: + +----- +BR2_GLOBAL_PATCH_DIR="board//common/patches board//fooboard/patches" +----- + +then first the patches from the 'common' layer would be applied, +followed by the patches from the 'fooboard' layer. diff --git a/docs/manual/customize-outside-br.txt b/docs/manual/customize-outside-br.txt new file mode 100644 index 000000000..348f2b089 --- /dev/null +++ b/docs/manual/customize-outside-br.txt @@ -0,0 +1,446 @@ +// -*- mode:doc -*- ; +// vim: set syntax=asciidoc: + +[[outside-br-custom]] +=== Keeping customizations outside of Buildroot + +As already briefly mentioned in xref:customize-dir-structure[], you can +place project-specific customizations in two locations: + + * directly within the Buildroot tree, typically maintaining them using + branches in a version control system so that upgrading to a newer + Buildroot release is easy. + + * outside of the Buildroot tree, using the _br2-external_ mechanism. + This mechanism allows to keep package recipes, board support and + configuration files outside of the Buildroot tree, while still + having them nicely integrated in the build logic. We call this + location a _br2-external tree_. This section explains how to use + the br2-external mechanism and what to provide in a br2-external + tree. + +One can tell Buildroot to use one or more br2-external trees by setting +the +BR2_EXTERNAL+ make variable set to the path(s) of the br2-external +tree(s) to use. It can be passed to any Buildroot +make+ invocation. It +is automatically saved in the hidden +.br2-external.mk+ file in the output +directory. Thanks to this, there is no need to pass +BR2_EXTERNAL+ at +every +make+ invocation. It can however be changed at any time by +passing a new value, and can be removed by passing an empty value. + +.Note +The path to a br2-external tree can be either absolute or relative. +If it is passed as a relative path, it is important to note that it is +interpreted relative to the main Buildroot source directory, *not* to +the Buildroot output directory. + +.Note: +If using an br2-external tree from before Buildroot 2016.11, you need to +convert it before you can use it with Buildroot 2016.11 onward. See +xref:br2-external-converting[] for help on doing so. + +Some examples: + +----- +buildroot/ $ make BR2_EXTERNAL=/path/to/foo menuconfig +----- + +From now on, definitions from the +/path/to/foo+ br2-external tree +will be used: + +----- +buildroot/ $ make +buildroot/ $ make legal-info +----- + +We can switch to another br2-external tree at any time: + +----- +buildroot/ $ make BR2_EXTERNAL=/where/we/have/bar xconfig +----- + +We can also use multiple br2-external trees: + +---- +buildroot/ $ make BR2_EXTERNAL=/path/to/foo:/where/we/have/bar menuconfig +---- + +Or disable the usage of any br2-external tree: + +----- +buildroot/ $ make BR2_EXTERNAL= xconfig +----- + +==== Layout of a br2-external tree + +A br2-external tree must contain at least those three files, described +in the following chapters: + + * +external.desc+ + * +external.mk+ + * +Config.in+ + +Apart from those mandatory files, there may be additional and optional +content that may be present in a br2-external tree, like the +configs/+ +or +provides/+ directories. They are described in the following chapters +as well. + +A complete example br2-external tree layout is also described later. + +===== The +external.desc+ file + +That file describes the br2-external tree: the _name_ and _description_ +for that br2-external tree. + +The format for this file is line based, with each line starting by a +keyword, followed by a colon and one or more spaces, followed by the +value assigned to that keyword. There are two keywords currently +recognised: + + * +name+, mandatory, defines the name for that br2-external tree. That + name must only use ASCII characters in the set +[A-Za-z0-9_]+; any + other character is forbidden. Buildroot sets the variable + +BR2_EXTERNAL_$(NAME)_PATH+ to the absolute path of the br2-external + tree, so that you can use it to refer to your br2-external tree. This + variable is available both in Kconfig, so you can use it to source your + Kconfig files (see below) and in the Makefile, so that you can use it + to include other Makefiles (see below) or refer to other files (like + data files) from your br2-external tree. ++ +.Note: +Since it is possible to use multiple br2-external trees at once, this + name is used by Buildroot to generate variables for each of those trees. + That name is used to identify your br2-external tree, so try to come up + with a name that really describes your br2-external tree, in order for + it to be relatively unique, so that it does not clash with another name + from another br2-external tree, especially if you are planning on + somehow sharing your br2-external tree with third parties or using + br2-external trees from third parties. + + * +desc+, optional, provides a short description for that br2-external + tree. It shall fit on a single line, is mostly free-form (see below), + and is used when displaying information about a br2-external tree (e.g. + above the list of defconfig files, or as the prompt in the menuconfig); + as such, it should relatively brief (40 chars is probably a good upper + limit). The description is available in the +BR2_EXTERNAL_$(NAME)_DESC+ + variable. + +Examples of names and the corresponding +BR2_EXTERNAL_$(NAME)_PATH+ +variables: + + * +FOO+ -> +BR2_EXTERNAL_FOO_PATH+ + * +BAR_42+ -> +BR2_EXTERNAL_BAR_42_PATH+ + +In the following examples, it is assumed the name to be set to +BAR_42+. + +.Note: +Both +BR2_EXTERNAL_$(NAME)_PATH+ and `BR2_EXTERNAL_$(NAME)_DESC` are + available in the Kconfig files and the Makefiles. They are also + exported in the environment so are available in post-build, post-image + and in-fakeroot scripts. + +===== The +Config.in+ and +external.mk+ files + +Those files (which may each be empty) can be used to define package +recipes (i.e. +foo/Config.in+ and +foo/foo.mk+ like for packages bundled +in Buildroot itself) or other custom configuration options or make logic. + +Buildroot automatically includes the +Config.in+ from each br2-external +tree to make it appear in the top-level configuration menu, and includes +the +external.mk+ from each br2-external tree with the rest of the +makefile logic. + +The main usage of this is to store package recipes. The recommended way +to do this is to write a +Config.in+ file that looks like: + +------ +source "$BR2_EXTERNAL_BAR_42_PATH/package/package1/Config.in" +source "$BR2_EXTERNAL_BAR_42_PATH/package/package2/Config.in" +------ + +Then, have an +external.mk+ file that looks like: + +------ +include $(sort $(wildcard $(BR2_EXTERNAL_BAR_42_PATH)/package/*/*.mk)) +------ + +And then in +$(BR2_EXTERNAL_BAR_42_PATH)/package/package1+ and ++$(BR2_EXTERNAL_BAR_42_PATH)/package/package2+ create normal +Buildroot package recipes, as explained in xref:adding-packages[]. +If you prefer, you can also group the packages in subdirectories +called and adapt the above paths accordingly. + +You can also define custom configuration options in +Config.in+ and +custom make logic in +external.mk+. + +===== The +configs/+ directory + +One can store Buildroot defconfigs in the +configs+ subdirectory of +the br2-external tree. Buildroot will automatically show them in the +output of +make list-defconfigs+ and allow them to be loaded with the +normal +make _defconfig+ command. They will be visible in the +'make list-defconfigs' output, below an +External configs+ label that +contains the name of the br2-external tree they are defined in. + +.Note: +If a defconfig file is present in more than one br2-external tree, then +the one from the last br2-external tree is used. It is thus possible +to override a defconfig bundled in Buildroot or another br2-external +tree. + +===== The +provides/+ directory + +For some packages, Buildroot provides a choice between two (or more) +implementations of API-compatible such packages. For example, there is +a choice to choose either libjpeg ot jpeg-turbo; there is one between +openssl or libressl; there is one to select one of the known, +pre-configured toolchains... + +It is possible for a br2-external to extend those choices, by providing +a set of files that define those alternatives: + +* +provides/toolchains.in+ defines the pre-configured toolchains, which + will then be listed in the toolchain selection; +* +provides/jpeg.in+ defines the alternative libjpeg implementations; +* +provides/openssl.in+ defines the alternative openssl implementations; +* +provides/skeleton.in+ defines the alternative skeleton implementations; +* +provides/init.in+ defines the alternative init system implementations, this + can be used to select a default skeleton for your init. + +===== Free-form content + +One can store all the board-specific configuration files there, such +as the kernel configuration, the root filesystem overlay, or any other +configuration file for which Buildroot allows to set the location (by +using the +BR2_EXTERNAL_$(NAME)_PATH+ variable). For example, you +could set the paths to a global patch directory, to a rootfs overlay +and to the kernel configuration file as follows (e.g. by running +`make menuconfig` and filling in these options): + +---- +BR2_GLOBAL_PATCH_DIR=$(BR2_EXTERNAL_BAR_42_PATH)/patches/ +BR2_ROOTFS_OVERLAY=$(BR2_EXTERNAL_BAR_42_PATH)/board//overlay/ +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE=$(BR2_EXTERNAL_BAR_42_PATH)/board//kernel.config +---- + +===== Additional Linux kernel extensions + +Additional Linux kernel extensions (see xref:linux-kernel-ext[]) can +be added by storing them in the `linux/` directory at the root of a +br2-external tree. + +===== Example layout + +Here is an example layout using all features of br2-external (the sample +content is shown for the file above it, when it is relevant to explain +the br2-external tree; this is all entirely made up just for the sake of +illustration, of course): + +---- +/path/to/br2-ext-tree/ + |- external.desc + | |name: BAR_42 + | |desc: Example br2-external tree + | `---- + | + |- Config.in + | |source "$BR2_EXTERNAL_BAR_42_PATH/toolchain/toolchain-external-mine/Config.in.options" + | |source "$BR2_EXTERNAL_BAR_42_PATH/package/pkg-1/Config.in" + | |source "$BR2_EXTERNAL_BAR_42_PATH/package/pkg-2/Config.in" + | |source "$BR2_EXTERNAL_BAR_42_PATH/package/my-jpeg/Config.in" + | | + | |config BAR_42_FLASH_ADDR + | | hex "my-board flash address" + | | default 0x10AD + | `---- + | + |- external.mk + | |include $(sort $(wildcard $(BR2_EXTERNAL_BAR_42_PATH)/package/*/*.mk)) + | |include $(sort $(wildcard $(BR2_EXTERNAL_BAR_42_PATH)/toolchain/*/*.mk)) + | | + | |flash-my-board: + | | $(BR2_EXTERNAL_BAR_42_PATH)/board/my-board/flash-image \ + | | --image $(BINARIES_DIR)/image.bin \ + | | --address $(BAR_42_FLASH_ADDR) + | `---- + | + |- package/pkg-1/Config.in + | |config BR2_PACKAGE_PKG_1 + | | bool "pkg-1" + | | help + | | Some help about pkg-1 + | `---- + |- package/pkg-1/pkg-1.hash + |- package/pkg-1/pkg-1.mk + | |PKG_1_VERSION = 1.2.3 + | |PKG_1_SITE = /some/where/to/get/pkg-1 + | |PKG_1_LICENSE = blabla + | | + | |define PKG_1_INSTALL_INIT_SYSV + | | $(INSTALL) -D -m 0755 $(PKG_1_PKGDIR)/S99my-daemon \ + | | $(TARGET_DIR)/etc/init.d/S99my-daemon + | |endef + | | + | |$(eval $(autotools-package)) + | `---- + |- package/pkg-1/S99my-daemon + | + |- package/pkg-2/Config.in + |- package/pkg-2/pkg-2.hash + |- package/pkg-2/pkg-2.mk + | + |- provides/jpeg.in + | |config BR2_PACKAGE_MY_JPEG + | | bool "my-jpeg" + | `---- + |- package/my-jpeg/Config.in + | |config BR2_PACKAGE_PROVIDES_JPEG + | | default "my-jpeg" if BR2_PACKAGE_MY_JPEG + | `---- + |- package/my-jpeg/my-jpeg.mk + | |# This is a normal package .mk file + | |MY_JPEG_VERSION = 1.2.3 + | |MY_JPEG_SITE = https://example.net/some/place + | |MY_JPEG_PROVIDES = jpeg + | |$(eval $(autotools-package)) + | `---- + | + |- provides/init.in + | |config BR2_INIT_MINE + | | bool "my custom init" + | | select BR2_PACKAGE_MY_INIT + | | select BR2_PACKAGE_SKELETON_INIT_MINE if BR2_ROOTFS_SKELETON_DEFAULT + | `---- + | + |- provides/skeleton.in + | |config BR2_ROOTFS_SKELETON_MINE + | | bool "my custom skeleton" + | | select BR2_PACKAGE_SKELETON_MINE + | `---- + |- package/skeleton-mine/Config.in + | |config BR2_PACKAGE_SKELETON_MINE + | | bool + | | select BR2_PACKAGE_HAS_SKELETON + | | + | |config BR2_PACKAGE_PROVIDES_SKELETON + | | default "skeleton-mine" if BR2_PACKAGE_SKELETON_MINE + | `---- + |- package/skeleton-mine/skeleton-mine.mk + | |SKELETON_MINE_ADD_TOOLCHAIN_DEPENDENCY = NO + | |SKELETON_MINE_ADD_SKELETON_DEPENDENCY = NO + | |SKELETON_MINE_PROVIDES = skeleton + | |SKELETON_MINE_INSTALL_STAGING = YES + | |$(eval $(generic-package)) + | `---- + | + |- provides/toolchains.in + | |config BR2_TOOLCHAIN_EXTERNAL_MINE + | | bool "my custom toolchain" + | | depends on BR2_some_arch + | | select BR2_INSTALL_LIBSTDCPP + | `---- + |- toolchain/toolchain-external-mine/Config.in.options + | |if BR2_TOOLCHAIN_EXTERNAL_MINE + | |config BR2_TOOLCHAIN_EXTERNAL_PREFIX + | | default "arch-mine-linux-gnu" + | |config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL + | | default "toolchain-external-mine" + | |endif + | `---- + |- toolchain/toolchain-external-mine/toolchain-external-mine.mk + | |TOOLCHAIN_EXTERNAL_MINE_SITE = https://example.net/some/place + | |TOOLCHAIN_EXTERNAL_MINE_SOURCE = my-toolchain.tar.gz + | |$(eval $(toolchain-external-package)) + | `---- + | + |- linux/Config.ext.in + | |config BR2_LINUX_KERNEL_EXT_EXAMPLE_DRIVER + | | bool "example-external-driver" + | | help + | | Example external driver + | |--- + |- linux/linux-ext-example-driver.mk + | + |- configs/my-board_defconfig + | |BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_BAR_42_PATH)/patches/" + | |BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_BAR_42_PATH)/board/my-board/overlay/" + | |BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_BAR_42_PATH)/board/my-board/post-image.sh" + | |BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_BAR_42_PATH)/board/my-board/kernel.config" + | `---- + | + |- patches/linux/0001-some-change.patch + |- patches/linux/0002-some-other-change.patch + |- patches/busybox/0001-fix-something.patch + | + |- board/my-board/kernel.config + |- board/my-board/overlay/var/www/index.html + |- board/my-board/overlay/var/www/my.css + |- board/my-board/flash-image + `- board/my-board/post-image.sh + |#!/bin/sh + |generate-my-binary-image \ + | --root ${BINARIES_DIR}/rootfs.tar \ + | --kernel ${BINARIES_DIR}/zImage \ + | --dtb ${BINARIES_DIR}/my-board.dtb \ + | --output ${BINARIES_DIR}/image.bin + `---- +---- + +The br2-external tree will then be visible in the menuconfig (with +the layout expanded): + +---- +External options ---> + *** Example br2-external tree (in /path/to/br2-ext-tree/) + [ ] pkg-1 + [ ] pkg-2 + (0x10AD) my-board flash address +---- + +If you are using more than one br2-external tree, it would look like +(with the layout expanded and the second one with name +FOO_27+ but no ++desc:+ field in +external.desc+): + +---- +External options ---> + Example br2-external tree ---> + *** Example br2-external tree (in /path/to/br2-ext-tree) + [ ] pkg-1 + [ ] pkg-2 + (0x10AD) my-board flash address + FOO_27 ---> + *** FOO_27 (in /path/to/another-br2-ext) + [ ] foo + [ ] bar +---- + +Additionally, the jpeg provider will be visible in the jpeg choice: + +---- +Target packages ---> + Libraries ---> + Graphics ---> + [*] jpeg support + jpeg variant () ---> + ( ) jpeg + ( ) jpeg-turbo + *** jpeg from: Example br2-external tree *** + (X) my-jpeg + *** jpeg from: FOO_27 *** + ( ) another-jpeg +---- + +And similarly for the toolchains: + +---- +Toolchain ---> + Toolchain () ---> + ( ) Custom toolchain + *** Toolchains from: Example br2-external tree *** + (X) my custom toolchain +---- + +.Note +The toolchain options in +toolchain/toolchain-external-mine/Config.in.options+ +will not appear in the `Toolchain` menu. They must be explicitly included +from within the br2-external's top-level +Config.in+ and will thus appear +in the `External options` menu. diff --git a/docs/manual/customize-packages.txt b/docs/manual/customize-packages.txt new file mode 100644 index 000000000..b57280ea1 --- /dev/null +++ b/docs/manual/customize-packages.txt @@ -0,0 +1,56 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +[[customize-packages]] +=== Adding project-specific packages + +In general, any new package should be added directly in the +package+ +directory and submitted to the Buildroot upstream project. How to add +packages to Buildroot in general is explained in full detail in +xref:adding-packages[] and will not be repeated here. However, your +project may need some proprietary packages that cannot be upstreamed. +This section will explain how you can keep such project-specific +packages in a project-specific directory. + +As shown in xref:customize-dir-structure[], the recommended location for +project-specific packages is +package//+. If you are using the +br2-external tree feature (see xref:outside-br-custom[]) the recommended +location is to put them in a sub-directory named +package/+ in your +br2-external tree. + +However, Buildroot will not be aware of the packages in this location, +unless we perform some additional steps. As explained in +xref:adding-packages[], a package in Buildroot basically consists of two +files: a +.mk+ file (describing how to build the package) and a ++Config.in+ file (describing the configuration options for this +package). + +Buildroot will automatically include the +.mk+ files in first-level +subdirectories of the +package+ directory (using the pattern ++package/\*/*.mk+). If we want Buildroot to include +.mk+ files from +deeper subdirectories (like +package//package1/+) then we +simply have to add a +.mk+ file in a first-level subdirectory that +includes these additional +.mk+ files. Therefore, create a file ++package//.mk+ with following contents (assuming you +have only one extra directory level below +package//+): + +----- +include $(sort $(wildcard package//*/*.mk)) +----- + +For the +Config.in+ files, create a file +package//Config.in+ +that includes the +Config.in+ files of all your packages. An exhaustive +list has to be provided since wildcards are not supported in the source command of kconfig. +For example: + +----- +source "package//package1/Config.in" +source "package//package2/Config.in" +----- + +Include this new file +package//Config.in+ from ++package/Config.in+, preferably in a company-specific menu to make +merges with future Buildroot versions easier. + +If using a br2-external tree, refer to xref:outside-br-custom[] for how +to fill in those files. diff --git a/docs/manual/customize-patches.txt b/docs/manual/customize-patches.txt new file mode 100644 index 000000000..eb98d1bea --- /dev/null +++ b/docs/manual/customize-patches.txt @@ -0,0 +1,59 @@ +// -*- mode:doc -*- ; +// vim: set syntax=asciidoc: + +[[customize-patches]] +=== Adding project-specific patches + +It is sometimes useful to apply 'extra' patches to packages - on top of +those provided in Buildroot. This might be used to support custom +features in a project, for example, or when working on a new +architecture. + +The +BR2_GLOBAL_PATCH_DIR+ configuration option can be used to specify +a space separated list of one or more directories containing package +patches. + +For a specific version ++ of a specific package +++, patches are applied from +BR2_GLOBAL_PATCH_DIR+ as +follows: + +. For every directory - ++ - that exists in + +BR2_GLOBAL_PATCH_DIR+, a ++ will be determined as + follows: ++ +* +///+ if the + directory exists. ++ +* Otherwise, +/+ if the directory + exists. + +. Patches will then be applied from a ++ as + follows: ++ +* If a +series+ file exists in the package directory, then patches are + applied according to the +series+ file; ++ +* Otherwise, patch files matching +*.patch+ are applied in + alphabetical order. So, to ensure they are applied in the right + order, it is highly recommended to name the patch files like this: + +-.patch+, where ++ refers to the + 'apply order'. + +For information about how patches are applied for a package, see +xref:patch-apply-order[] + +The +BR2_GLOBAL_PATCH_DIR+ option is the preferred method for +specifying a custom patch directory for packages. It can be used to +specify a patch directory for any package in buildroot. It should also +be used in place of the custom patch directory options that are +available for packages such as U-Boot and Barebox. By doing this, it +will allow a user to manage their patches from one top-level +directory. + +The exception to +BR2_GLOBAL_PATCH_DIR+ being the preferred method for +specifying custom patches is +BR2_LINUX_KERNEL_PATCH+. ++BR2_LINUX_KERNEL_PATCH+ should be used to specify kernel patches that +are available at a URL. *Note:* +BR2_LINUX_KERNEL_PATCH+ specifies kernel +patches that are applied after patches available in +BR2_GLOBAL_PATCH_DIR+, +as it is done from a post-patch hook of the Linux package. + diff --git a/docs/manual/customize-post-image.txt b/docs/manual/customize-post-image.txt new file mode 100644 index 000000000..5308093d0 --- /dev/null +++ b/docs/manual/customize-post-image.txt @@ -0,0 +1,38 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +=== Customization _after_ the images have been created + +While post-build scripts (xref:rootfs-custom[]) are run _before_ +building the filesystem image, kernel and bootloader, *post-image +scripts* can be used to perform some specific actions _after_ all images +have been created. + +Post-image scripts can for example be used to automatically extract your +root filesystem tarball in a location exported by your NFS server, or +to create a special firmware image that bundles your root filesystem and +kernel image, or any other custom action required for your project. + +To enable this feature, specify a space-separated list of post-image +scripts in config option +BR2_ROOTFS_POST_IMAGE_SCRIPT+ (in the +System +configuration+ menu). If you specify a relative path, it will be +relative to the root of the Buildroot tree. + +Just like post-build scripts, post-image scripts are run with the main +Buildroot tree as current working directory. The path to the +images+ +output directory is passed as the first argument to each script. If the +config option +BR2_ROOTFS_POST_SCRIPT_ARGS+ is not empty, these +arguments will be passed to the script too. All the scripts will be +passed the exact same set of arguments, it is not possible to pass +different sets of arguments to each script. + +Again just like for the post-build scripts, the scripts have access to +the environment variables +BR2_CONFIG+, +HOST_DIR+, +STAGING_DIR+, ++TARGET_DIR+, +BUILD_DIR+, +BINARIES_DIR+, +CONFIG_DIR+ and ++BASE_DIR+. + +The post-image scripts will be executed as the user that executes +Buildroot, which should normally _not_ be the root user. Therefore, any +action requiring root permissions in one of these scripts will require +special handling (usage of fakeroot or sudo), which is left to the +script developer. diff --git a/docs/manual/customize-quick-guide.txt b/docs/manual/customize-quick-guide.txt new file mode 100644 index 000000000..627ecbacb --- /dev/null +++ b/docs/manual/customize-quick-guide.txt @@ -0,0 +1,66 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +=== Quick guide to storing your project-specific customizations + +Earlier in this chapter, the different methods for making +project-specific customizations have been described. This section will +now summarize all this by providing step-by-step instructions to storing your +project-specific customizations. Clearly, the steps that are not relevant to +your project can be skipped. + +1. +make menuconfig+ to configure toolchain, packages and kernel. +1. +make linux-menuconfig+ to update the kernel config, similar for + other configuration like busybox, uclibc, ... +1. +mkdir -p board//+ +1. Set the following options to +board///.config+ + (as far as they are relevant): + * +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+ + * +BR2_PACKAGE_BUSYBOX_CONFIG+ + * +BR2_UCLIBC_CONFIG+ + * +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE+ + * +BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE+ + * +BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE+ +1. Write the configuration files: + * +make linux-update-defconfig+ + * +make busybox-update-config+ + * +make uclibc-update-config+ + * +cp /build/at91bootstrap3-*/.config + board///at91bootstrap3.config+ + * +make barebox-update-defconfig+ + * +make uboot-update-defconfig+ +1. Create +board///rootfs-overlay/+ and fill it + with additional files you need on your rootfs, e.g. + +board///rootfs-overlay/etc/inittab+. + Set +BR2_ROOTFS_OVERLAY+ + to +board///rootfs-overlay+. +1. Create a post-build script + +board///post_build.sh+. Set + +BR2_ROOTFS_POST_BUILD_SCRIPT+ to + +board///post_build.sh+ +1. If additional setuid permissions have to be set or device nodes have + to be created, create +board///device_table.txt+ + and add that path to +BR2_ROOTFS_DEVICE_TABLE+. +1. If additional user accounts have to be created, create + +board///users_table.txt+ and add that path + to +BR2_ROOTFS_USERS_TABLES+. +1. To add custom patches to certain packages, set +BR2_GLOBAL_PATCH_DIR+ + to +board///patches/+ and add your patches + for each package in a subdirectory named after the package. Each + patch should be called +--.patch+. +1. Specifically for the Linux kernel, there also exists the option + +BR2_LINUX_KERNEL_PATCH+ with as main advantage that it can also + download patches from a URL. If you do not need this, + +BR2_GLOBAL_PATCH_DIR+ is preferred. U-Boot, Barebox, at91bootstrap + and at91bootstrap3 also have separate options, but these do not + provide any advantage over +BR2_GLOBAL_PATCH_DIR+ and will likely be + removed in the future. +1. If you need to add project-specific packages, create + +package//+ and place your packages in that + directory. Create an overall +.mk+ file that + includes the +.mk+ files of all your packages. Create an overall + +Config.in+ file that sources the +Config.in+ files of all your + packages. Include this +Config.in+ file from Buildroot's + +package/Config.in+ file. +1. +make savedefconfig+ to save the buildroot configuration. +1. +cp defconfig configs/_defconfig+ diff --git a/docs/manual/customize-rootfs.txt b/docs/manual/customize-rootfs.txt new file mode 100644 index 000000000..e46306fd2 --- /dev/null +++ b/docs/manual/customize-rootfs.txt @@ -0,0 +1,156 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +[[rootfs-custom]] +=== Customizing the generated target filesystem + +Besides changing the configuration through +make *config+, +there are a few other ways to customize the resulting target filesystem. + +The two recommended methods, which can co-exist, are root filesystem +overlay(s) and post build script(s). + +Root filesystem overlays (+BR2_ROOTFS_OVERLAY+):: ++ +A filesystem overlay is a tree of files that is copied directly + over the target filesystem after it has been built. To enable this + feature, set config option +BR2_ROOTFS_OVERLAY+ (in the +System + configuration+ menu) to the root of the overlay. You can even specify + multiple overlays, space-separated. If you specify a relative path, + it will be relative to the root of the Buildroot tree. Hidden + directories of version control systems, like +.git+, +.svn+, +.hg+, + etc., files called +.empty+ and files ending in +~+ are excluded from + the copy. ++ +When +BR2_ROOTFS_MERGED_USR+ is enabled, then the overlay must not + contain the '/bin', '/lib' or '/sbin' directories, as Buildroot will + create them as symbolic links to the relevant folders in '/usr'. In + such a situation, should the overlay have any programs or libraries, + they should be placed in '/usr/bin', '/usr/sbin' and '/usr/lib'. ++ +As shown in xref:customize-dir-structure[], the recommended path for + this overlay is +board///rootfs-overlay+. + +Post-build scripts (+BR2_ROOTFS_POST_BUILD_SCRIPT+):: ++ +Post-build scripts are shell scripts called 'after' Buildroot builds + all the selected software, but 'before' the rootfs images are + assembled. To enable this feature, specify a space-separated list of + post-build scripts in config option +BR2_ROOTFS_POST_BUILD_SCRIPT+ (in + the +System configuration+ menu). If you specify a relative path, it + will be relative to the root of the Buildroot tree. ++ +Using post-build scripts, you can remove or modify any file in your + target filesystem. You should, however, use this feature with care. + Whenever you find that a certain package generates wrong or unneeded + files, you should fix that package rather than work around it with some + post-build cleanup scripts. ++ +As shown in xref:customize-dir-structure[], the recommended path for + this script is +board///post_build.sh+. ++ +The post-build scripts are run with the main Buildroot tree as current + working directory. The path to the target filesystem is passed as the + first argument to each script. If the config option + +BR2_ROOTFS_POST_SCRIPT_ARGS+ is not empty, these arguments will be + passed to the script too. All the scripts will be passed the exact + same set of arguments, it is not possible to pass different sets of + arguments to each script. ++ +In addition, you may also use these environment variables: + + - +BR2_CONFIG+: the path to the Buildroot .config file + - +CONFIG_DIR+: the directory containing the .config file, and + therefore the top-level Buildroot Makefile to use (which is + correct for both in-tree and out-of-tree builds) + - +HOST_DIR+, +STAGING_DIR+, +TARGET_DIR+: see + xref:generic-package-reference[] + - +BUILD_DIR+: the directory where packages are extracted and built + - +BINARIES_DIR+: the place where all binary files (aka images) are + stored + - +BASE_DIR+: the base output directory + +Below three more methods of customizing the target filesystem are +described, but they are not recommended. + +Direct modification of the target filesystem:: ++ +For temporary modifications, you can modify the target filesystem + directly and rebuild the image. The target filesystem is available + under +output/target/+. After making your changes, run +make+ to + rebuild the target filesystem image. ++ +This method allows you to do anything to the target filesystem, but if + you need to clean your Buildroot tree using +make clean+, these + changes will be lost. Such cleaning is necessary in several cases, + refer to xref:full-rebuild[] for details. This solution is therefore + only useful for quick tests: _changes do not survive the +make clean+ + command_. Once you have validated your changes, you should make sure + that they will persist after a +make clean+, using a root filesystem + overlay or a post-build script. + +Custom target skeleton (+BR2_ROOTFS_SKELETON_CUSTOM+):: ++ +The root filesystem image is created from a target skeleton, on top of + which all packages install their files. The skeleton is copied to the + target directory +output/target+ before any package is built and + installed. The default target skeleton provides the standard Unix + filesystem layout and some basic init scripts and configuration files. ++ +If the default skeleton (available under +system/skeleton+) does not + match your needs, you would typically use a root filesystem overlay or + post-build script to adapt it. However, if the default skeleton is + entirely different than what you need, using a custom skeleton may be + more suitable. ++ +To enable this feature, enable config option + +BR2_ROOTFS_SKELETON_CUSTOM+ and set +BR2_ROOTFS_SKELETON_CUSTOM_PATH+ + to the path of your custom skeleton. Both options are available in the + +System configuration+ menu. If you specify a relative path, it will + be relative to the root of the Buildroot tree. ++ +Custom skeletons don't need to contain the '/bin', '/lib' or '/sbin' + directories, since they are created automatically during the build. + When +BR2_ROOTFS_MERGED_USR+ is enabled, then the custom skeleton must + not contain the '/bin', '/lib' or '/sbin' directories, as Buildroot + will create them as symbolic links to the relevant folders in '/usr'. + In such a situation, should the skeleton have any programs or + libraries, they should be placed in '/usr/bin', '/usr/sbin' and + '/usr/lib'. ++ +This method is not recommended because it duplicates the entire + skeleton, which prevents taking advantage of the fixes or improvements + brought to the default skeleton in later Buildroot releases. + +Post-fakeroot scripts (+BR2_ROOTFS_POST_FAKEROOT_SCRIPT+):: ++ +When aggregating the final images, some parts of the process requires + root rights: creating device nodes in `/dev`, setting permissions or + ownership to files and directories... To avoid requiring actual root + rights, Buildroot uses +fakeroot+ to simulate root rights. This is not + a complete substitute for actually being root, but is enough for what + Buildroot needs. ++ +Post-fakeroot scripts are shell scripts that are called at the 'end' of + the fakeroot phase, 'right before' the filesystem image generator is + called. As such, they are called in the fakeroot context. ++ +Post-fakeroot scripts can be useful in case you need to tweak the + filesystem to do modifications that are usually only available to the + root user. ++ +.Note: +It is recommended to use the existing mechanisms to set file permissions + or create entries in `/dev` (see xref:customize-device-permission[]) or + to create users (see xref:customize-users[]) ++ +.Note: +The difference between post-build scripts (above) and fakeroot scripts, + is that post-build scripts are not called in the fakeroot context. ++ +.Note: +Using `fakeroot` is not an absolute substitute for actually being root. + `fakeroot` only ever fakes the file access rights and types (regular, + block-or-char device...) and uid/gid; these are emulated in-memory. + +include::customize-device-permission-tables.txt[] diff --git a/docs/manual/customize-users-tables.txt b/docs/manual/customize-users-tables.txt new file mode 100644 index 000000000..e2d32e23f --- /dev/null +++ b/docs/manual/customize-users-tables.txt @@ -0,0 +1,18 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +[[customize-users]] +=== Adding custom user accounts + +Sometimes it is needed to add specific users in the target system. +To cover this requirement, Buildroot provides support for so-called +_users tables_. To use this feature, set config option ++BR2_ROOTFS_USERS_TABLES+ to a space-separated list of users tables, +regular text files following the xref:makeuser-syntax[makeusers syntax]. + +As shown in xref:customize-dir-structure[], the recommended location for +such files is +board///+. + +It should be noted that if the custom users are related to a specific +application, you should set variable +FOO_USERS+ in the package's +.mk+ +file instead (see xref:generic-package-reference[]). diff --git a/docs/manual/customize.txt b/docs/manual/customize.txt new file mode 100644 index 000000000..484413e4d --- /dev/null +++ b/docs/manual/customize.txt @@ -0,0 +1,60 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +[[customize]] +== Project-specific customization + +Typical actions you may need to perform for a given project are: + +* configuring Buildroot (including build options and toolchain, + bootloader, kernel, package and filesystem image type selection) +* configuring other components, like the Linux kernel and BusyBox +* customizing the generated target filesystem + ** adding or overwriting files on the target filesystem (using + +BR2_ROOTFS_OVERLAY+) + ** modifying or deleting files on the target filesystem (using + +BR2_ROOTFS_POST_BUILD_SCRIPT+) + ** running arbitrary commands prior to generating the filesystem image + (using +BR2_ROOTFS_POST_BUILD_SCRIPT+) + ** setting file permissions and ownership (using + +BR2_ROOTFS_DEVICE_TABLE+) + ** adding custom devices nodes (using + +BR2_ROOTFS_STATIC_DEVICE_TABLE+) +* adding custom user accounts (using +BR2_ROOTFS_USERS_TABLES+) +* running arbitrary commands after generating the filesystem image + (using +BR2_ROOTFS_POST_IMAGE_SCRIPT+) +* adding project-specific patches to some packages (using + +BR2_GLOBAL_PATCH_DIR+) +* adding project-specific packages + +An important note regarding such 'project-specific' customizations: +please carefully consider which changes are indeed project-specific and +which changes are also useful to developers outside your project. The +Buildroot community highly recommends and encourages the upstreaming of +improvements, packages and board support to the official Buildroot +project. Of course, it is sometimes not possible or desirable to +upstream because the changes are highly specific or proprietary. + +This chapter describes how to make such project-specific customizations +in Buildroot and how to store them in a way that you can build the same +image in a reproducible way, even after running 'make clean'. By +following the recommended strategy, you can even use the same Buildroot +tree to build multiple distinct projects! + +include::customize-directory-structure.txt[] + +include::customize-outside-br.txt[] + +include::customize-configuration.txt[] + +include::customize-rootfs.txt[] + +include::customize-users-tables.txt[] + +include::customize-post-image.txt[] + +include::customize-patches.txt[] + +include::customize-packages.txt[] + +include::customize-quick-guide.txt[] diff --git a/docs/manual/debugging-buildroot.txt b/docs/manual/debugging-buildroot.txt new file mode 100644 index 000000000..f575fc48e --- /dev/null +++ b/docs/manual/debugging-buildroot.txt @@ -0,0 +1,43 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +[[debugging-buildroot]] + +== Debugging Buildroot + +It is possible to instrument the steps +Buildroot+ does when building +packages. Define the variable +BR2_INSTRUMENTATION_SCRIPTS+ to contain +the path of one or more scripts (or other executables), in a +space-separated list, you want called before and after each step. The +scripts are called in sequence, with three parameters: + + - +start+ or +end+ to denote the start (resp. the end) of a step; + - the name of the step about to be started, or which just ended; + - the name of the package. + +For example : + +---- +make BR2_INSTRUMENTATION_SCRIPTS="/path/to/my/script1 /path/to/my/script2" +---- + +The list of steps is: + + - +extract+ + - +patch+ + - +configure+ + - +build+ + - +install-host+, when a host-package is installed in +$(HOST_DIR)+ + - +install-target+, when a target-package is installed in +$(TARGET_DIR)+ + - +install-staging+, when a target-package is installed in +$(STAGING_DIR)+ + - +install-image+, when a target-package installs files in +$(BINARIES_DIR)+ + +The script has access to the following variables: + + - +BR2_CONFIG+: the path to the Buildroot .config file + - +HOST_DIR+, +STAGING_DIR+, +TARGET_DIR+: see + xref:generic-package-reference[] + - +BUILD_DIR+: the directory where packages are extracted and built + - +BINARIES_DIR+: the place where all binary files (aka images) are + stored + - +BASE_DIR+: the base output directory diff --git a/docs/manual/developers.txt b/docs/manual/developers.txt new file mode 100644 index 000000000..29846b565 --- /dev/null +++ b/docs/manual/developers.txt @@ -0,0 +1,50 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +[[DEVELOPERS]] +== DEVELOPERS file and get-developers + +The main Buildroot directory contains a file named +DEVELOPERS+ that +lists the developers involved with various areas of Buildroot. Thanks +to this file, the +get-developers+ tool allows to: + +- Calculate the list of developers to whom patches should be sent, by + parsing the patches and matching the modified files with the + relevant developers. See xref:submitting-patches[] for details. + +- Find which developers are taking care of a given architecture or + package, so that they can be notified when a build failure occurs on + this architecture or package. This is done in interaction with + Buildroot's autobuild infrastructure. + +We ask developers adding new packages, new boards, or generally new +functionality in Buildroot, to register themselves in the +DEVELOPERS+ +file. As an example, we expect a developer contributing a new package +to include in his patch the appropriate modification to the ++DEVELOPERS+ file. + +The +DEVELOPERS+ file format is documented in detail inside the file +itself. + +The +get-developers+ tool, located in +utils/+ allows to use +the +DEVELOPERS+ file for various tasks: + +- When passing one or several patches as command line argument, + +get-developers+ will return the appropriate +git send-email+ + command. If the +-e+ option is passed, only the email addresses are + printed in a format suitable for +git send-email --cc-cmd+. + +- When using the +-a + command line option, +get-developers+ will + return the list of developers in charge of the given architecture. + +- When using the +-p + command line option, +get-developers+ + will return the list of developers in charge of the given package. + +- When using the +-c+ command line option, +get-developers+ will look + at all files under version control in the Buildroot repository, and + list the ones that are not handled by any developer. The purpose of + this option is to help completing the +DEVELOPERS+ file. + +- When using the +-v+ command line option, it validates the integrity + of the DEVELOPERS file and will note WARNINGS for items that don't + match. diff --git a/docs/manual/docbook-xsl.css b/docs/manual/docbook-xsl.css new file mode 100644 index 000000000..ee9ca46d6 --- /dev/null +++ b/docs/manual/docbook-xsl.css @@ -0,0 +1,329 @@ +/* + CSS stylesheet for XHTML produced by DocBook XSL stylesheets. +*/ + +body { + font-family: Georgia,serif; +} + +code, pre { + font-family: "Courier New", Courier, monospace; +} + +span.strong { + font-weight: bold; +} + +body blockquote { + margin-top: .75em; + line-height: 1.5; + margin-bottom: .75em; +} + +html body { + margin: 1em 5% 1em 5%; + line-height: 1.2; +} + +body div { + margin: 0; +} + +h1, h2, h3, h4, h5, h6 +{ + color: #527bbd; + font-family: Arial,Helvetica,sans-serif; +} + +div.toc p:first-child, +div.list-of-figures p:first-child, +div.list-of-tables p:first-child, +div.list-of-examples p:first-child, +div.example p.title, +div.sidebar p.title +{ + font-weight: bold; + color: #527bbd; + font-family: Arial,Helvetica,sans-serif; + margin-bottom: 0.2em; +} + +body h1 { + margin: .0em 0 0 -4%; + line-height: 1.3; + border-bottom: 2px solid silver; +} + +body h2 { + margin: 0.5em 0 0 -4%; + line-height: 1.3; + border-bottom: 2px solid silver; +} + +body h3 { + margin: .8em 0 0 -3%; + line-height: 1.3; +} + +body h4 { + margin: .8em 0 0 -3%; + line-height: 1.3; +} + +body h5 { + margin: .8em 0 0 -2%; + line-height: 1.3; +} + +body h6 { + margin: .8em 0 0 -1%; + line-height: 1.3; +} + +body hr { + border: none; /* Broken on IE6 */ +} +div.footnotes hr { + border: 1px solid silver; +} + +div.navheader th, div.navheader td, div.navfooter td { + font-family: Arial,Helvetica,sans-serif; + font-size: 0.9em; + font-weight: bold; + color: #527bbd; +} +div.navheader img, div.navfooter img { + border-style: none; +} +div.navheader a, div.navfooter a { + font-weight: normal; +} +div.navfooter hr { + border: 1px solid silver; +} + +body td { + line-height: 1.2 +} + +body th { + line-height: 1.2; +} + +ol { + line-height: 1.2; +} + +ul, body dir, body menu { + line-height: 1.2; +} + +html { + margin: 0; + padding: 0; +} + +body h1, body h2, body h3, body h4, body h5, body h6 { + margin-left: 0 +} + +body pre { + margin: 0.5em 10% 0.5em 1em; + line-height: 1.0; + color: navy; +} + +tt.literal, code.literal { + color: navy; +} + +.programlisting, .screen { + border: 1px solid silver; + background: #f4f4f4; + margin: 0.5em 10% 0.5em 0; + padding: 0.5em 1em; +} + +div.sidebar { + background: #ffffee; + margin: 1.0em 10% 0.5em 0; + padding: 0.5em 1em; + border: 1px solid silver; +} +div.sidebar * { padding: 0; } +div.sidebar div { margin: 0; } +div.sidebar p.title { + margin-top: 0.5em; + margin-bottom: 0.2em; +} + +div.bibliomixed { + margin: 0.5em 5% 0.5em 1em; +} + +div.glossary dt { + font-weight: bold; +} +div.glossary dd p { + margin-top: 0.2em; +} + +dl { + margin: .8em 0; + line-height: 1.2; +} + +dt { + margin-top: 0.5em; +} + +dt span.term { + font-style: normal; + color: navy; +} + +div.variablelist dd p { + margin-top: 0; +} + +div.itemizedlist li, div.orderedlist li { + margin-left: -0.8em; + margin-top: 0.5em; +} + +ul, ol { + list-style-position: outside; +} + +div.sidebar ul, div.sidebar ol { + margin-left: 2.8em; +} + +div.itemizedlist p.title, +div.orderedlist p.title, +div.variablelist p.title +{ + margin-bottom: -0.8em; +} + +div.revhistory table { + border-collapse: collapse; + border: none; +} +div.revhistory th { + border: none; + color: #527bbd; + font-family: Arial,Helvetica,sans-serif; +} +div.revhistory td { + border: 1px solid silver; +} + +/* Keep TOC and index lines close together. */ +div.toc dl, div.toc dt, +div.list-of-figures dl, div.list-of-figures dt, +div.list-of-tables dl, div.list-of-tables dt, +div.indexdiv dl, div.indexdiv dt +{ + line-height: normal; + margin-top: 0; + margin-bottom: 0; +} + +/* + Table styling does not work because of overriding attributes in + generated HTML. +*/ +div.table table, +div.informaltable table +{ + margin-left: 0; + margin-right: 5%; + margin-bottom: 0.8em; +} +div.informaltable table +{ + margin-top: 0.4em +} +div.table thead, +div.table tfoot, +div.table tbody, +div.informaltable thead, +div.informaltable tfoot, +div.informaltable tbody +{ + /* No effect in IE6. */ + border-top: 3px solid #527bbd; + border-bottom: 3px solid #527bbd; +} +div.table thead, div.table tfoot, +div.informaltable thead, div.informaltable tfoot +{ + font-weight: bold; +} + +div.mediaobject img { + margin-bottom: 0.8em; +} +div.figure p.title, +div.table p.title +{ + margin-top: 1em; + margin-bottom: 0.4em; +} + +div.calloutlist p +{ + margin-top: 0em; + margin-bottom: 0.4em; +} + +a img { + border-style: none; +} + +@media print { + div.navheader, div.navfooter { display: none; } +} + +span.aqua { color: aqua; } +span.black { color: black; } +span.blue { color: blue; } +span.fuchsia { color: fuchsia; } +span.gray { color: gray; } +span.green { color: green; } +span.lime { color: lime; } +span.maroon { color: maroon; } +span.navy { color: navy; } +span.olive { color: olive; } +span.purple { color: purple; } +span.red { color: red; } +span.silver { color: silver; } +span.teal { color: teal; } +span.white { color: white; } +span.yellow { color: yellow; } + +span.aqua-background { background: aqua; } +span.black-background { background: black; } +span.blue-background { background: blue; } +span.fuchsia-background { background: fuchsia; } +span.gray-background { background: gray; } +span.green-background { background: green; } +span.lime-background { background: lime; } +span.maroon-background { background: maroon; } +span.navy-background { background: navy; } +span.olive-background { background: olive; } +span.purple-background { background: purple; } +span.red-background { background: red; } +span.silver-background { background: silver; } +span.teal-background { background: teal; } +span.white-background { background: white; } +span.yellow-background { background: yellow; } + +span.big { font-size: 2em; } +span.small { font-size: 0.6em; } + +span.underline { text-decoration: underline; } +span.overline { text-decoration: overline; } +span.line-through { text-decoration: line-through; } diff --git a/docs/manual/download-infra.txt b/docs/manual/download-infra.txt new file mode 100644 index 000000000..f2ccd149d --- /dev/null +++ b/docs/manual/download-infra.txt @@ -0,0 +1,8 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +[[download-infra]] + +== Download infrastructure + +TODO diff --git a/docs/manual/download-location.txt b/docs/manual/download-location.txt new file mode 100644 index 000000000..d485df94f --- /dev/null +++ b/docs/manual/download-location.txt @@ -0,0 +1,27 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +[[download-location]] + +==== Location of downloaded packages + +The various tarballs that are downloaded by Buildroot are all stored +in +BR2_DL_DIR+, which by default is the +dl+ directory. If you want +to keep a complete version of Buildroot which is known to be working +with the associated tarballs, you can make a copy of this directory. +This will allow you to regenerate the toolchain and the target +filesystem with exactly the same versions. + +If you maintain several Buildroot trees, it might be better to have a +shared download location. This can be achieved by pointing the ++BR2_DL_DIR+ environment variable to a directory. If this is +set, then the value of +BR2_DL_DIR+ in the Buildroot configuration is +overridden. The following line should be added to +<~/.bashrc>+. + +----------------- + export BR2_DL_DIR= +----------------- + +The download location can also be set in the +.config+ file, with the ++BR2_DL_DIR+ option. Unlike most options in the .config file, this value +is overridden by the +BR2_DL_DIR+ environment variable. diff --git a/docs/manual/faq-troubleshooting.txt b/docs/manual/faq-troubleshooting.txt new file mode 100644 index 000000000..b08bf9bc4 --- /dev/null +++ b/docs/manual/faq-troubleshooting.txt @@ -0,0 +1,244 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +== Frequently Asked Questions & Troubleshooting + +[[faq-boot-hang-after-starting]] +=== The boot hangs after 'Starting network...' + +If the boot process seems to hang after the following messages +(messages not necessarily exactly similar, depending on the list of +packages selected): + +------------------------ +Freeing init memory: 3972K +Initializing random number generator... done. +Starting network... +Starting dropbear sshd: generating rsa key... generating dsa key... OK +------------------------ + +then it means that your system is running, but didn't start a shell on +the serial console. In order to have the system start a shell on your +serial console, you have to go into the Buildroot configuration, in ++System configuration+, modify +Run a getty (login prompt) after boot+ +and set the appropriate port and baud rate in the +getty options+ +submenu. This will automatically tune the +/etc/inittab+ file of the +generated system so that a shell starts on the correct serial port. + +[[faq-no-compiler-on-target]] +=== Why is there no compiler on the target? + +It has been decided that support for the _native compiler on the +target_ would be stopped from the Buildroot-2012.11 release because: + +* this feature was neither maintained nor tested, and often broken; +* this feature was only available for Buildroot toolchains; +* Buildroot mostly targets _small_ or _very small_ target hardware + with limited resource onboard (CPU, ram, mass-storage), for which + compiling on the target does not make much sense; +* Buildroot aims at easing the cross-compilation, making native + compilation on the target unnecessary. + +If you need a compiler on your target anyway, then Buildroot is not +suitable for your purpose. In such case, you need a _real +distribution_ and you should opt for something like: + +* http://www.openembedded.org[openembedded] +* https://www.yoctoproject.org[yocto] +* https://www.debian.org/ports/[Debian] +* https://fedoraproject.org/wiki/Architectures[Fedora] +* http://en.opensuse.org/Portal:ARM[openSUSE ARM] +* http://archlinuxarm.org[Arch Linux ARM] +* ... + +[[faq-no-dev-files-on-target]] +=== Why are there no development files on the target? + +Since there is no compiler available on the target (see +xref:faq-no-compiler-on-target[]), it does not make sense to waste +space with headers or static libraries. + +Therefore, those files are always removed from the target since the +Buildroot-2012.11 release. + +[[faq-no-doc-on-target]] +=== Why is there no documentation on the target? + +Because Buildroot mostly targets _small_ or _very small_ target +hardware with limited resource onboard (CPU, ram, mass-storage), it +does not make sense to waste space with the documentation data. + +If you need documentation data on your target anyway, then Buildroot +is not suitable for your purpose, and you should look for a _real +distribution_ (see: xref:faq-no-compiler-on-target[]). + +[[faq-why-not-visible-package]] +=== Why are some packages not visible in the Buildroot config menu? + +If a package exists in the Buildroot tree and does not appear in the +config menu, this most likely means that some of the package's +dependencies are not met. + +To know more about the dependencies of a package, search for the +package symbol in the config menu (see xref:make-tips[]). + +Then, you may have to recursively enable several options (which +correspond to the unmet dependencies) to finally be able to select +the package. + +If the package is not visible due to some unmet toolchain options, +then you should certainly run a full rebuild (see xref:make-tips[] for +more explanations). + +[[faq-why-not-use-target-as-chroot]] +=== Why not use the target directory as a chroot directory? + +There are plenty of reasons to *not* use the target directory a chroot +one, among these: + +* file ownerships, modes and permissions are not correctly set in the + target directory; +* device nodes are not created in the target directory. + +For these reasons, commands run through chroot, using the target +directory as the new root, will most likely fail. + +If you want to run the target filesystem inside a chroot, or as an NFS +root, then use the tarball image generated in +images/+ and extract it +as root. + +[[faq-no-binary-packages]] +=== Why doesn't Buildroot generate binary packages (.deb, .ipkg...)? + +One feature that is often discussed on the Buildroot list is the +general topic of "package management". To summarize, the idea +would be to add some tracking of which Buildroot package installs +what files, with the goals of: + + * being able to remove files installed by a package when this package + gets unselected from the menuconfig; + + * being able to generate binary packages (ipk or other format) that + can be installed on the target without re-generating a new root + filesystem image. + +In general, most people think it is easy to do: just track which package +installed what and remove it when the package is unselected. However, it +is much more complicated than that: + + * It is not only about the +target/+ directory, but also the sysroot in + +host//sysroot+ and the +host/+ directory itself. All files + installed in those directories by various packages must be tracked. + + * When a package is unselected from the configuration, it is not + sufficient to remove just the files it installed. One must also + remove all its reverse dependencies (i.e. packages relying on it) + and rebuild all those packages. For example, package A depends + optionally on the OpenSSL library. Both are selected, and Buildroot + is built. Package A is built with crypto support using OpenSSL. + Later on, OpenSSL gets unselected from the configuration, but + package A remains (since OpenSSL is an optional dependency, this + is possible.) If only OpenSSL files are removed, then the files + installed by package A are broken: they use a library that is no + longer present on the target. Although this is technically doable, + it adds a lot of complexity to Buildroot, which goes against the + simplicity we try to stick to. + + * In addition to the previous problem, there is the case where the + optional dependency is not even known to Buildroot. For example, + package A in version 1.0 never used OpenSSL, but in version 2.0 it + automatically uses OpenSSL if available. If the Buildroot .mk file + hasn't been updated to take this into account, then package A will + not be part of the reverse dependencies of OpenSSL and will not be + removed and rebuilt when OpenSSL is removed. For sure, the .mk file + of package A should be fixed to mention this optional dependency, + but in the mean time, you can have non-reproducible behaviors. + + * The request is to also allow changes in the menuconfig to be + applied on the output directory without having to rebuild + everything from scratch. However, this is very difficult to achieve + in a reliable way: what happens when the suboptions of a package + are changed (we would have to detect this, and rebuild the package + from scratch and potentially all its reverse dependencies), what + happens if toolchain options are changed, etc. At the moment, what + Buildroot does is clear and simple so its behaviour is very + reliable and it is easy to support users. If configuration changes + done in menuconfig are applied after the next make, then it has to + work correctly and properly in all situations, and not have some + bizarre corner cases. The risk is to get bug reports like "I have + enabled package A, B and C, then ran make, then disabled package + C and enabled package D and ran make, then re-enabled package C + and enabled package E and then there is a build failure". Or worse + "I did some configuration, then built, then did some changes, + built, some more changes, built, some more changes, built, and now + it fails, but I don't remember all the changes I did and in which + order". This will be impossible to support. + +For all these reasons, the conclusion is that adding tracking of +installed files to remove them when the package is unselected, or to +generate a repository of binary packages, is something that is very +hard to achieve reliably and will add a lot of complexity. + +On this matter, the Buildroot developers make this position statement: + + * Buildroot strives to make it easy to generate a root filesystem (hence + the name, by the way.) That is what we want to make Buildroot good at: + building root filesystems. + + * Buildroot is not meant to be a distribution (or rather, a distribution + generator.) It is the opinion of most Buildroot developers that this + is not a goal we should pursue. We believe that there are other tools + better suited to generate a distro than Buildroot is. For example, + http://openembedded.org/[Open Embedded], or https://openwrt.org/[openWRT], + are such tools. + + * We prefer to push Buildroot in a direction that makes it easy (or even + easier) to generate complete root filesystems. This is what makes + Buildroot stands out in the crowd (among other things, of course!) + + * We believe that for most embedded Linux systems, binary packages are + not necessary, and potentially harmful. When binary packages are + used, it means that the system can be partially upgraded, which + creates an enormous number of possible combinations of package + versions that should be tested before doing the upgrade on the + embedded device. On the other hand, by doing complete system + upgrades by upgrading the entire root filesystem image at once, + the image deployed to the embedded system is guaranteed to really + be the one that has been tested and validated. + +[[faq-speeding-up-build]] +=== How to speed-up the build process? + +Since Buildroot often involves doing full rebuilds of the entire +system that can be quite long, we provide below a number of tips to +help reduce the build time: + + * Use a pre-built external toolchain instead of the default Buildroot + internal toolchain. By using a pre-built Linaro toolchain (on ARM) + or a Sourcery CodeBench toolchain (for ARM, x86, x86-64, MIPS, + etc.), you will save the build time of the toolchain at each + complete rebuild, approximately 15 to 20 minutes. Note that + temporarily using an external toolchain does not prevent you to + switch back to an internal toolchain (that may provide a higher + level of customization) once the rest of your system is working; + + * Use the +ccache+ compiler cache (see: xref:ccache[]); + + * Learn about rebuilding only the few packages you actually care + about (see xref:rebuild-pkg[]), but beware that sometimes full + rebuilds are anyway necessary (see xref:full-rebuild[]); + + * Make sure you are not using a virtual machine for the Linux system + used to run Buildroot. Most of the virtual machine technologies are + known to cause a significant performance impact on I/O, which is + really important for building source code; + + * Make sure that you're using only local files: do not attempt to do + a build over NFS, which significantly slows down the build. Having + the Buildroot download folder available locally also helps a bit. + + * Buy new hardware. SSDs and lots of RAM are key to speeding up the + builds. + + * Experiment with top-level parallel build, see + xref:top-level-parallel-build[]. diff --git a/docs/manual/getting.txt b/docs/manual/getting.txt new file mode 100644 index 000000000..549938a22 --- /dev/null +++ b/docs/manual/getting.txt @@ -0,0 +1,36 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +[[getting-buildroot]] +== Getting Buildroot + +Buildroot releases are made every 3 months, in February, May, August and +November. Release numbers are in the format YYYY.MM, so for example +2013.02, 2014.08. + +Release tarballs are available at http://buildroot.org/downloads/[]. + +For your convenience, a https://www.vagrantup.com/[Vagrantfile] is +available in `support/misc/Vagrantfile` in the Buildroot source tree +to quickly set up a virtual machine with the needed dependencies to +get started. + +If you want to setup an isolated buildroot environment on Linux or Mac +Os X, paste this line onto your terminal: + +-------------------- +curl -O https://buildroot.org/downloads/Vagrantfile; vagrant up +-------------------- + +If you are on Windows, paste this into your powershell: + +-------------------- +(new-object System.Net.WebClient).DownloadFile( +"https://buildroot.org/downloads/Vagrantfile","Vagrantfile"); +vagrant up +-------------------- + +If you want to follow development, you can use the daily snapshots or +make a clone of the Git repository. Refer to the +http://buildroot.org/download[Download page] of the Buildroot website +for more details. diff --git a/docs/manual/github_hash_mongrel2.png b/docs/manual/github_hash_mongrel2.png new file mode 100644 index 0000000000000000000000000000000000000000..c695c3181abc3bdf4661692fdbcc4332a02cd856 GIT binary patch literal 19029 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 ADF6Tf literal 0 HcmV?d00001 diff --git a/docs/manual/how-buildroot-works.txt b/docs/manual/how-buildroot-works.txt new file mode 100644 index 000000000..1204d1eca --- /dev/null +++ b/docs/manual/how-buildroot-works.txt @@ -0,0 +1,69 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +== How Buildroot works + +As mentioned above, Buildroot is basically a set of Makefiles that +download, configure, and compile software with the correct options. It +also includes patches for various software packages - mainly the ones +involved in the cross-compilation toolchain (+gcc+, +binutils+ and ++uClibc+). + +There is basically one Makefile per software package, and they are +named with the +.mk+ extension. Makefiles are split into many different +parts. + +* The +toolchain/+ directory contains the Makefiles + and associated files for all software related to the + cross-compilation toolchain: +binutils+, +gcc+, +gdb+, + +kernel-headers+ and +uClibc+. + +* The +arch/+ directory contains the definitions for all the processor + architectures that are supported by Buildroot. + +* The +package/+ directory contains the Makefiles and + associated files for all user-space tools and libraries that Buildroot + can compile and add to the target root filesystem. There is one + sub-directory per package. + +* The +linux/+ directory contains the Makefiles and associated files for + the Linux kernel. + +* The +boot/+ directory contains the Makefiles and associated files for + the bootloaders supported by Buildroot. + +* The +system/+ directory contains support for system integration, e.g. + the target filesystem skeleton and the selection of an init system. + +* The +fs/+ directory contains the Makefiles and + associated files for software related to the generation of the + target root filesystem image. + +Each directory contains at least 2 files: + +* +something.mk+ is the Makefile that downloads, configures, + compiles and installs the package +something+. + +* +Config.in+ is a part of the configuration tool + description file. It describes the options related to the + package. + +The main Makefile performs the following steps (once the +configuration is done): + +* Create all the output directories: +staging+, +target+, +build+, + etc. in the output directory (+output/+ by default, + another value can be specified using +O=+) + +* Generate the toolchain target. When an internal toolchain is used, this + means generating the cross-compilation toolchain. When an external + toolchain is used, this means checking the features of the external + toolchain and importing it into the Buildroot environment. + +* Generate all the targets listed in the +TARGETS+ variable. This + variable is filled by all the individual components' + Makefiles. Generating these targets will trigger the compilation of + the userspace packages (libraries, programs), the kernel, the + bootloader and the generation of the root filesystem images, + depending on the configuration. + diff --git a/docs/manual/integration-selinux-support.txt b/docs/manual/integration-selinux-support.txt new file mode 100644 index 000000000..1f6bcf47e --- /dev/null +++ b/docs/manual/integration-selinux-support.txt @@ -0,0 +1,74 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +[[selinux]] +=== Using SELinux in Buildroot + +https://selinuxproject.org[SELinux] is a Linux kernel security module +enforcing access control policies. In addition to the traditional file +permissions and access control lists, +SELinux+ allows to write rules +for users or processes to access specific functions of resources +(files, sockets...). + +_SELinux_ has three modes of operation: + +* _Disabled_: the policy is not applied +* _Permissive_: the policy is applied, and non-authorized actions are + simply logged. This mode is often used for troubleshooting SELinux + issues. +* _Enforcing_: the policy is applied, and non-authorized actions are + denied + +In Buildroot the mode of operation is controlled by the ++BR2_PACKAGE_REFPOLICY_POLICY_STATE_*+ configuration options. The +Linux kernel also has various configuration options that affect how ++SELinux+ is enabled (see +security/selinux/Kconfig+ in the Linux +kernel sources). + +By default in Buildroot the +SELinux+ policy is provided by the +upstream https://github.com/SELinuxProject/refpolicy[refpolicy] +project, enabled with +BR2_PACKAGE_REFPOLICY+. + +[[enabling-selinux]] +==== Enabling SELinux support + +To have proper support for +SELinux+ in a Buildroot generated system, +the following configuration options must be enabled: + +* +BR2_PACKAGE_LIBSELINUX+ +* +BR2_PACKAGE_REFPOLICY+ + +In addition, your filesystem image format must support extended +attributes. + +[[selinux-policy-tweaking]] +==== SELinux policy tweaking + +The +SELinux refpolicy+ contains modules that can be enabled or +disabled when being built. Each module provide a number of +SELinux+ +rules. In Buildroot the non-base modules are disabled by default and +several ways to enable such modules are provided: + +- Packages can enable a list of +SELinux+ modules within the +refpolicy+ using + the +_SELINUX_MODULES+ variable. +- Packages can provide additional +SELinux+ modules by putting them (.fc, .if + and .te files) in +package//selinux/+. +- Extra +SELinux+ modules can be added in directories pointed by the + +BR2_REFPOLICY_EXTRA_MODULES_DIRS+ configuration option. +- Additional modules in the +refpolicy+ can be enabled if listed in the + +BR2_REFPOLICY_EXTRA_MODULES_DEPENDENCIES+ configuration option. + +Buildroot also allows to completely override the +refpolicy+. This +allows to provide a full custom policy designed specifically for a +given system. When going this way, all of the above mechanisms are +disabled: no extra +SElinux+ module is added to the policy, and all +the available modules within the custom policy are enabled and built +into the final binary policy. The custom policy must be a fork of the +official https://github.com/SELinuxProject/refpolicy[refpolicy]. + +In order to fully override the +refpolicy+ the following configuration +variables have to be set: + +- +BR2_PACKAGE_REFPOLICY_CUSTOM_GIT+ +- +BR2_PACKAGE_REFPOLICY_CUSTOM_REPO_URL+ +- +BR2_PACKAGE_REFPOLICY_CUSTOM_REPO_VERSION+ diff --git a/docs/manual/integration-systemd.txt b/docs/manual/integration-systemd.txt new file mode 100644 index 000000000..44248b43f --- /dev/null +++ b/docs/manual/integration-systemd.txt @@ -0,0 +1,27 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +[[integration-systemd]] +=== Systemd + +This chapter describes the decisions taken in Buildroot's integration of +systemd, and how various use cases can be implemented. + +==== DBus daemon + +Systemd requires a DBus daemon. There are two options for it: traditional dbus +(+BR2_PACKAGE_DBUS+) and bus1 dbus-broker (+BR2_PACKAGE_DBUS_BROKER+). At +least one of them must be chosen. If both are included in the configuration, +dbus-broker will be used as system bus, but the traditional dbus-daemon is +still installed as well and can be used as session bus. Also its tools (e.g. ++dbus-send+) can be used (systemd itself has +busctl+ as an alternative). In +addition, the traditional dbus package is the only one that provides +libdbus+, +which is used by many packages as dbus integration library. + +Both in the dbus and in the dbus-broker case, the daemon runs as user +dbus+. +The DBus configuration files are also identical for both. + +To make sure that only one of the two daemons is started as system bus, the +systemd activation files of the dbus package (+dbus.socket+ and the ++dbus.service+ symlink in +multi-user.target.wants+) are removed when +dbus-broker is selected. diff --git a/docs/manual/integration.txt b/docs/manual/integration.txt new file mode 100644 index 000000000..be56bf656 --- /dev/null +++ b/docs/manual/integration.txt @@ -0,0 +1,14 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +[[integration]] +== Integration topics + +This chapter discusses how various things are integrated at system +level. Buildroot is highly configurable, almost everything discussed +here can be changed or overridden by xref:rootfs-custom[rootfs overlay +or custom skeleton] configuration. + +include::integration-systemd.txt[] + +include::integration-selinux-support.txt[] diff --git a/docs/manual/introduction.txt b/docs/manual/introduction.txt new file mode 100644 index 000000000..476aa81ed --- /dev/null +++ b/docs/manual/introduction.txt @@ -0,0 +1,26 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +== About Buildroot + +Buildroot is a tool that simplifies and automates the process of +building a complete Linux system for an embedded system, using +cross-compilation. + +In order to achieve this, Buildroot is able to generate a +cross-compilation toolchain, a root filesystem, a Linux kernel image +and a bootloader for your target. Buildroot can be used for any +combination of these options, independently (you can for example use +an existing cross-compilation toolchain, and build only your root +filesystem with Buildroot). + +Buildroot is useful mainly for people working with embedded systems. +Embedded systems often use processors that are not the regular x86 +processors everyone is used to having in his PC. They can be PowerPC +processors, MIPS processors, ARM processors, etc. + +Buildroot supports numerous processors and their variants; it also +comes with default configurations for several boards available +off-the-shelf. Besides this, a number of third-party projects are based on, +or develop their BSP footnote:[BSP: Board Support Package] or +SDK footnote:[SDK: Software Development Kit] on top of Buildroot. diff --git a/docs/manual/known-issues.txt b/docs/manual/known-issues.txt new file mode 100644 index 000000000..743b794e8 --- /dev/null +++ b/docs/manual/known-issues.txt @@ -0,0 +1,15 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +== Known issues + +* It is not possible to pass extra linker options via +BR2_TARGET_LDFLAGS+ + if such options contain a +$+ sign. For example, the following is known + to break: +BR2_TARGET_LDFLAGS="-Wl,-rpath=\'$ORIGIN/../lib'"+ + +* The +libffi+ package is not supported on the SuperH 2 and ARMv7-M + architectures. + +* The +prboom+ package triggers a compiler failure with the SuperH 4 + compiler from Sourcery CodeBench, version 2012.09. + diff --git a/docs/manual/legal-notice.txt b/docs/manual/legal-notice.txt new file mode 100644 index 000000000..179aa6b17 --- /dev/null +++ b/docs/manual/legal-notice.txt @@ -0,0 +1,122 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +[[legal-info]] + +== Legal notice and licensing + +=== Complying with open source licenses + +All of the end products of Buildroot (toolchain, root filesystem, kernel, +bootloaders) contain open source software, released under various licenses. + +Using open source software gives you the freedom to build rich embedded +systems, choosing from a wide range of packages, but also imposes some +obligations that you must know and honour. +Some licenses require you to publish the license text in the documentation of +your product. Others require you to redistribute the source code of the +software to those that receive your product. + +The exact requirements of each license are documented in each package, and +it is your responsibility (or that of your legal office) to comply with those +requirements. +To make this easier for you, Buildroot can collect for you some material you +will probably need. To produce this material, after you have configured +Buildroot with +make menuconfig+, +make xconfig+ or +make gconfig+, run: + +-------------------- +make legal-info +-------------------- + +Buildroot will collect legally-relevant material in your output directory, +under the +legal-info/+ subdirectory. +There you will find: + +* A +README+ file, that summarizes the produced material and contains warnings + about material that Buildroot could not produce. +* +buildroot.config+: this is the Buildroot configuration file that is usually + produced with +make menuconfig+, and which is necessary to reproduce the + build. +* The source code for all packages; this is saved in the +sources/+ and + +host-sources/+ subdirectories for target and host packages respectively. + The source code for packages that set +_REDISTRIBUTE = NO+ will not be + saved. + Patches that were applied are also saved, along with a file named +series+ + that lists the patches in the order they were applied. Patches are under the + same license as the files that they modify. + Note: Buildroot applies additional patches to Libtool scripts of + autotools-based packages. These patches can be found under + +support/libtool+ in the Buildroot source and, due to technical + limitations, are not saved with the package sources. You may need to + collect them manually. +* A manifest file (one for host and one for target packages) listing the + configured packages, their version, license and related information. + Some of this information might not be defined in Buildroot; such items are + marked as "unknown". +* The license texts of all packages, in the +licenses/+ and +host-licenses/+ + subdirectories for target and host packages respectively. + If the license file(s) are not defined in Buildroot, the file is not produced + and a warning in the +README+ indicates this. + +Please note that the aim of the +legal-info+ feature of Buildroot is to +produce all the material that is somehow relevant for legal compliance with the +package licenses. Buildroot does not try to produce the exact material that +you must somehow make public. Certainly, more material is produced than is +needed for a strict legal compliance. For example, it produces the source code +for packages released under BSD-like licenses, that you are not required to +redistribute in source form. + +Moreover, due to technical limitations, Buildroot does not produce some +material that you will or may need, such as the toolchain source code for +some of the external toolchains and the Buildroot source code itself. +When you run +make legal-info+, Buildroot produces warnings in the +README+ +file to inform you of relevant material that could not be saved. + +Finally, keep in mind that the output of +make legal-info+ is based on +declarative statements in each of the packages recipes. The Buildroot +developers try to do their best to keep those declarative statements as +accurate as possible, to the best of their knowledge. However, it is very +well possible that those declarative statements are not all fully accurate +nor exhaustive. You (or your legal department) _have_ to check the output +of +make legal-info+ before using it as your own compliance delivery. See +the _NO WARRANTY_ clauses (clauses 11 and 12) in the +COPYING+ file at the +root of the Buildroot distribution. + +[[legal-info-buildroot]] +=== Complying with the Buildroot license + +Buildroot itself is an open source software, released under the +http://www.gnu.org/licenses/old-licenses/gpl-2.0.html[GNU General +Public License, version 2] or (at your option) any later version, with +the exception of the package patches detailed below. +However, being a build system, it is not normally part of the end product: +if you develop the root filesystem, kernel, bootloader or toolchain for a +device, the code of Buildroot is only present on the development machine, not +in the device storage. + +Nevertheless, the general view of the Buildroot developers is that you should +release the Buildroot source code along with the source code of other packages +when releasing a product that contains GPL-licensed software. +This is because the +http://www.gnu.org/licenses/old-licenses/gpl-2.0.html[GNU GPL] +defines the "'complete source code'" for an executable work as "'all the +source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable'". +Buildroot is part of the 'scripts used to control compilation and +installation of the executable', and as such it is considered part of the +material that must be redistributed. + +Keep in mind that this is only the Buildroot developers' opinion, and you +should consult your legal department or lawyer in case of any doubt. + +==== Patches to packages + +Buildroot also bundles patch files, which are applied to the sources +of the various packages. Those patches are not covered by the license +of Buildroot. Instead, they are covered by the license of the software +to which the patches are applied. When said software is available +under multiple licenses, the Buildroot patches are only provided under +the publicly accessible licenses. + +See xref:patch-policy[] for the technical details. diff --git a/docs/manual/logo.png b/docs/manual/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2db743b4fa93820a2ad38bdafb1dbaafe7805fee GIT binary patch literal 117499 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

@^9-lMJ|?5P$*(2?$!~9H(~3( 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

EVr2UX@4T=+T75|uU{D1 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�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 Y0Zm>X7-miADgXcg07*qoM6N<$f +-------------------- + +.Display the list of boards with a defconfig: + +-------------------- + $ make list-defconfigs +-------------------- + +.Display all available targets: + +-------------------- + $ make help +-------------------- + +Not all targets are always available, +some settings in the +.config+ file may hide some targets: + +* +busybox-menuconfig+ only works when +busybox+ is enabled; +* +linux-menuconfig+ and +linux-savedefconfig+ only work when + +linux+ is enabled; +* +uclibc-menuconfig+ is only available when the uClibc C library is + selected in the internal toolchain backend; +* +barebox-menuconfig+ and +barebox-savedefconfig+ only work when the + +barebox+ bootloader is enabled. +* +uboot-menuconfig+ and +uboot-savedefconfig+ only work when the + +U-Boot+ bootloader is enabled and the +uboot+ build system is set + to +Kconfig+. + +.Cleaning: + +Explicit cleaning is required when any of the architecture or toolchain +configuration options are changed. + +To delete all build products (including build directories, host, staging +and target trees, the images and the toolchain): + +-------------------- + $ make clean +-------------------- + +.Generating the manual: + +The present manual sources are located in the 'docs/manual' directory. +To generate the manual: + +--------------------------------- + $ make manual-clean + $ make manual +--------------------------------- + +The manual outputs will be generated in 'output/docs/manual'. + +.Notes +- A few tools are required to build the documentation (see: + xref:requirement-optional[]). + +.Resetting Buildroot for a new target: + +To delete all build products as well as the configuration: + +-------------------- + $ make distclean +-------------------- + +.Notes +If +ccache+ is enabled, running +make clean+ or +distclean+ does +not empty the compiler cache used by Buildroot. To delete it, refer +to xref:ccache[]. + +.Dumping the internal make variables: + +One can dump the variables known to make, along with their values: + +---- + $ make -s printvars VARS='VARIABLE1 VARIABLE2' + VARIABLE1=value_of_variable + VARIABLE2=value_of_variable +---- + +It is possible to tweak the output using some variables: + +- +VARS+ will limit the listing to variables which names match the + specified make-patterns - this must be set else nothing is printed +- +QUOTED_VARS+, if set to +YES+, will single-quote the value +- +RAW_VARS+, if set to +YES+, will print the unexpanded value + +For example: + +---- + $ make -s printvars VARS=BUSYBOX_%DEPENDENCIES + BUSYBOX_DEPENDENCIES=skeleton toolchain + BUSYBOX_FINAL_ALL_DEPENDENCIES=skeleton toolchain + BUSYBOX_FINAL_DEPENDENCIES=skeleton toolchain + BUSYBOX_FINAL_PATCH_DEPENDENCIES= + BUSYBOX_RDEPENDENCIES=ncurses util-linux +---- + +---- + $ make -s printvars VARS=BUSYBOX_%DEPENDENCIES QUOTED_VARS=YES + BUSYBOX_DEPENDENCIES='skeleton toolchain' + BUSYBOX_FINAL_ALL_DEPENDENCIES='skeleton toolchain' + BUSYBOX_FINAL_DEPENDENCIES='skeleton toolchain' + BUSYBOX_FINAL_PATCH_DEPENDENCIES='' + BUSYBOX_RDEPENDENCIES='ncurses util-linux' +---- + +---- + $ make -s printvars VARS=BUSYBOX_%DEPENDENCIES RAW_VARS=YES + BUSYBOX_DEPENDENCIES=skeleton toolchain + BUSYBOX_FINAL_ALL_DEPENDENCIES=$(sort $(BUSYBOX_FINAL_DEPENDENCIES) $(BUSYBOX_FINAL_PATCH_DEPENDENCIES)) + BUSYBOX_FINAL_DEPENDENCIES=$(sort $(BUSYBOX_DEPENDENCIES)) + BUSYBOX_FINAL_PATCH_DEPENDENCIES=$(sort $(BUSYBOX_PATCH_DEPENDENCIES)) + BUSYBOX_RDEPENDENCIES=ncurses util-linux +---- + +The output of quoted variables can be reused in shell scripts, for example: + +---- + $ eval $(make -s printvars VARS=BUSYBOX_DEPENDENCIES QUOTED_VARS=YES) + $ echo $BUSYBOX_DEPENDENCIES + skeleton toolchain +---- diff --git a/docs/manual/makedev-syntax.txt b/docs/manual/makedev-syntax.txt new file mode 100644 index 000000000..d6efb31d4 --- /dev/null +++ b/docs/manual/makedev-syntax.txt @@ -0,0 +1,103 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +[[makedev-syntax]] +== Makedev syntax documentation + +The makedev syntax is used in several places in Buildroot to +define changes to be made for permissions, or which device files to +create and how to create them, in order to avoid calls to mknod. + +This syntax is derived from the makedev utility, and more complete +documentation can be found in the +package/makedevs/README+ file. + +It takes the form of a space separated list of fields, one file per +line; the fields are: + +|=========================================================== +|name |type |mode |uid |gid |major |minor |start |inc |count +|=========================================================== + +There are a few non-trivial blocks: + +- +name+ is the path to the file you want to create/modify +- +type+ is the type of the file, being one of: + * f: a regular file + * d: a directory + * r: a directory recursively + * c: a character device file + * b: a block device file + * p: a named pipe +- +mode+ are the usual permissions settings (only numerical values + are allowed) +- +uid+ and +gid+ are the UID and GID to set on this file; can be + either numerical values or actual names +- +major+ and +minor+ are here for device files, set to +-+ for other + files +- +start+, +inc+ and +count+ are for when you want to create a batch + of files, and can be reduced to a loop, beginning at +start+, + incrementing its counter by +inc+ until it reaches +count+ + +Let's say you want to change the permissions of a given file; using +this syntax, you will need to write: + +---- +/usr/bin/foo f 755 0 0 - - - - - +/usr/bin/bar f 755 root root - - - - - +/data/buz f 644 buz-user buz-group - - - - - +---- + +Alternatively, if you want to change owner/permission of a directory +recursively, you can write (to set UID to foo, GID to bar and access +rights to rwxr-x--- for the directory /usr/share/myapp and all files +and directories below it): + +---- +/usr/share/myapp r 750 foo bar - - - - - +---- + +On the other hand, if you want to create the device file +/dev/hda+ +and the corresponding 15 files for the partitions, you will need for ++/dev/hda+: + +---- +/dev/hda b 640 root root 3 0 0 0 - +---- + +and then for device files corresponding to the partitions of ++/dev/hda+, +/dev/hdaX+, +X+ ranging from 1 to 15: + +---- +/dev/hda b 640 root root 3 1 1 1 15 +---- + +Extended attributes are supported if ++BR2_ROOTFS_DEVICE_TABLE_SUPPORTS_EXTENDED_ATTRIBUTES+ is enabled. +This is done by adding a line starting with +|xattr+ after +the line describing the file. Right now, only capability +is supported as extended attribute. + +|===================== +| \|xattr | capability +|===================== + +- +|xattr+ is a "flag" that indicate an extended attribute +- +capability+ is a capability to add to the previous file + +If you want to add the capability cap_sys_admin to the binary foo, +you will write : + +---- +/usr/bin/foo f 755 root root - - - - - +|xattr cap_sys_admin+eip +---- + +You can add several capabilities to a file by using several +|xattr+ lines. +If you want to add the capability cap_sys_admin and cap_net_admin to the +binary foo, you will write : + +---- +/usr/bin/foo f 755 root root - - - - - +|xattr cap_sys_admin+eip +|xattr cap_net_admin+eip +---- diff --git a/docs/manual/makeusers-syntax.txt b/docs/manual/makeusers-syntax.txt new file mode 100644 index 000000000..0a955970b --- /dev/null +++ b/docs/manual/makeusers-syntax.txt @@ -0,0 +1,105 @@ +// -*- mode:doc -*- ; +// vim: set syntax=asciidoc: + +[[makeuser-syntax]] +== Makeusers syntax documentation + +The syntax to create users is inspired by the makedev syntax, above, but +is specific to Buildroot. + +The syntax for adding a user is a space-separated list of fields, one +user per line; the fields are: + +|================================================================= +|username |uid |group |gid |password |home |shell |groups |comment +|================================================================= + +Where: + +- +username+ is the desired user name (aka login name) for the user. + It can not be +root+, and must be unique. If set to +-+, then just a + group will be created. +- +uid+ is the desired UID for the user. It must be unique, and not + +0+. If set to +-1+ or +-2+, then a unique UID will be computed by + Buildroot, with +-1+ denoting a system UID from [100...999] and +-2+ + denoting a user UID from [1000...1999]. +- +group+ is the desired name for the user's main group. It can not + be +root+. If the group does not exist, it will be created. +- +gid+ is the desired GID for the user's main group. It must be unique, + and not +0+. If set to +-1+ or +-2+, and the group does not already + exist, then a unique GID will be computed by Buildroot, with +-1+ + denoting a system GID from [100...999] and +-2+ denoting a user GID + from [1000...1999]. +- +password+ is the crypt(3)-encoded password. If prefixed with +!+, + then login is disabled. If prefixed with +=+, then it is interpreted + as clear-text, and will be crypt-encoded (using MD5). If prefixed with + +!=+, then the password will be crypt-encoded (using MD5) and login + will be disabled. If set to +*+, then login is not allowed. If set to + +-+, then no password value will be set. +- +home+ is the desired home directory for the user. If set to '-', no + home directory will be created, and the user's home will be +/+. + Explicitly setting +home+ to +/+ is not allowed. +- +shell+ is the desired shell for the user. If set to +-+, then + +/bin/false+ is set as the user's shell. +- +groups+ is the comma-separated list of additional groups the user + should be part of. If set to +-+, then the user will be a member of + no additional group. Missing groups will be created with an arbitrary + +gid+. +- +comment+ (aka https://en.wikipedia.org/wiki/Gecos_field[GECOS] + field) is an almost-free-form text. + +There are a few restrictions on the content of each field: + +* except for +comment+, all fields are mandatory. +* except for +comment+, fields may not contain spaces. +* no field may contain a colon (+:+). + +If +home+ is not +-+, then the home directory, and all files below, +will belong to the user and its main group. + +Examples: + +---- +foo -1 bar -1 !=blabla /home/foo /bin/sh alpha,bravo Foo user +---- + +This will create this user: + +- +username+ (aka login name) is: +foo+ +- +uid+ is computed by Buildroot +- main +group+ is: +bar+ +- main group +gid+ is computed by Buildroot +- clear-text +password+ is: +blabla+, will be crypt(3)-encoded, and login is disabled. +- +home+ is: +/home/foo+ +- +shell+ is: +/bin/sh+ +- +foo+ is also a member of +groups+: +alpha+ and +bravo+ +- +comment+ is: +Foo user+ + +---- +test 8000 wheel -1 = - /bin/sh - Test user +---- + +This will create this user: + +- +username+ (aka login name) is: +test+ +- +uid+ is : +8000+ +- main +group+ is: +wheel+ +- main group +gid+ is computed by Buildroot, and will use the value defined in the rootfs skeleton +- +password+ is empty (aka no password). +- +home+ is +/+ but will not belong to +test+ +- +shell+ is: +/bin/sh+ +- +test+ is not a member of any additional +groups+ +- +comment+ is: +Test user+ + + +=== Caveat with automatic UIDs and GIDs + +When updating buildroot or when packages are added or removed to/from +the configuration, it is possible that the automatic UIDs and GIDs are +changed. This can be a problem if persistent files were created with +that user or group: after upgrade, they will suddenly have a different +owner. + +Therefore, it is advisable to perpetuate the automatic IDs. This can be +done by adding a users table with the generated IDs. It is only needed +to do this for UIDs that actually create persistent files, e.g. database. diff --git a/docs/manual/manual.html b/docs/manual/manual.html new file mode 100644 index 000000000..9d3cb3608 --- /dev/null +++ b/docs/manual/manual.html @@ -0,0 +1,6082 @@ + +The Buildroot user manual

The Buildroot user manual


Table of Contents

I. Getting started
1. About Buildroot
2. System requirements
2.1. Mandatory packages
2.2. Optional packages
3. Getting Buildroot
4. Buildroot quick start
5. Community resources
II. User guide
6. Buildroot configuration
6.1. Cross-compilation toolchain
6.2. /dev management
6.3. init system
7. Configuration of other components
8. General Buildroot usage
8.1. make tips
8.2. Understanding when a full rebuild is necessary
8.3. Understanding how to rebuild packages
8.4. Offline builds
8.5. Building out-of-tree
8.6. Environment variables
8.7. Dealing efficiently with filesystem images
8.8. Details about packages
8.9. Graphing the dependencies between packages
8.10. Graphing the build duration
8.11. Graphing the filesystem size contribution of packages
8.12. Top-level parallel build
8.13. Advanced usage
9. Project-specific customization
9.1. Recommended directory structure
9.2. Keeping customizations outside of Buildroot
9.3. Storing the Buildroot configuration
9.4. Storing the configuration of other components
9.5. Customizing the generated target filesystem
9.6. Adding custom user accounts
9.7. Customization after the images have been created
9.8. Adding project-specific patches
9.9. Adding project-specific packages
9.10. Quick guide to storing your project-specific customizations
10. Integration topics
10.1. Systemd
10.2. Using SELinux in Buildroot
11. Frequently Asked Questions & Troubleshooting
11.1. The boot hangs after Starting network…
11.2. Why is there no compiler on the target?
11.3. Why are there no development files on the target?
11.4. Why is there no documentation on the target?
11.5. Why are some packages not visible in the Buildroot config menu?
11.6. Why not use the target directory as a chroot directory?
11.7. Why doesn’t Buildroot generate binary packages (.deb, .ipkg…)?
11.8. How to speed-up the build process?
12. Known issues
13. Legal notice and licensing
13.1. Complying with open source licenses
13.2. Complying with the Buildroot license
14. Beyond Buildroot
14.1. Boot the generated images
14.2. Chroot
III. Developer guide
15. How Buildroot works
16. Coding style
16.1. Config.in file
16.2. The .mk file
16.3. The genimage.cfg file
16.4. The documentation
16.5. Support scripts
17. Adding support for a particular board
18. Adding new packages to Buildroot
18.1. Package directory
18.2. Config files
18.3. The .mk file
18.4. The .hash file
18.5. The SNNfoo start script
18.6. Infrastructure for packages with specific build systems
18.7. Infrastructure for autotools-based packages
18.8. Infrastructure for CMake-based packages
18.9. Infrastructure for Python packages
18.10. Infrastructure for LuaRocks-based packages
18.11. Infrastructure for Perl/CPAN packages
18.12. Infrastructure for virtual packages
18.13. Infrastructure for packages using kconfig for configuration files
18.14. Infrastructure for rebar-based packages
18.15. Infrastructure for Waf-based packages
18.16. Infrastructure for Meson-based packages
18.17. Infrastructure for Cargo-based packages
18.18. Infrastructure for Go packages
18.19. Infrastructure for QMake-based packages
18.20. Infrastructure for packages building kernel modules
18.21. Infrastructure for asciidoc documents
18.22. Infrastructure specific to the Linux kernel package
18.23. Hooks available in the various build steps
18.24. Gettext integration and interaction with packages
18.25. Tips and tricks
18.26. Conclusion
19. Patching a package
19.1. Providing patches
19.2. How patches are applied
19.3. Format and licensing of the package patches
19.4. Integrating patches found on the Web
20. Download infrastructure
21. Debugging Buildroot
22. Contributing to Buildroot
22.1. Reproducing, analyzing and fixing bugs
22.2. Analyzing and fixing autobuild failures
22.3. Reviewing and testing patches
22.4. Work on items from the TODO list
22.5. Submitting patches
22.6. Reporting issues/bugs or getting help
22.7. Using the runtime tests framework
23. DEVELOPERS file and get-developers
24. Release Engineering
24.1. Releases
24.2. Development
IV. Appendix
25. Makedev syntax documentation
26. Makeusers syntax documentation
26.1. Caveat with automatic UIDs and GIDs
27. Migrating from older Buildroot versions
27.1. General approach
27.2. Migrating to 2016.11
27.3. Migrating to 2017.08

Buildroot 2022.08.1 manual generated on 2022-10-02 +21:22:56 UTC from git revision 25d865996d

The Buildroot manual is written by the Buildroot developers. +It is licensed under the GNU General Public License, version 2. Refer to the +COPYING +file in the Buildroot sources for the full text of this license.

Copyright © 2004-2020 The Buildroot developers

logo.png

Part I. Getting started

Chapter 1. About Buildroot

Buildroot is a tool that simplifies and automates the process of +building a complete Linux system for an embedded system, using +cross-compilation.

In order to achieve this, Buildroot is able to generate a +cross-compilation toolchain, a root filesystem, a Linux kernel image +and a bootloader for your target. Buildroot can be used for any +combination of these options, independently (you can for example use +an existing cross-compilation toolchain, and build only your root +filesystem with Buildroot).

Buildroot is useful mainly for people working with embedded systems. +Embedded systems often use processors that are not the regular x86 +processors everyone is used to having in his PC. They can be PowerPC +processors, MIPS processors, ARM processors, etc.

Buildroot supports numerous processors and their variants; it also +comes with default configurations for several boards available +off-the-shelf. Besides this, a number of third-party projects are based on, +or develop their BSP [1] or +SDK [2] on top of Buildroot.



[1] BSP: Board Support Package

[2] SDK: Software Development Kit

Chapter 2. System requirements

Buildroot is designed to run on Linux systems.

While Buildroot itself will build most host packages it needs for the +compilation, certain standard Linux utilities are expected to be +already installed on the host system. Below you will find an overview of +the mandatory and optional packages (note that package names may vary +between distributions).

2.1. Mandatory packages

  • +Build tools: +

    • +which +
    • +sed +
    • +make (version 3.81 or any later) +
    • +binutils +
    • +build-essential (only for Debian based systems) +
    • +diffutils +
    • +gcc (version 4.8 or any later) +
    • +g++ (version 4.8 or any later) +
    • +bash +
    • +patch +
    • +gzip +
    • +bzip2 +
    • +perl (version 5.8.7 or any later) +
    • +tar +
    • +cpio +
    • +unzip +
    • +rsync +
    • +file (must be in /usr/bin/file) +
    • +bc +
    • +findutils +
  • +Source fetching tools: +

    • +wget +

2.2. Optional packages

  • +Recommended dependencies: +

    Some features or utilities in Buildroot, like the legal-info, or the +graph generation tools, have additional dependencies. Although they +are not mandatory for a simple build, they are still highly recommended:

    • +python (version 2.7 or any later) +
  • +Configuration interface dependencies: +

    For these libraries, you need to install both runtime and development +data, which in many distributions are packaged separately. The +development packages typically have a -dev or -devel suffix.

    • +ncurses5 to use the menuconfig interface +
    • +qt5 to use the xconfig interface +
    • +glib2, gtk2 and glade2 to use the gconfig interface +
  • +Source fetching tools: +

    In the official tree, most of the package sources are retrieved using +wget from ftp, http or https locations. A few packages are only +available through a version control system. Moreover, Buildroot is +capable of downloading sources via other tools, like rsync or scp +(refer to Chapter 20, Download infrastructure for more details). If you enable +packages using any of these methods, you will need to install the +corresponding tool on the host system:

    • +bazaar +
    • +cvs +
    • +git +
    • +mercurial +
    • +rsync +
    • +scp +
    • +sftp +
    • +subversion +
  • +Java-related packages, if the Java Classpath needs to be built for + the target system: +

    • +The javac compiler +
    • +The jar tool +
  • +Documentation generation tools: +

    • +asciidoc, version 8.6.3 or higher +
    • +w3m +
    • +python with the argparse module (automatically present in 2.7+ and 3.2+) +
    • +dblatex (required for the pdf manual only) +
  • +Graph generation tools: +

    • +graphviz to use graph-depends and <pkg>-graph-depends +
    • +python-matplotlib to use graph-build +

Chapter 3. Getting Buildroot

Buildroot releases are made every 3 months, in February, May, August and +November. Release numbers are in the format YYYY.MM, so for example +2013.02, 2014.08.

Release tarballs are available at http://buildroot.org/downloads/.

For your convenience, a Vagrantfile is +available in support/misc/Vagrantfile in the Buildroot source tree +to quickly set up a virtual machine with the needed dependencies to +get started.

If you want to setup an isolated buildroot environment on Linux or Mac +Os X, paste this line onto your terminal:

curl -O https://buildroot.org/downloads/Vagrantfile; vagrant up

If you are on Windows, paste this into your powershell:

(new-object System.Net.WebClient).DownloadFile(
+"https://buildroot.org/downloads/Vagrantfile","Vagrantfile");
+vagrant up

If you want to follow development, you can use the daily snapshots or +make a clone of the Git repository. Refer to the +Download page of the Buildroot website +for more details.

Chapter 4. Buildroot quick start

Important: you can and should build everything as a normal user. There +is no need to be root to configure and use Buildroot. By running all +commands as a regular user, you protect your system against packages +behaving badly during compilation and installation.

The first step when using Buildroot is to create a configuration. +Buildroot has a nice configuration tool similar to the one you can +find in the Linux kernel or in +BusyBox.

From the buildroot directory, run

 $ make menuconfig

for the original curses-based configurator, or

 $ make nconfig

for the new curses-based configurator, or

 $ make xconfig

for the Qt-based configurator, or

 $ make gconfig

for the GTK-based configurator.

All of these "make" commands will need to build a configuration +utility (including the interface), so you may need to install +"development" packages for relevant libraries used by the +configuration utilities. Refer to Chapter 2, System requirements for more details, +specifically the optional requirements +to get the dependencies of your favorite interface.

For each menu entry in the configuration tool, you can find associated +help that describes the purpose of the entry. Refer to Chapter 6, Buildroot configuration +for details on some specific configuration aspects.

Once everything is configured, the configuration tool generates a +.config file that contains the entire configuration. This file will be +read by the top-level Makefile.

To start the build process, simply run:

 $ make

By default, Buildroot does not support top-level parallel build, so +running make -jN is not necessary. There is however experimental +support for top-level parallel build, see +Section 8.12, “Top-level parallel buildâ€.

The make command will generally perform the following steps:

  • +download source files (as required); +
  • +configure, build and install the cross-compilation toolchain, or + simply import an external toolchain; +
  • +configure, build and install selected target packages; +
  • +build a kernel image, if selected; +
  • +build a bootloader image, if selected; +
  • +create a root filesystem in selected formats. +

Buildroot output is stored in a single directory, output/. +This directory contains several subdirectories:

  • +images/ where all the images (kernel image, bootloader and root + filesystem images) are stored. These are the files you need to put + on your target system. +
  • +build/ where all the components are built (this includes tools + needed by Buildroot on the host and packages compiled for the + target). This directory contains one subdirectory for each of these + components. +
  • +host/ contains both the tools built for the host, and the sysroot + of the target toolchain. The former is an installation of tools + compiled for the host that are needed for the proper execution of + Buildroot, including the cross-compilation toolchain. The latter + is a hierarchy similar to a root filesystem hierarchy. It contains + the headers and libraries of all user-space packages that provide + and install libraries used by other packages. However, this + directory is not intended to be the root filesystem for the target: + it contains a lot of development files, unstripped binaries and + libraries that make it far too big for an embedded system. These + development files are used to compile libraries and applications for + the target that depend on other libraries. +
  • +staging/ is a symlink to the target toolchain sysroot inside + host/, which exists for backwards compatibility. +
  • +target/ which contains almost the complete root filesystem for + the target: everything needed is present except the device files in + /dev/ (Buildroot can’t create them because Buildroot doesn’t run + as root and doesn’t want to run as root). Also, it doesn’t have the correct + permissions (e.g. setuid for the busybox binary). Therefore, this directory + should not be used on your target. Instead, you should use one of + the images built in the images/ directory. If you need an + extracted image of the root filesystem for booting over NFS, then + use the tarball image generated in images/ and extract it as + root. Compared to staging/, target/ contains only the files and + libraries needed to run the selected target applications: the + development files (headers, etc.) are not present, the binaries are + stripped. +

These commands, make menuconfig|nconfig|gconfig|xconfig and make, are the +basic ones that allow to easily and quickly generate images fitting +your needs, with all the features and applications you enabled.

More details about the "make" command usage are given in +Section 8.1, “make tipsâ€.

Chapter 5. Community resources

Like any open source project, Buildroot has different ways to share +information in its community and outside.

Each of those ways may interest you if you are looking for some help, +want to understand Buildroot or contribute to the project.

+Mailing List +

Buildroot has a mailing list for discussion and development. It is the +main method of interaction for Buildroot users and developers.

Only subscribers to the Buildroot mailing list are allowed to post to +this list. You can subscribe via the +mailing list info +page.

Mails that are sent to the mailing list are also available in the +mailing list archives, available through +Mailman or at +lore.kernel.org.

+IRC +

The Buildroot IRC channel #buildroot is +hosted on OFTC. It is a useful place to +ask quick questions or discuss on certain topics.

When asking for help on IRC, share relevant logs or pieces of code +using a code sharing website, such as https://paste.ack.tf/.

Note that for certain questions, posting to the mailing list may be +better as it will reach more people, both developers and users.

+Bug tracker +
Bugs in Buildroot can be reported via the mailing list or alternatively +via the Buildroot +bugtracker. Please refer to Section 22.6, “Reporting issues/bugs or getting help†before creating a bug +report.
+Wiki +
The Buildroot wiki page is hosted on +the eLinux wiki. It contains some useful links, an +overview of past and upcoming events, and a TODO list.
+Patchwork +

Patchwork is a web-based patch tracking system designed to facilitate +the contribution and management of contributions to an open-source +project. Patches that have been sent to a mailing list are 'caught' by +the system, and appear on a web page. Any comments posted that +reference the patch are appended to the patch page too. For more +information on Patchwork see +http://jk.ozlabs.org/projects/patchwork/.

Buildroot’s Patchwork website is mainly for use by Buildroot’s +maintainer to ensure patches aren’t missed. It is also used by Buildroot +patch reviewers (see also Section 22.3.1, “Applying Patches from Patchworkâ€). +However, since the website exposes patches and their corresponding +review comments in a clean and concise web interface, it can be useful +for all Buildroot developers.

The Buildroot patch management interface is available at +https://patchwork.ozlabs.org/project/buildroot/list/.

Part II. User guide

Chapter 6. Buildroot configuration

All the configuration options in make *config have a help text +providing details about the option.

The make *config commands also offer a search tool. Read the help +message in the different frontend menus to know how to use it:

  • +in menuconfig, the search tool is called by pressing /; +
  • +in xconfig, the search tool is called by pressing Ctrl + f. +

The result of the search shows the help message of the matching items. +In menuconfig, numbers in the left column provide a shortcut to the +corresponding entry. Just type this number to directly jump to the +entry, or to the containing menu in case the entry is not selectable due +to a missing dependency.

Although the menu structure and the help text of the entries should be +sufficiently self-explanatory, a number of topics require additional +explanation that cannot easily be covered in the help text and are +therefore covered in the following sections.

6.1. Cross-compilation toolchain

A compilation toolchain is the set of tools that allows you to compile +code for your system. It consists of a compiler (in our case, gcc), +binary utils like assembler and linker (in our case, binutils) and a +C standard library (for example +GNU Libc, +uClibc-ng).

The system installed on your development station certainly already has +a compilation toolchain that you can use to compile an application +that runs on your system. If you’re using a PC, your compilation +toolchain runs on an x86 processor and generates code for an x86 +processor. Under most Linux systems, the compilation toolchain uses +the GNU libc (glibc) as the C standard library. This compilation +toolchain is called the "host compilation toolchain". The machine on +which it is running, and on which you’re working, is called the "host +system" [3].

The compilation toolchain is provided by your distribution, and +Buildroot has nothing to do with it (other than using it to build a +cross-compilation toolchain and other tools that are run on the +development host).

As said above, the compilation toolchain that comes with your system +runs on and generates code for the processor in your host system. As +your embedded system has a different processor, you need a +cross-compilation toolchain - a compilation toolchain that runs on +your host system but generates code for your target system (and +target processor). For example, if your host system uses x86 and your +target system uses ARM, the regular compilation toolchain on your host +runs on x86 and generates code for x86, while the cross-compilation +toolchain runs on x86 and generates code for ARM.

Buildroot provides two solutions for the cross-compilation toolchain:

  • +The internal toolchain backend, called Buildroot toolchain in + the configuration interface. +
  • +The external toolchain backend, called External toolchain in + the configuration interface. +

The choice between these two solutions is done using the Toolchain +Type option in the Toolchain menu. Once one solution has been +chosen, a number of configuration options appear, they are detailed in +the following sections.

6.1.1. Internal toolchain backend

The internal toolchain backend is the backend where Buildroot builds +by itself a cross-compilation toolchain, before building the userspace +applications and libraries for your target embedded system.

This backend supports several C libraries: +uClibc-ng, +glibc and +musl.

Once you have selected this backend, a number of options appear. The +most important ones allow to:

  • +Change the version of the Linux kernel headers used to build the + toolchain. This item deserves a few explanations. In the process of + building a cross-compilation toolchain, the C library is being + built. This library provides the interface between userspace + applications and the Linux kernel. In order to know how to "talk" + to the Linux kernel, the C library needs to have access to the + Linux kernel headers (i.e. the .h files from the kernel), which + define the interface between userspace and the kernel (system + calls, data structures, etc.). Since this interface is backward + compatible, the version of the Linux kernel headers used to build + your toolchain do not need to match exactly the version of the + Linux kernel you intend to run on your embedded system. They only + need to have a version equal or older to the version of the Linux + kernel you intend to run. If you use kernel headers that are more + recent than the Linux kernel you run on your embedded system, then + the C library might be using interfaces that are not provided by + your Linux kernel. +
  • +Change the version of the GCC compiler, binutils and the C library. +
  • +Select a number of toolchain options (uClibc only): whether the + toolchain should have RPC support (used mainly for NFS), + wide-char support, locale support (for internationalization), + C++ support or thread support. Depending on which options you choose, + the number of userspace applications and libraries visible in + Buildroot menus will change: many applications and libraries require + certain toolchain options to be enabled. Most packages show a comment + when a certain toolchain option is required to be able to enable + those packages. If needed, you can further refine the uClibc + configuration by running make uclibc-menuconfig. Note however that + all packages in Buildroot are tested against the default uClibc + configuration bundled in Buildroot: if you deviate from this + configuration by removing features from uClibc, some packages may no + longer build. +

It is worth noting that whenever one of those options is modified, +then the entire toolchain and system must be rebuilt. See +Section 8.2, “Understanding when a full rebuild is necessaryâ€.

Advantages of this backend:

  • +Well integrated with Buildroot +
  • +Fast, only builds what’s necessary +

Drawbacks of this backend:

  • +Rebuilding the toolchain is needed when doing make clean, which + takes time. If you’re trying to reduce your build time, consider + using the External toolchain backend. +

6.1.2. External toolchain backend

The external toolchain backend allows to use existing pre-built +cross-compilation toolchains. Buildroot knows about a number of +well-known cross-compilation toolchains (from +Linaro for ARM, +Sourcery +CodeBench for ARM, x86-64, PowerPC, and MIPS, and is capable of +downloading them automatically, or it can be pointed to a custom +toolchain, either available for download or installed locally.

Then, you have three solutions to use an external toolchain:

  • +Use a predefined external toolchain profile, and let Buildroot + download, extract and install the toolchain. Buildroot already knows + about a few CodeSourcery and Linaro toolchains. Just select the + toolchain profile in Toolchain from the available ones. This is + definitely the easiest solution. +
  • +Use a predefined external toolchain profile, but instead of having + Buildroot download and extract the toolchain, you can tell Buildroot + where your toolchain is already installed on your system. Just + select the toolchain profile in Toolchain through the available + ones, unselect Download toolchain automatically, and fill the + Toolchain path text entry with the path to your cross-compiling + toolchain. +
  • +Use a completely custom external toolchain. This is particularly + useful for toolchains generated using crosstool-NG or with Buildroot + itself. To do this, select the Custom toolchain solution in the + Toolchain list. You need to fill the Toolchain path, Toolchain + prefix and External toolchain C library options. Then, you have + to tell Buildroot what your external toolchain supports. If your + external toolchain uses the glibc library, you only have to tell + whether your toolchain supports C++ or not and whether it has + built-in RPC support. If your external toolchain uses the uClibc + library, then you have to tell Buildroot if it supports RPC, + wide-char, locale, program invocation, threads and C++. + At the beginning of the execution, Buildroot will tell you if + the selected options do not match the toolchain configuration. +

Our external toolchain support has been tested with toolchains from +CodeSourcery and Linaro, toolchains generated by +crosstool-NG, and toolchains generated by +Buildroot itself. In general, all toolchains that support the +sysroot feature should work. If not, do not hesitate to contact the +developers.

We do not support toolchains or SDK generated by OpenEmbedded or +Yocto, because these toolchains are not pure toolchains (i.e. just the +compiler, binutils, the C and C++ libraries). Instead these toolchains +come with a very large set of pre-compiled libraries and +programs. Therefore, Buildroot cannot import the sysroot of the +toolchain, as it would contain hundreds of megabytes of pre-compiled +libraries that are normally built by Buildroot.

We also do not support using the distribution toolchain (i.e. the +gcc/binutils/C library installed by your distribution) as the +toolchain to build software for the target. This is because your +distribution toolchain is not a "pure" toolchain (i.e. only with the +C/C++ library), so we cannot import it properly into the Buildroot +build environment. So even if you are building a system for a x86 or +x86_64 target, you have to generate a cross-compilation toolchain with +Buildroot or crosstool-NG.

If you want to generate a custom toolchain for your project, that can +be used as an external toolchain in Buildroot, our recommendation is +to build it either with Buildroot itself (see +Section 6.1.3, “Build an external toolchain with Buildrootâ€) or with +crosstool-NG.

Advantages of this backend:

  • +Allows to use well-known and well-tested cross-compilation + toolchains. +
  • +Avoids the build time of the cross-compilation toolchain, which is + often very significant in the overall build time of an embedded + Linux system. +

Drawbacks of this backend:

  • +If your pre-built external toolchain has a bug, may be hard to get a + fix from the toolchain vendor, unless you build your external + toolchain by yourself using Buildroot or Crosstool-NG. +

6.1.3. Build an external toolchain with Buildroot

The Buildroot internal toolchain option can be used to create an +external toolchain. Here are a series of steps to build an internal +toolchain and package it up for reuse by Buildroot itself (or other +projects).

Create a new Buildroot configuration, with the following details:

  • +Select the appropriate Target options for your target CPU + architecture +
  • +In the Toolchain menu, keep the default of Buildroot toolchain + for Toolchain type, and configure your toolchain as desired +
  • +In the System configuration menu, select None as the Init + system and none as /bin/sh +
  • +In the Target packages menu, disable BusyBox +
  • +In the Filesystem images menu, disable tar the root filesystem +

Then, we can trigger the build, and also ask Buildroot to generate a +SDK. This will conveniently generate for us a tarball which contains +our toolchain:

make sdk

This produces the SDK tarball in $(O)/images, with a name similar to +arm-buildroot-linux-uclibcgnueabi_sdk-buildroot.tar.gz. Save this +tarball, as it is now the toolchain that you can re-use as an external +toolchain in other Buildroot projects.

In those other Buildroot projects, in the Toolchain menu:

  • +Set Toolchain type to External toolchain +
  • +Set Toolchain to Custom toolchain +
  • +Set Toolchain origin to Toolchain to be downloaded and installed +
  • +Set Toolchain URL to file:///path/to/your/sdk/tarball.tar.gz +

External toolchain wrapper

When using an external toolchain, Buildroot generates a wrapper program, +that transparently passes the appropriate options (according to the +configuration) to the external toolchain programs. In case you need to +debug this wrapper to check exactly what arguments are passed, you can +set the environment variable BR2_DEBUG_WRAPPER to either one of:

  • +0, empty or not set: no debug +
  • +1: trace all arguments on a single line +
  • +2: trace one argument per line +

6.2. /dev management

On a Linux system, the /dev directory contains special files, called +device files, that allow userspace applications to access the +hardware devices managed by the Linux kernel. Without these device +files, your userspace applications would not be able to use the +hardware devices, even if they are properly recognized by the Linux +kernel.

Under System configuration, /dev management, Buildroot offers four +different solutions to handle the /dev directory :

  • +The first solution is Static using device table. This is the old + classical way of handling device files in Linux. With this method, + the device files are persistently stored in the root filesystem + (i.e. they persist across reboots), and there is nothing that will + automatically create and remove those device files when hardware + devices are added or removed from the system. Buildroot therefore + creates a standard set of device files using a device table, the + default one being stored in system/device_table_dev.txt in the + Buildroot source code. This file is processed when Buildroot + generates the final root filesystem image, and the device files + are therefore not visible in the output/target directory. The + BR2_ROOTFS_STATIC_DEVICE_TABLE option allows to change the + default device table used by Buildroot, or to add an additional + device table, so that additional device files are created by + Buildroot during the build. So, if you use this method, and a + device file is missing in your system, you can for example create + a board/<yourcompany>/<yourproject>/device_table_dev.txt file + that contains the description of your additional device files, + and then you can set BR2_ROOTFS_STATIC_DEVICE_TABLE to + system/device_table_dev.txt + board/<yourcompany>/<yourproject>/device_table_dev.txt. For more + details about the format of the device table file, see + Chapter 25, Makedev syntax documentation. +
  • +The second solution is Dynamic using devtmpfs only. devtmpfs is + a virtual filesystem inside the Linux kernel that has been + introduced in kernel 2.6.32 (if you use an older kernel, it is not + possible to use this option). When mounted in /dev, this virtual + filesystem will automatically make device files appear and + disappear as hardware devices are added and removed from the + system. This filesystem is not persistent across reboots: it is + filled dynamically by the kernel. Using devtmpfs requires the + following kernel configuration options to be enabled: + CONFIG_DEVTMPFS and CONFIG_DEVTMPFS_MOUNT. When Buildroot is in + charge of building the Linux kernel for your embedded device, it + makes sure that those two options are enabled. However, if you + build your Linux kernel outside of Buildroot, then it is your + responsibility to enable those two options (if you fail to do so, + your Buildroot system will not boot). +
  • +The third solution is Dynamic using devtmpfs + mdev. This method + also relies on the devtmpfs virtual filesystem detailed above (so + the requirement to have CONFIG_DEVTMPFS and + CONFIG_DEVTMPFS_MOUNT enabled in the kernel configuration still + apply), but adds the mdev userspace utility on top of it. mdev + is a program part of BusyBox that the kernel will call every time a + device is added or removed. Thanks to the /etc/mdev.conf + configuration file, mdev can be configured to for example, set + specific permissions or ownership on a device file, call a script + or application whenever a device appears or disappear, + etc. Basically, it allows userspace to react on device addition + and removal events. mdev can for example be used to automatically + load kernel modules when devices appear on the system. mdev is + also important if you have devices that require a firmware, as it + will be responsible for pushing the firmware contents to the + kernel. mdev is a lightweight implementation (with fewer + features) of udev. For more details about mdev and the syntax + of its configuration file, see + http://git.busybox.net/busybox/tree/docs/mdev.txt. +
  • +The fourth solution is Dynamic using devtmpfs + eudev. This + method also relies on the devtmpfs virtual filesystem detailed + above, but adds the eudev userspace daemon on top of it. eudev + is a daemon that runs in the background, and gets called by the + kernel when a device gets added or removed from the system. It is a + more heavyweight solution than mdev, but provides higher + flexibility. eudev is a standalone version of udev, the + original userspace daemon used in most desktop Linux distributions, + which is now part of Systemd. For more details, see + http://en.wikipedia.org/wiki/Udev. +

The Buildroot developers recommendation is to start with the Dynamic +using devtmpfs only solution, until you have the need for userspace +to be notified when devices are added/removed, or if firmwares are +needed, in which case Dynamic using devtmpfs + mdev is usually a +good solution.

Note that if systemd is chosen as init system, /dev management will +be performed by the udev program provided by systemd.

6.3. init system

The init program is the first userspace program started by the +kernel (it carries the PID number 1), and is responsible for starting +the userspace services and programs (for example: web server, +graphical applications, other network servers, etc.).

Buildroot allows to use three different types of init systems, which +can be chosen from System configuration, Init system:

  • +The first solution is BusyBox. Amongst many programs, BusyBox has + an implementation of a basic init program, which is sufficient + for most embedded systems. Enabling the BR2_INIT_BUSYBOX will + ensure BusyBox will build and install its init program. This is + the default solution in Buildroot. The BusyBox init program will + read the /etc/inittab file at boot to know what to do. The syntax + of this file can be found in + http://git.busybox.net/busybox/tree/examples/inittab (note that + BusyBox inittab syntax is special: do not use a random inittab + documentation from the Internet to learn about BusyBox + inittab). The default inittab in Buildroot is stored in + system/skeleton/etc/inittab. Apart from mounting a few important + filesystems, the main job the default inittab does is to start the + /etc/init.d/rcS shell script, and start a getty program (which + provides a login prompt). +
  • +The second solution is systemV. This solution uses the old + traditional sysvinit program, packed in Buildroot in + package/sysvinit. This was the solution used in most desktop + Linux distributions, until they switched to more recent + alternatives such as Upstart or Systemd. sysvinit also works with + an inittab file (which has a slightly different syntax than the + one from BusyBox). The default inittab installed with this init + solution is located in package/sysvinit/inittab. +
  • +The third solution is systemd. systemd is the new generation + init system for Linux. It does far more than traditional init + programs: aggressive parallelization capabilities, uses socket and + D-Bus activation for starting services, offers on-demand starting + of daemons, keeps track of processes using Linux control groups, + supports snapshotting and restoring of the system state, + etc. systemd will be useful on relatively complex embedded + systems, for example the ones requiring D-Bus and services + communicating between each other. It is worth noting that systemd + brings a fairly big number of large dependencies: dbus, udev + and more. For more details about systemd, see + http://www.freedesktop.org/wiki/Software/systemd. +

The solution recommended by Buildroot developers is to use the +BusyBox init as it is sufficient for most embedded +systems. systemd can be used for more complex situations.



[3] This terminology differs from what is used by GNU +configure, where the host is the machine on which the application will +run (which is usually the same as target)

Chapter 7. Configuration of other components

Before attempting to modify any of the components below, make sure you +have already configured Buildroot itself, and have enabled the +corresponding package.

+BusyBox +

If you already have a BusyBox configuration file, you can directly +specify this file in the Buildroot configuration, using +BR2_PACKAGE_BUSYBOX_CONFIG. Otherwise, Buildroot will start from a +default BusyBox configuration file.

To make subsequent changes to the configuration, use make +busybox-menuconfig to open the BusyBox configuration editor.

It is also possible to specify a BusyBox configuration file through an +environment variable, although this is not recommended. Refer to +Section 8.6, “Environment variables†for more details.

+uClibc +
Configuration of uClibc is done in the same way as for BusyBox. The +configuration variable to specify an existing configuration file is +BR2_UCLIBC_CONFIG. The command to make subsequent changes is make +uclibc-menuconfig.
+Linux kernel +

If you already have a kernel configuration file, you can directly +specify this file in the Buildroot configuration, using +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG.

If you do not yet have a kernel configuration file, you can either start +by specifying a defconfig in the Buildroot configuration, using +BR2_LINUX_KERNEL_USE_DEFCONFIG, or start by creating an empty file and +specifying it as custom configuration file, using +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG.

To make subsequent changes to the configuration, use make +linux-menuconfig to open the Linux configuration editor.

+Barebox +
Configuration of Barebox is done in the same way as for the Linux +kernel. The corresponding configuration variables are +BR2_TARGET_BAREBOX_USE_CUSTOM_CONFIG and +BR2_TARGET_BAREBOX_USE_DEFCONFIG. To open the configuration editor, +use make barebox-menuconfig.
+U-Boot +
Configuration of U-Boot (version 2015.04 or newer) is done in the same +way as for the Linux kernel. The corresponding configuration variables +are BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG and +BR2_TARGET_UBOOT_USE_DEFCONFIG. To open the configuration editor, +use make uboot-menuconfig.

Chapter 8. General Buildroot usage

8.1. make tips

This is a collection of tips that help you make the most of Buildroot.

Display all commands executed by make:  +

 $ make V=1 <target>

+

Display the list of boards with a defconfig:  +

 $ make list-defconfigs

+

Display all available targets:  +

 $ make help

+

Not all targets are always available, +some settings in the .config file may hide some targets:

  • +busybox-menuconfig only works when busybox is enabled; +
  • +linux-menuconfig and linux-savedefconfig only work when + linux is enabled; +
  • +uclibc-menuconfig is only available when the uClibc C library is + selected in the internal toolchain backend; +
  • +barebox-menuconfig and barebox-savedefconfig only work when the + barebox bootloader is enabled. +
  • +uboot-menuconfig and uboot-savedefconfig only work when the + U-Boot bootloader is enabled and the uboot build system is set + to Kconfig. +

Cleaning: Explicit cleaning is required when any of the architecture or toolchain +configuration options are changed.

To delete all build products (including build directories, host, staging +and target trees, the images and the toolchain):

 $ make clean

Generating the manual: The present manual sources are located in the docs/manual directory. +To generate the manual:

 $ make manual-clean
+ $ make manual

The manual outputs will be generated in output/docs/manual.

Notes

Resetting Buildroot for a new target: To delete all build products as well as the configuration:

 $ make distclean

Notes. If ccache is enabled, running make clean or distclean does +not empty the compiler cache used by Buildroot. To delete it, refer +to Section 8.13.3, “Using ccache in Buildrootâ€.

Dumping the internal make variables: One can dump the variables known to make, along with their values:

 $ make -s printvars VARS='VARIABLE1 VARIABLE2'
+ VARIABLE1=value_of_variable
+ VARIABLE2=value_of_variable

It is possible to tweak the output using some variables:

  • +VARS will limit the listing to variables which names match the + specified make-patterns - this must be set else nothing is printed +
  • +QUOTED_VARS, if set to YES, will single-quote the value +
  • +RAW_VARS, if set to YES, will print the unexpanded value +

For example:

 $ make -s printvars VARS=BUSYBOX_%DEPENDENCIES
+ BUSYBOX_DEPENDENCIES=skeleton toolchain
+ BUSYBOX_FINAL_ALL_DEPENDENCIES=skeleton toolchain
+ BUSYBOX_FINAL_DEPENDENCIES=skeleton toolchain
+ BUSYBOX_FINAL_PATCH_DEPENDENCIES=
+ BUSYBOX_RDEPENDENCIES=ncurses util-linux
 $ make -s printvars VARS=BUSYBOX_%DEPENDENCIES QUOTED_VARS=YES
+ BUSYBOX_DEPENDENCIES='skeleton toolchain'
+ BUSYBOX_FINAL_ALL_DEPENDENCIES='skeleton toolchain'
+ BUSYBOX_FINAL_DEPENDENCIES='skeleton toolchain'
+ BUSYBOX_FINAL_PATCH_DEPENDENCIES=''
+ BUSYBOX_RDEPENDENCIES='ncurses util-linux'
 $ make -s printvars VARS=BUSYBOX_%DEPENDENCIES RAW_VARS=YES
+ BUSYBOX_DEPENDENCIES=skeleton toolchain
+ BUSYBOX_FINAL_ALL_DEPENDENCIES=$(sort $(BUSYBOX_FINAL_DEPENDENCIES) $(BUSYBOX_FINAL_PATCH_DEPENDENCIES))
+ BUSYBOX_FINAL_DEPENDENCIES=$(sort $(BUSYBOX_DEPENDENCIES))
+ BUSYBOX_FINAL_PATCH_DEPENDENCIES=$(sort $(BUSYBOX_PATCH_DEPENDENCIES))
+ BUSYBOX_RDEPENDENCIES=ncurses util-linux

The output of quoted variables can be reused in shell scripts, for example:

 $ eval $(make -s printvars VARS=BUSYBOX_DEPENDENCIES QUOTED_VARS=YES)
+ $ echo $BUSYBOX_DEPENDENCIES
+ skeleton toolchain

8.2. Understanding when a full rebuild is necessary

Buildroot does not attempt to detect what parts of the system should +be rebuilt when the system configuration is changed through make +menuconfig, make xconfig or one of the other configuration +tools. In some cases, Buildroot should rebuild the entire system, in +some cases, only a specific subset of packages. But detecting this in +a completely reliable manner is very difficult, and therefore the +Buildroot developers have decided to simply not attempt to do this.

Instead, it is the responsibility of the user to know when a full +rebuild is necessary. As a hint, here are a few rules of thumb that +can help you understand how to work with Buildroot:

  • +When the target architecture configuration is changed, a complete + rebuild is needed. Changing the architecture variant, the binary + format or the floating point strategy for example has an impact on + the entire system. +
  • +When the toolchain configuration is changed, a complete rebuild + generally is needed. Changing the toolchain configuration often + involves changing the compiler version, the type of C library or + its configuration, or some other fundamental configuration item, + and these changes have an impact on the entire system. +
  • +When an additional package is added to the configuration, a full + rebuild is not necessarily needed. Buildroot will detect that this + package has never been built, and will build it. However, if this + package is a library that can optionally be used by packages that + have already been built, Buildroot will not automatically rebuild + those. Either you know which packages should be rebuilt, and you + can rebuild them manually, or you should do a full rebuild. For + example, let’s suppose you have built a system with the ctorrent + package, but without openssl. Your system works, but you realize + you would like to have SSL support in ctorrent, so you enable the + openssl package in Buildroot configuration and restart the + build. Buildroot will detect that openssl should be built and + will be build it, but it will not detect that ctorrent should be + rebuilt to benefit from openssl to add OpenSSL support. You will + either have to do a full rebuild, or rebuild ctorrent itself. +
  • +When a package is removed from the configuration, Buildroot does + not do anything special. It does not remove the files installed by + this package from the target root filesystem or from the toolchain + sysroot. A full rebuild is needed to get rid of this + package. However, generally you don’t necessarily need this package + to be removed right now: you can wait for the next lunch break to + restart the build from scratch. +
  • +When the sub-options of a package are changed, the package is not + automatically rebuilt. After making such changes, rebuilding only + this package is often sufficient, unless enabling the package + sub-option adds some features to the package that are useful for + another package which has already been built. Again, Buildroot does + not track when a package should be rebuilt: once a package has been + built, it is never rebuilt unless explicitly told to do so. +
  • +When a change to the root filesystem skeleton is made, a full + rebuild is needed. However, when changes to the root filesystem + overlay, a post-build script or a post-image script are made, + there is no need for a full rebuild: a simple make invocation + will take the changes into account. +
  • +When a package listed in FOO_DEPENDENCIES is rebuilt or removed, + the package foo is not automatically rebuilt. For example, if a + package bar is listed in FOO_DEPENDENCIES with FOO_DEPENDENCIES + = bar and the configuration of the bar package is changed, the + configuration change would not result in a rebuild of package foo + automatically. In this scenario, you may need to either rebuild any + packages in your build which reference bar in their DEPENDENCIES, + or perform a full rebuild to ensure any bar dependent packages are + up to date. +

Generally speaking, when you’re facing a build error and you’re unsure +of the potential consequences of the configuration changes you’ve +made, do a full rebuild. If you get the same build error, then you are +sure that the error is not related to partial rebuilds of packages, +and if this error occurs with packages from the official Buildroot, do +not hesitate to report the problem! As your experience with Buildroot +progresses, you will progressively learn when a full rebuild is really +necessary, and you will save more and more time.

For reference, a full rebuild is achieved by running:

$ make clean all

8.3. Understanding how to rebuild packages

One of the most common questions asked by Buildroot users is how to +rebuild a given package or how to remove a package without rebuilding +everything from scratch.

Removing a package is unsupported by Buildroot without +rebuilding from scratch. This is because Buildroot doesn’t keep track +of which package installs what files in the output/staging and +output/target directories, or which package would be compiled differently +depending on the availability of another package.

The easiest way to rebuild a single package from scratch is to remove +its build directory in output/build. Buildroot will then re-extract, +re-configure, re-compile and re-install this package from scratch. You +can ask buildroot to do this with the make <package>-dirclean command.

On the other hand, if you only want to restart the build process of a +package from its compilation step, you can run make <package>-rebuild. It +will restart the compilation and installation of the package, but not from +scratch: it basically re-executes make and make install inside the package, +so it will only rebuild files that changed.

If you want to restart the build process of a package from its configuration +step, you can run make <package>-reconfigure. It will restart the +configuration, compilation and installation of the package.

While <package>-rebuild implies <package>-reinstall and +<package>-reconfigure implies <package>-rebuild, these targets as well +as <package> only act on the said package, and do not trigger re-creating +the root filesystem image. If re-creating the root filesystem in necessary, +one should in addition run make or make all.

Internally, Buildroot creates so-called stamp files to keep track of +which build steps have been completed for each package. They are +stored in the package build directory, +output/build/<package>-<version>/ and are named +.stamp_<step-name>. The commands detailed above simply manipulate +these stamp files to force Buildroot to restart a specific set of +steps of a package build process.

Further details about package special make targets are explained in +Section 8.13.5, “Package-specific make targetsâ€.

8.4. Offline builds

If you intend to do an offline build and just want to download +all sources that you previously selected in the configurator +(menuconfig, nconfig, xconfig or gconfig), then issue:

 $ make source

You can now disconnect or copy the content of your dl +directory to the build-host.

8.5. Building out-of-tree

As default, everything built by Buildroot is stored in the directory +output in the Buildroot tree.

Buildroot also supports building out of tree with a syntax similar to +the Linux kernel. To use it, add O=<directory> to the make command +line:

 $ make O=/tmp/build

Or:

 $ cd /tmp/build; make O=$PWD -C path/to/buildroot

All the output files will be located under /tmp/build. If the O +path does not exist, Buildroot will create it.

Note: the O path can be either an absolute or a relative path, but if it’s +passed as a relative path, it is important to note that it is interpreted +relative to the main Buildroot source directory, not the current working +directory.

When using out-of-tree builds, the Buildroot .config and temporary +files are also stored in the output directory. This means that you can +safely run multiple builds in parallel using the same source tree as +long as they use unique output directories.

For ease of use, Buildroot generates a Makefile wrapper in the output +directory - so after the first run, you no longer need to pass O=<…> +and -C <…>, simply run (in the output directory):

 $ make <target>

8.6. Environment variables

Buildroot also honors some environment variables, when they are passed +to make or set in the environment:

  • +HOSTCXX, the host C++ compiler to use +
  • +HOSTCC, the host C compiler to use +
  • +UCLIBC_CONFIG_FILE=<path/to/.config>, path to + the uClibc configuration file, used to compile uClibc, if an + internal toolchain is being built. + + Note that the uClibc configuration file can also be set from the + configuration interface, so through the Buildroot .config file; this + is the recommended way of setting it. + +
  • +BUSYBOX_CONFIG_FILE=<path/to/.config>, path to + the BusyBox configuration file. + + Note that the BusyBox configuration file can also be set from the + configuration interface, so through the Buildroot .config file; this + is the recommended way of setting it. + +
  • +BR2_CCACHE_DIR to override the directory where + Buildroot stores the cached files when using ccache. + +
  • +BR2_DL_DIR to override the directory in which + Buildroot stores/retrieves downloaded files. + + Note that the Buildroot download directory can also be set from the + configuration interface, so through the Buildroot .config file. See + Section 8.13.4, “Location of downloaded packages†for more details on how you can set the download + directory. +
  • +BR2_GRAPH_ALT, if set and non-empty, to use an alternate color-scheme in + build-time graphs +
  • +BR2_GRAPH_OUT to set the filetype of generated graphs, either pdf (the + default), or png. +
  • +BR2_GRAPH_DEPS_OPTS to pass extra options to the dependency graph; see + Section 8.9, “Graphing the dependencies between packages†for the accepted options +
  • +BR2_GRAPH_DOT_OPTS is passed verbatim as options to the dot utility to + draw the dependency graph. +
  • +BR2_GRAPH_SIZE_OPTS to pass extra options to the size graph; see + Section 8.11, “Graphing the filesystem size contribution of packages†for the acepted options +

An example that uses config files located in the toplevel directory and +in your $HOME:

 $ make UCLIBC_CONFIG_FILE=uClibc.config BUSYBOX_CONFIG_FILE=$HOME/bb.config

If you want to use a compiler other than the default gcc +or g++ for building helper-binaries on your host, then do

 $ make HOSTCXX=g++-4.3-HEAD HOSTCC=gcc-4.3-HEAD

8.7. Dealing efficiently with filesystem images

Filesystem images can get pretty big, depending on the filesystem you choose, +the number of packages, whether you provisioned free space… Yet, some +locations in the filesystems images may just be empty (e.g. a long run of +zeroes); such a file is called a sparse file.

Most tools can handle sparse files efficiently, and will only store or write +those parts of a sparse file that are not empty.

For example:

  • +tar accepts the -S option to tell it to only store non-zero blocks + of sparse files: +

    • +tar cf archive.tar -S [files…] will efficiently store sparse files + in a tarball +
    • +tar xf archive.tar -S will efficiently store sparse files extracted + from a tarball +
  • +cp accepts the --sparse=WHEN option (WHEN is one of auto, + never or always): +

    • +cp --sparse=always source.file dest.file will make dest.file a + sparse file if source.file has long runs of zeroes +

Other tools may have similar options. Please consult their respective man +pages.

You can use sparse files if you need to store the filesystem images (e.g. +to transfer from one machine to another), or if you need to send them (e.g. +to the Q&A team).

Note however that flashing a filesystem image to a device while using the +sparse mode of dd may result in a broken filesystem (e.g. the block bitmap +of an ext2 filesystem may be corrupted; or, if you have sparse files in +your filesystem, those parts may not be all-zeroes when read back). You +should only use sparse files when handling files on the build machine, not +when transferring them to an actual device that will be used on the target.

8.8. Details about packages

Buildroot can produce a JSON blurb that describes the set of enabled +packages in the current configuration, together with their +dependencies, licenses and other metadata. This JSON blurb is produced +by using the show-info make target:

make show-info

Buildroot can also produce details about packages as HTML and JSON +output using the pkg-stats make target. Amongst other things, these +details include whether known CVEs (security vulnerabilities) affect +the packages in your current configuration. It also shows if there is +a newer upstream version for those packages.

make pkg-stats

8.9. Graphing the dependencies between packages

One of Buildroot’s jobs is to know the dependencies between packages, +and make sure they are built in the right order. These dependencies +can sometimes be quite complicated, and for a given system, it is +often not easy to understand why such or such package was brought into +the build by Buildroot.

In order to help understanding the dependencies, and therefore better +understand what is the role of the different components in your +embedded Linux system, Buildroot is capable of generating dependency +graphs.

To generate a dependency graph of the full system you have compiled, +simply run:

make graph-depends

You will find the generated graph in +output/graphs/graph-depends.pdf.

If your system is quite large, the dependency graph may be too complex +and difficult to read. It is therefore possible to generate the +dependency graph just for a given package:

make <pkg>-graph-depends

You will find the generated graph in +output/graph/<pkg>-graph-depends.pdf.

Note that the dependency graphs are generated using the dot tool +from the Graphviz project, which you must have installed on your +system to use this feature. In most distributions, it is available as +the graphviz package.

By default, the dependency graphs are generated in the PDF +format. However, by passing the BR2_GRAPH_OUT environment variable, you +can switch to other output formats, such as PNG, PostScript or +SVG. All formats supported by the -T option of the dot tool are +supported.

BR2_GRAPH_OUT=svg make graph-depends

The graph-depends behaviour can be controlled by setting options in the +BR2_GRAPH_DEPS_OPTS environment variable. The accepted options are:

  • +--depth N, -d N, to limit the dependency depth to N levels. The + default, 0, means no limit. +
  • +--stop-on PKG, -s PKG, to stop the graph on the package PKG. + PKG can be an actual package name, a glob, the keyword virtual + (to stop on virtual packages), or the keyword host (to stop on + host packages). The package is still present on the graph, but its + dependencies are not. +
  • +--exclude PKG, -x PKG, like --stop-on, but also omits PKG from + the graph. +
  • +--transitive, --no-transitive, to draw (or not) the transitive + dependencies. The default is to not draw transitive dependencies. +
  • +--colors R,T,H, the comma-separated list of colors to draw the + root package (R), the target packages (T) and the host packages + (H). Defaults to: lightblue,grey,gainsboro +
BR2_GRAPH_DEPS_OPTS='-d 3 --no-transitive --colors=red,green,blue' make graph-depends

8.10. Graphing the build duration

When the build of a system takes a long time, it is sometimes useful +to be able to understand which packages are the longest to build, to +see if anything can be done to speed up the build. In order to help +such build time analysis, Buildroot collects the build time of each +step of each package, and allows to generate graphs from this data.

To generate the build time graph after a build, run:

make graph-build

This will generate a set of files in output/graphs :

  • +build.hist-build.pdf, a histogram of the build time for each + package, ordered in the build order. +
  • +build.hist-duration.pdf, a histogram of the build time for each + package, ordered by duration (longest first) +
  • +build.hist-name.pdf, a histogram of the build time for each + package, order by package name. +
  • +build.pie-packages.pdf, a pie chart of the build time per package +
  • +build.pie-steps.pdf, a pie chart of the global time spent in each + step of the packages build process. +

This graph-build target requires the Python Matplotlib and Numpy +libraries to be installed (python-matplotlib and python-numpy on +most distributions), and also the argparse module if you’re using a +Python version older than 2.7 (python-argparse on most +distributions).

By default, the output format for the graph is PDF, but a different +format can be selected using the BR2_GRAPH_OUT environment variable. The +only other format supported is PNG:

BR2_GRAPH_OUT=png make graph-build

8.11. Graphing the filesystem size contribution of packages

When your target system grows, it is sometimes useful to understand +how much each Buildroot package is contributing to the overall root +filesystem size. To help with such an analysis, Buildroot collects +data about files installed by each package and using this data, +generates a graph and CSV files detailing the size contribution of +the different packages.

To generate these data after a build, run:

make graph-size

This will generate:

  • +output/graphs/graph-size.pdf, a pie chart of the contribution of + each package to the overall root filesystem size +
  • +output/graphs/package-size-stats.csv, a CSV file giving the size + contribution of each package to the overall root filesystem size +
  • +output/graphs/file-size-stats.csv, a CSV file giving the size + contribution of each installed file to the package it belongs, and + to the overall filesystem size. +

This graph-size target requires the Python Matplotlib library to be +installed (python-matplotlib on most distributions), and also the +argparse module if you’re using a Python version older than 2.7 +(python-argparse on most distributions).

Just like for the duration graph, a BR2_GRAPH_OUT environment variable +is supported to adjust the output file format. See Section 8.9, “Graphing the dependencies between packages†+for details about this environment variable.

Additionally, one may set the environment variable BR2_GRAPH_SIZE_OPTS +to further control the generated graph. Accepted options are:

  • +--size-limit X, -l X, will group all packages which individual + contribution is below X percent, to a single entry labelled Others + in the graph. By default, X=0.01, which means packages each + contributing less than 1% are grouped under Others. Accepted values + are in the range [0.0..1.0]. +
  • +--iec, --binary, --si, --decimal, to use IEC (binary, powers + of 1024) or SI (decimal, powers of 1000; the default) prefixes. +
  • +--biggest-first, to sort packages in decreasing size order, rather + than in increasing size order. +

Note. The collected filesystem size data is only meaningful after a complete +clean rebuild. Be sure to run make clean all before using make +graph-size.

To compare the root filesystem size of two different Buildroot compilations, +for example after adjusting the configuration or when switching to another +Buildroot release, use the size-stats-compare script. It takes two +file-size-stats.csv files (produced by make graph-size) as input. +Refer to the help text of this script for more details:

utils/size-stats-compare -h

8.12. Top-level parallel build

Note. This section deals with a very experimental feature, which is known to +break even in some non-unusual situations. Use at your own risk.

Buildroot has always been capable of using parallel build on a per +package basis: each package is built by Buildroot using make -jN (or +the equivalent invocation for non-make-based build systems). The level +of parallelism is by default number of CPUs + 1, but it can be +adjusted using the BR2_JLEVEL configuration option.

Until 2020.02, Buildroot was however building packages in a serial +fashion: each package was built one after the other, without +parallelization of the build between packages. As of 2020.02, +Buildroot has experimental support for top-level parallel build, +which allows some signicant build time savings by building packages +that have no dependency relationship in parallel. This feature is +however marked as experimental and is known not to work in some cases.

In order to use top-level parallel build, one must:

  1. +Enable the option BR2_PER_PACKAGE_DIRECTORIES in the Buildroot +configuration +
  2. +Use make -jN when starting the Buildroot build +

Internally, the BR2_PER_PACKAGE_DIRECTORIES will enable a mechanism +called per-package directories, which will have the following +effects:

  • +Instead of a global target directory and a global host directory + common to all packages, per-package target and host directories + will be used, in $(O)/per-package/<pkg>/target/ and + $(O)/per-package/<pkg>/host/ respectively. Those folders will be + populated from the corresponding folders of the package dependencies + at the beginning of <pkg> build. The compiler and all other tools + will therefore only be able to see and access files installed by + dependencies explicitly listed by <pkg>. +
  • +At the end of the build, the global target and host directories + will be populated, located in $(O)/target and $(O)/host + respectively. This means that during the build, those folders will + be empty and it’s only at the very end of the build that they will + be populated. +

8.13. Advanced usage

8.13.1. Using the generated toolchain outside Buildroot

You may want to compile, for your target, your own programs or other +software that are not packaged in Buildroot. In order to do this you +can use the toolchain that was generated by Buildroot.

The toolchain generated by Buildroot is located by default in +output/host/. The simplest way to use it is to add +output/host/bin/ to your PATH environment variable and then to +use ARCH-linux-gcc, ARCH-linux-objdump, ARCH-linux-ld, etc.

Alternatively, Buildroot can also export the toolchain and the development +files of all selected packages, as an SDK, by running the command +make sdk. This generates a tarball of the content of the host directory +output/host/, named <TARGET-TUPLE>_sdk-buildroot.tar.gz (which can be +overriden by setting the environment variable BR2_SDK_PREFIX) and +located in the output directory output/images/.

This tarball can then be distributed to application developers, when +they want to develop their applications that are not (yet) packaged as +a Buildroot package.

Upon extracting the SDK tarball, the user must run the script +relocate-sdk.sh (located at the top directory of the SDK), to make +sure all paths are updated with the new location.

Alternatively, if you just want to prepare the SDK without generating +the tarball (e.g. because you will just be moving the host directory, +or will be generating the tarball on your own), Buildroot also allows +you to just prepare the SDK with make prepare-sdk without actually +generating a tarball.

For your convenience, by selecting the option +BR2_PACKAGE_HOST_ENVIRONMENT_SETUP, you can get a +environment-setup script installed in output/host/ and therefore +in your SDK. This script can be sourced with +. your/sdk/path/environment-setup to export a number of environment +variables that will help cross-compile your projects using the +Buildroot SDK: the PATH will contain the SDK binaries, standard +autotools variables will be defined with the appropriate values, and +CONFIGURE_FLAGS will contain basic ./configure options to +cross-compile autotools projects. It also provides some useful +commands. Note however that once this script is sourced, the +environment is setup only for cross-compilation, and no longer for +native compilation.

8.13.2. Using gdb in Buildroot

Buildroot allows to do cross-debugging, where the debugger runs on the +build machine and communicates with gdbserver on the target to +control the execution of the program.

To achieve this:

  • +If you are using an internal toolchain (built by Buildroot), you + must enable BR2_PACKAGE_HOST_GDB, BR2_PACKAGE_GDB and + BR2_PACKAGE_GDB_SERVER. This ensures that both the cross gdb and + gdbserver get built, and that gdbserver gets installed to your target. +
  • +If you are using an external toolchain, you should enable + BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY, which will copy the + gdbserver included with the external toolchain to the target. If your + external toolchain does not have a cross gdb or gdbserver, it is also + possible to let Buildroot build them, by enabling the same options as + for the internal toolchain backend. +

Now, to start debugging a program called foo, you should run on the +target:

gdbserver :2345 foo

This will cause gdbserver to listen on TCP port 2345 for a connection +from the cross gdb.

Then, on the host, you should start the cross gdb using the following +command line:

<buildroot>/output/host/bin/<tuple>-gdb -ix <buildroot>/output/staging/usr/share/buildroot/gdbinit foo

Of course, foo must be available in the current directory, built +with debugging symbols. Typically you start this command from the +directory where foo is built (and not from output/target/ as the +binaries in that directory are stripped).

The <buildroot>/output/staging/usr/share/buildroot/gdbinit file will tell the +cross gdb where to find the libraries of the target.

Finally, to connect to the target from the cross gdb:

(gdb) target remote <target ip address>:2345

8.13.3. Using ccache in Buildroot

ccache is a compiler cache. It stores the +object files resulting from each compilation process, and is able to +skip future compilation of the same source file (with same compiler +and same arguments) by using the pre-existing object files. When doing +almost identical builds from scratch a number of times, it can nicely +speed up the build process.

ccache support is integrated in Buildroot. You just have to enable +Enable compiler cache in Build options. This will automatically +build ccache and use it for every host and target compilation.

The cache is located in the directory defined by the BR2_CCACHE_DIR +configuration option, which defaults to +$HOME/.buildroot-ccache. This default location is outside of +Buildroot output directory so that it can be shared by separate +Buildroot builds. If you want to get rid of the cache, simply remove +this directory.

You can get statistics on the cache (its size, number of hits, +misses, etc.) by running make ccache-stats.

The make target ccache-options and the CCACHE_OPTIONS variable +provide more generic access to the ccache. For example

# set cache limit size
+make CCACHE_OPTIONS="--max-size=5G" ccache-options
+
+# zero statistics counters
+make CCACHE_OPTIONS="--zero-stats" ccache-options

ccache makes a hash of the source files and of the compiler options. +If a compiler option is different, the cached object file will not be +used. Many compiler options, however, contain an absolute path to the +staging directory. Because of this, building in a different output +directory would lead to many cache misses.

To avoid this issue, buildroot has the Use relative paths option +(BR2_CCACHE_USE_BASEDIR). This will rewrite all absolute paths that +point inside the output directory into relative paths. Thus, changing +the output directory no longer leads to cache misses.

A disadvantage of the relative paths is that they also end up to be +relative paths in the object file. Therefore, for example, the debugger +will no longer find the file, unless you cd to the output directory +first.

See the +ccache manual’s section on "Compiling in different directories" for +more details about this rewriting of absolute paths.

When ccache is enabled in Buildroot using the BR2_CCACHE=y option:

  • +ccache is used during the Buildroot build itself +
  • +ccache is not used when building outside of Buildroot, for example + when directly calling the cross-compiler or using the SDK +

One can override this behavior using the BR2_USE_CCACHE environment +variable: when set to 1, usage of ccache is enabled (default during +the Buildroot build), when unset or set to a value different from 1, +usage of ccache is disabled.

8.13.4. Location of downloaded packages

The various tarballs that are downloaded by Buildroot are all stored +in BR2_DL_DIR, which by default is the dl directory. If you want +to keep a complete version of Buildroot which is known to be working +with the associated tarballs, you can make a copy of this directory. +This will allow you to regenerate the toolchain and the target +filesystem with exactly the same versions.

If you maintain several Buildroot trees, it might be better to have a +shared download location. This can be achieved by pointing the +BR2_DL_DIR environment variable to a directory. If this is +set, then the value of BR2_DL_DIR in the Buildroot configuration is +overridden. The following line should be added to <~/.bashrc>.

 export BR2_DL_DIR=<shared download location>

The download location can also be set in the .config file, with the +BR2_DL_DIR option. Unlike most options in the .config file, this value +is overridden by the BR2_DL_DIR environment variable.

8.13.5. Package-specific make targets

Running make <package> builds and installs that particular package +and its dependencies.

For packages relying on the Buildroot infrastructure, there are +numerous special make targets that can be called independently like +this:

make <package>-<target>

The package build targets are (in the order they are executed):

command/target Description

source

Fetch the source (download the tarball, clone +the source repository, etc)

depends

Build and install all dependencies required to +build the package

extract

Put the source in the package build directory +(extract the tarball, copy the source, etc)

patch

Apply the patches, if any

configure

Run the configure commands, if any

build

Run the compilation commands

install-staging

target package: Run the installation of the package in the +staging directory, if necessary

install-target

target package: Run the installation of the package in the +target directory, if necessary

install

target package: Run the 2 previous installation commands

+

host package: Run the installation of the package in the host +directory

Additionally, there are some other useful make targets:

command/target Description

show-depends

Displays the first-order dependencies required to build the +package

show-recursive-depends

Recursively displays the dependencies + required to build the package

show-rdepends

Displays the first-order reverse dependencies of + the package (i.e packages that directly depend on it)

show-recursive-rdepends

Recursively displays the reverse + dependencies of the package (i.e the packages that depend on it, + directly or indirectly)

graph-depends

Generate a dependency graph of the package, in the +context of the current Buildroot configuration. See +this section for more details about dependency +graphs.

graph-rdepends

Generate a graph of this package reverse + dependencies (i.e the packages that depend on it, directly or + indirectly)

dirclean

Remove the whole package build directory

reinstall

Re-run the install commands

rebuild

Re-run the compilation commands - this only makes +sense when using the OVERRIDE_SRCDIR feature or when you modified a file +directly in the build directory

reconfigure

Re-run the configure commands, then rebuild - this only +makes sense when using the OVERRIDE_SRCDIR feature or when you modified a +file directly in the build directory

8.13.6. Using Buildroot during development

The normal operation of Buildroot is to download a tarball, extract +it, configure, compile and install the software component found inside +this tarball. The source code is extracted in +output/build/<package>-<version>, which is a temporary directory: +whenever make clean is used, this directory is entirely removed, and +re-created at the next make invocation. Even when a Git or +Subversion repository is used as the input for the package source +code, Buildroot creates a tarball out of it, and then behaves as it +normally does with tarballs.

This behavior is well-suited when Buildroot is used mainly as an +integration tool, to build and integrate all the components of an +embedded Linux system. However, if one uses Buildroot during the +development of certain components of the system, this behavior is not +very convenient: one would instead like to make a small change to the +source code of one package, and be able to quickly rebuild the system +with Buildroot.

Making changes directly in output/build/<package>-<version> is not +an appropriate solution, because this directory is removed on make +clean.

Therefore, Buildroot provides a specific mechanism for this use case: +the <pkg>_OVERRIDE_SRCDIR mechanism. Buildroot reads an override +file, which allows the user to tell Buildroot the location of the +source for certain packages.

The default location of the override file is $(CONFIG_DIR)/local.mk, +as defined by the BR2_PACKAGE_OVERRIDE_FILE configuration option. +$(CONFIG_DIR) is the location of the Buildroot .config file, so +local.mk by default lives side-by-side with the .config file, +which means:

  • +In the top-level Buildroot source directory for in-tree builds + (i.e., when O= is not used) +
  • +In the out-of-tree directory for out-of-tree builds (i.e., when + O= is used) +

If a different location than these defaults is required, it can be +specified through the BR2_PACKAGE_OVERRIDE_FILE configuration +option.

In this override file, Buildroot expects to find lines of the form:

<pkg1>_OVERRIDE_SRCDIR = /path/to/pkg1/sources
+<pkg2>_OVERRIDE_SRCDIR = /path/to/pkg2/sources

For example:

LINUX_OVERRIDE_SRCDIR = /home/bob/linux/
+BUSYBOX_OVERRIDE_SRCDIR = /home/bob/busybox/

When Buildroot finds that for a given package, an +<pkg>_OVERRIDE_SRCDIR has been defined, it will no longer attempt to +download, extract and patch the package. Instead, it will directly use +the source code available in the specified directory and make clean +will not touch this directory. This allows to point Buildroot to your +own directories, that can be managed by Git, Subversion, or any other +version control system. To achieve this, Buildroot will use rsync to +copy the source code of the component from the specified +<pkg>_OVERRIDE_SRCDIR to output/build/<package>-custom/.

This mechanism is best used in conjunction with the make +<pkg>-rebuild and make <pkg>-reconfigure targets. A make +<pkg>-rebuild all sequence will rsync the source code from +<pkg>_OVERRIDE_SRCDIR to output/build/<package>-custom (thanks to +rsync, only the modified files are copied), and restart the build +process of just this package.

In the example of the linux package above, the developer can then +make a source code change in /home/bob/linux and then run:

make linux-rebuild all

and in a matter of seconds gets the updated Linux kernel image in +output/images. Similarly, a change can be made to the BusyBox source +code in /home/bob/busybox, and after:

make busybox-rebuild all

the root filesystem image in output/images contains the updated +BusyBox.

Source trees for big projects often contain hundreds or thousands of +files which are not needed for building, but will slow down the process +of copying the sources with rsync. Optionally, it is possible define +<pkg>_OVERRIDE_SRCDIR_RSYNC_EXCLUSIONS to skip syncing certain files +from the source tree. For example, when working on the webkitgtk +package, the following will exclude the tests and in-tree builds from +a local WebKit source tree:

WEBKITGTK_OVERRIDE_SRCDIR = /home/bob/WebKit
+WEBKITGTK_OVERRIDE_SRCDIR_RSYNC_EXCLUSIONS = \
+        --exclude JSTests --exclude ManualTests --exclude PerformanceTests \
+        --exclude WebDriverTests --exclude WebKitBuild --exclude WebKitLibraries \
+        --exclude WebKit.xcworkspace --exclude Websites --exclude Examples

By default, Buildroot skips syncing of VCS artifacts (e.g., the .git and +.svn directories). Some packages prefer to have these VCS directories +available during build, for example for automatically determining a precise +commit reference for version information. To undo this built-in filtering at a +cost of a slower speed, add these directories back:

LINUX_OVERRIDE_SRCDIR_RSYNC_EXCLUSIONS = --include .git

Chapter 9. Project-specific customization

Typical actions you may need to perform for a given project are:

  • +configuring Buildroot (including build options and toolchain, + bootloader, kernel, package and filesystem image type selection) +
  • +configuring other components, like the Linux kernel and BusyBox +
  • +customizing the generated target filesystem +

    • +adding or overwriting files on the target filesystem (using + BR2_ROOTFS_OVERLAY) +
    • +modifying or deleting files on the target filesystem (using + BR2_ROOTFS_POST_BUILD_SCRIPT) +
    • +running arbitrary commands prior to generating the filesystem image + (using BR2_ROOTFS_POST_BUILD_SCRIPT) +
    • +setting file permissions and ownership (using + BR2_ROOTFS_DEVICE_TABLE) +
    • +adding custom devices nodes (using + BR2_ROOTFS_STATIC_DEVICE_TABLE) +
  • +adding custom user accounts (using BR2_ROOTFS_USERS_TABLES) +
  • +running arbitrary commands after generating the filesystem image + (using BR2_ROOTFS_POST_IMAGE_SCRIPT) +
  • +adding project-specific patches to some packages (using + BR2_GLOBAL_PATCH_DIR) +
  • +adding project-specific packages +

An important note regarding such project-specific customizations: +please carefully consider which changes are indeed project-specific and +which changes are also useful to developers outside your project. The +Buildroot community highly recommends and encourages the upstreaming of +improvements, packages and board support to the official Buildroot +project. Of course, it is sometimes not possible or desirable to +upstream because the changes are highly specific or proprietary.

This chapter describes how to make such project-specific customizations +in Buildroot and how to store them in a way that you can build the same +image in a reproducible way, even after running make clean. By +following the recommended strategy, you can even use the same Buildroot +tree to build multiple distinct projects!

9.1. Recommended directory structure

When customizing Buildroot for your project, you will be creating one or +more project-specific files that need to be stored somewhere. While most +of these files could be placed in any location as their path is to be +specified in the Buildroot configuration, the Buildroot developers +recommend a specific directory structure which is described in this +section.

Orthogonal to this directory structure, you can choose where you place +this structure itself: either inside the Buildroot tree, or outside of +it using a br2-external tree. Both options are valid, the choice is up +to you.

+-- board/
+|   +-- <company>/
+|       +-- <boardname>/
+|           +-- linux.config
+|           +-- busybox.config
+|           +-- <other configuration files>
+|           +-- post_build.sh
+|           +-- post_image.sh
+|           +-- rootfs_overlay/
+|           |   +-- etc/
+|           |   +-- <some file>
+|           +-- patches/
+|               +-- foo/
+|               |   +-- <some patch>
+|               +-- libbar/
+|                   +-- <some other patches>
+|
++-- configs/
+|   +-- <boardname>_defconfig
+|
++-- package/
+|   +-- <company>/
+|       +-- Config.in (if not using a br2-external tree)
+|       +-- <company>.mk (if not using a br2-external tree)
+|       +-- package1/
+|       |    +-- Config.in
+|       |    +-- package1.mk
+|       +-- package2/
+|           +-- Config.in
+|           +-- package2.mk
+|
++-- Config.in (if using a br2-external tree)
++-- external.mk (if using a br2-external tree)
++-- external.desc (if using a br2-external tree)

Details on the files shown above are given further in this chapter.

Note: if you choose to place this structure outside of the Buildroot +tree but in a br2-external tree, the <company> and possibly <boardname> +components may be superfluous and can be left out.

9.1.1. Implementing layered customizations

It is quite common for a user to have several related projects that partly +need the same customizations. Instead of duplicating these +customizations for each project, it is recommended to use a layered +customization approach, as explained in this section.

Almost all of the customization methods available in Buildroot, like +post-build scripts and root filesystem overlays, accept a +space-separated list of items. The specified items are always treated in +order, from left to right. By creating more than one such item, one for +the common customizations and another one for the really +project-specific customizations, you can avoid unnecessary duplication. +Each layer is typically embodied by a separate directory inside +board/<company>/. Depending on your projects, you could even introduce +more than two layers.

An example directory structure for where a user has two customization +layers common and fooboard is:

+-- board/
+    +-- <company>/
+        +-- common/
+        |   +-- post_build.sh
+        |   +-- rootfs_overlay/
+        |   |   +-- ...
+        |   +-- patches/
+        |       +-- ...
+        |
+        +-- fooboard/
+            +-- linux.config
+            +-- busybox.config
+            +-- <other configuration files>
+            +-- post_build.sh
+            +-- rootfs_overlay/
+            |   +-- ...
+            +-- patches/
+                +-- ...

For example, if the user has the BR2_GLOBAL_PATCH_DIR configuration +option set as:

BR2_GLOBAL_PATCH_DIR="board/<company>/common/patches board/<company>/fooboard/patches"

then first the patches from the common layer would be applied, +followed by the patches from the fooboard layer.

9.2. Keeping customizations outside of Buildroot

As already briefly mentioned in Section 9.1, “Recommended directory structureâ€, you can +place project-specific customizations in two locations:

  • +directly within the Buildroot tree, typically maintaining them using + branches in a version control system so that upgrading to a newer + Buildroot release is easy. +
  • +outside of the Buildroot tree, using the br2-external mechanism. + This mechanism allows to keep package recipes, board support and + configuration files outside of the Buildroot tree, while still + having them nicely integrated in the build logic. We call this + location a br2-external tree. This section explains how to use + the br2-external mechanism and what to provide in a br2-external + tree. +

One can tell Buildroot to use one or more br2-external trees by setting +the BR2_EXTERNAL make variable set to the path(s) of the br2-external +tree(s) to use. It can be passed to any Buildroot make invocation. It +is automatically saved in the hidden .br2-external.mk file in the output +directory. Thanks to this, there is no need to pass BR2_EXTERNAL at +every make invocation. It can however be changed at any time by +passing a new value, and can be removed by passing an empty value.

Note. The path to a br2-external tree can be either absolute or relative. +If it is passed as a relative path, it is important to note that it is +interpreted relative to the main Buildroot source directory, not to +the Buildroot output directory.

Note: If using an br2-external tree from before Buildroot 2016.11, you need to +convert it before you can use it with Buildroot 2016.11 onward. See +Section 27.2, “Migrating to 2016.11†for help on doing so.

Some examples:

buildroot/ $ make BR2_EXTERNAL=/path/to/foo menuconfig

From now on, definitions from the /path/to/foo br2-external tree +will be used:

buildroot/ $ make
+buildroot/ $ make legal-info

We can switch to another br2-external tree at any time:

buildroot/ $ make BR2_EXTERNAL=/where/we/have/bar xconfig

We can also use multiple br2-external trees:

buildroot/ $ make BR2_EXTERNAL=/path/to/foo:/where/we/have/bar menuconfig

Or disable the usage of any br2-external tree:

buildroot/ $ make BR2_EXTERNAL= xconfig

9.2.1. Layout of a br2-external tree

A br2-external tree must contain at least those three files, described +in the following chapters:

  • +external.desc +
  • +external.mk +
  • +Config.in +

Apart from those mandatory files, there may be additional and optional +content that may be present in a br2-external tree, like the configs/ +or provides/ directories. They are described in the following chapters +as well.

A complete example br2-external tree layout is also described later.

The external.desc file

That file describes the br2-external tree: the name and description +for that br2-external tree.

The format for this file is line based, with each line starting by a +keyword, followed by a colon and one or more spaces, followed by the +value assigned to that keyword. There are two keywords currently +recognised:

  • +name, mandatory, defines the name for that br2-external tree. That + name must only use ASCII characters in the set [A-Za-z0-9_]; any + other character is forbidden. Buildroot sets the variable + BR2_EXTERNAL_$(NAME)_PATH to the absolute path of the br2-external + tree, so that you can use it to refer to your br2-external tree. This + variable is available both in Kconfig, so you can use it to source your + Kconfig files (see below) and in the Makefile, so that you can use it + to include other Makefiles (see below) or refer to other files (like + data files) from your br2-external tree. +

    Note: Since it is possible to use multiple br2-external trees at once, this + name is used by Buildroot to generate variables for each of those trees. + That name is used to identify your br2-external tree, so try to come up + with a name that really describes your br2-external tree, in order for + it to be relatively unique, so that it does not clash with another name + from another br2-external tree, especially if you are planning on + somehow sharing your br2-external tree with third parties or using + br2-external trees from third parties.

  • +desc, optional, provides a short description for that br2-external + tree. It shall fit on a single line, is mostly free-form (see below), + and is used when displaying information about a br2-external tree (e.g. + above the list of defconfig files, or as the prompt in the menuconfig); + as such, it should relatively brief (40 chars is probably a good upper + limit). The description is available in the BR2_EXTERNAL_$(NAME)_DESC + variable. +

Examples of names and the corresponding BR2_EXTERNAL_$(NAME)_PATH +variables:

  • +FOO → BR2_EXTERNAL_FOO_PATH +
  • +BAR_42 → BR2_EXTERNAL_BAR_42_PATH +

In the following examples, it is assumed the name to be set to BAR_42.

Note: Both BR2_EXTERNAL_$(NAME)_PATH and BR2_EXTERNAL_$(NAME)_DESC are + available in the Kconfig files and the Makefiles. They are also + exported in the environment so are available in post-build, post-image + and in-fakeroot scripts.

The Config.in and external.mk files

Those files (which may each be empty) can be used to define package +recipes (i.e. foo/Config.in and foo/foo.mk like for packages bundled +in Buildroot itself) or other custom configuration options or make logic.

Buildroot automatically includes the Config.in from each br2-external +tree to make it appear in the top-level configuration menu, and includes +the external.mk from each br2-external tree with the rest of the +makefile logic.

The main usage of this is to store package recipes. The recommended way +to do this is to write a Config.in file that looks like:

source "$BR2_EXTERNAL_BAR_42_PATH/package/package1/Config.in"
+source "$BR2_EXTERNAL_BAR_42_PATH/package/package2/Config.in"

Then, have an external.mk file that looks like:

include $(sort $(wildcard $(BR2_EXTERNAL_BAR_42_PATH)/package/*/*.mk))

And then in $(BR2_EXTERNAL_BAR_42_PATH)/package/package1 and +$(BR2_EXTERNAL_BAR_42_PATH)/package/package2 create normal +Buildroot package recipes, as explained in Chapter 18, Adding new packages to Buildroot. +If you prefer, you can also group the packages in subdirectories +called <boardname> and adapt the above paths accordingly.

You can also define custom configuration options in Config.in and +custom make logic in external.mk.

The configs/ directory

One can store Buildroot defconfigs in the configs subdirectory of +the br2-external tree. Buildroot will automatically show them in the +output of make list-defconfigs and allow them to be loaded with the +normal make <name>_defconfig command. They will be visible in the +make list-defconfigs output, below an External configs label that +contains the name of the br2-external tree they are defined in.

Note: If a defconfig file is present in more than one br2-external tree, then +the one from the last br2-external tree is used. It is thus possible +to override a defconfig bundled in Buildroot or another br2-external +tree.

The provides/ directory

For some packages, Buildroot provides a choice between two (or more) +implementations of API-compatible such packages. For example, there is +a choice to choose either libjpeg ot jpeg-turbo; there is one between +openssl or libressl; there is one to select one of the known, +pre-configured toolchains…

It is possible for a br2-external to extend those choices, by providing +a set of files that define those alternatives:

  • +provides/toolchains.in defines the pre-configured toolchains, which + will then be listed in the toolchain selection; +
  • +provides/jpeg.in defines the alternative libjpeg implementations; +
  • +provides/openssl.in defines the alternative openssl implementations; +
  • +provides/skeleton.in defines the alternative skeleton implementations; +
  • +provides/init.in defines the alternative init system implementations, this + can be used to select a default skeleton for your init. +

Free-form content

One can store all the board-specific configuration files there, such +as the kernel configuration, the root filesystem overlay, or any other +configuration file for which Buildroot allows to set the location (by +using the BR2_EXTERNAL_$(NAME)_PATH variable). For example, you +could set the paths to a global patch directory, to a rootfs overlay +and to the kernel configuration file as follows (e.g. by running +make menuconfig and filling in these options):

BR2_GLOBAL_PATCH_DIR=$(BR2_EXTERNAL_BAR_42_PATH)/patches/
+BR2_ROOTFS_OVERLAY=$(BR2_EXTERNAL_BAR_42_PATH)/board/<boardname>/overlay/
+BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE=$(BR2_EXTERNAL_BAR_42_PATH)/board/<boardname>/kernel.config

Additional Linux kernel extensions

Additional Linux kernel extensions (see Section 18.22.2, “linux-kernel-extensionsâ€) can +be added by storing them in the linux/ directory at the root of a +br2-external tree.

Example layout

Here is an example layout using all features of br2-external (the sample +content is shown for the file above it, when it is relevant to explain +the br2-external tree; this is all entirely made up just for the sake of +illustration, of course):

/path/to/br2-ext-tree/
+  |- external.desc
+  |     |name: BAR_42
+  |     |desc: Example br2-external tree
+  |     `----
+  |
+  |- Config.in
+  |     |source "$BR2_EXTERNAL_BAR_42_PATH/toolchain/toolchain-external-mine/Config.in.options"
+  |     |source "$BR2_EXTERNAL_BAR_42_PATH/package/pkg-1/Config.in"
+  |     |source "$BR2_EXTERNAL_BAR_42_PATH/package/pkg-2/Config.in"
+  |     |source "$BR2_EXTERNAL_BAR_42_PATH/package/my-jpeg/Config.in"
+  |     |
+  |     |config BAR_42_FLASH_ADDR
+  |     |    hex "my-board flash address"
+  |     |    default 0x10AD
+  |     `----
+  |
+  |- external.mk
+  |     |include $(sort $(wildcard $(BR2_EXTERNAL_BAR_42_PATH)/package/*/*.mk))
+  |     |include $(sort $(wildcard $(BR2_EXTERNAL_BAR_42_PATH)/toolchain/*/*.mk))
+  |     |
+  |     |flash-my-board:
+  |     |    $(BR2_EXTERNAL_BAR_42_PATH)/board/my-board/flash-image \
+  |     |        --image $(BINARIES_DIR)/image.bin \
+  |     |        --address $(BAR_42_FLASH_ADDR)
+  |     `----
+  |
+  |- package/pkg-1/Config.in
+  |     |config BR2_PACKAGE_PKG_1
+  |     |    bool "pkg-1"
+  |     |    help
+  |     |      Some help about pkg-1
+  |     `----
+  |- package/pkg-1/pkg-1.hash
+  |- package/pkg-1/pkg-1.mk
+  |     |PKG_1_VERSION = 1.2.3
+  |     |PKG_1_SITE = /some/where/to/get/pkg-1
+  |     |PKG_1_LICENSE = blabla
+  |     |
+  |     |define PKG_1_INSTALL_INIT_SYSV
+  |     |    $(INSTALL) -D -m 0755 $(PKG_1_PKGDIR)/S99my-daemon \
+  |     |                          $(TARGET_DIR)/etc/init.d/S99my-daemon
+  |     |endef
+  |     |
+  |     |$(eval $(autotools-package))
+  |     `----
+  |- package/pkg-1/S99my-daemon
+  |
+  |- package/pkg-2/Config.in
+  |- package/pkg-2/pkg-2.hash
+  |- package/pkg-2/pkg-2.mk
+  |
+  |- provides/jpeg.in
+  |     |config BR2_PACKAGE_MY_JPEG
+  |     |    bool "my-jpeg"
+  |     `----
+  |- package/my-jpeg/Config.in
+  |     |config BR2_PACKAGE_PROVIDES_JPEG
+  |     |    default "my-jpeg" if BR2_PACKAGE_MY_JPEG
+  |     `----
+  |- package/my-jpeg/my-jpeg.mk
+  |     |# This is a normal package .mk file
+  |     |MY_JPEG_VERSION = 1.2.3
+  |     |MY_JPEG_SITE = https://example.net/some/place
+  |     |MY_JPEG_PROVIDES = jpeg
+  |     |$(eval $(autotools-package))
+  |     `----
+  |
+  |- provides/init.in
+  |     |config BR2_INIT_MINE
+  |     |    bool "my custom init"
+  |     |    select BR2_PACKAGE_MY_INIT
+  |     |    select BR2_PACKAGE_SKELETON_INIT_MINE if BR2_ROOTFS_SKELETON_DEFAULT
+  |     `----
+  |
+  |- provides/skeleton.in
+  |     |config BR2_ROOTFS_SKELETON_MINE
+  |     |    bool "my custom skeleton"
+  |     |    select BR2_PACKAGE_SKELETON_MINE
+  |     `----
+  |- package/skeleton-mine/Config.in
+  |     |config BR2_PACKAGE_SKELETON_MINE
+  |     |    bool
+  |     |    select BR2_PACKAGE_HAS_SKELETON
+  |     |
+  |     |config BR2_PACKAGE_PROVIDES_SKELETON
+  |     |    default "skeleton-mine" if BR2_PACKAGE_SKELETON_MINE
+  |     `----
+  |- package/skeleton-mine/skeleton-mine.mk
+  |     |SKELETON_MINE_ADD_TOOLCHAIN_DEPENDENCY = NO
+  |     |SKELETON_MINE_ADD_SKELETON_DEPENDENCY = NO
+  |     |SKELETON_MINE_PROVIDES = skeleton
+  |     |SKELETON_MINE_INSTALL_STAGING = YES
+  |     |$(eval $(generic-package))
+  |     `----
+  |
+  |- provides/toolchains.in
+  |     |config BR2_TOOLCHAIN_EXTERNAL_MINE
+  |     |    bool "my custom toolchain"
+  |     |    depends on BR2_some_arch
+  |     |    select BR2_INSTALL_LIBSTDCPP
+  |     `----
+  |- toolchain/toolchain-external-mine/Config.in.options
+  |     |if BR2_TOOLCHAIN_EXTERNAL_MINE
+  |     |config BR2_TOOLCHAIN_EXTERNAL_PREFIX
+  |     |    default "arch-mine-linux-gnu"
+  |     |config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL
+  |     |    default "toolchain-external-mine"
+  |     |endif
+  |     `----
+  |- toolchain/toolchain-external-mine/toolchain-external-mine.mk
+  |     |TOOLCHAIN_EXTERNAL_MINE_SITE = https://example.net/some/place
+  |     |TOOLCHAIN_EXTERNAL_MINE_SOURCE = my-toolchain.tar.gz
+  |     |$(eval $(toolchain-external-package))
+  |     `----
+  |
+  |- linux/Config.ext.in
+  |     |config BR2_LINUX_KERNEL_EXT_EXAMPLE_DRIVER
+  |     |    bool "example-external-driver"
+  |     |    help
+  |     |      Example external driver
+  |     |---
+  |- linux/linux-ext-example-driver.mk
+  |
+  |- configs/my-board_defconfig
+  |     |BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_BAR_42_PATH)/patches/"
+  |     |BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_BAR_42_PATH)/board/my-board/overlay/"
+  |     |BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_BAR_42_PATH)/board/my-board/post-image.sh"
+  |     |BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_BAR_42_PATH)/board/my-board/kernel.config"
+  |     `----
+  |
+  |- patches/linux/0001-some-change.patch
+  |- patches/linux/0002-some-other-change.patch
+  |- patches/busybox/0001-fix-something.patch
+  |
+  |- board/my-board/kernel.config
+  |- board/my-board/overlay/var/www/index.html
+  |- board/my-board/overlay/var/www/my.css
+  |- board/my-board/flash-image
+  `- board/my-board/post-image.sh
+        |#!/bin/sh
+        |generate-my-binary-image \
+        |    --root ${BINARIES_DIR}/rootfs.tar \
+        |    --kernel ${BINARIES_DIR}/zImage \
+        |    --dtb ${BINARIES_DIR}/my-board.dtb \
+        |    --output ${BINARIES_DIR}/image.bin
+        `----

The br2-external tree will then be visible in the menuconfig (with +the layout expanded):

External options  --->
+    *** Example br2-external tree (in /path/to/br2-ext-tree/)
+    [ ] pkg-1
+    [ ] pkg-2
+    (0x10AD) my-board flash address

If you are using more than one br2-external tree, it would look like +(with the layout expanded and the second one with name FOO_27 but no +desc: field in external.desc):

External options  --->
+    Example br2-external tree  --->
+        *** Example br2-external tree (in /path/to/br2-ext-tree)
+        [ ] pkg-1
+        [ ] pkg-2
+        (0x10AD) my-board flash address
+    FOO_27  --->
+        *** FOO_27 (in /path/to/another-br2-ext)
+        [ ] foo
+        [ ] bar

Additionally, the jpeg provider will be visible in the jpeg choice:

Target packages  --->
+    Libraries  --->
+        Graphics  --->
+            [*] jpeg support
+                jpeg variant ()  --->
+                    ( ) jpeg
+                    ( ) jpeg-turbo
+                        *** jpeg from: Example br2-external tree ***
+                    (X) my-jpeg
+                        *** jpeg from: FOO_27 ***
+                    ( ) another-jpeg

And similarly for the toolchains:

Toolchain  --->
+    Toolchain ()  --->
+        ( ) Custom toolchain
+            *** Toolchains from: Example br2-external tree ***
+        (X) my custom toolchain

Note. The toolchain options in toolchain/toolchain-external-mine/Config.in.options +will not appear in the Toolchain menu. They must be explicitly included +from within the br2-external’s top-level Config.in and will thus appear +in the External options menu.

9.3. Storing the Buildroot configuration

The Buildroot configuration can be stored using the command + make savedefconfig.

This strips the Buildroot configuration down by removing configuration +options that are at their default value. The result is stored in a file +called defconfig. If you want to save it in another place, change the +BR2_DEFCONFIG option in the Buildroot configuration itself, or call +make with make savedefconfig BR2_DEFCONFIG=<path-to-defconfig>.

The recommended place to store this defconfig is +configs/<boardname>_defconfig. If you follow this recommendation, the +configuration will be listed in make list-defconfigs and can be set +again by running make <boardname>_defconfig.

Alternatively, you can copy the file to any other place and rebuild with +make defconfig BR2_DEFCONFIG=<path-to-defconfig-file>.

9.4. Storing the configuration of other components

The configuration files for BusyBox, the Linux kernel, Barebox, U-Boot +and uClibc should be stored as well if changed. For each of these +components, a Buildroot configuration option exists to point to an input +configuration file, e.g. BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE. To store +their configuration, set these configuration options to a path where you +want to save the configuration files, and then use the helper targets +described below to actually store the configuration.

As explained in Section 9.1, “Recommended directory structureâ€, the recommended path to +store these configuration files is +board/<company>/<boardname>/foo.config.

Make sure that you create a configuration file before changing +the BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE etc. options. Otherwise, +Buildroot will try to access this config file, which doesn’t exist +yet, and will fail. You can create the configuration file by running +make linux-menuconfig etc.

Buildroot provides a few helper targets to make the saving of +configuration files easier.

  • +make linux-update-defconfig saves the linux configuration to the + path specified by BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE. It + simplifies the config file by removing default values. However, + this only works with kernels starting from 2.6.33. For earlier + kernels, use make linux-update-config. +
  • +make busybox-update-config saves the busybox configuration to the + path specified by BR2_PACKAGE_BUSYBOX_CONFIG. +
  • +make uclibc-update-config saves the uClibc configuration to the + path specified by BR2_UCLIBC_CONFIG. +
  • +make barebox-update-defconfig saves the barebox configuration to the + path specified by BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE. +
  • +make uboot-update-defconfig saves the U-Boot configuration to the + path specified by BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE. +
  • +For at91bootstrap3, no helper exists so you have to copy the config + file manually to BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE. +

9.5. Customizing the generated target filesystem

Besides changing the configuration through make *config, +there are a few other ways to customize the resulting target filesystem.

The two recommended methods, which can co-exist, are root filesystem +overlay(s) and post build script(s).

+Root filesystem overlays (BR2_ROOTFS_OVERLAY) +

A filesystem overlay is a tree of files that is copied directly + over the target filesystem after it has been built. To enable this + feature, set config option BR2_ROOTFS_OVERLAY (in the System + configuration menu) to the root of the overlay. You can even specify + multiple overlays, space-separated. If you specify a relative path, + it will be relative to the root of the Buildroot tree. Hidden + directories of version control systems, like .git, .svn, .hg, + etc., files called .empty and files ending in ~ are excluded from + the copy.

When BR2_ROOTFS_MERGED_USR is enabled, then the overlay must not + contain the /bin, /lib or /sbin directories, as Buildroot will + create them as symbolic links to the relevant folders in /usr. In + such a situation, should the overlay have any programs or libraries, + they should be placed in /usr/bin, /usr/sbin and /usr/lib.

As shown in Section 9.1, “Recommended directory structureâ€, the recommended path for + this overlay is board/<company>/<boardname>/rootfs-overlay.

+Post-build scripts (BR2_ROOTFS_POST_BUILD_SCRIPT) +

Post-build scripts are shell scripts called after Buildroot builds + all the selected software, but before the rootfs images are + assembled. To enable this feature, specify a space-separated list of + post-build scripts in config option BR2_ROOTFS_POST_BUILD_SCRIPT (in + the System configuration menu). If you specify a relative path, it + will be relative to the root of the Buildroot tree.

Using post-build scripts, you can remove or modify any file in your + target filesystem. You should, however, use this feature with care. + Whenever you find that a certain package generates wrong or unneeded + files, you should fix that package rather than work around it with some + post-build cleanup scripts.

As shown in Section 9.1, “Recommended directory structureâ€, the recommended path for + this script is board/<company>/<boardname>/post_build.sh.

The post-build scripts are run with the main Buildroot tree as current + working directory. The path to the target filesystem is passed as the + first argument to each script. If the config option + BR2_ROOTFS_POST_SCRIPT_ARGS is not empty, these arguments will be + passed to the script too. All the scripts will be passed the exact + same set of arguments, it is not possible to pass different sets of + arguments to each script.

In addition, you may also use these environment variables:

  • +BR2_CONFIG: the path to the Buildroot .config file +
  • +CONFIG_DIR: the directory containing the .config file, and + therefore the top-level Buildroot Makefile to use (which is + correct for both in-tree and out-of-tree builds) +
  • +HOST_DIR, STAGING_DIR, TARGET_DIR: see + Section 18.6.2, “generic-package reference†+
  • +BUILD_DIR: the directory where packages are extracted and built +
  • +BINARIES_DIR: the place where all binary files (aka images) are + stored +
  • +BASE_DIR: the base output directory +

Below three more methods of customizing the target filesystem are +described, but they are not recommended.

+Direct modification of the target filesystem +

For temporary modifications, you can modify the target filesystem + directly and rebuild the image. The target filesystem is available + under output/target/. After making your changes, run make to + rebuild the target filesystem image.

This method allows you to do anything to the target filesystem, but if + you need to clean your Buildroot tree using make clean, these + changes will be lost. Such cleaning is necessary in several cases, + refer to Section 8.2, “Understanding when a full rebuild is necessary†for details. This solution is therefore + only useful for quick tests: changes do not survive the make clean + command. Once you have validated your changes, you should make sure + that they will persist after a make clean, using a root filesystem + overlay or a post-build script.

+Custom target skeleton (BR2_ROOTFS_SKELETON_CUSTOM) +

The root filesystem image is created from a target skeleton, on top of + which all packages install their files. The skeleton is copied to the + target directory output/target before any package is built and + installed. The default target skeleton provides the standard Unix + filesystem layout and some basic init scripts and configuration files.

If the default skeleton (available under system/skeleton) does not + match your needs, you would typically use a root filesystem overlay or + post-build script to adapt it. However, if the default skeleton is + entirely different than what you need, using a custom skeleton may be + more suitable.

To enable this feature, enable config option + BR2_ROOTFS_SKELETON_CUSTOM and set BR2_ROOTFS_SKELETON_CUSTOM_PATH + to the path of your custom skeleton. Both options are available in the + System configuration menu. If you specify a relative path, it will + be relative to the root of the Buildroot tree.

Custom skeletons don’t need to contain the /bin, /lib or /sbin + directories, since they are created automatically during the build. + When BR2_ROOTFS_MERGED_USR is enabled, then the custom skeleton must + not contain the /bin, /lib or /sbin directories, as Buildroot + will create them as symbolic links to the relevant folders in /usr. + In such a situation, should the skeleton have any programs or + libraries, they should be placed in /usr/bin, /usr/sbin and + /usr/lib.

This method is not recommended because it duplicates the entire + skeleton, which prevents taking advantage of the fixes or improvements + brought to the default skeleton in later Buildroot releases.

+Post-fakeroot scripts (BR2_ROOTFS_POST_FAKEROOT_SCRIPT) +

When aggregating the final images, some parts of the process requires + root rights: creating device nodes in /dev, setting permissions or + ownership to files and directories… To avoid requiring actual root + rights, Buildroot uses fakeroot to simulate root rights. This is not + a complete substitute for actually being root, but is enough for what + Buildroot needs.

Post-fakeroot scripts are shell scripts that are called at the end of + the fakeroot phase, right before the filesystem image generator is + called. As such, they are called in the fakeroot context.

Post-fakeroot scripts can be useful in case you need to tweak the + filesystem to do modifications that are usually only available to the + root user.

Note: It is recommended to use the existing mechanisms to set file permissions + or create entries in /dev (see Section 9.5.1, “Setting file permissions and ownership and adding custom devices nodesâ€) or + to create users (see Section 9.6, “Adding custom user accountsâ€)

Note: The difference between post-build scripts (above) and fakeroot scripts, + is that post-build scripts are not called in the fakeroot context.

Note: Using fakeroot is not an absolute substitute for actually being root. + fakeroot only ever fakes the file access rights and types (regular, + block-or-char device…) and uid/gid; these are emulated in-memory.

9.5.1. Setting file permissions and ownership and adding custom devices nodes

Sometimes it is needed to set specific permissions or ownership on files +or device nodes. For example, certain files may need to be owned by +root. Since the post-build scripts are not run as root, you cannot do +such changes from there unless you use an explicit fakeroot from the +post-build script.

Instead, Buildroot provides support for so-called permission tables. +To use this feature, set config option BR2_ROOTFS_DEVICE_TABLE to a +space-separated list of permission tables, regular text files following +the makedev syntax.

If you are using a static device table (i.e. not using devtmpfs, +mdev, or (e)udev) then you can add device nodes using the same +syntax, in so-called device tables. To use this feature, set config +option BR2_ROOTFS_STATIC_DEVICE_TABLE to a space-separated list of +device tables.

As shown in Section 9.1, “Recommended directory structureâ€, the recommended location for +such files is board/<company>/<boardname>/.

It should be noted that if the specific permissions or device nodes are +related to a specific application, you should set variables +FOO_PERMISSIONS and FOO_DEVICES in the package’s .mk file instead +(see Section 18.6.2, “generic-package referenceâ€).

9.6. Adding custom user accounts

Sometimes it is needed to add specific users in the target system. +To cover this requirement, Buildroot provides support for so-called +users tables. To use this feature, set config option +BR2_ROOTFS_USERS_TABLES to a space-separated list of users tables, +regular text files following the makeusers syntax.

As shown in Section 9.1, “Recommended directory structureâ€, the recommended location for +such files is board/<company>/<boardname>/.

It should be noted that if the custom users are related to a specific +application, you should set variable FOO_USERS in the package’s .mk +file instead (see Section 18.6.2, “generic-package referenceâ€).

9.7. Customization after the images have been created

While post-build scripts (Section 9.5, “Customizing the generated target filesystemâ€) are run before +building the filesystem image, kernel and bootloader, post-image +scripts can be used to perform some specific actions after all images +have been created.

Post-image scripts can for example be used to automatically extract your +root filesystem tarball in a location exported by your NFS server, or +to create a special firmware image that bundles your root filesystem and +kernel image, or any other custom action required for your project.

To enable this feature, specify a space-separated list of post-image +scripts in config option BR2_ROOTFS_POST_IMAGE_SCRIPT (in the System +configuration menu). If you specify a relative path, it will be +relative to the root of the Buildroot tree.

Just like post-build scripts, post-image scripts are run with the main +Buildroot tree as current working directory. The path to the images +output directory is passed as the first argument to each script. If the +config option BR2_ROOTFS_POST_SCRIPT_ARGS is not empty, these +arguments will be passed to the script too. All the scripts will be +passed the exact same set of arguments, it is not possible to pass +different sets of arguments to each script.

Again just like for the post-build scripts, the scripts have access to +the environment variables BR2_CONFIG, HOST_DIR, STAGING_DIR, +TARGET_DIR, BUILD_DIR, BINARIES_DIR, CONFIG_DIR and +BASE_DIR.

The post-image scripts will be executed as the user that executes +Buildroot, which should normally not be the root user. Therefore, any +action requiring root permissions in one of these scripts will require +special handling (usage of fakeroot or sudo), which is left to the +script developer.

9.8. Adding project-specific patches

It is sometimes useful to apply extra patches to packages - on top of +those provided in Buildroot. This might be used to support custom +features in a project, for example, or when working on a new +architecture.

The BR2_GLOBAL_PATCH_DIR configuration option can be used to specify +a space separated list of one or more directories containing package +patches.

For a specific version <packageversion> of a specific package +<packagename>, patches are applied from BR2_GLOBAL_PATCH_DIR as +follows:

  1. +For every directory - <global-patch-dir> - that exists in + BR2_GLOBAL_PATCH_DIR, a <package-patch-dir> will be determined as + follows: +

    • +<global-patch-dir>/<packagename>/<packageversion>/ if the + directory exists. +
    • +Otherwise, <global-patch-dir>/<packagename> if the directory + exists. +
  2. +Patches will then be applied from a <package-patch-dir> as + follows: +

    • +If a series file exists in the package directory, then patches are + applied according to the series file; +
    • +Otherwise, patch files matching *.patch are applied in + alphabetical order. So, to ensure they are applied in the right + order, it is highly recommended to name the patch files like this: + <number>-<description>.patch, where <number> refers to the + apply order. +

For information about how patches are applied for a package, see +Section 19.2, “How patches are appliedâ€

The BR2_GLOBAL_PATCH_DIR option is the preferred method for +specifying a custom patch directory for packages. It can be used to +specify a patch directory for any package in buildroot. It should also +be used in place of the custom patch directory options that are +available for packages such as U-Boot and Barebox. By doing this, it +will allow a user to manage their patches from one top-level +directory.

The exception to BR2_GLOBAL_PATCH_DIR being the preferred method for +specifying custom patches is BR2_LINUX_KERNEL_PATCH. +BR2_LINUX_KERNEL_PATCH should be used to specify kernel patches that +are available at a URL. Note: BR2_LINUX_KERNEL_PATCH specifies kernel +patches that are applied after patches available in BR2_GLOBAL_PATCH_DIR, +as it is done from a post-patch hook of the Linux package.

9.9. Adding project-specific packages

In general, any new package should be added directly in the package +directory and submitted to the Buildroot upstream project. How to add +packages to Buildroot in general is explained in full detail in +Chapter 18, Adding new packages to Buildroot and will not be repeated here. However, your +project may need some proprietary packages that cannot be upstreamed. +This section will explain how you can keep such project-specific +packages in a project-specific directory.

As shown in Section 9.1, “Recommended directory structureâ€, the recommended location for +project-specific packages is package/<company>/. If you are using the +br2-external tree feature (see Section 9.2, “Keeping customizations outside of Buildrootâ€) the recommended +location is to put them in a sub-directory named package/ in your +br2-external tree.

However, Buildroot will not be aware of the packages in this location, +unless we perform some additional steps. As explained in +Chapter 18, Adding new packages to Buildroot, a package in Buildroot basically consists of two +files: a .mk file (describing how to build the package) and a +Config.in file (describing the configuration options for this +package).

Buildroot will automatically include the .mk files in first-level +subdirectories of the package directory (using the pattern +package/*/*.mk). If we want Buildroot to include .mk files from +deeper subdirectories (like package/<company>/package1/) then we +simply have to add a .mk file in a first-level subdirectory that +includes these additional .mk files. Therefore, create a file +package/<company>/<company>.mk with following contents (assuming you +have only one extra directory level below package/<company>/):

include $(sort $(wildcard package/<company>/*/*.mk))

For the Config.in files, create a file package/<company>/Config.in +that includes the Config.in files of all your packages. An exhaustive +list has to be provided since wildcards are not supported in the source command of kconfig. +For example:

source "package/<company>/package1/Config.in"
+source "package/<company>/package2/Config.in"

Include this new file package/<company>/Config.in from +package/Config.in, preferably in a company-specific menu to make +merges with future Buildroot versions easier.

If using a br2-external tree, refer to Section 9.2, “Keeping customizations outside of Buildroot†for how +to fill in those files.

9.10. Quick guide to storing your project-specific customizations

Earlier in this chapter, the different methods for making +project-specific customizations have been described. This section will +now summarize all this by providing step-by-step instructions to storing your +project-specific customizations. Clearly, the steps that are not relevant to +your project can be skipped.

  1. +make menuconfig to configure toolchain, packages and kernel. +
  2. +make linux-menuconfig to update the kernel config, similar for + other configuration like busybox, uclibc, … +
  3. +mkdir -p board/<manufacturer>/<boardname> +
  4. +Set the following options to board/<manufacturer>/<boardname>/<package>.config + (as far as they are relevant): +

    • +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE +
    • +BR2_PACKAGE_BUSYBOX_CONFIG +
    • +BR2_UCLIBC_CONFIG +
    • +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE +
    • +BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE +
    • +BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE +
  5. +Write the configuration files: +

    • +make linux-update-defconfig +
    • +make busybox-update-config +
    • +make uclibc-update-config +
    • +cp <output>/build/at91bootstrap3-*/.config + board/<manufacturer>/<boardname>/at91bootstrap3.config +
    • +make barebox-update-defconfig +
    • +make uboot-update-defconfig +
  6. +Create board/<manufacturer>/<boardname>/rootfs-overlay/ and fill it + with additional files you need on your rootfs, e.g. + board/<manufacturer>/<boardname>/rootfs-overlay/etc/inittab. + Set BR2_ROOTFS_OVERLAY + to board/<manufacturer>/<boardname>/rootfs-overlay. +
  7. +Create a post-build script + board/<manufacturer>/<boardname>/post_build.sh. Set + BR2_ROOTFS_POST_BUILD_SCRIPT to + board/<manufacturer>/<boardname>/post_build.sh +
  8. +If additional setuid permissions have to be set or device nodes have + to be created, create board/<manufacturer>/<boardname>/device_table.txt + and add that path to BR2_ROOTFS_DEVICE_TABLE. +
  9. +If additional user accounts have to be created, create + board/<manufacturer>/<boardname>/users_table.txt and add that path + to BR2_ROOTFS_USERS_TABLES. +
  10. +To add custom patches to certain packages, set BR2_GLOBAL_PATCH_DIR + to board/<manufacturer>/<boardname>/patches/ and add your patches + for each package in a subdirectory named after the package. Each + patch should be called <packagename>-<num>-<description>.patch. +
  11. +Specifically for the Linux kernel, there also exists the option + BR2_LINUX_KERNEL_PATCH with as main advantage that it can also + download patches from a URL. If you do not need this, + BR2_GLOBAL_PATCH_DIR is preferred. U-Boot, Barebox, at91bootstrap + and at91bootstrap3 also have separate options, but these do not + provide any advantage over BR2_GLOBAL_PATCH_DIR and will likely be + removed in the future. +
  12. +If you need to add project-specific packages, create + package/<manufacturer>/ and place your packages in that + directory. Create an overall <manufacturer>.mk file that + includes the .mk files of all your packages. Create an overall + Config.in file that sources the Config.in files of all your + packages. Include this Config.in file from Buildroot’s + package/Config.in file. +
  13. +make savedefconfig to save the buildroot configuration. +
  14. +cp defconfig configs/<boardname>_defconfig +

Chapter 10. Integration topics

This chapter discusses how various things are integrated at system +level. Buildroot is highly configurable, almost everything discussed +here can be changed or overridden by rootfs overlay +or custom skeleton configuration.

10.1. Systemd

This chapter describes the decisions taken in Buildroot’s integration of +systemd, and how various use cases can be implemented.

10.1.1. DBus daemon

Systemd requires a DBus daemon. There are two options for it: traditional dbus +(BR2_PACKAGE_DBUS) and bus1 dbus-broker (BR2_PACKAGE_DBUS_BROKER). At +least one of them must be chosen. If both are included in the configuration, +dbus-broker will be used as system bus, but the traditional dbus-daemon is +still installed as well and can be used as session bus. Also its tools (e.g. +dbus-send) can be used (systemd itself has busctl as an alternative). In +addition, the traditional dbus package is the only one that provides libdbus, +which is used by many packages as dbus integration library.

Both in the dbus and in the dbus-broker case, the daemon runs as user dbus. +The DBus configuration files are also identical for both.

To make sure that only one of the two daemons is started as system bus, the +systemd activation files of the dbus package (dbus.socket and the +dbus.service symlink in multi-user.target.wants) are removed when +dbus-broker is selected.

10.2. Using SELinux in Buildroot

SELinux is a Linux kernel security module +enforcing access control policies. In addition to the traditional file +permissions and access control lists, SELinux allows to write rules +for users or processes to access specific functions of resources +(files, sockets…).

SELinux has three modes of operation:

  • +Disabled: the policy is not applied +
  • +Permissive: the policy is applied, and non-authorized actions are + simply logged. This mode is often used for troubleshooting SELinux + issues. +
  • +Enforcing: the policy is applied, and non-authorized actions are + denied +

In Buildroot the mode of operation is controlled by the +BR2_PACKAGE_REFPOLICY_POLICY_STATE_* configuration options. The +Linux kernel also has various configuration options that affect how +SELinux is enabled (see security/selinux/Kconfig in the Linux +kernel sources).

By default in Buildroot the SELinux policy is provided by the +upstream refpolicy +project, enabled with BR2_PACKAGE_REFPOLICY.

10.2.1. Enabling SELinux support

To have proper support for SELinux in a Buildroot generated system, +the following configuration options must be enabled:

  • +BR2_PACKAGE_LIBSELINUX +
  • +BR2_PACKAGE_REFPOLICY +

In addition, your filesystem image format must support extended +attributes.

10.2.2. SELinux policy tweaking

The SELinux refpolicy contains modules that can be enabled or +disabled when being built. Each module provide a number of SELinux +rules. In Buildroot the non-base modules are disabled by default and +several ways to enable such modules are provided:

  • +Packages can enable a list of SELinux modules within the refpolicy using + the <packagename>_SELINUX_MODULES variable. +
  • +Packages can provide additional SELinux modules by putting them (.fc, .if + and .te files) in package/<packagename>/selinux/. +
  • +Extra SELinux modules can be added in directories pointed by the + BR2_REFPOLICY_EXTRA_MODULES_DIRS configuration option. +
  • +Additional modules in the refpolicy can be enabled if listed in the + BR2_REFPOLICY_EXTRA_MODULES_DEPENDENCIES configuration option. +

Buildroot also allows to completely override the refpolicy. This +allows to provide a full custom policy designed specifically for a +given system. When going this way, all of the above mechanisms are +disabled: no extra SElinux module is added to the policy, and all +the available modules within the custom policy are enabled and built +into the final binary policy. The custom policy must be a fork of the +official refpolicy.

In order to fully override the refpolicy the following configuration +variables have to be set:

  • +BR2_PACKAGE_REFPOLICY_CUSTOM_GIT +
  • +BR2_PACKAGE_REFPOLICY_CUSTOM_REPO_URL +
  • +BR2_PACKAGE_REFPOLICY_CUSTOM_REPO_VERSION +

Chapter 11. Frequently Asked Questions & Troubleshooting

11.1. The boot hangs after Starting network…

If the boot process seems to hang after the following messages +(messages not necessarily exactly similar, depending on the list of +packages selected):

Freeing init memory: 3972K
+Initializing random number generator... done.
+Starting network...
+Starting dropbear sshd: generating rsa key... generating dsa key... OK

then it means that your system is running, but didn’t start a shell on +the serial console. In order to have the system start a shell on your +serial console, you have to go into the Buildroot configuration, in +System configuration, modify Run a getty (login prompt) after boot +and set the appropriate port and baud rate in the getty options +submenu. This will automatically tune the /etc/inittab file of the +generated system so that a shell starts on the correct serial port.

11.2. Why is there no compiler on the target?

It has been decided that support for the native compiler on the +target would be stopped from the Buildroot-2012.11 release because:

  • +this feature was neither maintained nor tested, and often broken; +
  • +this feature was only available for Buildroot toolchains; +
  • +Buildroot mostly targets small or very small target hardware + with limited resource onboard (CPU, ram, mass-storage), for which + compiling on the target does not make much sense; +
  • +Buildroot aims at easing the cross-compilation, making native + compilation on the target unnecessary. +

If you need a compiler on your target anyway, then Buildroot is not +suitable for your purpose. In such case, you need a real +distribution and you should opt for something like:

11.3. Why are there no development files on the target?

Since there is no compiler available on the target (see +Section 11.2, “Why is there no compiler on the target?â€), it does not make sense to waste +space with headers or static libraries.

Therefore, those files are always removed from the target since the +Buildroot-2012.11 release.

11.4. Why is there no documentation on the target?

Because Buildroot mostly targets small or very small target +hardware with limited resource onboard (CPU, ram, mass-storage), it +does not make sense to waste space with the documentation data.

If you need documentation data on your target anyway, then Buildroot +is not suitable for your purpose, and you should look for a real +distribution (see: Section 11.2, “Why is there no compiler on the target?â€).

11.5. Why are some packages not visible in the Buildroot config menu?

If a package exists in the Buildroot tree and does not appear in the +config menu, this most likely means that some of the package’s +dependencies are not met.

To know more about the dependencies of a package, search for the +package symbol in the config menu (see Section 8.1, “make tipsâ€).

Then, you may have to recursively enable several options (which +correspond to the unmet dependencies) to finally be able to select +the package.

If the package is not visible due to some unmet toolchain options, +then you should certainly run a full rebuild (see Section 8.1, “make tips†for +more explanations).

11.6. Why not use the target directory as a chroot directory?

There are plenty of reasons to not use the target directory a chroot +one, among these:

  • +file ownerships, modes and permissions are not correctly set in the + target directory; +
  • +device nodes are not created in the target directory. +

For these reasons, commands run through chroot, using the target +directory as the new root, will most likely fail.

If you want to run the target filesystem inside a chroot, or as an NFS +root, then use the tarball image generated in images/ and extract it +as root.

11.7. Why doesn’t Buildroot generate binary packages (.deb, .ipkg…)?

One feature that is often discussed on the Buildroot list is the +general topic of "package management". To summarize, the idea +would be to add some tracking of which Buildroot package installs +what files, with the goals of:

  • +being able to remove files installed by a package when this package + gets unselected from the menuconfig; +
  • +being able to generate binary packages (ipk or other format) that + can be installed on the target without re-generating a new root + filesystem image. +

In general, most people think it is easy to do: just track which package +installed what and remove it when the package is unselected. However, it +is much more complicated than that:

  • +It is not only about the target/ directory, but also the sysroot in + host/<tuple>/sysroot and the host/ directory itself. All files + installed in those directories by various packages must be tracked. +
  • +When a package is unselected from the configuration, it is not + sufficient to remove just the files it installed. One must also + remove all its reverse dependencies (i.e. packages relying on it) + and rebuild all those packages. For example, package A depends + optionally on the OpenSSL library. Both are selected, and Buildroot + is built. Package A is built with crypto support using OpenSSL. + Later on, OpenSSL gets unselected from the configuration, but + package A remains (since OpenSSL is an optional dependency, this + is possible.) If only OpenSSL files are removed, then the files + installed by package A are broken: they use a library that is no + longer present on the target. Although this is technically doable, + it adds a lot of complexity to Buildroot, which goes against the + simplicity we try to stick to. +
  • +In addition to the previous problem, there is the case where the + optional dependency is not even known to Buildroot. For example, + package A in version 1.0 never used OpenSSL, but in version 2.0 it + automatically uses OpenSSL if available. If the Buildroot .mk file + hasn’t been updated to take this into account, then package A will + not be part of the reverse dependencies of OpenSSL and will not be + removed and rebuilt when OpenSSL is removed. For sure, the .mk file + of package A should be fixed to mention this optional dependency, + but in the mean time, you can have non-reproducible behaviors. +
  • +The request is to also allow changes in the menuconfig to be + applied on the output directory without having to rebuild + everything from scratch. However, this is very difficult to achieve + in a reliable way: what happens when the suboptions of a package + are changed (we would have to detect this, and rebuild the package + from scratch and potentially all its reverse dependencies), what + happens if toolchain options are changed, etc. At the moment, what + Buildroot does is clear and simple so its behaviour is very + reliable and it is easy to support users. If configuration changes + done in menuconfig are applied after the next make, then it has to + work correctly and properly in all situations, and not have some + bizarre corner cases. The risk is to get bug reports like "I have + enabled package A, B and C, then ran make, then disabled package + C and enabled package D and ran make, then re-enabled package C + and enabled package E and then there is a build failure". Or worse + "I did some configuration, then built, then did some changes, + built, some more changes, built, some more changes, built, and now + it fails, but I don’t remember all the changes I did and in which + order". This will be impossible to support. +

For all these reasons, the conclusion is that adding tracking of +installed files to remove them when the package is unselected, or to +generate a repository of binary packages, is something that is very +hard to achieve reliably and will add a lot of complexity.

On this matter, the Buildroot developers make this position statement:

  • +Buildroot strives to make it easy to generate a root filesystem (hence + the name, by the way.) That is what we want to make Buildroot good at: + building root filesystems. +
  • +Buildroot is not meant to be a distribution (or rather, a distribution + generator.) It is the opinion of most Buildroot developers that this + is not a goal we should pursue. We believe that there are other tools + better suited to generate a distro than Buildroot is. For example, + Open Embedded, or openWRT, + are such tools. +
  • +We prefer to push Buildroot in a direction that makes it easy (or even + easier) to generate complete root filesystems. This is what makes + Buildroot stands out in the crowd (among other things, of course!) +
  • +We believe that for most embedded Linux systems, binary packages are + not necessary, and potentially harmful. When binary packages are + used, it means that the system can be partially upgraded, which + creates an enormous number of possible combinations of package + versions that should be tested before doing the upgrade on the + embedded device. On the other hand, by doing complete system + upgrades by upgrading the entire root filesystem image at once, + the image deployed to the embedded system is guaranteed to really + be the one that has been tested and validated. +

11.8. How to speed-up the build process?

Since Buildroot often involves doing full rebuilds of the entire +system that can be quite long, we provide below a number of tips to +help reduce the build time:

  • +Use a pre-built external toolchain instead of the default Buildroot + internal toolchain. By using a pre-built Linaro toolchain (on ARM) + or a Sourcery CodeBench toolchain (for ARM, x86, x86-64, MIPS, + etc.), you will save the build time of the toolchain at each + complete rebuild, approximately 15 to 20 minutes. Note that + temporarily using an external toolchain does not prevent you to + switch back to an internal toolchain (that may provide a higher + level of customization) once the rest of your system is working; +
  • +Use the ccache compiler cache (see: Section 8.13.3, “Using ccache in Buildrootâ€); +
  • +Learn about rebuilding only the few packages you actually care + about (see Section 8.3, “Understanding how to rebuild packagesâ€), but beware that sometimes full + rebuilds are anyway necessary (see Section 8.2, “Understanding when a full rebuild is necessaryâ€); +
  • +Make sure you are not using a virtual machine for the Linux system + used to run Buildroot. Most of the virtual machine technologies are + known to cause a significant performance impact on I/O, which is + really important for building source code; +
  • +Make sure that you’re using only local files: do not attempt to do + a build over NFS, which significantly slows down the build. Having + the Buildroot download folder available locally also helps a bit. +
  • +Buy new hardware. SSDs and lots of RAM are key to speeding up the + builds. +
  • +Experiment with top-level parallel build, see + Section 8.12, “Top-level parallel buildâ€. +

Chapter 12. Known issues

  • +It is not possible to pass extra linker options via BR2_TARGET_LDFLAGS + if such options contain a $ sign. For example, the following is known + to break: BR2_TARGET_LDFLAGS="-Wl,-rpath='$ORIGIN/../lib'" +
  • +The libffi package is not supported on the SuperH 2 and ARMv7-M + architectures. +
  • +The prboom package triggers a compiler failure with the SuperH 4 + compiler from Sourcery CodeBench, version 2012.09. +

Chapter 13. Legal notice and licensing

13.1. Complying with open source licenses

All of the end products of Buildroot (toolchain, root filesystem, kernel, +bootloaders) contain open source software, released under various licenses.

Using open source software gives you the freedom to build rich embedded +systems, choosing from a wide range of packages, but also imposes some +obligations that you must know and honour. +Some licenses require you to publish the license text in the documentation of +your product. Others require you to redistribute the source code of the +software to those that receive your product.

The exact requirements of each license are documented in each package, and +it is your responsibility (or that of your legal office) to comply with those +requirements. +To make this easier for you, Buildroot can collect for you some material you +will probably need. To produce this material, after you have configured +Buildroot with make menuconfig, make xconfig or make gconfig, run:

make legal-info

Buildroot will collect legally-relevant material in your output directory, +under the legal-info/ subdirectory. +There you will find:

  • +A README file, that summarizes the produced material and contains warnings + about material that Buildroot could not produce. +
  • +buildroot.config: this is the Buildroot configuration file that is usually + produced with make menuconfig, and which is necessary to reproduce the + build. +
  • +The source code for all packages; this is saved in the sources/ and + host-sources/ subdirectories for target and host packages respectively. + The source code for packages that set <PKG>_REDISTRIBUTE = NO will not be + saved. + Patches that were applied are also saved, along with a file named series + that lists the patches in the order they were applied. Patches are under the + same license as the files that they modify. + Note: Buildroot applies additional patches to Libtool scripts of + autotools-based packages. These patches can be found under + support/libtool in the Buildroot source and, due to technical + limitations, are not saved with the package sources. You may need to + collect them manually. +
  • +A manifest file (one for host and one for target packages) listing the + configured packages, their version, license and related information. + Some of this information might not be defined in Buildroot; such items are + marked as "unknown". +
  • +The license texts of all packages, in the licenses/ and host-licenses/ + subdirectories for target and host packages respectively. + If the license file(s) are not defined in Buildroot, the file is not produced + and a warning in the README indicates this. +

Please note that the aim of the legal-info feature of Buildroot is to +produce all the material that is somehow relevant for legal compliance with the +package licenses. Buildroot does not try to produce the exact material that +you must somehow make public. Certainly, more material is produced than is +needed for a strict legal compliance. For example, it produces the source code +for packages released under BSD-like licenses, that you are not required to +redistribute in source form.

Moreover, due to technical limitations, Buildroot does not produce some +material that you will or may need, such as the toolchain source code for +some of the external toolchains and the Buildroot source code itself. +When you run make legal-info, Buildroot produces warnings in the README +file to inform you of relevant material that could not be saved.

Finally, keep in mind that the output of make legal-info is based on +declarative statements in each of the packages recipes. The Buildroot +developers try to do their best to keep those declarative statements as +accurate as possible, to the best of their knowledge. However, it is very +well possible that those declarative statements are not all fully accurate +nor exhaustive. You (or your legal department) have to check the output +of make legal-info before using it as your own compliance delivery. See +the NO WARRANTY clauses (clauses 11 and 12) in the COPYING file at the +root of the Buildroot distribution.

13.2. Complying with the Buildroot license

Buildroot itself is an open source software, released under the +GNU General +Public License, version 2 or (at your option) any later version, with +the exception of the package patches detailed below. +However, being a build system, it is not normally part of the end product: +if you develop the root filesystem, kernel, bootloader or toolchain for a +device, the code of Buildroot is only present on the development machine, not +in the device storage.

Nevertheless, the general view of the Buildroot developers is that you should +release the Buildroot source code along with the source code of other packages +when releasing a product that contains GPL-licensed software. +This is because the +GNU GPL +defines the "complete source code" for an executable work as "all the +source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable". +Buildroot is part of the scripts used to control compilation and +installation of the executable, and as such it is considered part of the +material that must be redistributed.

Keep in mind that this is only the Buildroot developers' opinion, and you +should consult your legal department or lawyer in case of any doubt.

13.2.1. Patches to packages

Buildroot also bundles patch files, which are applied to the sources +of the various packages. Those patches are not covered by the license +of Buildroot. Instead, they are covered by the license of the software +to which the patches are applied. When said software is available +under multiple licenses, the Buildroot patches are only provided under +the publicly accessible licenses.

See Chapter 19, Patching a package for the technical details.

Chapter 14. Beyond Buildroot

14.1. Boot the generated images

14.1.1. NFS boot

To achieve NFS-boot, enable tar root filesystem in the Filesystem +images menu.

After a complete build, just run the following commands to setup the +NFS-root directory:

sudo tar -xavf /path/to/output_dir/rootfs.tar -C /path/to/nfs_root_dir

Remember to add this path to /etc/exports.

Then, you can execute a NFS-boot from your target.

14.1.2. Live CD

To build a live CD image, enable the iso image option in the +Filesystem images menu. Note that this option is only available on +the x86 and x86-64 architectures, and if you are building your kernel +with Buildroot.

You can build a live CD image with either IsoLinux, Grub or Grub 2 as +a bootloader, but only Isolinux supports making this image usable both +as a live CD and live USB (through the Build hybrid image option).

You can test your live CD image using QEMU:

qemu-system-i386 -cdrom output/images/rootfs.iso9660

Or use it as a hard-drive image if it is a hybrid ISO:

qemu-system-i386 -hda output/images/rootfs.iso9660

It can be easily flashed to a USB drive with dd:

dd if=output/images/rootfs.iso9660 of=/dev/sdb

14.2. Chroot

If you want to chroot in a generated image, then there are few thing +you should be aware of:

  • +you should setup the new root from the tar root filesystem image; +
  • +either the selected target architecture is compatible with your host + machine, or you should use some qemu-* binary and correctly set it + within the binfmt properties to be able to run the binaries built + for the target on your host machine; +
  • +Buildroot does not currently provide host-qemu and binfmt + correctly built and set for that kind of use. +

Part III. Developer guide

Chapter 15. How Buildroot works

As mentioned above, Buildroot is basically a set of Makefiles that +download, configure, and compile software with the correct options. It +also includes patches for various software packages - mainly the ones +involved in the cross-compilation toolchain (gcc, binutils and +uClibc).

There is basically one Makefile per software package, and they are +named with the .mk extension. Makefiles are split into many different +parts.

  • +The toolchain/ directory contains the Makefiles + and associated files for all software related to the + cross-compilation toolchain: binutils, gcc, gdb, + kernel-headers and uClibc. +
  • +The arch/ directory contains the definitions for all the processor + architectures that are supported by Buildroot. +
  • +The package/ directory contains the Makefiles and + associated files for all user-space tools and libraries that Buildroot + can compile and add to the target root filesystem. There is one + sub-directory per package. +
  • +The linux/ directory contains the Makefiles and associated files for + the Linux kernel. +
  • +The boot/ directory contains the Makefiles and associated files for + the bootloaders supported by Buildroot. +
  • +The system/ directory contains support for system integration, e.g. + the target filesystem skeleton and the selection of an init system. +
  • +The fs/ directory contains the Makefiles and + associated files for software related to the generation of the + target root filesystem image. +

Each directory contains at least 2 files:

  • +something.mk is the Makefile that downloads, configures, + compiles and installs the package something. +
  • +Config.in is a part of the configuration tool + description file. It describes the options related to the + package. +

The main Makefile performs the following steps (once the +configuration is done):

  • +Create all the output directories: staging, target, build, + etc. in the output directory (output/ by default, + another value can be specified using O=) +
  • +Generate the toolchain target. When an internal toolchain is used, this + means generating the cross-compilation toolchain. When an external + toolchain is used, this means checking the features of the external + toolchain and importing it into the Buildroot environment. +
  • +Generate all the targets listed in the TARGETS variable. This + variable is filled by all the individual components' + Makefiles. Generating these targets will trigger the compilation of + the userspace packages (libraries, programs), the kernel, the + bootloader and the generation of the root filesystem images, + depending on the configuration. +

Chapter 16. Coding style

Overall, these coding style rules are here to help you to add new files in +Buildroot or refactor existing ones.

If you slightly modify some existing file, the important thing is +to keep the consistency of the whole file, so you can:

  • +either follow the potentially deprecated coding style used in this +file, +
  • +or entirely rework it in order to make it comply with these rules. +

16.1. Config.in file

Config.in files contain entries for almost anything configurable in +Buildroot.

An entry has the following pattern:

config BR2_PACKAGE_LIBFOO
+        bool "libfoo"
+        depends on BR2_PACKAGE_LIBBAZ
+        select BR2_PACKAGE_LIBBAR
+        help
+          This is a comment that explains what libfoo is. The help text
+          should be wrapped.
+
+          http://foosoftware.org/libfoo/
  • +The bool, depends on, select and help lines are indented + with one tab. +
  • +The help text itself should be indented with one tab and two + spaces. +
  • +The help text should be wrapped to fit 72 columns, where tab counts + for 8, so 62 characters in the text itself. +

The Config.in files are the input for the configuration tool +used in Buildroot, which is the regular Kconfig. For further +details about the Kconfig language, refer to +http://kernel.org/doc/Documentation/kbuild/kconfig-language.txt.

16.2. The .mk file

  • +Header: The file starts with a header. It contains the module name, +preferably in lowercase, enclosed between separators made of 80 hashes. A +blank line is mandatory after the header: +

    ################################################################################
    +#
    +# libfoo
    +#
    +################################################################################
  • +Assignment: use = preceded and followed by one space: +

    LIBFOO_VERSION = 1.0
    +LIBFOO_CONF_OPTS += --without-python-support

    Do not align the = signs.

  • +Indentation: use tab only: +

    define LIBFOO_REMOVE_DOC
    +        $(RM) -fr $(TARGET_DIR)/usr/share/libfoo/doc \
    +                $(TARGET_DIR)/usr/share/man/man3/libfoo*
    +endef

    Note that commands inside a define block should always start with a tab, +so make recognizes them as commands.

  • +Optional dependency: +

    • +Prefer multi-line syntax. +

      YES:

      ifeq ($(BR2_PACKAGE_PYTHON3),y)
      +LIBFOO_CONF_OPTS += --with-python-support
      +LIBFOO_DEPENDENCIES += python3
      +else
      +LIBFOO_CONF_OPTS += --without-python-support
      +endif

      NO:

      LIBFOO_CONF_OPTS += --with$(if $(BR2_PACKAGE_PYTHON3),,out)-python-support
      +LIBFOO_DEPENDENCIES += $(if $(BR2_PACKAGE_PYTHON3),python3,)
    • +Keep configure options and dependencies close together. +
  • +Optional hooks: keep hook definition and assignment together in one + if block. +

    YES:

    ifneq ($(BR2_LIBFOO_INSTALL_DATA),y)
    +define LIBFOO_REMOVE_DATA
    +        $(RM) -fr $(TARGET_DIR)/usr/share/libfoo/data
    +endef
    +LIBFOO_POST_INSTALL_TARGET_HOOKS += LIBFOO_REMOVE_DATA
    +endif

    NO:

    define LIBFOO_REMOVE_DATA
    +        $(RM) -fr $(TARGET_DIR)/usr/share/libfoo/data
    +endef
    +
    +ifneq ($(BR2_LIBFOO_INSTALL_DATA),y)
    +LIBFOO_POST_INSTALL_TARGET_HOOKS += LIBFOO_REMOVE_DATA
    +endif

16.3. The genimage.cfg file

genimage.cfg files contain the output image layout that genimage utility +uses to create final .img file.

An example follows:

image efi-part.vfat {
+        vfat {
+                file EFI {
+                        image = "efi-part/EFI"
+                }
+
+                file Image {
+                        image = "Image"
+                }
+        }
+
+        size = 32M
+}
+
+image sdimage.img {
+        hdimage {
+        }
+
+        partition u-boot {
+                image = "efi-part.vfat"
+                offset = 8K
+        }
+
+        partition root {
+                image = "rootfs.ext2"
+                size = 512M
+        }
+}
  • +Every section(i.e. hdimage, vfat etc.), partition must be indented + with one tab. +
  • +Every file or other subnode must be indented with two tabs. +
  • +Every node(section, partition, file, subnode) must have an open + curly bracket on the same line of the node’s name, while the closing one + must be on a newline and after it a newline must be added except for the + last one node. Same goes for its option, for example option size =. +
  • +Every option(i.e. image, offset, size) must have the = + assignment one space from it and one space from the value specified. +
  • +Filename must at least begin with genimage prefix and have the .cfg + extension to be easy to recognize. +
  • +Allowed notations for offset and size options are: G, M, K + (not k). If it’s not possible to express a precise byte count + with notations above then use hexadecimal 0x prefix or, as last + chance, the byte count. In comments instead use GB, MB, KB + (not kb) in place of G, M, K. +
  • +For GPT partitions, the partition-type-uuid value must be U for + the EFI System Partition (expanded to + c12a7328-f81f-11d2-ba4b-00a0c93ec93b by genimage), F for a FAT + partition (expanded to ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 by + genimage) or L for the root filesystem or other filesystems + (expanded to 0fc63daf-8483-4772-8e79-3d69d8477de4 by + genimage). Even though L is the default value of genimage, we + prefer to have it explicitly specified in our genimage.cfg + files. Finally, these shortcuts should be used without double + quotes, e.g partition-type-uuid = U. If an explicit GUID is + specified, lower-case letters should be used. +

The genimage.cfg files are the input for the genimage tool used in +Buildroot to generate the final image file(i.e. sdcard.img). For further +details about the genimage language, refer to +https://github.com/pengutronix/genimage/blob/master/README.rst.

16.4. The documentation

The documentation uses the +asciidoc format.

For further details about the asciidoc syntax, refer to +https://asciidoc-py.github.io/userguide.html.

16.5. Support scripts

Some scripts in the support/ and utils/ directories are written in +Python and should follow the +PEP8 Style Guide for Python Code.

Chapter 17. Adding support for a particular board

Buildroot contains basic configurations for several publicly available +hardware boards, so that users of such a board can easily build a system +that is known to work. You are welcome to add support for other boards +to Buildroot too.

To do so, you need to create a normal Buildroot configuration that +builds a basic system for the hardware: (internal) toolchain, kernel, +bootloader, filesystem and a simple BusyBox-only userspace. No specific +package should be selected: the configuration should be as minimal as +possible, and should only build a working basic BusyBox system for the +target platform. You can of course use more complicated configurations +for your internal projects, but the Buildroot project will only +integrate basic board configurations. This is because package +selections are highly application-specific.

Once you have a known working configuration, run make +savedefconfig. This will generate a minimal defconfig file at the +root of the Buildroot source tree. Move this file into the configs/ +directory, and rename it <boardname>_defconfig. If the configuration +is a bit more complicated, it is nice to manually reformat it and +separate it into sections, with a comment before each section. Typical +sections are Architecture, Toolchain options (typically just linux +headers version), Firmware, Bootloader, Kernel, and Filesystem.

Always use fixed versions or commit hashes for the different +components, not the "latest" version. For example, set +BR2_LINUX_KERNEL_CUSTOM_VERSION=y and +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE to the kernel version you tested +with.

It is recommended to use as much as possible upstream versions of the +Linux kernel and bootloaders, and to use as much as possible default +kernel and bootloader configurations. If they are incorrect for your +board, or no default exists, we encourage you to send fixes to the +corresponding upstream projects.

However, in the mean time, you may want to store kernel or bootloader +configuration or patches specific to your target platform. To do so, +create a directory board/<manufacturer> and a subdirectory +board/<manufacturer>/<boardname>. You can then store your patches +and configurations in these directories, and reference them from the main +Buildroot configuration. Refer to Chapter 9, Project-specific customization for more details.

Before submitting patches for new boards it is recommended to test it by +building it using latest gitlab-CI docker container. To do this use +utils/docker-run script and inside it issue these commands:

 $ make +<boardname>_defconfig+
+ $ make

Chapter 18. Adding new packages to Buildroot

This section covers how new packages (userspace libraries or +applications) can be integrated into Buildroot. It also shows how +existing packages are integrated, which is needed for fixing issues or +tuning their configuration.

When you add a new package, be sure to test it in various conditions +(see Section 18.25.3, “How to test your packageâ€) and also check it for coding style (see +Section 18.25.2, “How to check the coding styleâ€).

18.1. Package directory

First of all, create a directory under the package directory for +your software, for example libfoo.

Some packages have been grouped by topic in a sub-directory: +x11r7, qt5 and gstreamer. If your package fits in +one of these categories, then create your package directory in these. +New subdirectories are discouraged, however.

18.2. Config files

For the package to be displayed in the configuration tool, you need to +create a Config file in your package directory. There are two types: +Config.in and Config.in.host.

18.2.1. Config.in file

For packages used on the target, create a file named Config.in. This +file will contain the option descriptions related to our libfoo software +that will be used and displayed in the configuration tool. It should basically +contain:

config BR2_PACKAGE_LIBFOO
+        bool "libfoo"
+        help
+          This is a comment that explains what libfoo is. The help text
+          should be wrapped.
+
+          http://foosoftware.org/libfoo/

The bool line, help line and other metadata information about the +configuration option must be indented with one tab. The help text +itself should be indented with one tab and two spaces, lines should +be wrapped to fit 72 columns, where tab counts for 8, so 62 characters +in the text itself. The help text must mention the upstream URL of the +project after an empty line.

As a convention specific to Buildroot, the ordering of the attributes +is as follows:

  1. +The type of option: bool, string… with the prompt +
  2. +If needed, the default value(s) +
  3. +Any dependencies on the target in depends on form +
  4. +Any dependencies on the toolchain in depends on form +
  5. +Any dependencies on other packages in depends on form +
  6. +Any dependency of the select form +
  7. +The help keyword and help text. +

You can add other sub-options into a if BR2_PACKAGE_LIBFOO…endif +statement to configure particular things in your software. You can look at +examples in other packages. The syntax of the Config.in file is the same +as the one for the kernel Kconfig file. The documentation for this syntax is +available at http://kernel.org/doc/Documentation/kbuild/kconfig-language.txt

Finally you have to add your new libfoo/Config.in to +package/Config.in (or in a category subdirectory if you decided to +put your package in one of the existing categories). The files +included there are sorted alphabetically per category and are NOT +supposed to contain anything but the bare name of the package.

source "package/libfoo/Config.in"

18.2.2. Config.in.host file

Some packages also need to be built for the host system. There are two +options here:

  • +The host package is only required to satisfy build-time + dependencies of one or more target packages. In this case, add + host-foo to the target package’s BAR_DEPENDENCIES variable. No + Config.in.host file should be created. +
  • +The host package should be explicitly selectable by the user from + the configuration menu. In this case, create a Config.in.host file + for that host package: +

    config BR2_PACKAGE_HOST_FOO
    +        bool "host foo"
    +        help
    +          This is a comment that explains what foo for the host is.
    +
    +          http://foosoftware.org/foo/

    The same coding style and options as for the Config.in file are valid.

    Finally you have to add your new libfoo/Config.in.host to +package/Config.in.host. The files included there are sorted alphabetically +and are NOT supposed to contain anything but the bare name of the package.

    source "package/foo/Config.in.host"

    The host package will then be available from the Host utilities menu.

18.2.3. Choosing depends on or select

The Config.in file of your package must also ensure that +dependencies are enabled. Typically, Buildroot uses the following +rules:

  • +Use a select type of dependency for dependencies on + libraries. These dependencies are generally not obvious and it + therefore make sense to have the kconfig system ensure that the + dependencies are selected. For example, the libgtk2 package uses + select BR2_PACKAGE_LIBGLIB2 to make sure this library is also + enabled. + The select keyword expresses the dependency with a backward + semantic. +
  • +Use a depends on type of dependency when the user really needs to + be aware of the dependency. Typically, Buildroot uses this type of + dependency for dependencies on target architecture, MMU support and + toolchain options (see Section 18.2.4, “Dependencies on target and toolchain optionsâ€), + or for dependencies on "big" things, such as the X.org system. + The depends on keyword expresses the dependency with a forward + semantic. +

Note. The current problem with the kconfig language is that these two +dependency semantics are not internally linked. Therefore, it may be +possible to select a package, whom one of its dependencies/requirement +is not met.

An example illustrates both the usage of select and depends on.

config BR2_PACKAGE_RRDTOOL
+        bool "rrdtool"
+        depends on BR2_USE_WCHAR
+        select BR2_PACKAGE_FREETYPE
+        select BR2_PACKAGE_LIBART
+        select BR2_PACKAGE_LIBPNG
+        select BR2_PACKAGE_ZLIB
+        help
+          RRDtool is the OpenSource industry standard, high performance
+          data logging and graphing system for time series data.
+
+          http://oss.oetiker.ch/rrdtool/
+
+comment "rrdtool needs a toolchain w/ wchar"
+        depends on !BR2_USE_WCHAR

Note that these two dependency types are only transitive with the +dependencies of the same kind.

This means, in the following example:

config BR2_PACKAGE_A
+        bool "Package A"
+
+config BR2_PACKAGE_B
+        bool "Package B"
+        depends on BR2_PACKAGE_A
+
+config BR2_PACKAGE_C
+        bool "Package C"
+        depends on BR2_PACKAGE_B
+
+config BR2_PACKAGE_D
+        bool "Package D"
+        select BR2_PACKAGE_B
+
+config BR2_PACKAGE_E
+        bool "Package E"
+        select BR2_PACKAGE_D
  • +Selecting Package C will be visible if Package B has been + selected, which in turn is only visible if Package A has been + selected. +
  • +Selecting Package E will select Package D, which will select + Package B, it will not check for the dependencies of Package B, + so it will not select Package A. +
  • +Since Package B is selected but Package A is not, this violates + the dependency of Package B on Package A. Therefore, in such a + situation, the transitive dependency has to be added explicitly: +
config BR2_PACKAGE_D
+        bool "Package D"
+        depends on BR2_PACKAGE_A
+        select BR2_PACKAGE_B
+
+config BR2_PACKAGE_E
+        bool "Package E"
+        depends on BR2_PACKAGE_A
+        select BR2_PACKAGE_D

Overall, for package library dependencies, select should be +preferred.

Note that such dependencies will ensure that the dependency option +is also enabled, but not necessarily built before your package. To do +so, the dependency also needs to be expressed in the .mk file of the +package.

Further formatting details: see the +coding style.

18.2.4. Dependencies on target and toolchain options

Many packages depend on certain options of the toolchain: the choice of +C library, C++ support, thread support, RPC support, wchar support, +or dynamic library support. Some packages can only be built on certain +target architectures, or if an MMU is available in the processor.

These dependencies have to be expressed with the appropriate depends +on statements in the Config.in file. Additionally, for dependencies on +toolchain options, a comment should be displayed when the option is +not enabled, so that the user knows why the package is not available. +Dependencies on target architecture or MMU support should not be +made visible in a comment: since it is unlikely that the user can +freely choose another target, it makes little sense to show these +dependencies explicitly.

The comment should only be visible if the config option itself would +be visible when the toolchain option dependencies are met. This means +that all other dependencies of the package (including dependencies on +target architecture and MMU support) have to be repeated on the +comment definition. To keep it clear, the depends on statement for +these non-toolchain option should be kept separate from the depends on +statement for the toolchain options. +If there is a dependency on a config option in that same file (typically +the main package) it is preferable to have a global if … endif +construct rather than repeating the depends on statement on the +comment and other config options.

The general format of a dependency comment for package foo is:

foo needs a toolchain w/ featA, featB, featC

for example:

mpd needs a toolchain w/ C++, threads, wchar

or

crda needs a toolchain w/ threads

Note that this text is kept brief on purpose, so that it will fit on a +80-character terminal.

The rest of this section enumerates the different target and toolchain +options, the corresponding config symbols to depend on, and the text to +use in the comment.

  • +Target architecture +

    • +Dependency symbol: BR2_powerpc, BR2_mips, … (see arch/Config.in) +
    • +Comment string: no comment to be added +
  • +MMU support +

    • +Dependency symbol: BR2_USE_MMU +
    • +Comment string: no comment to be added +
  • +Gcc _sync* built-ins used for atomic operations. They are + available in variants operating on 1 byte, 2 bytes, 4 bytes and 8 + bytes. Since different architectures support atomic operations on + different sizes, one dependency symbol is available for each size: +

    • +Dependency symbol: BR2_TOOLCHAIN_HAS_SYNC_1 for 1 byte, + BR2_TOOLCHAIN_HAS_SYNC_2 for 2 bytes, + BR2_TOOLCHAIN_HAS_SYNC_4 for 4 bytes, BR2_TOOLCHAIN_HAS_SYNC_8 + for 8 bytes. +
    • +Comment string: no comment to be added +
  • +Gcc _atomic* built-ins used for atomic operations. +

    • +Dependency symbol: BR2_TOOLCHAIN_HAS_ATOMIC. +
    • +Comment string: no comment to be added +
  • +Kernel headers +

    • +Dependency symbol: BR2_TOOLCHAIN_HEADERS_AT_LEAST_X_Y, (replace + X_Y with the proper version, see toolchain/Config.in) +
    • +Comment string: headers >= X.Y and/or headers <= X.Y (replace + X.Y with the proper version) +
  • +GCC version +

    • +Dependency symbol: BR2_TOOLCHAIN_GCC_AT_LEAST_X_Y, (replace + X_Y with the proper version, see toolchain/Config.in) +
    • +Comment string: gcc >= X.Y and/or gcc <= X.Y (replace + X.Y with the proper version) +
  • +Host GCC version +

    • +Dependency symbol: BR2_HOST_GCC_AT_LEAST_X_Y, (replace + X_Y with the proper version, see Config.in) +
    • +Comment string: no comment to be added +
    • +Note that it is usually not the package itself that has a minimum + host GCC version, but rather a host-package on which it depends. +
  • +C library +

    • +Dependency symbol: BR2_TOOLCHAIN_USES_GLIBC, + BR2_TOOLCHAIN_USES_MUSL, BR2_TOOLCHAIN_USES_UCLIBC +
    • +Comment string: for the C library, a slightly different comment text + is used: foo needs a glibc toolchain, or foo needs a glibc + toolchain w/ C++ +
  • +C++ support +

    • +Dependency symbol: BR2_INSTALL_LIBSTDCPP +
    • +Comment string: C++ +
  • +D support +

    • +Dependency symbol: BR2_TOOLCHAIN_HAS_DLANG +
    • +Comment string: Dlang +
  • +Fortran support +

    • +Dependency symbol: BR2_TOOLCHAIN_HAS_FORTRAN +
    • +Comment string: fortran +
  • +thread support +

    • +Dependency symbol: BR2_TOOLCHAIN_HAS_THREADS +
    • +Comment string: threads (unless BR2_TOOLCHAIN_HAS_THREADS_NPTL + is also needed, in which case, specifying only NPTL is sufficient) +
  • +NPTL thread support +

    • +Dependency symbol: BR2_TOOLCHAIN_HAS_THREADS_NPTL +
    • +Comment string: NPTL +
  • +RPC support +

    • +Dependency symbol: BR2_TOOLCHAIN_HAS_NATIVE_RPC +
    • +Comment string: RPC +
  • +wchar support +

    • +Dependency symbol: BR2_USE_WCHAR +
    • +Comment string: wchar +
  • +dynamic library +

    • +Dependency symbol: !BR2_STATIC_LIBS +
    • +Comment string: dynamic library +

18.2.5. Dependencies on a Linux kernel built by buildroot

Some packages need a Linux kernel to be built by buildroot. These are +typically kernel modules or firmware. A comment should be added in the +Config.in file to express this dependency, similar to dependencies on +toolchain options. The general format is:

foo needs a Linux kernel to be built

If there is a dependency on both toolchain options and the Linux +kernel, use this format:

foo needs a toolchain w/ featA, featB, featC and a Linux kernel to be built

18.2.6. Dependencies on udev /dev management

If a package needs udev /dev management, it should depend on symbol +BR2_PACKAGE_HAS_UDEV, and the following comment should be added:

foo needs udev /dev management

If there is a dependency on both toolchain options and udev /dev +management, use this format:

foo needs udev /dev management and a toolchain w/ featA, featB, featC

18.2.7. Dependencies on features provided by virtual packages

Some features can be provided by more than one package, such as the +openGL libraries.

See Section 18.12, “Infrastructure for virtual packages†for more on the virtual packages.

18.3. The .mk file

Finally, here’s the hardest part. Create a file named libfoo.mk. It +describes how the package should be downloaded, configured, built, +installed, etc.

Depending on the package type, the .mk file must be written in a +different way, using different infrastructures:

  • +Makefiles for generic packages (not using autotools or CMake): + These are based on an infrastructure similar to the one used for + autotools-based packages, but require a little more work from the + developer. They specify what should be done for the configuration, + compilation and installation of the package. This + infrastructure must be used for all packages that do not use the + autotools as their build system. In the future, other specialized + infrastructures might be written for other build systems. We cover + them through in a tutorial and a + reference. +
  • +Makefiles for autotools-based software (autoconf, automake, etc.): + We provide a dedicated infrastructure for such packages, since + autotools is a very common build system. This infrastructure must + be used for new packages that rely on the autotools as their build + system. We cover them through a tutorial + and reference. +
  • +Makefiles for cmake-based software: We provide a dedicated + infrastructure for such packages, as CMake is a more and more + commonly used build system and has a standardized behaviour. This + infrastructure must be used for new packages that rely on + CMake. We cover them through a tutorial + and reference. +
  • +Makefiles for Python modules: We have a dedicated infrastructure + for Python modules that use the distutils, flit, pep517 or + setuptools mechanisms. We cover them through a + tutorial and a + reference. +
  • +Makefiles for Lua modules: We have a dedicated infrastructure for + Lua modules available through the LuaRocks web site. We cover them + through a tutorial and a + reference. +

Further formatting details: see the writing +rules.

18.4. The .hash file

When possible, you must add a third file, named libfoo.hash, that +contains the hashes of the downloaded files for the libfoo +package. The only reason for not adding a .hash file is when hash +checking is not possible due to how the package is downloaded.

When a package has a version selection choice, then the hash file may be +stored in a subdirectory named after the version, e.g. +package/libfoo/1.2.3/libfoo.hash. This is especially important if the +different versions have different licensing terms, but they are stored +in the same file. Otherwise, the hash file should stay in the package’s +directory.

The hashes stored in that file are used to validate the integrity of the +downloaded files and of the license files.

The format of this file is one line for each file for which to check the +hash, each line with the following three fields separated by two spaces:

  • +the type of hash, one of: +

    • +md5, sha1, sha224, sha256, sha384, sha512 +
  • +the hash of the file: +

    • +for md5, 32 hexadecimal characters +
    • +for sha1, 40 hexadecimal characters +
    • +for sha224, 56 hexadecimal characters +
    • +for sha256, 64 hexadecimal characters +
    • +for sha384, 96 hexadecimal characters +
    • +for sha512, 128 hexadecimal characters +
  • +the name of the file: +

    • +for a source archive: the basename of the file, without any directory + component, +
    • +for a license file: the path as it appears in FOO_LICENSE_FILES. +

Lines starting with a # sign are considered comments, and ignored. Empty +lines are ignored.

There can be more than one hash for a single file, each on its own line. In +this case, all hashes must match.

Note. Ideally, the hashes stored in this file should match the hashes published by +upstream, e.g. on their website, in the e-mail announcement… If upstream +provides more than one type of hash (e.g. sha1 and sha512), then it is +best to add all those hashes in the .hash file. If upstream does not +provide any hash, or only provides an md5 hash, then compute at least one +strong hash yourself (preferably sha256, but not md5), and mention +this in a comment line above the hashes.

Note. The hashes for license files are used to detect a license change when a +package version is bumped. The hashes are checked during the make legal-info +target run. For a package with multiple versions (like Qt5), +create the hash file in a subdirectory <packageversion> of that package +(see also Section 19.2, “How patches are appliedâ€).

The example below defines a sha1 and a sha256 published by upstream for +the main libfoo-1.2.3.tar.bz2 tarball, an md5 from upstream and a +locally-computed sha256 hashes for a binary blob, a sha256 for a +downloaded patch, and an archive with no hash:

# Hashes from: http://www.foosoftware.org/download/libfoo-1.2.3.tar.bz2.{sha1,sha256}:
+sha1  486fb55c3efa71148fe07895fd713ea3a5ae343a  libfoo-1.2.3.tar.bz2
+sha256  efc8103cc3bcb06bda6a781532d12701eb081ad83e8f90004b39ab81b65d4369  libfoo-1.2.3.tar.bz2
+
+# md5 from: http://www.foosoftware.org/download/libfoo-1.2.3.tar.bz2.md5, sha256 locally computed:
+md5  2d608f3c318c6b7557d551a5a09314f03452f1a1  libfoo-data.bin
+sha256  01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b  libfoo-data.bin
+
+# Locally computed:
+sha256  ff52101fb90bbfc3fe9475e425688c660f46216d7e751c4bbdb1dc85cdccacb9  libfoo-fix-blabla.patch
+
+# Hash for license files:
+sha256  a45a845012742796534f7e91fe623262ccfb99460a2bd04015bd28d66fba95b8  COPYING
+sha256  01b1f9f2c8ee648a7a596a1abe8aa4ed7899b1c9e5551bda06da6e422b04aa55  doc/COPYING.LGPL

If the .hash file is present, and it contains one or more hashes for a +downloaded file, the hash(es) computed by Buildroot (after download) must +match the hash(es) stored in the .hash file. If one or more hashes do +not match, Buildroot considers this an error, deletes the downloaded file, +and aborts.

If the .hash file is present, but it does not contain a hash for a +downloaded file, Buildroot considers this an error and aborts. However, +the downloaded file is left in the download directory since this +typically indicates that the .hash file is wrong but the downloaded +file is probably OK.

Hashes are currently checked for files fetched from http/ftp servers, +Git repositories, files copied using scp and local files. Hashes are +not checked for other version control systems (such as Subversion, +CVS, etc.) because Buildroot currently does not generate reproducible +tarballs when source code is fetched from such version control +systems.

Hashes should only be added in .hash files for files that are +guaranteed to be stable. For example, patches auto-generated by Github +are not guaranteed to be stable, and therefore their hashes can change +over time. Such patches should not be downloaded, and instead be added +locally to the package folder.

If the .hash file is missing, then no check is done at all.

18.5. The SNNfoo start script

Packages that provide a system daemon usually need to be started somehow +at boot. Buildroot comes with support for several init systems, some +are considered tier one (see Section 6.3, “init systemâ€), while others are also +available but do not have the same level of integration. Ideally, all +packages providing a system daemon should provide a start script for +BusyBox/SysV init and a systemd unit file.

For consistency, the start script must follow the style and composition +as shown in the reference: package/busybox/S01syslogd. An annotated +example of this style is shown below. There is no specific coding style +for systemd unit files, but if a package comes with its own unit file, +that is preferred over a buildroot specific one, if it is compatible +with buildroot.

The name of the start script is composed of the SNN and the daemon +name. The NN is the start order number which needs to be carefully +chosen. For example, a program that requires networking to be up should +not start before S40network. The scripts are started in alphabetical +order, so S01syslogd starts before S01watchdogd, and S02sysctl +start thereafter.

01: #!/bin/sh
+02:
+03: DAEMON="syslogd"
+04: PIDFILE="/var/run/$DAEMON.pid"
+05:
+06: SYSLOGD_ARGS=""
+07:
+08: # shellcheck source=/dev/null
+09: [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON"
+10:
+11: # BusyBox' syslogd does not create a pidfile, so pass "-n" in the command line
+12: # and use "-m" to instruct start-stop-daemon to create one.
+13: start() {
+14:     printf 'Starting %s: ' "$DAEMON"
+15:     # shellcheck disable=SC2086 # we need the word splitting
+16:     start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "/sbin/$DAEMON" \
+17:             -- -n $SYSLOGD_ARGS
+18:     status=$?
+19:     if [ "$status" -eq 0 ]; then
+20:             echo "OK"
+21:     else
+22:             echo "FAIL"
+23:     fi
+24:     return "$status"
+25: }
+26:
+27: stop() {
+28:     printf 'Stopping %s: ' "$DAEMON"
+29:     start-stop-daemon -K -q -p "$PIDFILE"
+30:     status=$?
+31:     if [ "$status" -eq 0 ]; then
+32:             rm -f "$PIDFILE"
+33:             echo "OK"
+34:     else
+35:             echo "FAIL"
+36:     fi
+37:     return "$status"
+38: }
+39:
+40: restart() {
+41:     stop
+42:     sleep 1
+43:     start
+44: }
+45:
+46: case "$1" in
+47:     start|stop|restart)
+48:             "$1";;
+49:     reload)
+50:             # Restart, since there is no true "reload" feature.
+51:             restart;;
+52:     *)
+53:             echo "Usage: $0 {start|stop|restart|reload}"
+54:             exit 1
+55: esac

Note: programs that support reloading their configuration in some +fashion (SIGHUP) should provide a reload() function similar to +stop(). The start-stop-daemon supports -K -s HUP for this. +It is recommended to always append -x "/sbin/$DAEMON" to all the +start-stop-daemon commands to ensure signals are set to a PID that +matches $DAEMON.

Both start scripts and unit files can source command line arguments from +/etc/default/foo, in general, if such a file does not exist it should +not block the start of the daemon, unless there is some site specirfic +command line argument the daemon requires to start. For start scripts a +FOO_ARGS="-s -o -m -e -args" can be defined to a default value in and +the user can override this from /etc/default/foo.

18.6. Infrastructure for packages with specific build systems

By packages with specific build systems we mean all the packages +whose build system is not one of the standard ones, such as +autotools or CMake. This typically includes packages whose build +system is based on hand-written Makefiles or shell scripts.

18.6.1. generic-package tutorial

01: ################################################################################
+02: #
+03: # libfoo
+04: #
+05: ################################################################################
+06:
+07: LIBFOO_VERSION = 1.0
+08: LIBFOO_SOURCE = libfoo-$(LIBFOO_VERSION).tar.gz
+09: LIBFOO_SITE = http://www.foosoftware.org/download
+10: LIBFOO_LICENSE = GPL-3.0+
+11: LIBFOO_LICENSE_FILES = COPYING
+12: LIBFOO_INSTALL_STAGING = YES
+13: LIBFOO_CONFIG_SCRIPTS = libfoo-config
+14: LIBFOO_DEPENDENCIES = host-libaaa libbbb
+15:
+16: define LIBFOO_BUILD_CMDS
+17:     $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) all
+18: endef
+19:
+20: define LIBFOO_INSTALL_STAGING_CMDS
+21:     $(INSTALL) -D -m 0755 $(@D)/libfoo.a $(STAGING_DIR)/usr/lib/libfoo.a
+22:     $(INSTALL) -D -m 0644 $(@D)/foo.h $(STAGING_DIR)/usr/include/foo.h
+23:     $(INSTALL) -D -m 0755 $(@D)/libfoo.so* $(STAGING_DIR)/usr/lib
+24: endef
+25:
+26: define LIBFOO_INSTALL_TARGET_CMDS
+27:     $(INSTALL) -D -m 0755 $(@D)/libfoo.so* $(TARGET_DIR)/usr/lib
+28:     $(INSTALL) -d -m 0755 $(TARGET_DIR)/etc/foo.d
+29: endef
+30:
+31: define LIBFOO_USERS
+32:     foo -1 libfoo -1 * - - - LibFoo daemon
+33: endef
+34:
+35: define LIBFOO_DEVICES
+36:     /dev/foo c 666 0 0 42 0 - - -
+37: endef
+38:
+39: define LIBFOO_PERMISSIONS
+40:     /bin/foo f 4755 foo libfoo - - - - -
+41: endef
+42:
+43: $(eval $(generic-package))

The Makefile begins on line 7 to 11 with metadata information: the +version of the package (LIBFOO_VERSION), the name of the +tarball containing the package (LIBFOO_SOURCE) (xz-ed tarball recommended) +the Internet location at which the tarball can be downloaded from +(LIBFOO_SITE), the license (LIBFOO_LICENSE) and file with the +license text (LIBFOO_LICENSE_FILES). All variables must start with +the same prefix, LIBFOO_ in this case. This prefix is always the +uppercased version of the package name (see below to understand where +the package name is defined).

On line 12, we specify that this package wants to install something to +the staging space. This is often needed for libraries, since they must +install header files and other development files in the staging space. +This will ensure that the commands listed in the +LIBFOO_INSTALL_STAGING_CMDS variable will be executed.

On line 13, we specify that there is some fixing to be done to some +of the libfoo-config files that were installed during +LIBFOO_INSTALL_STAGING_CMDS phase. +These *-config files are executable shell script files that are +located in $(STAGING_DIR)/usr/bin directory and are executed +by other 3rd party packages to find out the location and the linking +flags of this particular package.

The problem is that all these *-config files by default give wrong, +host system linking flags that are unsuitable for cross-compiling.

For example: -I/usr/include instead of -I$(STAGING_DIR)/usr/include +or: -L/usr/lib instead of -L$(STAGING_DIR)/usr/lib

So some sed magic is done to these scripts to make them give correct +flags. +The argument to be given to LIBFOO_CONFIG_SCRIPTS is the file name(s) +of the shell script(s) needing fixing. All these names are relative to +$(STAGING_DIR)/usr/bin and if needed multiple names can be given.

In addition, the scripts listed in LIBFOO_CONFIG_SCRIPTS are removed +from $(TARGET_DIR)/usr/bin, since they are not needed on the target.

Example 18.1. Config script: divine package

Package divine installs shell script $(STAGING_DIR)/usr/bin/divine-config.

So its fixup would be:

DIVINE_CONFIG_SCRIPTS = divine-config

Example 18.2. Config script: imagemagick package:

Package imagemagick installs the following scripts: +$(STAGING_DIR)/usr/bin/{Magick,Magick++,MagickCore,MagickWand,Wand}-config

So it’s fixup would be:

IMAGEMAGICK_CONFIG_SCRIPTS = \
+   Magick-config Magick++-config \
+   MagickCore-config MagickWand-config Wand-config

On line 14, we specify the list of dependencies this package relies +on. These dependencies are listed in terms of lower-case package names, +which can be packages for the target (without the host- +prefix) or packages for the host (with the host-) prefix). +Buildroot will ensure that all these packages are built and installed +before the current package starts its configuration.

The rest of the Makefile, lines 16..29, defines what should be done +at the different steps of the package configuration, compilation and +installation. +LIBFOO_BUILD_CMDS tells what steps should be performed to +build the package. LIBFOO_INSTALL_STAGING_CMDS tells what +steps should be performed to install the package in the staging space. +LIBFOO_INSTALL_TARGET_CMDS tells what steps should be +performed to install the package in the target space.

All these steps rely on the $(@D) variable, which +contains the directory where the source code of the package has been +extracted.

On lines 31..33, we define a user that is used by this package (e.g. +to run a daemon as non-root) (LIBFOO_USERS).

On line 35..37, we define a device-node file used by this package +(LIBFOO_DEVICES).

On line 39..41, we define the permissions to set to specific files +installed by this package (LIBFOO_PERMISSIONS).

Finally, on line 43, we call the generic-package function, which +generates, according to the variables defined previously, all the +Makefile code necessary to make your package working.

18.6.2. generic-package reference

There are two variants of the generic target. The generic-package macro is +used for packages to be cross-compiled for the target. The +host-generic-package macro is used for host packages, natively compiled +for the host. It is possible to call both of them in a single .mk +file: once to create the rules to generate a target +package and once to create the rules to generate a host package:

$(eval $(generic-package))
+$(eval $(host-generic-package))

This might be useful if the compilation of the target package requires +some tools to be installed on the host. If the package name is +libfoo, then the name of the package for the target is also +libfoo, while the name of the package for the host is +host-libfoo. These names should be used in the DEPENDENCIES +variables of other packages, if they depend on libfoo or +host-libfoo.

The call to the generic-package and/or host-generic-package macro +must be at the end of the .mk file, after all variable definitions. +The call to host-generic-package must be after the call to +generic-package, if any.

For the target package, the generic-package uses the variables defined by +the .mk file and prefixed by the uppercased package name: +LIBFOO_*. host-generic-package uses the HOST_LIBFOO_* variables. For +some variables, if the HOST_LIBFOO_ prefixed variable doesn’t +exist, the package infrastructure uses the corresponding variable +prefixed by LIBFOO_. This is done for variables that are likely to +have the same value for both the target and host packages. See below +for details.

The list of variables that can be set in a .mk file to give metadata +information is (assuming the package name is libfoo) :

  • +LIBFOO_VERSION, mandatory, must contain the version of the + package. Note that if HOST_LIBFOO_VERSION doesn’t exist, it is + assumed to be the same as LIBFOO_VERSION. It can also be a + revision number or a tag for packages that are fetched directly + from their version control system. Examples: +

    • +a version for a release tarball: LIBFOO_VERSION = 0.1.2 +
    • +a sha1 for a git tree: LIBFOO_VERSION = cb9d6aa9429e838f0e54faa3d455bcbab5eef057 +
    • +a tag for a git tree LIBFOO_VERSION = v0.1.2 +

      Note: Using a branch name as FOO_VERSION is not supported, because it does +not and can not work as people would expect it should:

      1. +due to local caching, Buildroot will not re-fetch the repository, + so people who expect to be able to follow the remote repository + would be quite surprised and disappointed; +
      2. +because two builds can never be perfectly simultaneous, and because + the remote repository may get new commits on the branch anytime, + two users, using the same Buildroot tree and building the same + configuration, may get different source, thus rendering the build + non reproducible, and people would be quite surprised and + disappointed. +
  • +LIBFOO_SOURCE may contain the name of the tarball of the package, + which Buildroot will use to download the tarball from + LIBFOO_SITE. If HOST_LIBFOO_SOURCE is not specified, it defaults + to LIBFOO_SOURCE. If none are specified, then the value is assumed + to be libfoo-$(LIBFOO_VERSION).tar.gz. + Example: LIBFOO_SOURCE = foobar-$(LIBFOO_VERSION).tar.bz2 +
  • +LIBFOO_PATCH may contain a space-separated list of patch file + names, that Buildroot will download and apply to the package source + code. If an entry contains ://, then Buildroot will assume it is a + full URL and download the patch from this location. Otherwise, + Buildroot will assume that the patch should be downloaded from + LIBFOO_SITE. If HOST_LIBFOO_PATCH is not specified, it defaults + to LIBFOO_PATCH. Note that patches that are included in Buildroot + itself use a different mechanism: all files of the form + *.patch present in the package directory inside + Buildroot will be applied to the package after extraction (see + patching a package). Finally, patches listed in + the LIBFOO_PATCH variable are applied before the patches stored + in the Buildroot package directory. +
  • +LIBFOO_SITE provides the location of the package, which can be a + URL or a local filesystem path. HTTP, FTP and SCP are supported URL + types for retrieving package tarballs. In these cases don’t include a + trailing slash: it will be added by Buildroot between the directory + and the filename as appropriate. Git, Subversion, Mercurial, + and Bazaar are supported URL types for retrieving packages directly + from source code management systems. There is a helper function to make + it easier to download source tarballs from GitHub (refer to + Section 18.25.4, “How to add a package from GitHub†for details). A filesystem path may be used + to specify either a tarball or a directory containing the package + source code. See LIBFOO_SITE_METHOD below for more details on how + retrieval works. + Note that SCP URLs should be of the form + scp://[user@]host:filepath, and that filepath is relative to the + user’s home directory, so you may want to prepend the path with a + slash for absolute paths: + scp://[user@]host:/absolutepath. The same goes for SFTP URLs. + If HOST_LIBFOO_SITE is not specified, it defaults to + LIBFOO_SITE. + Examples: + LIBFOO_SITE=http://www.libfoosoftware.org/libfoo + LIBFOO_SITE=http://svn.xiph.org/trunk/Tremor + LIBFOO_SITE=/opt/software/libfoo.tar.gz + LIBFOO_SITE=$(TOPDIR)/../src/libfoo +
  • +LIBFOO_DL_OPTS is a space-separated list of additional options to + pass to the downloader. Useful for retrieving documents with + server-side checking for user logins and passwords, or to use a proxy. + All download methods valid for LIBFOO_SITE_METHOD are supported; + valid options depend on the download method (consult the man page + for the respective download utilities). +
  • +LIBFOO_EXTRA_DOWNLOADS is a space-separated list of additional + files that Buildroot should download. If an entry contains :// + then Buildroot will assume it is a complete URL and will download + the file using this URL. Otherwise, Buildroot will assume the file + to be downloaded is located at LIBFOO_SITE. Buildroot will not do + anything with those additional files, except download them: it will + be up to the package recipe to use them from $(LIBFOO_DL_DIR). +
  • +LIBFOO_SITE_METHOD determines the method used to fetch or copy the + package source code. In many cases, Buildroot guesses the method + from the contents of LIBFOO_SITE and setting LIBFOO_SITE_METHOD + is unnecessary. When HOST_LIBFOO_SITE_METHOD is not specified, it + defaults to the value of LIBFOO_SITE_METHOD. + The possible values of LIBFOO_SITE_METHOD are: +

    • +wget for normal FTP/HTTP downloads of tarballs. Used by + default when LIBFOO_SITE begins with http://, https:// or + ftp://. +
    • +scp for downloads of tarballs over SSH with scp. Used by + default when LIBFOO_SITE begins with scp://. +
    • +sftp for downloads of tarballs over SSH with sftp. Used by + default when LIBFOO_SITE begins with sftp://. +
    • +svn for retrieving source code from a Subversion repository. + Used by default when LIBFOO_SITE begins with svn://. When a + http:// Subversion repository URL is specified in + LIBFOO_SITE, one must specify LIBFOO_SITE_METHOD=svn. + Buildroot performs a checkout which is preserved as a tarball in + the download cache; subsequent builds use the tarball instead of + performing another checkout. +
    • +cvs for retrieving source code from a CVS repository. + Used by default when LIBFOO_SITE begins with cvs://. + The downloaded source code is cached as with the svn method. + Anonymous pserver mode is assumed otherwise explicitly defined + on LIBFOO_SITE. Both + LIBFOO_SITE=cvs://libfoo.net:/cvsroot/libfoo and + LIBFOO_SITE=cvs://:ext:libfoo.net:/cvsroot/libfoo + are accepted, on the former anonymous pserver access mode is + assumed. + LIBFOO_SITE must contain the source URL as well as the remote + repository directory. The module is the package name. + LIBFOO_VERSION is mandatory and must be a tag, a branch, or + a date (e.g. "2014-10-20", "2014-10-20 13:45", "2014-10-20 + 13:45+01" see "man cvs" for further details). +
    • +git for retrieving source code from a Git repository. Used by + default when LIBFOO_SITE begins with git://. The downloaded + source code is cached as with the svn method. +
    • +hg for retrieving source code from a Mercurial repository. One + must specify LIBFOO_SITE_METHOD=hg when LIBFOO_SITE + contains a Mercurial repository URL. The downloaded source code + is cached as with the svn method. +
    • +bzr for retrieving source code from a Bazaar repository. Used + by default when LIBFOO_SITE begins with bzr://. The + downloaded source code is cached as with the svn method. +
    • +file for a local tarball. One should use this when + LIBFOO_SITE specifies a package tarball as a local filename. + Useful for software that isn’t available publicly or in version + control. +
    • +local for a local source code directory. One should use this + when LIBFOO_SITE specifies a local directory path containing + the package source code. Buildroot copies the contents of the + source directory into the package’s build directory. Note that + for local packages, no patches are applied. If you need to + still patch the source code, use LIBFOO_POST_RSYNC_HOOKS, see + Section 18.23.1, “Using the POST_RSYNC hookâ€. +
  • +LIBFOO_GIT_SUBMODULES can be set to YES to create an archive + with the git submodules in the repository. This is only available + for packages downloaded with git (i.e. when + LIBFOO_SITE_METHOD=git). Note that we try not to use such git + submodules when they contain bundled libraries, in which case we + prefer to use those libraries from their own package. +
  • +LIBFOO_GIT_LFS should be set to YES if the Git repository uses + Git LFS to store large files out of band. This is only available for + packages downloaded with git (i.e. when LIBFOO_SITE_METHOD=git). +
  • +LIBFOO_STRIP_COMPONENTS is the number of leading components + (directories) that tar must strip from file names on extraction. + The tarball for most packages has one leading component named + "<pkg-name>-<pkg-version>", thus Buildroot passes + --strip-components=1 to tar to remove it. + For non-standard packages that don’t have this component, or + that have more than one leading component to strip, set this + variable with the value to be passed to tar. Default: 1. +
  • +LIBFOO_EXCLUDES is a space-separated list of patterns to exclude + when extracting the archive. Each item from that list is passed as + a tar’s --exclude option. By default, empty. +
  • +LIBFOO_DEPENDENCIES lists the dependencies (in terms of package + name) that are required for the current target package to + compile. These dependencies are guaranteed to be compiled and + installed before the configuration of the current package starts. + However, modifications to configuration of these dependencies will + not force a rebuild of the current package. In a similar way, + HOST_LIBFOO_DEPENDENCIES lists the dependencies for the current + host package. +
  • +LIBFOO_EXTRACT_DEPENDENCIES lists the dependencies (in terms of + package name) that are required for the current target package to be + extracted. These dependencies are guaranteed to be compiled and + installed before the extract step of the current package + starts. This is only used internally by the package infrastructure, + and should typically not be used directly by packages. +
  • +LIBFOO_PATCH_DEPENDENCIES lists the dependencies (in terms of + package name) that are required for the current package to be + patched. These dependencies are guaranteed to be extracted and + patched (but not necessarily built) before the current package is + patched. In a similar way, HOST_LIBFOO_PATCH_DEPENDENCIES lists + the dependencies for the current host package. + This is seldom used; usually, LIBFOO_DEPENDENCIES is what you + really want to use. +
  • +LIBFOO_PROVIDES lists all the virtual packages libfoo is an + implementation of. See Section 18.12, “Infrastructure for virtual packagesâ€. +
  • +LIBFOO_INSTALL_STAGING can be set to YES or NO (default). If + set to YES, then the commands in the LIBFOO_INSTALL_STAGING_CMDS + variables are executed to install the package into the staging + directory. +
  • +LIBFOO_INSTALL_TARGET can be set to YES (default) or NO. If + set to YES, then the commands in the LIBFOO_INSTALL_TARGET_CMDS + variables are executed to install the package into the target + directory. +
  • +LIBFOO_INSTALL_IMAGES can be set to YES or NO (default). If + set to YES, then the commands in the LIBFOO_INSTALL_IMAGES_CMDS + variable are executed to install the package into the images + directory. +
  • +LIBFOO_CONFIG_SCRIPTS lists the names of the files in + $(STAGING_DIR)/usr/bin that need some special fixing to make them + cross-compiling friendly. Multiple file names separated by space can + be given and all are relative to $(STAGING_DIR)/usr/bin. The files + listed in LIBFOO_CONFIG_SCRIPTS are also removed from + $(TARGET_DIR)/usr/bin since they are not needed on the target. +
  • +LIBFOO_DEVICES lists the device files to be created by Buildroot + when using the static device table. The syntax to use is the + makedevs one. You can find some documentation for this syntax in the + Chapter 25, Makedev syntax documentation. This variable is optional. +
  • +LIBFOO_PERMISSIONS lists the changes of permissions to be done at + the end of the build process. The syntax is once again the makedevs one. + You can find some documentation for this syntax in the Chapter 25, Makedev syntax documentation. + This variable is optional. +
  • +LIBFOO_USERS lists the users to create for this package, if it installs + a program you want to run as a specific user (e.g. as a daemon, or as a + cron-job). The syntax is similar in spirit to the makedevs one, and is + described in the Chapter 26, Makeusers syntax documentation. This variable is optional. +
  • +LIBFOO_LICENSE defines the license (or licenses) under which the package + is released. + This name will appear in the manifest file produced by make legal-info. + If the license appears in the SPDX License List, + use the SPDX short identifier to make the manifest file uniform. + Otherwise, describe the license in a precise and concise way, avoiding + ambiguous names such as BSD which actually name a family of licenses. + This variable is optional. If it is not defined, unknown will appear in + the license field of the manifest file for this package. + The expected format for this variable must comply with the following rules: +

    • +If different parts of the package are released under different + licenses, then comma separate licenses (e.g. LIBFOO_LICENSE = + GPL-2.0+, LGPL-2.1+). If there is clear distinction between which + component is licensed under what license, then annotate the license + with that component, between parenthesis (e.g. LIBFOO_LICENSE = + GPL-2.0+ (programs), LGPL-2.1+ (libraries)). +
    • +If some licenses are conditioned on a sub-option being enabled, append + the conditional licenses with a comma (e.g.: FOO_LICENSE += , GPL-2.0+ + (programs)); the infrastructure will internally remove the space before + the comma. +
    • +If the package is dual licensed, then separate licenses with the + or keyword (e.g. LIBFOO_LICENSE = AFL-2.1 or GPL-2.0+). +
  • +LIBFOO_LICENSE_FILES is a space-separated list of files in the package + tarball that contain the license(s) under which the package is released. + make legal-info copies all of these files in the legal-info directory. + See Chapter 13, Legal notice and licensing for more information. + This variable is optional. If it is not defined, a warning will be produced + to let you know, and not saved will appear in the license files field + of the manifest file for this package. +
  • +LIBFOO_ACTUAL_SOURCE_TARBALL only applies to packages whose + LIBFOO_SITE / LIBFOO_SOURCE pair points to an archive that does + not actually contain source code, but binary code. This a very + uncommon case, only known to apply to external toolchains which come + already compiled, although theoretically it might apply to other + packages. In such cases a separate tarball is usually available with + the actual source code. Set LIBFOO_ACTUAL_SOURCE_TARBALL to the + name of the actual source code archive and Buildroot will download + it and use it when you run make legal-info to collect + legally-relevant material. Note this file will not be downloaded + during regular builds nor by make source. +
  • +LIBFOO_ACTUAL_SOURCE_SITE provides the location of the actual + source tarball. The default value is LIBFOO_SITE, so you don’t + need to set this variable if the binary and source archives are + hosted on the same directory. If LIBFOO_ACTUAL_SOURCE_TARBALL is + not set, it doesn’t make sense to define + LIBFOO_ACTUAL_SOURCE_SITE. +
  • +LIBFOO_REDISTRIBUTE can be set to YES (default) or NO to indicate if + the package source code is allowed to be redistributed. Set it to NO for + non-opensource packages: Buildroot will not save the source code for this + package when collecting the legal-info. +
  • +LIBFOO_FLAT_STACKSIZE defines the stack size of an application built into + the FLAT binary format. The application stack size on the NOMMU architecture + processors can’t be enlarged at run time. The default stack size for the + FLAT binary format is only 4k bytes. If the application consumes more stack, + append the required number here. +
  • +LIBFOO_BIN_ARCH_EXCLUDE is a space-separated list of paths (relative + to the target directory) to ignore when checking that the package + installs correctly cross-compiled binaries. You seldom need to set this + variable, unless the package installs binary blobs outside the default + locations, /lib/firmware, /usr/lib/firmware, /lib/modules, + /usr/lib/modules, and /usr/share, which are automatically excluded. +
  • +LIBFOO_IGNORE_CVES is a space-separated list of CVEs that tells + Buildroot CVE tracking tools which CVEs should be ignored for this + package. This is typically used when the CVE is fixed by a patch in + the package, or when the CVE for some reason does not affect the + Buildroot package. A Makefile comment must always precede the + addition of a CVE to this variable. Example: +
# 0001-fix-cve-2020-12345.patch
+LIBFOO_IGNORE_CVES += CVE-2020-12345
+# only when built with libbaz, which Buildroot doesn't support
+LIBFOO_IGNORE_CVES += CVE-2020-54321
  • +LIBFOO_CPE_ID_* variables is a set of variables that allows the + package to define its CPE + identifier. The available variables are: +

    • +LIBFOO_CPE_ID_PREFIX, specifies the prefix of the CPE identifier, + i.e the first three fields. When not defined, the default value is + cpe:2.3:a. +
    • +LIBFOO_CPE_ID_VENDOR, specifies the vendor part of the CPE + identifier. When not defined, the default value is + <pkgname>_project. +
    • +LIBFOO_CPE_ID_PRODUCT, specifies the product part of the CPE + identifier. When not defined, the default value is <pkgname>. +
    • +LIBFOO_CPE_ID_VERSION, specifies the version part of the CPE + identifier. When not defined the default value is + $(LIBFOO_VERSION). +
    • +LIBFOO_CPE_ID_UPDATE specifies the update part of the CPE + identifier. When not defined the default value is *. +

    If any of those variables is defined, then the generic package +infrastructure assumes the package provides valid CPE information. In +this case, the generic package infrastructure will define +LIBFOO_CPE_ID.

    For a host package, if its LIBFOO_CPE_ID_* variables are not +defined, it inherits the value of those variables from the +corresponding target package.

The recommended way to define these variables is to use the following +syntax:

LIBFOO_VERSION = 2.32

Now, the variables that define what should be performed at the +different steps of the build process.

  • +LIBFOO_EXTRACT_CMDS lists the actions to be performed to extract + the package. This is generally not needed as tarballs are + automatically handled by Buildroot. However, if the package uses a + non-standard archive format, such as a ZIP or RAR file, or has a + tarball with a non-standard organization, this variable allows to + override the package infrastructure default behavior. +
  • +LIBFOO_CONFIGURE_CMDS lists the actions to be performed to + configure the package before its compilation. +
  • +LIBFOO_BUILD_CMDS lists the actions to be performed to + compile the package. +
  • +HOST_LIBFOO_INSTALL_CMDS lists the actions to be performed + to install the package, when the package is a host package. The + package must install its files to the directory given by + $(HOST_DIR). All files, including development files such as + headers should be installed, since other packages might be compiled + on top of this package. +
  • +LIBFOO_INSTALL_TARGET_CMDS lists the actions to be + performed to install the package to the target directory, when the + package is a target package. The package must install its files to + the directory given by $(TARGET_DIR). Only the files required for + execution of the package have to be + installed. Header files, static libraries and documentation will be + removed again when the target filesystem is finalized. +
  • +LIBFOO_INSTALL_STAGING_CMDS lists the actions to be + performed to install the package to the staging directory, when the + package is a target package. The package must install its files to + the directory given by $(STAGING_DIR). All development files + should be installed, since they might be needed to compile other + packages. +
  • +LIBFOO_INSTALL_IMAGES_CMDS lists the actions to be performed to + install the package to the images directory, when the package is a + target package. The package must install its files to the directory + given by $(BINARIES_DIR). Only files that are binary images (aka + images) that do not belong in the TARGET_DIR but are necessary + for booting the board should be placed here. For example, a package + should utilize this step if it has binaries which would be similar + to the kernel image, bootloader or root filesystem images. +
  • +LIBFOO_INSTALL_INIT_SYSV, LIBFOO_INSTALL_INIT_OPENRC and + LIBFOO_INSTALL_INIT_SYSTEMD list the actions to install init + scripts either for the systemV-like init systems (busybox, + sysvinit, etc.), openrc or for the systemd units. These commands + will be run only when the relevant init system is installed (i.e. + if systemd is selected as the init system in the configuration, + only LIBFOO_INSTALL_INIT_SYSTEMD will be run). The only exception + is when openrc is chosen as init system and LIBFOO_INSTALL_INIT_OPENRC + has not been set, in such situation LIBFOO_INSTALL_INIT_SYSV will + be called, since openrc supports sysv init scripts. + When systemd is used as the init system, buildroot will automatically enable + all services using the systemctl preset-all command in the final phase of + image building. You can add preset files to prevent a particular unit from + being automatically enabled by buildroot. +
  • +LIBFOO_HELP_CMDS lists the actions to print the package help, which + is included to the main make help output. These commands can print + anything in any format. + This is seldom used, as packages rarely have custom rules. Do not use + this variable, unless you really know that you need to print help. +
  • +LIBFOO_LINUX_CONFIG_FIXUPS lists the Linux kernel configuration + options that are needed to build and use this package, and without + which the package is fundamentally broken. This shall be a set of + calls to one of the kconfig tweaking option: KCONFIG_ENABLE_OPT, + KCONFIG_DISABLE_OPT, or KCONFIG_SET_OPT. + This is seldom used, as package usually have no strict requirements on + the kernel options. +

The preferred way to define these variables is:

define LIBFOO_CONFIGURE_CMDS
+        action 1
+        action 2
+        action 3
+endef

In the action definitions, you can use the following variables:

  • +$(LIBFOO_PKGDIR) contains the path to the directory containing the + libfoo.mk and Config.in files. This variable is useful when it is + necessary to install a file bundled in Buildroot, like a runtime + configuration file, a splashscreen image… +
  • +$(@D), which contains the directory in which the package source + code has been uncompressed. +
  • +$(LIBFOO_DL_DIR) contains the path to the directory where all the downloads + made by Buildroot for libfoo are stored in. +
  • +$(TARGET_CC), $(TARGET_LD), etc. to get the target + cross-compilation utilities +
  • +$(TARGET_CROSS) to get the cross-compilation toolchain prefix +
  • +Of course the $(HOST_DIR), $(STAGING_DIR) and $(TARGET_DIR) + variables to install the packages properly. Those variables point to + the global host, staging and target directories, unless + per-package directory support is used, in which case they point to + the current package host, staging and target directories. In + both cases, it doesn’t make any difference from the package point of + view: it should simply use HOST_DIR, STAGING_DIR and + TARGET_DIR. See Section 8.12, “Top-level parallel build†for more details + about per-package directory support. +

Finally, you can also use hooks. See Section 18.23, “Hooks available in the various build steps†for more information.

18.7. Infrastructure for autotools-based packages

18.7.1. autotools-package tutorial

First, let’s see how to write a .mk file for an autotools-based +package, with an example :

01: ################################################################################
+02: #
+03: # libfoo
+04: #
+05: ################################################################################
+06:
+07: LIBFOO_VERSION = 1.0
+08: LIBFOO_SOURCE = libfoo-$(LIBFOO_VERSION).tar.gz
+09: LIBFOO_SITE = http://www.foosoftware.org/download
+10: LIBFOO_INSTALL_STAGING = YES
+11: LIBFOO_INSTALL_TARGET = NO
+12: LIBFOO_CONF_OPTS = --disable-shared
+13: LIBFOO_DEPENDENCIES = libglib2 host-pkgconf
+14:
+15: $(eval $(autotools-package))

On line 7, we declare the version of the package.

On line 8 and 9, we declare the name of the tarball (xz-ed tarball recommended) +and the location of the tarball on the Web. Buildroot will automatically +download the tarball from this location.

On line 10, we tell Buildroot to install the package to the staging +directory. The staging directory, located in output/staging/ +is the directory where all the packages are installed, including their +development files, etc. By default, packages are not installed to the +staging directory, since usually, only libraries need to be installed in +the staging directory: their development files are needed to compile +other libraries or applications depending on them. Also by default, when +staging installation is enabled, packages are installed in this location +using the make install command.

On line 11, we tell Buildroot to not install the package to the +target directory. This directory contains what will become the root +filesystem running on the target. For purely static libraries, it is +not necessary to install them in the target directory because they will +not be used at runtime. By default, target installation is enabled; setting +this variable to NO is almost never needed. Also by default, packages are +installed in this location using the make install command.

On line 12, we tell Buildroot to pass a custom configure option, that +will be passed to the ./configure script before configuring +and building the package.

On line 13, we declare our dependencies, so that they are built +before the build process of our package starts.

Finally, on line line 15, we invoke the autotools-package +macro that generates all the Makefile rules that actually allows the +package to be built.

18.7.2. autotools-package reference

The main macro of the autotools package infrastructure is +autotools-package. It is similar to the generic-package macro. The ability to +have target and host packages is also available, with the +host-autotools-package macro.

Just like the generic infrastructure, the autotools infrastructure +works by defining a number of variables before calling the +autotools-package macro.

First, all the package metadata information variables that exist in the +generic infrastructure also exist in the autotools infrastructure: +LIBFOO_VERSION, LIBFOO_SOURCE, +LIBFOO_PATCH, LIBFOO_SITE, +LIBFOO_SUBDIR, LIBFOO_DEPENDENCIES, +LIBFOO_INSTALL_STAGING, LIBFOO_INSTALL_TARGET.

A few additional variables, specific to the autotools infrastructure, +can also be defined. Many of them are only useful in very specific +cases, typical packages will therefore only use a few of them.

  • +LIBFOO_SUBDIR may contain the name of a subdirectory + inside the package that contains the configure script. This is useful, + if for example, the main configure script is not at the root of the + tree extracted by the tarball. If HOST_LIBFOO_SUBDIR is + not specified, it defaults to LIBFOO_SUBDIR. +
  • +LIBFOO_CONF_ENV, to specify additional environment + variables to pass to the configure script. By default, empty. +
  • +LIBFOO_CONF_OPTS, to specify additional configure + options to pass to the configure script. By default, empty. +
  • +LIBFOO_MAKE, to specify an alternate make + command. This is typically useful when parallel make is enabled in + the configuration (using BR2_JLEVEL) but that this + feature should be disabled for the given package, for one reason or + another. By default, set to $(MAKE). If parallel building + is not supported by the package, then it should be set to + LIBFOO_MAKE=$(MAKE1). +
  • +LIBFOO_MAKE_ENV, to specify additional environment + variables to pass to make in the build step. These are passed before + the make command. By default, empty. +
  • +LIBFOO_MAKE_OPTS, to specify additional variables to + pass to make in the build step. These are passed after the + make command. By default, empty. +
  • +LIBFOO_AUTORECONF, tells whether the package should + be autoreconfigured or not (i.e. if the configure script and + Makefile.in files should be re-generated by re-running autoconf, + automake, libtool, etc.). Valid values are YES and + NO. By default, the value is NO +
  • +LIBFOO_AUTORECONF_ENV, to specify additional environment + variables to pass to the autoreconf program if + LIBFOO_AUTORECONF=YES. These are passed in the environment of + the autoreconf command. By default, empty. +
  • +LIBFOO_AUTORECONF_OPTS to specify additional options + passed to the autoreconf program if + LIBFOO_AUTORECONF=YES. By default, empty. +
  • +LIBFOO_GETTEXTIZE, tells whether the package should be + gettextized or not (i.e. if the package uses a different gettext + version than Buildroot provides, and it is needed to run + gettextize.) Only valid when LIBFOO_AUTORECONF=YES. Valid + values are YES and NO. The default is NO. +
  • +LIBFOO_GETTEXTIZE_OPTS, to specify additional options passed to + the gettextize program, if LIBFOO_GETTEXTIZE=YES. You may + use that if, for example, the .po files are not located in the + standard place (i.e. in po/ at the root of the package.) By + default, -f. +
  • +LIBFOO_LIBTOOL_PATCH tells whether the Buildroot + patch to fix libtool cross-compilation issues should be applied or + not. Valid values are YES and NO. By + default, the value is YES +
  • +LIBFOO_INSTALL_STAGING_OPTS contains the make options + used to install the package to the staging directory. By default, the + value is DESTDIR=$(STAGING_DIR) install, which is + correct for most autotools packages. It is still possible to override + it. +
  • +LIBFOO_INSTALL_TARGET_OPTS contains the make options + used to install the package to the target directory. By default, the + value is DESTDIR=$(TARGET_DIR) install. The default + value is correct for most autotools packages, but it is still possible + to override it if needed. +

With the autotools infrastructure, all the steps required to build +and install the packages are already defined, and they generally work +well for most autotools-based packages. However, when required, it is +still possible to customize what is done in any particular step:

  • +By adding a post-operation hook (after extract, patch, configure, + build or install). See Section 18.23, “Hooks available in the various build steps†for details. +
  • +By overriding one of the steps. For example, even if the autotools + infrastructure is used, if the package .mk file defines its + own LIBFOO_CONFIGURE_CMDS variable, it will be used + instead of the default autotools one. However, using this method + should be restricted to very specific cases. Do not use it in the + general case. +

18.8. Infrastructure for CMake-based packages

18.8.1. cmake-package tutorial

First, let’s see how to write a .mk file for a CMake-based package, +with an example :

01: ################################################################################
+02: #
+03: # libfoo
+04: #
+05: ################################################################################
+06:
+07: LIBFOO_VERSION = 1.0
+08: LIBFOO_SOURCE = libfoo-$(LIBFOO_VERSION).tar.gz
+09: LIBFOO_SITE = http://www.foosoftware.org/download
+10: LIBFOO_INSTALL_STAGING = YES
+11: LIBFOO_INSTALL_TARGET = NO
+12: LIBFOO_CONF_OPTS = -DBUILD_DEMOS=ON
+13: LIBFOO_DEPENDENCIES = libglib2 host-pkgconf
+14:
+15: $(eval $(cmake-package))

On line 7, we declare the version of the package.

On line 8 and 9, we declare the name of the tarball (xz-ed tarball recommended) +and the location of the tarball on the Web. Buildroot will automatically +download the tarball from this location.

On line 10, we tell Buildroot to install the package to the staging +directory. The staging directory, located in output/staging/ +is the directory where all the packages are installed, including their +development files, etc. By default, packages are not installed to the +staging directory, since usually, only libraries need to be installed in +the staging directory: their development files are needed to compile +other libraries or applications depending on them. Also by default, when +staging installation is enabled, packages are installed in this location +using the make install command.

On line 11, we tell Buildroot to not install the package to the +target directory. This directory contains what will become the root +filesystem running on the target. For purely static libraries, it is +not necessary to install them in the target directory because they will +not be used at runtime. By default, target installation is enabled; setting +this variable to NO is almost never needed. Also by default, packages are +installed in this location using the make install command.

On line 12, we tell Buildroot to pass custom options to CMake when it is +configuring the package.

On line 13, we declare our dependencies, so that they are built +before the build process of our package starts.

Finally, on line line 15, we invoke the cmake-package +macro that generates all the Makefile rules that actually allows the +package to be built.

18.8.2. cmake-package reference

The main macro of the CMake package infrastructure is +cmake-package. It is similar to the generic-package macro. The ability to +have target and host packages is also available, with the +host-cmake-package macro.

Just like the generic infrastructure, the CMake infrastructure works +by defining a number of variables before calling the cmake-package +macro.

First, all the package metadata information variables that exist in +the generic infrastructure also exist in the CMake infrastructure: +LIBFOO_VERSION, LIBFOO_SOURCE, LIBFOO_PATCH, LIBFOO_SITE, +LIBFOO_SUBDIR, LIBFOO_DEPENDENCIES, LIBFOO_INSTALL_STAGING, +LIBFOO_INSTALL_TARGET.

A few additional variables, specific to the CMake infrastructure, can +also be defined. Many of them are only useful in very specific cases, +typical packages will therefore only use a few of them.

  • +LIBFOO_SUBDIR may contain the name of a subdirectory inside the + package that contains the main CMakeLists.txt file. This is useful, + if for example, the main CMakeLists.txt file is not at the root of + the tree extracted by the tarball. If HOST_LIBFOO_SUBDIR is not + specified, it defaults to LIBFOO_SUBDIR. +
  • +LIBFOO_CONF_ENV, to specify additional environment variables to + pass to CMake. By default, empty. +
  • +LIBFOO_CONF_OPTS, to specify additional configure options to pass + to CMake. By default, empty. A number of common CMake options are + set by the cmake-package infrastructure; so it is normally not + necessary to set them in the package’s *.mk file unless you want + to override them: +

    • +CMAKE_BUILD_TYPE is driven by BR2_ENABLE_RUNTIME_DEBUG; +
    • +CMAKE_INSTALL_PREFIX; +
    • +BUILD_SHARED_LIBS is driven by BR2_STATIC_LIBS; +
    • +BUILD_DOC, BUILD_DOCS are disabled; +
    • +BUILD_EXAMPLE, BUILD_EXAMPLES are disabled; +
    • +BUILD_TEST, BUILD_TESTS, BUILD_TESTING are disabled. +
  • +LIBFOO_SUPPORTS_IN_SOURCE_BUILD = NO should be set when the package + cannot be built inside the source tree but needs a separate build + directory. +
  • +LIBFOO_MAKE, to specify an alternate make command. This is + typically useful when parallel make is enabled in the configuration + (using BR2_JLEVEL) but that this feature should be disabled for + the given package, for one reason or another. By default, set to + $(MAKE). If parallel building is not supported by the package, + then it should be set to LIBFOO_MAKE=$(MAKE1). +
  • +LIBFOO_MAKE_ENV, to specify additional environment variables to + pass to make in the build step. These are passed before the make + command. By default, empty. +
  • +LIBFOO_MAKE_OPTS, to specify additional variables to pass to make + in the build step. These are passed after the make command. By + default, empty. +
  • +LIBFOO_INSTALL_OPTS contains the make options used to + install the package to the host directory. By default, the value + is install, which is correct for most CMake packages. It is still + possible to override it. +
  • +LIBFOO_INSTALL_STAGING_OPTS contains the make options used to + install the package to the staging directory. By default, the value + is DESTDIR=$(STAGING_DIR) install/fast, which is correct for most + CMake packages. It is still possible to override it. +
  • +LIBFOO_INSTALL_TARGET_OPTS contains the make options used to + install the package to the target directory. By default, the value + is DESTDIR=$(TARGET_DIR) install/fast. The default value is correct + for most CMake packages, but it is still possible to override it if + needed. +

With the CMake infrastructure, all the steps required to build and +install the packages are already defined, and they generally work well +for most CMake-based packages. However, when required, it is still +possible to customize what is done in any particular step:

  • +By adding a post-operation hook (after extract, patch, configure, + build or install). See Section 18.23, “Hooks available in the various build steps†for details. +
  • +By overriding one of the steps. For example, even if the CMake + infrastructure is used, if the package .mk file defines its own + LIBFOO_CONFIGURE_CMDS variable, it will be used instead of the + default CMake one. However, using this method should be restricted + to very specific cases. Do not use it in the general case. +

18.9. Infrastructure for Python packages

This infrastructure applies to Python packages that use the standard +Python setuptools or pep517 mechanisms as their build system, generally +recognizable by the usage of a setup.py script or pyproject.toml +file.

18.9.1. python-package tutorial

First, let’s see how to write a .mk file for a Python package, +with an example :

01: ################################################################################
+02: #
+03: # python-foo
+04: #
+05: ################################################################################
+06:
+07: PYTHON_FOO_VERSION = 1.0
+08: PYTHON_FOO_SOURCE = python-foo-$(PYTHON_FOO_VERSION).tar.xz
+09: PYTHON_FOO_SITE = http://www.foosoftware.org/download
+10: PYTHON_FOO_LICENSE = BSD-3-Clause
+11: PYTHON_FOO_LICENSE_FILES = LICENSE
+12: PYTHON_FOO_ENV = SOME_VAR=1
+13: PYTHON_FOO_DEPENDENCIES = libmad
+14: PYTHON_FOO_SETUP_TYPE = distutils
+15:
+16: $(eval $(python-package))

On line 7, we declare the version of the package.

On line 8 and 9, we declare the name of the tarball (xz-ed tarball +recommended) and the location of the tarball on the Web. Buildroot +will automatically download the tarball from this location.

On line 10 and 11, we give licensing details about the package (its +license on line 10, and the file containing the license text on line +11).

On line 12, we tell Buildroot to pass custom options to the Python +setup.py script when it is configuring the package.

On line 13, we declare our dependencies, so that they are built +before the build process of our package starts.

On line 14, we declare the specific Python build system being used. In +this case the distutils Python build system is used. The four +supported ones are distutils, flit, pep517 and setuptools.

Finally, on line 16, we invoke the python-package macro that +generates all the Makefile rules that actually allow the package to be +built.

18.9.2. python-package reference

As a policy, packages that merely provide Python modules should all be +named python-<something> in Buildroot. Other packages that use the +Python build system, but are not Python modules, can freely choose +their name (existing examples in Buildroot are scons and +supervisor).

The main macro of the Python package infrastructure is +python-package. It is similar to the generic-package macro. It is +also possible to create Python host packages with the +host-python-package macro.

Just like the generic infrastructure, the Python infrastructure works +by defining a number of variables before calling the python-package +or host-python-package macros.

All the package metadata information variables that exist in the +generic package infrastructure also +exist in the Python infrastructure: PYTHON_FOO_VERSION, +PYTHON_FOO_SOURCE, PYTHON_FOO_PATCH, PYTHON_FOO_SITE, +PYTHON_FOO_SUBDIR, PYTHON_FOO_DEPENDENCIES, PYTHON_FOO_LICENSE, +PYTHON_FOO_LICENSE_FILES, PYTHON_FOO_INSTALL_STAGING, etc.

Note that:

  • +It is not necessary to add python or host-python in the + PYTHON_FOO_DEPENDENCIES variable of a package, since these basic + dependencies are automatically added as needed by the Python + package infrastructure. +
  • +Similarly, it is not needed to add host-setuptools to + PYTHON_FOO_DEPENDENCIES for setuptools-based packages, since it’s + automatically added by the Python infrastructure as needed. +

One variable specific to the Python infrastructure is mandatory:

  • +PYTHON_FOO_SETUP_TYPE, to define which Python build system is used + by the package. The four supported values are distutils, flit, + pep517 and setuptools. If you don’t know which one is used in + your package, look at the setup.py or pyproject.toml file in your + package source code, and see whether it imports things from the + distutils, flit module or the setuptools module. If the package + is using a pyproject.toml file without any build-system requires + and with a local in-tree backend-path one should use pep517. +

A few additional variables, specific to the Python infrastructure, can +optionally be defined, depending on the package’s needs. Many of them +are only useful in very specific cases, typical packages will +therefore only use a few of them, or none.

  • +PYTHON_FOO_SUBDIR may contain the name of a subdirectory inside the + package that contains the main setup.py or pyproject.toml file. + This is useful, if for example, the main setup.py or pyproject.toml + file is not at the root of the tree extracted by the tarball. If + HOST_PYTHON_FOO_SUBDIR is not specified, it defaults to + PYTHON_FOO_SUBDIR. +
  • +PYTHON_FOO_ENV, to specify additional environment variables to + pass to the Python setup.py script (for distutils/setuptools + packages) or the support/scripts/pyinstaller.py script (for + flit/pep517 packages) for both the build and install steps. Note + that the infrastructure is automatically passing several standard + variables, defined in PKG_PYTHON_DISTUTILS_ENV (for distutils + target packages), HOST_PKG_PYTHON_DISTUTILS_ENV (for distutils + host packages), PKG_PYTHON_SETUPTOOLS_ENV (for setuptools target + packages), HOST_PKG_PYTHON_SETUPTOOLS_ENV (for setuptools host + packages), PKG_PYTHON_PEP517_ENV (for flit/pep517 target packages) + and HOST_PKG_PYTHON_PEP517_ENV (for flit/pep517 host packages). +
  • +PYTHON_FOO_BUILD_OPTS, to specify additional options to pass to the + Python setup.py script during the build step, this generally only + makes sense to use for distutils/setuptools based packages as + flit/pep517 based packages do not pass these options to a setup.py + script but instead pass them to support/scripts/pyinstaller.py. + For target distutils packages, the PKG_PYTHON_DISTUTILS_BUILD_OPTS + options are already passed automatically by the infrastructure. +
  • +PYTHON_FOO_INSTALL_TARGET_OPTS, PYTHON_FOO_INSTALL_STAGING_OPTS, + HOST_PYTHON_FOO_INSTALL_OPTS to specify additional options to pass + to the Python setup.py script (for distutils/setuptools packages) + or support/scripts/pyinstaller.py (for flit/pep517 packages) during + the target installation step, the staging installation step or the + host installation, respectively. Note that the infrastructure is + automatically passing some options, defined in + PKG_PYTHON_DISTUTILS_INSTALL_TARGET_OPTS or + PKG_PYTHON_DISTUTILS_INSTALL_STAGING_OPTS (for target distutils + packages), HOST_PKG_PYTHON_DISTUTILS_INSTALL_OPTS (for host + distutils packages), PKG_PYTHON_SETUPTOOLS_INSTALL_TARGET_OPTS or + PKG_PYTHON_SETUPTOOLS_INSTALL_STAGING_OPTS (for target setuptools + packages), HOST_PKG_PYTHON_SETUPTOOLS_INSTALL_OPTS (for host + setuptools packages) and PKG_PYTHON_PEP517_INSTALL_TARGET_OPTS or + PKG_PYTHON_PEP517_INSTALL_STAGING_OPTS (for target flit/pep517 + packages). +

With the Python infrastructure, all the steps required to build and +install the packages are already defined, and they generally work well +for most Python-based packages. However, when required, it is still +possible to customize what is done in any particular step:

  • +By adding a post-operation hook (after extract, patch, configure, + build or install). See Section 18.23, “Hooks available in the various build steps†for details. +
  • +By overriding one of the steps. For example, even if the Python + infrastructure is used, if the package .mk file defines its own + PYTHON_FOO_BUILD_CMDS variable, it will be used instead of the + default Python one. However, using this method should be restricted + to very specific cases. Do not use it in the general case. +

18.9.3. Generating a python-package from a PyPI repository

If the Python package for which you would like to create a Buildroot +package is available on PyPI, you may want to use the scanpypi tool +located in utils/ to automate the process.

You can find the list of existing PyPI packages +here.

scanpypi requires Python’s setuptools package to be installed on +your host.

When at the root of your buildroot directory just do :

utils/scanpypi foo bar -o package

This will generate packages python-foo and python-bar in the package +folder if they exist on https://pypi.python.org.

Find the external python modules menu and insert your package inside. +Keep in mind that the items inside a menu should be in alphabetical order.

Please keep in mind that you’ll most likely have to manually check the +package for any mistakes as there are things that cannot be guessed by +the generator (e.g. dependencies on any of the python core modules +such as BR2_PACKAGE_PYTHON_ZLIB). Also, please take note that the +license and license files are guessed and must be checked. You also +need to manually add the package to the package/Config.in file.

If your Buildroot package is not in the official Buildroot tree but in +a br2-external tree, use the -o flag as follows:

utils/scanpypi foo bar -o other_package_dir

This will generate packages python-foo and python-bar in the +other_package_directory instead of package.

Option -h will list the available options:

utils/scanpypi -h

18.9.4. python-package CFFI backend

C Foreign Function Interface for Python (CFFI) provides a convenient +and reliable way to call compiled C code from Python using interface +declarations written in C. Python packages relying on this backend can +be identified by the appearance of a cffi dependency in the +install_requires field of their setup.py file.

Such a package should:

  • +add python-cffi as a runtime dependency in order to install the +compiled C library wrapper on the target. This is achieved by adding +select BR2_PACKAGE_PYTHON_CFFI to the package Config.in. +
config BR2_PACKAGE_PYTHON_FOO
+        bool "python-foo"
+        select BR2_PACKAGE_PYTHON_CFFI # runtime
  • +add host-python-cffi as a build-time dependency in order to +cross-compile the C wrapper. This is achieved by adding +host-python-cffi to the PYTHON_FOO_DEPENDENCIES variable. +
################################################################################
+#
+# python-foo
+#
+################################################################################
+
+...
+
+PYTHON_FOO_DEPENDENCIES = host-python-cffi
+
+$(eval $(python-package))

18.10. Infrastructure for LuaRocks-based packages

18.10.1. luarocks-package tutorial

First, let’s see how to write a .mk file for a LuaRocks-based package, +with an example :

01: ################################################################################
+02: #
+03: # lua-foo
+04: #
+05: ################################################################################
+06:
+07: LUA_FOO_VERSION = 1.0.2-1
+08: LUA_FOO_NAME_UPSTREAM = foo
+09: LUA_FOO_DEPENDENCIES = bar
+10:
+11: LUA_FOO_BUILD_OPTS += BAR_INCDIR=$(STAGING_DIR)/usr/include
+12: LUA_FOO_BUILD_OPTS += BAR_LIBDIR=$(STAGING_DIR)/usr/lib
+13: LUA_FOO_LICENSE = luaFoo license
+14: LUA_FOO_LICENSE_FILES = $(LUA_FOO_SUBDIR)/COPYING
+15:
+16: $(eval $(luarocks-package))

On line 7, we declare the version of the package (the same as in the rockspec, +which is the concatenation of the upstream version and the rockspec revision, +separated by a hyphen -).

On line 8, we declare that the package is called "foo" on LuaRocks. In +Buildroot, we give Lua-related packages a name that starts with "lua", so the +Buildroot name is different from the upstream name. LUA_FOO_NAME_UPSTREAM +makes the link between the two names.

On line 9, we declare our dependencies against native libraries, so that they +are built before the build process of our package starts.

On lines 11-12, we tell Buildroot to pass custom options to LuaRocks when it is +building the package.

On lines 13-14, we specify the licensing terms for the package.

Finally, on line 16, we invoke the luarocks-package +macro that generates all the Makefile rules that actually allows the +package to be built.

Most of these details can be retrieved from the rock and rockspec. +So, this file and the Config.in file can be generated by running the +command luarocks buildroot foo lua-foo in the Buildroot +directory. This command runs a specific Buildroot addon of luarocks +that will automatically generate a Buildroot package. The result must +still be manually inspected and possibly modified.

  • +The package/Config.in file has to be updated manually to include the + generated Config.in files. +

18.10.2. luarocks-package reference

LuaRocks is a deployment and management system for Lua modules, and supports +various build.type: builtin, make and cmake. In the context of +Buildroot, the luarocks-package infrastructure only supports the builtin +mode. LuaRocks packages that use the make or cmake build mechanisms +should instead be packaged using the generic-package and cmake-package +infrastructures in Buildroot, respectively.

The main macro of the LuaRocks package infrastructure is luarocks-package: +like generic-package it works by defining a number of variables providing +metadata information about the package, and then calling luarocks-package.

Just like the generic infrastructure, the LuaRocks infrastructure works +by defining a number of variables before calling the luarocks-package +macro.

First, all the package metadata information variables that exist in +the generic infrastructure also exist in the LuaRocks infrastructure: +LUA_FOO_VERSION, LUA_FOO_SOURCE, LUA_FOO_SITE, +LUA_FOO_DEPENDENCIES, LUA_FOO_LICENSE, LUA_FOO_LICENSE_FILES.

Two of them are populated by the LuaRocks infrastructure (for the +download step). If your package is not hosted on the LuaRocks mirror +$(BR2_LUAROCKS_MIRROR), you can override them:

  • +LUA_FOO_SITE, which defaults to $(BR2_LUAROCKS_MIRROR) +
  • +LUA_FOO_SOURCE, which defaults to + $(lowercase LUA_FOO_NAME_UPSTREAM)-$(LUA_FOO_VERSION).src.rock +

A few additional variables, specific to the LuaRocks infrastructure, are +also defined. They can be overridden in specific cases.

  • +LUA_FOO_NAME_UPSTREAM, which defaults to lua-foo, i.e. the Buildroot + package name +
  • +LUA_FOO_ROCKSPEC, which defaults to + $(lowercase LUA_FOO_NAME_UPSTREAM)-$(LUA_FOO_VERSION).rockspec +
  • +LUA_FOO_SUBDIR, which defaults to + $(LUA_FOO_NAME_UPSTREAM)-$(LUA_FOO_VERSION_WITHOUT_ROCKSPEC_REVISION) +
  • +LUA_FOO_BUILD_OPTS contains additional build options for the + luarocks build call. +

18.11. Infrastructure for Perl/CPAN packages

18.11.1. perl-package tutorial

First, let’s see how to write a .mk file for a Perl/CPAN package, +with an example :

01: ################################################################################
+02: #
+03: # perl-foo-bar
+04: #
+05: ################################################################################
+06:
+07: PERL_FOO_BAR_VERSION = 0.02
+08: PERL_FOO_BAR_SOURCE = Foo-Bar-$(PERL_FOO_BAR_VERSION).tar.gz
+09: PERL_FOO_BAR_SITE = $(BR2_CPAN_MIRROR)/authors/id/M/MO/MONGER
+10: PERL_FOO_BAR_DEPENDENCIES = perl-strictures
+11: PERL_FOO_BAR_LICENSE = Artistic or GPL-1.0+
+12: PERL_FOO_BAR_LICENSE_FILES = LICENSE
+13: PERL_FOO_BAR_DISTNAME = Foo-Bar
+14:
+15: $(eval $(perl-package))

On line 7, we declare the version of the package.

On line 8 and 9, we declare the name of the tarball and the location +of the tarball on a CPAN server. Buildroot will automatically download +the tarball from this location.

On line 10, we declare our dependencies, so that they are built +before the build process of our package starts.

On line 11 and 12, we give licensing details about the package (its +license on line 11, and the file containing the license text on line +12).

On line 13, the name of the distribution as needed by the script +utils/scancpan (in order to regenerate/upgrade these package files).

Finally, on line 15, we invoke the perl-package macro that +generates all the Makefile rules that actually allow the package to be +built.

Most of these data can be retrieved from https://metacpan.org/. +So, this file and the Config.in can be generated by running +the script utils/scancpan Foo-Bar in the Buildroot directory +(or in a br2-external tree). +This script creates a Config.in file and foo-bar.mk file for the +requested package, and also recursively for all dependencies specified by +CPAN. You should still manually edit the result. In particular, the +following things should be checked.

  • +If the perl module links with a shared library that is provided by + another (non-perl) package, this dependency is not added automatically. + It has to be added manually to PERL_FOO_BAR_DEPENDENCIES. +
  • +The package/Config.in file has to be updated manually to include the + generated Config.in files. As a hint, the scancpan script prints out + the required source "…" statements, sorted alphabetically. +

18.11.2. perl-package reference

As a policy, packages that provide Perl/CPAN modules should all be +named perl-<something> in Buildroot.

This infrastructure handles various Perl build systems : +ExtUtils-MakeMaker (EUMM), Module-Build (MB) and Module-Build-Tiny. +Build.PL is preferred by default when a package provides a Makefile.PL +and a Build.PL.

The main macro of the Perl/CPAN package infrastructure is +perl-package. It is similar to the generic-package macro. The ability to +have target and host packages is also available, with the +host-perl-package macro.

Just like the generic infrastructure, the Perl/CPAN infrastructure +works by defining a number of variables before calling the +perl-package macro.

First, all the package metadata information variables that exist in the +generic infrastructure also exist in the Perl/CPAN infrastructure: +PERL_FOO_VERSION, PERL_FOO_SOURCE, +PERL_FOO_PATCH, PERL_FOO_SITE, +PERL_FOO_SUBDIR, PERL_FOO_DEPENDENCIES, +PERL_FOO_INSTALL_TARGET.

Note that setting PERL_FOO_INSTALL_STAGING to YES has no effect +unless a PERL_FOO_INSTALL_STAGING_CMDS variable is defined. The perl +infrastructure doesn’t define these commands since Perl modules generally +don’t need to be installed to the staging directory.

A few additional variables, specific to the Perl/CPAN infrastructure, +can also be defined. Many of them are only useful in very specific +cases, typical packages will therefore only use a few of them.

  • +PERL_FOO_PREFER_INSTALLER/HOST_PERL_FOO_PREFER_INSTALLER, + specifies the preferred installation method. Possible values are + EUMM (for Makefile.PL based installation using + ExtUtils-MakeMaker) and MB (for Build.PL based installation + using Module-Build). This variable is only used when the package + provides both installation methods. +
  • +PERL_FOO_CONF_ENV/HOST_PERL_FOO_CONF_ENV, to specify additional + environment variables to pass to the perl Makefile.PL or perl Build.PL. + By default, empty. +
  • +PERL_FOO_CONF_OPTS/HOST_PERL_FOO_CONF_OPTS, to specify additional + configure options to pass to the perl Makefile.PL or perl Build.PL. + By default, empty. +
  • +PERL_FOO_BUILD_OPTS/HOST_PERL_FOO_BUILD_OPTS, to specify additional + options to pass to make pure_all or perl Build build in the build step. + By default, empty. +
  • +PERL_FOO_INSTALL_TARGET_OPTS, to specify additional options to + pass to make pure_install or perl Build install in the install step. + By default, empty. +
  • +HOST_PERL_FOO_INSTALL_OPTS, to specify additional options to + pass to make pure_install or perl Build install in the install step. + By default, empty. +

18.12. Infrastructure for virtual packages

In Buildroot, a virtual package is a package whose functionalities are +provided by one or more packages, referred to as providers. The virtual +package management is an extensible mechanism allowing the user to choose +the provider used in the rootfs.

For example, OpenGL ES is an API for 2D and 3D graphics on embedded systems. +The implementation of this API is different for the Allwinner Tech Sunxi and +the Texas Instruments OMAP35xx platforms. So libgles will be a virtual +package and sunxi-mali-utgard and ti-gfx will be the providers.

18.12.1. virtual-package tutorial

In the following example, we will explain how to add a new virtual package +(something-virtual) and a provider for it (some-provider).

First, let’s create the virtual package.

18.12.2. Virtual package’s Config.in file

The Config.in file of virtual package something-virtual should contain:

01: config BR2_PACKAGE_HAS_SOMETHING_VIRTUAL
+02:     bool
+03:
+04: config BR2_PACKAGE_PROVIDES_SOMETHING_VIRTUAL
+05:     depends on BR2_PACKAGE_HAS_SOMETHING_VIRTUAL
+06:     string

In this file, we declare two options, BR2_PACKAGE_HAS_SOMETHING_VIRTUAL and +BR2_PACKAGE_PROVIDES_SOMETHING_VIRTUAL, whose values will be used by the +providers.

18.12.3. Virtual package’s .mk file

The .mk for the virtual package should just evaluate the virtual-package macro:

01: ################################################################################
+02: #
+03: # something-virtual
+04: #
+05: ################################################################################
+06:
+07: $(eval $(virtual-package))

The ability to have target and host packages is also available, with the +host-virtual-package macro.

18.12.4. Provider’s Config.in file

When adding a package as a provider, only the Config.in file requires some +modifications.

The Config.in file of the package some-provider, which provides the +functionalities of something-virtual, should contain:

01: config BR2_PACKAGE_SOME_PROVIDER
+02:     bool "some-provider"
+03:     select BR2_PACKAGE_HAS_SOMETHING_VIRTUAL
+04:     help
+05:       This is a comment that explains what some-provider is.
+06:
+07:       http://foosoftware.org/some-provider/
+08:
+09: if BR2_PACKAGE_SOME_PROVIDER
+10: config BR2_PACKAGE_PROVIDES_SOMETHING_VIRTUAL
+11:     default "some-provider"
+12: endif

On line 3, we select BR2_PACKAGE_HAS_SOMETHING_VIRTUAL, and on line 11, we +set the value of BR2_PACKAGE_PROVIDES_SOMETHING_VIRTUAL to the name of the +provider, but only if it is selected.

18.12.5. Provider’s .mk file

The .mk file should also declare an additional variable +SOME_PROVIDER_PROVIDES to contain the names of all the virtual +packages it is an implementation of:

01: SOME_PROVIDER_PROVIDES = something-virtual

Of course, do not forget to add the proper build and runtime dependencies for +this package!

18.12.6. Notes on depending on a virtual package

When adding a package that requires a certain FEATURE provided by a virtual +package, you have to use depends on BR2_PACKAGE_HAS_FEATURE, like so:

config BR2_PACKAGE_HAS_FEATURE
+    bool
+
+config BR2_PACKAGE_FOO
+    bool "foo"
+    depends on BR2_PACKAGE_HAS_FEATURE

18.12.7. Notes on depending on a specific provider

If your package really requires a specific provider, then you’ll have to +make your package depends on this provider; you can not select a +provider.

Let’s take an example with two providers for a FEATURE:

config BR2_PACKAGE_HAS_FEATURE
+    bool
+
+config BR2_PACKAGE_FOO
+    bool "foo"
+    select BR2_PACKAGE_HAS_FEATURE
+
+config BR2_PACKAGE_BAR
+    bool "bar"
+    select BR2_PACKAGE_HAS_FEATURE

And you are adding a package that needs FEATURE as provided by foo, +but not as provided by bar.

If you were to use select BR2_PACKAGE_FOO, then the user would still +be able to select BR2_PACKAGE_BAR in the menuconfig. This would create +a configuration inconsistency, whereby two providers of the same FEATURE +would be enabled at once, one explicitly set by the user, the other +implicitly by your select.

Instead, you have to use depends on BR2_PACKAGE_FOO, which avoids any +implicit configuration inconsistency.

18.13. Infrastructure for packages using kconfig for configuration files

A popular way for a software package to handle user-specified +configuration is kconfig. Among others, it is used by the Linux +kernel, Busybox, and Buildroot itself. The presence of a .config file +and a menuconfig target are two well-known symptoms of kconfig being +used.

Buildroot features an infrastructure for packages that use kconfig for +their configuration. This infrastructure provides the necessary logic to +expose the package’s menuconfig target as foo-menuconfig in +Buildroot, and to handle the copying back and forth of the configuration +file in a correct way.

The kconfig-package infrastructure is based on the generic-package +infrastructure. All variables supported by generic-package are +available in kconfig-package as well. See +Section 18.6.2, “generic-package reference†for more details.

In order to use the kconfig-package infrastructure for a Buildroot +package, the minimally required lines in the .mk file, in addition to +the variables required by the generic-package infrastructure, are:

FOO_KCONFIG_FILE = reference-to-source-configuration-file
+
+$(eval $(kconfig-package))

This snippet creates the following make targets:

  • +foo-menuconfig, which calls the package’s menuconfig target +
  • +foo-update-config, which copies the configuration back to the + source configuration file. It is not possible to use this target + when fragment files are set. +
  • +foo-update-defconfig, which copies the configuration back to the + source configuration file. The configuration file will only list the + options that differ from the default values. It is not possible to + use this target when fragment files are set. +
  • +foo-diff-config, which outputs the differences between the current + configuration and the one defined in the Buildroot configuration for + this kconfig package. The output is useful to identify the + configuration changes that may have to be propagated to + configuration fragments for example. +

and ensures that the source configuration file is copied to the build +directory at the right moment.

There are two options to specify a configuration file to use, either +FOO_KCONFIG_FILE (as in the example, above) or FOO_KCONFIG_DEFCONFIG. +It is mandatory to provide either, but not both:

  • +FOO_KCONFIG_FILE specifies the path to a defconfig or full-config file + to be used to configure the package. +
  • +FOO_KCONFIG_DEFCONFIG specifies the defconfig make rule to call to + configure the package. +

In addition to these minimally required lines, several optional variables can +be set to suit the needs of the package under consideration:

  • +FOO_KCONFIG_EDITORS: a space-separated list of kconfig editors to + support, for example menuconfig xconfig. By default, menuconfig. +
  • +FOO_KCONFIG_FRAGMENT_FILES: a space-separated list of configuration + fragment files that are merged to the main configuration file. + Fragment files are typically used when there is a desire to stay in sync + with an upstream (def)config file, with some minor modifications. +
  • +FOO_KCONFIG_OPTS: extra options to pass when calling the kconfig + editors. This may need to include $(FOO_MAKE_OPTS), for example. By + default, empty. +
  • +FOO_KCONFIG_FIXUP_CMDS: a list of shell commands needed to fixup the + configuration file after copying it or running a kconfig editor. Such + commands may be needed to ensure a configuration consistent with other + configuration of Buildroot, for example. By default, empty. +
  • +FOO_KCONFIG_DOTCONFIG: path (with filename) of the .config file, + relative to the package source tree. The default, .config, should + be well suited for all packages that use the standard kconfig + infrastructure as inherited from the Linux kernel; some packages use + a derivative of kconfig that use a different location. +
  • +FOO_KCONFIG_DEPENDENCIES: the list of packages (most probably, host + packages) that need to be built before this package’s kconfig is + interpreted. Seldom used. By default, empty. +
  • +FOO_KCONFIG_SUPPORTS_DEFCONFIG: whether the package’s kconfig system + supports using defconfig files; few packages do not. By default, YES. +

18.14. Infrastructure for rebar-based packages

18.14.1. rebar-package tutorial

First, let’s see how to write a .mk file for a rebar-based package, +with an example :

01: ################################################################################
+02: #
+03: # erlang-foobar
+04: #
+05: ################################################################################
+06:
+07: ERLANG_FOOBAR_VERSION = 1.0
+08: ERLANG_FOOBAR_SOURCE = erlang-foobar-$(ERLANG_FOOBAR_VERSION).tar.xz
+09: ERLANG_FOOBAR_SITE = http://www.foosoftware.org/download
+10: ERLANG_FOOBAR_DEPENDENCIES = host-libaaa libbbb
+11:
+12: $(eval $(rebar-package))

On line 7, we declare the version of the package.

On line 8 and 9, we declare the name of the tarball (xz-ed tarball +recommended) and the location of the tarball on the Web. Buildroot +will automatically download the tarball from this location.

On line 10, we declare our dependencies, so that they are built +before the build process of our package starts.

Finally, on line 12, we invoke the rebar-package macro that +generates all the Makefile rules that actually allows the package to +be built.

18.14.2. rebar-package reference

The main macro of the rebar package infrastructure is +rebar-package. It is similar to the generic-package macro. The +ability to have host packages is also available, with the +host-rebar-package macro.

Just like the generic infrastructure, the rebar infrastructure works +by defining a number of variables before calling the rebar-package +macro.

First, all the package metadata information variables that exist in +the generic infrastructure also exist in the rebar infrastructure: +ERLANG_FOOBAR_VERSION, ERLANG_FOOBAR_SOURCE, +ERLANG_FOOBAR_PATCH, ERLANG_FOOBAR_SITE, +ERLANG_FOOBAR_SUBDIR, ERLANG_FOOBAR_DEPENDENCIES, +ERLANG_FOOBAR_INSTALL_STAGING, ERLANG_FOOBAR_INSTALL_TARGET, +ERLANG_FOOBAR_LICENSE and ERLANG_FOOBAR_LICENSE_FILES.

A few additional variables, specific to the rebar infrastructure, +can also be defined. Many of them are only useful in very specific +cases, typical packages will therefore only use a few of them.

  • +ERLANG_FOOBAR_USE_AUTOCONF, to specify that the package uses + autoconf at the configuration step. When a package sets this + variable to YES, the autotools infrastructure is used. +

    Note. You can also use some of the variables from the autotools + infrastructure: ERLANG_FOOBAR_CONF_ENV, ERLANG_FOOBAR_CONF_OPTS, + ERLANG_FOOBAR_AUTORECONF, ERLANG_FOOBAR_AUTORECONF_ENV and + ERLANG_FOOBAR_AUTORECONF_OPTS.

  • +ERLANG_FOOBAR_USE_BUNDLED_REBAR, to specify that the package has + a bundled version of rebar and that it shall be used. Valid + values are YES or NO (the default). +

    Note. If the package bundles a rebar utility, but can use the generic + one that Buildroot provides, just say NO (i.e., do not specify + this variable). Only set if it is mandatory to use the rebar + utility bundled in this package.

  • +ERLANG_FOOBAR_REBAR_ENV, to specify additional environment + variables to pass to the rebar utility. +
  • +ERLANG_FOOBAR_KEEP_DEPENDENCIES, to keep the dependencies + described in the rebar.config file. Valid values are YES or NO + (the default). Unless this variable is set to YES, the rebar + infrastructure removes such dependencies in a post-patch hook to + ensure rebar does not download nor compile them. +

With the rebar infrastructure, all the steps required to build +and install the packages are already defined, and they generally work +well for most rebar-based packages. However, when required, it is +still possible to customize what is done in any particular step:

  • +By adding a post-operation hook (after extract, patch, configure, + build or install). See Section 18.23, “Hooks available in the various build steps†for details. +
  • +By overriding one of the steps. For example, even if the rebar + infrastructure is used, if the package .mk file defines its + own ERLANG_FOOBAR_BUILD_CMDS variable, it will be used instead + of the default rebar one. However, using this method should be + restricted to very specific cases. Do not use it in the general + case. +

18.15. Infrastructure for Waf-based packages

18.15.1. waf-package tutorial

First, let’s see how to write a .mk file for a Waf-based package, with +an example :

01: ################################################################################
+02: #
+03: # libfoo
+04: #
+05: ################################################################################
+06:
+07: LIBFOO_VERSION = 1.0
+08: LIBFOO_SOURCE = libfoo-$(LIBFOO_VERSION).tar.gz
+09: LIBFOO_SITE = http://www.foosoftware.org/download
+10: LIBFOO_CONF_OPTS = --enable-bar --disable-baz
+11: LIBFOO_DEPENDENCIES = bar
+12:
+13: $(eval $(waf-package))

On line 7, we declare the version of the package.

On line 8 and 9, we declare the name of the tarball (xz-ed tarball +recommended) and the location of the tarball on the Web. Buildroot +will automatically download the tarball from this location.

On line 10, we tell Buildroot what options to enable for libfoo.

On line 11, we tell Buildroot the dependencies of libfoo.

Finally, on line line 13, we invoke the waf-package +macro that generates all the Makefile rules that actually allows the +package to be built.

18.15.2. waf-package reference

The main macro of the Waf package infrastructure is waf-package. +It is similar to the generic-package macro.

Just like the generic infrastructure, the Waf infrastructure works +by defining a number of variables before calling the waf-package +macro.

First, all the package metadata information variables that exist in +the generic infrastructure also exist in the Waf infrastructure: +LIBFOO_VERSION, LIBFOO_SOURCE, LIBFOO_PATCH, LIBFOO_SITE, +LIBFOO_SUBDIR, LIBFOO_DEPENDENCIES, LIBFOO_INSTALL_STAGING, +LIBFOO_INSTALL_TARGET.

An additional variable, specific to the Waf infrastructure, can +also be defined.

  • +LIBFOO_SUBDIR may contain the name of a subdirectory inside the + package that contains the main wscript file. This is useful, + if for example, the main wscript file is not at the root of + the tree extracted by the tarball. If HOST_LIBFOO_SUBDIR is not + specified, it defaults to LIBFOO_SUBDIR. +
  • +LIBFOO_NEEDS_EXTERNAL_WAF can be set to YES or NO to tell + Buildroot to use the bundled waf executable. If set to NO, the + default, then Buildroot will use the waf executable provided in the + package source tree; if set to YES, then Buildroot will download, + install waf as a host tool and use it to build the package. +
  • +LIBFOO_WAF_OPTS, to specify additional options to pass to the + waf script at every step of the package build process: configure, + build and installation. By default, empty. +
  • +LIBFOO_CONF_OPTS, to specify additional options to pass to the + waf script for the configuration step. By default, empty. +
  • +LIBFOO_BUILD_OPTS, to specify additional options to pass to the + waf script during the build step. By default, empty. +
  • +LIBFOO_INSTALL_STAGING_OPTS, to specify additional options to pass + to the waf script during the staging installation step. By default, + empty. +
  • +LIBFOO_INSTALL_TARGET_OPTS, to specify additional options to pass + to the waf script during the target installation step. By default, + empty. +

18.16. Infrastructure for Meson-based packages

18.16.1. meson-package tutorial

Meson is an open source build system meant to be both +extremely fast, and, even more importantly, as user friendly as possible. It +uses Ninja as a companion tool to perform the actual +build operations.

Let’s see how to write a .mk file for a Meson-based package, with an example:

01: ################################################################################
+02: #
+03: # foo
+04: #
+05: ################################################################################
+06:
+07: FOO_VERSION = 1.0
+08: FOO_SOURCE = foo-$(FOO_VERSION).tar.gz
+09: FOO_SITE = http://www.foosoftware.org/download
+10: FOO_LICENSE = GPL-3.0+
+11: FOO_LICENSE_FILES = COPYING
+12: FOO_INSTALL_STAGING = YES
+13:
+14: FOO_DEPENDENCIES = host-pkgconf bar
+15:
+16: ifeq ($(BR2_PACKAGE_BAZ),y)
+17: FOO_CONF_OPTS += -Dbaz=true
+18: FOO_DEPENDENCIES += baz
+19: else
+20: FOO_CONF_OPTS += -Dbaz=false
+21: endif
+22:
+23: $(eval $(meson-package))

The Makefile starts with the definition of the standard variables for package +declaration (lines 7 to 11).

On line line 23, we invoke the meson-package macro that generates all the +Makefile rules that actually allows the package to be built.

In the example, host-pkgconf and bar are declared as dependencies in +FOO_DEPENDENCIES at line 14 because the Meson build file of foo uses +pkg-config to determine the compilation flags and libraries of package bar.

Note that it is not necessary to add host-meson in the FOO_DEPENDENCIES +variable of a package, since this basic dependency is automatically added as +needed by the Meson package infrastructure.

If the "baz" package is selected, then support for the "baz" feature in "foo" is +activated by adding -Dbaz=true to FOO_CONF_OPTS at line 17, as specified in +the meson_options.txt file in "foo" source tree. The "baz" package is also +added to FOO_DEPENDENCIES. Note that the support for baz is explicitly +disabled at line 20, if the package is not selected.

To sum it up, to add a new meson-based package, the Makefile example can be +copied verbatim then edited to replace all occurences of FOO with the +uppercase name of the new package and update the values of the standard +variables.

18.16.2. meson-package reference

The main macro of the Meson package infrastructure is meson-package. It is +similar to the generic-package macro. The ability to have target and host +packages is also available, with the host-meson-package macro.

Just like the generic infrastructure, the Meson infrastructure works by defining +a number of variables before calling the meson-package macro.

First, all the package metadata information variables that exist in the generic +infrastructure also exist in the Meson infrastructure: FOO_VERSION, +FOO_SOURCE, FOO_PATCH, FOO_SITE, FOO_SUBDIR, FOO_DEPENDENCIES, +FOO_INSTALL_STAGING, FOO_INSTALL_TARGET.

A few additional variables, specific to the Meson infrastructure, can also be +defined. Many of them are only useful in very specific cases, typical packages +will therefore only use a few of them.

  • +FOO_SUBDIR may contain the name of a subdirectory inside the + package that contains the main meson.build file. This is useful, + if for example, the main meson.build file is not at the root of + the tree extracted by the tarball. If HOST_FOO_SUBDIR is not + specified, it defaults to FOO_SUBDIR. +
  • +FOO_CONF_ENV, to specify additional environment variables to pass to + meson for the configuration step. By default, empty. +
  • +FOO_CONF_OPTS, to specify additional options to pass to meson for the + configuration step. By default, empty. +
  • +FOO_CFLAGS, to specify compiler arguments added to the package specific + cross-compile.conf file c_args property. By default, the value of + TARGET_CFLAGS. +
  • +FOO_CXXFLAGS, to specify compiler arguments added to the package specific + cross-compile.conf file cpp_args property. By default, the value of + TARGET_CXXFLAGS. +
  • +FOO_LDFLAGS, to specify compiler arguments added to the package specific + cross-compile.conf file c_link_args and cpp_link_args properties. By + default, the value of TARGET_LDFLAGS. +
  • +FOO_MESON_EXTRA_BINARIES, to specify a space-separated list of programs + to add to the [binaries] section of the meson cross-compilation.conf + configuration file. The format is program-name='/path/to/program', with + no space around the = sign, and with the path of the program between + single quotes. By default, empty. Note that Buildroot already sets the + correct values for c, cpp, ar, strip, and pkgconfig. +
  • +FOO_MESON_EXTRA_PROPERTIES, to specify a space-separated list of + properties to add to the [properties] section of the meson + cross-compilation.conf configuration file. The format is + property-name=<value> with no space around the = sign, and with + single quotes around string values. By default, empty. Note that + Buildroot already sets values for needs_exe_wrapper, c_args, + c_link_args, cpp_args, cpp_link_args, sys_root, and + pkg_config_libdir. +
  • +FOO_NINJA_ENV, to specify additional environment variables to pass to + ninja, meson companion tool in charge of the build operations. By default, + empty. +
  • +FOO_NINJA_OPTS, to specify a space-separated list of targets to build. By + default, empty, to build the default target(s). +

18.17. Infrastructure for Cargo-based packages

Cargo is the package manager for the Rust programming language. It allows the +user to build programs or libraries written in Rust, but it also downloads and +manages their dependencies, to ensure repeatable builds. Cargo packages are +called "crates".

18.17.1. cargo-package tutorial

The Config.in file of Cargo-based package foo should contain:

01: config BR2_PACKAGE_FOO
+02:     bool "foo"
+03:     depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS
+04:     select BR2_PACKAGE_HOST_RUSTC
+05:     help
+06:       This is a comment that explains what foo is.
+07:
+08:       http://foosoftware.org/foo/

And the .mk file for this package should contain:

01: ################################################################################
+02: #
+03: # foo
+04: #
+05: ################################################################################
+06:
+07: FOO_VERSION = 1.0
+08: FOO_SOURCE = foo-$(FOO_VERSION).tar.gz
+09: FOO_SITE = http://www.foosoftware.org/download
+10: FOO_LICENSE = GPL-3.0+
+11: FOO_LICENSE_FILES = COPYING
+12:
+13: $(eval $(cargo-package))

The Makefile starts with the definition of the standard variables for +package declaration (lines 7 to 11).

As seen in line 13, it is based on the cargo-package +infrastructure. Cargo will be invoked automatically by this +infrastructure to build and install the package.

It is still possible to define custom build commands or install +commands (i.e. with FOO_BUILD_CMDS and FOO_INSTALL_TARGET_CMDS). +Those will then replace the commands from the cargo infrastructure.

18.17.2. cargo-package reference

The main macros for the Cargo package infrastructure are +cargo-package for target packages and host-cargo-package for host +packages.

Just like the generic infrastructure, the Cargo infrastructure works +by defining a number of variables before calling the cargo-package +or host-cargo-package macros.

First, all the package metadata information variables that exist in +the generic infrastructure also exist in the Cargo infrastructure: +FOO_VERSION, FOO_SOURCE, FOO_PATCH, FOO_SITE, +FOO_DEPENDENCIES, FOO_LICENSE, FOO_LICENSE_FILES, etc.

A few additional variables, specific to the Cargo infrastructure, can +also be defined. Many of them are only useful in very specific cases, +typical packages will therefore only use a few of them.

  • +FOO_SUBDIR may contain the name of a subdirectory inside the package + that contains the Cargo.toml file. This is useful, if for example, it + is not at the root of the tree extracted by the tarball. If + HOST_FOO_SUBDIR is not specified, it defaults to FOO_SUBDIR. +
  • +FOO_CARGO_ENV can be used to pass additional variables in the + environment of cargo invocations. It used at both build and + installation time +
  • +FOO_CARGO_BUILD_OPTS can be used to pass additional options to + cargo at build time. +
  • +FOO_CARGO_INSTALL_OPTS can be used to pass additional options to + cargo at install time. +

A crate can depend on other libraries from crates.io or git +repositories, listed in its Cargo.toml file. Buildroot automatically +takes care of downloading such dependencies as part of the download +step of packages that use the cargo-package infrastructure. Such +dependencies are then kept together with the package source code in +the tarball cached in Buildroot’s DL_DIR, and therefore the hash of +the package’s tarball includes such dependencies.

This mechanism ensures that any change in the dependencies will be +detected, and allows the build to be performed completely offline.

18.18. Infrastructure for Go packages

This infrastructure applies to Go packages that use the standard +build system and use bundled dependencies.

18.18.1. golang-package tutorial

First, let’s see how to write a .mk file for a go package, +with an example :

01: ################################################################################
+02: #
+03: # foo
+04: #
+05: ################################################################################
+06:
+07: FOO_VERSION = 1.0
+08: FOO_SITE = $(call github,bar,foo,$(FOO_VERSION))
+09: FOO_LICENSE = BSD-3-Clause
+10: FOO_LICENSE_FILES = LICENSE
+11:
+12: $(eval $(golang-package))

On line 7, we declare the version of the package.

On line 8, we declare the upstream location of the package, here +fetched from Github, since a large number of Go packages are hosted on +Github.

On line 9 and 10, we give licensing details about the package.

Finally, on line 12, we invoke the golang-package macro that +generates all the Makefile rules that actually allow the package to be +built.

18.18.2. golang-package reference

In their Config.in file, packages using the golang-package +infrastructure should depend on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS +because Buildroot will automatically add a dependency on host-go +to such packages. +If you need CGO support in your package, you must add a dependency on +BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS.

The main macro of the Go package infrastructure is +golang-package. It is similar to the generic-package macro. The +ability to build host packages is also available, with the +host-golang-package macro. +Host packages built by host-golang-package macro should depend on +BR2_PACKAGE_HOST_GO_HOST_ARCH_SUPPORTS.

Just like the generic infrastructure, the Go infrastructure works +by defining a number of variables before calling the golang-package.

All the package metadata information variables that exist in the +generic package infrastructure also +exist in the Go infrastructure: FOO_VERSION, FOO_SOURCE, +FOO_PATCH, FOO_SITE, FOO_SUBDIR, FOO_DEPENDENCIES, +FOO_LICENSE, FOO_LICENSE_FILES, FOO_INSTALL_STAGING, etc.

Note that it is not necessary to add host-go in the +FOO_DEPENDENCIES variable of a package, since this basic dependency +is automatically added as needed by the Go package infrastructure.

A few additional variables, specific to the Go infrastructure, can +optionally be defined, depending on the package’s needs. Many of them +are only useful in very specific cases, typical packages will +therefore only use a few of them, or none.

  • +The package must specify its Go module name in the FOO_GOMOD + variable. If not specified, it defaults to + URL-domain/1st-part-of-URL/2nd-part-of-URL, e.g FOO_GOMOD will + take the value github.com/bar/foo for a package that specifies + FOO_SITE = $(call github,bar,foo,$(FOO_VERSION)). The Go package + infrastructure will automatically generate a minimal go.mod file + in the package source tree if it doesn’t exist. +
  • +FOO_LDFLAGS and FOO_TAGS can be used to pass respectively the + LDFLAGS or the TAGS to the go build command. +
  • +FOO_BUILD_TARGETS can be used to pass the list of targets that + should be built. If FOO_BUILD_TARGETS is not specified, it + defaults to .. We then have two cases: +

    • +FOO_BUILD_TARGETS is .. In this case, we assume only one binary + will be produced, and that by default we name it after the package + name. If that is not appropriate, the name of the produced binary + can be overridden using FOO_BIN_NAME. +
    • +FOO_BUILD_TARGETS is not .. In this case, we iterate over the + values to build each target, and for each produced a binary that is + the non-directory component of the target. For example if + FOO_BUILD_TARGETS = cmd/docker cmd/dockerd the binaries produced + are docker and dockerd. +
  • +FOO_INSTALL_BINS can be used to pass the list of binaries that + should be installed in /usr/bin on the target. If + FOO_INSTALL_BINS is not specified, it defaults to the lower-case + name of package. +

With the Go infrastructure, all the steps required to build and +install the packages are already defined, and they generally work well +for most Go-based packages. However, when required, it is still +possible to customize what is done in any particular step:

  • +By adding a post-operation hook (after extract, patch, configure, + build or install). See Section 18.23, “Hooks available in the various build steps†for details. +
  • +By overriding one of the steps. For example, even if the Go + infrastructure is used, if the package .mk file defines its own + FOO_BUILD_CMDS variable, it will be used instead of the default Go + one. However, using this method should be restricted to very + specific cases. Do not use it in the general case. +

A Go package can depend on other Go modules, listed in its go.mod +file. Buildroot automatically takes care of downloading such +dependencies as part of the download step of packages that use the +golang-package infrastructure. Such dependencies are then kept +together with the package source code in the tarball cached in +Buildroot’s DL_DIR, and therefore the hash of the package’s tarball +includes such dependencies.

This mechanism ensures that any change in the dependencies will be +detected, and allows the build to be performed completely offline.

18.19. Infrastructure for QMake-based packages

18.19.1. qmake-package tutorial

First, let’s see how to write a .mk file for a QMake-based package, with +an example :

01: ################################################################################
+02: #
+03: # libfoo
+04: #
+05: ################################################################################
+06:
+07: LIBFOO_VERSION = 1.0
+08: LIBFOO_SOURCE = libfoo-$(LIBFOO_VERSION).tar.gz
+09: LIBFOO_SITE = http://www.foosoftware.org/download
+10: LIBFOO_CONF_OPTS = QT_CONFIG+=bar QT_CONFIG-=baz
+11: LIBFOO_DEPENDENCIES = bar
+12:
+13: $(eval $(qmake-package))

On line 7, we declare the version of the package.

On line 8 and 9, we declare the name of the tarball (xz-ed tarball +recommended) and the location of the tarball on the Web. Buildroot +will automatically download the tarball from this location.

On line 10, we tell Buildroot what options to enable for libfoo.

On line 11, we tell Buildroot the dependencies of libfoo.

Finally, on line line 13, we invoke the qmake-package +macro that generates all the Makefile rules that actually allows the +package to be built.

18.19.2. qmake-package reference

The main macro of the QMake package infrastructure is qmake-package. +It is similar to the generic-package macro.

Just like the generic infrastructure, the QMake infrastructure works +by defining a number of variables before calling the qmake-package +macro.

First, all the package metadata information variables that exist in +the generic infrastructure also exist in the QMake infrastructure: +LIBFOO_VERSION, LIBFOO_SOURCE, LIBFOO_PATCH, LIBFOO_SITE, +LIBFOO_SUBDIR, LIBFOO_DEPENDENCIES, LIBFOO_INSTALL_STAGING, +LIBFOO_INSTALL_TARGET.

An additional variable, specific to the QMake infrastructure, can +also be defined.

  • +LIBFOO_CONF_ENV, to specify additional environment variables to + pass to the qmake script for the configuration step. By default, empty. +
  • +LIBFOO_CONF_OPTS, to specify additional options to pass to the + qmake script for the configuration step. By default, empty. +
  • +LIBFOO_MAKE_ENV, to specify additional environment variables to the + make command during the build and install steps. By default, empty. +
  • +LIBFOO_MAKE_OPTS, to specify additional targets to pass to the + make command during the build step. By default, empty. +
  • +LIBFOO_INSTALL_STAGING_OPTS, to specify additional targets to pass + to the make command during the staging installation step. By default, + install. +
  • +LIBFOO_INSTALL_TARGET_OPTS, to specify additional targets to pass + to the make command during the target installation step. By default, + install. +
  • +LIBFOO_SYNC_QT_HEADERS, to run syncqt.pl before qmake. Some packages + need this to have a properly populated include directory before + running the build. +

18.20. Infrastructure for packages building kernel modules

Buildroot offers a helper infrastructure to make it easy to write packages that +build and install Linux kernel modules. Some packages only contain a kernel +module, other packages contain programs and libraries in addition to kernel +modules. Buildroot’s helper infrastructure supports either case.

18.20.1. kernel-module tutorial

Let’s start with an example on how to prepare a simple package that only +builds a kernel module, and no other component:

01: ################################################################################
+02: #
+03: # foo
+04: #
+05: ################################################################################
+06:
+07: FOO_VERSION = 1.2.3
+08: FOO_SOURCE = foo-$(FOO_VERSION).tar.xz
+09: FOO_SITE = http://www.foosoftware.org/download
+10: FOO_LICENSE = GPL-2.0
+11: FOO_LICENSE_FILES = COPYING
+12:
+13: $(eval $(kernel-module))
+14: $(eval $(generic-package))

Lines 7-11 define the usual meta-data to specify the version, archive name, +remote URI where to find the package source, licensing information.

On line 13, we invoke the kernel-module helper infrastructure, that +generates all the appropriate Makefile rules and variables to build +that kernel module.

Finally, on line 14, we invoke the +generic-package infrastructure.

The dependency on linux is automatically added, so it is not needed to +specify it in FOO_DEPENDENCIES.

What you may have noticed is that, unlike other package infrastructures, +we explicitly invoke a second infrastructure. This allows a package to +build a kernel module, but also, if needed, use any one of other package +infrastructures to build normal userland components (libraries, +executables…). Using the kernel-module infrastructure on its own is +not sufficient; another package infrastructure must be used.

Let’s look at a more complex example:

01: ################################################################################
+02: #
+03: # foo
+04: #
+05: ################################################################################
+06:
+07: FOO_VERSION = 1.2.3
+08: FOO_SOURCE = foo-$(FOO_VERSION).tar.xz
+09: FOO_SITE = http://www.foosoftware.org/download
+10: FOO_LICENSE = GPL-2.0
+11: FOO_LICENSE_FILES = COPYING
+12:
+13: FOO_MODULE_SUBDIRS = driver/base
+14: FOO_MODULE_MAKE_OPTS = KVERSION=$(LINUX_VERSION_PROBED)
+15:
+16: ifeq ($(BR2_PACKAGE_LIBBAR),y)
+17: FOO_DEPENDENCIES += libbar
+18: FOO_CONF_OPTS += --enable-bar
+19: FOO_MODULE_SUBDIRS += driver/bar
+20: else
+21: FOO_CONF_OPTS += --disable-bar
+22: endif
+23:
+24: $(eval $(kernel-module))
+26: $(eval $(autotools-package))

Here, we see that we have an autotools-based package, that also builds +the kernel module located in sub-directory driver/base and, if libbar +is enabled, the kernel module located in sub-directory driver/bar, and +defines the variable KVERSION to be passed to the Linux buildsystem +when building the module(s).

18.20.2. kernel-module reference

The main macro for the kernel module infrastructure is kernel-module. +Unlike other package infrastructures, it is not stand-alone, and requires +any of the other *-package macros be called after it.

The kernel-module macro defines post-build and post-target-install +hooks to build the kernel modules. If the package’s .mk needs access +to the built kernel modules, it should do so in a post-build hook, +registered after the call to kernel-module. Similarly, if the +package’s .mk needs access to the kernel module after it has been +installed, it should do so in a post-install hook, registered after +the call to kernel-module. Here’s an example:

$(eval $(kernel-module))
+
+define FOO_DO_STUFF_WITH_KERNEL_MODULE
+    # Do something with it...
+endef
+FOO_POST_BUILD_HOOKS += FOO_DO_STUFF_WITH_KERNEL_MODULE
+
+$(eval $(generic-package))

Finally, unlike the other package infrastructures, there is no +host-kernel-module variant to build a host kernel module.

The following additional variables can optionally be defined to further +configure the build of the kernel module:

  • +FOO_MODULE_SUBDIRS may be set to one or more sub-directories (relative + to the package source top-directory) where the kernel module sources are. + If empty or not set, the sources for the kernel module(s) are considered + to be located at the top of the package source tree. +
  • +FOO_MODULE_MAKE_OPTS may be set to contain extra variable definitions + to pass to the Linux buildsystem. +

You may also reference (but you may not set!) those variables:

  • +LINUX_DIR contains the path to where the Linux kernel has been + extracted and built. +
  • +LINUX_VERSION contains the version string as configured by the user. +
  • +LINUX_VERSION_PROBED contains the real version string of the kernel, + retrieved with running make -C $(LINUX_DIR) kernelrelease +
  • +KERNEL_ARCH contains the name of the current architecture, like arm, + mips… +

18.21. Infrastructure for asciidoc documents

The Buildroot manual, which you are currently reading, is entirely written +using the AsciiDoc mark-up syntax. The manual is then +rendered to many formats:

  • +html +
  • +split-html +
  • +pdf +
  • +epub +
  • +text +

Although Buildroot only contains one document written in AsciiDoc, there +is, as for packages, an infrastructure for rendering documents using the +AsciiDoc syntax.

Also as for packages, the AsciiDoc infrastructure is available from a +br2-external tree. This allows documentation for +a br2-external tree to match the Buildroot documentation, as it will be +rendered to the same formats and use the same layout and theme.

18.21.1. asciidoc-document tutorial

Whereas package infrastructures are suffixed with -package, the document +infrastructures are suffixed with -document. So, the AsciiDoc infrastructure +is named asciidoc-document.

Here is an example to render a simple AsciiDoc document.

01: ################################################################################
+02: #
+03: # foo-document
+04: #
+05: ################################################################################
+06:
+07: FOO_SOURCES = $(sort $(wildcard $(FOO_DOCDIR)/*))
+08: $(eval $(call asciidoc-document))

On line 7, the Makefile declares what the sources of the document are. +Currently, it is expected that the document’s sources are only local; +Buildroot will not attempt to download anything to render a document. +Thus, you must indicate where the sources are. Usually, the string +above is sufficient for a document with no sub-directory structure.

On line 8, we call the asciidoc-document function, which generates all +the Makefile code necessary to render the document.

18.21.2. asciidoc-document reference

The list of variables that can be set in a .mk file to give metadata +information is (assuming the document name is foo) :

  • +FOO_SOURCES, mandatory, defines the source files for the document. +
  • +FOO_RESOURCES, optional, may contain a space-separated list of paths + to one or more directories containing so-called resources (like CSS or + images). By default, empty. +
  • +FOO_DEPENDENCIES, optional, the list of packages (most probably, + host-packages) that must be built before building this document. +

There are also additional hooks (see Section 18.23, “Hooks available in the various build steps†for general information +on hooks), that a document may set to define extra actions to be done at +various steps:

  • +FOO_POST_RSYNC_HOOKS to run additional commands after the sources + have been copied by Buildroot. This can for example be used to + generate part of the manual with information extracted from the + tree. As an example, Buildroot uses this hook to generate the tables + in the appendices. +
  • +FOO_CHECK_DEPENDENCIES_HOOKS to run additional tests on required + components to generate the document. In AsciiDoc, it is possible to + call filters, that is, programs that will parse an AsciiDoc block and + render it appropriately (e.g. ditaa or + aafigure). +
  • +FOO_CHECK_DEPENDENCIES_<FMT>_HOOKS, to run additional tests for + the specified format <FMT> (see the list of rendered formats, above). +

Buildroot sets the following variable that can be used in the definitions +above:

  • +$(FOO_DOCDIR), similar to $(FOO_PKGDIR), contains the path to the + directory containing foo.mk. It can be used to refer to the document + sources, and can be used in the hooks, especially the post-rsync hook + if parts of the documentation needs to be generated. +
  • +$(@D), as for traditional packages, contains the path to the directory + where the document will be copied and built. +

Here is a complete example that uses all variables and all hooks:

01: ################################################################################
+02: #
+03: # foo-document
+04: #
+05: ################################################################################
+06:
+07: FOO_SOURCES = $(sort $(wildcard $(FOO_DOCDIR)/*))
+08: FOO_RESOURCES = $(sort $(wildcard $(FOO_DOCDIR)/ressources))
+09:
+10: define FOO_GEN_EXTRA_DOC
+11:     /path/to/generate-script --outdir=$(@D)
+12: endef
+13: FOO_POST_RSYNC_HOOKS += FOO_GEN_EXTRA_DOC
+14:
+15: define FOO_CHECK_MY_PROG
+16:     if ! which my-prog >/dev/null 2>&1; then \
+17:         echo "You need my-prog to generate the foo document"; \
+18:         exit 1; \
+19:     fi
+20: endef
+21: FOO_CHECK_DEPENDENCIES_HOOKS += FOO_CHECK_MY_PROG
+22:
+23: define FOO_CHECK_MY_OTHER_PROG
+24:     if ! which my-other-prog >/dev/null 2>&1; then \
+25:         echo "You need my-other-prog to generate the foo document as PDF"; \
+26:         exit 1; \
+27:     fi
+28: endef
+29: FOO_CHECK_DEPENDENCIES_PDF_HOOKS += FOO_CHECK_MY_OTHER_PROG
+30:
+31: $(eval $(call asciidoc-document))

18.22. Infrastructure specific to the Linux kernel package

The Linux kernel package can use some specific infrastructures based on package +hooks for building Linux kernel tools or/and building Linux kernel extensions.

18.22.1. linux-kernel-tools

Buildroot offers a helper infrastructure to build some userspace tools +for the target available within the Linux kernel sources. Since their +source code is part of the kernel source code, a special package, +linux-tools, exists and re-uses the sources of the Linux kernel that +runs on the target.

Let’s look at an example of a Linux tool. For a new Linux tool named +foo, create a new menu entry in the existing +package/linux-tools/Config.in. This file will contain the option +descriptions related to each kernel tool that will be used and +displayed in the configuration tool. It would basically look like:

01: config BR2_PACKAGE_LINUX_TOOLS_FOO
+02:     bool "foo"
+03:     select BR2_PACKAGE_LINUX_TOOLS
+04:     help
+05:       This is a comment that explains what foo kernel tool is.
+06:
+07:       http://foosoftware.org/foo/

The name of the option starts with the prefix BR2_PACKAGE_LINUX_TOOLS_, +followed by the uppercase name of the tool (like is done for packages).

Note. Unlike other packages, the linux-tools package options appear in the +linux kernel menu, under the Linux Kernel Tools sub-menu, not under +the Target packages main menu.

Then for each linux tool, add a new .mk.in file named +package/linux-tools/linux-tool-foo.mk.in. It would basically look like:

01: ################################################################################
+02: #
+03: # foo
+04: #
+05: ################################################################################
+06:
+07: LINUX_TOOLS += foo
+08:
+09: FOO_DEPENDENCIES = libbbb
+10:
+11: define FOO_BUILD_CMDS
+12:     $(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools foo
+13: endef
+14:
+15: define FOO_INSTALL_STAGING_CMDS
+16:     $(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools \
+17:             DESTDIR=$(STAGING_DIR) \
+18:             foo_install
+19: endef
+20:
+21: define FOO_INSTALL_TARGET_CMDS
+22:     $(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools \
+23:             DESTDIR=$(TARGET_DIR) \
+24:             foo_install
+25: endef

On line 7, we register the Linux tool foo to the list of available +Linux tools.

On line 9, we specify the list of dependencies this tool relies on. These +dependencies are added to the Linux package dependencies list only when the +foo tool is selected.

The rest of the Makefile, lines 11-25 defines what should be done at the +different steps of the Linux tool build process like for a +generic package. They will actually be +used only when the foo tool is selected. The only supported commands are +_BUILD_CMDS, _INSTALL_STAGING_CMDS and _INSTALL_TARGET_CMDS.

Note. One must not call $(eval $(generic-package)) or any other +package infrastructure! Linux tools are not packages by themselves, +they are part of the linux-tools package.

18.22.2. linux-kernel-extensions

Some packages provide new features that require the Linux kernel tree +to be modified. This can be in the form of patches to be applied on +the kernel tree, or in the form of new files to be added to the +tree. The Buildroot’s Linux kernel extensions infrastructure provides +a simple solution to automatically do this, just after the kernel +sources are extracted and before the kernel patches are +applied. Examples of extensions packaged using this mechanism are the +real-time extensions Xenomai and RTAI, as well as the set of +out-of-tree LCD screens drivers fbtft.

Let’s look at an example on how to add a new Linux extension foo.

First, create the package foo that provides the extension: this +package is a standard package; see the previous chapters on how to +create such a package. This package is in charge of downloading the +sources archive, checking the hash, defining the licence informations +and building user space tools if any.

Then create the Linux extension proper: create a new menu entry in +the existing linux/Config.ext.in. This file contains the option +descriptions related to each kernel extension that will be used and +displayed in the configuration tool. It would basically look like:

01: config BR2_LINUX_KERNEL_EXT_FOO
+02:     bool "foo"
+03:     help
+04:       This is a comment that explains what foo kernel extension is.
+05:
+06:       http://foosoftware.org/foo/

Then for each linux extension, add a new .mk file named +linux/linux-ext-foo.mk. It should basically contain:

01: ################################################################################
+02: #
+03: # foo
+04: #
+05: ################################################################################
+06:
+07: LINUX_EXTENSIONS += foo
+08:
+09: define FOO_PREPARE_KERNEL
+10:     $(FOO_DIR)/prepare-kernel-tree.sh --linux-dir=$(@D)
+11: endef

On line 7, we add the Linux extension foo to the list of available +Linux extensions.

On line 9-11, we define what should be done by the extension to modify +the Linux kernel tree; this is specific to the linux extension and can +use the variables defined by the foo package, like: $(FOO_DIR) or +$(FOO_VERSION)… as well as all the Linux variables, like: +$(LINUX_VERSION) or $(LINUX_VERSION_PROBED), $(KERNEL_ARCH)… +See the definition of those kernel variables.

18.23. Hooks available in the various build steps

The generic infrastructure (and as a result also the derived autotools +and cmake infrastructures) allow packages to specify hooks. +These define further actions to perform after existing steps. +Most hooks aren’t really useful for generic packages, since the .mk +file already has full control over the actions performed in each step +of the package construction.

The following hook points are available:

  • +LIBFOO_PRE_DOWNLOAD_HOOKS +
  • +LIBFOO_POST_DOWNLOAD_HOOKS +
  • +LIBFOO_PRE_EXTRACT_HOOKS +
  • +LIBFOO_POST_EXTRACT_HOOKS +
  • +LIBFOO_PRE_RSYNC_HOOKS +
  • +LIBFOO_POST_RSYNC_HOOKS +
  • +LIBFOO_PRE_PATCH_HOOKS +
  • +LIBFOO_POST_PATCH_HOOKS +
  • +LIBFOO_PRE_CONFIGURE_HOOKS +
  • +LIBFOO_POST_CONFIGURE_HOOKS +
  • +LIBFOO_PRE_BUILD_HOOKS +
  • +LIBFOO_POST_BUILD_HOOKS +
  • +LIBFOO_PRE_INSTALL_HOOKS (for host packages only) +
  • +LIBFOO_POST_INSTALL_HOOKS (for host packages only) +
  • +LIBFOO_PRE_INSTALL_STAGING_HOOKS (for target packages only) +
  • +LIBFOO_POST_INSTALL_STAGING_HOOKS (for target packages only) +
  • +LIBFOO_PRE_INSTALL_TARGET_HOOKS (for target packages only) +
  • +LIBFOO_POST_INSTALL_TARGET_HOOKS (for target packages only) +
  • +LIBFOO_PRE_INSTALL_IMAGES_HOOKS +
  • +LIBFOO_POST_INSTALL_IMAGES_HOOKS +
  • +LIBFOO_PRE_LEGAL_INFO_HOOKS +
  • +LIBFOO_POST_LEGAL_INFO_HOOKS +
  • +LIBFOO_TARGET_FINALIZE_HOOKS +

These variables are lists of variable names containing actions to be +performed at this hook point. This allows several hooks to be +registered at a given hook point. Here is an example:

define LIBFOO_POST_PATCH_FIXUP
+        action1
+        action2
+endef
+
+LIBFOO_POST_PATCH_HOOKS += LIBFOO_POST_PATCH_FIXUP

18.23.1. Using the POST_RSYNC hook

The POST_RSYNC hook is run only for packages that use a local source, +either through the local site method or the OVERRIDE_SRCDIR +mechanism. In this case, package sources are copied using rsync from +the local location into the buildroot build directory. The rsync +command does not copy all files from the source directory, though. +Files belonging to a version control system, like the directories +.git, .hg, etc. are not copied. For most packages this is +sufficient, but a given package can perform additional actions using +the POST_RSYNC hook.

In principle, the hook can contain any command you want. One specific +use case, though, is the intentional copying of the version control +directory using rsync. The rsync command you use in the hook can, among +others, use the following variables:

  • +$(SRCDIR): the path to the overridden source directory +
  • +$(@D): the path to the build directory +

18.23.2. Target-finalize hook

Packages may also register hooks in LIBFOO_TARGET_FINALIZE_HOOKS. +These hooks are run after all packages are built, but before the +filesystem images are generated. They are seldom used, and your +package probably do not need them.

18.24. Gettext integration and interaction with packages

Many packages that support internationalization use the gettext +library. Dependencies for this library are fairly complicated and +therefore, deserve some explanation.

The glibc C library integrates a full-blown implementation of +gettext, supporting translation. Native Language Support is +therefore built-in in glibc.

On the other hand, the uClibc and musl C libraries only provide a +stub implementation of the gettext functionality, which allows to +compile libraries and programs using gettext functions, but without +providing the translation capabilities of a full-blown gettext +implementation. With such C libraries, if real Native Language Support +is necessary, it can be provided by the libintl library of the +gettext package.

Due to this, and in order to make sure that Native Language Support is +properly handled, packages in Buildroot that can use NLS support +should:

  1. +Ensure NLS support is enabled when BR2_SYSTEM_ENABLE_NLS=y. This + is done automatically for autotools packages and therefore should + only be done for packages using other package infrastructures. +
  2. +Add $(TARGET_NLS_DEPENDENCIES) to the package + <pkg>_DEPENDENCIES variable. This addition should be done + unconditionally: the value of this variable is automatically + adjusted by the core infrastructure to contain the relevant list of + packages. If NLS support is disabled, this variable is empty. If + NLS support is enabled, this variable contains host-gettext so + that tools needed to compile translation files are available on the + host. In addition, if uClibc or musl are used, this variable + also contains gettext in order to get the full-blown gettext + implementation. +
  3. +If needed, add $(TARGET_NLS_LIBS) to the linker flags, so that + the package gets linked with libintl. This is generally not + needed with autotools packages as they usually detect + automatically that they should link with libintl. However, + packages using other build systems, or problematic autotools-based + packages may need this. $(TARGET_NLS_LIBS) should be added + unconditionally to the linker flags, as the core automatically + makes it empty or defined to -lintl depending on the + configuration. +

No changes should be made to the Config.in file to support NLS.

Finally, certain packages need some gettext utilities on the target, +such as the gettext program itself, which allows to retrieve +translated strings, from the command line. In such a case, the package +should:

  • +use select BR2_PACKAGE_GETTEXT in their Config.in file, + indicating in a comment above that it’s a runtime dependency only. +
  • +not add any gettext dependency in the DEPENDENCIES variable of + their .mk file. +

18.25. Tips and tricks

18.25.1. Package name, config entry name and makefile variable relationship

In Buildroot, there is some relationship between:

  • +the package name, which is the package directory name (and the + name of the *.mk file); +
  • +the config entry name that is declared in the Config.in file; +
  • +the makefile variable prefix. +

It is mandatory to maintain consistency between these elements, +using the following rules:

  • +the package directory and the *.mk name are the package name + itself (e.g.: package/foo-bar_boo/foo-bar_boo.mk); +
  • +the make target name is the package name itself (e.g.: + foo-bar_boo); +
  • +the config entry is the upper case package name with . and - + characters substituted with _, prefixed with BR2_PACKAGE_ (e.g.: + BR2_PACKAGE_FOO_BAR_BOO); +
  • +the *.mk file variable prefix is the upper case package name + with . and - characters substituted with _ (e.g.: + FOO_BAR_BOO_VERSION). +

18.25.2. How to check the coding style

Buildroot provides a script in utils/check-package that checks new or +changed files for coding style. It is not a complete language validator, +but it catches many common mistakes. It is meant to run in the actual +files you created or modified, before creating the patch for submission.

This script can be used for packages, filesystem makefiles, Config.in +files, etc. It does not check the files defining the package +infrastructures and some other files containing similar common code.

To use it, run the check-package script, by telling which files you +created or changed:

$ ./utils/check-package package/new-package/*

If you have the utils directory in your path you can also run:

$ cd package/new-package/
+$ check-package *

The tool can also be used for packages in a br2-external:

$ check-package -b /path/to/br2-ext-tree/package/my-package/*

18.25.3. How to test your package

Once you have added your new package, it is important that you test it +under various conditions: does it build for all architectures? Does it +build with the different C libraries? Does it need threads, NPTL? And +so on…

Buildroot runs autobuilders which +continuously test random configurations. However, these only build the +master branch of the git tree, and your new fancy package is not yet +there.

Buildroot provides a script in utils/test-pkg that uses the same base +configurations as used by the autobuilders so you can test your package +in the same conditions.

First, create a config snippet that contains all the necessary options +needed to enable your package, but without any architecture or toolchain +option. For example, let’s create a config snippet that just enables +libcurl, without any TLS backend:

$ cat libcurl.config
+BR2_PACKAGE_LIBCURL=y

If your package needs more configuration options, you can add them to the +config snippet. For example, here’s how you would test libcurl with +openssl as a TLS backend and the curl program:

$ cat libcurl.config
+BR2_PACKAGE_LIBCURL=y
+BR2_PACKAGE_LIBCURL_CURL=y
+BR2_PACKAGE_OPENSSL=y

Then run the test-pkg script, by telling it what config snippet to use +and what package to test:

$ ./utils/test-pkg -c libcurl.config -p libcurl

By default, test-pkg will build your package against a subset of the +toolchains used by the autobuilders, which has been selected by the +Buildroot developers as being the most useful and representative +subset. If you want to test all toolchains, pass the -a option. Note +that in any case, internal toolchains are excluded as they take too +long to build.

The output lists all toolchains that are tested and the corresponding +result (excerpt, results are fake):

$ ./utils/test-pkg -c libcurl.config -p libcurl
+                armv5-ctng-linux-gnueabi [ 1/11]: OK
+              armv7-ctng-linux-gnueabihf [ 2/11]: OK
+                        br-aarch64-glibc [ 3/11]: SKIPPED
+                           br-arcle-hs38 [ 4/11]: SKIPPED
+                            br-arm-basic [ 5/11]: FAILED
+                  br-arm-cortex-a9-glibc [ 6/11]: OK
+                   br-arm-cortex-a9-musl [ 7/11]: FAILED
+                   br-arm-cortex-m4-full [ 8/11]: OK
+                             br-arm-full [ 9/11]: OK
+                    br-arm-full-nothread [10/11]: FAILED
+                      br-arm-full-static [11/11]: OK
+11 builds, 2 skipped, 2 build failed, 1 legal-info failed

The results mean:

  • +OK: the build was successful. +
  • +SKIPPED: one or more configuration options listed in the config + snippet were not present in the final configuration. This is due to + options having dependencies not satisfied by the toolchain, such as + for example a package that depends on BR2_USE_MMU with a noMMU + toolchain. The missing options are reported in missing.config in + the output build directory (~/br-test-pkg/TOOLCHAIN_NAME/ by + default). +
  • +FAILED: the build failed. Inspect the logfile file in the output + build directory to see what went wrong: +

    • +the actual build failed, +
    • +the legal-info failed, +
    • +one of the preliminary steps (downloading the config file, applying + the configuration, running dirclean for the package) failed. +

When there are failures, you can just re-run the script with the same +options (after you fixed your package); the script will attempt to +re-build the package specified with -p for all toolchains, without +the need to re-build all the dependencies of that package.

The test-pkg script accepts a few options, for which you can get some +help by running:

$ ./utils/test-pkg -h

18.25.4. How to add a package from GitHub

Packages on GitHub often don’t have a download area with release tarballs. +However, it is possible to download tarballs directly from the repository +on GitHub. As GitHub is known to have changed download mechanisms in the +past, the github helper function should be used as shown below.

# Use a tag or a full commit ID
+FOO_VERSION = 1.0
+FOO_SITE = $(call github,<user>,<package>,v$(FOO_VERSION))

Notes

  • +The FOO_VERSION can either be a tag or a commit ID. +
  • +The tarball name generated by github matches the default one from + Buildroot (e.g.: foo-f6fb6654af62045239caed5950bc6c7971965e60.tar.gz), + so it is not necessary to specify it in the .mk file. +
  • +When using a commit ID as version, you should use the full 40 hex characters. +
  • +When the tag contains a prefix such as v in v1.0, then the + VERSION variable should contain just 1.0, and the v should be + added directly in the SITE variable, as illustrated above. This + ensures that the VERSION variable value can be used to match + against release-monitoring.org + results. +

If the package you wish to add does have a release section on GitHub, the +maintainer may have uploaded a release tarball, or the release may just point +to the automatically generated tarball from the git tag. If there is a +release tarball uploaded by the maintainer, we prefer to use that since it +may be slightly different (e.g. it contains a configure script so we don’t +need to do AUTORECONF).

You can see on the release page if it’s an uploaded tarball or a git tag:

github_hash_mongrel2.png
  • +If it looks like the image above then it was uploaded by the + maintainer and you should use that link (in that example: + mongrel2-v1.9.2.tar.bz2) to specify FOO_SITE, and not use the + github helper. +
  • +On the other hand, if there’s is only the "Source code" link, then + it’s an automatically generated tarball and you should use the + github helper function. +

18.25.5. How to add a package from Gitlab

In a similar way to the github macro described in +Section 18.25.4, “How to add a package from GitHubâ€, Buildroot also provides the gitlab macro +to download from Gitlab repositories. It can be used to download +auto-generated tarballs produced by Gitlab, either for specific tags +or commits:

# Use a tag or a full commit ID
+FOO_VERSION = 1.0
+FOO_SITE = $(call gitlab,<user>,<package>,v$(FOO_VERSION))

By default, it will use a .tar.gz tarball, but Gitlab also provides +.tar.bz2 tarballs, so by adding a <pkg>_SOURCE variable, this +.tar.bz2 tarball can be used:

# Use a tag or a full commit ID
+FOO_VERSION = 1.0
+FOO_SITE = $(call gitlab,<user>,<package>,v$(FOO_VERSION))
+FOO_SOURCE = foo-$(FOO_VERSION).tar.bz2

If there is a specific tarball uploaded by the upstream developers in +https://gitlab.com/<project>/releases/, do not use this macro, but +rather use directly the link to the tarball.

18.26. Conclusion

As you can see, adding a software package to Buildroot is simply a +matter of writing a Makefile using an existing example and modifying it +according to the compilation process required by the package.

If you package software that might be useful for other people, don’t +forget to send a patch to the Buildroot mailing list (see +Section 22.5, “Submitting patchesâ€)!

Chapter 19. Patching a package

While integrating a new package or updating an existing one, it may be +necessary to patch the source of the software to get it cross-built within +Buildroot.

Buildroot offers an infrastructure to automatically handle this during +the builds. It supports three ways of applying patch sets: downloaded patches, +patches supplied within buildroot and patches located in a user-defined +global patch directory.

19.1. Providing patches

19.1.1. Downloaded

If it is necessary to apply a patch that is available for download, then add it +to the <packagename>_PATCH variable. If an entry contains ://, +then Buildroot will assume it is a full URL and download the patch +from this location. Otherwise, Buildroot will assume that the patch should be +downloaded from <packagename>_SITE. It can be a single patch, +or a tarball containing a patch series.

Like for all downloads, a hash should be added to the <packagename>.hash +file.

This method is typically used for packages from Debian.

19.1.2. Within Buildroot

Most patches are provided within Buildroot, in the package +directory; these typically aim to fix cross-compilation, libc support, +or other such issues.

These patch files should be named <number>-<description>.patch.

Notes

  • +The patch files coming with Buildroot should not contain any package version + reference in their filename. +
  • +The field <number> in the patch file name refers to the apply order, + and shall start at 1; It is preferred to pad the number with zeros up to 4 + digits, like git-format-patch does. E.g.: 0001-foobar-the-buz.patch +
  • +The patch email subject prefix shall not be numbered. Patches shall + be generated with the git format-patch -N command, since this + numbering is automatically added for series. For example, the patch + subject line should look like Subject: [PATCH] foobar the buz rather + than Subject: [PATCH n/m] foobar the buz. +
  • +Previously, it was mandatory for patches to be prefixed with the name of + the package, like <package>-<number>-<description>.patch, but that is + no longer the case. Existing packages will be fixed as time passes. Do + not prefix patches with the package name. +
  • +Previously, a series file, as used by quilt, could also be added in + the package directory. In that case, the series file defines the patch + application order. This is deprecated, and will be removed in the future. + Do not use a series file. +

19.1.3. Global patch directory

The BR2_GLOBAL_PATCH_DIR configuration file option can be +used to specify a space separated list of one or more directories +containing global package patches. See Section 9.8, “Adding project-specific patches†for +details.

19.2. How patches are applied

  1. +Run the <packagename>_PRE_PATCH_HOOKS commands if defined; +
  2. +Cleanup the build directory, removing any existing *.rej files; +
  3. +If <packagename>_PATCH is defined, then patches from these + tarballs are applied; +
  4. +If there are some *.patch files in the package’s Buildroot + directory or in a package subdirectory named <packageversion>, + then: +

    • +If a series file exists in the package directory, then patches are + applied according to the series file; +
    • +Otherwise, patch files matching *.patch are applied in alphabetical + order. + So, to ensure they are applied in the right order, it is highly + recommended to name the patch files like this: + <number>-<description>.patch, where <number> refers to the + apply order. +
  5. +If BR2_GLOBAL_PATCH_DIR is defined, the directories will be + enumerated in the order they are specified. The patches are applied + as described in the previous step. +
  6. +Run the <packagename>_POST_PATCH_HOOKS commands if defined. +

If something goes wrong in the steps 3 or 4, then the build fails.

19.3. Format and licensing of the package patches

Patches are released under the same license as the software they apply +to (see Section 13.2, “Complying with the Buildroot licenseâ€).

A message explaining what the patch does, and why it is needed, should +be added in the header commentary of the patch.

You should add a Signed-off-by statement in the header of the each +patch to help with keeping track of the changes and to certify that the +patch is released under the same license as the software that is modified.

If the software is under version control, it is recommended to use the +upstream SCM software to generate the patch set.

Otherwise, concatenate the header with the output of the +diff -purN package-version.orig/ package-version/ command.

If you update an existing patch (e.g. when bumping the package version), +make sure the existing From header and Signed-off-by tags are not +removed, but do update the rest of the patch comment when appropriate.

At the end, the patch should look like:

configure.ac: add C++ support test
+
+Signed-off-by: John Doe <john.doe@noname.org>
+
+--- configure.ac.orig
++++ configure.ac
+@@ -40,2 +40,12 @@
+
+AC_PROG_MAKE_SET
++
++AC_CACHE_CHECK([whether the C++ compiler works],
++               [rw_cv_prog_cxx_works],
++               [AC_LANG_PUSH([C++])
++                AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
++                               [rw_cv_prog_cxx_works=yes],
++                               [rw_cv_prog_cxx_works=no])
++                AC_LANG_POP([C++])])
++
++AM_CONDITIONAL([CXX_WORKS], [test "x$rw_cv_prog_cxx_works" = "xyes"])

19.4. Integrating patches found on the Web

When integrating a patch of which you are not the author, you have to +add a few things in the header of the patch itself.

Depending on whether the patch has been obtained from the project +repository itself, or from somewhere on the web, add one of the +following tags:

Backported from: <some commit id>

or

Fetch from: <some url>

It is also sensible to add a few words about any changes to the patch +that may have been necessary.

Chapter 20. Download infrastructure

TODO

Chapter 21. Debugging Buildroot

It is possible to instrument the steps Buildroot does when building +packages. Define the variable BR2_INSTRUMENTATION_SCRIPTS to contain +the path of one or more scripts (or other executables), in a +space-separated list, you want called before and after each step. The +scripts are called in sequence, with three parameters:

  • +start or end to denote the start (resp. the end) of a step; +
  • +the name of the step about to be started, or which just ended; +
  • +the name of the package. +

For example :

make BR2_INSTRUMENTATION_SCRIPTS="/path/to/my/script1 /path/to/my/script2"

The list of steps is:

  • +extract +
  • +patch +
  • +configure +
  • +build +
  • +install-host, when a host-package is installed in $(HOST_DIR) +
  • +install-target, when a target-package is installed in $(TARGET_DIR) +
  • +install-staging, when a target-package is installed in $(STAGING_DIR) +
  • +install-image, when a target-package installs files in $(BINARIES_DIR) +

The script has access to the following variables:

  • +BR2_CONFIG: the path to the Buildroot .config file +
  • +HOST_DIR, STAGING_DIR, TARGET_DIR: see + Section 18.6.2, “generic-package reference†+
  • +BUILD_DIR: the directory where packages are extracted and built +
  • +BINARIES_DIR: the place where all binary files (aka images) are + stored +
  • +BASE_DIR: the base output directory +

Chapter 22. Contributing to Buildroot

There are many ways in which you can contribute to Buildroot: analyzing +and fixing bugs, analyzing and fixing package build failures detected by +the autobuilders, testing and reviewing patches sent by other +developers, working on the items in our TODO list and sending your own +improvements to Buildroot or its manual. The following sections give a +little more detail on each of these items.

If you are interested in contributing to Buildroot, the first thing you +should do is to subscribe to the Buildroot mailing list. This list is +the main way of interacting with other Buildroot developers and to send +contributions to. If you aren’t subscribed yet, then refer to +Chapter 5, Community resources for the subscription link.

If you are going to touch the code, it is highly recommended to use a +git repository of Buildroot, rather than starting from an extracted +source code tarball. Git is the easiest way to develop from and directly +send your patches to the mailing list. Refer to Chapter 3, Getting Buildroot +for more information on obtaining a Buildroot git tree.

22.1. Reproducing, analyzing and fixing bugs

A first way of contributing is to have a look at the open bug reports in +the Buildroot bug +tracker. As we strive to keep the bug count as small as possible, all +help in reproducing, analyzing and fixing reported bugs is more than +welcome. Don’t hesitate to add a comment to bug reports reporting your +findings, even if you don’t yet see the full picture.

22.2. Analyzing and fixing autobuild failures

The Buildroot autobuilders are a set of build machines that continuously +run Buildroot builds based on random configurations. This is done for +all architectures supported by Buildroot, with various toolchains, and +with a random selection of packages. With the large commit activity on +Buildroot, these autobuilders are a great help in detecting problems +very early after commit.

All build results are available at http://autobuild.buildroot.org, +statistics are at http://autobuild.buildroot.org/stats.php. Every day, +an overview of all failed packages is sent to the mailing list.

Detecting problems is great, but obviously these problems have to be +fixed as well. Your contribution is very welcome here! There are +basically two things that can be done:

  • +Analyzing the problems. The daily summary mails do not contain details + about the actual failures: in order to see what’s going on you have to + open the build log and check the last output. Having someone doing + this for all packages in the mail is very useful for other developers, + as they can make a quick initial analysis based on this output alone. +
  • +Fixing a problem. When fixing autobuild failures, you should follow + these steps: +

    1. +Check if you can reproduce the problem by building with the same + configuration. You can do this manually, or use the + br-reproduce-build + script that will automatically clone a Buildroot git repository, + checkout the correct revision, download and set the right + configuration, and start the build. +
    2. +Analyze the problem and create a fix. +
    3. +Verify that the problem is really fixed by starting from a clean + Buildroot tree and only applying your fix. +
    4. +Send the fix to the Buildroot mailing list (see + Section 22.5, “Submitting patchesâ€). In case you created a patch against the + package sources, you should also send the patch upstream so that the + problem will be fixed in a later release, and the patch in Buildroot + can be removed. + In the commit message of a patch fixing an autobuild failure, add a + reference to the build result directory, as follows: +
Fixes: http://autobuild.buildroot.org/results/51000a9d4656afe9e0ea6f07b9f8ed374c2e4069

22.3. Reviewing and testing patches

With the amount of patches sent to the mailing list each day, the +maintainer has a very hard job to judge which patches are ready to apply +and which ones aren’t. Contributors can greatly help here by reviewing +and testing these patches.

In the review process, do not hesitate to respond to patch submissions +for remarks, suggestions or anything that will help everyone to +understand the patches and make them better. Please use internet +style replies in plain text emails when responding to patch +submissions.

To indicate approval of a patch, there are three formal tags that keep +track of this approval. To add your tag to a patch, reply to it with the +approval tag below the original author’s Signed-off-by line. These tags +will be picked up automatically by patchwork (see +Section 22.3.1, “Applying Patches from Patchworkâ€) and will be part of the commit log when +the patch is accepted.

+Tested-by +
+Indicates that the patch has been tested successfully. + You are encouraged to specify what kind of testing you performed + (compile-test on architecture X and Y, runtime test on target A, + …). This additional information helps other testers and the + maintainer. +
+Reviewed-by +
+Indicates that you code-reviewed the patch and did your + best in spotting problems, but you are not sufficiently familiar with + the area touched to provide an Acked-by tag. This means that there + may be remaining problems in the patch that would be spotted by + someone with more experience in that area. Should such problems be + detected, your Reviewed-by tag remains appropriate and you cannot + be blamed. +
+Acked-by +
+Indicates that you code-reviewed the patch and you are + familiar enough with the area touched to feel that the patch can be + committed as-is (no additional changes required). In case it later + turns out that something is wrong with the patch, your Acked-by could + be considered inappropriate. The difference between Acked-by and + Reviewed-by is thus mainly that you are prepared to take the blame on + Acked patches, but not on Reviewed ones. +

If you reviewed a patch and have comments on it, you should simply reply +to the patch stating these comments, without providing a Reviewed-by or +Acked-by tag. These tags should only be provided if you judge the patch +to be good as it is.

It is important to note that neither Reviewed-by nor Acked-by imply +that testing has been performed. To indicate that you both reviewed and +tested the patch, provide two separate tags (Reviewed/Acked-by and +Tested-by).

Note also that any developer can provide Tested/Reviewed/Acked-by +tags, without exception, and we encourage everyone to do this. Buildroot +does not have a defined group of core developers, it just so happens +that some developers are more active than others. The maintainer will +value tags according to the track record of their submitter. Tags +provided by a regular contributor will naturally be trusted more than +tags provided by a newcomer. As you provide tags more regularly, your +trustworthiness (in the eyes of the maintainer) will go up, but any +tag provided is valuable.

Buildroot’s Patchwork website can be used to pull in patches for testing +purposes. Please see Section 22.3.1, “Applying Patches from Patchwork†for more +information on using Buildroot’s Patchwork website to apply patches.

22.3.1. Applying Patches from Patchwork

The main use of Buildroot’s Patchwork website for a developer is for +pulling in patches into their local git repository for testing +purposes.

When browsing patches in the patchwork management interface, an mbox +link is provided at the top of the page. Copy this link address and +run the following commands:

$ git checkout -b <test-branch-name>
+$ wget -O - <mbox-url> | git am

Another option for applying patches is to create a bundle. A bundle is +a set of patches that you can group together using the patchwork +interface. Once the bundle is created and the bundle is made public, +you can copy the mbox link for the bundle and apply the bundle +using the above commands.

22.4. Work on items from the TODO list

If you want to contribute to Buildroot but don’t know where to start, +and you don’t like any of the above topics, you can always work on items +from the Buildroot TODO list. +Don’t hesitate to discuss an item first on the mailing list or on IRC. +Do edit the wiki to indicate when you start working on an item, so we +avoid duplicate efforts.

22.5. Submitting patches

Note

Please, do not attach patches to bugs, send them to the mailing list +instead.

If you made some changes to Buildroot and you would like to contribute +them to the Buildroot project, proceed as follows.

22.5.1. The formatting of a patch

We expect patches to be formatted in a specific way. This is necessary +to make it easy to review patches, to be able to apply them easily to +the git repository, to make it easy to find back in the history how +and why things have changed, and to make it possible to use git +bisect to locate the origin of a problem.

First of all, it is essential that the patch has a good commit +message. The commit message should start with a separate line with a +brief summary of the change, prefixed by the area touched by the +patch. A few examples of good commit titles:

  • +package/linuxptp: bump version to 2.0 +
  • +configs/imx23evk: bump Linux version to 4.19 +
  • +package/pkg-generic: postpone evaluation of dependency conditions +
  • +boot/uboot: needs host-{flex,bison} +
  • +support/testing: add python-ubjson tests +

The description that follows the prefix should start with a lower case +letter (i.e "bump", "needs", "postpone", "add" in the above examples).

Second, the body of the commit message should describe why this +change is needed, and if necessary also give details about how it +was done. When writing the commit message, think of how the reviewers +will read it, but also think about how you will read it when you look +at this change again a few years down the line.

Third, the patch itself should do only one change, but do it +completely. Two unrelated or weakly related changes should usually be +done in two separate patches. This usually means that a patch affects +only a single package. If several changes are related, it is often +still possible to split them up in small patches and apply them in a +specific order. Small patches make it easier to review, and often +make it easier to understand afterwards why a change was done. +However, each patch must be complete. It is not allowed that the +build is broken when only the first but not the second patch is +applied. This is necessary to be able to use git bisect afterwards.

Of course, while you’re doing your development, you’re probably going +back and forth between packages, and certainly not committing things +immediately in a way that is clean enough for submission. So most +developers rewrite the history of commits to produce a clean set of +commits that is appropriate for submission. To do this, you need to +use interactive rebasing. You can learn about it +in the Pro +Git book. Sometimes, it is even easier to discard you history with +git reset --soft origin/master and select individual changes with +git add -i or git add -p.

Finally, the patch should be signed off. This is done by adding +Signed-off-by: Your Real Name <your@email.address> at the end of the +commit message. git commit -s does that for you, if configured +properly. The Signed-off-by tag means that you publish the patch +under the Buildroot license (i.e. GPL-2.0+, except for package patches, +which have the upstream license), and that you are allowed to do so. +See the Developer Certificate of +Origin for details.

When adding new packages, you should submit every package in a +separate patch. This patch should have the update to +package/Config.in, the package Config.in file, the .mk file, the +.hash file, any init script, and all package patches. If the package +has many sub-options, these are sometimes better added as separate +follow-up patches. The summary line should be something like +<packagename>: new package. The body of the commit message can be +empty for simple packages, or it can contain the description of the +package (like the Config.in help text). If anything special has to be +done to build the package, this should also be explained explicitly in +the commit message body.

When you bump a package to a new version, you should also submit a +separate patch for each package. Don’t forget to update the .hash +file, or add it if it doesn’t exist yet. Also don’t forget to check if +the _LICENSE and _LICENSE_FILES are still valid. The summary line +should be something like <packagename>: bump to version <new +version>. If the new version only contains security updates compared +to the existing one, the summary should be <packagename>: security +bump to version <new version> and the commit message body should show +the CVE numbers that are fixed. If some package patches can be removed +in the new version, it should be explained explicitly why they can be +removed, preferably with the upstream commit ID. Also any other +required changes should be explained explicitly, like configure +options that no longer exist or are no longer needed.

If you are interested in getting notified of build failures and of +further changes in the packages you added or modified, please add +yourself to the DEVELOPERS file. This should be done in the same patch +creating or modifying the package. See the DEVELOPERS file +for more information.

Buildroot provides a handy tool to check for common coding style +mistakes on files you created or modified, called check-package (see +Section 18.25.2, “How to check the coding style†for more information).

22.5.2. Preparing a patch series

Starting from the changes committed in your local git view, rebase +your development branch on top of the upstream tree before generating +a patch set. To do so, run:

$ git fetch --all --tags
+$ git rebase origin/master

Now, you are ready to generate then submit your patch set.

To generate it, run:

$ git format-patch -M -n -s -o outgoing origin/master

This will generate patch files in the outgoing subdirectory, +automatically adding the Signed-off-by line.

Once patch files are generated, you can review/edit the commit message +before submitting them, using your favorite text editor.

Buildroot provides a handy tool to know to whom your patches should be +sent, called get-developers (see Chapter 23, DEVELOPERS file and get-developers for more +information). This tool reads your patches and outputs the appropriate +git send-email command to use:

$ ./utils/get-developers outgoing/*

Use the output of get-developers to send your patches:

$ git send-email --to buildroot@buildroot.org --cc bob --cc alice outgoing/*

Alternatively, get-developers -e can be used directly with the +--cc-cmd argument to git send-email to automatically CC the +affected developers:

$ git send-email --to buildroot@buildroot.org \
+      --cc-cmd './utils/get-developers -e' origin/master

git can be configured to automatically do this out of the box with:

$ git config sendemail.to buildroot@buildroot.org
+$ git config sendemail.ccCmd "$(pwd)/utils/get-developers -e"

And then just do:

$ git send-email origin/master

Note that git should be configured to use your mail account. +To configure git, see man git-send-email or google it.

If you do not use git send-email, make sure posted patches are not +line-wrapped, otherwise they cannot easily be applied. In such a case, +fix your e-mail client, or better yet, learn to use git send-email.

22.5.3. Cover letter

If you want to present the whole patch set in a separate mail, add +--cover-letter to the git format-patch command (see man +git-format-patch for further information). This will generate a +template for an introduction e-mail to your patch series.

A cover letter may be useful to introduce the changes you propose +in the following cases:

  • +large number of commits in the series; +
  • +deep impact of the changes in the rest of the project; +
  • +RFC [4]; +
  • +whenever you feel it will help presenting your work, your choices, + the review process, etc. +

22.5.4. Patches for maintenance branches

When fixing bugs on a maintenance branch, bugs should be fixed on the +master branch first. The commit log for such a patch may then contain a +post-commit note specifying what branches are affected:

package/foo: fix stuff
+
+Signed-off-by: Your Real Name <your@email.address>
+---
+Backport to: 2020.02.x, 2020.05.x
+(2020.08.x not affected as the version was bumped)

Those changes will then be backported by a maintainer to the affected +branches.

However, some bugs may apply only to a specific release, for example +because it is using an older version of a package. In that case, patches +should be based off the maintenance branch, and the patch subject prefix +must include the maintenance branch name (for example "[PATCH 2020.02.x]"). +This can be done with the git format-patch flag --subject-prefix:

$ git format-patch --subject-prefix "PATCH 2020.02.x" \
+    -M -s -o outgoing origin/2020.02.x

Then send the patches with git send-email, as described above.

22.5.5. Patch revision changelog

When improvements are requested, the new revision of each commit +should include a changelog of the modifications between each +submission. Note that when your patch series is introduced by a cover +letter, an overall changelog may be added to the cover letter in +addition to the changelog in the individual commits. +The best thing to rework a patch series is by interactive rebasing: +git rebase -i origin/master. Consult the git manual for more +information.

When added to the individual commits, this changelog is added when +editing the commit message. Below the Signed-off-by section, add +--- and your changelog.

Although the changelog will be visible for the reviewers in the mail +thread, as well as in +patchwork, git +will automatically ignores lines below --- when the patch will be +merged. This is the intended behavior: the changelog is not meant to +be preserved forever in the git history of the project.

Hereafter the recommended layout:

Patch title: short explanation, max 72 chars
+
+A paragraph that explains the problem, and how it manifests itself. If
+the problem is complex, it is OK to add more paragraphs. All paragraphs
+should be wrapped at 72 characters.
+
+A paragraph that explains the root cause of the problem. Again, more
+than one paragraph is OK.
+
+Finally, one or more paragraphs that explain how the problem is solved.
+Don't hesitate to explain complex solutions in detail.
+
+Signed-off-by: John DOE <john.doe@example.net>
+
+---
+Changes v2 -> v3:
+  - foo bar  (suggested by Jane)
+  - bar buz
+
+Changes v1 -> v2:
+  - alpha bravo  (suggested by John)
+  - charly delta

Any patch revision should include the version number. The version number +is simply composed of the letter v followed by an integer greater or +equal to two (i.e. "PATCH v2", "PATCH v3" …).

This can be easily handled with git format-patch by using the option +--subject-prefix:

$ git format-patch --subject-prefix "PATCH v4" \
+    -M -s -o outgoing origin/master

Since git version 1.8.1, you can also use -v <n> (where <n> is the +version number):

$ git format-patch -v4 -M -s -o outgoing origin/master

When you provide a new version of a patch, please mark the old one as +superseded in +patchwork. You +need to create an account on +patchwork to be +able to modify the status of your patches. Note that you can only change +the status of patches you submitted yourself, which means the email +address you register in +patchwork should +match the one you use for sending patches to the mailing list.

You can also add the --in-reply-to <message-id> option when +submitting a patch to the mailing list. The id of the mail to reply to +can be found under the "Message Id" tag on +patchwork. The +advantage of in-reply-to is that patchwork will automatically mark +the previous version of the patch as superseded.

22.6. Reporting issues/bugs or getting help

Before reporting any issue, please check in +the mailing list archive whether someone has +already reported and/or fixed a similar problem.

However you choose to report bugs or get help, either by +opening a bug in the bug tracker or by +sending a mail to the mailing list, there are +a number of details to provide in order to help people reproduce and +find a solution to the issue.

Try to think as if you were trying to help someone else; in +that case, what would you need?

Here is a short list of details to provide in such case:

  • +host machine (OS/release) +
  • +version of Buildroot +
  • +target for which the build fails +
  • +package(s) for which the build fails +
  • +the command that fails and its output +
  • +any information you think that may be relevant +

Additionally, you should add the .config file (or if you know how, a +defconfig; see Section 9.3, “Storing the Buildroot configurationâ€).

If some of these details are too large, do not hesitate to use a +pastebin service. Note that not all available pastebin services will +preserve Unix-style line terminators when downloading raw pastes. +Following pastebin services are known to work correctly: +- https://gist.github.com/ +- http://code.bulix.org/

22.7. Using the runtime tests framework

Buildroot includes a run-time testing framework built upon Python +scripting and QEMU runtime execution. The goals of the framework are +the following:

  • +build a well defined Buildroot configuration +
  • +optionally, verify some properties of the build output +
  • +optionally, boot the build results under Qemu, and verify that a + given feature is working as expected +

The entry point to use the runtime tests framework is the +support/testing/run-tests tool, which has a series of options +documented in the tool’s help -h description. Some common options +include setting the download folder, the output folder, keeping build +output, and for multiple test cases, you can set the JLEVEL for each.

Here is an example walk through of running a test case.

  • +For a first step, let us see what all the test case options are. The test +cases can be listed by executing support/testing/run-tests -l. These tests +can all be run individually during test development from the console. Both +one at a time and selectively as a group of a subset of tests. +
$ support/testing/run-tests -l
+List of tests
+test_run (tests.utils.test_check_package.TestCheckPackage)
+test_run (tests.toolchain.test_external.TestExternalToolchainBuildrootMusl) ... ok
+test_run (tests.toolchain.test_external.TestExternalToolchainBuildrootuClibc) ... ok
+test_run (tests.toolchain.test_external.TestExternalToolchainCCache) ... ok
+test_run (tests.toolchain.test_external.TestExternalToolchainCtngMusl) ... ok
+test_run (tests.toolchain.test_external.TestExternalToolchainLinaroArm) ... ok
+test_run (tests.toolchain.test_external.TestExternalToolchainSourceryArmv4) ... ok
+test_run (tests.toolchain.test_external.TestExternalToolchainSourceryArmv5) ... ok
+test_run (tests.toolchain.test_external.TestExternalToolchainSourceryArmv7) ... ok
+[snip]
+test_run (tests.init.test_systemd.TestInitSystemSystemdRoFull) ... ok
+test_run (tests.init.test_systemd.TestInitSystemSystemdRoIfupdown) ... ok
+test_run (tests.init.test_systemd.TestInitSystemSystemdRoNetworkd) ... ok
+test_run (tests.init.test_systemd.TestInitSystemSystemdRwFull) ... ok
+test_run (tests.init.test_systemd.TestInitSystemSystemdRwIfupdown) ... ok
+test_run (tests.init.test_systemd.TestInitSystemSystemdRwNetworkd) ... ok
+test_run (tests.init.test_busybox.TestInitSystemBusyboxRo) ... ok
+test_run (tests.init.test_busybox.TestInitSystemBusyboxRoNet) ... ok
+test_run (tests.init.test_busybox.TestInitSystemBusyboxRw) ... ok
+test_run (tests.init.test_busybox.TestInitSystemBusyboxRwNet) ... ok
+
+Ran 157 tests in 0.021s
+
+OK
  • +Then, to run one test case: +
$ support/testing/run-tests -d dl -o output_folder -k tests.init.test_busybox.TestInitSystemBusyboxRw
+15:03:26 TestInitSystemBusyboxRw                  Starting
+15:03:28 TestInitSystemBusyboxRw                  Building
+15:08:18 TestInitSystemBusyboxRw                  Building done
+15:08:27 TestInitSystemBusyboxRw                  Cleaning up
+.
+Ran 1 test in 301.140s
+
+OK

The standard output indicates if the test is successful or not. By +default, the output folder for the test is deleted automatically +unless the option -k is passed to keep the output directory.

22.7.1. Creating a test case

Within the Buildroot repository, the testing framework is organized at the +top level in support/testing/ by folders of conf, infra and tests. +All the test cases live under the tests folder and are organized in various +folders representing the category of test.

The best way to get familiar with how to create a test case is to look +at a few of the basic file system support/testing/tests/fs/ and init +support/testing/tests/init/ test scripts. Those tests give good +examples of a basic tests that include both checking the build +results, and doing runtime tests. There are other more advanced cases +that use things like nested br2-external folders to provide +skeletons and additional packages.

Creating a basic test case involves:

  • +Defining a test class that inherits from infra.basetest.BRTest +
  • +Defining the config member of the test class, to the Buildroot + configuration to build for this test case. It can optionally rely on + configuration snippets provided by the runtime test infrastructure: + infra.basetest.BASIC_TOOLCHAIN_CONFIG to get a basic + architecture/toolchain configuration, and + infra.basetest.MINIMAL_CONFIG to not build any filesystem. The + advantage of using infra.basetest.BASIC_TOOLCHAIN_CONFIG is that a + matching Linux kernel image is provided, which allows to boot the + resulting image in Qemu without having to build a Linux kernel image + as part of the test case, therefore significant decreasing the build + time required for the test case. +
  • +Implementing a def test_run(self): function to implement the + actual tests to run after the build has completed. They may be tests + that verify the build output, by running command on the host using + the run_cmd_on_host() helper function. Or they may boot the + generated system in Qemu using the Emulator object available as + self.emulator in the test case. For example self.emulator.boot() + allows to boot the system in Qemu, self.emulator.login() allows to + login, self.emulator.run() allows to run shell commands inside + Qemu. +

After creating the test script, add yourself to the DEVELOPERS file to +be the maintainer of that test case.

22.7.2. Debugging a test case

When a test case runs, the output_folder will contain the following:

$ ls output_folder/
+TestInitSystemBusyboxRw/
+TestInitSystemBusyboxRw-build.log
+TestInitSystemBusyboxRw-run.log

TestInitSystemBusyboxRw/ is the Buildroot output directory, and it +is preserved only if the -k option is passed.

TestInitSystemBusyboxRw-build.log is the log of the Buildroot build.

TestInitSystemBusyboxRw-run.log is the log of the Qemu boot and +test. This file will only exist if the build was successful and the +test case involves booting under Qemu.

If you want to manually run Qemu to do manual tests of the build +result, the first few lines of TestInitSystemBusyboxRw-run.log +contain the Qemu command line to use.

You can also make modifications to the current sources inside the +output_folder (e.g. for debug purposes) and rerun the standard +Buildroot make targets (in order to regenerate the complete image with +the new modifications) and then rerun the test.

22.7.3. Runtime tests and Gitlab CI

All runtime tests are regularly executed by Buildroot Gitlab CI +infrastructure, see .gitlab.yml and +https://gitlab.com/buildroot.org/buildroot/-/jobs.

You can also use Gitlab CI to test your new test cases, or verify that +existing tests continue to work after making changes in Buildroot.

In order to achieve this, you need to create a fork of the Buildroot +project on Gitlab, and be able to push branches to your Buildroot fork +on Gitlab.

The name of the branch that you push will determine if a Gitlab CI +pipeline will be triggered or not, and for which test cases.

In the examples below, the <name> component of the branch name is an +arbitrary string you choose.

  • +To trigger all run-test test case jobs, push a branch that ends with + -runtime-tests: +
 $ git push gitlab HEAD:<name>-runtime-tests
  • +To trigger one or several test case jobs, push a branch that ends + with the complete test case name + (tests.init.test_busybox.TestInitSystemBusyboxRo) or with the name + of a category of tests (tests.init.test_busybox): +
 $ git push gitlab HEAD:<name>-<test case name>

Example to run one test:

 $ git push gitlab HEAD:foo-tests.init.test_busybox.TestInitSystemBusyboxRo

Examples to run several tests part of the same group:

 $ git push gitlab HEAD:foo-tests.init.test_busybox
+ $ git push gitlab HEAD:foo-tests.init


[4] RFC: (Request for comments) change proposal

Chapter 23. DEVELOPERS file and get-developers

The main Buildroot directory contains a file named DEVELOPERS that +lists the developers involved with various areas of Buildroot. Thanks +to this file, the get-developers tool allows to:

  • +Calculate the list of developers to whom patches should be sent, by + parsing the patches and matching the modified files with the + relevant developers. See Section 22.5, “Submitting patches†for details. +
  • +Find which developers are taking care of a given architecture or + package, so that they can be notified when a build failure occurs on + this architecture or package. This is done in interaction with + Buildroot’s autobuild infrastructure. +

We ask developers adding new packages, new boards, or generally new +functionality in Buildroot, to register themselves in the DEVELOPERS +file. As an example, we expect a developer contributing a new package +to include in his patch the appropriate modification to the +DEVELOPERS file.

The DEVELOPERS file format is documented in detail inside the file +itself.

The get-developers tool, located in utils/ allows to use +the DEVELOPERS file for various tasks:

  • +When passing one or several patches as command line argument, + get-developers will return the appropriate git send-email + command. If the -e option is passed, only the email addresses are + printed in a format suitable for git send-email --cc-cmd. +
  • +When using the -a <arch> command line option, get-developers will + return the list of developers in charge of the given architecture. +
  • +When using the -p <package> command line option, get-developers + will return the list of developers in charge of the given package. +
  • +When using the -c command line option, get-developers will look + at all files under version control in the Buildroot repository, and + list the ones that are not handled by any developer. The purpose of + this option is to help completing the DEVELOPERS file. +
  • +When using the -v command line option, it validates the integrity + of the DEVELOPERS file and will note WARNINGS for items that don’t + match. +

Chapter 24. Release Engineering

24.1. Releases

The Buildroot project makes quarterly releases with monthly bugfix +releases. The first release of each year is a long term support +release, LTS.

  • +Quarterly releases: 2020.02, 2020.05, 2020.08, and 2020.11 +
  • +Bugfix releases: 2020.02.1, 2020.02.2, … +
  • +LTS releases: 2020.02, 2021.02, … +

Releases are supported until the first bugfix release of the next +release, e.g., 2020.05.x is EOL when 2020.08.1 is released.

LTS releases are supported until the first bugfix release of the next +LTS, e.g., 2020.02.x is supported until 2021.02.1 is released.

24.2. Development

Each release cycle consist of two months of development on the master +branch and one month stabilization before the release is made. During +this phase no new features are added to master, only bugfixes.

The stabilization phase starts with tagging -rc1, and every week until +the release, another release candidate is tagged.

To handle new features and version bumps during the stabilization phase, +a next branch may be created for these features. Once the current +release has been made, the next branch is merged into master and +the development cycle for the next release continues there.

Part IV. Appendix

Chapter 25. Makedev syntax documentation

The makedev syntax is used in several places in Buildroot to +define changes to be made for permissions, or which device files to +create and how to create them, in order to avoid calls to mknod.

This syntax is derived from the makedev utility, and more complete +documentation can be found in the package/makedevs/README file.

It takes the form of a space separated list of fields, one file per +line; the fields are:

name

type

mode

uid

gid

major

minor

start

inc

count

There are a few non-trivial blocks:

  • +name is the path to the file you want to create/modify +
  • +type is the type of the file, being one of: +

    • +f: a regular file +
    • +d: a directory +
    • +r: a directory recursively +
    • +c: a character device file +
    • +b: a block device file +
    • +p: a named pipe +
  • +mode are the usual permissions settings (only numerical values + are allowed) +
  • +uid and gid are the UID and GID to set on this file; can be + either numerical values or actual names +
  • +major and minor are here for device files, set to - for other + files +
  • +start, inc and count are for when you want to create a batch + of files, and can be reduced to a loop, beginning at start, + incrementing its counter by inc until it reaches count +

Let’s say you want to change the permissions of a given file; using +this syntax, you will need to write:

/usr/bin/foo f 755 0 0 - - - - -
+/usr/bin/bar f 755 root root - - - - -
+/data/buz f 644 buz-user buz-group - - - - -

Alternatively, if you want to change owner/permission of a directory +recursively, you can write (to set UID to foo, GID to bar and access +rights to rwxr-x--- for the directory /usr/share/myapp and all files +and directories below it):

/usr/share/myapp r 750 foo bar - - - - -

On the other hand, if you want to create the device file /dev/hda +and the corresponding 15 files for the partitions, you will need for +/dev/hda:

/dev/hda b 640 root root 3 0 0 0 -

and then for device files corresponding to the partitions of +/dev/hda, /dev/hdaX, X ranging from 1 to 15:

/dev/hda b 640 root root 3 1 1 1 15

Extended attributes are supported if +BR2_ROOTFS_DEVICE_TABLE_SUPPORTS_EXTENDED_ATTRIBUTES is enabled. +This is done by adding a line starting with |xattr after +the line describing the file. Right now, only capability +is supported as extended attribute.

|xattr

capability

  • +|xattr is a "flag" that indicate an extended attribute +
  • +capability is a capability to add to the previous file +

If you want to add the capability cap_sys_admin to the binary foo, +you will write :

/usr/bin/foo f 755 root root - - - - -
+|xattr cap_sys_admin+eip

You can add several capabilities to a file by using several |xattr lines. +If you want to add the capability cap_sys_admin and cap_net_admin to the +binary foo, you will write :

/usr/bin/foo f 755 root root - - - - -
+|xattr cap_sys_admin+eip
+|xattr cap_net_admin+eip

Chapter 26. Makeusers syntax documentation

The syntax to create users is inspired by the makedev syntax, above, but +is specific to Buildroot.

The syntax for adding a user is a space-separated list of fields, one +user per line; the fields are:

username

uid

group

gid

password

home

shell

groups

comment

Where:

  • +username is the desired user name (aka login name) for the user. + It can not be root, and must be unique. If set to -, then just a + group will be created. +
  • +uid is the desired UID for the user. It must be unique, and not + 0. If set to -1 or -2, then a unique UID will be computed by + Buildroot, with -1 denoting a system UID from [100…999] and -2 + denoting a user UID from [1000…1999]. +
  • +group is the desired name for the user’s main group. It can not + be root. If the group does not exist, it will be created. +
  • +gid is the desired GID for the user’s main group. It must be unique, + and not 0. If set to -1 or -2, and the group does not already + exist, then a unique GID will be computed by Buildroot, with -1 + denoting a system GID from [100…999] and -2 denoting a user GID + from [1000…1999]. +
  • +password is the crypt(3)-encoded password. If prefixed with !, + then login is disabled. If prefixed with =, then it is interpreted + as clear-text, and will be crypt-encoded (using MD5). If prefixed with + !=, then the password will be crypt-encoded (using MD5) and login + will be disabled. If set to *, then login is not allowed. If set to + -, then no password value will be set. +
  • +home is the desired home directory for the user. If set to -, no + home directory will be created, and the user’s home will be /. + Explicitly setting home to / is not allowed. +
  • +shell is the desired shell for the user. If set to -, then + /bin/false is set as the user’s shell. +
  • +groups is the comma-separated list of additional groups the user + should be part of. If set to -, then the user will be a member of + no additional group. Missing groups will be created with an arbitrary + gid. +
  • +comment (aka GECOS + field) is an almost-free-form text. +

There are a few restrictions on the content of each field:

  • +except for comment, all fields are mandatory. +
  • +except for comment, fields may not contain spaces. +
  • +no field may contain a colon (:). +

If home is not -, then the home directory, and all files below, +will belong to the user and its main group.

Examples:

foo -1 bar -1 !=blabla /home/foo /bin/sh alpha,bravo Foo user

This will create this user:

  • +username (aka login name) is: foo +
  • +uid is computed by Buildroot +
  • +main group is: bar +
  • +main group gid is computed by Buildroot +
  • +clear-text password is: blabla, will be crypt(3)-encoded, and login is disabled. +
  • +home is: /home/foo +
  • +shell is: /bin/sh +
  • +foo is also a member of groups: alpha and bravo +
  • +comment is: Foo user +
test 8000 wheel -1 = - /bin/sh - Test user

This will create this user:

  • +username (aka login name) is: test +
  • +uid is : 8000 +
  • +main group is: wheel +
  • +main group gid is computed by Buildroot, and will use the value defined in the rootfs skeleton +
  • +password is empty (aka no password). +
  • +home is / but will not belong to test +
  • +shell is: /bin/sh +
  • +test is not a member of any additional groups +
  • +comment is: Test user +

26.1. Caveat with automatic UIDs and GIDs

When updating buildroot or when packages are added or removed to/from +the configuration, it is possible that the automatic UIDs and GIDs are +changed. This can be a problem if persistent files were created with +that user or group: after upgrade, they will suddenly have a different +owner.

Therefore, it is advisable to perpetuate the automatic IDs. This can be +done by adding a users table with the generated IDs. It is only needed +to do this for UIDs that actually create persistent files, e.g. database.

Chapter 27. Migrating from older Buildroot versions

Some versions have introduced backward incompatibilities. This section +explains those incompatibilities, and for each explains what to do to +complete the migration.

27.1. General approach

To migrate from an older Buildroot version, take the following steps.

  1. +For all your configurations, do a build in the old Buildroot + environment. Run make graph-size. Save + graphs/file-size-stats.csv in a different location. Run make + clean to remove the rest. +
  2. +Review the specific migration notes below and make the required + adaptations to external packages and custom build scripts. +
  3. +Update Buildroot. +
  4. +Run make menuconfig starting from the existing .config. +
  5. +If anything is enabled in the Legacy menu, check its help text, + unselect it, and save the configuration. +
  6. +For more details, review the git commit messages for the packages that + you need. Change into the packages directory and run + git log <old version>.. — <your packages>. +
  7. +Build in the new Buildroot environment. +
  8. +Fix build issues in external packages (usually due to updated + dependencies). +
  9. +Run make graph-size. +
  10. +Compare the new file-size-stats.csv with the original one, to + check if no required files have disappeared and if no new big unneeded + files have appeared. +
  11. +For configuration (and other) files in a custom overlay that overwrite + files created by Buildroot, check if there are changes in the + Buildroot-generated file that need to be propagated to your custom + file. +

27.2. Migrating to 2016.11

Before Buildroot 2016.11, it was possible to use only one br2-external +tree at once. With Buildroot 2016.11 came the possibility to use more +than one simultaneously (for details, see Section 9.2, “Keeping customizations outside of Buildrootâ€).

This however means that older br2-external trees are not usable as-is. +A minor change has to be made: adding a name to your br2-external tree.

This can be done very easily in just a few steps:

  • +First, create a new file named external.desc, at the root of your + br2-external tree, with a single line defining the name of your + br2-external tree: +

    $ echo 'name: NAME_OF_YOUR_TREE' >external.desc

    Note. Be careful when choosing a name: It has to be unique and be made +with only ASCII characters from the set [A-Za-z0-9_].

  • +Then, change every occurence of BR2_EXTERNAL in your br2-external + tree with the new variable: +

    $ find . -type f | xargs sed -i 's/BR2_EXTERNAL/BR2_EXTERNAL_NAME_OF_YOUR_TREE_PATH/g'

Now, your br2-external tree can be used with Buildroot 2016.11 onward.

Note: This change makes your br2-external tree incompatible with Buildroot +before 2016.11.

27.3. Migrating to 2017.08

Before Buildroot 2017.08, host packages were installed in $(HOST_DIR)/usr +(with e.g. the autotools' --prefix=$(HOST_DIR)/usr). With Buildroot +2017.08, they are now installed directly in $(HOST_DIR).

Whenever a package installs an executable that is linked with a library +in $(HOST_DIR)/lib, it must have an RPATH pointing to that directory.

An RPATH pointing to $(HOST_DIR)/usr/lib is no longer accepted.

\ No newline at end of file diff --git a/docs/manual/manual.mk b/docs/manual/manual.mk new file mode 100644 index 000000000..1d03b213d --- /dev/null +++ b/docs/manual/manual.mk @@ -0,0 +1,10 @@ +################################################################################ +# +# The Buildroot manual +# +################################################################################ + +MANUAL_SOURCES = $(sort $(wildcard docs/manual/*.txt) $(wildcard docs/images/*)) +MANUAL_RESOURCES = $(TOPDIR)/docs/images + +$(eval $(call asciidoc-document)) diff --git a/docs/manual/manual.pdf b/docs/manual/manual.pdf new file mode 100644 index 0000000000000000000000000000000000000000..abecb26697e782b389a97b1a2c1313fd0d755e76 GIT binary patch literal 612867 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
gu<@CrchuZ#(qz0+dT!?>tvq+ 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