aBUGSworstnightmare
Posts: 1479
Joined: Tue Jun 30, 2015 1:35 pm

RPi 3 missing from dt-blob.dts

Mon Mar 14, 2016 4:28 pm

Hi,

I want to compile a custom device tree blob for the RPi 3 but can't locate the related configs in the dt-blob.dts found here https://github.com/raspberrypi/firmware ... t-blob.dts

Where to find the updated source file?

Rgds
Joerg
aBUGSworstnightmare

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 7124
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: RPi 3 missing from dt-blob.dts

Mon Mar 14, 2016 4:58 pm

That's the right place, it's just not been done yet.
I did ping Pi Towers over it just after Pi3 came out, but they were a tad busy at the time. I may do so again, but know they need to sanitise it before release.

Was there anything in particular you needed to know?
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

aBUGSworstnightmare
Posts: 1479
Joined: Tue Jun 30, 2015 1:35 pm

Re: RPi 3 missing from dt-blob.dts

Mon Mar 14, 2016 6:45 pm

Thanks for the info!
I'm using the GPIO as 24-bit DPI interface for driving TFT modules ans need to make the required changes to the source and compile a new blob for RPi3 and the latest Raspbian kernel.
I only have one RPi2 left and don't want to by new ones when I can have WiFi for free on RPi3.
Joerg

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 7124
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: RPi 3 missing from dt-blob.dts

Mon Mar 14, 2016 8:39 pm

OK, I'll prod Pi Towers again.

I did try to get it working via a dt overlay rather than dt-blob.dts. The compiled object is attached to https://github.com/raspberrypi/linux/is ... -143763109 but seemed not to set up something correctly (drive currents? the muxing was all correct). It might be worth having a quick play with that as overlays are much easier to maintain than dt-blob.bin. (If my list of things to check wasn't growing at a stupid rate, I'd pick it up again).

The kernel patch I had for the change was

Code: Select all

diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile
index 192bda7..9f6e2f4 100644
--- a/arch/arm/boot/dts/overlays/Makefile
+++ b/arch/arm/boot/dts/overlays/Makefile
@@ -15,6 +15,7 @@ endif
 dtb-$(RPI_DT_OVERLAYS) += ads7846-overlay.dtb
 dtb-$(RPI_DT_OVERLAYS) += bmp085_i2c-sensor-overlay.dtb
 dtb-$(RPI_DT_OVERLAYS) += dht11-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += dpi-display-overlay.dtb
 dtb-$(RPI_DT_OVERLAYS) += enc28j60-overlay.dtb
 dtb-$(RPI_DT_OVERLAYS) += gpio-poweroff-overlay.dtb
 dtb-$(RPI_DT_OVERLAYS) += hifiberry-amp-overlay.dtb
diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README
index 4ab4c695..de96ca7 100644
--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
@@ -185,6 +185,13 @@ Params: gpiopin                  GPIO connected to the sensor's DATA output.
                                  (default 4)
 
 
+Name:   dpi-display
+Info:   Overlay for use with a DPI display, such as via an Adafruit Kippah.
+        This uses GPIOs 0-21 (so no I2C), and activates the output 2-3 seconds
+        after the kernel has started.
+Load:   dtoverlay=dpi-display
+Params: <None>
+
 [ The ds1307-rtc overlay has been deleted. See i2c-rtc. ]
 
 
diff --git a/arch/arm/boot/dts/overlays/dpi-display-overlay.dts b/arch/arm/boot/dts/overlays/dpi-display-overlay.dts
new file mode 100644
index 0000000..7abc316
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/dpi-display-overlay.dts
@@ -0,0 +1,30 @@
+/dts-v1/;
+/plugin/;
+
+/{
+	compatible = "brcm,bcm2708";
+
+	// There is no DPI driver module, but we need a platform device
+	// node (that doesn't already use pinctrl) to hang the pinctrl
+	// reference on - leds will do
+
+	[email protected] {
+		target = <&leds>;
+		__overlay__ {
+			pinctrl-names = "default";
+			pinctrl-0 = <&dpi_display_pins>;
+		};
+	};
+
+	[email protected] {
+		target = <&gpio>;
+		__overlay__ {
+			dpi_display_pins: dpi_display_pins {
+				brcm,pins = <0 1 2 3 4 5 6 7 8 9 10 11 12
+					     13 14 15 16 17 18 19 20 21>;
+				brcm,function = <6>; /* alt2 */
+				brcm,pull = <0>; /* no pull */
+			};
+		};
+	};
+};
Feel free to play, and even better if you get it working.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

aBUGSworstnightmare
Posts: 1479
Joined: Tue Jun 30, 2015 1:35 pm

