added packages datamatrix and prod_test_screens (for assembly tests) and removed PCBA
This commit is contained in:
parent
2bd2c855f7
commit
35ab665bd9
|
@ -7,3 +7,5 @@ source "$BR2_EXTERNAL_FUNKEY_PATH/package/gnuboy/Config.in"
|
|||
source "$BR2_EXTERNAL_FUNKEY_PATH/package/picodrive/Config.in"
|
||||
source "$BR2_EXTERNAL_FUNKEY_PATH/package/PocketSNES/Config.in"
|
||||
source "$BR2_EXTERNAL_FUNKEY_PATH/package/gpsp/Config.in"
|
||||
source "$BR2_EXTERNAL_FUNKEY_PATH/package/dmtx-utils/Config.in"
|
||||
source "$BR2_EXTERNAL_FUNKEY_PATH/package/ProdScreens/Config.in"
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 348 B |
Binary file not shown.
After Width: | Height: | Size: 721 B |
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 8.4 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,5 @@
|
|||
config BR2_PACKAGE_PRODSCREENS
|
||||
bool "FunKey Prod screens"
|
||||
default y
|
||||
help
|
||||
The screens for production tests.
|
|
@ -0,0 +1,43 @@
|
|||
################################################################################
|
||||
#
|
||||
# FunKey-Prod-screens
|
||||
#
|
||||
################################################################################
|
||||
|
||||
PRODSCREENS_VERSION = 06165f8a5d4aeb2e6324abe951ef141cc261c078
|
||||
PRODSCREENS_SITE_METHOD = git
|
||||
#PRODSCREENS_SITE = ssh://git@github.com/FunKey-Project/FunKey-ProdScreens.git
|
||||
#PRODSCREENS_SITE = ssh://git@fk/FunKey-Project/FunKey-ProdScreens.git
|
||||
PRODSCREENS_SITE = https://github.com/FunKey-Project/FunKey-ProdScreens.git
|
||||
PRODSCREENS_SITE_LICENSE = GPL-2.1+
|
||||
PRODSCREENS_SITE_LICENSE_FILES = COPYING
|
||||
|
||||
PRODSCREENS_DEPENDENCIES = sdl sdl_image sdl_ttf
|
||||
|
||||
PRODSCREENS_CFLAGS = $(TARGET_CFLAGS)
|
||||
|
||||
PRODSCREENS_SDL_CFLAGS += $(shell $(STAGING_DIR)/usr/bin/sdl-config --cflags)
|
||||
PRODSCREENS_SDL_LIBS += $(shell $(STAGING_DIR)/usr/bin/sdl-config --libs)
|
||||
|
||||
PRODSCREENS_CFLAGS += -ggdb -O3
|
||||
PRODSCREENS_CFLAGS += $(PRODSCREENS_SDL_CFLAGS)
|
||||
|
||||
PRODSCREENS_LIBS += $(PRODSCREENS_SDL_LIBS)
|
||||
PRODSCREENS_LIBS += -lSDL -lSDL_ttf -lSDL_image
|
||||
|
||||
define PRODSCREENS_BUILD_CMDS
|
||||
(cd $(@D); \
|
||||
make \
|
||||
CROSS_COMPILE=$(TARGET_CROSS) \
|
||||
CFLAGS='$(PRODSCREENS_CFLAGS)' \
|
||||
LIBS='$(PRODSCREENS_LIBS)' \
|
||||
)
|
||||
endef
|
||||
|
||||
define PRODSCREENS_INSTALL_TARGET_CMDS
|
||||
$(INSTALL) -d -m 0755 $(TARGET_DIR)/usr/local/sbin
|
||||
$(INSTALL) -m 0755 $(@D)/funkey_prod_screens $(TARGET_DIR)/usr/local/sbin/funkey_prod_screens
|
||||
#$(INSTALL) -m 0755 $(@D)/ProdResources $(TARGET_DIR)/usr/local/sbin/ProdResources
|
||||
endef
|
||||
|
||||
$(eval $(generic-package))
|
|
@ -0,0 +1,35 @@
|
|||
dmtxquery/Makefile.am | 2 +-
|
||||
dmtxread/Makefile.am | 2 +-
|
||||
dmtxwrite/Makefile.am | 2 +-
|
||||
3 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff -Naur a/dmtxquery/Makefile.am b/dmtxquery/Makefile.am
|
||||
--- a/dmtxquery/Makefile.am
|
||||
+++ b/dmtxquery/Makefile.am
|
||||
@@ -9,5 +9,5 @@
|
||||
dmtxquery_LDADD = $(LIBOBJS)
|
||||
|
||||
dmtxquery_debug_SOURCES = dmtxquery.c dmtxquery.h ../common/dmtxutil.c ../common/dmtxutil.h
|
||||
-dmtxquery_debug_LDFLAGS = -static $(DMTX_LIBS)
|
||||
+dmtxquery_debug_LDFLAGS = $(DMTX_LIBS)
|
||||
dmtxquery_debug_LDADD = $(LIBOBJS)
|
||||
diff -Naur a/dmtxread/Makefile.am b/dmtxread/Makefile.am
|
||||
--- a/dmtxread/Makefile.am
|
||||
+++ b/dmtxread/Makefile.am
|
||||
@@ -11,5 +11,5 @@
|
||||
|
||||
dmtxread_debug_SOURCES = dmtxread.c dmtxread.h ../common/dmtxutil.c ../common/dmtxutil.h
|
||||
dmtxread_debug_CFLAGS = $(DMTX_CFLAGS) $(MAGICK_CFLAGS) -D_MAGICK_CONFIG_H
|
||||
-dmtxread_debug_LDFLAGS = -static $(DMTX_LIBS) $(MAGICK_LIBS)
|
||||
+dmtxread_debug_LDFLAGS = $(DMTX_LIBS) $(MAGICK_LIBS)
|
||||
dmtxread_debug_LDADD = $(LIBOBJS)
|
||||
diff -Naur a/dmtxwrite/Makefile.am b/dmtxwrite/Makefile.am
|
||||
--- a/dmtxwrite/Makefile.am
|
||||
+++ b/dmtxwrite/Makefile.am
|
||||
@@ -11,5 +11,5 @@
|
||||
|
||||
dmtxwrite_debug_SOURCES = dmtxwrite.c dmtxwrite.h ../common/dmtxutil.c ../common/dmtxutil.h
|
||||
dmtxwrite_debug_CFLAGS = $(DMTX_FLAGS) $(MAGICK_CFLAGS) -D_MAGICK_CONFIG_H
|
||||
-dmtxwrite_debug_LDFLAGS = -static $(DMTX_LIBS) $(MAGICK_LIBS)
|
||||
+dmtxwrite_debug_LDFLAGS = $(DMTX_LIBS) $(MAGICK_LIBS)
|
||||
dmtxwrite_debug_LDADD = $(LIBOBJS)
|
|
@ -0,0 +1,12 @@
|
|||
config BR2_PACKAGE_DMTX_UTILS
|
||||
bool "dmtx utils"
|
||||
depends on BR2_PACKAGE_LIBDMTX
|
||||
select BR2_PACKAGE_IMAGEMAGICK
|
||||
help
|
||||
libdmtx is a software library that enables programs to read
|
||||
and write Data Matrix barcodes of the modern ECC200
|
||||
variety. This package, dmtx-utils, provides command line
|
||||
utilities that allow scripts and command line users to use
|
||||
libdmtx functionality.
|
||||
|
||||
https://github.com/dmtx/dmtx-utils
|
|
@ -0,0 +1,3 @@
|
|||
# Locally computed:
|
||||
sha256 0d396ec14f32a8cf9e08369a4122a16aa2e5fa1675e02218f16f1ab777ea2a28 dmtx-utils-0.7.6.tar.gz
|
||||
sha256 d8c320ffc0030d1b096ae4732b50d2b811cf95e9a9b7377c1127b2563e0a0388 COPYING
|
|
@ -0,0 +1,20 @@
|
|||
################################################################################
|
||||
#
|
||||
# dmtx-utils
|
||||
#
|
||||
################################################################################
|
||||
|
||||
DMTX_UTILS_VERSION = 0.7.6
|
||||
DMTX_UTILS_SITE = $(call github,dmtx,dmtx-utils,v$(DMTX_UTILS_VERSION))
|
||||
DMTX_UTILS_DEPENDENCIES = libdmtx imagemagick
|
||||
DMTX_UTILS_LICENSE = LGPL-2.1+
|
||||
DMTX_UTILS_LICENSE_FILES = COPYING
|
||||
# github tarball does not include configure
|
||||
DMTX_UTILS_AUTORECONF = YES
|
||||
|
||||
define DMTX_UTILS_RUN_AUTOGEN
|
||||
cd $(@D) && PATH=$(BR_PATH) ./autogen.sh
|
||||
endef
|
||||
DMTX_UTILS_PRE_CONFIGURE_HOOKS += DMTX_UTILS_RUN_AUTOGEN
|
||||
|
||||
$(eval $(autotools-package))
|
|
@ -1,2 +0,0 @@
|
|||
setenv bootargs console=ttyS0,115200 panic=5 quiet
|
||||
bootz 0x41000000 - 0x41800000
|
File diff suppressed because it is too large
Load Diff
|
@ -1,94 +0,0 @@
|
|||
CONFIG_LOCALVERSION="-funkey"
|
||||
CONFIG_KERNEL_LZMA=y
|
||||
CONFIG_DEFAULT_HOSTNAME="funkey"
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_LOG_BUF_SHIFT=16
|
||||
CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=12
|
||||
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_XZ is not set
|
||||
# CONFIG_RD_LZO is not set
|
||||
# CONFIG_RD_LZ4 is not set
|
||||
CONFIG_EMBEDDED=y
|
||||
CONFIG_PERF_EVENTS=y
|
||||
CONFIG_MODULES=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
# CONFIG_LBDAF is not set
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
CONFIG_ARCH_SUNXI=y
|
||||
# CONFIG_MACH_SUN4I is not set
|
||||
# CONFIG_MACH_SUN5I is not set
|
||||
# CONFIG_MACH_SUN6I is not set
|
||||
# CONFIG_MACH_SUN7I is not set
|
||||
# CONFIG_MACH_SUN9I is not set
|
||||
CONFIG_SMP=y
|
||||
CONFIG_HAVE_ARM_ARCH_TIMER=y
|
||||
CONFIG_ARM_PSCI=y
|
||||
CONFIG_HIGHMEM=y
|
||||
CONFIG_VFP=y
|
||||
CONFIG_NEON=y
|
||||
# CONFIG_COREDUMP is not set
|
||||
# CONFIG_SUSPEND is not set
|
||||
CONFIG_DEVTMPFS=y
|
||||
CONFIG_DEVTMPFS_MOUNT=y
|
||||
# CONFIG_ALLOW_DEV_COREDUMP is not set
|
||||
# CONFIG_SUNXI_RSB is not set
|
||||
CONFIG_INPUT_POLLDEV=y
|
||||
CONFIG_INPUT_EVDEV=y
|
||||
# CONFIG_INPUT_KEYBOARD is not set
|
||||
# CONFIG_INPUT_MOUSE is not set
|
||||
CONFIG_INPUT_MISC=y
|
||||
CONFIG_INPUT_UINPUT=y
|
||||
# CONFIG_CONSOLE_TRANSLATIONS is not set
|
||||
# CONFIG_VT_CONSOLE is not set
|
||||
CONFIG_LEGACY_PTY_COUNT=4
|
||||
CONFIG_SERIAL_8250=y
|
||||
CONFIG_SERIAL_8250_CONSOLE=y
|
||||
CONFIG_SERIAL_8250_NR_UARTS=8
|
||||
CONFIG_SERIAL_8250_RUNTIME_UARTS=8
|
||||
CONFIG_SERIAL_8250_DW=y
|
||||
CONFIG_SERIAL_OF_PLATFORM=y
|
||||
# CONFIG_HW_RANDOM is not set
|
||||
CONFIG_I2C=m
|
||||
CONFIG_I2C_CHARDEV=m
|
||||
CONFIG_I2C_MV64XXX=m
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
# CONFIG_HWMON is not set
|
||||
CONFIG_MFD_SYSCON=y
|
||||
# CONFIG_RC_CORE is not set
|
||||
CONFIG_FB=y
|
||||
CONFIG_FB_SIMPLE=y
|
||||
CONFIG_SOUND=y
|
||||
CONFIG_SND=y
|
||||
# CONFIG_SND_DRIVERS is not set
|
||||
CONFIG_SND_SOC=y
|
||||
CONFIG_SND_SUN4I_CODEC=y
|
||||
CONFIG_SND_SUN8I_CODEC_ANALOG=y
|
||||
# CONFIG_HID is not set
|
||||
# CONFIG_USB_SUPPORT is not set
|
||||
CONFIG_DMADEVICES=y
|
||||
CONFIG_DMA_SUN6I=y
|
||||
CONFIG_SYNC_FILE=y
|
||||
# CONFIG_SUN8I_A23_CCU is not set
|
||||
# CONFIG_SUN8I_A33_CCU is not set
|
||||
# CONFIG_SUN8I_H3_CCU is not set
|
||||
CONFIG_SUN8I_DE2_CCU=y
|
||||
# CONFIG_IOMMU_SUPPORT is not set
|
||||
CONFIG_NVMEM=y
|
||||
CONFIG_NVMEM_SUNXI_SID=y
|
||||
# CONFIG_DNOTIFY is not set
|
||||
# CONFIG_INOTIFY_USER is not set
|
||||
CONFIG_AUTOFS4_FS=y
|
||||
CONFIG_TMPFS=y
|
||||
CONFIG_CONFIGFS_FS=y
|
||||
# CONFIG_MISC_FILESYSTEMS is not set
|
||||
CONFIG_PRINTK_TIME=y
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
# CONFIG_DEBUG_BUGVERBOSE is not set
|
||||
# CONFIG_RCU_TRACE is not set
|
||||
# CONFIG_FTRACE is not set
|
||||
# CONFIG_ARM_UNWIND is not set
|
||||
CONFIG_KEYS=y
|
|
@ -1,4 +0,0 @@
|
|||
RETROFE_OVERRIDE_SRCDIR = ../funkey_retrofe
|
||||
RETROFE_LAYOUT_OVERRIDE_SRCDIR = ../funkey_retrofe_layout_240x240
|
||||
SDL_OVERRIDE_SRCDIR = ../funkey_sdl1.2
|
||||
FUNKEY_GPIO_MAPPING_OVERRIDE_SRCDIR = ../funkey-gpio-mapping
|
|
@ -1,14 +0,0 @@
|
|||
diff -Naur busybox-1.31.1.orig/loginutils/login.c busybox-1.31.1/loginutils/login.c
|
||||
--- busybox-1.31.1.orig/loginutils/login.c 2019-06-10 12:50:53.000000000 +0200
|
||||
+++ busybox-1.31.1/loginutils/login.c 2020-07-29 09:13:34.428911641 +0200
|
||||
@@ -570,8 +570,8 @@
|
||||
if (access(".hushlogin", F_OK) != 0)
|
||||
motd();
|
||||
|
||||
- if (pw->pw_uid == 0)
|
||||
- syslog(LOG_INFO, "root login%s", fromhost);
|
||||
+ // if (pw->pw_uid == 0)
|
||||
+ // syslog(LOG_INFO, "root login%s", fromhost);
|
||||
|
||||
if (ENABLE_FEATURE_CLEAN_UP)
|
||||
free(fromhost);
|
|
@ -1,195 +0,0 @@
|
|||
--- /dev/null 2019-05-04 09:53:55.553276856 +0200
|
||||
+++ a/arch/arm/boot/dts/sun8i-v3s-funkey.dts 2019-05-04 20:06:53.118696800 +0200
|
||||
@@ -0,0 +1,192 @@
|
||||
+/*
|
||||
+ * Copyright (C) 2019 Michel Stempin <michel.stempin@wanadoo.fr>
|
||||
+ *
|
||||
+ * 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.
|
||||
+ */
|
||||
+
|
||||
+/dts-v1/;
|
||||
+#include "sun8i-v3s.dtsi"
|
||||
+#include "sunxi-common-regulators.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ model = "FunKey";
|
||||
+ compatible = "funkey", "allwinner,sun8i-v3s";
|
||||
+
|
||||
+ aliases {
|
||||
+ serial0 = &uart0;
|
||||
+ };
|
||||
+
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
+ backlight: backlight {
|
||||
+ compatible = "pwm-backlight";
|
||||
+ pwms = <&pwm 0 100000 1>;
|
||||
+ brightness-levels = <0 1 2 3 8 14 21 32 46 60 80 100>; //2.2 div factor
|
||||
+ default-brightness-level = <11>;
|
||||
+ power-supply = <®_vcc5v0>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&codec {
|
||||
+ allwinner,audio-routing =
|
||||
+ "Headphone", "HP",
|
||||
+ "Headphone", "HPCOM",
|
||||
+ "MIC1", "Mic",
|
||||
+ "Mic", "HBIAS";
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ehci0 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&i2c0 {
|
||||
+ status = "okay";
|
||||
+
|
||||
+ /* axp209: pmic@34 {
|
||||
+ compatible = "x-powers,axp209";
|
||||
+ reg = <0x34>;
|
||||
+ interrupts = <0>;
|
||||
+ interrupt-controller;
|
||||
+ #interrupt-cells = <1>;
|
||||
+ }; */
|
||||
+};
|
||||
+
|
||||
+&mmc0 {
|
||||
+ pinctrl-0 = <&mmc0_pins_a>;
|
||||
+ pinctrl-names = "default";
|
||||
+ broken-cd;
|
||||
+ bus-width = <4>;
|
||||
+ vmmc-supply = <®_vcc3v3>;
|
||||
+ vqmmc-supply = <®_vcc3v3>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ohci0 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+/*
|
||||
+#include "axp209.dtsi"
|
||||
+
|
||||
+®_dcdc2 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <1000000>;
|
||||
+ regulator-max-microvolt = <1400000>;
|
||||
+ regulator-name = "vdd-cpu-sys-ephy";
|
||||
+};
|
||||
+
|
||||
+®_dcdc3 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <3000000>;
|
||||
+ regulator-max-microvolt = <3450000>;
|
||||
+ regulator-name = "vcc-io-ephy-mcsi-usb";
|
||||
+};
|
||||
+
|
||||
+®_ldo1 {
|
||||
+ regulator-min-microvolt = <3000000>;
|
||||
+ regulator-max-microvolt = <3600000>;
|
||||
+ regulator-name = "vcc-rtc";
|
||||
+};
|
||||
+
|
||||
+®_ldo2 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <2800000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "avcc-pll";
|
||||
+};
|
||||
+*/
|
||||
+
|
||||
+®_vcc3v0 {
|
||||
+ regulator-always-on;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+®_vcc3v3 {
|
||||
+ regulator-always-on;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+®_vcc5v0 {
|
||||
+ regulator-always-on;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&spi0 {
|
||||
+ status = "okay";
|
||||
+
|
||||
+ st7789v@0 {
|
||||
+ compatible = "sitronix,st7789v";
|
||||
+ reg = <0>;
|
||||
+ spi-max-frequency = <50000000>;
|
||||
+ txbuflen = <115200>;
|
||||
+ rotate = <0>;
|
||||
+ fps = <50>;
|
||||
+ buswidth = <8>;
|
||||
+ reset-gpios = <&pio 1 2 GPIO_ACTIVE_HIGH>; //PB2
|
||||
+ dc-gpios = <&pio 2 0 GPIO_ACTIVE_LOW>; //PC0 (MISO)
|
||||
+ debug = <0>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&uart0 {
|
||||
+ pinctrl-0 = <&uart0_pins_a>;
|
||||
+ pinctrl-names = "default";
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&pwm {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&pwm0_pins>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb_otg {
|
||||
+ dr_mode = "peripheral";
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usbphy {
|
||||
+ usb0_vbus-supply = <®_vcc5v0>;
|
||||
+ phy-supply = <®_vcc5v0>;
|
||||
+ vcc = <®_vcc5v0>;
|
||||
+ status = "okay";
|
||||
+};
|
|
@ -1,12 +0,0 @@
|
|||
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
|
||||
index 1f97ae8..e798bf1 100644
|
||||
--- a/arch/arm/boot/dts/Makefile
|
||||
+++ b/arch/arm/boot/dts/Makefile
|
||||
@@ -932,6 +932,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \
|
||||
sun8i-h3-orangepi-plus2e.dtb \
|
||||
sun8i-r16-bananapi-m2m.dtb \
|
||||
sun8i-r16-parrot.dtb \
|
||||
+ sun8i-v3s-funkey.dtb \
|
||||
sun8i-v3s-licheepi-zero.dtb \
|
||||
sun8i-v3s-licheepi-zero-dock.dtb \
|
||||
sun8i-v3s-licheepi-zero-with-480x272-lcd.dtb \
|
|
@ -1,48 +0,0 @@
|
|||
--- a/arch/arm/boot/dts/sun8i-v3s-funkey.dts
|
||||
+++ b/arch/arm/boot/dts/sun8i-v3s-funkey.dts
|
||||
@@ -108,6 +108,45 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+&pio {
|
||||
+ gpio-line-names =
|
||||
+ /* PA0-PA31 */
|
||||
+ "", "", "", "", "", "", "", "",
|
||||
+ "", "", "", "", "", "", "", "",
|
||||
+ "", "", "", "", "", "", "", "",
|
||||
+ "", "", "", "", "", "", "", "",
|
||||
+ /* PB0-PA31 */
|
||||
+ "", "TE", "LCDR", "KEY", "LEDA", "PMU", "SCL", "SDA",
|
||||
+ "TX", "RX", "", "", "", "", "", "",
|
||||
+ "", "", "", "", "", "", "", "",
|
||||
+ "", "", "", "", "", "", "", "",
|
||||
+ /* PC0-PA31 */
|
||||
+ "RS", "CLK", "CS", "MOSI", "", "", "", "",
|
||||
+ "", "", "", "", "", "", "","",
|
||||
+ "", "", "", "", "", "", "","",
|
||||
+ "", "", "", "", "", "", "","",
|
||||
+ /* PD0-PA31 */
|
||||
+ "", "", "", "", "", "", "", "",
|
||||
+ "", "", "", "", "", "", "", "",
|
||||
+ "", "", "", "", "", "", "", "",
|
||||
+ "", "", "", "", "", "", "", "",
|
||||
+ /* PE0-PA31 */
|
||||
+ "", "", "", "", "", "", "", "",
|
||||
+ "", "", "", "", "", "", "", "",
|
||||
+ "", "", "", "", "", "", "", "",
|
||||
+ "", "", "", "", "", "", "", "",
|
||||
+ /* PF0-PA31 */
|
||||
+ "D1", "D0", "CLK", "CMD", "D3", "D2", "PA", "",
|
||||
+ "", "", "", "", "", "", "", "",
|
||||
+ "", "", "", "", "", "", "", "",
|
||||
+ "", "", "", "", "", "", "", "",
|
||||
+ /* PG0-PA31 */
|
||||
+ "", "", "", "", "", "", "", "",
|
||||
+ "", "", "", "", "", "", "", "",
|
||||
+ "", "", "", "", "", "", "", "",
|
||||
+ "", "", "", "", "", "", "", "";
|
||||
+};
|
||||
+
|
||||
/*
|
||||
#include "axp209.dtsi"
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
diff --git a/arch/arm/boot/dts/sun8i-v3s.dtsi b/arch/arm/boot/dts/sun8i-v3s.dtsi
|
||||
index 5379f2d7..f9765995 100644
|
||||
--- a/arch/arm/boot/dts/sun8i-v3s.dtsi
|
||||
+++ b/arch/arm/boot/dts/sun8i-v3s.dtsi
|
||||
@@ -73,6 +73,17 @@
|
||||
device_type = "cpu";
|
||||
reg = <0>;
|
||||
clocks = <&ccu CLK_CPU>;
|
||||
+ clock-latency = <244144>; /* 8 32k periods */
|
||||
+ clock-frequency = <1296000>;
|
||||
+ operating-points = <
|
||||
+ /* kHz uV */
|
||||
+ 1296000 1200000
|
||||
+ 1008000 1200000
|
||||
+ 864000 1200000
|
||||
+ 720000 1100000
|
||||
+ 480000 1000000
|
||||
+ >;
|
||||
+
|
||||
};
|
||||
};
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
diff --git a/arch/arm/boot/dts/sun8i-v3s-funkey.dts b/arch/arm/boot/dts/sun8i-v3s-funkey.dts
|
||||
index ad694808..3be3c7f1 100644
|
||||
--- a/arch/arm/boot/dts/sun8i-v3s-funkey.dts
|
||||
+++ b/arch/arm/boot/dts/sun8i-v3s-funkey.dts
|
||||
@@ -74,6 +74,10 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+&codec_analog {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
&ehci0 {
|
||||
status = "okay";
|
||||
};
|
||||
diff --git a/arch/arm/boot/dts/sun8i-v3s.dtsi b/arch/arm/boot/dts/sun8i-v3s.dtsi
|
||||
index 5379f2d7..02f6c844 100644
|
||||
--- a/arch/arm/boot/dts/sun8i-v3s.dtsi
|
||||
+++ b/arch/arm/boot/dts/sun8i-v3s.dtsi
|
||||
@@ -433,6 +444,7 @@
|
||||
codec_analog: codec-analog@01c23000 {
|
||||
compatible = "allwinner,sun8i-v3s-codec-analog";
|
||||
reg = <0x01c23000 0x4>;
|
||||
+ status = "disabled";
|
||||
};
|
||||
|
||||
uart0: serial@01c28000 {
|
||||
diff --git a/sound/soc/sunxi/Makefile b/sound/soc/sunxi/Makefile
|
||||
index 4a9ef673..655780ab 100644
|
||||
--- a/sound/soc/sunxi/Makefile
|
||||
+++ b/sound/soc/sunxi/Makefile
|
||||
@@ -1,6 +1,6 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
+obj-$(CONFIG_SND_SUN8I_CODEC_ANALOG) += sun8i-codec-analog.o
|
||||
obj-$(CONFIG_SND_SUN4I_CODEC) += sun4i-codec.o
|
||||
obj-$(CONFIG_SND_SUN4I_I2S) += sun4i-i2s.o
|
||||
obj-$(CONFIG_SND_SUN4I_SPDIF) += sun4i-spdif.o
|
||||
-obj-$(CONFIG_SND_SUN8I_CODEC_ANALOG) += sun8i-codec-analog.o
|
||||
obj-$(CONFIG_SND_SUN8I_CODEC) += sun8i-codec.o
|
|
@ -1,207 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) 2019 Michel Stempin <michel.stempin@wanadoo.fr>
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
#include "sun8i-v3s.dtsi"
|
||||
#include "sunxi-common-regulators.dtsi"
|
||||
|
||||
/ {
|
||||
model = "FunKey";
|
||||
compatible = "funkey", "allwinner,sun8i-v3s";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
backlight: backlight {
|
||||
compatible = "pwm-backlight";
|
||||
pwms = <&pwm 0 1000000 0>;
|
||||
brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
|
||||
default-brightness-level = <10>;
|
||||
power-supply = <®_vcc5v0>;
|
||||
};
|
||||
};
|
||||
|
||||
&codec {
|
||||
allwinner,audio-routing =
|
||||
"Headphone", "HP",
|
||||
"Headphone", "HPCOM",
|
||||
"MIC1", "Mic",
|
||||
"Mic", "HBIAS";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ehci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
status = "okay";
|
||||
|
||||
axp209: pmic@34 {
|
||||
compatible = "x-powers,axp209";
|
||||
reg = <0x34>;
|
||||
interrupt-parent = <&pio>;
|
||||
interrupts = <1 5 IRQ_TYPE_EDGE_FALLING>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
pinctrl-0 = <&mmc0_pins_a>;
|
||||
pinctrl-names = "default";
|
||||
broken-cd;
|
||||
bus-width = <4>;
|
||||
vmmc-supply = <®_vcc3v3>;
|
||||
vqmmc-supply = <®_vcc3v3>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
#include "axp209.dtsi"
|
||||
|
||||
&ac_power_supply {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&axp_gpio {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&battery_power_supply {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_power_supply {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
®_dcdc2 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1000000>;
|
||||
regulator-max-microvolt = <1400000>;
|
||||
regulator-name = "vdd-cpu-sys-ephy";
|
||||
};
|
||||
|
||||
®_dcdc3 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <3000000>;
|
||||
regulator-max-microvolt = <3450000>;
|
||||
regulator-name = "vcc-io-ephy-mcsi-usb";
|
||||
};
|
||||
|
||||
®_ldo1 {
|
||||
regulator-min-microvolt = <3000000>;
|
||||
regulator-max-microvolt = <3600000>;
|
||||
regulator-name = "vcc-rtc";
|
||||
};
|
||||
|
||||
®_ldo2 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "avcc-pll";
|
||||
};
|
||||
|
||||
®_vcc3v0 {
|
||||
regulator-always-on;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
®_vcc3v3 {
|
||||
regulator-always-on;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
®_vcc5v0 {
|
||||
regulator-always-on;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
status = "okay";
|
||||
|
||||
st7789v@0 {
|
||||
compatible = "sitronix,st7789v";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <40000000>;
|
||||
txbuflen = <115200>;
|
||||
rotate = <0>;
|
||||
fps = <39>;
|
||||
buswidth = <8>;
|
||||
reset-gpios = <&pio 4 1 GPIO_ACTIVE_LOW>; //PE1
|
||||
dc-gpios = <&pio 2 0 GPIO_ACTIVE_LOW>; //PC0 (MISO)
|
||||
debug = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
pinctrl-0 = <&uart0_pins_a>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pwm {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pwm0_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_otg {
|
||||
dr_mode = "peripheral";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbphy {
|
||||
usb0_vbus-supply = <®_vcc5v0>;
|
||||
phy-supply = <®_vcc5v0>;
|
||||
vcc = <®_vcc5v0>;
|
||||
status = "okay";
|
||||
};
|
|
@ -1,86 +0,0 @@
|
|||
--- /dev/null 2019-03-22 21:33:35.539154398 +0100
|
||||
+++ a/arch/arm/dts/sun8i-v3s-funkey.dts 2019-03-22 22:22:37.417295027 +0100
|
||||
@@ -0,0 +1,83 @@
|
||||
+/*
|
||||
+ * Copyright (C) 2019 Michel Stempin <michel.stempin@wanadoo.fr>
|
||||
+ *
|
||||
+ * 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.
|
||||
+ */
|
||||
+
|
||||
+/dts-v1/;
|
||||
+#include "sun8i-v3s.dtsi"
|
||||
+#include "sunxi-common-regulators.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ model = "FunKey";
|
||||
+ compatible = "funkey", "allwinner,sun8i-v3s";
|
||||
+
|
||||
+ aliases {
|
||||
+ serial0 = &uart0;
|
||||
+ };
|
||||
+
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&mmc0 {
|
||||
+ pinctrl-0 = <&mmc0_pins_a>;
|
||||
+ pinctrl-names = "default";
|
||||
+ broken-cd;
|
||||
+ bus-width = <4>;
|
||||
+ vmmc-supply = <®_vcc3v3>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&uart0 {
|
||||
+ pinctrl-0 = <&uart0_pins_a>;
|
||||
+ pinctrl-names = "default";
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb_otg {
|
||||
+ dr_mode = "otg";
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usbphy {
|
||||
+ usb0_id_det-gpio = <&pio 5 6 GPIO_ACTIVE_HIGH>;
|
||||
+ status = "okay";
|
||||
+};
|
|
@ -1,47 +0,0 @@
|
|||
--- a/board/sunxi/board.c 2017-08-12 11:24:24.000000000 +0200
|
||||
+++ b/board/sunxi/board.c 2019-04-27 23:04:05.811352883 +0200
|
||||
@@ -540,9 +540,9 @@
|
||||
power_failed |= axp_set_sw(IS_ENABLED(CONFIG_AXP_SW_ON));
|
||||
#endif
|
||||
#endif
|
||||
- printf("DRAM:");
|
||||
+ //printf("DRAM:");
|
||||
ramsize = sunxi_dram_init();
|
||||
- printf(" %d MiB\n", (int)(ramsize >> 20));
|
||||
+ //printf(" %d MiB\n", (int)(ramsize >> 20));
|
||||
if (!ramsize)
|
||||
hang();
|
||||
|
||||
--- a/common/console.c 2017-08-12 11:24:24.000000000 +0200
|
||||
+++ b/common/console.c 2019-04-27 22:30:13.944154949 +0200
|
||||
@@ -695,7 +695,7 @@
|
||||
if (getenv("silent") != NULL)
|
||||
gd->flags |= GD_FLG_SILENT;
|
||||
else
|
||||
- gd->flags &= ~GD_FLG_SILENT;
|
||||
+ gd->flags |= GD_FLG_SILENT;
|
||||
#endif
|
||||
}
|
||||
|
||||
--- a/common/spl/spl.c 2017-08-12 11:24:24.000000000 +0200
|
||||
+++ b/common/spl/spl.c 2019-04-27 23:06:27.269590207 +0200
|
||||
@@ -316,7 +316,7 @@
|
||||
loader = spl_ll_find_loader(spl_boot_list[i]);
|
||||
#if defined(CONFIG_SPL_SERIAL_SUPPORT) && defined(CONFIG_SPL_LIBCOMMON_SUPPORT)
|
||||
if (loader)
|
||||
- printf("Trying to boot from %s", loader->name);
|
||||
+ ;//printf("Trying to boot from %s", loader->name);
|
||||
else
|
||||
puts("SPL: Unsupported Boot Device!\n");
|
||||
#endif
|
||||
@@ -407,8 +407,9 @@
|
||||
|
||||
gd->have_console = 1;
|
||||
|
||||
- puts("\nU-Boot SPL " PLAIN_VERSION " (" U_BOOT_DATE " - " \
|
||||
+ /*puts("\nU-Boot SPL " PLAIN_VERSION " (" U_BOOT_DATE " - " \
|
||||
U_BOOT_TIME ")\n");
|
||||
+ */
|
||||
#ifdef CONFIG_SPL_DISPLAY_PRINT
|
||||
spl_display_print();
|
||||
#endif
|
|
@ -1,12 +0,0 @@
|
|||
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
|
||||
index 469dd71..e91a8d3 100644
|
||||
--- a/arch/arm/dts/Makefile
|
||||
+++ b/arch/arm/dts/Makefile
|
||||
@@ -281,6 +281,7 @@ dtb-$(CONFIG_MACH_SUN8I_H3) += \
|
||||
sun8i-h3-orangepi-plus2e.dtb \
|
||||
sun8i-h3-nanopi-neo.dtb
|
||||
dtb-$(CONFIG_MACH_SUN8I_V3S) += \
|
||||
+ sun8i-v3s-funkey.dtb \
|
||||
sun8i-v3s-licheepi-zero.dtb
|
||||
dtb-$(CONFIG_MACH_SUN50I) += \
|
||||
sun50i-a64-pine64-plus.dtb \
|
|
@ -1,31 +0,0 @@
|
|||
--- a/include/configs/sunxi-common.h 2017-08-12 11:24:24.000000000 +0200
|
||||
+++ b/include/configs/sunxi-common.h 2019-05-02 23:02:22.078624435 +0200
|
||||
@@ -475,14 +475,26 @@
|
||||
#define BOOTENV_DEV_NAME_FEL(devtypeu, devtypel, instance) \
|
||||
"fel "
|
||||
|
||||
+#if CONFIG_IS_ENABLED(CMD_PXE)
|
||||
+# define BOOT_TARGET_PXE(func) func(PXE, pxe, na)
|
||||
+#else
|
||||
+# define BOOT_TARGET_PXE(func)
|
||||
+#endif
|
||||
+
|
||||
+#if CONFIG_IS_ENABLED(CMD_DHCP)
|
||||
+# define BOOT_TARGET_DHCP(func) func(DHCP, dhcp, na)
|
||||
+#else
|
||||
+# define BOOT_TARGET_DHCP(func)
|
||||
+#endif
|
||||
+
|
||||
#define BOOT_TARGET_DEVICES(func) \
|
||||
func(FEL, fel, na) \
|
||||
BOOT_TARGET_DEVICES_MMC(func) \
|
||||
BOOT_TARGET_DEVICES_MMC_EXTRA(func) \
|
||||
BOOT_TARGET_DEVICES_SCSI(func) \
|
||||
BOOT_TARGET_DEVICES_USB(func) \
|
||||
- func(PXE, pxe, na) \
|
||||
- func(DHCP, dhcp, na)
|
||||
+ BOOT_TARGET_PXE(func) \
|
||||
+ BOOT_TARGET_DHCP(func)
|
||||
|
||||
#ifdef CONFIG_OLD_SUNXI_KERNEL_COMPAT
|
||||
#define BOOTCMD_SUNXI_COMPAT \
|
|
@ -1,18 +0,0 @@
|
|||
--- a/board/sunxi/board.c 2019-05-02 23:50:23.708139670 +0200
|
||||
+++ b/board/sunxi/board.c 2019-05-02 23:51:19.105112063 +0200
|
||||
@@ -652,6 +652,7 @@
|
||||
if ((sid[3] & 0xffffff) == 0)
|
||||
sid[3] |= 0x800000;
|
||||
|
||||
+#if defined(CONFIG_CMD_NET)
|
||||
for (i = 0; i < 4; i++) {
|
||||
sprintf(ethaddr, "ethernet%d", i);
|
||||
if (!fdt_get_alias(fdt, ethaddr))
|
||||
@@ -675,6 +676,7 @@
|
||||
|
||||
eth_setenv_enetaddr(ethaddr, mac_addr);
|
||||
}
|
||||
+#endif
|
||||
|
||||
if (!getenv("serial#")) {
|
||||
snprintf(serial_string, sizeof(serial_string),
|
|
@ -1,13 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Remove log daemon init scripts since they are loaded from inittab
|
||||
rm -f ${TARGET_DIR}/etc/init.d/S01syslogd ${TARGET_DIR}/etc/init.d/S02klogd
|
||||
|
||||
# Remove ssyctl daemon
|
||||
rm -f ${TARGET_DIR}/etc/init.d/S02sysctl
|
||||
|
||||
# Remove random daemon
|
||||
rm -f ${TARGET_DIR}/etc/init.d/S20urandom
|
||||
|
||||
# Remove telnet daemon as we don't have network
|
||||
rm -f ${TARGET_DIR}/etc/init.d/S50telnet
|
|
@ -1,76 +0,0 @@
|
|||
# FunKey
|
||||
|
||||
Intro
|
||||
=====
|
||||
|
||||
This directory contains a buildroot-based external configuration for
|
||||
building the FunKey.
|
||||
|
||||
How to get it
|
||||
===============
|
||||
|
||||
Clone the FunKey OS repository and the required submodules from
|
||||
BitBucket:
|
||||
|
||||
$ git clone --recurse-submodules git@bitbucket.org:keymu2/funkey-os.git <Funkey directory>
|
||||
|
||||
Then enter into the created directory:
|
||||
|
||||
$ cd <Funkey directory>
|
||||
|
||||
How to build it
|
||||
===============
|
||||
|
||||
Configure Buildroot
|
||||
-------------------
|
||||
|
||||
There is only one Funkey defconfig files in Buildroot:
|
||||
|
||||
$ ./fun funkey_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 FunKey with:
|
||||
|
||||
$ ./have fun
|
||||
|
||||
(This may take a while, consider getting yourself a coffee ;-) )
|
||||
|
||||
Result of the build
|
||||
-------------------
|
||||
|
||||
After building, you should obtain this tree:
|
||||
|
||||
FunKey/output/images/
|
||||
+-- boot.scr
|
||||
+-- boot.vfat
|
||||
+-- rootfs.ext2
|
||||
+-- rootfs.ext4 -> rootfs.ext2
|
||||
+-- sdcard.img
|
||||
+-- sun8i-v3s-funkey.dtb
|
||||
+-- u-boot.bin
|
||||
+-- u-boot-sunxi-with-spl.bin
|
||||
`-- uImage
|
||||
|
||||
How to write the SD card
|
||||
========================
|
||||
|
||||
Once the build process is finished you will have an image called
|
||||
"sdcard.img" in the FunKey/output/images/ directory.
|
||||
|
||||
Copy the bootable "sdcard.img" onto an SD card with "dd":
|
||||
|
||||
$ sudo dd if=<Funkey directory>/FunKey/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 FunKey board, and
|
||||
power it up. Your new system should come up now and start a console on
|
||||
the UART0 serial port.
|
|
@ -1,223 +0,0 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# For the CHIP Computer AXP09 Power mangement IC
|
||||
#
|
||||
# Jeff Brown http://photonicsguy.ca/projects/chip
|
||||
# https://github.com/Photonicsguy/CHIP
|
||||
# Version 1.0 (April 5th, 2016)
|
||||
#
|
||||
# It looks like you can destroy your chip computer by writing the wrong data to certain registers on this chip!
|
||||
# (Some of the voltage outputs are programmable via registers)
|
||||
#
|
||||
# There is only one write command in this script (to enable ADC registers)
|
||||
#
|
||||
#
|
||||
#
|
||||
# VBUS is USB power
|
||||
# VBAT is Battery (Of course)
|
||||
#
|
||||
#
|
||||
# Lower 2 bits of Register 30 control the VBUS current limiting
|
||||
#i2cset -y -f 0 0x34 0x30 0x60 # 900mA VBUS current limit (Default)
|
||||
#i2cset -y -f 0 0x34 0x30 0x61 # 500mA VBUS current limit
|
||||
#i2cset -y -f 0 0x34 0x30 0x62 # 100mA VBUS current limit (CHIP will draw from both VBUS & Battery)
|
||||
#i2cset -y -f 0 0x34 0x30 0x63 # No current limiting on VBUS
|
||||
#
|
||||
#
|
||||
#
|
||||
|
||||
# Load I2C modules
|
||||
modprobe i2c-dev
|
||||
modprobe i2c-mv64xxx
|
||||
|
||||
if [ "$1" == "-a" ]; then
|
||||
ALL=true
|
||||
elif [ "$1" == "-v" ]; then
|
||||
echo "Version 1.0 (April 5th, 2016)"
|
||||
echo "https://github.com/Photonicsguy/CHIP"
|
||||
exit 0
|
||||
elif [ "$1" == "-b" ]; then
|
||||
BP=true
|
||||
#elif [ "$1" == "-q" ]; then
|
||||
elif [ "$1" == "-h" ]; then
|
||||
cat << EOF
|
||||
Usage: axp209.sh [OPTION]
|
||||
-a Display all data
|
||||
-v Version
|
||||
-h Help (This help)
|
||||
-b Show only battery percentage
|
||||
|
||||
exits 0 on VBUS power
|
||||
exits 1 on Battery power (If battery is discharging)
|
||||
|
||||
EOF
|
||||
fi
|
||||
|
||||
# Enable ADC registers
|
||||
i2cset -y -f 0 0x34 0x82 0xff
|
||||
|
||||
## REGISTER 00 ##
|
||||
REG=$(i2cget -y -f 0 0x34 0x00)
|
||||
STATUS_VBUS=$(($((${REG}&0x20))/32))
|
||||
STATUS_VBUS_AVAIL=$(($((${REG}&0x10))/16))
|
||||
STATUS_VHOLD=$(($((${REG}&0x08))/8))
|
||||
STATUS_CHG_DIR=$(($((${REG}&0x04))/4))
|
||||
ACVB_SHORT=$(($((${REG}&0x02))/2))
|
||||
STATUS_BOOT=$((${REG}&0x01))
|
||||
|
||||
|
||||
if [ ${ALL} ];then
|
||||
REG=$(i2cget -y -f 0 0x34 0x30)
|
||||
VHOLD="4."$(($((${REG}&0x38))/8))
|
||||
REG=$((${REG}&0x3))
|
||||
case "${REG}" in
|
||||
0)
|
||||
VBUS_C_LIM="900mA"
|
||||
;;
|
||||
1)
|
||||
VBUS_C_LIM="500mA"
|
||||
;;
|
||||
2)
|
||||
VBUS_C_LIM="100mA"
|
||||
;;
|
||||
3)
|
||||
VBUS_C_LIM="No limit"
|
||||
;;
|
||||
esac
|
||||
|
||||
VSHUTDOWN="2."$(($(($(i2cget -y -f 0 0x34 0x31)&0x07))+6))
|
||||
REG=
|
||||
echo " VBUS: ${STATUS_VBUS} Avail: ${STATUS_VBUS_AVAIL}"
|
||||
echo " VHOLD: ${STATUS_VHOLD} (Whether VBUS is above ${VHOLD}V before being used)"
|
||||
#echo " Charge direction: ${STATUS_CHG_DIR} (0:Battery discharging; 1:The battery is charging)"
|
||||
echo " Shutdown voltage: ${VSHUTDOWN}V"
|
||||
echo "VBUS current limit: ${VBUS_C_LIM}"
|
||||
|
||||
fi
|
||||
if [ ${ACVB_SHORT} == 1 ]; then
|
||||
echo "ACIN & VBUS input short circuit on PCB"
|
||||
fi
|
||||
|
||||
if [ ${ALL} ]; then
|
||||
echo -n "Boot source is"
|
||||
if [ ${STATUS_BOOT} == 0 ]; then
|
||||
echo -n "n't"
|
||||
fi
|
||||
echo " VBUS"
|
||||
fi
|
||||
|
||||
|
||||
## REGISTER 01 ##
|
||||
REG=$(i2cget -y -f 0 0x34 0x01)
|
||||
STATUS_OVRTEMP=$(($((${REG}&0x80))/128))
|
||||
STATUS_CHARGING=$(($((${REG}&0x40))/64))
|
||||
STATUS_BATCON=$(($((${REG}&0x20))/32))
|
||||
#STATUS_=$(($((${REG}&0x10))/16))
|
||||
STATUS_ACT=$(($((${REG}&0x08))/8))
|
||||
STATUS_CUREXPEC=$(($((${REG}&0x04))/4))
|
||||
#STATUS_=$(($((${REG}&0x02))/2))
|
||||
#STATUS_=$((${REG}&0x01))
|
||||
|
||||
if [ ${STATUS_OVRTEMP} == 1 ]; then
|
||||
echo "Over Temperature"
|
||||
fi
|
||||
if [ ${ALL} ]; then
|
||||
if [ ${STATUS_CHARGING} == 1 ]; then
|
||||
echo "Battery charging"
|
||||
fi
|
||||
echo "Battery connected: ${STATUS_BATCON}"
|
||||
fi
|
||||
|
||||
if [ ${STATUS_VBUS}==1 ]; then
|
||||
# VBUS voltage
|
||||
REG=$(i2cget -y -f 0 0x34 0x5A w)
|
||||
REG=0x${REG:4:2}${REG:3:1}
|
||||
REG=$(printf "%d" "${REG}")
|
||||
VBUS=$(echo "${REG}*0.0017"|bc)
|
||||
|
||||
# VBUS Current
|
||||
REG=$(i2cget -y -f 0 0x34 0x5C w)
|
||||
REG=0x${REG:4:2}${REG:3:1}
|
||||
REG=$(printf "%d" "${REG}")
|
||||
VBUS_C=$(echo "${REG}*0.375"|bc)
|
||||
else
|
||||
VBUS='-'
|
||||
VBUS_C='-'
|
||||
fi
|
||||
|
||||
if [ ${STATUS_BATCON}==1 ]; then
|
||||
# Battery Voltage
|
||||
REG=$(i2cget -y -f 0 0x34 0x78 w)
|
||||
REG=0x${REG:4:2}${REG:3:1}
|
||||
REG=$(printf "%d" "${REG}")
|
||||
VBAT=$(echo "${REG}*0.0011"|bc)
|
||||
|
||||
if [ ${STATUS_CHG_DIR} == 1 ]; then
|
||||
# Battery Charging Current
|
||||
REG=$(i2cget -y -f 0 0x34 0x7A w)
|
||||
REG=0x${REG:4:2}${REG:3:1}
|
||||
REG_C=$(printf "%d" "${REG}")
|
||||
BAT_C=$(echo "scale=2;${REG_C}*0.5"|bc)
|
||||
else
|
||||
# Battery Discharge Current
|
||||
REG=$(i2cget -y -f 0 0x34 0x7C w)
|
||||
REG=0x${REG:4:2}${REG:3:1}
|
||||
REG_D=$(printf "%d" "${REG}")
|
||||
BAT_D=$(echo "scale=2;${REG_D}*0.5"|bc)
|
||||
fi
|
||||
# Battery %
|
||||
REG=$(i2cget -y -f 0 0x34 0xB9)
|
||||
BAT_PERCENT=$(printf "%d" "${REG}")
|
||||
else
|
||||
VBAT='-'
|
||||
BATT_CUR='-'
|
||||
BAT_PERCENT='-'
|
||||
echo "No Battery connected"
|
||||
fi
|
||||
# System (IPSOUT) Voltage (IPS is Intelligent Power Select)
|
||||
REG=$(i2cget -y -f 0 0x34 0x7E w)
|
||||
REG=0x${REG:4:2}${REG:3:1}
|
||||
REG=$(printf "%d" "${REG}")
|
||||
IPSOUT=$(echo "${REG}*0.0014"|bc)
|
||||
|
||||
|
||||
if [ ${ALL} ]; then
|
||||
# Temperature
|
||||
REG=$(i2cget -y -f 0 0x34 0x5E w)
|
||||
REG=0x${REG:4:2}${REG:3:1}
|
||||
REG=$(printf "%d" "${REG}")
|
||||
THERM=$(echo "(${REG}*0.1)-144.7"|bc)
|
||||
echo "Temperature: ${THERM}°C"
|
||||
fi
|
||||
echo "Battery: ${BAT_PERCENT}%"
|
||||
if [ ${BP} ];then # If -b switch is used, exit after showing battery percentage
|
||||
if [ ${STATUS_CHG_DIR} == 0 ]; then
|
||||
exit 1 # FunKey operating on Battery
|
||||
else
|
||||
exit 0 # FunKey on VBUS power
|
||||
fi
|
||||
fi
|
||||
|
||||
echo -n "VBUS: ${VBUS}V"
|
||||
if [ ${VBUS_C} != 0 ];then
|
||||
echo " ${VBUS_C}mA"
|
||||
else
|
||||
echo ""
|
||||
fi
|
||||
|
||||
echo -n "VBAT: ${VBAT}V "
|
||||
if [ ${STATUS_CHG_DIR} == 1 ]; then
|
||||
echo "Charging at ${BAT_C}mA"
|
||||
else
|
||||
echo "Discharging at ${BAT_D}mA"
|
||||
fi
|
||||
echo "VOUT: ${IPSOUT}V"
|
||||
|
||||
if [ ${STATUS_CHG_DIR} == 0 ]; then
|
||||
exit 1 # FunKey operating on Battery
|
||||
else
|
||||
exit 0 # FunKey on VBUS power
|
||||
fi
|
||||
|
||||
# Unload I2C modules
|
||||
modprobe -r i2c_mv64xxx i2c_dev >/dev/null 2>&1
|
|
@ -1,35 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Load I2C modules
|
||||
modprobe i2c-dev
|
||||
modprobe i2c-mv64xxx
|
||||
|
||||
# Look for U1 (PCAL6416 GPIO expander)
|
||||
U1=$(i2cdetect -y 0 20 20 | grep 20: | cut -d ':' -f 2)
|
||||
let U1=U1+0
|
||||
if [ ${U1} -ne 20 ]; then
|
||||
echo "ERROR BATTERY CHIP"
|
||||
else
|
||||
|
||||
# Wait for the battery detected and charging for 10s
|
||||
timeout=10
|
||||
while [ ${timeout} -ne 0 ]; do
|
||||
value=$(i2cget -y 0 34 1)
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "ERROR BATTERY I2C"
|
||||
break
|
||||
fi
|
||||
if [ "${value}" = "0x74" ]; then
|
||||
echo "OK"
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
let timeout=timeout-1
|
||||
done
|
||||
if [ ${timeout} -eq 0 ]; then
|
||||
echo "ERROR BATTERY TIMEOUT"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Unload I2C modules
|
||||
modprobe -r i2c_mv64xxx i2c_dev >/dev/null 2>&1
|
|
@ -1,22 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
if [ $# -ne 2 ]; then
|
||||
echo "ERROR GPIO ARGS"
|
||||
exit 1
|
||||
fi
|
||||
pin=$(gpiofind "${1}")
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "ERROR GPIO PIN"
|
||||
exit 1
|
||||
fi
|
||||
case ${2} in
|
||||
0) value=${2};;
|
||||
1) value=${2};;
|
||||
*) echo "ERROR GPIO VALUE"; exit 1;;
|
||||
esac
|
||||
gpioset ${pin}=${value}
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "ERROR GPIO I2C"
|
||||
else
|
||||
echo "OK"
|
||||
fi
|
|
@ -1,25 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Load I2C modules
|
||||
modprobe i2c-dev
|
||||
modprobe i2c-mv64xxx
|
||||
|
||||
# Look for U1 (PCAL6416 GPIO expander)
|
||||
U1=$(i2cdetect -y 0 20 20 | grep 20: | cut -d ':' -f 2)
|
||||
let U1=U1+0
|
||||
if [ ${U1} -ne 20 ]; then
|
||||
echo "ERROR I2C U1"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Look for U5 (AXP209 PMIC)
|
||||
U5=$(i2cdetect -y 0 34 34 | grep 30: | cut -d ':' -f 2)
|
||||
let U5=U5+0
|
||||
if [ ${U5} -ne 34 ]; then
|
||||
echo "ERROR I2C U5"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Unload I2C modules
|
||||
modprobe -r i2c_mv64xxx i2c_dev >/dev/null 2>&1
|
||||
echo "OK"
|
|
@ -1,26 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
if [ $# -ne 1 ];then
|
||||
echo "ERROR LED ARGS"
|
||||
exit;
|
||||
fi
|
||||
case ${1} in
|
||||
0) value=0x0a;;
|
||||
1) value=0x3a;;
|
||||
*) echo "ERROR LED VALUE"; exit 1;;
|
||||
esac
|
||||
|
||||
# Load I2C modules
|
||||
modprobe i2c-dev
|
||||
modprobe i2c-mv64xxx
|
||||
|
||||
# Turn on/off the LED
|
||||
i2cset -y 0 0x34 0x32 ${value}
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "ERROR LED I2C"
|
||||
else
|
||||
echo "OK"
|
||||
fi
|
||||
|
||||
# Unload I2C modules
|
||||
modprobe -r i2c_mv64xxx i2c_dev >/dev/null 2>&1
|
|
@ -1,24 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Turn on Power Amplifier
|
||||
gpioset $(gpiofind "PA")=1
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "ERROR SPEAKER ON"
|
||||
else
|
||||
|
||||
# Play 1kHz sine wave
|
||||
speaker-test -t sine -s 1 -f 1000 >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "ERROR SPEAKER SINE"
|
||||
gpioset $(gpiofind "PA")=0
|
||||
else
|
||||
|
||||
# Turn off Power Amplifier
|
||||
gpioset $(gpiofind "PA")=0
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "ERROR SPEAKER OFF"
|
||||
else
|
||||
echo "OK"
|
||||
fi
|
||||
fi
|
||||
fi
|
|
@ -1,9 +0,0 @@
|
|||
# <file system> <mount pt> <type> <options> <dump> <pass>
|
||||
/dev/root / ext2 rw,noauto 0 1
|
||||
proc /proc proc defaults 0 0
|
||||
devpts /dev/pts devpts defaults,gid=5,mode=620,ptmxmode=0666 0 0
|
||||
tmpfs /dev/shm tmpfs mode=0777 0 0
|
||||
tmpfs /tmp tmpfs mode=1777 0 0
|
||||
tmpfs /run tmpfs mode=0755,nosuid,nodev 0 0
|
||||
sysfs /sys sysfs defaults 0 0
|
||||
configfs /sys/kernel/config configfs rw,relatime 0 0
|
|
@ -1 +0,0 @@
|
|||
FunKey PCBA
|
|
@ -1,207 +0,0 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# alsa-utils initscript
|
||||
#
|
||||
### BEGIN INIT INFO
|
||||
# Provides: alsa-utils
|
||||
# Required-Start: $local_fs $remote_fs
|
||||
# Required-Stop: $remote_fs
|
||||
# Default-Start: S
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: Restore and store ALSA driver settings
|
||||
# Description: This script stores and restores mixer levels on
|
||||
# shutdown and bootup.On sysv-rc systems: to
|
||||
# disable storing of mixer levels on shutdown,
|
||||
# remove /etc/rc[06].d/K50alsa-utils. To disable
|
||||
# restoring of mixer levels on bootup, rename the
|
||||
# "S50alsa-utils" symbolic link in /etc/rcS.d/ to
|
||||
# "K50alsa-utils".
|
||||
### END INIT INFO
|
||||
|
||||
# Don't use set -e; check exit status instead
|
||||
|
||||
# Exit silently if package is no longer installed
|
||||
[ -x /usr/sbin/alsactl ] || exit 0
|
||||
|
||||
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||
MYNAME=/etc/init.d/alsa-utils
|
||||
ALSACTLHOME=/run/alsa
|
||||
|
||||
[ -d "$ALSACTLHOME" ] || mkdir -p "$ALSACTLHOME"
|
||||
|
||||
. /lib/lsb/init-functions
|
||||
. /usr/share/alsa/utils.sh
|
||||
|
||||
# $1 EXITSTATUS
|
||||
# [$2 MESSAGE]
|
||||
log_action_end_msg_and_exit()
|
||||
{
|
||||
log_action_end_msg "$1" ${2:+"$2"}
|
||||
exit $1
|
||||
}
|
||||
|
||||
# $1 PROGRAM
|
||||
executable()
|
||||
{
|
||||
# If which is not available then we must be running before
|
||||
# /usr is mounted on a system that has which in /usr/bin/.
|
||||
# Conclude that $1 is not executable.
|
||||
[ -x /bin/which ] || [ -x /usr/bin/which ] || return 1
|
||||
which "$1" >/dev/null 2>&1
|
||||
}
|
||||
|
||||
executable amixer || { echo "${MYNAME}: Error: No amixer program available." >&2 ; exit 1 ; }
|
||||
|
||||
# $1 <card ID> | "all"
|
||||
restore_levels()
|
||||
{
|
||||
[ -f /var/lib/alsa/asound.state ] || return 1
|
||||
CARD="$1"
|
||||
[ "$1" = all ] && CARD=""
|
||||
# Assume that if alsactl prints a message on stderr
|
||||
# then it failed somehow. This works around the fact
|
||||
# that alsactl doesn't return nonzero status when it
|
||||
# can't restore settings for the card
|
||||
if MSG="$(alsactl -E HOME="$ALSACTLHOME" restore $CARD 2>&1 >/dev/null)" && [ ! "$MSG" ] ; then
|
||||
return 0
|
||||
else
|
||||
# Retry with the "force" option. This restores more levels
|
||||
# but it results in much longer error messages.
|
||||
alsactl -F restore $CARD >/dev/null 2>&1
|
||||
log_action_cont_msg "warning: 'alsactl -E HOME="$ALSACTLHOME" restore${CARD:+ $CARD}' failed with error message '$MSG'"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# $1 <card ID> | "all"
|
||||
store_levels()
|
||||
{
|
||||
CARD="$1"
|
||||
[ "$1" = all ] && CARD=""
|
||||
if MSG="$(alsactl -E HOME="$ALSACTLHOME" store $CARD 2>&1)" ; then
|
||||
sleep 1
|
||||
return 0
|
||||
else
|
||||
log_action_cont_msg "warning: 'alsactl store${CARD:+ $CARD}' failed with error message '$MSG'"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
# $1 <card ID>
|
||||
mute_and_zero_levels_on_card()
|
||||
{
|
||||
CARDOPT="-c $1"
|
||||
for CTL in \
|
||||
Master \
|
||||
PCM \
|
||||
Synth \
|
||||
CD \
|
||||
Line \
|
||||
Mic \
|
||||
"PCM,1" \
|
||||
Wave \
|
||||
Music \
|
||||
AC97 \
|
||||
"Master Digital" \
|
||||
DAC \
|
||||
"DAC,0" \
|
||||
"DAC,1" \
|
||||
Headphone \
|
||||
Speaker \
|
||||
Playback
|
||||
do
|
||||
mute_and_zero_level "$CTL"
|
||||
done
|
||||
# for CTL in \
|
||||
# "Audigy Analog/Digital Output Jack" \
|
||||
# "SB Live Analog/Digital Output Jack"
|
||||
# do
|
||||
# switch_control "$CTL" off
|
||||
# done
|
||||
return 0
|
||||
}
|
||||
|
||||
# $1 <card ID> | "all"
|
||||
mute_and_zero_levels()
|
||||
{
|
||||
TTZML_RETURNSTATUS=0
|
||||
case "$1" in
|
||||
all)
|
||||
for CARD in $(echo_card_indices) ; do
|
||||
mute_and_zero_levels_on_card "$CARD" || TTZML_RETURNSTATUS=1
|
||||
done
|
||||
;;
|
||||
*)
|
||||
mute_and_zero_levels_on_card "$1" || TTZML_RETURNSTATUS=1
|
||||
;;
|
||||
esac
|
||||
return $TTZML_RETURNSTATUS
|
||||
}
|
||||
|
||||
|
||||
# $1 <card ID> | "all"
|
||||
card_OK()
|
||||
{
|
||||
[ "$1" ] || bugout
|
||||
if [ "$1" = all ] ; then
|
||||
[ -d /proc/asound ]
|
||||
return $?
|
||||
else
|
||||
[ -d "/proc/asound/card$1" ] || [ -d "/proc/asound/$1" ]
|
||||
return $?
|
||||
fi
|
||||
}
|
||||
|
||||
# If a card identifier is provided in $2 then regard it as an error
|
||||
# if that card is not present; otherwise don't regard it as an error.
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
EXITSTATUS=0
|
||||
TARGET_CARD="$2"
|
||||
case "$TARGET_CARD" in
|
||||
""|all) TARGET_CARD=all ;;
|
||||
*) ;;
|
||||
esac
|
||||
card_OK "$TARGET_CARD" || log_action_end_msg_and_exit "$( [ ! "$2" ] ; echo $? ; )" "none loaded"
|
||||
preinit_levels "$TARGET_CARD" || EXITSTATUS=1
|
||||
if ! restore_levels "$TARGET_CARD" ; then
|
||||
sanify_levels "$TARGET_CARD" || EXITSTATUS=1
|
||||
restore_levels "$TARGET_CARD" >/dev/null 2>&1 || :
|
||||
fi
|
||||
;;
|
||||
stop)
|
||||
EXITSTATUS=0
|
||||
TARGET_CARD="$2"
|
||||
case "$TARGET_CARD" in
|
||||
""|all) TARGET_CARD=all ;;
|
||||
*) ;;
|
||||
esac
|
||||
card_OK "$TARGET_CARD" || log_action_end_msg_and_exit "$( [ ! "$2" ] ; echo $? ; )" "none loaded"
|
||||
store_levels "$TARGET_CARD" || EXITSTATUS=1
|
||||
#mute_and_zero_levels "$TARGET_CARD" || EXITSTATUS=1
|
||||
;;
|
||||
restart|force-reload)
|
||||
EXITSTATUS=0
|
||||
$0 stop || EXITSTATUS=1
|
||||
$0 start || EXITSTATUS=1
|
||||
exit $EXITSTATUS
|
||||
;;
|
||||
reset)
|
||||
TARGET_CARD="$2"
|
||||
case "$TARGET_CARD" in
|
||||
""|all) TARGET_CARD=all ; log_action_begin_msg "Resetting ALSA" ;;
|
||||
*) log_action_begin_msg "Resetting ALSA card ${TARGET_CARD}" ;;
|
||||
esac
|
||||
card_OK "$TARGET_CARD" || log_action_end_msg_and_exit "$( [ ! "$2" ] ; echo $? ; )" "none loaded"
|
||||
preinit_levels "$TARGET_CARD"
|
||||
sanify_levels "$TARGET_CARD"
|
||||
log_action_end_msg_and_exit "$?"
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $MYNAME {start [CARD]|stop [CARD]|restart [CARD]|reset [CARD]}" >&2
|
||||
exit 3
|
||||
;;
|
||||
esac
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
# /etc/inittab
|
||||
#
|
||||
# Copyright (C) 2001 Erik Andersen <andersen@codepoet.org>
|
||||
#
|
||||
# Note: BusyBox init doesn't support runlevels. The runlevels field is
|
||||
# completely ignored by BusyBox init. If you want runlevels, use
|
||||
# sysvinit.
|
||||
#
|
||||
# Format for each entry: <id>:<runlevels>:<action>:<process>
|
||||
#
|
||||
# id == tty to run on, or empty for /dev/console
|
||||
# runlevels == ignored
|
||||
# action == one of sysinit, respawn, askfirst, wait, and once
|
||||
# process == program to run
|
||||
|
||||
# Startup the system
|
||||
::sysinit:/bin/cat /etc/issue
|
||||
::sysinit:/bin/mount -t proc proc /proc
|
||||
::sysinit:/bin/mount -o remount,rw /
|
||||
::sysinit:/bin/mkdir -p /dev/pts /dev/shm
|
||||
::sysinit:/bin/mount -a
|
||||
null::sysinit:/bin/ln -sf /proc/self/fd /dev/fd
|
||||
null::sysinit:/bin/ln -sf /proc/self/fd/0 /dev/stdin
|
||||
null::sysinit:/bin/ln -sf /proc/self/fd/1 /dev/stdout
|
||||
null::sysinit:/bin/ln -sf /proc/self/fd/2 /dev/stderr
|
||||
::sysinit:/bin/hostname -F /etc/hostname
|
||||
|
||||
# now run any rc scripts
|
||||
::sysinit:/etc/init.d/rcS
|
||||
|
||||
# Start an automatic root login on the console
|
||||
::respawn:-/bin/login -f root
|
||||
|
||||
# Stuff to do for the 3-finger salute
|
||||
#::ctrlaltdel:/sbin/reboot
|
||||
|
||||
# Stuff to do before rebooting
|
||||
::shutdown:/etc/init.d/rcK
|
||||
::shutdown:/sbin/swapoff -a
|
||||
::shutdown:/bin/umount -a -r
|
|
@ -1,2 +0,0 @@
|
|||
Welcome to FunKey!
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
export PATH="/usr/sbin:/usr/bin:/sbin:/bin"
|
||||
|
||||
export PAGER='/bin/more'
|
||||
export EDITOR='/usr/bin/nano'
|
||||
|
||||
# Source configuration files from /etc/profile.d
|
||||
for i in /etc/profile.d/*.sh ; do
|
||||
if [ -r "$i" ]; then
|
||||
. $i
|
||||
fi
|
||||
done
|
||||
unset i
|
|
@ -1,34 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
#set -xv
|
||||
|
||||
if [ x"$THIS" != x ]; then
|
||||
THIS="${THIS}: "
|
||||
fi
|
||||
log_action_msg () {
|
||||
echo "${THIS}${@}." | tee /dev/kmsg
|
||||
}
|
||||
|
||||
log_action_begin_msg () {
|
||||
echo -n "${THIS}${@}: " | tee /dev/kmsg
|
||||
}
|
||||
|
||||
log_action_cont_msg () {
|
||||
echo "${THIS}${@}..." | tee /dev/kmsg
|
||||
}
|
||||
|
||||
log_action_end_msg () {
|
||||
local end
|
||||
if [ -z "${2:-}" ]; then
|
||||
end=""
|
||||
else
|
||||
end=" ($2)"
|
||||
fi
|
||||
|
||||
if [ $1 -eq 0 ]; then
|
||||
echo "${THIS}OK${end}" | tee /dev/kmsg
|
||||
else
|
||||
echo "${THIS}ERROR${end}" | tee /dev/kmsg
|
||||
fi
|
||||
}
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Define log functions if they do not exist yet
|
||||
type -t info >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
info () {
|
||||
echo "$SELF:" "$@" | tee /dev/kmsg
|
||||
}
|
||||
|
||||
warn () {
|
||||
echo "$SELF:" "$@" >&2 | tee /dev/kmsg
|
||||
}
|
||||
|
||||
die () {
|
||||
local return_code=$1
|
||||
shift
|
||||
warn "$@"
|
||||
exit $return_code
|
||||
}
|
||||
fi
|
|
@ -1,182 +0,0 @@
|
|||
# Shell snippet.
|
||||
|
||||
bugout() { echo "${MYNAME}: Programming error" >&2 ; exit 123 ; }
|
||||
|
||||
echo_card_indices()
|
||||
{
|
||||
if [ -f /proc/asound/cards ] ; then
|
||||
sed -n -e's/^[[:space:]]*\([0-7]\)[[:space:]].*/\1/p' /proc/asound/cards
|
||||
fi
|
||||
}
|
||||
|
||||
filter_amixer_output()
|
||||
{
|
||||
sed \
|
||||
-e '/Unable to find simple control/d' \
|
||||
-e '/Unknown playback setup/d' \
|
||||
-e '/^$/d'
|
||||
}
|
||||
|
||||
# The following functions try to set many controls.
|
||||
# No card has all the controls and so some of the attempts are bound to fail.
|
||||
# Because of this, the functions can't return useful status values.
|
||||
|
||||
# $1 <control>
|
||||
# $2 <level>
|
||||
# $CARDOPT
|
||||
unmute_and_set_level()
|
||||
{
|
||||
{ [ "$2" ] && [ "$CARDOPT" ] ; } || bugout
|
||||
amixer $CARDOPT -q set "$1" "$2" unmute 2>&1 | filter_amixer_output || :
|
||||
return 0
|
||||
}
|
||||
|
||||
# $1 <control>
|
||||
# $CARDOPT
|
||||
mute_and_zero_level()
|
||||
{
|
||||
{ [ "$1" ] && [ "$CARDOPT" ] ; } || bugout
|
||||
amixer $CARDOPT -q set "$1" "0%" mute 2>&1 | filter_amixer_output || :
|
||||
return 0
|
||||
}
|
||||
|
||||
# $1 <control>
|
||||
# $2 "on" | "off"
|
||||
# $CARDOPT
|
||||
switch_control()
|
||||
{
|
||||
{ [ "$2" ] && [ "$CARDOPT" ] ; } || bugout
|
||||
amixer $CARDOPT -q set "$1" "$2" 2>&1 | filter_amixer_output || :
|
||||
return 0
|
||||
}
|
||||
|
||||
# $1 <card ID>
|
||||
sanify_levels_on_card()
|
||||
{
|
||||
CARDOPT="-c $1"
|
||||
|
||||
unmute_and_set_level "Master" "80%"
|
||||
unmute_and_set_level "Master Mono" "80%" # See Bug#406047
|
||||
unmute_and_set_level "Master Digital" "80%" # E.g., cs4237B
|
||||
unmute_and_set_level "Playback" "80%"
|
||||
unmute_and_set_level "Headphone" "70%"
|
||||
unmute_and_set_level "PCM" "80%"
|
||||
unmute_and_set_level "PCM,1" "80%" # E.g., ess1969
|
||||
unmute_and_set_level "DAC" "80%" # E.g., envy24, cs46xx
|
||||
unmute_and_set_level "DAC,0" "80%" # E.g., envy24
|
||||
unmute_and_set_level "DAC,1" "80%" # E.g., envy24
|
||||
unmute_and_set_level "Synth" "80%"
|
||||
unmute_and_set_level "CD" "80%"
|
||||
|
||||
mute_and_zero_level "Mic"
|
||||
mute_and_zero_level "IEC958" # Ubuntu #19648
|
||||
|
||||
# Intel P4P800-MX (Ubuntu bug #5813)
|
||||
switch_control "Master Playback Switch" on
|
||||
switch_control "Master Surround" on
|
||||
|
||||
# Trident/YMFPCI/emu10k1:
|
||||
unmute_and_set_level "Wave" "80%"
|
||||
unmute_and_set_level "Music" "80%"
|
||||
unmute_and_set_level "AC97" "80%"
|
||||
|
||||
# DRC:
|
||||
unmute_and_set_level "Dynamic Range Compression" "80%"
|
||||
|
||||
# Required for HDA Intel (hda-intel):
|
||||
unmute_and_set_level "Front" "80%"
|
||||
unmute_and_set_level "Master Front" "80%"
|
||||
|
||||
# Required for SB Live 7.1/24-bit (ca0106):
|
||||
unmute_and_set_level "Analog Front" "80%"
|
||||
|
||||
# Required at least for Via 823x hardware on DFI K8M800-MLVF Motherboard with kernels 2.6.10-3/4 (see ubuntu #7286):
|
||||
switch_control "IEC958 Capture Monitor" off
|
||||
|
||||
# Required for hardware allowing toggles for AC97 through IEC958,
|
||||
# valid values are 0, 1, 2, 3. Needs to be set to 0 for PCM1.
|
||||
unmute_and_set_level "IEC958 Playback AC97-SPSA" "0"
|
||||
|
||||
# Required for newer Via hardware (see Ubuntu #31784)
|
||||
unmute_and_set_level "VIA DXS,0" "80%"
|
||||
unmute_and_set_level "VIA DXS,1" "80%"
|
||||
unmute_and_set_level "VIA DXS,2" "80%"
|
||||
unmute_and_set_level "VIA DXS,3" "80%"
|
||||
|
||||
# Required on some notebooks with ICH4:
|
||||
switch_control "Headphone Jack Sense" off
|
||||
switch_control "Line Jack Sense" off
|
||||
|
||||
# Some machines need one or more of these to be on;
|
||||
# others need one or more of these to be off:
|
||||
#
|
||||
# switch_control "External Amplifier" on
|
||||
# switch_control "Audigy Analog/Digital Output Jack" on
|
||||
# switch_control "SB Live Analog/Digital Output Jack" on
|
||||
|
||||
# D1984 -- Thinkpad T61/X61
|
||||
switch_control "Speaker" on
|
||||
switch_control "Headphone" on
|
||||
|
||||
# HDA-Intel w/ "Digital" capture mixer (See Ubuntu #193823)
|
||||
unmute_and_set_level "Digital" "80%"
|
||||
|
||||
# On MacBookPro5,3 and later models (See Bug#597791)
|
||||
unmute_and_set_level "Front Speaker" "80%"
|
||||
# On MacBook5,2 models (See Bug#602973)
|
||||
unmute_and_set_level "LFE" "80%"
|
||||
|
||||
# On Intel 82801H (See Bug#603550)
|
||||
unmute_and_set_level "Speaker" "80%"
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
# $1 <card ID> | "all"
|
||||
sanify_levels()
|
||||
{
|
||||
TTSDML_RETURNSTATUS=0
|
||||
case "$1" in
|
||||
all)
|
||||
for CARD in $(echo_card_indices) ; do
|
||||
sanify_levels_on_card "$CARD" || TTSDML_RETURNSTATUS=1
|
||||
done
|
||||
;;
|
||||
*)
|
||||
sanify_levels_on_card "$1" || TTSDML_RETURNSTATUS=1
|
||||
;;
|
||||
esac
|
||||
return $TTSDML_RETURNSTATUS
|
||||
}
|
||||
|
||||
# $1 <card ID>
|
||||
preinit_levels_on_card()
|
||||
{
|
||||
CARDOPT="-c $1"
|
||||
|
||||
# Silly dance to activate internal speakers by default on PowerMac
|
||||
# Snapper and Tumbler
|
||||
id=$(cat /proc/asound/card$1/id 2>/dev/null)
|
||||
if [ "$id" = "Snapper" -o "$id" = "Tumbler" ]; then
|
||||
switch_control "Auto Mute" off
|
||||
switch_control "PC Speaker" off
|
||||
switch_control "Auto Mute" on
|
||||
fi
|
||||
}
|
||||
|
||||
# $1 <card ID> | "all"
|
||||
preinit_levels()
|
||||
{
|
||||
TTSDML_RETURNSTATUS=0
|
||||
case "$1" in
|
||||
all)
|
||||
for CARD in $(echo_card_indices) ; do
|
||||
preinit_levels_on_card "$CARD" || TTSDML_RETURNSTATUS=1
|
||||
done
|
||||
;;
|
||||
*)
|
||||
preinit_levels_on_card "$1" || TTSDML_RETURNSTATUS=1
|
||||
;;
|
||||
esac
|
||||
return $TTSDML_RETURNSTATUS
|
||||
}
|
|
@ -1,162 +0,0 @@
|
|||
state.Codec {
|
||||
control.1 {
|
||||
iface MIXER
|
||||
name 'DAC Playback Volume'
|
||||
value 51
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 63'
|
||||
dbmin -7308
|
||||
dbmax 0
|
||||
dbvalue.0 -1392
|
||||
}
|
||||
}
|
||||
control.2 {
|
||||
iface MIXER
|
||||
name 'Headphone Playback Volume'
|
||||
value 50
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 63'
|
||||
dbmin -9999999
|
||||
dbmax 0
|
||||
dbvalue.0 -1300
|
||||
}
|
||||
}
|
||||
control.3 {
|
||||
iface MIXER
|
||||
name 'Headphone Playback Switch'
|
||||
value.0 true
|
||||
value.1 true
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 2
|
||||
}
|
||||
}
|
||||
control.4 {
|
||||
iface MIXER
|
||||
name 'Mic1 Playback Volume'
|
||||
value 3
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 7'
|
||||
dbmin -450
|
||||
dbmax 600
|
||||
dbvalue.0 0
|
||||
}
|
||||
}
|
||||
control.5 {
|
||||
iface MIXER
|
||||
name 'Mic1 Boost Volume'
|
||||
value 4
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 7'
|
||||
dbmin 0
|
||||
dbmax 4200
|
||||
dbvalue.0 3300
|
||||
}
|
||||
}
|
||||
control.6 {
|
||||
iface MIXER
|
||||
name 'ADC Gain Capture Volume'
|
||||
value 3
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 7'
|
||||
dbmin -450
|
||||
dbmax 600
|
||||
dbvalue.0 0
|
||||
}
|
||||
}
|
||||
control.7 {
|
||||
iface MIXER
|
||||
name 'DAC Playback Switch'
|
||||
value.0 true
|
||||
value.1 true
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 2
|
||||
}
|
||||
}
|
||||
control.8 {
|
||||
iface MIXER
|
||||
name 'DAC Reversed Playback Switch'
|
||||
value.0 false
|
||||
value.1 false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 2
|
||||
}
|
||||
}
|
||||
control.9 {
|
||||
iface MIXER
|
||||
name 'Mic1 Playback Switch'
|
||||
value.0 false
|
||||
value.1 false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 2
|
||||
}
|
||||
}
|
||||
control.10 {
|
||||
iface MIXER
|
||||
name 'Mixer Capture Switch'
|
||||
value.0 false
|
||||
value.1 false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 2
|
||||
}
|
||||
}
|
||||
control.11 {
|
||||
iface MIXER
|
||||
name 'Mixer Reversed Capture Switch'
|
||||
value.0 false
|
||||
value.1 false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 2
|
||||
}
|
||||
}
|
||||
control.12 {
|
||||
iface MIXER
|
||||
name 'Mic1 Capture Switch'
|
||||
value.0 false
|
||||
value.1 false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 2
|
||||
}
|
||||
}
|
||||
control.13 {
|
||||
iface MIXER
|
||||
name 'Headphone Source Playback Route'
|
||||
value.0 DAC
|
||||
value.1 DAC
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 2
|
||||
item.0 DAC
|
||||
item.1 Mixer
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,53 +0,0 @@
|
|||
CONFIG_ARM=y
|
||||
CONFIG_ARCH_SUNXI=y
|
||||
# CONFIG_SPL_LIBDISK_SUPPORT is not set
|
||||
# CONFIG_SPL_MMC_SUPPORT is not set
|
||||
# CONFIG_SPL_POWER_SUPPORT is not set
|
||||
# CONFIG_ARMV7_NONSEC is not set
|
||||
CONFIG_IDENT_STRING=" FunKey PCBA"
|
||||
# CONFIG_PRE_CONSOLE_BUFFER is not set
|
||||
CONFIG_MACH_SUN8I_V3S=y
|
||||
CONFIG_DRAM_CLK=360
|
||||
CONFIG_DRAM_ZQ=14779
|
||||
# CONFIG_MMC is not set
|
||||
# CONFIG_VIDEO is not set
|
||||
CONFIG_DEFAULT_DEVICE_TREE="sun8i-v3s-funkey"
|
||||
CONFIG_LOCALVERSION="-funkey_PCBA"
|
||||
# CONFIG_DISTRO_DEFAULTS is not set
|
||||
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
|
||||
CONFIG_BOOTDELAY=0
|
||||
CONFIG_SYS_CONSOLE_INFO_QUIET=y
|
||||
CONFIG_SYS_STDIO_DEREGISTER=y
|
||||
# CONFIG_DISPLAY_CPUINFO is not set
|
||||
# CONFIG_DISPLAY_BOARDINFO is not set
|
||||
CONFIG_SPL=y
|
||||
CONFIG_HUSH_PARSER=y
|
||||
# CONFIG_CMD_BDI is not set
|
||||
# CONFIG_CMD_CONSOLE is not set
|
||||
# CONFIG_CMD_BOOTD is not set
|
||||
# CONFIG_CMD_BOOTM is not set
|
||||
CONFIG_CMD_BOOTZ=y
|
||||
# CONFIG_CMD_ELF is not set
|
||||
# CONFIG_CMD_GO is not set
|
||||
# CONFIG_CMD_IMI is not set
|
||||
# CONFIG_CMD_IMLS is not set
|
||||
# CONFIG_CMD_XIMG is not set
|
||||
# CONFIG_CMD_EXPORTENV is not set
|
||||
# CONFIG_CMD_IMPORTENV is not set
|
||||
# CONFIG_CMD_EDITENV is not set
|
||||
# CONFIG_CMD_SAVEENV is not set
|
||||
# CONFIG_CMD_ENV_EXISTS is not set
|
||||
# CONFIG_CMD_MEMORY is not set
|
||||
# CONFIG_CMD_CRC32 is not set
|
||||
# CONFIG_CMD_DM is not set
|
||||
# CONFIG_CMD_LOADB is not set
|
||||
# CONFIG_CMD_LOADS is not set
|
||||
# CONFIG_CMD_FLASH is not set
|
||||
# CONFIG_CMD_FPGA is not set
|
||||
# CONFIG_CMD_ITEST is not set
|
||||
# CONFIG_CMD_SETEXPR is not set
|
||||
# CONFIG_CMD_NET is not set
|
||||
# CONFIG_CMD_NFS is not set
|
||||
# CONFIG_CMD_MISC is not set
|
||||
CONFIG_SPL_OF_LIBFDT=y
|
||||
# CONFIG_EFI_LOADER is not set
|
|
@ -1,64 +0,0 @@
|
|||
BR2_arm=y
|
||||
BR2_cortex_a7=y
|
||||
BR2_DL_DIR="$(BR2_EXTERNAL_FUNKEY_PATH)/dl"
|
||||
BR2_CCACHE=y
|
||||
BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_FUNKEY_PATH)/board/funkey/patches"
|
||||
BR2_TOOLCHAIN_EXTERNAL=y
|
||||
BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY=y
|
||||
BR2_TARGET_GENERIC_HOSTNAME="FunKey"
|
||||
BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot for the FunKey"
|
||||
BR2_ROOTFS_DEVICE_TABLE="$(BR2_EXTERNAL_FUNKEY_PATH)/board/funkey/device_table.txt"
|
||||
BR2_TARGET_GENERIC_ROOT_PASSWD="funkey"
|
||||
BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
|
||||
BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200=y
|
||||
BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_FUNKEY_PATH)/board/funkey/users_table.txt"
|
||||
BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_FUNKEY_PATH)/board/funkey/rootfs-overlay"
|
||||
BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL_FUNKEY_PATH)/board/funkey/post-build.sh"
|
||||
BR2_LINUX_KERNEL=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_GIT=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/Lichee-Pi/linux"
|
||||
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="cda44c146b9b87290bc7c636ffa7d88cbfb03ace"
|
||||
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_FUNKEY_PATH)/board/funkey/linux.config"
|
||||
BR2_LINUX_KERNEL_LZMA=y
|
||||
BR2_LINUX_KERNEL_DTS_SUPPORT=y
|
||||
BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-v3s-funkey"
|
||||
BR2_PACKAGE_LINUX_TOOLS_GPIO=y
|
||||
BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL_FUNKEY_PATH)/board/funkey/busybox.config"
|
||||
BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
|
||||
BR2_PACKAGE_ALSA_UTILS=y
|
||||
BR2_PACKAGE_ALSA_UTILS_ALSACONF=y
|
||||
BR2_PACKAGE_ALSA_UTILS_ACONNECT=y
|
||||
BR2_PACKAGE_ALSA_UTILS_ALSALOOP=y
|
||||
BR2_PACKAGE_ALSA_UTILS_ALSAUCM=y
|
||||
BR2_PACKAGE_ALSA_UTILS_ALSATPLG=y
|
||||
BR2_PACKAGE_ALSA_UTILS_AMIDI=y
|
||||
BR2_PACKAGE_ALSA_UTILS_AMIXER=y
|
||||
BR2_PACKAGE_ALSA_UTILS_APLAY=y
|
||||
BR2_PACKAGE_ALSA_UTILS_APLAYMIDI=y
|
||||
BR2_PACKAGE_ALSA_UTILS_ARECORDMIDI=y
|
||||
BR2_PACKAGE_ALSA_UTILS_ASEQDUMP=y
|
||||
BR2_PACKAGE_ALSA_UTILS_ASEQNET=y
|
||||
BR2_PACKAGE_ALSA_UTILS_BAT=y
|
||||
BR2_PACKAGE_ALSA_UTILS_IECSET=y
|
||||
BR2_PACKAGE_ALSA_UTILS_SPEAKER_TEST=y
|
||||
BR2_PACKAGE_AUMIX=y
|
||||
BR2_PACKAGE_LIBGPIOD=y
|
||||
BR2_PACKAGE_LIBGPIOD_TOOLS=y
|
||||
# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
|
||||
BR2_TARGET_ROOTFS_CPIO_LZMA=y
|
||||
BR2_TARGET_ROOTFS_CPIO_UIMAGE=y
|
||||
BR2_TARGET_ROOTFS_INITRAMFS=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/Lichee-Pi/u-boot"
|
||||
BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="32ab1804cd7c5858be8009e35ca07502dc8765c7"
|
||||
BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG=y
|
||||
BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_FUNKEY_PATH)/board/funkey/uboot.config"
|
||||
BR2_TARGET_UBOOT_NEEDS_DTC=y
|
||||
BR2_TARGET_UBOOT_FORMAT_CUSTOM=y
|
||||
BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-sunxi-with-spl.bin"
|
||||
BR2_TARGET_UBOOT_BOOT_SCRIPT=y
|
||||
BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_FUNKEY_PATH)/board/funkey/boot.cmd"
|
|
@ -1,2 +0,0 @@
|
|||
name: FUNKEY
|
||||
desc: FunKey packages
|
|
@ -1 +0,0 @@
|
|||
include $(sort $(wildcard $(BR2_EXTERNAL_FUNKEY_PATH)/package/*/*.mk))
|
Loading…
Reference in New Issue