From cb40f149f3a4c8870f518d436800652558255db5 Mon Sep 17 00:00:00 2001
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Fri, 10 Jul 2015 18:19:18 +0200
Subject: [PATCH] Add support for brcm2708-bcm2708 and -bcm2709 targets

Original patch by @MPW1412
---
 modules                                       |  2 +-
 ...08-respect-CONFIG_TARGET_IMAGES_GZIP.patch | 21 +++++++++++++++++++
 targets/brcm2708-bcm2708/config               |  2 ++
 targets/brcm2708-bcm2708/profiles.mk          |  4 ++++
 targets/brcm2708-bcm2708/vermagic             |  1 +
 targets/brcm2708-bcm2709/config               |  2 ++
 targets/brcm2708-bcm2709/profiles.mk          |  4 ++++
 targets/brcm2708-bcm2709/vermagic             |  1 +
 targets/targets.mk                            |  4 +++-
 9 files changed, 39 insertions(+), 2 deletions(-)
 create mode 100644 patches/openwrt/0017-brcm2708-respect-CONFIG_TARGET_IMAGES_GZIP.patch
 create mode 100644 targets/brcm2708-bcm2708/config
 create mode 100644 targets/brcm2708-bcm2708/profiles.mk
 create mode 100644 targets/brcm2708-bcm2708/vermagic
 create mode 100644 targets/brcm2708-bcm2709/config
 create mode 100644 targets/brcm2708-bcm2709/profiles.mk
 create mode 100644 targets/brcm2708-bcm2709/vermagic

diff --git a/modules b/modules
index 2d7cb2ae7..d5c33a86e 100644
--- a/modules
+++ b/modules
@@ -8,7 +8,7 @@ PACKAGES_OPENWRT_COMMIT=fa7ed79149b371294f12905210bb032610a11621
 PACKAGES_OPENWRT_BRANCH=for-15.05
 
 PACKAGES_GLUON_REPO=git://github.com/freifunk-gluon/packages.git
-PACKAGES_GLUON_COMMIT=b06388df9aceb28082e02ad525a1e5ad7b2e1c4f
+PACKAGES_GLUON_COMMIT=9d5b304e95e00ce34811ad4a1ef17c3f4791bad3
 
 PACKAGES_ROUTING_REPO=git://github.com/openwrt-routing/packages.git
 PACKAGES_ROUTING_COMMIT=6172dcef329e1b306149cded3340da8f28501266