Re: RPi 3 missing from dt-blob.dts

Tue Mar 15, 2016 6:49 am

Hi 6by9,

well ... sorry to say but I'm not a Linux geek nor did I ever bang my head around overlays so I have no idea of what your doing atm :oops: .

But looking at your overlay leads me to some questions:
1.) Which DPI mode do you want to use?Since you only initialize 0 to 21 I assume your going for mode 5 (666 bits colour), right?
DPI intercace RPIB.png
DPI intercace RPIB.png (14.94 KiB) Viewed 12523 times
Well, that's not enough for me since I'm using 24-bit colour - 888 = mode7 from that table.

2.) drive strength should be considered by the overlay when initializing the GPIO.

As I said; never uses overlays! But here is one example what I'm using on RPi2 running Jessie:
dtblob_RPi2V1_1.zip
Device tree source file and compiled blob for RPi2 V1.1 running Jessie
(4.13 KiB) Downloaded 356 times
COM43H4M09XLC.zip
config.txt and connection documentation for Ortustech COM43H4M09XLC (480x272pixels, 24-bit colour)
(49.85 KiB) Downloaded 303 times
Data sheet where all the related timings came from is here http://docs-europe.electrocomponents.co ... 0792e8.pdf

As you can see from the dt-blob.dts I configure DPI interface like this (relevant portion shown only!; refer to source for complete file):

Code: Select all

...
pins_2b2 { // Pi 2 Model B rev 1.1
         pin_config {
            [email protected] {
               polarity = "active_high";
               termination = "pull_down";
               startup_state = "inactive";
               function = "input";
            }; // pin
            [email protected] { function = "dpi";  termination = "no_pulling"; drive_strength_mA = < 8 >; }; // CLK
            [email protected] { function = "dpi";  termination = "no_pulling"; drive_strength_mA = < 8 >; }; // DEN
            [email protected] { function = "dpi";  termination = "no_pulling"; drive_strength_mA = < 8 >; }; // VSYNC
            [email protected] { function = "dpi";  termination = "no_pulling"; drive_strength_mA = < 8 >; }; // HSYNC
            [email protected] { function = "dpi";  termination = "no_pulling"; drive_strength_mA = < 8 >; }; // B0
            [email protected] { function = "dpi";  termination = "no_pulling"; drive_strength_mA = < 8 >; }; // B1
            [email protected] { function = "dpi";  termination = "no_pulling"; drive_strength_mA = < 8 >; }; // B2
            [email protected] { function = "dpi";  termination = "no_pulling"; drive_strength_mA = < 8 >; }; // B3
            [email protected] { function = "dpi";  termination = "no_pulling"; drive_strength_mA = < 8 >; }; // B4
            [email protected] { function = "dpi";  termination = "no_pulling"; drive_strength_mA = < 8 >; }; // B5
            [email protected] { function = "dpi";  termination = "no_pulling"; drive_strength_mA = < 8 >; }; // B6
            [email protected] { function = "dpi";  termination = "no_pulling"; drive_strength_mA = < 8 >; }; // B7
            [email protected] { function = "dpi";  termination = "no_pulling"; drive_strength_mA = < 8 >; }; // G0
            [email protected] { function = "dpi";  termination = "no_pulling"; drive_strength_mA = < 8 >; }; // G1
            [email protected] { function = "dpi";  termination = "no_pulling"; drive_strength_mA = < 8 >; }; // G2
            [email protected] { function = "dpi";  termination = "no_pulling"; drive_strength_mA = < 8 >; }; // G3
            [email protected] { function = "dpi";  termination = "no_pulling"; drive_strength_mA = < 8 >; }; // G4
            [email protected] { function = "dpi";  termination = "no_pulling"; drive_strength_mA = < 8 >; }; // G5
            [email protected] { function = "dpi";  termination = "no_pulling"; drive_strength_mA = < 8 >; }; // G6
            [email protected] { function = "dpi";  termination = "no_pulling"; drive_strength_mA = < 8 >; }; // G7
            [email protected] { function = "dpi";  termination = "no_pulling"; drive_strength_mA = < 8 >; }; // R0
            [email protected] { function = "dpi";  termination = "no_pulling"; drive_strength_mA = < 8 >; }; // R1
            [email protected] { function = "dpi";  termination = "no_pulling"; drive_strength_mA = < 8 >; }; // R2
            [email protected] { function = "dpi";  termination = "no_pulling"; drive_strength_mA = < 8 >; }; // R3
            [email protected] { function = "dpi";  termination = "no_pulling"; drive_strength_mA = < 8 >; }; // R4
            [email protected] { function = "dpi";  termination = "no_pulling"; drive_strength_mA = < 8 >; }; // R5
            [email protected] { function = "dpi";  termination = "no_pulling"; drive_strength_mA = < 8 >; }; // R6
            [email protected] { function = "dpi";  termination = "no_pulling"; drive_strength_mA = < 8 >; }; // R7
            // The firmware changes I2C pin functions on the fly, returning them to inputs when done. But pins 28&29 are
            // not used on a 1.1 Pi2, so the I2C0 function ends up multiply mapped (bad). therefore don't statically map.
            // [email protected] { function = "i2c0";   termination = "pull_up";    }; // I2C 0 SDA
            // [email protected] { function = "i2c0";   termination = "pull_up";    }; // I2C 0 SCL
            [email protected] { function = "output"; termination = "pull_down"; }; // LAN_RUN
            [email protected] { function = "output"; termination = "pull_down"; }; // Camera LED
            [email protected] { function = "input";  termination = "no_pulling"; polarity = "active_low"; }; // Power low
            [email protected] { function = "output"; termination = "no_pulling";    }; // USB current limit (0=600mA, 1=1200mA)
            [email protected] { function = "pwm";    termination = "no_pulling"; drive_strength_mA = < 16 >; }; // Right audio
            [email protected] { function = "output"; termination = "no_pulling";    }; // Camera shutdown
            // Communicate with the SMPS by "bit-bashing" the I2C protocol on GPIOs 42 and 43
            [email protected] { function = "output"; termination = "pull_up";    }; // SMPS_SCL
            [email protected] { function = "input";  termination = "no_pulling";    }; // SMPS_SDA
            [email protected] { function = "gp_clk"; termination = "pull_down"; }; // ETH_CLK - Ethernet 25MHz output
            [email protected] { function = "pwm";    termination = "no_pulling"; drive_strength_mA = < 16 >; }; // Left audio
            [email protected] { function = "input";  termination = "no_pulling"; polarity = "active_low"; }; // Hotplug
            [email protected] { function = "output"; termination = "pull_down"; }; // activity LED
            [email protected] { function = "sdcard"; termination = "pull_up";    drive_strength_mA = < 8 >; }; // SD CLK
            [email protected] { function = "sdcard"; termination = "pull_up";    drive_strength_mA = < 8 >; }; // SD CMD
            [email protected] { function = "sdcard"; termination = "pull_up";    drive_strength_mA = < 8 >; }; // SD D0
            [email protected] { function = "sdcard"; termination = "pull_up";    drive_strength_mA = < 8 >; }; // SD D1
            [email protected] { function = "sdcard"; termination = "pull_up";    drive_strength_mA = < 8 >; }; // SD D2
            [email protected] { function = "sdcard"; termination = "pull_up";    drive_strength_mA = < 8 >; }; // SD D3
         }; // pin_config
...
Would be glad if you could explain
a) how to do this by using overlay and
b) how to compile an overlay

