diff mbox

[RESENT] ARM: bcm2835: Add devicetree for the Raspberry Pi 3, for arm (32)

Message ID 1484845444-4617-1-git-send-email-kraxel@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Gerd Hoffmann Jan. 19, 2017, 5:04 p.m. UTC
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 arch/arm/boot/dts/Makefile | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Eric Anholt Jan. 21, 2017, 6:42 p.m. UTC | #1
Gerd Hoffmann <kraxel@redhat.com> writes:

> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> ---
>  arch/arm/boot/dts/Makefile | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 7327250..82a760d 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -70,7 +70,8 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
>  	bcm2835-rpi-b-plus.dtb \
>  	bcm2835-rpi-a-plus.dtb \
>  	bcm2836-rpi-2-b.dtb \
> -	bcm2835-rpi-zero.dtb
> +	bcm2835-rpi-zero.dtb \
> +	../../../arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dtb
>  dtb-$(CONFIG_ARCH_BCM_5301X) += \
>  	bcm4708-asus-rt-ac56u.dtb \
>  	bcm4708-asus-rt-ac68u.dtb \

This would be really nice to have.

Acked-by: Eric Anholt <eric@anholt.net>

ARM upstream folks, do you have any issues with this?
Eric Anholt Jan. 31, 2017, 9:59 p.m. UTC | #2
Eric Anholt <eric@anholt.net> writes:

> [ Unknown signature status ]
> Gerd Hoffmann <kraxel@redhat.com> writes:
>
>> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
>> ---
>>  arch/arm/boot/dts/Makefile | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
>> index 7327250..82a760d 100644
>> --- a/arch/arm/boot/dts/Makefile
>> +++ b/arch/arm/boot/dts/Makefile
>> @@ -70,7 +70,8 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
>>  	bcm2835-rpi-b-plus.dtb \
>>  	bcm2835-rpi-a-plus.dtb \
>>  	bcm2836-rpi-2-b.dtb \
>> -	bcm2835-rpi-zero.dtb
>> +	bcm2835-rpi-zero.dtb \
>> +	../../../arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dtb
>>  dtb-$(CONFIG_ARCH_BCM_5301X) += \
>>  	bcm4708-asus-rt-ac56u.dtb \
>>  	bcm4708-asus-rt-ac68u.dtb \
>
> This would be really nice to have.
>
> Acked-by: Eric Anholt <eric@anholt.net>
>
> ARM upstream folks, do you have any issues with this?

Absent any feedback from ARM maintainers, I think we're about ready to
go with this.

Unfortunately, I just remembered yesterday that one of the requirements
is that we not use these sorts of ../../../ references in the DT tree.
Instead we have to use symlinks -- see arch/arm64/boot/dts/broadcom/ for
how we did the last round of this.

I think just having links from
arch/arm64/boot/dts/broadcom/bcm2837*.dts* to arch/arm/boot/dts/ would
be the solution, then this Makefile could just reference
bcm2837-rpi-3-b.dtb.

Would you be able to respin this?
Gerd Hoffmann Feb. 1, 2017, 10:24 a.m. UTC | #3
> >> -	bcm2835-rpi-zero.dtb
> >> +	bcm2835-rpi-zero.dtb \
> >> +	../../../arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dtb

> Unfortunately, I just remembered yesterday that one of the requirements
> is that we not use these sorts of ../../../ references in the DT tree.
> Instead we have to use symlinks -- see arch/arm64/boot/dts/broadcom/ for
> how we did the last round of this.

Yes, we did that with the *.dtsi include files.
Not fully sure this is a requirement for the Makefile too.

> I think just having links from
> arch/arm64/boot/dts/broadcom/bcm2837*.dts* to arch/arm/boot/dts/ would
> be the solution, then this Makefile could just reference
> bcm2837-rpi-3-b.dtb.

I suspect it is not that easy, last time I tried it didn't work.
Will try again though.

cheers,
  Gerd
