├── br2_external ├── package │ ├── .gitkeep │ ├── aether-x6100-control │ │ ├── Config.in │ │ └── aether-x6100-control.mk │ └── panel-jinglitai-jlt4013a │ │ ├── Config.in │ │ └── panel-jinglitai-jlt4013a.mk ├── external.mk ├── Config.in ├── external.desc ├── board │ └── X6100 │ │ ├── u-boot │ │ ├── boot.cmd │ │ └── sun8i-r16-x6100_defconfig │ │ ├── linux │ │ ├── rootfs-overlay │ │ │ └── etc │ │ │ │ ├── init.d │ │ │ │ ├── S99-fb-cursor │ │ │ │ ├── S21-run-embiggen │ │ │ │ ├── S20-init-panel │ │ │ │ ├── S20-wifi-gpio │ │ │ │ ├── S50-pulseaudio │ │ │ │ └── S50-amixer │ │ │ │ ├── asound.conf │ │ │ │ ├── pulse │ │ │ │ └── system.pa │ │ │ │ └── ssh │ │ │ │ └── sshd_config │ │ └── sun8i-r16-x6100_defconfig │ │ ├── genimage.cfg │ │ ├── patches │ │ └── embiggen-disk │ │ │ └── 0001-deep-discovery.patch │ │ └── dts │ │ └── sun8i-r16-x6100.dts └── configs │ └── X6100_defconfig ├── .gitignore ├── .clangd ├── br_make.sh ├── entrypoint.sh ├── br_build.sh ├── .dockerignore ├── .vscode ├── settings.json └── extensions.json ├── br_config.sh ├── docker-compose.yml ├── .devcontainer.json ├── .clang-tidy ├── Dockerfile ├── readme.md ├── .clang-format └── LICENSE /br2_external/package/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | buildroot-*/ 3 | buildroot-*.tar.gz 4 | sdcard.img 5 | -------------------------------------------------------------------------------- /.clangd: -------------------------------------------------------------------------------- 1 | InlayHints: 2 | Enabled: No 3 | ParameterNames: No 4 | DeducedTypes: No 5 | -------------------------------------------------------------------------------- /br_make.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/bash 2 | 3 | source br_config.sh 4 | 5 | ${BR_MAKE_ALIAS} "$@" 6 | -------------------------------------------------------------------------------- /entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "Keeping alive..." 4 | exec tail -f /dev/null 5 | -------------------------------------------------------------------------------- /br2_external/external.mk: -------------------------------------------------------------------------------- 1 | include $(sort $(wildcard $(BR2_EXTERNAL_X6100_PATH)/package/*/*.mk)) 2 | -------------------------------------------------------------------------------- /br_build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/bash 2 | 3 | source br_config.sh 4 | 5 | make -C build -j$((`nproc`)) 6 | -------------------------------------------------------------------------------- /br2_external/Config.in: -------------------------------------------------------------------------------- 1 | source "$BR2_EXTERNAL_X6100_PATH/package/panel-jinglitai-jlt4013a/Config.in" 2 | -------------------------------------------------------------------------------- /br2_external/external.desc: -------------------------------------------------------------------------------- 1 | name: X6100 2 | desc: Built-from-source Buildroot image for the Xiegu X6100 3 | -------------------------------------------------------------------------------- /br2_external/package/aether-x6100-control/Config.in: -------------------------------------------------------------------------------- 1 | config BR2_PACKAGE_AETHER_X6100_CONTROL 2 | bool "aether_x6100_control" 3 | depends on BR2_LINUX_KERNEL 4 | help 5 | Aether-Radio's X6100 base control library 6 | -------------------------------------------------------------------------------- /br2_external/package/panel-jinglitai-jlt4013a/Config.in: -------------------------------------------------------------------------------- 1 | config BR2_PACKAGE_PANEL_JINGLITAI_JLT4013A 2 | bool "panel_jinglitai_jlt4013a" 3 | depends on BR2_LINUX_KERNEL 4 | help 5 | Driver for the Jinglitai JLT4013A LCD Panel 6 | -------------------------------------------------------------------------------- /br2_external/board/X6100/u-boot/boot.cmd: -------------------------------------------------------------------------------- 1 | echo "------------ X6100 boot script ------------" 2 | setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait panic=10 fbcon=rotate:3 ignore_loglevel 3 | fatload mmc 0:1 0x46000000 zImage 4 | fatload mmc 0:1 0x49000000 ${fdtfile} 5 | bootz 0x46000000 - 0x49000000 6 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *.pyo 3 | *.mo 4 | *.db 5 | *.css.map 6 | *.egg-info 7 | *.sql.gz 8 | .cache 9 | .project 10 | .idea 11 | .pydevproject 12 | .idea/workspace.xml 13 | .DS_Store 14 | .git/ 15 | .sass-cache 16 | .vagrant/ 17 | __pycache__ 18 | dist 19 | docs 20 | env 21 | logs 22 | src/node_modules 23 | web/media 24 | web/static/CACHE 25 | stats 26 | Dockerfile 27 | venv 28 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.watcherExclude": { 3 | "**/.git/objects/**": true, 4 | "**/.git/subtree-cache/**": true, 5 | "**/buildroot*/**": true, 6 | "**/build/**": true 7 | }, 8 | "files.associations": { 9 | "*_defconfig": "kconfig", 10 | "boot.cmd": "shellscript" 11 | }, 12 | "redhat.telemetry.enabled": false, 13 | } 14 | -------------------------------------------------------------------------------- /br2_external/board/X6100/linux/rootfs-overlay/etc/init.d/S99-fb-cursor: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | source /etc/profile 4 | 5 | case "$1" in 6 | start) 7 | echo "Turning off the blinking cursor..." 8 | echo 0 > /sys/class/graphics/fbcon/cursor_blink 9 | ;; 10 | stop) 11 | ;; 12 | *) 13 | echo "Usage: $0 {start|stop}" >&2 14 | exit 1 15 | ;; 16 | 17 | esac 18 | 19 | exit 0 20 | -------------------------------------------------------------------------------- /br_config.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/bash 2 | 3 | # DO NOT RUN THIS SCRIPT MANUALLY, AS IT'S NOT NEEDED TO DO SO. 4 | 5 | BR_RELEASE="buildroot-2022.11" 6 | 7 | if [ ! -e ${BR_RELEASE}.tar.gz ]; then 8 | wget https://buildroot.org/downloads/${BR_RELEASE}.tar.gz 9 | tar xf ${BR_RELEASE}.tar.gz 10 | fi 11 | 12 | BR_MAKE_ALIAS="make -C ${BR_RELEASE} BR2_EXTERNAL=../br2_external O=../build" 13 | 14 | ${BR_MAKE_ALIAS} X6100_defconfig 15 | -------------------------------------------------------------------------------- /br2_external/board/X6100/linux/rootfs-overlay/etc/init.d/S21-run-embiggen: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | source /etc/profile 4 | 5 | case "$1" in 6 | start) 7 | echo "Running embiggen to expand the root partition..." 8 | embiggen-disk / 9 | ;; 10 | stop) 11 | echo "Embiggen has nothing to do on stop..." 12 | ;; 13 | *) 14 | echo "Usage: $0 {start|stop}" >&2 15 | exit 1 16 | ;; 17 | 18 | esac 19 | 20 | exit 0 21 | -------------------------------------------------------------------------------- /br2_external/board/X6100/u-boot/sun8i-r16-x6100_defconfig: -------------------------------------------------------------------------------- 1 | CONFIG_ARM=y 2 | CONFIG_ARCH_SUNXI=y 3 | CONFIG_DEFAULT_DEVICE_TREE="sun8i-r16-x6100" 4 | CONFIG_SPL=y 5 | CONFIG_MACH_SUN8I_A33=y 6 | CONFIG_DRAM_ZQ=15291 7 | CONFIG_DRAM_ODT_EN=y 8 | CONFIG_MMC0_CD_PIN="PE3" 9 | CONFIG_AXP_GPIO=y 10 | CONFIG_PREBOOT="" 11 | # CONFIG_SYS_DEVICE_NULLDEV is not set 12 | CONFIG_SPL_STACK=0x8000 13 | CONFIG_AXP_DCDC1_VOLT=3300 14 | CONFIG_USB_MUSB_HOST=y 15 | -------------------------------------------------------------------------------- /br2_external/board/X6100/linux/rootfs-overlay/etc/init.d/S20-init-panel: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | source /etc/profile 4 | 5 | case "$1" in 6 | start) 7 | echo "Initializing the display panel..." 8 | modprobe panel-jinglitai-jlt4013a 9 | ;; 10 | stop) 11 | echo "Skipping deinitializing the display panel..." 12 | # modprobe -r panel-jinglitai-jlt4013a 13 | ;; 14 | *) 15 | echo "Usage: $0 {start|stop}" >&2 16 | exit 1 17 | ;; 18 | 19 | esac 20 | 21 | exit 0 22 | -------------------------------------------------------------------------------- /br2_external/board/X6100/linux/rootfs-overlay/etc/init.d/S20-wifi-gpio: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | source /etc/profile 4 | 5 | case "$1" in 6 | start) 7 | echo "Turn on the WiFi..." 8 | echo 357 > /sys/class/gpio/export 9 | echo out > /sys/class/gpio/gpio357/direction 10 | echo 0 > /sys/class/gpio/gpio357/value 11 | ;; 12 | stop) 13 | echo "Turn off the WiFi..." 14 | echo 1 > /sys/class/gpio/gpio357/value 15 | echo 357 > /sys/class/gpio/unexport 16 | ;; 17 | *) 18 | echo "Usage: $0 {start|stop}" >&2 19 | exit 1 20 | ;; 21 | 22 | esac 23 | 24 | exit 0 25 | -------------------------------------------------------------------------------- /br2_external/board/X6100/genimage.cfg: -------------------------------------------------------------------------------- 1 | image boot.vfat { 2 | vfat { 3 | files = { 4 | "zImage", 5 | "sun8i-r16-x6100.dtb", 6 | "boot.scr" 7 | } 8 | } 9 | 10 | size = 32M 11 | } 12 | 13 | image sdcard.img { 14 | hdimage { 15 | } 16 | 17 | partition u-boot { 18 | in-partition-table = "no" 19 | image = "u-boot-sunxi-with-spl.bin" 20 | offset = 8K 21 | size = 1016K # 1MB - 8KB 22 | } 23 | 24 | partition boot { 25 | partition-type = 0xc 26 | bootable = "true" 27 | image = "boot.vfat" 28 | } 29 | 30 | partition rootfs { 31 | partition-type = 0x83 32 | image = "rootfs.ext4" 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /br2_external/package/aether-x6100-control/aether-x6100-control.mk: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 3 | # Aether-Radio's X6100 base control library 4 | # 5 | ################################################################################ 6 | 7 | AETHER_X6100_CONTROL_VERSION = b9cc18f25d80f68c672732192b73d3bcb51a981f 8 | AETHER_X6100_CONTROL_SOURCE = $(AETHER_X6100_CONTROL_VERSION).tar.gz 9 | AETHER_X6100_CONTROL_SITE = https://github.com/AetherRadio/X6100Control/archive 10 | AETHER_X6100_CONTROL_LICENSE = GPLv2 11 | 12 | AETHER_X6100_CONTROL_INSTALL_STAGING = YES 13 | 14 | $(eval $(cmake-package)) 15 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.4" 2 | 3 | services: 4 | buildroot: 5 | build: 6 | dockerfile: Dockerfile 7 | stop_signal: SIGKILL 8 | volumes: 9 | - .:/workspace:cached 10 | - vscode_server:/root/.vscode-server 11 | - build_output:/workspace/build 12 | - buildroot_dir:/workspace/buildroot-2022.11 13 | - buildroot_cache:/root/.buildroot-ccache 14 | restart: always 15 | logging: 16 | driver: "json-file" 17 | options: 18 | max-size: "200k" 19 | max-file: "10" 20 | 21 | volumes: 22 | vscode_server: 23 | build_output: 24 | buildroot_dir: 25 | buildroot_cache: 26 | -------------------------------------------------------------------------------- /.devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Buildroot", 3 | "dockerComposeFile": [ 4 | "./docker-compose.yml" 5 | ], 6 | "service": "buildroot", 7 | "shutdownAction": "none", 8 | "extensions": [ 9 | "luveti.kconfig", 10 | "maelvalais.autoconf", 11 | "ms-vscode.hexeditor", 12 | "ms-vscode.makefile-tools", 13 | "plorefice.devicetree", 14 | "redhat.vscode-yaml", 15 | "shakram02.bash-beautify", 16 | "stkb.rewrap", 17 | "surajbarkale.ninja", 18 | "tamasfe.even-better-toml", 19 | "yzhang.markdown-all-in-one" 20 | ], 21 | "workspaceFolder": "/workspace" 22 | } 23 | -------------------------------------------------------------------------------- /br2_external/package/panel-jinglitai-jlt4013a/panel-jinglitai-jlt4013a.mk: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 3 | # Driver for the Jinglitai JLT4013A LCD Panel. 4 | # 5 | ################################################################################ 6 | 7 | PANEL_JINGLITAI_JLT4013A_VERSION = v4.0.0 8 | PANEL_JINGLITAI_JLT4013A_SOURCE = $(PANEL_JINGLITAI_JLT4013A_VERSION).tar.gz 9 | PANEL_JINGLITAI_JLT4013A_SITE = https://github.com/AetherRadio/panel-jinglitai-jlt4013a/archive 10 | PANEL_JINGLITAI_JLT4013A_AUTORECONF = YES 11 | PANEL_JINGLITAI_JLT4013A_LICENSE = GPLv2 12 | 13 | $(eval $(kernel-module)) 14 | $(eval $(generic-package)) 15 | -------------------------------------------------------------------------------- /br2_external/board/X6100/linux/rootfs-overlay/etc/init.d/S50-pulseaudio: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Starts pulseaudio. 4 | # 5 | 6 | 7 | start() { 8 | printf "Starting pulseaudio: " 9 | umask 007 10 | /usr/bin/pulseaudio \ 11 | --system \ 12 | --daemonize \ 13 | --disallow-exit \ 14 | --exit-idle-time=-1 \ 15 | --use-pid-file \ 16 | --disable-shm 17 | echo "OK" 18 | } 19 | stop() { 20 | printf "Stopping pulseaudio: " 21 | PULSE_RUNTIME_PATH=/var/run/pulse /usr/bin/pulseaudio --kill 22 | echo "OK" 23 | } 24 | restart() { 25 | stop 26 | start 27 | } 28 | 29 | case "$1" in 30 | start) 31 | start 32 | ;; 33 | stop) 34 | stop 35 | ;; 36 | restart|reload) 37 | restart 38 | ;; 39 | *) 40 | echo "Usage: $0 {start|stop|restart}" 41 | exit 1 42 | esac 43 | 44 | exit $? 45 | 46 | -------------------------------------------------------------------------------- /.clang-tidy: -------------------------------------------------------------------------------- 1 | --- 2 | Checks: > 3 | *, 4 | -modernize-use-trailing-return-type, 5 | -llvmlibc-*, 6 | -altera-struct-pack-align, 7 | -altera-id-dependent-backward-branch, 8 | -altera-unroll-loops, 9 | -fuchsia-overloaded-operator, 10 | -fuchsia-default-arguments-declarations, 11 | -fuchsia-default-arguments-calls, 12 | -google-runtime-int 13 | FormatStyle: file 14 | CheckOptions: 15 | - key: readability-identifier-naming.MacroDefinitionCase 16 | value: UPPER_CASE 17 | - key: readability-identifier-naming.ClassCase 18 | value: CamelCase 19 | - key: readability-identifier-naming.FunctionCase 20 | value: lower_case 21 | - key: readability-identifier-naming.VariableCase 22 | value: lower_case 23 | - key: readability-identifier-naming.MemberCase 24 | value: lower_case 25 | - key: readability-identifier-naming.NamespaceCase 26 | value: lower_case 27 | - key: readability-identifier-naming.MemberSuffix 28 | value: "_" 29 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | # Base image (last LTS) 2 | FROM ubuntu:latest 3 | 4 | # Set apt-get to non-interactive 5 | ARG DEBIAN_FRONTEND=noninteractive 6 | # For when tzdata gets installed 7 | ENV TZ=UTC 8 | 9 | # Update the system 10 | RUN apt-get update && apt-get upgrade -y 11 | 12 | # Set the correct locale 13 | RUN apt-get install -y locales 14 | RUN localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 15 | ENV LANG en_US.utf8 16 | 17 | # Install dependencies (but not asciidoc because it wants to install LaTeX) 18 | RUN apt-get install -y git build-essential wget cpio unzip rsync bc \ 19 | libncurses5 libncurses5-dev libncursesw5-dev screen file cmake \ 20 | python3 python3-dev python3-setuptools python3-pip 21 | 22 | # Make a working dir 23 | WORKDIR /workspace 24 | 25 | # Copy project files 26 | COPY . ./ 27 | 28 | # Make entrypoint executable 29 | RUN chmod +x entrypoint.sh 30 | 31 | # Give it a (replaceable) entrypoint 32 | ENTRYPOINT ["./entrypoint.sh"] 33 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "cheshirekow.cmake-format", 4 | "cschlosser.doxdocgen", 5 | "DavidAnson.vscode-markdownlint", 6 | "donjayamanne.githistory", 7 | "eamodio.gitlens", 8 | "EditorConfig.EditorConfig", 9 | "esbenp.prettier-vscode", 10 | "GitHub.vscode-pull-request-github", 11 | "IBM.output-colorizer", 12 | "josetr.cmake-language-support-vscode", 13 | "lacroixdavid1.vscode-format-context-menu", 14 | "llvm-vs-code-extensions.vscode-clangd", 15 | "mhutchie.git-graph", 16 | "ms-dotnettools.csharp", 17 | "ms-python.isort", 18 | "ms-python.pylint", 19 | "ms-python.python", 20 | "ms-python.vscode-pylance", 21 | "ms-vscode.cmake-tools", 22 | "ms-vscode.cpptools", 23 | "njpwerner.autodocstring", 24 | "nuke.support", 25 | "SonkengMaldini.conanlight", 26 | "streetsidesoftware.code-spell-checker", 27 | "streetsidesoftware.code-spell-checker-portuguese", 28 | "sysoev.vscode-open-in-github", 29 | "twxs.cmake", 30 | "VisualStudioExptTeam.intellicode-api-usage-examples", 31 | "VisualStudioExptTeam.vscodeintellicode", 32 | "vscode-icons-team.vscode-icons", 33 | ] 34 | } 35 | -------------------------------------------------------------------------------- /br2_external/board/X6100/linux/rootfs-overlay/etc/init.d/S50-amixer: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Starts pulseaudio. 4 | # 5 | 6 | source /etc/profile 7 | 8 | start() { 9 | printf "init amixer" 10 | amixer cset numid=20,iface=MIXER,name='AIF1 Data Digital ADC Capture Switch' on 11 | amixer cset numid=39,iface=MIXER,name='Mic1 Capture Switch' on 12 | amixer -c 0 sset 'ADC Gain',0 3 13 | amixer -c 0 sset 'Mic1 Boost',0 0 14 | amixer -c 0 sset 'Mic1',0 7 15 | amixer -c 0 sset 'Mic1',0 unmute 16 | amixer cset numid=28,iface=MIXER,name='AIF1 Slot 0 Digital DAC Playback Switch' on 17 | amixer -c 0 sset 'DAC',0 on 18 | amixer -c 0 sset 'Headphone',0 63 19 | amixer -c 0 sset 'Headphone',0 unmute 20 | echo "OK" 21 | } 22 | 23 | stop() { 24 | printf "deinit amixer" 25 | amixer cset numid=20,iface=MIXER,name='AIF1 Data Digital ADC Capture Switch' off 26 | amixer cset numid=39,iface=MIXER,name='Mic1 Capture Switch' off 27 | amixer -c 0 sset 'ADC Gain',0 0 28 | amixer -c 0 sset 'Mic1 Boost',0 0 29 | amixer -c 0 sset 'Mic1',0 0 30 | amixer -c 0 sset 'Mic1',0 mute 31 | amixer cset numid=28,iface=MIXER,name='AIF1 Slot 0 Digital DAC Playback Switch' off 32 | amixer -c 0 sset 'DAC',0 off 33 | amixer -c 0 sset 'Headphone',0 0 34 | amixer -c 0 sset 'Headphone',0 mute 35 | echo "OK" 36 | } 37 | 38 | restart() { 39 | stop 40 | start 41 | } 42 | 43 | case "$1" in 44 | start) 45 | start 46 | ;; 47 | stop) 48 | stop 49 | ;; 50 | restart|reload) 51 | restart 52 | ;; 53 | *) 54 | echo "Usage: $0 {start|stop|restart}" 55 | exit 1 56 | esac 57 | 58 | exit $? 59 | -------------------------------------------------------------------------------- /br2_external/board/X6100/patches/embiggen-disk/0001-deep-discovery.patch: -------------------------------------------------------------------------------- 1 | From 661a9a8d868bfdf71d8674eb5e59e2c1888343ae Mon Sep 17 00:00:00 2001 2 | From: "Yann E. MORIN" 3 | Date: Tue, 17 May 2022 12:23:38 +0200 4 | Subject: [PATCH] fs: further try to find the device associated with the 5 | mountpoint 6 | 7 | The heuristic to find the path to the device node where the filesystem 8 | is mounted, sometime fails to find the device node, especially for cases 9 | where /dev/root is mounted on /. We have code to handle that case, but 10 | it may still fail (for reasons that we could not fathom... sigh...) 11 | 12 | Add a last-ditch tentative by calling to an external tool, findmnt, 13 | which very purpose is exactly to provide information about mountpoints. 14 | 15 | In our case, we just need the path to the device node (-o SOURCE), and 16 | we do not need the header line (-n). We also assume that, if findmnt did 17 | find something of interest to us, it will return something that is at 18 | least 2 bytes long (counting the trailing \n). 19 | 20 | Signed-off-by: Yann E. MORIN 21 | --- 22 | fs.go | 7 ++++++- 23 | 1 file changed, 6 insertions(+), 1 deletion(-) 24 | 25 | diff --git a/fs.go b/fs.go 26 | index c2f36c9..5630e92 100644 27 | --- a/fs.go 28 | +++ b/fs.go 29 | @@ -135,7 +135,12 @@ func statFS(mnt string) (fs fsStat, err error) { 30 | if fs.dev == "/dev/root" { 31 | dev, err := findDevRoot() 32 | if err != nil { 33 | - return fs, fmt.Errorf("failed to map /dev/root to real device: %v", err) 34 | + // last-ditch recovery 35 | + out, err := exec.Command("findmnt", "-n", "-o", "SOURCE", mnt).Output() 36 | + if err != nil || len(out) < 2 { 37 | + return fs, fmt.Errorf("failed to map /dev/root to real device: %v", err) 38 | + } 39 | + dev = strings.Split(string(out), "\n")[0] 40 | } 41 | fs.dev = dev 42 | } 43 | -------------------------------------------------------------------------------- /br2_external/board/X6100/linux/rootfs-overlay/etc/asound.conf: -------------------------------------------------------------------------------- 1 | # direct mix for pcm playback 2 | # aplay -D mixplayback xxx.wav 3 | pcm.mixout { 4 | type dmix 5 | ipc_key 1024 6 | slave { 7 | # slave PCM name 8 | pcm "hw:0,0" 9 | 10 | # PCM params 11 | format S16_LE # STR 12 | rate 16000 # INT 13 | #rate 48000 # INT 14 | channels 2 # INT 15 | 16 | # stream params,buffer_size=period x period_size 17 | periods 100 # INT,when buffer_size or buffer_time is not specified 18 | period_size 1024 # INT,in frames,3 times than app need 19 | 20 | # optional params 21 | # period_time 0 # INT,in usec 22 | # buffer_time 0 # INT,in usec 23 | # buffer_size 65536 #INT,in frames 24 | } 25 | bindings { 26 | 0 0 # from 0 -> 0 27 | 1 1 # from 1 -> 1 28 | } 29 | # slowptr BOOL # slow but more precise pointer updates 30 | } 31 | 32 | # dsnoop for capture 33 | # arecord -D mixcapture test.wav 34 | pcm.mixin { 35 | type dsnoop 36 | ipc_key 1025 # must be unique for all dmix plugins!!!! 37 | # ipc_key_add_uid yes # no need for embedded system 38 | slave { 39 | # slave PCM name 40 | pcm "hw:0,0" 41 | 42 | # PCM params 43 | format S16_LE # STR 44 | rate 16000 # INT 45 | #rate 48000 # INT 46 | channels 2 # INT 47 | 48 | # stream params,buffer_size=period x period_size 49 | periods 100 # INT,when buffer_size or buffer_time is not specified 50 | period_size 1024 # INT,in frames,3 times than app need 51 | 52 | # optional params 53 | # period_time 0 # INT,in usec 54 | # buffer_time 0 # INT,in usec 55 | # buffer_size 65536 #INT,in frames 56 | } 57 | bindings { 58 | 0 0 # from 0 -> 0 59 | 1 1 # from 1 -> 1 60 | } 61 | } 62 | 63 | # pcm plug for playback 64 | pcm.mixplayback { 65 | type plug 66 | slave.pcm "mixout" 67 | # A hint is required for listing the device in some GUIs 68 | hint { 69 | show on 70 | description "X6100 playback mixer" 71 | } 72 | } 73 | 74 | # pcm plug for capture 75 | pcm.mixcapture { 76 | type plug 77 | slave.pcm "mixin" 78 | # A hint is required for listing the device in some GUIs 79 | hint { 80 | show on 81 | description "X6100 capture mixer" 82 | } 83 | } 84 | 85 | ctl.mixer0 { 86 | type hw 87 | card 0 88 | } 89 | -------------------------------------------------------------------------------- /br2_external/board/X6100/linux/rootfs-overlay/etc/pulse/system.pa: -------------------------------------------------------------------------------- 1 | #!/usr/bin/pulseaudio -nF 2 | # 3 | # This file is part of PulseAudio. 4 | # 5 | # PulseAudio is free software; you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published by 7 | # the Free Software Foundation; either version 2 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # PulseAudio is distributed in the hope that it will be useful, but 11 | # WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | # General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public License 16 | # along with PulseAudio; if not, see . 17 | 18 | # This startup script is used only if PulseAudio is started in system 19 | # mode. 20 | 21 | ### Automatically restore the volume of streams and devices 22 | load-module module-device-restore 23 | load-module module-stream-restore 24 | load-module module-card-restore 25 | load-module module-switch-on-connect 26 | load-module module-bluez5-device 27 | 28 | ### Automatically load driver modules depending on the hardware available 29 | .ifexists module-udev-detect.so 30 | load-module module-udev-detect 31 | .else 32 | ### Use the static hardware detection module (for systems that lack udev/hal support) 33 | load-module module-detect 34 | .endif 35 | 36 | ### Load several protocols 37 | .ifexists module-esound-protocol-unix.so 38 | load-module module-esound-protocol-unix 39 | .endif 40 | load-module module-native-protocol-unix auth-anonymous=1 41 | 42 | ### Automatically restore the default sink/source when changed by the user 43 | ### during runtime 44 | ### NOTE: This should be loaded as early as possible so that subsequent modules 45 | ### that look up the default sink/source get the right value 46 | load-module module-default-device-restore 47 | 48 | ### Make sure we always have a sink around, even if it is a null sink. 49 | load-module module-always-sink 50 | 51 | ### Automatically suspend sinks/sources that become idle for too long 52 | load-module module-suspend-on-idle 53 | 54 | ### Enable positioned event sounds 55 | load-module module-position-event-sounds 56 | 57 | ### Automatically load driver modules for Bluetooth hardware 58 | .ifexists module-bluetooth-policy.so 59 | load-module module-bluetooth-policy 60 | .endif 61 | 62 | .ifexists module-bluetooth-discover.so 63 | load-module module-bluetooth-discover 64 | .endif 65 | 66 | ### Allow including a system.pa.d directory, which if present, can be used 67 | ### for additional configuration snippets. 68 | ### Note that those snippet files must have a .pa file extension, not .conf 69 | .nofail 70 | .include /etc/pulse/system.pa.d 71 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # Aether X6100 2 | 3 | A project to build a Linux kernel and OS for the Xiegu X6100 without having to 4 | copy files from the vendor's kernel. 5 | 6 | ## Building 7 | 8 | ### Building on Linux 9 | 10 | To build on a Linux machine, just: 11 | 12 | ```shell 13 | .\br_build.sh 14 | ``` 15 | 16 | And then you'll have a `sdcard.img` in the `build` directory, you can then 17 | flash. 18 | 19 | #### Buildroot dependencies 20 | 21 | If you are indeed using Linux, check the pre-requesites of Buildroot 22 | [here](https://buildroot.org/downloads/manual/manual.html#requirement). 23 | 24 | ### Building on other OSes 25 | 26 | The recomended way of building this repo on other systems is using Docker, as 27 | described below. 28 | 29 | ## Changing buildroot configurations 30 | 31 | If you want to change the Buildroot configuration, first do this: 32 | 33 | ```shell 34 | ./br_make.sh menuconfig 35 | ``` 36 | 37 | And the menu configuration will open. Do your changes, save, and exit. 38 | Then, to save the configurations, do: 39 | 40 | ```shell 41 | cd build; make savedefconfig; cd .. 42 | ``` 43 | 44 | > :warning: You **can't** just make `./br_make.sh savedefconfig` because it will override 45 | your changes! 46 | 47 | ### Changing U-Boot and Linux kernel configurations 48 | 49 | For those you can just: 50 | 51 | ```sh 52 | ./br_make.sh uboot-menuconfig 53 | # or 54 | ./br_make.sh linux-menuconfig 55 | ``` 56 | 57 | and: 58 | 59 | ```sh 60 | ./br_make.sh uboot-savedefconfig 61 | # or 62 | ./br_make.sh linux-savedefconfig 63 | ``` 64 | 65 | to save. 66 | 67 | ### Other useful recipes 68 | 69 | If you change the `boot.cmd` file, then you have to run: 70 | 71 | ```sh 72 | ./br_make.sh host-uboot-tools-rebuild; ./br_build.sh 73 | ``` 74 | 75 | [source](https://stackoverflow.com/questions/66116553/boot-scr-rebuild-in-buildroot) 76 | 77 | 78 | ## Dockerfile and VSCode (cross-platform development) 79 | 80 | You can have a nice development environment, including developing on Windows, 81 | you can use the included Docker setup. 82 | You'll need [Visual Studio Code](https://code.visualstudio.com/) and 83 | [Docker](https://www.docker.com/) installed (on Windows machines, Docker 84 | requires [WSL2](https://learn.microsoft.com/en-us/windows/wsl/install)), 85 | and the proper extensions for VSCode: the 86 | [remote development pack](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack), and the 87 | [docker support 88 | extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker). 89 | 90 | With this configured, if you open the repository directory with VSCode, it'll 91 | ask you if you want to reopen the directory in the container. 92 | Say yes, and you'll have a development environment fully configured. 93 | Use the integrated terminal from VSCode and you'll have a Linux terminal ready 94 | for you. 95 | -------------------------------------------------------------------------------- /br2_external/board/X6100/linux/rootfs-overlay/etc/ssh/sshd_config: -------------------------------------------------------------------------------- 1 | # $OpenBSD: sshd_config,v 1.104 2021/07/02 05:11:21 dtucker Exp $ 2 | 3 | # This is the sshd server system-wide configuration file. See 4 | # sshd_config(5) for more information. 5 | 6 | # This sshd was compiled with PATH=/bin:/sbin:/usr/bin:/usr/sbin 7 | 8 | # The strategy used for options in the default sshd_config shipped with 9 | # OpenSSH is to specify options with their default value where 10 | # possible, but leave them commented. Uncommented options override the 11 | # default value. 12 | 13 | #Port 22 14 | #AddressFamily any 15 | #ListenAddress 0.0.0.0 16 | #ListenAddress :: 17 | 18 | #HostKey /etc/ssh/ssh_host_rsa_key 19 | #HostKey /etc/ssh/ssh_host_ecdsa_key 20 | #HostKey /etc/ssh/ssh_host_ed25519_key 21 | 22 | # Ciphers and keying 23 | #RekeyLimit default none 24 | 25 | # Logging 26 | #SyslogFacility AUTH 27 | #LogLevel INFO 28 | 29 | # Authentication: 30 | 31 | #LoginGraceTime 2m 32 | PermitRootLogin yes 33 | #StrictModes yes 34 | #MaxAuthTries 6 35 | #MaxSessions 10 36 | 37 | #PubkeyAuthentication yes 38 | 39 | # The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2 40 | # but this is overridden so installations will only check .ssh/authorized_keys 41 | AuthorizedKeysFile .ssh/authorized_keys 42 | 43 | #AuthorizedPrincipalsFile none 44 | 45 | #AuthorizedKeysCommand none 46 | #AuthorizedKeysCommandUser nobody 47 | 48 | # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts 49 | #HostbasedAuthentication no 50 | # Change to yes if you don't trust ~/.ssh/known_hosts for 51 | # HostbasedAuthentication 52 | #IgnoreUserKnownHosts no 53 | # Don't read the user's ~/.rhosts and ~/.shosts files 54 | #IgnoreRhosts yes 55 | 56 | # To disable tunneled clear text passwords, change to no here! 57 | PasswordAuthentication yes 58 | PermitEmptyPasswords yes 59 | 60 | # Change to no to disable s/key passwords 61 | #KbdInteractiveAuthentication yes 62 | 63 | # Kerberos options 64 | #KerberosAuthentication no 65 | #KerberosOrLocalPasswd yes 66 | #KerberosTicketCleanup yes 67 | #KerberosGetAFSToken no 68 | 69 | # GSSAPI options 70 | #GSSAPIAuthentication no 71 | #GSSAPICleanupCredentials yes 72 | 73 | # Set this to 'yes' to enable PAM authentication, account processing, 74 | # and session processing. If this is enabled, PAM authentication will 75 | # be allowed through the KbdInteractiveAuthentication and 76 | # PasswordAuthentication. Depending on your PAM configuration, 77 | # PAM authentication via KbdInteractiveAuthentication may bypass 78 | # the setting of "PermitRootLogin without-password". 79 | # If you just want the PAM account and session checks to run without 80 | # PAM authentication, then enable this but set PasswordAuthentication 81 | # and KbdInteractiveAuthentication to 'no'. 82 | #UsePAM no 83 | 84 | #AllowAgentForwarding yes 85 | #AllowTcpForwarding yes 86 | #GatewayPorts no 87 | #X11Forwarding no 88 | #X11DisplayOffset 10 89 | #X11UseLocalhost yes 90 | #PermitTTY yes 91 | #PrintMotd yes 92 | #PrintLastLog yes 93 | #TCPKeepAlive yes 94 | #PermitUserEnvironment no 95 | #Compression delayed 96 | #ClientAliveInterval 0 97 | #ClientAliveCountMax 3 98 | #UseDNS no 99 | #PidFile /var/run/sshd.pid 100 | #MaxStartups 10:30:100 101 | #PermitTunnel no 102 | #ChrootDirectory none 103 | #VersionAddendum none 104 | 105 | # no default banner path 106 | #Banner none 107 | 108 | # override default of no subsystems 109 | Subsystem sftp /usr/libexec/sftp-server 110 | 111 | # Example of overriding settings on a per-user basis 112 | #Match User anoncvs 113 | # X11Forwarding no 114 | # AllowTcpForwarding no 115 | # PermitTTY no 116 | # ForceCommand cvs server 117 | -------------------------------------------------------------------------------- /.clang-format: -------------------------------------------------------------------------------- 1 | --- 2 | BasedOnStyle: Microsoft 3 | ColumnLimit: 100 4 | AlignEscapedNewlines: Left 5 | AlignTrailingComments: false 6 | AllowShortBlocksOnASingleLine: Empty 7 | PackConstructorInitializers: CurrentLine # requires llvm >= 14 8 | IndentPPDirectives: BeforeHash 9 | ForEachMacros: 10 | - forever 11 | - foreach 12 | - Q_FOREACH 13 | - BOOST_FOREACH 14 | StatementMacros: 15 | - Q_UNUSED 16 | - QT_REQUIRE_VERSION 17 | - emit 18 | SortIncludes: true 19 | IncludeBlocks: Regroup 20 | IncludeCategories: 21 | # Aether libraries (uses "aether_*") 22 | - Regex: '^"aether.*' 23 | Priority: 1 24 | # Boost (uses always ) 25 | - Regex: "^" 26 | Priority: 3 27 | # Qt (uses always ) 28 | - Regex: "^" 29 | Priority: 4 30 | # POSIX 31 | - Regex: "\ 32 | ^<(\ 33 | aio\ 34 | |arpa/inet\ 35 | |assert\ 36 | |complex\ 37 | |cpio\ 38 | |ctype\ 39 | |dirent\ 40 | |dlfcn\ 41 | |errno\ 42 | |fcntl\ 43 | |fenv\ 44 | |float\ 45 | |fmtmsg\ 46 | |fnmatch\ 47 | |ftw\ 48 | |glob\ 49 | |grp\ 50 | |iconv\ 51 | |inttypes\ 52 | |iso646\ 53 | |langinfo\ 54 | |libgen\ 55 | |limits\ 56 | |locale\ 57 | |math\ 58 | |monetary\ 59 | |mqueue\ 60 | |ndbm\ 61 | |net/if\ 62 | |netdb\ 63 | |netinet/in\ 64 | |netinet/tcp\ 65 | |nl_types\ 66 | |poll\ 67 | |pthread\ 68 | |pwd\ 69 | |regex\ 70 | |sched\ 71 | |search\ 72 | |semaphore\ 73 | |setjmp\ 74 | |signal\ 75 | |spawn\ 76 | |stdarg\ 77 | |stdbool\ 78 | |stddef\ 79 | |stdint\ 80 | |stdio\ 81 | |stdlib\ 82 | |string\ 83 | |strings\ 84 | |stropts\ 85 | |sys/ipc\ 86 | |sys/mman\ 87 | |sys/msg\ 88 | |sys/resource\ 89 | |sys/select\ 90 | |sys/sem\ 91 | |sys/shm\ 92 | |sys/socket\ 93 | |sys/stat\ 94 | |sys/statvfs\ 95 | |sys/time\ 96 | |sys/times\ 97 | |sys/types\ 98 | |sys/uio\ 99 | |sys/un\ 100 | |sys/utsname\ 101 | |sys/wait\ 102 | |syslog\ 103 | |tar\ 104 | |termios\ 105 | |tgmath\ 106 | |time\ 107 | |trace\ 108 | |ulimit\ 109 | |unistd 110 | |utime\ 111 | |utmpx\ 112 | |wchar\ 113 | |wctype\ 114 | |wordexp\ 115 | )\\.h>" 116 | Priority: 5 117 | # Windows 118 | - Regex: "\ 119 | ^<(\ 120 | windows 121 | |excpt\ 122 | |stdarg\ 123 | |windef\ 124 | |winnt\ 125 | |basetsd\ 126 | |guiddef\ 127 | |ctype\ 128 | |string\ 129 | |winbase\ 130 | |winerror\ 131 | |wingdi\ 132 | |winuser\ 133 | |winnls\ 134 | |wincon\ 135 | |winver\ 136 | |winreg\ 137 | |winnetwk\ 138 | |winsvc\ 139 | |cderr\ 140 | |commdlg\ 141 | |dde\ 142 | |ddeml\ 143 | |dlgs\ 144 | |lzexpand\ 145 | |mmsystem\ 146 | |nb30\ 147 | |rpc\ 148 | |shellapi\ 149 | |wincrypt\ 150 | |winperf\ 151 | |winresrc\ 152 | |winsock\ 153 | |winspool\ 154 | |winbgim\ 155 | |ole2\ 156 | |objbase\ 157 | |oleauto\ 158 | |olectlid\ 159 | )\\.h>" 160 | Priority: 6 161 | - Regex: '^' 162 | Priority: 6 163 | # C stdlib from std:: (always ) 164 | - Regex: '^' 165 | Priority: 8 166 | # C stdlib (always <*.h> ) 167 | - Regex: '^<.*\.h>' 168 | Priority: 9 169 | # std:: (always <*> ) 170 | - Regex: "^<.*>" 171 | Priority: 7 172 | # Everything else goes before boost, but clang-format matches in order 173 | - Regex: '^".*"' 174 | Priority: 2 175 | -------------------------------------------------------------------------------- /br2_external/configs/X6100_defconfig: -------------------------------------------------------------------------------- 1 | BR2_arm=y 2 | BR2_cortex_a7=y 3 | BR2_ARM_FPU_NEON_VFPV4=y 4 | BR2_TOOLCHAIN_EXTERNAL=y 5 | BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y 6 | BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y 7 | BR2_TOOLCHAIN_EXTERNAL_URL="https://snapshots.linaro.org/gnu-toolchain/12.2-2022.12-1/arm-linux-gnueabihf/gcc-linaro-12.2.1-2022.12-x86_64_arm-linux-gnueabihf.tar.xz" 8 | BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="arm-linux-gnueabihf" 9 | BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_15=y 10 | BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y 11 | # BR2_TOOLCHAIN_EXTERNAL_INET_RPC is not set 12 | BR2_TOOLCHAIN_EXTERNAL_CXX=y 13 | BR2_TOOLCHAIN_EXTERNAL_FORTRAN=y 14 | BR2_CCACHE=y 15 | BR2_CCACHE_INITIAL_SETUP="--max-size=32G" 16 | BR2_OPTIMIZE_3=y 17 | BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_X6100_PATH)/board/X6100/patches" 18 | BR2_SSP_REGULAR=y 19 | BR2_RELRO_PARTIAL=y 20 | BR2_TARGET_GENERIC_HOSTNAME="Xiegu-X6100" 21 | BR2_TARGET_GENERIC_ISSUE="Welcome to the Xiegu X6100 HF+6m Transceiver!" 22 | BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y 23 | BR2_SYSTEM_BIN_SH_BASH=y 24 | BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_X6100_PATH)/board/X6100/linux/rootfs-overlay" 25 | BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" 26 | BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BR2_EXTERNAL_X6100_PATH)/board/X6100/genimage.cfg" 27 | BR2_LINUX_KERNEL=y 28 | BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y 29 | BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_X6100_PATH)/board/X6100/linux/sun8i-r16-x6100_defconfig" 30 | BR2_LINUX_KERNEL_DTS_SUPPORT=y 31 | BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="$(BR2_EXTERNAL_X6100_PATH)/board/X6100/dts/sun8i-r16-x6100.dts" 32 | BR2_LINUX_KERNEL_INSTALL_TARGET=y 33 | BR2_PACKAGE_LINUX_TOOLS_CPUPOWER=y 34 | BR2_PACKAGE_LINUX_TOOLS_GPIO=y 35 | BR2_PACKAGE_LINUX_TOOLS_IIO=y 36 | BR2_PACKAGE_LINUX_TOOLS_PERF=y 37 | BR2_PACKAGE_LINUX_TOOLS_PERF_TUI=y 38 | BR2_PACKAGE_LINUX_TOOLS_TMON=y 39 | BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y 40 | BR2_PACKAGE_ALSA_UTILS=y 41 | BR2_PACKAGE_ALSA_UTILS_ALSACONF=y 42 | BR2_PACKAGE_ALSA_UTILS_ALSALOOP=y 43 | BR2_PACKAGE_ALSA_UTILS_ALSAUCM=y 44 | BR2_PACKAGE_ALSA_UTILS_ALSATPLG=y 45 | BR2_PACKAGE_ALSA_UTILS_AMIDI=y 46 | BR2_PACKAGE_ALSA_UTILS_AMIXER=y 47 | BR2_PACKAGE_ALSA_UTILS_APLAY=y 48 | BR2_PACKAGE_ALSA_UTILS_APLAYMIDI=y 49 | BR2_PACKAGE_ALSA_UTILS_ARECORDMIDI=y 50 | BR2_PACKAGE_ALSA_UTILS_ASEQDUMP=y 51 | BR2_PACKAGE_ALSA_UTILS_ASEQNET=y 52 | BR2_PACKAGE_ALSA_UTILS_IECSET=y 53 | BR2_PACKAGE_ALSA_UTILS_SPEAKER_TEST=y 54 | BR2_PACKAGE_PULSEAUDIO=y 55 | BR2_PACKAGE_PULSEAUDIO_DAEMON=y 56 | BR2_PACKAGE_E2FSPROGS=y 57 | BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y 58 | BR2_PACKAGE_DIRECTFB=y 59 | BR2_PACKAGE_FB_TEST_APP=y 60 | BR2_PACKAGE_FBSET=y 61 | BR2_PACKAGE_FBTERM=y 62 | BR2_PACKAGE_MESA3D=y 63 | BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_LIMA=y 64 | BR2_PACKAGE_MESA3D_OSMESA_GALLIUM=y 65 | BR2_PACKAGE_MESA3D_OPENGL_EGL=y 66 | BR2_PACKAGE_MESA3D_OPENGL_ES=y 67 | BR2_PACKAGE_PSPLASH=y 68 | BR2_PACKAGE_SDL=y 69 | BR2_PACKAGE_SDL_DIRECTFB=y 70 | BR2_PACKAGE_LINUX_FIRMWARE=y 71 | BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT=y 72 | BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y 73 | BR2_PACKAGE_LINUX_FIRMWARE_BROADCOM_TIGON3=y 74 | BR2_PACKAGE_LINUX_FIRMWARE_BNX2X=y 75 | BR2_PACKAGE_LINUX_FIRMWARE_CXGB4_T4=y 76 | BR2_PACKAGE_LINUX_FIRMWARE_CXGB4_T5=y 77 | BR2_PACKAGE_LINUX_FIRMWARE_INTEL_E100=y 78 | BR2_PACKAGE_LINUX_FIRMWARE_INTEL_ICE=y 79 | BR2_PACKAGE_LINUX_FIRMWARE_MICROCHIP_VSC85XX_PHY=y 80 | BR2_PACKAGE_LINUX_FIRMWARE_QLOGIC_4X=y 81 | BR2_PACKAGE_LINUX_FIRMWARE_RTL_815X=y 82 | BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169=y 83 | BR2_PACKAGE_EUDEV_RULES_GEN=y 84 | BR2_PACKAGE_HWDATA_IAB_OUI_TXT=y 85 | BR2_PACKAGE_I2C_TOOLS=y 86 | BR2_PACKAGE_LIBUBOOTENV=y 87 | BR2_PACKAGE_LM_SENSORS=y 88 | BR2_PACKAGE_LM_SENSORS_FANCONTROL=y 89 | BR2_PACKAGE_LM_SENSORS_PWMCONFIG=y 90 | BR2_PACKAGE_LSHW=y 91 | BR2_PACKAGE_LSUIO=y 92 | BR2_PACKAGE_POWERTOP=y 93 | BR2_PACKAGE_SETSERIAL=y 94 | BR2_PACKAGE_SPI_TOOLS=y 95 | BR2_PACKAGE_STATSERIAL=y 96 | BR2_PACKAGE_STM32FLASH=y 97 | BR2_PACKAGE_USBUTILS=y 98 | BR2_PACKAGE_PYTHON3=y 99 | BR2_PACKAGE_PYTHON3_PY_PYC=y 100 | BR2_PACKAGE_LIBVORBIS=y 101 | BR2_PACKAGE_SBC=y 102 | BR2_PACKAGE_LIBNSS=y 103 | BR2_PACKAGE_GIFLIB=y 104 | BR2_PACKAGE_HARFBUZZ=y 105 | BR2_PACKAGE_LEPTONICA=y 106 | BR2_PACKAGE_LIBAIO=y 107 | BR2_PACKAGE_LIBGPIOD=y 108 | BR2_PACKAGE_LIBGPIOD_TOOLS=y 109 | BR2_PACKAGE_LIBBSD=y 110 | BR2_PACKAGE_ICU=y 111 | BR2_PACKAGE_SHARED_MIME_INFO=y 112 | BR2_PACKAGE_BLUEZ_TOOLS=y 113 | BR2_PACKAGE_BLUEZ5_UTILS=y 114 | BR2_PACKAGE_BLUEZ5_UTILS_OBEX=y 115 | BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=y 116 | BR2_PACKAGE_BLUEZ5_UTILS_MONITOR=y 117 | BR2_PACKAGE_BLUEZ5_UTILS_TOOLS=y 118 | BR2_PACKAGE_BLUEZ5_UTILS_DEPRECATED=y 119 | BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HID=y 120 | BR2_PACKAGE_IW=y 121 | BR2_PACKAGE_NETWORK_MANAGER=y 122 | BR2_PACKAGE_NETWORK_MANAGER_TUI=y 123 | BR2_PACKAGE_NTP=y 124 | BR2_PACKAGE_NTP_SNTP=y 125 | BR2_PACKAGE_NTP_NTPDATE=y 126 | BR2_PACKAGE_NTP_NTPDC=y 127 | BR2_PACKAGE_NTP_NTPQ=y 128 | BR2_PACKAGE_NTP_NTPTIME=y 129 | BR2_PACKAGE_OPENSSH=y 130 | BR2_PACKAGE_SOCAT=y 131 | BR2_PACKAGE_WIRELESS_REGDB=y 132 | BR2_PACKAGE_WPA_SUPPLICANT=y 133 | BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT=y 134 | BR2_PACKAGE_WPA_SUPPLICANT_WIFI_DISPLAY=y 135 | BR2_PACKAGE_WPA_SUPPLICANT_MESH_NETWORKING=y 136 | BR2_PACKAGE_WPA_SUPPLICANT_AUTOSCAN=y 137 | BR2_PACKAGE_WPA_SUPPLICANT_HOTSPOT=y 138 | BR2_PACKAGE_WPA_SUPPLICANT_DEBUG_SYSLOG=y 139 | BR2_PACKAGE_WPA_SUPPLICANT_WPS=y 140 | BR2_PACKAGE_WPA_SUPPLICANT_WPA3=y 141 | BR2_PACKAGE_WPA_SUPPLICANT_CLI=y 142 | BR2_PACKAGE_WPA_SUPPLICANT_WPA_CLIENT_SO=y 143 | BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y 144 | BR2_PACKAGE_WPA_SUPPLICANT_DBUS=y 145 | BR2_PACKAGE_WPA_SUPPLICANT_DBUS_INTROSPECTION=y 146 | BR2_PACKAGE_BASH_COMPLETION=y 147 | BR2_PACKAGE_SCREEN=y 148 | BR2_PACKAGE_EMBIGGEN_DISK=y 149 | BR2_PACKAGE_KEYUTILS=y 150 | BR2_PACKAGE_KMOD_TOOLS=y 151 | BR2_PACKAGE_MONIT=y 152 | BR2_PACKAGE_LESS=y 153 | BR2_PACKAGE_MC=y 154 | BR2_PACKAGE_NANO=y 155 | # BR2_PACKAGE_NANO_TINY is not set 156 | BR2_PACKAGE_VIM=y 157 | BR2_TARGET_ROOTFS_EXT2=y 158 | BR2_TARGET_ROOTFS_EXT2_4=y 159 | BR2_TARGET_ROOTFS_EXT2_SIZE="512M" 160 | BR2_TARGET_UBOOT=y 161 | BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y 162 | BR2_TARGET_UBOOT_CUSTOM_VERSION=y 163 | BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.10" 164 | BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG=y 165 | BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_X6100_PATH)/board/X6100/u-boot/sun8i-r16-x6100_defconfig" 166 | BR2_TARGET_UBOOT_NEEDS_DTC=y 167 | BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y 168 | BR2_TARGET_UBOOT_NEEDS_OPENSSL=y 169 | BR2_TARGET_UBOOT_SPL=y 170 | BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin" 171 | BR2_TARGET_UBOOT_CUSTOM_DTS_PATH="$(BR2_EXTERNAL_X6100_PATH)/board/X6100/dts/sun8i-r16-x6100.dts" 172 | BR2_PACKAGE_HOST_DOSFSTOOLS=y 173 | BR2_PACKAGE_HOST_GENIMAGE=y 174 | BR2_PACKAGE_HOST_MTOOLS=y 175 | BR2_PACKAGE_HOST_PYTHON3=y 176 | BR2_PACKAGE_HOST_PYTHON3_BZIP2=y 177 | BR2_PACKAGE_HOST_PYTHON3_SSL=y 178 | BR2_PACKAGE_HOST_UBOOT_TOOLS=y 179 | BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y 180 | BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_X6100_PATH)/board/X6100/u-boot/boot.cmd" 181 | BR2_PACKAGE_PANEL_JINGLITAI_JLT4013A=y 182 | BR2_PACKAGE_AETHER_X6100_CONTROL=y 183 | -------------------------------------------------------------------------------- /br2_external/board/X6100/dts/sun8i-r16-x6100.dts: -------------------------------------------------------------------------------- 1 | /dts-v1/; 2 | 3 | /* 4 | * Decompiled, and cleaned up device tree file for the X6100. 5 | * Thanks from #linux-sunxi @ OFTC (https://oftc.net/) 6 | */ 7 | 8 | #include "sun8i-a33.dtsi" 9 | 10 | #include 11 | #include 12 | 13 | / { 14 | model = "XIEGU Tech X6100 HF+6m Transceiver"; 15 | compatible = "xiegu,x6100", "allwinner,sun8i-r16"; 16 | 17 | aliases { 18 | serial0 = "/soc/serial@1c28000"; 19 | }; 20 | 21 | chosen { 22 | stdout-path = "serial0:115200n8"; 23 | }; 24 | 25 | reserved-memory { 26 | #address-cells = <1>; 27 | #size-cells = <1>; 28 | ranges; 29 | 30 | mali_cma: cma@4a000000 { 31 | compatible = "shared-dma-pool"; 32 | size = <0x8000000>; 33 | alloc-ranges = <0x4a000000 0x8000000>; 34 | reusable; 35 | linux,cma-default; 36 | }; 37 | }; 38 | 39 | mmc1_pwrseq: mmc1-pwrseq { 40 | compatible = "mmc-pwrseq-simple"; 41 | reset-gpios = <&pio 2 0 GPIO_ACTIVE_LOW>; /* PC0 (?) */ 42 | }; 43 | 44 | reg_usb0_vbus: usb0_vbus { 45 | compatible = "regulator-fixed"; 46 | regulator-name = "usb0_vbus"; 47 | regulator-min-microvolt = <5000000>; 48 | regulator-max-microvolt = <5000000>; 49 | regulator-always-on; 50 | status = "okay"; 51 | }; 52 | 53 | reg_usb1_vbus: usb1_vbus { 54 | compatible = "regulator-fixed"; 55 | regulator-name = "usb1_vbus"; 56 | regulator-min-microvolt = <5000000>; 57 | regulator-max-microvolt = <5000000>; 58 | regulator-boot-on; 59 | enable-active-high; 60 | gpio = <&pio 03 12 GPIO_ACTIVE_HIGH>; 61 | status = "okay"; 62 | }; 63 | 64 | reg_vcc3v3: vcc3v3 { 65 | compatible = "regulator-fixed"; 66 | regulator-name = "vcc3v3"; 67 | regulator-min-microvolt = <3300000>; 68 | regulator-max-microvolt = <3300000>; 69 | }; 70 | 71 | reg_vcc5v0: vcc5v0 { 72 | compatible = "regulator-fixed"; 73 | regulator-name = "vcc5v0"; 74 | regulator-min-microvolt = <5000000>; 75 | regulator-max-microvolt = <5000000>; 76 | }; 77 | 78 | backlight: backlight { 79 | compatible = "pwm-backlight"; 80 | power-supply = <®_vcc5v0>; 81 | pwms = <&pwm 0x00 0xc350 0x00>; 82 | brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>; 83 | default-brightness-level = <5>; 84 | enable-gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */ 85 | }; 86 | 87 | spi { 88 | compatible = "spi-gpio"; 89 | #address-cells = <1>; 90 | #size-cells = <0>; 91 | sck-gpios = <&r_pio 0 9 GPIO_ACTIVE_HIGH>; /* PL9 */ 92 | mosi-gpios = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */ 93 | cs-gpios = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */ 94 | num-chipselects = <1>; 95 | status = "okay"; 96 | 97 | panel@0 { 98 | compatible = "jinglitai,jlt4013a"; 99 | reg = <0>; 100 | power-supply = <®_vcc3v3>; 101 | reset-gpios = <&r_pio 0 11 GPIO_ACTIVE_LOW>; /* PL11 */ 102 | dcx-gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; /* PL10 */ 103 | backlight = <&backlight>; 104 | spi-max-frequency = <100000>; 105 | 106 | port { 107 | panel_input: endpoint { 108 | remote-endpoint = <&tcon0_out_panel>; 109 | }; 110 | }; 111 | }; 112 | }; 113 | 114 | matrix_keypad { 115 | compatible = "gpio-matrix-keypad"; 116 | row-gpios = <&pio 6 10 0x17>, <&pio 6 7 0x17>, /* PG6-PG10 */ 117 | <&pio 6 6 0x17>, <&pio 6 8 0x17>, 118 | <&pio 6 9 0x17>; 119 | col-gpios = <&pio 4 16 GPIO_ACTIVE_LOW>, /* PE11-PE17 */ 120 | <&pio 4 17 GPIO_ACTIVE_LOW>, 121 | <&pio 4 11 GPIO_ACTIVE_LOW>, 122 | <&pio 4 14 GPIO_ACTIVE_LOW>, 123 | <&pio 4 12 GPIO_ACTIVE_LOW>, 124 | <&pio 4 13 GPIO_ACTIVE_LOW>; 125 | linux,keymap = ; 155 | gpio-activelow; 156 | wakeup-source; 157 | linux,no-autorepeat; 158 | debounce-delay-ms = <25>; 159 | col-scan-delay-us = <1>; 160 | drive-inactive-cols; 161 | }; 162 | 163 | rotary0 { 164 | compatible = "rotary-encoder"; 165 | gpios = <&pio 1 3 GPIO_ACTIVE_LOW>, /* PB3 */ 166 | <&pio 1 2 GPIO_ACTIVE_LOW>; /* PB2 */ 167 | linux,axis = <0>; 168 | rotary-encoder,encoding = "gray"; 169 | rotary-encoder,relative-axis; 170 | pinctrl-names = "default"; 171 | pinctrl-0 = <&rotary_1_pins>; 172 | }; 173 | 174 | rotary1 { 175 | compatible = "rotary-encoder"; 176 | gpios = <&pio 1 6 GPIO_ACTIVE_LOW>, <&pio 1 4 GPIO_ACTIVE_LOW>; 177 | linux,axis = <1>; 178 | rotary-encoder,encoding = "gray"; 179 | rotary-encoder,relative-axis; 180 | pinctrl-names = "default"; 181 | pinctrl-0 = <&rotary_2_pins>; 182 | }; 183 | 184 | rotary3 { 185 | compatible = "rotary-encoder"; 186 | gpios = <&pio 1 7 GPIO_ACTIVE_LOW>, <&pio 1 5 GPIO_ACTIVE_LOW>; 187 | linux,axis = <2>; 188 | rotary-encoder,encoding = "gray"; 189 | rotary-encoder,relative-axis; 190 | pinctrl-names = "default"; 191 | pinctrl-0 = <&rotary_3_pins>; 192 | }; 193 | }; 194 | 195 | &de { 196 | status = "okay"; 197 | }; 198 | 199 | &codec { 200 | status = "okay"; 201 | }; 202 | 203 | &dai { 204 | status = "okay"; 205 | }; 206 | 207 | &ehci0 { 208 | status = "okay"; 209 | }; 210 | 211 | &i2c0 { 212 | status = "okay"; 213 | }; 214 | 215 | &i2c1 { 216 | status = "okay"; 217 | 218 | rtc@51 { 219 | compatible = "nxp,pcf8563"; 220 | reg = <0x51>; 221 | interrupt-parent = <&pio>; 222 | interrupts = <6 13 0x02>; /* PG13 */ 223 | interrupt-names = "irq"; 224 | irq-gpios = <&pio 6 13 GPIO_ACTIVE_HIGH>; 225 | }; 226 | }; 227 | 228 | &mali { 229 | memory-region = <&mali_cma>; 230 | operating-points-v2 = <0x23>; 231 | }; 232 | 233 | &mmc0 { 234 | status = "okay"; 235 | vmmc-supply = <®_dcdc1>; 236 | cd-gpios = <&pio 4 3 GPIO_ACTIVE_LOW>; /* PE3 */ 237 | bus-width = <4>; 238 | }; 239 | 240 | &mmc1 { 241 | status = "okay"; 242 | pinctrl-names = "default"; 243 | pinctrl-0 = <&mmc1_pg_pins>; 244 | vmmc-supply = <®_aldo1>; 245 | mmc-pwrseq = <&mmc1_pwrseq>; 246 | bus-width = <4>; 247 | non-removable; 248 | }; 249 | 250 | &mmc2 { 251 | status = "okay"; 252 | pinctrl-names = "default"; 253 | pinctrl-0 = <&mmc2_8bit_pins>; 254 | vmmc-supply = <®_dcdc1>; 255 | bus-width = <8>; 256 | non-removable; 257 | cap-mmc-hw-reset; 258 | }; 259 | 260 | &ohci0 { 261 | status = "okay"; 262 | }; 263 | 264 | &pio { 265 | vcc-pb-supply = <®_vcc3v3>; 266 | vcc-pc-supply = <®_vcc3v3>; 267 | vcc-pd-supply = <®_vcc3v3>; 268 | vcc-pe-supply = <®_vcc3v3>; 269 | vcc-pf-supply = <®_vcc3v3>; 270 | vcc-pg-supply = <®_vcc3v3>; 271 | vcc-ph-supply = <®_vcc3v3>; 272 | vcc-pl-supply = <®_vcc3v3>; 273 | 274 | uart3_pins: uart3-pins { 275 | pins = "PH6", "PH7"; 276 | function = "uart3"; 277 | }; 278 | 279 | usb0_id_detect_pin0: usb0_id_detect_pin@0 { 280 | pins = "PH8"; 281 | function = "gpio_in"; 282 | bias-pull-up; 283 | }; 284 | 285 | usb0_vbus_detect_pin0: usb0_vbus_detect_pin@0 { 286 | pins = "PH9"; 287 | function = "gpio_in"; 288 | bias-pull-down; 289 | }; 290 | 291 | rotary_1_pins: rotary-1-pins { 292 | pins = "PB2", "PB3"; 293 | function = "gpio_in"; 294 | bias-pull-up; 295 | }; 296 | 297 | rotary_2_pins: rotary-2-pins { 298 | pins = "PB4", "PB6"; 299 | function = "gpio_in"; 300 | bias-pull-up; 301 | }; 302 | 303 | rotary_3_pins: rotary-3-pins { 304 | pins = "PB5", "PB7"; 305 | function = "gpio_in"; 306 | bias-pull-up; 307 | }; 308 | }; 309 | 310 | &pwm { 311 | status = "okay"; 312 | pinctrl-names = "default"; 313 | pinctrl-0 = <&pwm0_pin>; 314 | }; 315 | 316 | &r_rsb { 317 | status = "okay"; 318 | 319 | axp22x: pmic@3a3 { 320 | compatible = "x-powers,axp223"; 321 | reg = <0x3a3>; 322 | interrupt-parent = <&r_intc>; 323 | interrupts = ; 324 | eldoin-supply = <®_dcdc1>; 325 | interrupt-controller; 326 | #interrupt-cells = <1>; 327 | }; 328 | }; 329 | 330 | #include "axp223.dtsi" 331 | 332 | &ac_power_supply { 333 | status = "okay"; 334 | }; 335 | 336 | &battery_power_supply { 337 | status = "okay"; 338 | }; 339 | 340 | ®_dcdc1 { 341 | regulator-name = "vcc-3v0"; 342 | regulator-always-on; 343 | regulator-min-microvolt = <3000000>; 344 | regulator-max-microvolt = <3000000>; 345 | }; 346 | 347 | ®_dcdc2 { 348 | regulator-name = "vdd-sys"; 349 | regulator-always-on; 350 | regulator-min-microvolt = <900000>; 351 | regulator-max-microvolt = <1400000>; 352 | }; 353 | 354 | ®_dcdc3 { 355 | regulator-name = "vdd-cpu"; 356 | regulator-always-on; 357 | regulator-min-microvolt = <900000>; 358 | regulator-max-microvolt = <1400000>; 359 | }; 360 | 361 | ®_dcdc5 { 362 | regulator-name = "vcc-dram"; 363 | regulator-always-on; 364 | regulator-min-microvolt = <1500000>; 365 | regulator-max-microvolt = <1500000>; 366 | }; 367 | 368 | ®_dc1sw { 369 | regulator-name = "vcc-lcd"; 370 | regulator-always-on; 371 | }; 372 | 373 | ®_dc5ldo { 374 | regulator-name = "vdd-cpus"; 375 | regulator-always-on; 376 | regulator-min-microvolt = <900000>; 377 | regulator-max-microvolt = <1400000>; 378 | }; 379 | 380 | ®_aldo1 { 381 | regulator-name = "vcc-io"; 382 | regulator-always-on; 383 | regulator-min-microvolt = <3000000>; 384 | regulator-max-microvolt = <3000000>; 385 | }; 386 | 387 | ®_aldo2 { 388 | regulator-name = "vdd-dll"; 389 | regulator-always-on; 390 | regulator-min-microvolt = <2350000>; 391 | regulator-max-microvolt = <2650000>; 392 | }; 393 | 394 | ®_aldo3 { 395 | regulator-name = "vcc-pll-avcc"; 396 | regulator-always-on; 397 | regulator-min-microvolt = <2700000>; 398 | regulator-max-microvolt = <3300000>; 399 | }; 400 | 401 | ®_dldo1 { 402 | regulator-name = "vcc-wifi0"; 403 | regulator-always-on; 404 | regulator-min-microvolt = <3300000>; 405 | regulator-max-microvolt = <3300000>; 406 | }; 407 | 408 | ®_dldo2 { 409 | regulator-name = "vcc-wifi1"; 410 | regulator-always-on; 411 | regulator-min-microvolt = <3300000>; 412 | regulator-max-microvolt = <3300000>; 413 | }; 414 | 415 | ®_dldo3 { 416 | regulator-name = "vcc-3v0-csi"; 417 | regulator-min-microvolt = <3000000>; 418 | regulator-max-microvolt = <3000000>; 419 | }; 420 | 421 | ®_eldo1 { 422 | regulator-name = "vcc-1v2-hsic"; 423 | regulator-min-microvolt = <1200000>; 424 | regulator-max-microvolt = <1200000>; 425 | }; 426 | 427 | ®_eldo2 { 428 | regulator-name = "vcc-dsp"; 429 | regulator-min-microvolt = <3000000>; 430 | regulator-max-microvolt = <3000000>; 431 | }; 432 | 433 | ®_eldo3 { 434 | regulator-name = "eldo3"; 435 | regulator-min-microvolt = <3000000>; 436 | regulator-max-microvolt = <3000000>; 437 | }; 438 | 439 | ®_rtc_ldo { 440 | regulator-always-on; 441 | regulator-min-microvolt = <3000000>; 442 | regulator-max-microvolt = <3000000>; 443 | regulator-name = "rtc_ldo"; 444 | }; 445 | 446 | ®_drivevbus { 447 | regulator-name = "usb0-vbus"; 448 | status = "okay"; 449 | }; 450 | 451 | &r_uart { 452 | status = "okay"; 453 | pinctrl-names = "default"; 454 | pinctrl-0 = <&r_uart_pins_a>; 455 | }; 456 | 457 | &sound { 458 | simple-audio-card,routing = "Left DAC", "AIF1 Slot 0 Left", 459 | "Right DAC", "AIF1 Slot 0 Right", 460 | "AIF1 Slot 0 Left ADC", "Left ADC", 461 | "AIF1 Slot 0 Right ADC", "Right ADC"; 462 | status = "okay"; 463 | }; 464 | 465 | &tcon0 { 466 | pinctrl-names = "default"; 467 | pinctrl-0 = <&lcd_rgb666_pins>; 468 | status = "okay"; 469 | }; 470 | 471 | &tcon0_out { 472 | tcon0_out_panel: endpoint@0 { 473 | reg = <0>; 474 | remote-endpoint = <&panel_input>; 475 | }; 476 | }; 477 | 478 | &uart0 { 479 | status = "okay"; 480 | pinctrl-names = "default"; 481 | pinctrl-0 = <&uart0_pb_pins>; 482 | }; 483 | 484 | &uart3 { 485 | status = "okay"; 486 | pinctrl-names = "default"; 487 | pinctrl-0 = <&uart3_pins>; 488 | }; 489 | 490 | &usb_otg { 491 | dr_mode = "host"; 492 | status = "okay"; 493 | }; 494 | 495 | &usbphy { 496 | status = "okay"; 497 | usb0_id_det-gpios = <&pio 7 8 GPIO_ACTIVE_HIGH>; /* PH8 */ 498 | usb0_vbus_power-supply = <&usb_power_supply>; 499 | usb0_vbus-supply = <®_usb0_vbus>; 500 | usb1_vbus-supply = <®_vcc5v0>; 501 | pinctrl-names = "default"; 502 | pinctrl-0 = <&usb0_id_detect_pin0>; 503 | }; 504 | 505 | &usb_power_supply { 506 | status = "okay"; 507 | }; 508 | 509 | &dphy { 510 | status = "okay"; 511 | }; 512 | -------------------------------------------------------------------------------- /br2_external/board/X6100/linux/sun8i-r16-x6100_defconfig: -------------------------------------------------------------------------------- 1 | CONFIG_SYSVIPC=y 2 | CONFIG_POSIX_MQUEUE=y 3 | CONFIG_WATCH_QUEUE=y 4 | CONFIG_USELIB=y 5 | CONFIG_NO_HZ=y 6 | CONFIG_HIGH_RES_TIMERS=y 7 | CONFIG_BPF_SYSCALL=y 8 | CONFIG_BPF_JIT=y 9 | CONFIG_PREEMPT=y 10 | CONFIG_CGROUPS=y 11 | CONFIG_NAMESPACES=y 12 | CONFIG_BOOT_CONFIG=y 13 | CONFIG_USERFAULTFD=y 14 | CONFIG_EMBEDDED=y 15 | CONFIG_PERF_EVENTS=y 16 | CONFIG_ARCH_SUNXI=y 17 | # CONFIG_VDSO is not set 18 | CONFIG_SMP=y 19 | CONFIG_NR_CPUS=8 20 | CONFIG_HOTPLUG_CPU=y 21 | CONFIG_HIGHMEM=y 22 | CONFIG_CPU_FREQ=y 23 | CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y 24 | CONFIG_CPU_FREQ_GOV_POWERSAVE=y 25 | CONFIG_CPU_FREQ_GOV_USERSPACE=y 26 | CONFIG_CPU_FREQ_GOV_ONDEMAND=y 27 | CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y 28 | CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y 29 | CONFIG_CPUFREQ_DT=y 30 | CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM=y 31 | CONFIG_CPU_IDLE=y 32 | CONFIG_ARM_CPUIDLE=y 33 | CONFIG_ARM_PSCI_CPUIDLE=y 34 | CONFIG_VFP=y 35 | CONFIG_NEON=y 36 | CONFIG_KERNEL_MODE_NEON=y 37 | # CONFIG_SUSPEND is not set 38 | CONFIG_PM=y 39 | CONFIG_ARM_CRYPTO=y 40 | CONFIG_CRYPTO_SHA1_ARM_NEON=m 41 | CONFIG_CRYPTO_SHA1_ARM_CE=m 42 | CONFIG_CRYPTO_SHA2_ARM_CE=m 43 | CONFIG_CRYPTO_SHA512_ARM=m 44 | CONFIG_CRYPTO_AES_ARM=m 45 | CONFIG_CRYPTO_AES_ARM_BS=m 46 | CONFIG_CRYPTO_AES_ARM_CE=m 47 | CONFIG_CRYPTO_GHASH_ARM_CE=m 48 | CONFIG_CRYPTO_CRC32_ARM_CE=m 49 | CONFIG_CRYPTO_CHACHA20_NEON=m 50 | CONFIG_CRYPTO_POLY1305_ARM=m 51 | CONFIG_CRYPTO_NHPOLY1305_NEON=m 52 | CONFIG_CRYPTO_CURVE25519_NEON=m 53 | # CONFIG_GCC_PLUGINS is not set 54 | CONFIG_MODULES=y 55 | CONFIG_MODULE_UNLOAD=y 56 | CONFIG_BINFMT_MISC=m 57 | CONFIG_CMA=y 58 | CONFIG_NET=y 59 | CONFIG_PACKET=y 60 | CONFIG_UNIX=y 61 | CONFIG_UNIX_DIAG=y 62 | CONFIG_TLS=y 63 | CONFIG_INET=y 64 | CONFIG_IP_PNP=y 65 | CONFIG_IP_PNP_DHCP=y 66 | CONFIG_IP_PNP_BOOTP=y 67 | CONFIG_NET_IPIP=y 68 | # CONFIG_INET_DIAG is not set 69 | # CONFIG_IPV6 is not set 70 | CONFIG_CAN=y 71 | CONFIG_CAN_SUN4I=y 72 | CONFIG_BT=m 73 | CONFIG_BT_RFCOMM=m 74 | CONFIG_BT_BNEP=m 75 | CONFIG_BT_HIDP=m 76 | CONFIG_BT_HCIBTUSB=m 77 | CONFIG_CFG80211=m 78 | CONFIG_CFG80211_DEVELOPER_WARNINGS=y 79 | CONFIG_CFG80211_CERTIFICATION_ONUS=y 80 | # CONFIG_CFG80211_REQUIRE_SIGNED_REGDB is not set 81 | # CONFIG_CFG80211_DEFAULT_PS is not set 82 | # CONFIG_CFG80211_CRDA_SUPPORT is not set 83 | CONFIG_LIB80211_DEBUG=y 84 | CONFIG_MAC80211=m 85 | CONFIG_DEVTMPFS=y 86 | CONFIG_DEVTMPFS_MOUNT=y 87 | CONFIG_ARM_SCMI_PROTOCOL=y 88 | CONFIG_ARM_SCPI_PROTOCOL=y 89 | CONFIG_BLK_DEV_SD=y 90 | CONFIG_ATA=y 91 | CONFIG_AHCI_SUNXI=y 92 | CONFIG_NETDEVICES=y 93 | # CONFIG_NET_VENDOR_ALACRITECH is not set 94 | CONFIG_SUN4I_EMAC=y 95 | # CONFIG_NET_VENDOR_AMAZON is not set 96 | # CONFIG_NET_VENDOR_AQUANTIA is not set 97 | # CONFIG_NET_VENDOR_ARC is not set 98 | # CONFIG_NET_VENDOR_BROADCOM is not set 99 | # CONFIG_NET_VENDOR_CADENCE is not set 100 | # CONFIG_NET_VENDOR_CAVIUM is not set 101 | # CONFIG_NET_VENDOR_CIRRUS is not set 102 | # CONFIG_NET_VENDOR_CORTINA is not set 103 | # CONFIG_NET_VENDOR_EZCHIP is not set 104 | # CONFIG_NET_VENDOR_FARADAY is not set 105 | # CONFIG_NET_VENDOR_GOOGLE is not set 106 | # CONFIG_NET_VENDOR_HISILICON is not set 107 | # CONFIG_NET_VENDOR_HUAWEI is not set 108 | # CONFIG_NET_VENDOR_INTEL is not set 109 | # CONFIG_NET_VENDOR_MARVELL is not set 110 | # CONFIG_NET_VENDOR_MELLANOX is not set 111 | # CONFIG_NET_VENDOR_MICREL is not set 112 | # CONFIG_NET_VENDOR_MICROCHIP is not set 113 | # CONFIG_NET_VENDOR_MICROSEMI is not set 114 | # CONFIG_NET_VENDOR_NI is not set 115 | # CONFIG_NET_VENDOR_NATSEMI is not set 116 | # CONFIG_NET_VENDOR_NETRONOME is not set 117 | # CONFIG_NET_VENDOR_PENSANDO is not set 118 | # CONFIG_NET_VENDOR_QUALCOMM is not set 119 | # CONFIG_NET_VENDOR_RENESAS is not set 120 | # CONFIG_NET_VENDOR_ROCKER is not set 121 | # CONFIG_NET_VENDOR_SAMSUNG is not set 122 | # CONFIG_NET_VENDOR_SEEQ is not set 123 | # CONFIG_NET_VENDOR_SOLARFLARE is not set 124 | # CONFIG_NET_VENDOR_SMSC is not set 125 | # CONFIG_NET_VENDOR_SOCIONEXT is not set 126 | CONFIG_STMMAC_ETH=y 127 | # CONFIG_NET_VENDOR_SYNOPSYS is not set 128 | # CONFIG_NET_VENDOR_VIA is not set 129 | # CONFIG_NET_VENDOR_WIZNET is not set 130 | # CONFIG_NET_VENDOR_XILINX is not set 131 | CONFIG_USB_NET_DRIVERS=m 132 | CONFIG_USB_RTL8152=m 133 | CONFIG_USB_LAN78XX=m 134 | CONFIG_USB_USBNET=m 135 | CONFIG_USB_NET_CDC_EEM=m 136 | # CONFIG_USB_NET_NET1080 is not set 137 | # CONFIG_USB_NET_ZAURUS is not set 138 | CONFIG_USB_RTL8153_ECM=m 139 | # CONFIG_WLAN_VENDOR_ADMTEK is not set 140 | # CONFIG_WLAN_VENDOR_ATH is not set 141 | # CONFIG_WLAN_VENDOR_ATMEL is not set 142 | # CONFIG_WLAN_VENDOR_BROADCOM is not set 143 | # CONFIG_WLAN_VENDOR_CISCO is not set 144 | # CONFIG_WLAN_VENDOR_INTEL is not set 145 | # CONFIG_WLAN_VENDOR_INTERSIL is not set 146 | # CONFIG_WLAN_VENDOR_MARVELL is not set 147 | # CONFIG_WLAN_VENDOR_MEDIATEK is not set 148 | CONFIG_RT2X00=m 149 | CONFIG_RT2500USB=m 150 | CONFIG_RT73USB=m 151 | CONFIG_RT2800USB=m 152 | CONFIG_RT2800USB_RT3573=y 153 | CONFIG_RT2800USB_RT53XX=y 154 | CONFIG_RT2800USB_RT55XX=y 155 | CONFIG_RT2800USB_UNKNOWN=y 156 | CONFIG_RTL8192CU=m 157 | CONFIG_RTL8XXXU=m 158 | CONFIG_RTL8XXXU_UNTESTED=y 159 | # CONFIG_WLAN_VENDOR_RSI is not set 160 | # CONFIG_WLAN_VENDOR_ST is not set 161 | # CONFIG_WLAN_VENDOR_TI is not set 162 | # CONFIG_WLAN_VENDOR_ZYDAS is not set 163 | # CONFIG_WLAN_VENDOR_QUANTENNA is not set 164 | CONFIG_INPUT_FF_MEMLESS=y 165 | CONFIG_INPUT_JOYDEV=m 166 | CONFIG_INPUT_EVDEV=y 167 | CONFIG_KEYBOARD_GPIO=y 168 | CONFIG_KEYBOARD_GPIO_POLLED=y 169 | CONFIG_KEYBOARD_MATRIX=y 170 | CONFIG_KEYBOARD_SUN4I_LRADC=y 171 | CONFIG_INPUT_JOYSTICK=y 172 | CONFIG_INPUT_TOUCHSCREEN=y 173 | CONFIG_TOUCHSCREEN_SUN4I=y 174 | CONFIG_INPUT_MISC=y 175 | CONFIG_INPUT_AXP20X_PEK=y 176 | CONFIG_INPUT_GPIO_ROTARY_ENCODER=y 177 | CONFIG_SERIO_SUN4I_PS2=y 178 | CONFIG_SERIAL_8250=y 179 | CONFIG_SERIAL_8250_CONSOLE=y 180 | CONFIG_SERIAL_8250_NR_UARTS=8 181 | CONFIG_SERIAL_8250_RUNTIME_UARTS=8 182 | CONFIG_SERIAL_8250_DW=y 183 | CONFIG_SERIAL_OF_PLATFORM=y 184 | # CONFIG_HW_RANDOM is not set 185 | CONFIG_I2C_CHARDEV=y 186 | CONFIG_I2C_MUX=y 187 | CONFIG_I2C_MV64XXX=y 188 | CONFIG_I2C_SUN6I_P2WI=y 189 | CONFIG_SPI=y 190 | CONFIG_SPI_GPIO=y 191 | CONFIG_SPI_SUN4I=y 192 | CONFIG_SPI_SUN6I=y 193 | CONFIG_GPIO_SYSFS=y 194 | CONFIG_POWER_RESET=y 195 | CONFIG_CHARGER_AXP20X=m 196 | CONFIG_BATTERY_AXP20X=m 197 | CONFIG_AXP20X_POWER=y 198 | CONFIG_THERMAL=y 199 | CONFIG_CPU_THERMAL=y 200 | CONFIG_SUN8I_THERMAL=y 201 | CONFIG_WATCHDOG=y 202 | CONFIG_SUNXI_WATCHDOG=y 203 | CONFIG_SSB=m 204 | CONFIG_BCMA=m 205 | CONFIG_MFD_AC100=y 206 | CONFIG_MFD_AXP20X_I2C=y 207 | CONFIG_MFD_AXP20X_RSB=y 208 | CONFIG_REGULATOR=y 209 | CONFIG_REGULATOR_FIXED_VOLTAGE=y 210 | CONFIG_REGULATOR_AXP20X=y 211 | CONFIG_REGULATOR_GPIO=y 212 | CONFIG_RC_CORE=y 213 | CONFIG_RC_DEVICES=y 214 | CONFIG_IR_SUNXI=y 215 | # CONFIG_MEDIA_CEC_SUPPORT is not set 216 | CONFIG_MEDIA_SUPPORT=m 217 | CONFIG_V4L_MEM2MEM_DRIVERS=y 218 | CONFIG_DRM=y 219 | CONFIG_DRM_MALI_DISPLAY=m 220 | CONFIG_DRM_SUN4I=y 221 | CONFIG_DRM_SIMPLE_BRIDGE=y 222 | CONFIG_DRM_LIMA=y 223 | CONFIG_FB=y 224 | CONFIG_FIRMWARE_EDID=y 225 | CONFIG_FB_MODE_HELPERS=y 226 | CONFIG_FB_TILEBLITTING=y 227 | CONFIG_FB_OPENCORES=y 228 | CONFIG_FB_SIMPLE=y 229 | CONFIG_LCD_CLASS_DEVICE=y 230 | CONFIG_BACKLIGHT_CLASS_DEVICE=y 231 | CONFIG_BACKLIGHT_PWM=y 232 | CONFIG_BACKLIGHT_GPIO=y 233 | CONFIG_BACKLIGHT_LED=y 234 | CONFIG_FRAMEBUFFER_CONSOLE=y 235 | CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y 236 | CONFIG_LOGO=y 237 | CONFIG_SOUND=y 238 | CONFIG_SND=y 239 | CONFIG_SND_DUMMY=m 240 | CONFIG_SND_ALOOP=m 241 | CONFIG_SND_USB_AUDIO=m 242 | CONFIG_SND_USB_UA101=m 243 | CONFIG_SND_USB_CAIAQ=m 244 | CONFIG_SND_USB_CAIAQ_INPUT=y 245 | CONFIG_SND_USB_6FIRE=m 246 | CONFIG_SND_USB_HIFACE=m 247 | CONFIG_SND_BCD2000=m 248 | CONFIG_SND_USB_POD=m 249 | CONFIG_SND_USB_PODHD=m 250 | CONFIG_SND_USB_TONEPORT=m 251 | CONFIG_SND_USB_VARIAX=m 252 | CONFIG_SND_SOC=y 253 | CONFIG_SND_SUN4I_CODEC=y 254 | CONFIG_SND_SUN8I_CODEC=y 255 | CONFIG_SND_SUN8I_CODEC_ANALOG=y 256 | CONFIG_SND_SUN4I_I2S=y 257 | CONFIG_SND_SUN4I_SPDIF=y 258 | CONFIG_SND_SOC_CS42L51_I2C=m 259 | CONFIG_SND_SOC_CS42L52=m 260 | CONFIG_SND_SIMPLE_CARD=y 261 | CONFIG_SND_AUDIO_GRAPH_CARD=y 262 | CONFIG_HID_A4TECH=m 263 | CONFIG_HID_APPLE=m 264 | CONFIG_HID_BELKIN=m 265 | CONFIG_HID_CHERRY=m 266 | CONFIG_HID_CHICONY=m 267 | CONFIG_HID_CYPRESS=m 268 | CONFIG_HID_EZKEY=m 269 | CONFIG_HID_ITE=m 270 | CONFIG_HID_KENSINGTON=m 271 | CONFIG_HID_LOGITECH=m 272 | CONFIG_HID_LOGITECH_HIDPP=m 273 | CONFIG_LOGITECH_FF=y 274 | CONFIG_LOGIRUMBLEPAD2_FF=y 275 | CONFIG_LOGIG940_FF=y 276 | CONFIG_HID_REDRAGON=m 277 | CONFIG_HID_MICROSOFT=m 278 | CONFIG_HID_MONTEREY=m 279 | CONFIG_USB=y 280 | CONFIG_USB_OTG=y 281 | CONFIG_USB_XHCI_HCD=m 282 | CONFIG_USB_EHCI_HCD=y 283 | CONFIG_USB_EHCI_HCD_PLATFORM=y 284 | CONFIG_USB_OHCI_HCD=y 285 | CONFIG_USB_OHCI_HCD_PLATFORM=y 286 | CONFIG_USB_WDM=y 287 | CONFIG_USB_STORAGE=m 288 | CONFIG_USB_STORAGE_REALTEK=m 289 | CONFIG_USB_STORAGE_DATAFAB=m 290 | CONFIG_USB_STORAGE_FREECOM=m 291 | CONFIG_USB_STORAGE_ISD200=m 292 | CONFIG_USB_STORAGE_USBAT=m 293 | CONFIG_USB_STORAGE_SDDR09=m 294 | CONFIG_USB_STORAGE_SDDR55=m 295 | CONFIG_USB_STORAGE_JUMPSHOT=m 296 | CONFIG_USB_STORAGE_ALAUDA=m 297 | CONFIG_USB_STORAGE_ONETOUCH=m 298 | CONFIG_USB_STORAGE_KARMA=m 299 | CONFIG_USB_STORAGE_CYPRESS_ATACB=m 300 | CONFIG_USB_STORAGE_ENE_UB6250=m 301 | CONFIG_USB_UAS=m 302 | CONFIG_USB_MUSB_HDRC=m 303 | CONFIG_USB_MUSB_SUNXI=m 304 | CONFIG_USB_SERIAL=m 305 | CONFIG_USB_SERIAL_GENERIC=y 306 | CONFIG_USB_SERIAL_SIMPLE=m 307 | CONFIG_USB_SERIAL_AIRCABLE=m 308 | CONFIG_USB_SERIAL_ARK3116=m 309 | CONFIG_USB_SERIAL_BELKIN=m 310 | CONFIG_USB_SERIAL_CH341=m 311 | CONFIG_USB_SERIAL_WHITEHEAT=m 312 | CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m 313 | CONFIG_USB_SERIAL_CP210X=m 314 | CONFIG_USB_SERIAL_CYPRESS_M8=m 315 | CONFIG_USB_SERIAL_EMPEG=m 316 | CONFIG_USB_SERIAL_FTDI_SIO=m 317 | CONFIG_USB_SERIAL_VISOR=m 318 | CONFIG_USB_SERIAL_IPAQ=m 319 | CONFIG_USB_SERIAL_IR=m 320 | CONFIG_USB_SERIAL_EDGEPORT=m 321 | CONFIG_USB_SERIAL_EDGEPORT_TI=m 322 | CONFIG_USB_SERIAL_F81232=m 323 | CONFIG_USB_SERIAL_F8153X=m 324 | CONFIG_USB_SERIAL_GARMIN=m 325 | CONFIG_USB_SERIAL_IPW=m 326 | CONFIG_USB_SERIAL_IUU=m 327 | CONFIG_USB_SERIAL_KEYSPAN_PDA=m 328 | CONFIG_USB_SERIAL_KEYSPAN=m 329 | CONFIG_USB_SERIAL_KLSI=m 330 | CONFIG_USB_SERIAL_KOBIL_SCT=m 331 | CONFIG_USB_SERIAL_MCT_U232=m 332 | CONFIG_USB_SERIAL_METRO=m 333 | CONFIG_USB_SERIAL_MOS7720=m 334 | CONFIG_USB_SERIAL_MOS7840=m 335 | CONFIG_USB_SERIAL_MXUPORT=m 336 | CONFIG_USB_SERIAL_NAVMAN=m 337 | CONFIG_USB_SERIAL_PL2303=m 338 | CONFIG_USB_SERIAL_OTI6858=m 339 | CONFIG_USB_SERIAL_QCAUX=m 340 | CONFIG_USB_SERIAL_QUALCOMM=m 341 | CONFIG_USB_SERIAL_SPCP8X5=m 342 | CONFIG_USB_SERIAL_SAFE=m 343 | CONFIG_USB_SERIAL_SAFE_PADDED=y 344 | CONFIG_USB_SERIAL_SIERRAWIRELESS=m 345 | CONFIG_USB_SERIAL_SYMBOL=m 346 | CONFIG_USB_SERIAL_TI=m 347 | CONFIG_USB_SERIAL_CYBERJACK=m 348 | CONFIG_USB_SERIAL_OPTION=m 349 | CONFIG_USB_SERIAL_WISHBONE=m 350 | CONFIG_USB_SERIAL_SSU100=m 351 | CONFIG_USB_SERIAL_QT2=m 352 | CONFIG_USB_SERIAL_UPD78F0730=m 353 | CONFIG_USB_SERIAL_XR=m 354 | CONFIG_NOP_USB_XCEIV=m 355 | CONFIG_USB_GADGET=m 356 | CONFIG_USB_ZERO=m 357 | CONFIG_USB_AUDIO=m 358 | CONFIG_USB_ETH=m 359 | CONFIG_USB_G_NCM=m 360 | CONFIG_USB_GADGETFS=m 361 | CONFIG_USB_FUNCTIONFS=m 362 | CONFIG_USB_MASS_STORAGE=m 363 | CONFIG_USB_G_SERIAL=m 364 | CONFIG_USB_CDC_COMPOSITE=m 365 | CONFIG_USB_G_ACM_MS=m 366 | CONFIG_USB_G_MULTI=m 367 | CONFIG_USB_G_HID=m 368 | CONFIG_TYPEC=y 369 | CONFIG_USB_ROLE_SWITCH=m 370 | CONFIG_MMC=y 371 | CONFIG_MMC_SUNXI=y 372 | CONFIG_LEDS_CLASS=y 373 | CONFIG_LEDS_GPIO=y 374 | CONFIG_LEDS_USER=y 375 | CONFIG_LEDS_TRIGGERS=y 376 | CONFIG_LEDS_TRIGGER_HEARTBEAT=y 377 | CONFIG_LEDS_TRIGGER_DEFAULT_ON=y 378 | CONFIG_RTC_CLASS=y 379 | # CONFIG_RTC_INTF_SYSFS is not set 380 | # CONFIG_RTC_INTF_PROC is not set 381 | CONFIG_RTC_DRV_AC100=y 382 | CONFIG_RTC_DRV_PCF8523=m 383 | CONFIG_RTC_DRV_PCF85063=m 384 | CONFIG_RTC_DRV_PCF85363=m 385 | CONFIG_RTC_DRV_PCF8563=m 386 | CONFIG_RTC_DRV_PCF8583=m 387 | CONFIG_RTC_DRV_DS1302=m 388 | CONFIG_RTC_DRV_DS1305=m 389 | CONFIG_RTC_DRV_DS1343=m 390 | CONFIG_RTC_DRV_DS1347=m 391 | CONFIG_RTC_DRV_DS1390=m 392 | CONFIG_RTC_DRV_SUNXI=y 393 | CONFIG_DMADEVICES=y 394 | CONFIG_DMA_SUN6I=y 395 | # CONFIG_VIRTIO_MENU is not set 396 | # CONFIG_VHOST_MENU is not set 397 | CONFIG_STAGING=y 398 | CONFIG_RTLLIB=m 399 | CONFIG_RTL8723BS=m 400 | CONFIG_R8712U=m 401 | CONFIG_R8188EU=m 402 | CONFIG_STAGING_MEDIA=y 403 | CONFIG_VIDEO_SUNXI=y 404 | CONFIG_VIDEO_SUNXI_CEDRUS=m 405 | CONFIG_MAILBOX=y 406 | # CONFIG_IOMMU_SUPPORT is not set 407 | CONFIG_DEVFREQ_GOV_PERFORMANCE=y 408 | CONFIG_DEVFREQ_GOV_POWERSAVE=y 409 | CONFIG_DEVFREQ_GOV_USERSPACE=y 410 | CONFIG_DEVFREQ_GOV_PASSIVE=y 411 | CONFIG_IIO=y 412 | CONFIG_AXP20X_ADC=m 413 | CONFIG_AXP288_ADC=m 414 | CONFIG_PWM=y 415 | CONFIG_PWM_SUN4I=y 416 | CONFIG_PHY_SUN4I_USB=y 417 | CONFIG_PHY_SUN9I_USB=y 418 | CONFIG_NVMEM_SUNXI_SID=y 419 | CONFIG_EXT4_FS=y 420 | CONFIG_VFAT_FS=y 421 | CONFIG_TMPFS=y 422 | CONFIG_NFS_FS=y 423 | CONFIG_NFS_V3_ACL=y 424 | CONFIG_NFS_V4=y 425 | CONFIG_ROOT_NFS=y 426 | CONFIG_NLS_CODEPAGE_437=y 427 | CONFIG_NLS_ISO8859_1=y 428 | CONFIG_CRYPTO_RSA=y 429 | CONFIG_CRYPTO_LZO=y 430 | CONFIG_CRYPTO_LZ4=y 431 | CONFIG_CRYPTO_DEV_SUN4I_SS=y 432 | CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG=y 433 | CONFIG_CRYPTO_DEV_SUN8I_CE=y 434 | CONFIG_CRYPTO_DEV_SUN8I_SS=m 435 | CONFIG_ASYMMETRIC_KEY_TYPE=y 436 | CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y 437 | CONFIG_X509_CERTIFICATE_PARSER=y 438 | CONFIG_PKCS7_MESSAGE_PARSER=y 439 | CONFIG_SYSTEM_TRUSTED_KEYRING=y 440 | CONFIG_DMA_CMA=y 441 | CONFIG_PRINTK_TIME=y 442 | CONFIG_MAGIC_SYSRQ=y 443 | CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="B" 444 | CONFIG_DEBUG_FS=y 445 | # CONFIG_FTRACE is not set 446 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 2, June 1991 3 | 4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc., 5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 6 | Everyone is permitted to copy and distribute verbatim copies 7 | of this license document, but changing it is not allowed. 8 | 9 | Preamble 10 | 11 | The licenses for most software are designed to take away your 12 | freedom to share and change it. By contrast, the GNU General Public 13 | License is intended to guarantee your freedom to share and change free 14 | software--to make sure the software is free for all its users. This 15 | General Public License applies to most of the Free Software 16 | Foundation's software and to any other program whose authors commit to 17 | using it. (Some other Free Software Foundation software is covered by 18 | the GNU Lesser General Public License instead.) You can apply it to 19 | your programs, too. 20 | 21 | When we speak of free software, we are referring to freedom, not 22 | price. Our General Public Licenses are designed to make sure that you 23 | have the freedom to distribute copies of free software (and charge for 24 | this service if you wish), that you receive source code or can get it 25 | if you want it, that you can change the software or use pieces of it 26 | in new free programs; and that you know you can do these things. 27 | 28 | To protect your rights, we need to make restrictions that forbid 29 | anyone to deny you these rights or to ask you to surrender the rights. 30 | These restrictions translate to certain responsibilities for you if you 31 | distribute copies of the software, or if you modify it. 32 | 33 | For example, if you distribute copies of such a program, whether 34 | gratis or for a fee, you must give the recipients all the rights that 35 | you have. You must make sure that they, too, receive or can get the 36 | source code. And you must show them these terms so they know their 37 | rights. 38 | 39 | We protect your rights with two steps: (1) copyright the software, and 40 | (2) offer you this license which gives you legal permission to copy, 41 | distribute and/or modify the software. 42 | 43 | Also, for each author's protection and ours, we want to make certain 44 | that everyone understands that there is no warranty for this free 45 | software. If the software is modified by someone else and passed on, we 46 | want its recipients to know that what they have is not the original, so 47 | that any problems introduced by others will not reflect on the original 48 | authors' reputations. 49 | 50 | Finally, any free program is threatened constantly by software 51 | patents. We wish to avoid the danger that redistributors of a free 52 | program will individually obtain patent licenses, in effect making the 53 | program proprietary. To prevent this, we have made it clear that any 54 | patent must be licensed for everyone's free use or not licensed at all. 55 | 56 | The precise terms and conditions for copying, distribution and 57 | modification follow. 58 | 59 | GNU GENERAL PUBLIC LICENSE 60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 61 | 62 | 0. This License applies to any program or other work which contains 63 | a notice placed by the copyright holder saying it may be distributed 64 | under the terms of this General Public License. The "Program", below, 65 | refers to any such program or work, and a "work based on the Program" 66 | means either the Program or any derivative work under copyright law: 67 | that is to say, a work containing the Program or a portion of it, 68 | either verbatim or with modifications and/or translated into another 69 | language. (Hereinafter, translation is included without limitation in 70 | the term "modification".) Each licensee is addressed as "you". 71 | 72 | Activities other than copying, distribution and modification are not 73 | covered by this License; they are outside its scope. The act of 74 | running the Program is not restricted, and the output from the Program 75 | is covered only if its contents constitute a work based on the 76 | Program (independent of having been made by running the Program). 77 | Whether that is true depends on what the Program does. 78 | 79 | 1. You may copy and distribute verbatim copies of the Program's 80 | source code as you receive it, in any medium, provided that you 81 | conspicuously and appropriately publish on each copy an appropriate 82 | copyright notice and disclaimer of warranty; keep intact all the 83 | notices that refer to this License and to the absence of any warranty; 84 | and give any other recipients of the Program a copy of this License 85 | along with the Program. 86 | 87 | You may charge a fee for the physical act of transferring a copy, and 88 | you may at your option offer warranty protection in exchange for a fee. 89 | 90 | 2. You may modify your copy or copies of the Program or any portion 91 | of it, thus forming a work based on the Program, and copy and 92 | distribute such modifications or work under the terms of Section 1 93 | above, provided that you also meet all of these conditions: 94 | 95 | a) You must cause the modified files to carry prominent notices 96 | stating that you changed the files and the date of any change. 97 | 98 | b) You must cause any work that you distribute or publish, that in 99 | whole or in part contains or is derived from the Program or any 100 | part thereof, to be licensed as a whole at no charge to all third 101 | parties under the terms of this License. 102 | 103 | c) If the modified program normally reads commands interactively 104 | when run, you must cause it, when started running for such 105 | interactive use in the most ordinary way, to print or display an 106 | announcement including an appropriate copyright notice and a 107 | notice that there is no warranty (or else, saying that you provide 108 | a warranty) and that users may redistribute the program under 109 | these conditions, and telling the user how to view a copy of this 110 | License. (Exception: if the Program itself is interactive but 111 | does not normally print such an announcement, your work based on 112 | the Program is not required to print an announcement.) 113 | 114 | These requirements apply to the modified work as a whole. If 115 | identifiable sections of that work are not derived from the Program, 116 | and can be reasonably considered independent and separate works in 117 | themselves, then this License, and its terms, do not apply to those 118 | sections when you distribute them as separate works. But when you 119 | distribute the same sections as part of a whole which is a work based 120 | on the Program, the distribution of the whole must be on the terms of 121 | this License, whose permissions for other licensees extend to the 122 | entire whole, and thus to each and every part regardless of who wrote it. 123 | 124 | Thus, it is not the intent of this section to claim rights or contest 125 | your rights to work written entirely by you; rather, the intent is to 126 | exercise the right to control the distribution of derivative or 127 | collective works based on the Program. 128 | 129 | In addition, mere aggregation of another work not based on the Program 130 | with the Program (or with a work based on the Program) on a volume of 131 | a storage or distribution medium does not bring the other work under 132 | the scope of this License. 133 | 134 | 3. You may copy and distribute the Program (or a work based on it, 135 | under Section 2) in object code or executable form under the terms of 136 | Sections 1 and 2 above provided that you also do one of the following: 137 | 138 | a) Accompany it with the complete corresponding machine-readable 139 | source code, which must be distributed under the terms of Sections 140 | 1 and 2 above on a medium customarily used for software interchange; or, 141 | 142 | b) Accompany it with a written offer, valid for at least three 143 | years, to give any third party, for a charge no more than your 144 | cost of physically performing source distribution, a complete 145 | machine-readable copy of the corresponding source code, to be 146 | distributed under the terms of Sections 1 and 2 above on a medium 147 | customarily used for software interchange; or, 148 | 149 | c) Accompany it with the information you received as to the offer 150 | to distribute corresponding source code. (This alternative is 151 | allowed only for noncommercial distribution and only if you 152 | received the program in object code or executable form with such 153 | an offer, in accord with Subsection b above.) 154 | 155 | The source code for a work means the preferred form of the work for 156 | making modifications to it. For an executable work, complete source 157 | code means all the source code for all modules it contains, plus any 158 | associated interface definition files, plus the scripts used to 159 | control compilation and installation of the executable. However, as a 160 | special exception, the source code distributed need not include 161 | anything that is normally distributed (in either source or binary 162 | form) with the major components (compiler, kernel, and so on) of the 163 | operating system on which the executable runs, unless that component 164 | itself accompanies the executable. 165 | 166 | If distribution of executable or object code is made by offering 167 | access to copy from a designated place, then offering equivalent 168 | access to copy the source code from the same place counts as 169 | distribution of the source code, even though third parties are not 170 | compelled to copy the source along with the object code. 171 | 172 | 4. You may not copy, modify, sublicense, or distribute the Program 173 | except as expressly provided under this License. Any attempt 174 | otherwise to copy, modify, sublicense or distribute the Program is 175 | void, and will automatically terminate your rights under this License. 176 | However, parties who have received copies, or rights, from you under 177 | this License will not have their licenses terminated so long as such 178 | parties remain in full compliance. 179 | 180 | 5. You are not required to accept this License, since you have not 181 | signed it. However, nothing else grants you permission to modify or 182 | distribute the Program or its derivative works. These actions are 183 | prohibited by law if you do not accept this License. Therefore, by 184 | modifying or distributing the Program (or any work based on the 185 | Program), you indicate your acceptance of this License to do so, and 186 | all its terms and conditions for copying, distributing or modifying 187 | the Program or works based on it. 188 | 189 | 6. Each time you redistribute the Program (or any work based on the 190 | Program), the recipient automatically receives a license from the 191 | original licensor to copy, distribute or modify the Program subject to 192 | these terms and conditions. You may not impose any further 193 | restrictions on the recipients' exercise of the rights granted herein. 194 | You are not responsible for enforcing compliance by third parties to 195 | this License. 196 | 197 | 7. If, as a consequence of a court judgment or allegation of patent 198 | infringement or for any other reason (not limited to patent issues), 199 | conditions are imposed on you (whether by court order, agreement or 200 | otherwise) that contradict the conditions of this License, they do not 201 | excuse you from the conditions of this License. If you cannot 202 | distribute so as to satisfy simultaneously your obligations under this 203 | License and any other pertinent obligations, then as a consequence you 204 | may not distribute the Program at all. For example, if a patent 205 | license would not permit royalty-free redistribution of the Program by 206 | all those who receive copies directly or indirectly through you, then 207 | the only way you could satisfy both it and this License would be to 208 | refrain entirely from distribution of the Program. 209 | 210 | If any portion of this section is held invalid or unenforceable under 211 | any particular circumstance, the balance of the section is intended to 212 | apply and the section as a whole is intended to apply in other 213 | circumstances. 214 | 215 | It is not the purpose of this section to induce you to infringe any 216 | patents or other property right claims or to contest validity of any 217 | such claims; this section has the sole purpose of protecting the 218 | integrity of the free software distribution system, which is 219 | implemented by public license practices. Many people have made 220 | generous contributions to the wide range of software distributed 221 | through that system in reliance on consistent application of that 222 | system; it is up to the author/donor to decide if he or she is willing 223 | to distribute software through any other system and a licensee cannot 224 | impose that choice. 225 | 226 | This section is intended to make thoroughly clear what is believed to 227 | be a consequence of the rest of this License. 228 | 229 | 8. If the distribution and/or use of the Program is restricted in 230 | certain countries either by patents or by copyrighted interfaces, the 231 | original copyright holder who places the Program under this License 232 | may add an explicit geographical distribution limitation excluding 233 | those countries, so that distribution is permitted only in or among 234 | countries not thus excluded. In such case, this License incorporates 235 | the limitation as if written in the body of this License. 236 | 237 | 9. The Free Software Foundation may publish revised and/or new versions 238 | of the General Public License from time to time. Such new versions will 239 | be similar in spirit to the present version, but may differ in detail to 240 | address new problems or concerns. 241 | 242 | Each version is given a distinguishing version number. If the Program 243 | specifies a version number of this License which applies to it and "any 244 | later version", you have the option of following the terms and conditions 245 | either of that version or of any later version published by the Free 246 | Software Foundation. If the Program does not specify a version number of 247 | this License, you may choose any version ever published by the Free Software 248 | Foundation. 249 | 250 | 10. If you wish to incorporate parts of the Program into other free 251 | programs whose distribution conditions are different, write to the author 252 | to ask for permission. For software which is copyrighted by the Free 253 | Software Foundation, write to the Free Software Foundation; we sometimes 254 | make exceptions for this. Our decision will be guided by the two goals 255 | of preserving the free status of all derivatives of our free software and 256 | of promoting the sharing and reuse of software generally. 257 | 258 | NO WARRANTY 259 | 260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 268 | REPAIR OR CORRECTION. 269 | 270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 278 | POSSIBILITY OF SUCH DAMAGES. 279 | 280 | END OF TERMS AND CONDITIONS 281 | 282 | How to Apply These Terms to Your New Programs 283 | 284 | If you develop a new program, and you want it to be of the greatest 285 | possible use to the public, the best way to achieve this is to make it 286 | free software which everyone can redistribute and change under these terms. 287 | 288 | To do so, attach the following notices to the program. It is safest 289 | to attach them to the start of each source file to most effectively 290 | convey the exclusion of warranty; and each file should have at least 291 | the "copyright" line and a pointer to where the full notice is found. 292 | 293 | 294 | Copyright (C) 295 | 296 | This program is free software; you can redistribute it and/or modify 297 | it under the terms of the GNU General Public License as published by 298 | the Free Software Foundation; either version 2 of the License, or 299 | (at your option) any later version. 300 | 301 | This program is distributed in the hope that it will be useful, 302 | but WITHOUT ANY WARRANTY; without even the implied warranty of 303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 304 | GNU General Public License for more details. 305 | 306 | You should have received a copy of the GNU General Public License along 307 | with this program; if not, write to the Free Software Foundation, Inc., 308 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 309 | 310 | Also add information on how to contact you by electronic and paper mail. 311 | 312 | If the program is interactive, make it output a short notice like this 313 | when it starts in an interactive mode: 314 | 315 | Gnomovision version 69, Copyright (C) year name of author 316 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 317 | This is free software, and you are welcome to redistribute it 318 | under certain conditions; type `show c' for details. 319 | 320 | The hypothetical commands `show w' and `show c' should show the appropriate 321 | parts of the General Public License. Of course, the commands you use may 322 | be called something other than `show w' and `show c'; they could even be 323 | mouse-clicks or menu items--whatever suits your program. 324 | 325 | You should also get your employer (if you work as a programmer) or your 326 | school, if any, to sign a "copyright disclaimer" for the program, if 327 | necessary. Here is a sample; alter the names: 328 | 329 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program 330 | `Gnomovision' (which makes passes at compilers) written by James Hacker. 331 | 332 | , 1 April 1989 333 | Ty Coon, President of Vice 334 | 335 | This General Public License does not permit incorporating your program into 336 | proprietary programs. If your program is a subroutine library, you may 337 | consider it more useful to permit linking proprietary applications with the 338 | library. If this is what you want to do, use the GNU Lesser General 339 | Public License instead of this License. 340 | --------------------------------------------------------------------------------