Kind regards
Joerg
aBUGSworstnightmare

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 7124
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: RPi 3 missing from dt-blob.dts

Tue Mar 15, 2016 1:12 pm

Reply from Pi Towers - there's a firmware update required as well, but should hopefully be pushed today.

For how overlays work and how to compile them I'll point you at the docs https://www.raspberrypi.org/documentati ... ce-tree.md

In simple terms, dt-blob.bin is read and processed solely by the firmware. Whilst it may be in device tree format it isn't used by the kernel and has various board revision references.

The kernel device tree (and overlays) allow you to set up GPIOs in pretty much the same way, but are generally independent of board revision. I haven't checked whether we can set GPIO drive strength from there, but function and pulls can certainly be set. I didn't work fully through why it didn't work when I tried it, and then lost interest as the official display came out which was more suited for my needs.

Yes, my overlay was for use with config.txt having RGB666 as I've got an Adafruit Kippah and screen. I'd have to dig out my config.txt settings as those are all still needed, but the dt-blob.bin would be replaced by a simple "dtoverlay=..." line in config.txt.
If I can get it working with the Kippah, then adding overlays to set up GPIOs for RGB888 should be trivial. I won't have a way of testing it though, so I may throw some files your way if you have a suitable setup :) One step at a time though.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

aBUGSworstnightmare
Posts: 1479
Joined: Tue Jun 30, 2015 1:35 pm

Re: RPi 3 missing from dt-blob.dts

Tue Mar 15, 2016 2:19 pm

Will have a look at the overlays and dig my way through ...
Would prefer to find a simpler solution compared to what I'm doing right now.

Suitable setups... well ... I have some of them :shock:
The latest one was sucseccfully fired up today. O.K. it will need some touchup work to have all it's features available but it's working at least :!:

