Pārlūkot izejas kodu

add debugtool, try to fix device-tree support and rpi-proto driver

Waldemar Brodkorb 10 gadi atpakaļ
vecāks
revīzija
d52b56753f

+ 20 - 2
package/bcm2835-bootloader/Makefile

@@ -5,21 +5,27 @@ include $(ADK_TOPDIR)/rules.mk
 
 PKG_NAME:=		bcm2835-bootloader
 PKG_VERSION:=		9b068fe44503f564579a25fd849df4ec784f9d4d
-PKG_RELEASE:=		2
+PKG_RELEASE:=		3
 PKG_DESCR:=		bootloader for raspberry pi
 PKG_SECTION:=		base/boot
 PKG_URL:=		https://github.com/raspberrypi/firmware
 PKG_SITES:=		https://github.com/raspberrypi/firmware.git
 
 PKG_SYSTEM_DEPENDS:=	raspberry-pi
+
 PKG_CHOICES_BCM2835_BOOTLOADER:=	DEFAULT EXTRA CUTDOWN
 PKGCD_DEFAULT:=		default bootloader
 PKGCD_EXTRA:=		bootloader with extra features and codecs
 PKGCD_CUTDOWN:=		cut down bootloader
 
+PKG_SUBPKGS:=		BCM2835_BOOTLOADER BCM2835_DEBUGTOOL
+PKGSD_BCM2835_DEBUGTOOL:=	debugtool
+PKGSC_BCM2835_DEBUGTOOL:=	sys/hw
+
 include $(ADK_TOPDIR)/mk/package.mk
 
 $(eval $(call PKG_template,BCM2835_BOOTLOADER,bcm2835-bootloader,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+$(eval $(call PKG_template,BCM2835_DEBUGTOOL,bcm2835-debugtool,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKGSC_BCM2835_DEBUGTOOL)))
 
 CONFIG_STYLE:=          manual
 BUILD_STYLE:=           manual
@@ -56,9 +62,21 @@ ifeq ($(ADK_KERNEL_BCM2708_DT),y)
 	printf "disable_commandline_tags=2\n" >> \
 		$(IDIR_BCM2835_BOOTLOADER)/boot/config.txt
 ifneq ($(ADK_KERNEL_SND_BCM2708_SOC_RPI_PROTO),)
-	printf "device_tree_overlay=rpi-proto\n" >> \
+	printf "dtparam=i2c=on,i2s=on,spi=on\n" >> \
+		$(IDIR_BCM2835_BOOTLOADER)/boot/config.txt
+	printf "dtoverlay=rpi-proto\n" >> \
+		$(IDIR_BCM2835_BOOTLOADER)/boot/config.txt
+	printf "dtdebug=on\n" >> \
+		$(IDIR_BCM2835_BOOTLOADER)/boot/config.txt
+endif
+else
+	printf "device_tree=\n" >> \
 		$(IDIR_BCM2835_BOOTLOADER)/boot/config.txt
 endif
+ifeq ($(ADK_PACKAGE_BCM2835_DEBUGTOOL),y)
+	$(INSTALL_DIR) $(IDIR_BCM2835_DEBUGTOOL)/opt/vc/bin
+	$(INSTALL_BIN) $(WRKBUILD)/hardfp/opt/vc/bin/vcdbg \
+		$(IDIR_BCM2835_DEBUGTOOL)/opt/vc/bin
 endif
 
 include $(ADK_TOPDIR)/mk/pkg-bottom.mk

+ 0 - 12
package/bcm2835-vc/patches/patch-interface_vcos_pthreads_vcos_platform_h

@@ -1,12 +0,0 @@
---- bcm2835-vc-0.3.orig/interface/vcos/pthreads/vcos_platform.h	2013-09-27 14:22:08.000000000 +0200
-+++ bcm2835-vc-0.3/interface/vcos/pthreads/vcos_platform.h	2013-10-13 20:20:55.000000000 +0200
-@@ -120,9 +120,6 @@ typedef struct
- 
- #define VCOS_ONCE_INIT        PTHREAD_ONCE_INIT
- 
--#if defined(__arm__) && !defined(_HAVE_TIMER_T) && !defined(ANDROID)
--typedef __timer_t timer_t;
--#endif
- typedef struct VCOS_TIMER_T
- {
-    pthread_t thread;                      /**< id of the timer thread */

+ 0 - 11
package/bcm2835-vc/patches/patch-interface_vcos_pthreads_vcos_pthreads_c

@@ -1,11 +0,0 @@
---- bcm2835-vc-0.3.orig/interface/vcos/pthreads/vcos_pthreads.c	2013-09-27 14:22:08.000000000 +0200
-+++ bcm2835-vc-0.3/interface/vcos/pthreads/vcos_pthreads.c	2013-10-14 19:44:50.000000000 +0200
-@@ -580,7 +580,7 @@ const char ** vcos_get_argv(void)
-  */
- uint32_t _vcos_get_ticks_per_second(void)
- {
--   return HZ;
-+   return 100;
- }
- 
- VCOS_STATUS_T vcos_once(VCOS_ONCE_T *once_control,

+ 0 - 22
package/bcm2835-vc/patches/patch-interface_vmcs_host_linux_vcfilesys_c

@@ -1,22 +0,0 @@
---- bcm2835-vc-0.3.orig/interface/vmcs_host/linux/vcfilesys.c	2013-09-27 14:22:08.000000000 +0200
-+++ bcm2835-vc-0.3/interface/vmcs_host/linux/vcfilesys.c	2013-10-14 20:10:02.000000000 +0200
-@@ -49,10 +49,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI
- #include <ctype.h>
- #include <limits.h>
- 
--#if !defined(ANDROID) && !defined( __USE_FILE_OFFSET64 )
--#error   "__USE_FILE_OFFSET64 isn't defined"
--#endif
--
- #include "interface/vcos/vcos.h"
- 
- /* Some hackery to prevent a clash with the Linux type of the same name */
-@@ -916,7 +912,7 @@ int vc_hostfs_set_attr(const char *path,
- 
-    if (pathbuf)
-    {
--      __mode_t mode = 0;
-+      mode_t mode = 0;
-       struct stat sb;
- 
-       backslash_to_slash(pathbuf);

+ 1 - 1
target/Makefile

@@ -127,4 +127,4 @@ clean: $(ADK_TARGET_ARCH)-clean $(ADK_TARGET_ARCH)-imageclean
 %-imageinstall: %-imageprepare
 	$(TRACE) target/$(patsubst %-imageinstall,%,$@)-imageinstall
 	$(MAKE) -C $(patsubst %-imageinstall,%,$@) imageinstall
-	@echo 'Login as user root with password $(ADK_RUNTIME_PASSWORD) via ssh or console.'
+	@echo 'Login as user root with password "$(ADK_RUNTIME_PASSWORD)" via ssh or console.'

+ 38 - 11
target/arm/raspberry-pi/patches/3.18.5/0001-add-support-for-rpi-proto-hardware.patch

@@ -1,4 +1,4 @@
-From 7174c08bd5f4e4976259c7a0894d302acc67321e Mon Sep 17 00:00:00 2001
+From ddce02de6ff1d13503f66bb08b971ff532b89b43 Mon Sep 17 00:00:00 2001
 From: Waldemar Brodkorb <wbrodkorb@conet.de>
 Date: Mon, 2 Feb 2015 11:08:33 +0100
 Subject: [PATCH] add support for rpi-proto hardware
@@ -10,12 +10,12 @@ kernel. Patch works fine for our embedded system.
 Signed-off-by: Waldemar Brodkorb <wbrodkorb@conet.de>
 ---
  arch/arm/boot/dts/Makefile              |   1 +
- arch/arm/boot/dts/rpi-proto-overlay.dts |  34 +++++++++
+ arch/arm/boot/dts/rpi-proto-overlay.dts |  39 ++++++++
  arch/arm/mach-bcm2708/bcm2708.c         |  20 +++++
  sound/soc/bcm/Kconfig                   |   8 ++
  sound/soc/bcm/Makefile                  |   2 +
- sound/soc/bcm/rpi-proto.c               | 130 ++++++++++++++++++++++++++++++++
- 6 files changed, 195 insertions(+)
+ sound/soc/bcm/rpi-proto.c               | 152 ++++++++++++++++++++++++++++++++
+ 6 files changed, 222 insertions(+)
  create mode 100644 arch/arm/boot/dts/rpi-proto-overlay.dts
  create mode 100644 sound/soc/bcm/rpi-proto.c
 
@@ -33,10 +33,10 @@ index 1b66478..7171eb6 100644
  dtb-$(CONFIG_BCM2708_DT) += pps-gpio-overlay.dtb
 diff --git a/arch/arm/boot/dts/rpi-proto-overlay.dts b/arch/arm/boot/dts/rpi-proto-overlay.dts
 new file mode 100644
-index 0000000..984545b
+index 0000000..2029930
 --- /dev/null
 +++ b/arch/arm/boot/dts/rpi-proto-overlay.dts
-@@ -0,0 +1,34 @@
+@@ -0,0 +1,39 @@
 +// Definitions for Rpi-Proto
 +/dts-v1/;
 +/plugin/;
@@ -47,7 +47,7 @@ index 0000000..984545b
 +	fragment@0 {
 +		target = <&sound>;
 +		__overlay__ {
-+			compatible = "rpi-proto";
++			compatible = "rpi,rpi-proto";
 +			i2s-controller = <&i2s>;
 +			status = "okay";
 +		};
@@ -61,11 +61,16 @@ index 0000000..984545b
 +	};
 +
 +	fragment@2 {
-+		target-path = "/";
++		target = <&i2c1>;
 +		__overlay__ {
-+			wm8731-codec {
++			#address-cells = <1>;
++			#size-cells = <0>;
++			status = "okay";
++
++			wm8731@1a {
 +				#sound-dai-cells = <0>;
 +				compatible = "wlf,wm8731";
++				reg = <0x1a>;
 +				status = "okay";
 +			};
 +		};
@@ -148,10 +153,10 @@ index 17ea2b0..883241b 100644
  obj-$(CONFIG_SND_BCM2708_SOC_IQAUDIO_DAC) += snd-soc-iqaudio-dac.o
 diff --git a/sound/soc/bcm/rpi-proto.c b/sound/soc/bcm/rpi-proto.c
 new file mode 100644
-index 0000000..70b0166
+index 0000000..cdc8b51
 --- /dev/null
 +++ b/sound/soc/bcm/rpi-proto.c
-@@ -0,0 +1,130 @@
+@@ -0,0 +1,152 @@
 +/*
 + * ASoC driver for PROTO AudioCODEC (with a WM8731)
 + * connected to a Raspberry Pi
@@ -253,6 +258,21 @@ index 0000000..70b0166
 +	int ret = 0;
 +
 +	snd_rpi_proto.dev = &pdev->dev;
++
++	if (pdev->dev.of_node) {
++		struct device_node *i2s_node;
++		struct snd_soc_dai_link *dai = &snd_rpi_proto_dai[0];
++		i2s_node = of_parse_phandle(pdev->dev.of_node,
++				            "i2s-controller", 0);
++
++		if (i2s_node) {
++			dai->cpu_dai_name = NULL;
++			dai->cpu_of_node = i2s_node;
++			dai->platform_name = NULL;
++			dai->platform_of_node = i2s_node;
++		}
++	}
++
 +	ret = snd_soc_register_card(&snd_rpi_proto);
 +	if (ret) {
 +		dev_err(&pdev->dev,
@@ -268,10 +288,17 @@ index 0000000..70b0166
 +	return snd_soc_unregister_card(&snd_rpi_proto);
 +}
 +
++static const struct of_device_id snd_rpi_proto_of_match[] = {
++	{ .compatible = "rpi,rpi-proto", },
++	{},
++};
++MODULE_DEVICE_TABLE(of, snd_rpi_proto_of_match);
++
 +static struct platform_driver snd_rpi_proto_driver = {
 +	.driver = {
 +		.name   = "snd-rpi-proto",
 +		.owner  = THIS_MODULE,
++		.of_match_table = snd_rpi_proto_of_match,
 +	},
 +	.probe	  = snd_rpi_proto_probe,
 +	.remove	 = snd_rpi_proto_remove,

+ 1 - 0
target/linux/config/Config.in.ethernet

@@ -78,6 +78,7 @@ config ADK_KERNEL_KORINA
 
 config ADK_KERNEL_USB_NET_SMSC95XX
 	tristate "SMSC95XX USB ethernet driver"
+	select ADK_KERNEL_USB_NET_DRIVERS
 	select ADK_KERNEL_USB_USBNET
 	depends on ADK_TARGET_SYSTEM_RASPBERRY_PI
 	default y if ADK_TARGET_SYSTEM_RASPBERRY_PI