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