Keen to know what it is?
Well, the display is a Sharp LQ101K1LY05 - a nice 10.1in WXGA display (1.280 x 800 pixel) with LVDS interface.

Yes, your right :!: My RPi is able to drive LVDS displays 8-) I've developed an add-on board for the RPi which allows me to use LVDS diaplys:
WP_20160315_14_48_46_Smart_small.jpg
the setup in action
WP_20160315_14_48_46_Smart_small.jpg (53.66 KiB) Viewed 12151 times
WP_20160315_14_46_05_Smart_small.jpg
RPi + LVDS4PI + LQ101K1LY05
WP_20160315_14_46_05_Smart_small.jpg (59.82 KiB) Viewed 12151 times
WP_20160315_14_49_40_Smart_small.jpg
LVDS interface to LCD module
WP_20160315_14_49_40_Smart_small.jpg (63.12 KiB) Viewed 12151 times
I'm using a RPi2 atm but will replace it with a 3 as soon as this setup is confirmed working on the RPi3.

If you want me to test something feel free to ask...

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 7124
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: RPi 3 missing from dt-blob.dts

Tue Mar 15, 2016 5:14 pm

Update done. https://github.com/raspberrypi/firmware ... t-blob.dts now has pins_3b1 and pins_3b2 sections for the Pi3.

Please note that you will have to use "sudo rpi-update" to get the latest firmware as well to match this blob. Old firmware with a compiled version of this blob will almost certainly result in invalid pin setup.

PS Nice displays :D
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

aBUGSworstnightmare
Posts: 1479
Joined: Tue Jun 30, 2015 1:35 pm

Re: RPi 3 missing from dt-blob.dts

Tue Mar 15, 2016 6:42 pm

6by9 wrote: PS Nice displays :D
Thanks!
6by9 wrote:Update done. https://github.com/raspberrypi/firmware ... t-blob.dts now has pins_3b1 and pins_3b2 sections for the Pi3.

Please note that you will have to use "sudo rpi-update" to get the latest firmware as well to match this blob. Old firmware with a compiled version of this blob will almost certainly result in invalid pin setup.
Thank you for your support! Will test tomorrow.
Yep, I'm familiar with doing upgrade and update prior attempting to compile a new blob but thanks you pointed it out again.
By the way: What is the difference between RPi3 rev 1.0 and 1.2?

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 7124
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: RPi 3 missing from dt-blob.dts

Tue Mar 15, 2016 8:04 pm

aBUGSworstnightmare wrote:Yep, I'm familiar with doing upgrade and update prior attempting to compile a new blob but thanks you pointed it out again.
apt-get update, apt-get upgrade is not sufficient. This has not been pushed to the stable Raspbian releases as yet, only the cutting edge release (rpi-update).
aBUGSworstnightmare wrote:By the way: What is the difference between RPi3 rev 1.0 and 1.2?
Pass - I'd only be reverse engineering it from the blob. Probably an earlier prototype of the Pi3. I would anticipate all production devices to be 1.2 - the config for it was added to the firmware in October which was probably before the "go" button was pressed for production.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 7124
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: RPi 3 missing from dt-blob.dts

Tue Mar 15, 2016 11:58 pm

It looks like some bits currently aren't going to work on Pi3. I'm playing with the VGA666 overlay as it is there already, known to work on Pi2, and there's an open issue complaining about it not working either (https://github.com/raspberrypi/firmware/issues/559). Lessons learnt there should apply straight across to DPI.

The main issue looks to be that the uart is configured in the kernel and will claim GPIOs 14&15. Hopefully that can be solved by disabling uart1, but I'm learning about this side of DT and the incantations to use.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

tvjon
Posts: 710
Joined: Mon Jan 07, 2013 9:11 am

Re: RPi 3 missing from dt-blob.dts

Wed Mar 16, 2016 12:07 am

What a coincidence!

I posted a short while ago to the vga666 sticky in beginners.

dtoverlay=pi3-disable-bt-overlay

does restore it, but no bt, sniff.

aBUGSworstnightmare
Posts: 1479
Joined: Tue Jun 30, 2015 1:35 pm

Re: RPi 3 missing from dt-blob.dts

Wed Mar 16, 2016 8:39 am

6by9 wrote:It looks like some bits currently aren't going to work on Pi3. I'm playing with the VGA666 overlay as it is there already, known to work on Pi2, and there's an open issue complaining about it not working either (https://github.com/raspberrypi/firmware/issues/559). Lessons learnt there should apply straight across to DPI.