Gerd Hoffmann Feb. 1, 2017, 12:20 p.m. UTC | #4
> > I think just having links from
> > arch/arm64/boot/dts/broadcom/bcm2837*.dts* to arch/arm/boot/dts/ would
> > be the solution, then this Makefile could just reference
> > bcm2837-rpi-3-b.dtb.
> 
> I suspect it is not that easy, last time I tried it didn't work.
> Will try again though.

Yep, dtbs_install fails:

[ ... ]
  INSTALL arch/arm/boot/dts/bcm2835-rpi-b-plus.dtb
  INSTALL arch/arm/boot/dts/bcm2835-rpi-a-plus.dtb
  INSTALL arch/arm/boot/dts/bcm2836-rpi-2-b.dtb
  INSTALL 
cp: missing destination file operand after '/boot/dtbs/4.10.0-rc5+'
Try 'cp --help' for more information.
/root/linux/scripts/Makefile.dtbinst:41: recipe for target
'bcm2837-rpi-3-b.dts' failed
make[3]: *** [bcm2837-rpi-3-b.dts] Error 1
arch/arm/Makefile:348: recipe for target 'dtbs_install' failed
make[2]: *** [dtbs_install] Error 2
Makefile:150: recipe for target 'sub-make' failed
make[1]: *** [sub-make] Error 2
Makefile:24: recipe for target '__sub-make' failed
make: *** [__sub-make] Error 2

cheers,
  Gerd
Michael Zoran Feb. 2, 2017, 8:37 a.m. UTC | #5
On Wed, 2017-02-01 at 13:20 +0100, Gerd Hoffmann wrote:
> > > I think just having links from
> > > arch/arm64/boot/dts/broadcom/bcm2837*.dts* to arch/arm/boot/dts/
> > > would
> > > be the solution, then this Makefile could just reference
> > > bcm2837-rpi-3-b.dtb.
> > 
> > I suspect it is not that easy, last time I tried it didn't work.
> > Will try again though.
> 
> Yep, dtbs_install fails:
> 
> [ ... ]
>   INSTALL arch/arm/boot/dts/bcm2835-rpi-b-plus.dtb
>   INSTALL arch/arm/boot/dts/bcm2835-rpi-a-plus.dtb
>   INSTALL arch/arm/boot/dts/bcm2836-rpi-2-b.dtb
>   INSTALL 
> cp: missing destination file operand after '/boot/dtbs/4.10.0-rc5+'
> Try 'cp --help' for more information.
> /root/linux/scripts/Makefile.dtbinst:41: recipe for target
> 'bcm2837-rpi-3-b.dts' failed
> make[3]: *** [bcm2837-rpi-3-b.dts] Error 1
> arch/arm/Makefile:348: recipe for target 'dtbs_install' failed
> make[2]: *** [dtbs_install] Error 2
> Makefile:150: recipe for target 'sub-make' failed
> make[1]: *** [sub-make] Error 2
> Makefile:24: recipe for target '__sub-make' failed

This is actually a problem I had to deal with way in the begging of
ARM64.  What was done in the github tree was to have the one of the DTS
 files(in this case 64) #include the 32 bit dts.  That way it's not
needed to have the symbolic link and install should work.

I know it's ulgy, but it works...

Take a look at:
https://github.com/raspberrypi/linux/blob/rpi-4.10.y/arch/arm64/boot/dt
s/broadcom/bcm2710-rpi-3-b.dts

Here is what the file contains:
#define RPI364

#include "../../../../arm/boot/dts/bcm2710-rpi-3-b.dts"
Stefan Wahren Feb. 2, 2017, 9:50 a.m. UTC | #6
Am 02.02.2017 um 09:37 schrieb Michael Zoran:
> This is actually a problem I had to deal with way in the begging of
> ARM64.  What was done in the github tree was to have the one of the DTS
>   files(in this case 64) #include the 32 bit dts.  That way it's not
> needed to have the symbolic link and install should work.
>
> I know it's ulgy, but it works...
>
> Take a look at:
> https://github.com/raspberrypi/linux/blob/rpi-4.10.y/arch/arm64/boot/dt
> s/broadcom/bcm2710-rpi-3-b.dts
>
> Here is what the file contains:
> #define RPI364
>
> #include "../../../../arm/boot/dts/bcm2710-rpi-3-b.dts"
>
>
>

