Skip to content

Commit 891709b

Browse files
committed
target: add support for the HiSilicon Hi3798MV1xx
Huawei EC6108V9C (Hi3798MV100) TV boxSpecifications: SoC: HiSilicon Hi3798MV100 RAM: 1GB DDR3 Flash: 8GB eMMC Ethernet: 10/100 Mbps USB: 1x USB 2.0 Installation : HiTool.exe - burn eMMC - select "*-partition.xml" - burn
1 parent 4670b6f commit 891709b

67 files changed

Lines changed: 10519 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

target/linux/hisilicon/Makefile

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
include $(TOPDIR)/rules.mk
2+
3+
ARCH:=arm
4+
BOARD:=hisilicon
5+
BOARDNAME:=HiSilicon
6+
FEATURES:=ext4 usb rtc neon vfpv4
7+
CPU_TYPE:=cortex-a7
8+
SUBTARGETS:=hi3798mv100
9+
10+
KERNEL_PATCHVER:=6.12
11+
12+
define Target/Description
13+
Build firmware images for HiSilicon Hi3798MV100 (EC6108V9C) TV Box.
14+
endef
15+
16+
include $(INCLUDE_DIR)/target.mk
17+
18+
KERNELNAME:=zImage dtbs
19+
20+
21+
DEFAULT_PACKAGES += \
22+
fdt-utils uboot-envtools \
23+
kmod-gpio-button-hotplug \
24+
kmod-usb-storage kmod-fs-ext4 \
25+
kmod-usb2 kmod-usb3 \
26+
kmod-hisi-femac \
27+
kmod-nft-core kmod-nft-ipv4 kmod-nft-nat nftables \
28+
kmod-fs-f2fs f2fs-tools
29+
30+
$(eval $(call BuildTarget))
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/bin/sh
2+
. /lib/functions/ucidefault.sh
3+
4+
board_config_update
5+
6+
case "$(board_name)" in
7+
*ec6108v9c*)
8+
# 强制指定网口为 eth0,防止系统识别成 eth1 导致进不了后台
9+
ucidefault_set_interface_lan "eth0"
10+
;;
11+
esac
12+
13+
board_config_commit
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#!/bin/sh
2+
3+
. /lib/functions.sh
4+
5+
inittab_add_console() {
6+
local console
7+
8+
case $(board_name) in
9+
# 匹配你的设备树 compatible 定义的名字
10+
*ec6108v9c*)
11+
# 海思主线内核的标准串口设备名
12+
console="ttyAMA0"
13+
;;
14+
*)
15+
return
16+
;;
17+
esac
18+
19+
# 如果检测到的 TTY 不是我们定义的,就退出
20+
[ "$DEVNAME" != "$console" ] && return
21+
22+
# 检查 /etc/inittab 是否已经有了该串口的配置,防止重复写入
23+
grep -q "^#\{0,1\}${console}::askfirst" "/etc/inittab" && return
24+
25+
# 追加登录条目:askfirst 表示按 Enter 键才进入 shell,防止启动杂讯乱弹
26+
echo -e "\n${console}::askfirst:/usr/libexec/login.sh" >> /etc/inittab
27+
28+
# 立即重载 init 进程,使配置生效
29+
kill -HUP 1
30+
}
31+
32+
[ "${ACTION}" = "add" ] && inittab_add_console
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/bin/sh /etc/rc.common
2+
3+
# 启动优先级设为 99,即在所有服务之后运行
4+
START=99
5+
6+
boot() {
7+
# 海思盒子暂时不需要重置计数器
8+
return 0
9+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/bin/sh
2+
3+
if [ -b /dev/mmcblk0p13 ]; then
4+
mkfs.f2fs -f /dev/mmcblk0p13
5+
fi
6+
7+
exit 0
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
REQUIRE_IMAGE_METADATA=1
2+
3+
platform_do_upgrade() {
4+
local board=$(board_name)
5+
6+
case "$board" in
7+
huawei,ec6108v9c)
8+
echo "Upgrading kernel partition..."
9+
get_image "$1" | dd bs=1M count=16 of=/dev/mmcblk0p3 || {
10+
echo "Kernel upgrade failed!"
11+
return 1
12+
}
13+
14+
echo "Upgrading rootfs partition..."
15+
get_image "$1" | dd bs=1M skip=16 of=/dev/mmcblk0p4 || {
16+
echo "Rootfs upgrade failed!"
17+
return 1
18+
}
19+
20+
sync
21+
echo "Upgrade completed successfully!"
22+
;;
23+
*)
24+
default_do_upgrade "$1"
25+
;;
26+
esac
27+
}
28+
```
29+
30+
### 工作原理
31+
```
32+
sysupgrade.bin 结构:
33+
┌────────────────┬──────────────┬──────────┐
34+
│ kernel (16MB) │ rootfs │ metadata │
35+
└────────────────┴──────────────┴──────────┘
36+
37+
写入到 /dev/mmcblk0p3 时:
38+
┌───────── 从这里开始写入
39+
40+
┌──────────┬──────────┬────────────┬──────────────┐
41+
│ fastboot │ bootargs │ kernel │ rootfs │
42+
│ 1MB │ 1MB │ 16MB │ 512MB │
43+
│ 0-1MB │ 1-2MB │ 2MB-18MB │ 18MB-530MB │
44+
└──────────┴──────────┴────────────┴──────────────┘
45+
│←── 16MB ──→│←─ rootfs ──→│
46+
写入覆盖这两个分区