The main issue looks to be that the uart is configured in the kernel and will claim GPIOs 14&15. Hopefully that can be solved by disabling uart1, but I'm learning about this side of DT and the incantations to use.
Thanks for this! Will save me some gray hairs for sure.
Sorry for asking this - maybe stupid - question: How to use this command to get info on GPIO configuration?

Code: Select all

sudo raspi-gpio get
This is what I get when I try to use it --> COMMAND NOT FOUND
2016-01-21-162744_655x390_scrot.png
2016-01-21-162744_655x390_scrot.png (11.29 KiB) Viewed 11188 times

User avatar
rpdom
Posts: 14979
Joined: Sun May 06, 2012 5:17 am
Location: Chelmsford, Essex, UK

Re: RPi 3 missing from dt-blob.dts

Wed Mar 16, 2016 8:54 am

You may need to install it before you can run it

Code: Select all

sudo apt-get update && sudo apt-get install raspi-gpio

PhilE
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 2302
Joined: Mon Sep 29, 2014 1:07 pm
Location: Cambridge

Re: RPi 3 missing from dt-blob.dts

Wed Mar 16, 2016 1:57 pm

@tvjon The next firmware release adds a dtparam for enabling and disabling uart1. It is called (cryptically) "uart1", and in your case you would say:

Code: Select all

dtparam=uart1=off
That won't have the side-effect of disabling Bluetooth.

aBUGSworstnightmare
Posts: 1479
Joined: Tue Jun 30, 2015 1:35 pm

Re: RPi 3 missing from dt-blob.dts

Thu Mar 17, 2016 3:09 pm

PhilE wrote:@tvjon The next firmware release adds a dtparam for enabling and disabling uart1. It is called (cryptically) "uart1", and in your case you would say:

Code: Select all

dtparam=uart1=off
That won't have the side-effect of disabling Bluetooth.
Hi,
when you say 'next firmware to include ..' which firmware are you referring too?
Spend quite a while with my RPi3 now but DPI interface is still not working.

I've updated to the latest (at time of writing) available firmware by

Code: Select all

sudo rpi-update
2016-03-17-093506_895x585_scrot.jpg
RPi3 firmware updated to latest available version
2016-03-17-093506_895x585_scrot.jpg (39.03 KiB) Viewed 11040 times
Then:

Code: Select all

sudo apt-get update

sudo apt-get upgrade

wget https://raw.githubusercontent.com/raspberrypi/firmware/master/extra/dt-blob.dts

Made the required changes on the sources and compiled a new blob. I also added

Code: Select all

dtparam=uart1=off
to my config.txt file.

Booted the RPi3 with a 24-bit RGB display connected --> not working!

Then made the same step on an RPi B+ running Wheezy:
WP_20160317_15_42_46_Smart.jpg
RPi B+ with 24-bit RGB display after updating firmware and compiling new blob
WP_20160317_15_42_46_Smart.jpg (31.86 KiB) Viewed 11040 times
Display is running as expected! Here is what my GPIO look like for this test
2016-03-17-121256_767x540_scrot.jpg
GPIO config
2016-03-17-121256_767x540_scrot.jpg (37.88 KiB) Viewed 11040 times
Last edited by aBUGSworstnightmare on Thu Mar 17, 2016 3:13 pm, edited 1 time in total.

aBUGSworstnightmare
Posts: 1479
Joined: Tue Jun 30, 2015 1:35 pm

Re: RPi 3 missing from dt-blob.dts

Thu Mar 17, 2016 3:10 pm

in addition to the above (sinc eonly 3 attachments are possible)
So: any idea why DPI is no longer working/still not working - with FW 4.1.y - on the Raspberry 3?
version.jpg
Firmware version string
version.jpg (31.17 KiB) Viewed 11034 times
EDIT: Raspberry Pi 2 V1.1 is also working after this firmware update (and compilation of new related blob)

PhilE
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 2302
Joined: Mon Sep 29, 2014 1:07 pm
Location: Cambridge

Re: RPi 3 missing from dt-blob.dts

Thu Mar 17, 2016 3:25 pm

I meant any kind of firmware release made after my statement. This means that the patch is now in the "next" branch of rpi-update, but although there was an update to the "master" branch yesterday it was only adding a file missed by the previous commit and didn't include other changes.

Until the next update, you can download the updated Pi3 DTB for rpi-4.1.y here.

aBUGSworstnightmare
Posts: 1479
Joined: Tue Jun 30, 2015 1:35 pm

Re: RPi 3 missing from dt-blob.dts

Thu Mar 17, 2016 3:41 pm