diff --git a/patches/openwrt/0017-brcm2708-respect-CONFIG_TARGET_IMAGES_GZIP.patch b/patches/openwrt/0017-brcm2708-respect-CONFIG_TARGET_IMAGES_GZIP.patch
new file mode 100644
index 000000000..2b083cb91
--- /dev/null
+++ b/patches/openwrt/0017-brcm2708-respect-CONFIG_TARGET_IMAGES_GZIP.patch
@@ -0,0 +1,21 @@
+From: Matthias Schiffer <mschiffer@universe-factory.net>
+Date: Fri, 10 Jul 2015 18:41:11 +0200
+Subject: brcm2708: respect CONFIG_TARGET_IMAGES_GZIP
+
+As the brcm2708 images use ext4, they will be huge when uncompressed.
+
+diff --git a/target/linux/brcm2708/image/Makefile b/target/linux/brcm2708/image/Makefile
+index e70bdd0..be667f3 100644
+--- a/target/linux/brcm2708/image/Makefile
++++ b/target/linux/brcm2708/image/Makefile
+@@ -28,6 +28,10 @@ define Image/Build/RaspberryPi
+ 	mcopy -i $(KDIR)/boot.img $(KDIR)/Image ::kernel.img  # Copy OpenWrt built kernel
+ 	./gen_rpi_sdcard_img.sh $(BIN_DIR)/$(IMG_PREFIX)-sdcard-vfat-$(1).img $(KDIR)/boot.img $(KDIR)/root.$(1) \
+ 		$(CONFIG_BRCM2708_SD_BOOT_PARTSIZE) $(CONFIG_TARGET_ROOTFS_PARTSIZE)
++
++  ifneq ($(CONFIG_TARGET_IMAGES_GZIP),)
++	gzip -f9 $(BIN_DIR)/$(IMG_PREFIX)-sdcard-vfat-$(1).img
++  endif
+ endef
+ 
+ define Image/Build
diff --git a/targets/brcm2708-bcm2708/config b/targets/brcm2708-bcm2708/config
new file mode 100644
index 000000000..5187248e4
--- /dev/null
+++ b/targets/brcm2708-bcm2708/config
@@ -0,0 +1,2 @@
+CONFIG_TARGET_brcm2708=y
+CONFIG_TARGET_brcm2708_bcm2708=y
diff --git a/targets/brcm2708-bcm2708/profiles.mk b/targets/brcm2708-bcm2708/profiles.mk
new file mode 100644
index 000000000..7aa5efaa8
--- /dev/null
+++ b/targets/brcm2708-bcm2708/profiles.mk
@@ -0,0 +1,4 @@
+$(eval $(call GluonProfile,RaspberryPi,brcm2708-gpu-fw kmod-usb-hid kmod-sound-core kmod-sound-arm-bcm2835))
+$(eval $(call GluonProfileFactorySuffix,RaspberryPi,-vfat-ext4,.img.gz))
+$(eval $(call GluonProfileSysupgradeSuffix,RaspberryPi))
+$(eval $(call GluonModel,RaspberryPi,sdcard,raspberry-pi))
diff --git a/targets/brcm2708-bcm2708/vermagic b/targets/brcm2708-bcm2708/vermagic
new file mode 100644
index 000000000..83031c6d3
--- /dev/null
+++ b/targets/brcm2708-bcm2708/vermagic
@@ -0,0 +1 @@
+acfd4d19ee84c79b9ab4c392f3e94cee
diff --git a/targets/brcm2708-bcm2709/config b/targets/brcm2708-bcm2709/config
new file mode 100644
index 000000000..681d35860
--- /dev/null
+++ b/targets/brcm2708-bcm2709/config
@@ -0,0 +1,2 @@
+CONFIG_TARGET_brcm2708=y
+CONFIG_TARGET_brcm2708_bcm2709=y
diff --git a/targets/brcm2708-bcm2709/profiles.mk b/targets/brcm2708-bcm2709/profiles.mk
new file mode 100644
index 000000000..5c06814cc
--- /dev/null
+++ b/targets/brcm2708-bcm2709/profiles.mk
@@ -0,0 +1,4 @@
+$(eval $(call GluonProfile,RaspberryPi2,brcm2708-gpu-fw kmod-usb-hid kmod-sound-core kmod-sound-arm-bcm2835))
+$(eval $(call GluonProfileFactorySuffix,RaspberryPi2,-vfat-ext4,.img.gz))
+$(eval $(call GluonProfileSysupgradeSuffix,RaspberryPi2))
+$(eval $(call GluonModel,RaspberryPi2,sdcard,raspberry-pi-2))
diff --git a/targets/brcm2708-bcm2709/vermagic b/targets/brcm2708-bcm2709/vermagic
new file mode 100644
index 000000000..8344ad20f
--- /dev/null
+++ b/targets/brcm2708-bcm2709/vermagic
@@ -0,0 +1 @@
+3912f3ddca091e4dc503a2d535a0fae5
diff --git a/targets/targets.mk b/targets/targets.mk
index 48b166d47..afe52c0b8 100644
--- a/targets/targets.mk
+++ b/targets/targets.mk
@@ -6,5 +6,7 @@ $(eval $(call GluonTarget,x86,kvm_guest))
 $(eval $(call GluonTarget,x86,64))
 
 ifneq ($(BROKEN),)
-$(eval $(call GluonTarget,ramips,rt305x))
+$(eval $(call GluonTarget,ramips,rt305x)) # BROKEN: No AP+IBSS support
+$(eval $(call GluonTarget,brcm2708,bcm2708)) # BROKEN: Untested, no sysupgrade support
+$(eval $(call GluonTarget,brcm2708,bcm2709)) # BROKEN: Untested, no sysupgrade support
 endif
-- 
GitLab