mirror of https://github.com/OpenIPC/firmware.git
Add some GM stuff
parent
a3f658df00
commit
180a5fd5cf
|
@ -13,8 +13,8 @@ source "$BR2_EXTERNAL_GRAINMEDIA_PATH/package/libogg-openipc/Config.in"
|
|||
source "$BR2_EXTERNAL_GRAINMEDIA_PATH/package/libsrt-openipc/Config.in"
|
||||
source "$BR2_EXTERNAL_GRAINMEDIA_PATH/package/libwebsockets-openipc/Config.in"
|
||||
source "$BR2_EXTERNAL_GRAINMEDIA_PATH/package/linux-firmware-openipc/Config.in"
|
||||
source "$BR2_EXTERNAL_GRAINMEDIA_PATH/package/majestic-fonts/Config.in"
|
||||
source "$BR2_EXTERNAL_GRAINMEDIA_PATH/package/majestic/Config.in"
|
||||
#source "$BR2_EXTERNAL_GRAINMEDIA_PATH/package/majestic-fonts/Config.in"
|
||||
#source "$BR2_EXTERNAL_GRAINMEDIA_PATH/package/majestic/Config.in"
|
||||
source "$BR2_EXTERNAL_GRAINMEDIA_PATH/package/mbedtls-openipc/Config.in"
|
||||
source "$BR2_EXTERNAL_GRAINMEDIA_PATH/package/microbe-web/Config.in"
|
||||
source "$BR2_EXTERNAL_GRAINMEDIA_PATH/package/motors/Config.in"
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
MEM_START_ADDR=0x40000000
|
||||
KERNEL_UPLOAD_ADDR=0x41000000
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,65 @@
|
|||
#ifndef __LINUX_COMPILER_H
|
||||
#error "Please don't include <linux/compiler-gcc7.h> directly, include <linux/compiler.h> instead."
|
||||
#endif
|
||||
|
||||
#define __used __attribute__((__used__))
|
||||
#define __must_check __attribute__((warn_unused_result))
|
||||
#define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
|
||||
|
||||
/* Mark functions as cold. gcc will assume any path leading to a call
|
||||
to them will be unlikely. This means a lot of manual unlikely()s
|
||||
are unnecessary now for any paths leading to the usual suspects
|
||||
like BUG(), printk(), panic() etc. [but let's keep them for now for
|
||||
older compilers]
|
||||
|
||||
Early snapshots of gcc 4.3 don't support this and we can't detect this
|
||||
in the preprocessor, but we can live with this because they're unreleased.
|
||||
Maketime probing would be overkill here.
|
||||
|
||||
gcc also has a __attribute__((__hot__)) to move hot functions into
|
||||
a special section, but I don't see any sense in this right now in
|
||||
the kernel context */
|
||||
#define __cold __attribute__((__cold__))
|
||||
|
||||
#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
|
||||
|
||||
#ifndef __CHECKER__
|
||||
# define __compiletime_warning(message) __attribute__((warning(message)))
|
||||
# define __compiletime_error(message) __attribute__((error(message)))
|
||||
#endif /* __CHECKER__ */
|
||||
|
||||
/*
|
||||
* Mark a position in code as unreachable. This can be used to
|
||||
* suppress control flow warnings after asm blocks that transfer
|
||||
* control elsewhere.
|
||||
*
|
||||
* Early snapshots of gcc 4.5 don't support this and we can't detect
|
||||
* this in the preprocessor, but we can live with this because they're
|
||||
* unreleased. Really, we need to have autoconf for the kernel.
|
||||
*/
|
||||
#define unreachable() __builtin_unreachable()
|
||||
|
||||
/* Mark a function definition as prohibited from being cloned. */
|
||||
#define __noclone __attribute__((__noclone__))
|
||||
|
||||
/*
|
||||
* Tell the optimizer that something else uses this function or variable.
|
||||
*/
|
||||
#define __visible __attribute__((externally_visible))
|
||||
|
||||
/*
|
||||
* GCC 'asm goto' miscompiles certain code sequences:
|
||||
*
|
||||
* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
|
||||
*
|
||||
* Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
|
||||
*
|
||||
* (asm goto is automatically volatile - the naming reflects this.)
|
||||
*/
|
||||
#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
|
||||
|
||||
#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
|
||||
#define __HAVE_BUILTIN_BSWAP32__
|
||||
#define __HAVE_BUILTIN_BSWAP64__
|
||||
#define __HAVE_BUILTIN_BSWAP16__
|
||||
#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */
|
|
@ -0,0 +1,62 @@
|
|||
--- linux-3.0.101/arch/arm/boot/Makefile 2013-10-22 11:58:59.000000000 +0400
|
||||
+++ linux-3.0.101/arch/arm/boot/Makefile 2021-12-15 10:51:15.956535987 +0300
|
||||
@@ -59,15 +59,19 @@
|
||||
|
||||
endif
|
||||
|
||||
-quiet_cmd_uimage = UIMAGE $@
|
||||
- cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A arm -O linux -T kernel \
|
||||
- -C none -a $(LOADADDR) -e $(STARTADDR) \
|
||||
- -n 'Linux-$(KERNELRELEASE)' -d $< $@
|
||||
+#quiet_cmd_uimage = UIMAGE $@
|
||||
+# cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A arm -O linux -T kernel \
|
||||
+# -C none -a $(LOADADDR) -e $(STARTADDR) \
|
||||
+# -n 'Linux-$(KERNELRELEASE)' -d $< $@
|
||||
|
||||
-ifeq ($(CONFIG_ZBOOT_ROM),y)
|
||||
-$(obj)/uImage: LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT)
|
||||
+ifneq ($(LOADADDR),)
|
||||
+ UIMAGE_LOADADDR=$(LOADADDR)
|
||||
else
|
||||
-$(obj)/uImage: LOADADDR=$(ZRELADDR)
|
||||
+ ifeq ($(CONFIG_ZBOOT_ROM),y)
|
||||
+ UIMAGE_LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT)
|
||||
+ else
|
||||
+ UIMAGE_LOADADDR=$(ZRELADDR)
|
||||
+ endif
|
||||
endif
|
||||
|
||||
$(obj)/uImage: STARTADDR=$(LOADADDR)
|
||||
--- linux-3.0.101/scripts/Makefile.lib 2013-10-22 11:58:59.000000000 +0400
|
||||
+++ linux-3.0.101/scripts/Makefile.lib 2021-12-15 10:53:24.551357718 +0300
|
||||
@@ -262,6 +262,30 @@
|
||||
lzop -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ || \
|
||||
(rm -f $@ ; false)
|
||||
|
||||
+# U-Boot mkimage
|
||||
+# ---------------------------------------------------------------------------
|
||||
+
|
||||
+MKIMAGE := $(srctree)/scripts/mkuboot.sh
|
||||
+
|
||||
+# SRCARCH just happens to match slightly more than ARCH (on sparc), so reduces
|
||||
+# the number of overrides in arch makefiles
|
||||
+UIMAGE_ARCH ?= $(SRCARCH)
|
||||
+UIMAGE_COMPRESSION ?= $(if $(2),$(2),none)
|
||||
+UIMAGE_OPTS-y ?=
|
||||
+UIMAGE_TYPE ?= kernel
|
||||
+UIMAGE_LOADADDR ?= arch_must_set_this
|
||||
+UIMAGE_ENTRYADDR ?= $(UIMAGE_LOADADDR)
|
||||
+UIMAGE_NAME ?= 'Linux-$(KERNELRELEASE)'
|
||||
+UIMAGE_IN ?= $<
|
||||
+UIMAGE_OUT ?= $@
|
||||
+
|
||||
+quiet_cmd_uimage = UIMAGE $(UIMAGE_OUT)
|
||||
+ cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A $(UIMAGE_ARCH) -O linux \
|
||||
+ -C $(UIMAGE_COMPRESSION) $(UIMAGE_OPTS-y) \
|
||||
+ -T $(UIMAGE_TYPE) \
|
||||
+ -a $(UIMAGE_LOADADDR) -e $(UIMAGE_ENTRYADDR) \
|
||||
+ -n $(UIMAGE_NAME) -d $(UIMAGE_IN) $(UIMAGE_OUT)
|
||||
+
|
||||
# XZ
|
||||
# ---------------------------------------------------------------------------
|
||||
# Use xzkern to compress the kernel image and xzmisc to compress other things.
|
|
@ -0,0 +1,96 @@
|
|||
# Architecture
|
||||
BR2_arm=y
|
||||
BR2_cortex_a5=y
|
||||
BR2_ARM_INSTRUCTIONS_THUMB2=y
|
||||
BR2_KERNEL_HEADERS_VERSION=y
|
||||
BR2_DEFAULT_KERNEL_VERSION="3.3"
|
||||
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_3=y
|
||||
|
||||
# Toolchain
|
||||
BR2_PER_PACKAGE_DIRECTORIES=y
|
||||
BR2_GCC_VERSION_7_X=y
|
||||
# BR2_TOOLCHAIN_USES_UCLIBC is not set
|
||||
# BR2_TOOLCHAIN_BUILDROOT_UCLIBC is not set
|
||||
# BR2_TOOLCHAIN_BUILDROOT_LIBC="uclibc"
|
||||
BR2_TOOLCHAIN_USES_MUSL=y
|
||||
BR2_TOOLCHAIN_BUILDROOT_MUSL=y
|
||||
BR2_TOOLCHAIN_BUILDROOT_LIBC="musl"
|
||||
BR2_TOOLCHAIN_BUILDROOT_CXX=y
|
||||
BR2_TOOLCHAIN_BUILDROOT_LOCALE=y
|
||||
BR2_TOOLCHAIN_BUILDROOT_USE_SSP=y
|
||||
|
||||
# Kernel
|
||||
BR2_LINUX_KERNEL=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.3"
|
||||
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_GRAINMEDIA_PATH)/board/gm8136/kernel/gm8136.generic.config"
|
||||
BR2_LINUX_KERNEL_UIMAGE=y
|
||||
BR2_LINUX_KERNEL_XZ=y
|
||||
BR2_LINUX_KERNEL_EXT_GRAINMEDIA_PATCHER=y
|
||||
BR2_LINUX_KERNEL_EXT_GRAINMEDIA_PATCHER_LIST="$(BR2_EXTERNAL_GRAINMEDIA_PATH)/board/gm8136/kernel/patches/ $(BR2_EXTERNAL_GRAINMEDIA_PATH)/board/gm8136/kernel/overlay"
|
||||
|
||||
# Filesystem
|
||||
# BR2_TARGET_TZ_INFO is not set
|
||||
BR2_TARGET_ROOTFS_CPIO=y
|
||||
BR2_TARGET_ROOTFS_SQUASHFS=y
|
||||
BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y
|
||||
BR2_ROOTFS_OVERLAY="$(TOPDIR)/../general/overlay"
|
||||
BR2_ROOTFS_POST_BUILD_SCRIPT="$(TOPDIR)/../scripts/executing_commands_for_$(BR2_TOOLCHAIN_BUILDROOT_LIBC).sh"
|
||||
|
||||
# OpenIPC configuration
|
||||
BR2_TOOLCHAIN_BUILDROOT_VENDOR="openipc"
|
||||
BR2_TARGET_GENERIC_ISSUE="Welcome to OpenIPC v2.2"
|
||||
BR2_TARGET_GENERIC_HOSTNAME="openipc-gm8136"
|
||||
BR2_GLOBAL_PATCH_DIR="$(TOPDIR)/../general/package/all-patches"
|
||||
|
||||
# OpenIPC packages
|
||||
BR2_PACKAGE_BUSYBOX_CONFIG="$(TOPDIR)/../general/package/busybox/busybox.config"
|
||||
BR2_PACKAGE_DROPBEAR=y
|
||||
# BR2_PACKAGE_FDK_AAC_OPENIPC is not set
|
||||
BR2_PACKAGE_FWPRINTENV_OPENIPC=y
|
||||
BR2_PACKAGE_HASERL=y
|
||||
BR2_PACKAGE_IPCTOOL=y
|
||||
BR2_PACKAGE_JSON_C=y
|
||||
BR2_PACKAGE_LAME_OPENIPC=y
|
||||
BR2_PACKAGE_LIBCURL_OPENIPC=y
|
||||
BR2_PACKAGE_LIBCURL_OPENIPC_CURL=y
|
||||
# BR2_PACKAGE_LIBCURL_OPENIPC_VERBOSE is not set
|
||||
# BR2_PACKAGE_LIBCURL_OPENIPC_PROXY_SUPPORT is not set
|
||||
# BR2_PACKAGE_LIBCURL_OPENIPC_COOKIES_SUPPORT is not set
|
||||
# BR2_PACKAGE_LIBCURL_OPENIPC_EXTRA_PROTOCOLS_FEATURES is not set
|
||||
BR2_PACKAGE_LIBCURL_OPENIPC_MBEDTLS=y
|
||||
BR2_PACKAGE_LIBEVENT_OPENIPC=y
|
||||
BR2_PACKAGE_LIBEVENT_OPENIPC_REMOVE_PYSCRIPT=y
|
||||
BR2_PACKAGE_LIBOGG_OPENIPC=y
|
||||
BR2_PACKAGE_LIBWEBSOCKETS_OPENIPC=y
|
||||
BR2_PACKAGE_LIBYAML=y
|
||||
# BR2_PACKAGE_MAJESTIC_FONTS=y
|
||||
# BR2_PACKAGE_MAJESTIC_GM8136=y
|
||||
BR2_PACKAGE_MBEDTLS_OPENIPC=y
|
||||
# BR2_PACKAGE_MBEDTLS_OPENIPC_PROGRAMS is not set
|
||||
# BR2_PACKAGE_MBEDTLS_OPENIPC_COMPRESSION is not set
|
||||
BR2_PACKAGE_MICROBE_WEB=y
|
||||
# BR2_PACKAGE_MINI_SNMPD is not set
|
||||
BR2_PACKAGE_MOTORS=y
|
||||
BR2_PACKAGE_OPUS_OPENIPC=y
|
||||
BR2_PACKAGE_OPUS_OPENIPC_FIXED_POINT=y
|
||||
# BR2_PACKAGE_SSHPASS is not set
|
||||
BR2_PACKAGE_UACME_OPENIPC=y
|
||||
BR2_PACKAGE_VTUND_OPENIPC=y
|
||||
# BR2_PACKAGE_GRAINMEDIA_OSDRV_GM8136=y
|
||||
BR2_PACKAGE_YAML_CLI=y
|
||||
|
||||
# WiFi
|
||||
BR2_PACKAGE_WIRELESS_TOOLS=y
|
||||
BR2_PACKAGE_WPA_SUPPLICANT=y
|
||||
BR2_PACKAGE_WPA_SUPPLICANT_CLI=y
|
||||
BR2_PACKAGE_WPA_SUPPLICANT_NL80211=y
|
||||
BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y
|
||||
BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC=y
|
||||
BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_MT7601U=y
|
||||
# BR2_PACKAGE_RTL8188EU is not set
|
||||
|
||||
# WIREGUARD
|
||||
# BR2_PACKAGE_WIREGUARD_LINUX_COMPAT is not set
|
||||
# BR2_PACKAGE_WIREGUARD_TOOLS is not set
|
|
@ -13,8 +13,8 @@ include $(BR2_EXTERNAL_GRAINMEDIA_PATH)/package/libogg-openipc/libogg-openipc.mk
|
|||
include $(BR2_EXTERNAL_GRAINMEDIA_PATH)/package/libsrt-openipc/libsrt-openipc.mk
|
||||
include $(BR2_EXTERNAL_GRAINMEDIA_PATH)/package/libwebsockets-openipc/libwebsockets-openipc.mk
|
||||
include $(BR2_EXTERNAL_GRAINMEDIA_PATH)/package/linux-firmware-openipc/linux-firmware-openipc.mk
|
||||
include $(BR2_EXTERNAL_GRAINMEDIA_PATH)/package/majestic-fonts/majestic-fonts.mk
|
||||
include $(BR2_EXTERNAL_GRAINMEDIA_PATH)/package/majestic/majestic.mk
|
||||
#include $(BR2_EXTERNAL_GRAINMEDIA_PATH)/package/majestic-fonts/majestic-fonts.mk
|
||||
#include $(BR2_EXTERNAL_GRAINMEDIA_PATH)/package/majestic/majestic.mk
|
||||
include $(BR2_EXTERNAL_GRAINMEDIA_PATH)/package/mbedtls-openipc/mbedtls-openipc.mk
|
||||
include $(BR2_EXTERNAL_GRAINMEDIA_PATH)/package/microbe-web/microbe-web.mk
|
||||
include $(BR2_EXTERNAL_GRAINMEDIA_PATH)/package/motors/motors.mk
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
../../general/package/grainmedia_patcher
|
11
building.sh
11
building.sh
|
@ -344,6 +344,12 @@ xm550() {
|
|||
|
||||
#################################################################################
|
||||
|
||||
gm8136() {
|
||||
soc="gm8136"
|
||||
fresh && make PLATFORM=grainmedia BOARD=unknown_unknown_${soc}_openipc all && rename
|
||||
}
|
||||
|
||||
#################################################################################
|
||||
|
||||
# Build firmware
|
||||
#
|
||||
|
@ -368,7 +374,7 @@ xm550() {
|
|||
# hi3516cv200 # testing..
|
||||
# hi3518ev200 # testing..
|
||||
# hi3518ev200_hs303v1 # OpenIPC
|
||||
hi3518ev200_hs303v2 # OpenIPC
|
||||
# hi3518ev200_hs303v2 # OpenIPC
|
||||
# hi3518ev200_hs303v3 # OpenIPC
|
||||
#
|
||||
# hi3516av100 # OpenIPC
|
||||
|
@ -429,7 +435,10 @@ hi3518ev200_hs303v2 # OpenIPC
|
|||
# xm530 # OK
|
||||
# xm550 # OK
|
||||
#
|
||||
#######
|
||||
#
|
||||
gm8136
|
||||
#
|
||||
#######
|
||||
# More examples see here: https://github.com/OpenIPC/firmware/wiki/source_code
|
||||
#
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
config BR2_PACKAGE_GRAINMEDIA_PATCHER
|
||||
bool
|
|
@ -0,0 +1,44 @@
|
|||
#!/bin/bash
|
||||
|
||||
function log() {
|
||||
echo "--- $@"
|
||||
}
|
||||
|
||||
function apply_patch() {
|
||||
DST=$1
|
||||
SRC=$2
|
||||
|
||||
if [[ -d $SRC ]]; then
|
||||
if [[ ${SRC:${#SRC}-1} != '/' ]]; then
|
||||
log Apply \"$SRC\" as overlay directory
|
||||
cp -r $SRC/* $DST/
|
||||
else
|
||||
log Apply \"$SRC\" as patches directory
|
||||
for P in $SRC/*.patch; do
|
||||
patch -d $DST -p1 < $P
|
||||
done
|
||||
fi
|
||||
else
|
||||
log Apply \"$SRC\" as single patch
|
||||
patch -d $DST -p1 < $SRC
|
||||
fi
|
||||
}
|
||||
|
||||
function apply_patches() {
|
||||
log Gonna apply "$@"
|
||||
while [[ $# -ge 1 ]]; do
|
||||
apply_patch $DST $1
|
||||
shift
|
||||
done
|
||||
}
|
||||
|
||||
DST=$1
|
||||
shift
|
||||
|
||||
if [ -f $DST/.grainmedia-patched ]; then
|
||||
log Patched already
|
||||
exit
|
||||
fi
|
||||
|
||||
apply_patches $@
|
||||
touch $DST/.grainmedia-patched
|
|
@ -0,0 +1,13 @@
|
|||
################################################################################
|
||||
#
|
||||
# grainmedia_patcher
|
||||
#
|
||||
################################################################################
|
||||
|
||||
GRAINMEDIA_PATCHER_VERSION = 0.1
|
||||
GRAINMEDIA_PATCHER_INSTALL_TARGET = NO
|
||||
GRAINMEDIA_PATCHER_INSTALL_STAGING = NO
|
||||
GRAINMEDIA_PATCHER_SITE =
|
||||
GRAINMEDIA_PATCHER_SOURCE =
|
||||
|
||||
$(eval $(generic-package))
|
Loading…
Reference in New Issue