target/linux/hisilicon/config-6.12

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
CONFIG_ALIGNMENT_TRAP=y
2+
CONFIG_ARCH_32BIT_OFF_T=y
3+
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
4+
CONFIG_ARCH_KEEP_MEMBLOCK=y
5+
CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
6+
CONFIG_ARCH_MULTI_CPU_AUTO=y
7+
# CONFIG_ARCH_MULTI_V4 is not set
8+
# CONFIG_ARCH_MULTI_V4T is not set
9+
CONFIG_ARCH_MULTI_V4_V5=y
10+
CONFIG_ARCH_MULTI_V5=y
11+
CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y
12+
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
13+
CONFIG_ARCH_SPARSEMEM_ENABLE=y
14+
CONFIG_ARCH_STACKWALK=y
15+
CONFIG_ARCH_SUSPEND_POSSIBLE=y
16+
CONFIG_ARM=y
17+
CONFIG_ARM_HAS_GROUP_RELOCS=y
18+
CONFIG_ARM_L1_CACHE_SHIFT=5
19+
CONFIG_ARM_THUMB=y
20+
CONFIG_ARM_UNWIND=y
21+
CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK=y
22+
CONFIG_BUFFER_HEAD=y
23+
CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
24+
CONFIG_CLONE_BACKWARDS=y
25+
CONFIG_COMMON_CLK=y
26+
CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1
27+
CONFIG_COMPAT_32BIT_TIME=y
28+
CONFIG_CPU_32v5=y
29+
CONFIG_CPU_ABRT_EV5TJ=y
30+
CONFIG_CPU_ARM926T=y
31+
CONFIG_CPU_BIG_ENDIAN=y
32+
# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
33+
CONFIG_CPU_CACHE_VIVT=y
34+
CONFIG_CPU_COPY_V4WB=y
35+
CONFIG_CPU_CP15=y
36+
CONFIG_CPU_CP15_MMU=y
37+
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
38+
CONFIG_CPU_ENDIAN_BE32=y
39+
CONFIG_CPU_MITIGATIONS=y
40+
CONFIG_CPU_PABRT_LEGACY=y
41+
CONFIG_CPU_THUMB_CAPABLE=y
42+
CONFIG_CPU_TLB_V4WBI=y
43+
CONFIG_CPU_USE_DOMAINS=y
44+
CONFIG_CRYPTO_CRC32=y
45+
CONFIG_CRYPTO_ECB=y
46+
CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
47+
CONFIG_CRYPTO_LIB_GF128MUL=y
48+
CONFIG_CRYPTO_LIB_SHA1=y
49+
CONFIG_CRYPTO_LIB_UTILS=y
50+
CONFIG_DEBUG_INFO=y
51+
CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
52+
CONFIG_DMA_NEED_SYNC=y
53+
CONFIG_DMA_OPS_HELPERS=y
54+
CONFIG_DTC=y
55+
CONFIG_EDAC_ATOMIC_SCRUB=y
56+
CONFIG_EDAC_SUPPORT=y
57+
CONFIG_EXCLUSIVE_SYSTEM_RAM=y
58+
CONFIG_F2FS_FS=y
59+
CONFIG_F2FS_FS_POSIX_ACL=y
60+
CONFIG_FIX_EARLYCON_MEM=y
61+
CONFIG_FORCE_NR_CPUS=y
62+
CONFIG_FS_IOMAP=y
63+
CONFIG_FS_POSIX_ACL=y
64+
CONFIG_FUNCTION_ALIGNMENT=0
65+
CONFIG_FW_LOADER_PAGED_BUF=y
66+
CONFIG_FW_LOADER_SYSFS=y
67+
CONFIG_GENERIC_ALLOCATOR=y
68+
CONFIG_GENERIC_ATOMIC64=y
69+
CONFIG_GENERIC_BUG=y
70+
CONFIG_GENERIC_CLOCKEVENTS=y
71+
CONFIG_GENERIC_CPU_AUTOPROBE=y
72+
CONFIG_GENERIC_CPU_DEVICES=y
73+
CONFIG_GENERIC_EARLY_IOREMAP=y
74+
CONFIG_GENERIC_IDLE_POLL_SETUP=y
75+
CONFIG_GENERIC_IRQ_MULTI_HANDLER=y
76+
CONFIG_GENERIC_IRQ_SHOW=y
77+
CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
78+
CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y
79+
CONFIG_GENERIC_PCI_IOMAP=y
80+
CONFIG_GENERIC_SCHED_CLOCK=y
81+
CONFIG_GENERIC_SMP_IDLE_THREAD=y
82+
CONFIG_GENERIC_STRNCPY_FROM_USER=y
83+
CONFIG_GENERIC_STRNLEN_USER=y
84+
CONFIG_GPIO_CDEV=y
85+
CONFIG_HARDIRQS_SW_RESEND=y
86+
CONFIG_HAS_DMA=y
87+
CONFIG_HAS_IOMEM=y
88+
CONFIG_HAS_IOPORT=y
89+
CONFIG_HAS_IOPORT_MAP=y
90+
CONFIG_HZ_FIXED=0
91+
CONFIG_HZ_PERIODIC=y
92+
CONFIG_INITRAMFS_SOURCE=""
93+
CONFIG_IRQCHIP=y
94+
CONFIG_IRQSTACKS=y
95+
CONFIG_IRQ_DOMAIN=y
96+
CONFIG_IRQ_FORCED_THREADING=y
97+
CONFIG_IRQ_WORK=y
98+
CONFIG_LIBFDT=y
99+
CONFIG_LOCK_DEBUGGING_SUPPORT=y
100+
CONFIG_MIGRATION=y
101+
CONFIG_MMU_LAZY_TLB_REFCOUNT=y
102+
CONFIG_MODULES_USE_ELF_REL=y
103+
CONFIG_NEED_DMA_MAP_STATE=y
104+
CONFIG_NEED_KUSER_HELPERS=y
105+
CONFIG_NEED_PER_CPU_KM=y
106+
CONFIG_NET_EGRESS=y
107+
CONFIG_NET_INGRESS=y
108+
CONFIG_NET_XGRESS=y
109+
CONFIG_NLS=y
110+
CONFIG_OF=y
111+
CONFIG_OF_ADDRESS=y
112+
CONFIG_OF_EARLY_FLATTREE=y
113+
CONFIG_OF_FLATTREE=y
114+
CONFIG_OF_GPIO=y
115+
CONFIG_OF_IRQ=y
116+
CONFIG_OF_KOBJ=y
117+
CONFIG_OLD_SIGACTION=y
118+
CONFIG_OLD_SIGSUSPEND3=y
119+
CONFIG_PAGE_OFFSET=0xC0000000
120+
CONFIG_PAGE_POOL=y
121+
CONFIG_PAGE_SIZE_LESS_THAN_256KB=y
122+
CONFIG_PAGE_SIZE_LESS_THAN_64KB=y
123+
CONFIG_PERF_USE_VMALLOC=y
124+
CONFIG_PGTABLE_LEVELS=2
125+
CONFIG_PHYS_OFFSET=0
126+
CONFIG_PTP_1588_CLOCK_OPTIONAL=y
127+
CONFIG_RANDSTRUCT_NONE=y
128+
CONFIG_RATIONAL=y
129+
CONFIG_SERIAL_8250_FSL=y
130+
CONFIG_SERIAL_MCTRL_GPIO=y
131+
CONFIG_SOFTIRQ_ON_OWN_STACK=y
132+
CONFIG_SPARSE_IRQ=y
133+
CONFIG_SQUASHFS_ZLIB=y
134+
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
135+
CONFIG_THREAD_INFO_IN_TASK=y
136+
CONFIG_TICK_CPU_ACCOUNTING=y
137+
CONFIG_TIMER_OF=y
138+
CONFIG_TIMER_PROBE=y
139+
CONFIG_TINY_SRCU=y
140+
CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
141+
CONFIG_UNWINDER_ARM=y
142+
CONFIG_USE_OF=y
143+
# CONFIG_VFP is not set
144+
CONFIG_ZBOOT_ROM_BSS=0x0
145+
CONFIG_ZBOOT_ROM_TEXT=0x0
146+
CONFIG_ZLIB_INFLATE=y

0 commit comments

Comments
 (0)