Browse Source

add phytec wega sample

Waldemar Brodkorb 6 years ago
parent
commit
d5938587a9

+ 4 - 0
mk/rootfs.mk

@@ -31,6 +31,10 @@ ifeq ($(ADK_TARGET_SYSTEM_MIKROTIK_RB4XX),y)
 MTDDEV:=	root=/dev/mtdblock7
 endif
 
+ifeq ($(ADK_TARGET_SYSTEM_PHYTEC_WEGA),y)
+BLOCKDEV:=	root=/dev/mmcblk0p2
+endif
+
 ifeq ($(ADK_TARGET_SYSTEM_ACMESYSTEMS_FOXG20),y)
 BLOCKDEV:=	root=/dev/mmcblk0p2
 endif

+ 27 - 7
scripts/install.sh

@@ -1,6 +1,6 @@
 #!/usr/bin/env bash
 #-
-# Copyright © 2010-2016
+# Copyright © 2010-2017
 #	Waldemar Brodkorb <wbx@openadk.org>
 #	Thorsten Glaser <tg@mirbsd.org>
 #
@@ -144,7 +144,7 @@ tgt=$2
 src=$3
 
 case $target {
-(banana-pro|orange-pi0|pcengines-apu|raspberry-pi|raspberry-pi0|raspberry-pi2|raspberry-pi3|raspberry-pi3-64|solidrun-imx6|solidrun-clearfog|default) ;;
+(banana-pro|orange-pi0|pcengines-apu|phytec-wega|raspberry-pi|raspberry-pi0|raspberry-pi2|raspberry-pi3|raspberry-pi3-64|solidrun-imx6|solidrun-clearfog|default) ;;
 (*)
 	print -u2 "Unknown target '$target', exiting"
 	exit 1 ;;
@@ -167,7 +167,7 @@ case $ostype {
 	basedev=$tgt
 	rootpart=${basedev}s1
 	datapart=${basedev}s2
-	if [[ $target = raspberry-pi || $target = raspberry-pi0 || $target = raspberry-pi2 || $target = raspberry-pi3 || $target = raspberry-pi3-64 ]]; then
+	if [[ $target = raspberry-pi || $target = raspberry-pi0 || $target = raspberry-pi2 || $target = raspberry-pi3 || $target = raspberry-pi3-64 || $target = phytec-wega ]]; then
 		bootpart=${basedev}s1
 		rootpart=${basedev}s2
 		datapart=${basedev}s3
@@ -176,9 +176,11 @@ case $ostype {
 	function mount_fs {
 	}
 	function umount_fs {
+		(( quiet )) || print "Unmounting filesystem on ${1}..."
 		diskutil unmount "$1"
 	}
 	function create_fs {
+		(( quiet )) || print "Creating filesystem on ${2}..."
 		if [[ $3 = ext4 ]]; then
 			fstype=UFSD_EXTFS4
 		fi
@@ -208,9 +210,11 @@ case $ostype {
 
 	match=\'${basedev}${partitionsep}\''+([0-9])'
 	function mount_fs {
+		(( quiet )) || print "Mounting filesystem on ${1}..."
 		mount -t "$3" "$1" "$2"
 	}
 	function umount_fs {
+		(( quiet )) || print "Unmounting filesystem on ${1}..."
 		umount "$1"
 	}
 	function create_fs {
@@ -263,7 +267,7 @@ syspartno=0
 # data - flexible (parameter)
 # system - everything else
 
-if [[ $target = raspberry-pi || $target = raspberry-pi0 || $target = raspberry-pi2 || $target = raspberry-pi3 || $target = raspberry-pi3-64 ]]; then
+if [[ $target = raspberry-pi || $target = raspberry-pi0 || $target = raspberry-pi2 || $target = raspberry-pi3 || $target = raspberry-pi3-64 || $target = phytec-wega ]]; then
 	syspartno=1
 	bootfssz=100
 	if (( grub )); then
@@ -320,7 +324,7 @@ fi
 #(( partofs = ((coreendsec / secs) + 1) * secs ))
 # we just use 2048 all the time, since some loaders are longer
 partofs=2048
-if [[ $target = raspberry-pi || $target = raspberry-pi0 || $target = raspberry-pi2 || $target = raspberry-pi3 || $target = raspberry-pi3-64 ]]; then
+if [[ $target = raspberry-pi || $target = raspberry-pi0 || $target = raspberry-pi2 || $target = raspberry-pi3 || $target = raspberry-pi3-64 || $target = phytec-wega ]]; then
 	(( spartofs = partofs + (100 * 2048) ))
 else
 	spartofs=$partofs
@@ -431,7 +435,7 @@ if (( datafssz )); then
 	    dd of="$T/firsttrack" conv=notrunc bs=1 seek=$((0x1CE)) 2>/dev/null
 fi
 
-if [[ $target = raspberry-pi || $target = raspberry-pi0 || $target = raspberry-pi2 || $target = raspberry-pi3 || $target = raspberry-pi3-64 ]]; then
+if [[ $target = raspberry-pi || $target = raspberry-pi0 || $target = raspberry-pi2 || $target = raspberry-pi3 || $target = raspberry-pi3-64 || $target = phytec-wega ]]; then
 	# move system and data partition from #0/#1 to #1/#2
 	dd if="$T/firsttrack" bs=1 skip=$((0x1BE)) count=32 of="$T/x" 2>/dev/null
 	dd of="$T/firsttrack" conv=notrunc bs=1 seek=$((0x1CE)) if="$T/x" 2>/dev/null
@@ -527,6 +531,9 @@ case $target {
 (raspberry-pi|raspberry-pi0|raspberry-pi2|raspberry-pi3|raspberry-pi3-64)
 	(( noformat )) || create_fs "$bootpart" ADKBOOT vfat
 	;;
+(phytec-wega)
+	(( noformat )) || create_fs "$bootpart" ADKBOOT ext4
+	;;
 }
 
 (( noformat )) || create_fs "$rootpart" ADKROOT ext4
@@ -541,7 +548,7 @@ if (( datafssz )); then
 	((keep)) || create_fs "$datapart" ADKDATA ext4
 	((keep)) || tune_fs "$datapart"
 	case $target {
-	(raspberry-pi|raspberry-pi0|raspberry-pi2|raspberry-pi3|raspberry-pi3-64)
+	(raspberry-pi|raspberry-pi0|raspberry-pi2|raspberry-pi3|raspberry-pi3-64|phytec-wega)
 		echo "/dev/mmcblk0p3	/data	ext4	rw	0	0" >> "$R"/etc/fstab 
 	;;
 	(banana-pro|orange-pi0|solidrun-imx6|solidrun-clearfog)
@@ -550,6 +557,7 @@ if (( datafssz )); then
 	}
 fi
 
+(( quiet )) || print Finishing up with bootloader and kernel ...
 case $target {
 (raspberry-pi|raspberry-pi0|raspberry-pi2|raspberry-pi3|raspberry-pi3-64)
 	mount_fs "$bootpart" "$B" vfat
@@ -569,6 +577,18 @@ case $target {
 	done
 	umount_fs "$B"
 	;;
+(phytec-wega)
+	mount_fs "$bootpart" "$B" ext4
+	for x in "$R"/boot/*; do
+		[[ -e "$x" ]] && mv -f "$R"/boot/* "$B/"
+		break
+	done
+	for x in "$fwdir"/*.dtb; do
+		[[ -e "$x" ]] && cp "$fwdir"/*.dtb "$B/"
+		break
+	done
+	umount_fs "$B"
+	;;
 (solidrun-clearfog)
 	for x in "$fwdir"/*.dtb; do
 		[[ -e "$x" ]] && cp "$fwdir"/*.dtb "$R/boot/"

+ 16 - 0
target/arm/Makefile

@@ -72,6 +72,17 @@ else
 	@echo "sudo ./scripts/install.sh $(ADK_TARGET_SYSTEM) /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
 endif
 endif
+ifeq ($(ADK_TARGET_SYSTEM_PHYTEC_WEGA),y)
+	@echo "Use following command to install it on SD card:"
+	@echo "sudo ./scripts/install.sh phytec-wega /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
+	@echo "Use following command to install with a writable data partition"
+	@echo "sudo ./scripts/install.sh -d 256 phytec-wega /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
+	@echo
+	@echo "To boot from SD card do following in barebox bootloader:"
+	@echo "mount /dev/mmc0.0 /mnt"
+	@echo "bootm -o /mnt/am335x-wega-rdk.dtb /mnt/kernel"
+	@echo
+endif
 ifeq ($(ADK_TARGET_SYSTEM_BANANA_PRO),y)
 	@echo "Use following command to install it on SD card:"
 	@echo "sudo ./scripts/install.sh banana-pro /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
@@ -170,6 +181,11 @@ ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM_VERSATILEPB)$(ADK_TARGET_SYSTEM_QEMU_ARM_VERS
 	env $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" $(KERNEL_MAKE_OPTS) \
 		dtbs $(MAKE_TRACE)
 endif
+ifeq ($(ADK_TARGET_SYSTEM_PHYTEC_WEGA),y)
+	env $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" $(KERNEL_MAKE_OPTS) \
+		am335x-wega-rdk.dtb
+	cp $(LINUX_DIR)/arch/arm/boot/dts/am335x-wega-rdk.dtb ${TARGET_DIR}/boot
+endif
 ifeq ($(ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK),y)
 	env $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" $(KERNEL_MAKE_OPTS) \
 		am335x-boneblack.dtb

+ 6 - 0
target/arm/kernel/phytec-wega

@@ -0,0 +1,6 @@
+CONFIG_ARM=y
+CONFIG_ARCH_MULTI_V7=y
+CONFIG_SOC_AM33XX=y
+CONFIG_SOC_HAS_OMAP2_SDRC=y
+CONFIG_ARM_APPENDED_DTB=y
+CONFIG_ARM_ATAG_DTB_COMPAT=y

+ 21 - 0
target/arm/systems/phytec-wega

@@ -0,0 +1,21 @@
+config ADK_TARGET_SYSTEM_PHYTEC_WEGA
+	bool "Phytec Wega"
+	depends on ADK_TARGET_OS_LINUX
+	depends on ADK_TARGET_LITTLE_ENDIAN
+	select ADK_TARGET_CPU_ARM_CORTEX_A8
+	select ADK_TARGET_WITH_VGA
+	select ADK_TARGET_WITH_SERIAL
+	select ADK_TARGET_WITH_CPU_FREQ
+	select ADK_TARGET_WITH_USB
+	select ADK_TARGET_WITH_INPUT
+	select ADK_TARGET_WITH_SD
+	select ADK_TARGET_WITH_I2C
+	select ADK_TARGET_WITH_SPI
+	select ADK_TARGET_WITH_NET
+	select ADK_TARGET_WITH_NETDEVICE
+	select ADK_TARGET_WITH_BLOCK
+	select ADK_TARGET_KERNEL_ZIMAGE
+	select ADK_TARGET_KERNEL_WITH_COMPRESSION
+	help
+	  Phytec Wega
+

+ 2 - 0
target/config/Config.in.kernelcfg

@@ -5,6 +5,7 @@ choice
 prompt "Kernel configuration" if !ADK_TARGET_CHOOSE_ARCH
 depends on ADK_TARGET_OS_LINUX
 default ADK_TARGET_KERNEL_USE_DEFCONFIG if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK && ADK_TARGET_KERNEL_VERSION_GIT
+default ADK_TARGET_KERNEL_USE_DEFCONFIG if ADK_TARGET_SYSTEM_PHYTEC_WEGA && ADK_TARGET_KERNEL_VERSION_GIT
 default ADK_TARGET_KERNEL_USE_DEFCONFIG if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG && ADK_TARGET_KERNEL_VERSION_GIT
 
 config ADK_TARGET_KERNEL_USE_MINICONFIG
@@ -35,6 +36,7 @@ config ADK_TARGET_KERNEL_DEFCONFIG
 	default "10m50_defconfig" if ADK_TARGET_SYSTEM_QEMU_NIOS2
 	default "orca_defconfig" if ADK_TARGET_SYSTEM_ANDES_AG101P
 	default "bb.org_defconfig" if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
+	default "am335x_phytec_defconfig" if ADK_TARGET_SYSTEM_PHYTEC_WEGA
 	default "j2_defconfig" if ADK_TARGET_SYSTEM_NUMATO_MIMASV2
 	default "sunxi_defconfig" if ADK_TARGET_SYSTEM_ORANGE_PI0
 	default "edosk2674_defconfig" if ADK_TARGET_SYSTEM_HITACHI_EDOSK2674

+ 7 - 0
target/config/Config.in.kernelversion

@@ -9,6 +9,7 @@ default ADK_TARGET_KERNEL_VERSION_GIT if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
 default ADK_TARGET_KERNEL_VERSION_GIT if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
 default ADK_TARGET_KERNEL_VERSION_GIT if ADK_TARGET_SYSTEM_KINETIS_K70
 default ADK_TARGET_KERNEL_VERSION_GIT if ADK_TARGET_SYSTEM_ADSP_BF537
+default ADK_TARGET_KERNEL_VERSION_GIT if ADK_TARGET_SYSTEM_PHYTEC_WEGA
 default ADK_TARGET_KERNEL_VERSION_GIT if ADK_TARGET_ARCH_CSKY
 default ADK_TARGET_KERNEL_VERSION_GIT if ADK_TARGET_ARCH_LM32
 default ADK_TARGET_KERNEL_VERSION_GIT if ADK_TARGET_ARCH_RISCV32
@@ -25,6 +26,7 @@ config ADK_TARGET_KERNEL_VERSION_GIT
 	depends on !ADK_TARGET_ARCH_NDS32
 	select ADK_HOST_NEED_LZOP if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
 	select ADK_HOST_NEED_LZOP if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
+	select ADK_HOST_NEED_LZ4 if ADK_TARGET_SYSTEM_PHYTEC_WEGA && ADK_TARGET_KERNEL_VERSION_GIT
 	select ADK_TARGET_KERNEL_IMAGE if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
 	select ADK_TARGET_KERNEL_IMAGE if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
 
@@ -218,6 +220,7 @@ config ADK_TARGET_KERNEL_GIT_REPO
 	default "https://github.com/SolidRun/linux-fslc.git" if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
 	default "https://github.com/SolidRun/linux-armada38x.git" if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
 	default "https://github.com/beagleboard/linux.git" if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
+	default "https://git.phytec.de/git/linux-ti.git" if ADK_TARGET_SYSTEM_PHYTEC_WEGA
 	default "https://github.com/m-labs/linux-milkymist.git" if ADK_TARGET_ARCH_LM32
 	default "https://github.com/c-sky/linux-4.9.y.git" if ADK_TARGET_ARCH_CSKY
 	default "https://github.com/riscv/riscv-linux.git" if ADK_TARGET_ARCH_RISCV32 || ADK_TARGET_ARCH_RISCV64
@@ -235,6 +238,7 @@ config ADK_TARGET_KERNEL_GIT_REPO_NAME
 	default "ad" if ADK_TARGET_SYSTEM_ADSP_BF537
 	default "bb" if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
 	default "emcraft" if ADK_TARGET_SYSTEM_KINETIS_K70
+	default "phytec" if ADK_TARGET_SYSTEM_PHYTEC_WEGA
 	default "clearfog" if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
 	default "fslc" if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
 	default "linus"
@@ -251,6 +255,7 @@ config ADK_TARGET_KERNEL_GIT
 	default "902739f3353150ac9eb69ad995098f3079d862a3" if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
 	default "c85fbc86c61a8c8fd45ab1fe3d1bdd2df12f7962" if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
 	default "8624998967676862843aed1f8ee2141e98987f81" if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
+	default "v4.4.52-phy" if ADK_TARGET_SYSTEM_PHYTEC_WEGA
 
 config ADK_TARGET_KERNEL_GIT_VER
 	string "kernel version"
@@ -258,12 +263,14 @@ config ADK_TARGET_KERNEL_GIT_VER
 	default "4.9.13" if ADK_TARGET_ARCH_CSKY
 	default "4.9.37" if ADK_TARGET_BOARD_BCM28XX
 	default "4.4.37" if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
+	default "4.4.52" if ADK_TARGET_SYSTEM_PHYTEC_WEGA
 	default "2.6.33" if ADK_TARGET_SYSTEM_KINETIS_K70
 	default "3.14.79" if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
 
 config ADK_TARGET_KERNEL_GIT_TYPE
 	string
 	depends on ADK_TARGET_KERNEL_VERSION_GIT
+	default "branch" if ADK_TARGET_SYSTEM_PHYTEC_WEGA
 	default "hash"
 
 config ADK_TARGET_KERNEL_NO_MIRROR

+ 1 - 0
target/config/Config.in.runtime

@@ -368,6 +368,7 @@ config ADK_RUNTIME_CONSOLE_SERIAL_DEVICE
 	default "ttyPS0" if ADK_TARGET_SYSTEM_QEMU_ARM_XILINX_ZYNQ
 	default "ttysclp0" if ADK_TARGET_SYSTEM_QEMU_S390
 	default "ttyO2" if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
+	default "ttyO0" if ADK_TARGET_SYSTEM_PHYTEC_WEGA
 	default "ttyS4" if ADK_TARGET_SYSTEM_IMGTEC_CI20
 	default "ttyS0"
 

+ 4 - 2
target/linux/config/Config.in.serial

@@ -273,11 +273,13 @@ config ADK_KERNEL_SERIAL_OMAP
 	select ADK_KERNEL_SERIAL_8250
 	select ADK_KERNEL_SERIAL_8250_CONSOLE
 	select ADK_KERNEL_SERIAL_OMAP_CONSOLE
-	depends on ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
+	depends on ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK \
+		|| ADK_TARGET_SYSTEM_PHYTEC_WEGA
 	default y if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
+	default y if ADK_TARGET_SYSTEM_PHYTEC_WEGA
 	default n
 	help
-	  Serial driver for Beaglebone Black
+	  Serial driver for TI OMAP Boards.
 
 config ADK_KERNEL_SERIAL_UARTLITE
 	bool "uartlite serial driver"