This do not work in the context of the split device-tree repository [0] 
(where the directory structure differs).

[0] 
https://git.kernel.org/cgit/linux/kernel/git/devicetree/devicetree-rebasing.git/
Michael Zoran Feb. 2, 2017, 10:16 a.m. UTC | #7
On Thu, 2017-02-02 at 10:50 +0100, Stefan Wahren wrote:
> Am 02.02.2017 um 09:37 schrieb Michael Zoran:
> > This is actually a problem I had to deal with way in the begging of
> > ARM64.  What was done in the github tree was to have the one of the
> > DTS
> >    files(in this case 64) #include the 32 bit dts.  That way it's
> > not
> > needed to have the symbolic link and install should work.
> > 
> > I know it's ulgy, but it works...
> > 
> > Take a look at:
> > https://github.com/raspberrypi/linux/blob/rpi-4.10.y/arch/arm64/boo
> > t/dt
> > s/broadcom/bcm2710-rpi-3-b.dts
> > 
> > Here is what the file contains:
> > #define RPI364
> > 
> > #include "../../../../arm/boot/dts/bcm2710-rpi-3-b.dts"
> > 
> > 
> > 
> 
> This do not work in the context of the split device-tree repository
> [0] 
> (where the directory structure differs).
> 
> [0] 
> https://git.kernel.org/cgit/linux/kernel/git/devicetree/devicetree-re
> basing.git/

Well, two other options would be to simply duplicate the device tree
files. I know that's a pain...

The other option is choose one or the other(arm64 vs. arm32), I would
guess pick arm32.  It works...  And at this time, arm64 doesn't have a
whole bunch of benefit on the RPI 3.  Perhaps maybe a RPI 4 will come
out someday and we will see more of a gain.
Eric Anholt Feb. 8, 2017, 10:40 p.m. UTC | #8
Gerd Hoffmann <kraxel@redhat.com> writes:

>> > I think just having links from
>> > arch/arm64/boot/dts/broadcom/bcm2837*.dts* to arch/arm/boot/dts/ would
>> > be the solution, then this Makefile could just reference
>> > bcm2837-rpi-3-b.dtb.
>> 
>> I suspect it is not that easy, last time I tried it didn't work.
>> Will try again though.
>
> Yep, dtbs_install fails:
>
> [ ... ]
>   INSTALL arch/arm/boot/dts/bcm2835-rpi-b-plus.dtb
>   INSTALL arch/arm/boot/dts/bcm2835-rpi-a-plus.dtb
>   INSTALL arch/arm/boot/dts/bcm2836-rpi-2-b.dtb
>   INSTALL 
> cp: missing destination file operand after '/boot/dtbs/4.10.0-rc5+'
> Try 'cp --help' for more information.
> /root/linux/scripts/Makefile.dtbinst:41: recipe for target
> 'bcm2837-rpi-3-b.dts' failed
> make[3]: *** [bcm2837-rpi-3-b.dts] Error 1
> arch/arm/Makefile:348: recipe for target 'dtbs_install' failed
> make[2]: *** [dtbs_install] Error 2
> Makefile:150: recipe for target 'sub-make' failed
> make[1]: *** [sub-make] Error 2
> Makefile:24: recipe for target '__sub-make' failed
> make: *** [__sub-make] Error 2

Huh, I didn't see this when I tried it.  I just sent out that version of
the patch.
diff mbox

Patch

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 7327250..82a760d 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -70,7 +70,8 @@  dtb-$(CONFIG_ARCH_BCM2835) += \
 	bcm2835-rpi-b-plus.dtb \
 	bcm2835-rpi-a-plus.dtb \
 	bcm2836-rpi-2-b.dtb \
-	bcm2835-rpi-zero.dtb
+	bcm2835-rpi-zero.dtb \
+	../../../arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dtb
 dtb-$(CONFIG_ARCH_BCM_5301X) += \
 	bcm4708-asus-rt-ac56u.dtb \
 	bcm4708-asus-rt-ac68u.dtb \