Do I need to change something in additon?
Downloaded and copied the file to boot --> still see the same 'picture'
The attachment WP_20160317_16_35_48_Smart_small.jpg is no longer available
[
WP_20160317_16_35_48_Smart_small.jpg
WP_20160317_16_35_48_Smart_small.jpg (30.79 KiB) Viewed 10961 times
This is my RPi 3 with the display confirmed working on RPi B+ (and RPi2).

PhilE
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 2302
Joined: Mon Sep 29, 2014 1:07 pm
Location: Cambridge

Re: RPi 3 missing from dt-blob.dts

Thu Mar 17, 2016 3:44 pm

Have you added "dtparam=uart1=no"? What do you get from:

Code: Select all

sudo vcdbg log msg |& grep -v -E  "(HDMI|gpioman|clock):"
sudo raspi-gpio get

aBUGSworstnightmare
Posts: 1479
Joined: Tue Jun 30, 2015 1:35 pm

Re: RPi 3 missing from dt-blob.dts

Thu Mar 17, 2016 3:58 pm

PhilE wrote:Have you added "dtparam=uart1=no"? What do you get from:

Code: Select all

sudo vcdbg log msg |& grep -v -E  "(HDMI|gpioman|clock):"
sudo raspi-gpio get
Please find my config.txt below

Code: Select all

# ---------------------------------------------
# For use with Sharp LQ070 7in module only
# on RPi 
# ---------------------------------------------

# ---------------------------------------------
# Overscan Information
# --------------------------------------------- 
overscan_left=0
overscan_right=0
overscan_top=0
overscan_bottom=0
framebuffer_width=800
framebuffer_height=480

# ---------------------------------------------
# DPI interface comsumes all GPIO of the RPi
# Disable SPI, I2C and prevent conflict with
# UART1  
# ---------------------------------------------
dtparam=spi=off
dtparam=i2c_arm=off
dtparam=uart1=off

# ---------------------------------------------
# Enable DPI
# --------------------------------------------- 
enable_dpi_lcd=1

# ---------------------------------------------
# Make DPI default output
# ---------------------------------------------
display_default_lcd=1

# ---------------------------------------------
# custom HDMI mode
# https://www.raspberrypi.org/forums/viewtopic.php?p=613926#p613926
# https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679
# ---------------------------------------------
dpi_group=2
dpi_mode=87

# ---------------------------------------------
# DPI output format definitions
# https://www.raspberrypi.org/forums/viewtopic.php?p=628061#p628061
# DPI structure: https://www.raspberrypi.org/forums/viewtopic.php?p=617719#p617719
# ---------------------------------------------
# output_format:
#   1: DPI_OUTPUT_FORMAT_9BIT_666
#   2: DPI_OUTPUT_FORMAT_16BIT_565_CFG1
#   3: DPI_OUTPUT_FORMAT_16BIT_565_CFG2
#   4: DPI_OUTPUT_FORMAT_16BIT_565_CFG3
#   5: DPI_OUTPUT_FORMAT_18BIT_666_CFG1
#   6: DPI_OUTPUT_FORMAT_18BIT_666_CFG2
#   7: DPI_OUTPUT_FORMAT_24BIT_888
#
# rgb_order:
#   1: DPI_RGB_ORDER_RGB
#   2: DPI_RGB_ORDER_BGR
#   3: DPI_RGB_ORDER_GRB
#   4: DPI_RGB_ORDER_BRG
#
# output_enable_mode:
#   0: DPI_OUTPUT_ENABLE_MODE_DATA_VALID
#   1: DPI_OUTPUT_ENABLE_MODE_COMBINED_SYNCS
#
# invert_pixel_clock:
#   0: RGB Data changes on rising edge and is stable at falling edge
#   1: RGB Data changes on falling edge and is stable at rising edge
#
# hsync polarity: 
#   0: default for HDMI mode
#   1: inverted
#
# vsync polarity:
#   0: default for HDMI mode
#   1: inverted
#
# output_enable_polarity:
#   0: default for HDMI mode
#   1: inverted
#
# hsync phase:
#   0: rising edge
#   1: falling edge
#
# vsync phase:
#   0: rising edge
#   1: falling edge
#
# output_enable phase:
#   0: rising edge
#   1: falling edge
# ---------------------------------------------
dpi_output_format=458775


# ---------------------------------------------
# HDMI timing definitions
#https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679
# ---------------------------------------------
# hdmi_timings= <h_active_pixels>
#		  LCD module horizontal resolution
#
#               <h_sync_polarity>
# 		  0: active low
#		  1: active high
#
#               <h_front_porch> 
#		<h_sync_pulse>
#		<h_back_porch>
#		<v_active_lines>
#		  LCD module vertical resolution
#
#		<v_sync_polarity>
# 		  0: active low
#		  1: active high
#
#		<v_front_porch>
#		<v_sync_pulse>
#		<v_back_porch>
#
#		<v_sync_offset_a>
#		<v_sync_offset_b>
#		<pixel_rep>
#
#		<frame_rate>
#		  screen refrech rate (50/60Hz supported only!)#
#
#		<interlaced>
#
#		<pixel_freq>
#		  calculates as: <h_active_pixels> * <v_active_lines> * <frame_rate>
#
#		<aspect_ratio>
#		  HDMI_ASPECT_4_3 = 1
#		  HDMI_ASPECT_14_9 = 2
#		  HDMI_ASPECT_16_9 = 3
#		  HDMI_ASPECT_5_4 = 4
#		  HDMI_ASPECT_16_10 = 5
#		  HDMI_ASPECT_15_9 = 6
#		  HDMI_ASPECT_21_9 = 7
#		  HDMI_ASPECT_64_27 = 8
# ---------------------------------------------
#hdmi_timing for 7in configuration notes
#h_active_pixels = 800
#h_sync_polarity = 1
#h_front_porch = 113
#h_sync_pulse = 7 
#h_back_porch = 18
#v_active_lines = 480
#v_sync_polarity = 1
#v_front_porch = 4
#v_sync_pulse = 4
#v_back_porch = 12
#v_sync_offset_a = 0
#v_sync_offset_b = 0
#pixel_rep = 0
#frame_rate = 60
#interlaces = 0
#pixel_freq = 39170000
#aspect_ratio = 6
# ---------------------------------------------
hdmi_timings=800 1 113 7 18 480 1 4 4 12 0 0 0 60 0 39170000 6
I've added 'dtparam=uart1=off'? I will test with dtparam=uart1=no to see if this makes any difference.

Will DPI be enabled without a 'enable_dpi_lcd=1' in the config? All my I/O are input (except 14/15 is UART TX/RX).
How to dump the other command output into a file? Can't copy the output since a part of it is missing.
Last edited by aBUGSworstnightmare on Fri Mar 18, 2016 6:09 am, edited 2 times in total.

PhilE
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 2302
Joined: Mon Sep 29, 2014 1:07 pm
Location: Cambridge

Re: RPi 3 missing from dt-blob.dts

Thu Mar 17, 2016 4:03 pm

For dtparams, "off", "no", "0", "false" are all equivalent.

This will capture the output to a file:

Code: Select all

sudo vcdbg log msg |& grep -v -E  "(HDMI|gpioman|clock):" > vcdbg.txt
sudo raspi-gpio get > rgpio.txt
But I think the problem is that your config.txt isn't loading the vga666 overlay...

aBUGSworstnightmare
Posts: 1479
Joined: Tue Jun 30, 2015 1:35 pm

Re: RPi 3 missing from dt-blob.dts

Thu Mar 17, 2016 4:12 pm

Output to file is cropped somehow.
Nevertheless, here is the content:

Code: Select all

[email protected]:~ $ sudo raspi-gpio get
BANK0 (GPIO 0 to 27):
  GPIO 00: level=1 fsel=0 alt=  func=INPUT
  GPIO 01: level=1 fsel=0 alt=  func=INPUT
  GPIO 02: level=1 fsel=0 alt=  func=INPUT
  GPIO 03: level=1 fsel=0 alt=  func=INPUT
  GPIO 04: level=1 fsel=0 alt=  func=INPUT
  GPIO 05: level=1 fsel=0 alt=  func=INPUT
  GPIO 06: level=1 fsel=0 alt=  func=INPUT
  GPIO 07: level=1 fsel=0 alt=  func=INPUT
  GPIO 08: level=1 fsel=0 alt=  func=INPUT
  GPIO 09: level=0 fsel=0 alt=  func=INPUT
  GPIO 10: level=0 fsel=0 alt=  func=INPUT
  GPIO 11: level=0 fsel=0 alt=  func=INPUT
  GPIO 12: level=0 fsel=0 alt=  func=INPUT
  GPIO 13: level=0 fsel=0 alt=  func=INPUT
  GPIO 14: level=1 fsel=4 alt=0 func=TXD0
  GPIO 15: level=1 fsel=4 alt=0 func=RXD0
  GPIO 16: level=0 fsel=0 alt=  func=INPUT
  GPIO 17: level=0 fsel=0 alt=  func=INPUT
  GPIO 18: level=0 fsel=0 alt=  func=INPUT
  GPIO 19: level=0 fsel=0 alt=  func=INPUT
  GPIO 20: level=0 fsel=0 alt=  func=INPUT
  GPIO 21: level=0 fsel=0 alt=  func=INPUT
  GPIO 22: level=0 fsel=0 alt=  func=INPUT
  GPIO 23: level=0 fsel=0 alt=  func=INPUT
  GPIO 24: level=0 fsel=0 alt=  func=INPUT
  GPIO 25: level=0 fsel=0 alt=  func=INPUT
  GPIO 26: level=0 fsel=0 alt=  func=INPUT
  GPIO 27: level=0 fsel=0 alt=  func=INPUT
BANK1 (GPIO 28 to 45):
  GPIO 28: level=0 fsel=0 alt=  func=INPUT
  GPIO 29: level=1 fsel=0 alt=  func=INPUT
  GPIO 30: level=0 fsel=0 alt=  func=INPUT
  GPIO 31: level=0 fsel=0 alt=  func=INPUT
  GPIO 32: level=1 fsel=7 alt=3 func=TXD0
  GPIO 33: level=1 fsel=7 alt=3 func=RXD0
  GPIO 34: level=1 fsel=7 alt=3 func=SD1_CLK
  GPIO 35: level=1 fsel=7 alt=3 func=SD1_CMD
  GPIO 36: level=1 fsel=7 alt=3 func=SD1_DAT0
  GPIO 37: level=1 fsel=7 alt=3 func=SD1_DAT1
  GPIO 38: level=1 fsel=7 alt=3 func=SD1_DAT2
  GPIO 39: level=1 fsel=7 alt=3 func=SD1_DAT3
  GPIO 40: level=0 fsel=4 alt=0 func=PWM0
  GPIO 41: level=0 fsel=4 alt=0 func=PWM1
  GPIO 42: level=0 fsel=4 alt=0 func=GPCLK1
  GPIO 43: level=1 fsel=4 alt=0 func=GPCLK2
  GPIO 44: level=1 fsel=0 alt=  func=INPUT
  GPIO 45: level=1 fsel=0 alt=  func=INPUT
BANK2 (GPIO 46 to 53):
  GPIO 46: level=1 fsel=0 alt=  func=INPUT
  GPIO 47: level=1 fsel=0 alt=  func=INPUT
  GPIO 48: level=0 fsel=4 alt=0 func=SD0_CLK
  GPIO 49: level=1 fsel=4 alt=0 func=SD0_CMD
  GPIO 50: level=1 fsel=4 alt=0 func=SD0_DAT0
  GPIO 51: level=1 fsel=4 alt=0 func=SD0_DAT1
  GPIO 52: level=1 fsel=4 alt=0 func=SD0_DAT2
  GPIO 53: level=1 fsel=4 alt=0 func=SD0_DAT3
EDIT> Raspberry is booted with the config.txt shown above but without enabling dpi (#display_default_lcd=1)

Code: Select all

001399.497: *** Restart logging
001400.817: Read command line from file 'cmdline.txt'
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
001405.371: Loading 'kernel7.img' from SD card
001643.752: Kernel trailer DTOK property says yes
001643.942: Loading 'bcm2710-rpi-3-b.dtb' from SD card
001700.350: dtparam: uart0_clkrate=48000000
001709.290: dtparam: spi=off
001715.171: dtparam: i2c_arm=off
001721.826: dtparam: uart1=no
001784.328: dtparam: arm_freq=1200000000
001815.053: dtparam: core_freq=400000000
001822.764: dtparam: cache_line_size=64
002558.218: vchiq_core: vchiq_init_state: slot_zero = 0xfa880000, is_master = 1
002566.398: TV service:host side not connected, dropping notification 0x00000002, 0x00000002, 0x00000023

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 7124
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: RPi 3 missing from dt-blob.dts

Thu Mar 17, 2016 5:48 pm

@PhilE - this is a DPI display aBUGSworstnightmare is trying to configure, not vga666. It needs GPIOs 0&1 as alt2 as well as. And he's trying to use RGB888 mode, whilst vga66 and Adafruit Kippah use RGB666, so needs GPIOs 0-27 all on alt2.

@aBUGSworstnightmare: The first thing to sort is getting the pin setup right. The output from raspi-gpio says your dt-blob.bin isn't doing what you want as the pins are still set as INPUT, and UART0 is still on pins 14&15. Until those all read the relevant alt2 function then you really won't get any output. I've failed so far to get DPI to work on Pi3 either, but I was mainly trying to do it via a dtoverlay (failed to do that on a Pi2 too). I'll try again tonight to get DPI working on Pi3 via dt-blob.bin.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

PhilE
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 2302
Joined: Mon Sep 29, 2014 1:07 pm
Location: Cambridge

Re: RPi 3 missing from dt-blob.dts

Thu Mar 17, 2016 5:54 pm

Fair enough. Good luck getting it working.

Return to “Device Tree”