Prechádzať zdrojové kódy

add devicetree support for raspberry pi and kernel 3.18

Waldemar Brodkorb 10 rokov pred
rodič
commit
f4d07b4d15

+ 11 - 0
package/bcm2835-bootloader/Makefile

@@ -47,5 +47,16 @@ ifeq ($(ADK_PACKAGE_BCM2835_BOOTLOADER_CUTDOWN),y)
 endif
 	printf "gpu_mem=$(ADK_TARGET_GPU_MEM)\n" >> \
 		$(IDIR_BCM2835_BOOTLOADER)/boot/config.txt
+ifeq ($(ADK_KERNEL_BCM2708_DT),y)
+	printf "device_tree=bcm2708-rpi-b.dtb\n" >> \
+		$(IDIR_BCM2835_BOOTLOADER)/boot/config.txt
+	printf "device_tree_address=0x100\n" >> \
+		$(IDIR_BCM2835_BOOTLOADER)/boot/config.txt
+	printf "kernel_address=0x8000\n" >> \
+		$(IDIR_BCM2835_BOOTLOADER)/boot/config.txt
+	printf "disable_commandline_tags=2\n" >> \
+		$(IDIR_BCM2835_BOOTLOADER)/boot/config.txt
+endif
+
 
 include $(ADK_TOPDIR)/mk/pkg-bottom.mk

+ 6 - 1
scripts/install.sh

@@ -496,9 +496,10 @@ else
 fi
 dd if="$T/firsttrack" of="$tgt" > /dev/null 2>&1
 
+fwdir=$(dirname "$src")
+
 case $target {
 (solidrun-imx6)
-	fwdir=$(dirname "$src")
 	dd if="$fwdir/SPL" of="$tgt" bs=1024 seek=1 > /dev/null 2>&1
 	dd if="$fwdir/u-boot.img" of="$tgt" bs=1024 seek=42 > /dev/null 2>&1
 	;;
@@ -542,6 +543,10 @@ case $target {
 		[[ -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-imx6)

+ 6 - 4
target/arm/Makefile

@@ -100,6 +100,12 @@ kernel-install: kernel-strip
 	@cp $(BUILD_DIR)/$(TARGET_KERNEL) $(FW_DIR)/$(TARGET_KERNEL)
 
 dtb-install:
+ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI),y)
+	env $(KERNEL_MAKE_ENV) $(MAKE) -C $(LINUX_DIR) $(KERNEL_MAKE_OPTS) \
+		dtbs
+	$(CP) $(LINUX_DIR)/arch/arm/boot/dts/*.dtb \
+		$(FW_DIR)
+endif
 ifeq ($(ADK_TARGET_SYSTEM_SOLIDRUN_IMX6),y)
 	env $(KERNEL_MAKE_ENV) $(MAKE) -C $(LINUX_DIR) $(KERNEL_MAKE_OPTS) \
 		imx6q-cubox-i.dtb imx6dl-cubox-i.dtb imx6dl-hummingboard.dtb imx6q-hummingboard.dtb $(MAKE_TRACE)
@@ -109,11 +115,7 @@ endif
 
 # filesystem specific targets
 ifeq ($(ADK_TARGET_FS),archive)
-ifeq ($(ADK_TARGET_SYSTEM_SOLIDRUN_IMX6),y)
 imageinstall: dtb-install $(FW_DIR)/$(ROOTFSTARBALL) targethelp
-else
-imageinstall: $(FW_DIR)/$(ROOTFSTARBALL) targethelp
-endif
 endif
 ifeq ($(ADK_TARGET_FS),initramfs)
 imageinstall: kernel-install $(FW_DIR)/$(INITRAMFS) targethelp

+ 6 - 0
target/linux/config/Config.in.kernel

@@ -203,6 +203,12 @@ config ADK_KERNEL_PREEMPT
 	bool "Enable preemptive kernel"
 	default n
 
+config ADK_KERNEL_BCM2708_DT
+	bool "Enable Devicetree support"
+	depends on ADK_TARGET_SYSTEM_RASPBERRY_PI
+	depends on ADK_KERNEL_VERSION_3_18
+	default n
+
 config ADK_KERNEL_CC_OPTIMIZE_FOR_SIZE
 	bool "Optimize for size"
 	# does not boot in qemu