Skip to contentSkip to conversation

dm: rpi: Move Raspberry Pi to use driver model

PATCH New Simon Glass 3 participants 25 messages Sep 22, 2014 – Apr 21, 2015

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

cover dm: rpi: Move Raspberry Pi to use driver model

This series adds driver model support to the GPIO and serial drivers used by Raspberry Pi, and moves Raspberry Pi over to driver model.

This requires adding driver model support to the pl01x serial driver, and replacing the bcm2835 GPIO driver with a driver model version (since there are no longer clients that don't use driver model).

See u-boot-dm.git branch rpi-working for the tree this is based on.

Simon Glass (4):
dm: rpi: Convert GPIO driver to driver model
dm: serial: Tidy up the pl01x driver
dm: serial: Support driver model in pl01x driver
dm: rpi: Move serial to driver model

 arch/arm/include/asm/arch-bcm2835/gpio.h           |   9 +
 board/raspberrypi/rpi_b/rpi_b.c                    |  23 ++
 drivers/gpio/bcm2835_gpio.c                        | 180 ++++++++--
 drivers/serial/Makefile                            |   5 +-
 drivers/serial/serial_pl01x.c                      | 373 +++++++++++++--------
 .../{serial_pl01x.h => serial_pl01x_internal.h}    |   0
 include/configs/rpi_b.h                            |  11 +-
 include/serial_pl01x.h                             |  27 ++
 8 files changed, 462 insertions(+), 166 deletions(-)
 rename drivers/serial/{serial_pl01x.h => serial_pl01x_internal.h} (100%)
 create mode 100644 include/serial_pl01x.h
Signature · 1 line
2.1.0.rc2.206.gedb03e5
#1 lore raw

PATCH 1/4 dm: rpi: Convert GPIO driver to driver model

Convert the BCM2835 GPIO driver to use driver model, and switch over Raspberry Pi to use this, since it is the only board.

---

 arch/arm/include/asm/arch-bcm2835/gpio.h |   9 ++
 board/raspberrypi/rpi_b/rpi_b.c          |  11 ++
 drivers/gpio/bcm2835_gpio.c              | 180 +++++++++++++++++++++++++++----
 include/configs/rpi_b.h                  |   5 +
 4 files changed, 182 insertions(+), 23 deletions(-)
arch/arm/include/asm/arch-bcm2835/gpio.h +9 -0
index 9a49b6e..db42896 100644
@@ -52,4 +52,13 @@ struct bcm2835_gpio_regs {
 	u32 gppudclk[2];
 };
 
+/**
+ * struct bcm2835_gpio_platdata - GPIO platform description
+ *
+ * @base: Base address of GPIO controller
+ */
+struct bcm2835_gpio_platdata {
+	unsigned long base;
+};
+
 #endif /* _BCM2835_GPIO_H_ */
board/raspberrypi/rpi_b/rpi_b.c +11 -0
index 220bb90..447c940 100644
@@ -16,15 +16,26 @@
 
 #include <common.h>
 #include <config.h>
+#include <dm.h>
 #include <fdt_support.h>
 #include <lcd.h>
 #include <mmc.h>
+#include <asm/gpio.h>
 #include <asm/arch/mbox.h>
 #include <asm/arch/sdhci.h>
 #include <asm/global_data.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
+static const struct bcm2835_gpio_platdata gpio_platdata = {
+	.base = BCM2835_GPIO_BASE,
+};
+
+U_BOOT_DEVICE(bcm2835_gpios) = {
+	.name = "gpio_bcm2835",
+	.platdata = &gpio_platdata,
+};
+
 struct msg_get_arm_mem {
 	struct bcm2835_mbox_hdr hdr;
 	struct bcm2835_mbox_tag_get_arm_mem get_arm_mem;
drivers/gpio/bcm2835_gpio.c +157 -23

230 lines not on this page · raw message

include/configs/rpi_b.h +5 -0
index 2d69809..d9475e9 100644
@@ -31,6 +31,11 @@
  */
 #define CONFIG_MACH_TYPE		MACH_TYPE_BCM2708
 
+/* Enable driver model */
+#define CONFIG_DM
+#define CONFIG_CMD_DM
+#define CONFIG_DM_GPIO
+
 /* Memory layout */
 #define CONFIG_NR_DRAM_BANKS		1
 #define CONFIG_SYS_SDRAM_BASE		0x00000000
Signature · 1 line
2.1.0.rc2.206.gedb03e5
#2 lore raw

PATCH 1/4 dm: rpi: Convert GPIO driver to driver model

Quoted 14 lines · Simon Glass

Convert the BCM2835 GPIO driver to use driver model, and switch over Raspberry Pi to use this, since it is the only board.

drivers/gpio/bcm2835_gpio.c +5 -0
 
+static inline bool gpio_is_requested(struct bcm2835_gpios *gpios, int offset)
 {
+	return *gpios->label[offset] != '\0';
 }
 
+static int check_requested(struct udevice *dev, unsigned offset,
+			   const char *func)
 {
+	struct bcm2835_gpios *gpios = dev_get_priv(dev);

drivers/gpio/bcm2835_gpio.c line 46

Quoted 10 lines
drivers/gpio/bcm2835_gpio.c +9 -0
+	struct gpio_dev_priv *uc_priv = dev->uclass_priv;
+
+	if (!gpio_is_requested(gpios, offset)) {
+		printf("omap_gpio: %s: error: gpio %s%d not requested\n",
+		       func, uc_priv->bank_name, offset);
+		return -EPERM;
+	}
+
+	return 0;
 }

It seems like the core GPIO layer should be doing the high-level management of GPIO requesting, so each driver doesn't have to duplicate the code?

#3 lore raw

PATCH 1/4 dm: rpi: Convert GPIO driver to driver model

Hi Stephen,

Quoted 21 lines · Stephen Warren
Quoted 20 lines · Simon Glass

Convert the BCM2835 GPIO driver to use driver model, and switch over Raspberry Pi to use this, since it is the only board.

drivers/gpio/bcm2835_gpio.c +11 -0
 
+static inline bool gpio_is_requested(struct bcm2835_gpios *gpios, int offset)
 {
+     return *gpios->label[offset] != '\0';
 }
 
+static int check_requested(struct udevice *dev, unsigned offset,
+                        const char *func)
 {
+     struct bcm2835_gpios *gpios = dev_get_priv(dev);
+     struct gpio_dev_priv *uc_priv = dev->uclass_priv;
+
+     if (!gpio_is_requested(gpios, offset)) {
+             printf("omap_gpio: %s: error: gpio %s%d not requested\n",
+                    func, uc_priv->bank_name, offset);
+             return -EPERM;
Quoted 8 lines

drivers/gpio/bcm2835_gpio.c line 46

Quoted 4 lines
drivers/gpio/bcm2835_gpio.c +3 -0
+     }
+
+     return 0;
 }

It seems like the core GPIO layer should be doing the high-level management of GPIO requesting, so each driver doesn't have to duplicate the code?

Yes, agreed. I figured this was coming but took a conservative approach with the uclass to start with. I will be taking a look at moving this logic into the uclass soon. I've done enough GPIO drivers to prove this out.

Regards,
Simon

#4 lore raw

PATCH 1/4 dm: rpi: Convert GPIO driver to driver model

In reply to Simon Glass
Quoted 12 lines · Simon Glass

Convert the BCM2835 GPIO driver to use driver model, and switch over Raspberry Pi to use this, since it is the only board.

---

 arch/arm/include/asm/arch-bcm2835/gpio.h |   9 ++
 board/raspberrypi/rpi_b/rpi_b.c          |  11 ++
 drivers/gpio/bcm2835_gpio.c              | 180 +++++++++++++++++++++++++++----
 include/configs/rpi_b.h                  |   5 +
 4 files changed, 182 insertions(+), 23 deletions(-)

Applied to u-boot-dm/master.

#5 lore raw

PATCH 2/4 dm: serial: Tidy up the pl01x driver

In reply to Simon Glass

Adjust the driver so that leaf functions take a pointer to the serial port register base. Put all the global configuration in the init function, and use the same settings from then on.

This makes it much easier to move to driver model without duplicating the code, since with driver model we use platform data rather than global settings.

The driver is compiled with either the CONFIG_PL010_SERIAL or CONFIG_PL011_SERIAL option and this determines the uart type. With driver model this needs to come in from platform data, so create a new CONFIG_PL01X_SERIAL config which brings in the driver, and adjust the driver to support both peripheral variants.

---

 drivers/serial/Makefile                            |   5 +-
 drivers/serial/serial_pl01x.c                      | 300 +++++++++++----------
 .../{serial_pl01x.h => serial_pl01x_internal.h}    |   0
 include/serial_pl01x.h                             |  27 ++
 4 files changed, 192 insertions(+), 140 deletions(-)
 rename drivers/serial/{serial_pl01x.h => serial_pl01x_internal.h} (100%)
 create mode 100644 include/serial_pl01x.h
drivers/serial/Makefile +3 -2
index 9ac3496..edf6936 100644
@@ -7,8 +7,11 @@
 
 ifdef CONFIG_DM_SERIAL
 obj-y += serial-uclass.o
+obj-$(CONFIG_PL01X_SERIAL) += serial_pl01x.o
 else
 obj-y += serial.o
+obj-$(CONFIG_PL010_SERIAL) += serial_pl01x.o
+obj-$(CONFIG_PL011_SERIAL) += serial_pl01x.o
 obj-$(CONFIG_SYS_NS16550_SERIAL) += serial_ns16550.o
 endif
 
@@ -25,8 +28,6 @@ obj-$(CONFIG_IMX_SERIAL) += serial_imx.o
 obj-$(CONFIG_KS8695_SERIAL) += serial_ks8695.o
 obj-$(CONFIG_MAX3100_SERIAL) += serial_max3100.o
 obj-$(CONFIG_MXC_UART) += serial_mxc.o
-obj-$(CONFIG_PL010_SERIAL) += serial_pl01x.o
-obj-$(CONFIG_PL011_SERIAL) += serial_pl01x.o
 obj-$(CONFIG_PXA_SERIAL) += serial_pxa.o
 obj-$(CONFIG_SA1100_SERIAL) += serial_sa1100.o
 obj-$(CONFIG_S3C24X0_SERIAL) += serial_s3c24x0.o
drivers/serial/serial_pl01x.c +162 -138

380 lines not on this page · raw message

drivers/serial/serial_pl01x_internal.h renamed from drivers/serial/serial_pl01x.h +0 -0
similarity index 100%
rename from drivers/serial/serial_pl01x.h
rename to drivers/serial/serial_pl01x_internal.h
include/serial_pl01x.h new file +27 -0
new file mode 100644
index 0000000..5e068f3
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2014 Google, Inc
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#ifndef __serial_pl01x_h
+#define __serial_pl01x_h
+
+enum pl01x_type {
+	TYPE_PL010,
+	TYPE_PL011,
+};
+
+/*
+ *Information about a serial port
+ *
+ * @base: Register base address
+ * @type: Port type
+ * @clock: Input clock rate, used for calculating the baud rate divisor
+ */
+struct pl01x_serial_platdata {
+	unsigned long base;
+	enum pl01x_type type;
+	unsigned int clock;
+};
+
+#endif
Signature · 1 line
2.1.0.rc2.206.gedb03e5
#6 lore raw

PATCH 2/4 dm: serial: Tidy up the pl01x driver

Quoted 17 lines · Simon Glass

Adjust the driver so that leaf functions take a pointer to the serial port register base. Put all the global configuration in the init function, and use the same settings from then on.

This makes it much easier to move to driver model without duplicating the code, since with driver model we use platform data rather than global settings.

The driver is compiled with either the CONFIG_PL010_SERIAL or CONFIG_PL011_SERIAL option and this determines the uart type. With driver model this needs to come in from platform data, so create a new CONFIG_PL01X_SERIAL config which brings in the driver, and adjust the driver to support both peripheral variants.

---

Quoted 8 lines
 drivers/serial/Makefile                            |   5 +-
 drivers/serial/serial_pl01x.c                      | 300 +++++++++++----------
 .../{serial_pl01x.h => serial_pl01x_internal.h}    |   0
 include/serial_pl01x.h                             |  27 ++
 4 files changed, 192 insertions(+), 140 deletions(-)
 rename drivers/serial/{serial_pl01x.h => serial_pl01x_internal.h} (100%)
 create mode 100644 include/serial_pl01x.h

Applied to u-boot-dm/master.

#7 lore raw

PATCH 2/4 dm: serial: Tidy up the pl01x driver

In reply to Simon Glass
Quoted 8 lines · Simon Glass

Adjust the driver so that leaf functions take a pointer to the serial port register base. Put all the global configuration in the init function, and use the same settings from then on.

This makes it much easier to move to driver model without duplicating the code, since with driver model we use platform data rather than global settings.

Quoted 7 lines

The driver is compiled with either the CONFIG_PL010_SERIAL or CONFIG_PL011_SERIAL option and this determines the uart type. With driver model this needs to come in from platform data, so create a new CONFIG_PL01X_SERIAL config which brings in the driver, and adjust the driver to support both peripheral variants.

Unfortunately this patch regresses PL010 (Integrator/AP), and I suspect it has never been tested on real-world PL010 hardware?

I'm hunting around to figure out what is causing it, any hints welcome.

Yours,
Linus Walleij

#8 lore raw

PATCH 2/4 dm: serial: Tidy up the pl01x driver

Quoted 16 lines · Linus Walleij
Quoted 14 lines · Simon Glass

Adjust the driver so that leaf functions take a pointer to the serial port register base. Put all the global configuration in the init function, and use the same settings from then on.

This makes it much easier to move to driver model without duplicating the code, since with driver model we use platform data rather than global settings.

The driver is compiled with either the CONFIG_PL010_SERIAL or CONFIG_PL011_SERIAL option and this determines the uart type. With driver model this needs to come in from platform data, so create a new CONFIG_PL01X_SERIAL config which brings in the driver, and adjust the driver to support both peripheral variants.

Quoted 6 lines
Quoted 1 line

Unfortunately this patch regresses PL010 (Integrator/AP), and I suspect it has never been tested on real-world PL010 hardware?

I'm hunting around to figure out what is causing it, any hints welcome.

FYI: U-Boot does come up, but trying to switch baudrate from the default 38400 to 115200 with set baudrate 115200 hangs, it's as if the change never hits the hardware so the routine looking for a CR after the baudrate switch just waits. If I switch the terminal back to 38400 and hit enter it goes through and works again, and U-Boot thinks it has successfully switched to 115200, while it hasn't, really.

Kind of frustrating since I upload kernels over the serial port :P

Yours,
Linus Walleij

#9 lore raw

PATCH 3/4 dm: serial: Support driver model in pl01x driver

In reply to Simon Glass

Add driver model support in this driver, using platform data provided by the board.

---

 drivers/serial/serial_pl01x.c | 73 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 73 insertions(+)
drivers/serial/serial_pl01x.c +73 -0
index 665a0e4..e6313ad 100644
@@ -12,6 +12,7 @@
 /* Simple U-Boot driver for the PrimeCell PL010/PL011 UARTs */
 
 #include <common.h>
+#include <dm.h>
 #include <errno.h>
 #include <watchdog.h>
 #include <asm/io.h>
@@ -20,12 +21,15 @@
 #include <linux/compiler.h>
 #include "serial_pl01x_internal.h"
 
+#ifndef CONFIG_DM_SERIAL
+
 static volatile unsigned char *const port[] = CONFIG_PL01x_PORTS;
 static enum pl01x_type pl01x_type __attribute__ ((section(".data")));
 static struct pl01x_regs *base_regs __attribute__ ((section(".data")));
 #define NUM_PORTS (sizeof(port)/sizeof(port[0]))
 
 DECLARE_GLOBAL_DATA_PTR;
+#endif
 
 static int pl01x_putc(struct pl01x_regs *regs, char c)
 {
@@ -274,3 +278,72 @@ __weak struct serial_device *default_serial_console(void)
 }
 
 #endif /* nCONFIG_DM_SERIAL */
+
+#ifdef CONFIG_DM_SERIAL
+
+struct pl01x_priv {
+	struct pl01x_regs *regs;
+	enum pl01x_type type;
+};
+
+static int pl01x_serial_setbrg(struct udevice *dev, int baudrate)
+{
+	struct pl01x_serial_platdata *plat = dev_get_platdata(dev);
+	struct pl01x_priv *priv = dev_get_priv(dev);
+
+	pl01x_generic_setbrg(priv->regs, priv->type, plat->clock, baudrate);
+
+	return 0;
+}
+
+static int pl01x_serial_probe(struct udevice *dev)
+{
+	struct pl01x_serial_platdata *plat = dev_get_platdata(dev);
+	struct pl01x_priv *priv = dev_get_priv(dev);
+
+	priv->regs = (struct pl01x_regs *)plat->base;
+	priv->type = plat->type;
+	return pl01x_generic_serial_init(priv->regs, priv->type);
+}
+
+static int pl01x_serial_getc(struct udevice *dev)
+{
+	struct pl01x_priv *priv = dev_get_priv(dev);
+
+	return pl01x_getc(priv->regs);
+}
+
+static int pl01x_serial_putc(struct udevice *dev, const char ch)
+{
+	struct pl01x_priv *priv = dev_get_priv(dev);
+
+	return pl01x_putc(priv->regs, ch);
+}
+
+static int pl01x_serial_pending(struct udevice *dev, bool input)
+{
+	struct pl01x_priv *priv = dev_get_priv(dev);
+	unsigned int fr = readl(&priv->regs->fr);
+
+	if (input)
+		return pl01x_tstc(priv->regs);
+	else
+		return fr & UART_PL01x_FR_TXFF ? 0 : 1;
+}
+
+static const struct dm_serial_ops pl01x_serial_ops = {
+	.putc = pl01x_serial_putc,
+	.pending = pl01x_serial_pending,
+	.getc = pl01x_serial_getc,
+	.setbrg = pl01x_serial_setbrg,
+};
+
+U_BOOT_DRIVER(serial_pl01x) = {
+	.name	= "serial_pl01x",
+	.id	= UCLASS_SERIAL,
+	.probe = pl01x_serial_probe,
+	.ops	= &pl01x_serial_ops,
+	.flags = DM_FLAG_PRE_RELOC,
+};
+
+#endif
Signature · 1 line
2.1.0.rc2.206.gedb03e5
#10 lore raw

PATCH 3/4 dm: serial: Support driver model in pl01x driver

Quoted 8 lines · Simon Glass

Add driver model support in this driver, using platform data provided by the board.

---

 drivers/serial/serial_pl01x.c | 73 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 73 insertions(+)

Applied to u-boot-dm/master.

#11 lore raw

PATCH 4/4 dm: rpi: Move serial to driver model

In reply to Simon Glass

Adjust the configuration to use the driver model version of the pl01x serial driver. Add the required platform data.

---

 board/raspberrypi/rpi_b/rpi_b.c | 12 ++++++++++++
 include/configs/rpi_b.h         |  6 +++---
 2 files changed, 15 insertions(+), 3 deletions(-)
board/raspberrypi/rpi_b/rpi_b.c +12 -0
index 447c940..d009abe 100644
@@ -20,6 +20,7 @@
 #include <fdt_support.h>
 #include <lcd.h>
 #include <mmc.h>
+#include <serial_pl01x.h>
 #include <asm/gpio.h>
 #include <asm/arch/mbox.h>
 #include <asm/arch/sdhci.h>
@@ -36,6 +37,17 @@ U_BOOT_DEVICE(bcm2835_gpios) = {
 	.platdata = &gpio_platdata,
 };
 
+static const struct pl01x_serial_platdata serial_platdata = {
+	.base = 0x20201000,
+	.type = TYPE_PL011,
+	.clock = 3000000,
+};
+
+U_BOOT_DEVICE(bcm2835_serials) = {
+	.name = "serial_pl01x",
+	.platdata = &serial_platdata,
+};
+
 struct msg_get_arm_mem {
 	struct bcm2835_mbox_hdr hdr;
 	struct bcm2835_mbox_tag_get_arm_mem get_arm_mem;
include/configs/rpi_b.h +3 -3
index d9475e9..42e3a63 100644
@@ -35,6 +35,7 @@
 #define CONFIG_DM
 #define CONFIG_CMD_DM
 #define CONFIG_DM_GPIO
+#define CONFIG_DM_SERIAL
 
 /* Memory layout */
 #define CONFIG_NR_DRAM_BANKS		1
@@ -52,6 +53,7 @@
 					 CONFIG_SYS_SDRAM_SIZE - \
 					 GENERATED_GBL_DATA_SIZE)
 #define CONFIG_SYS_MALLOC_LEN		SZ_4M
+#define CONFIG_SYS_MALLOC_F_LEN		(1 << 10)
 #define CONFIG_SYS_MEMTEST_START	0x00100000
 #define CONFIG_SYS_MEMTEST_END		0x00200000
 #define CONFIG_LOADADDR			0x00200000
@@ -83,9 +85,7 @@
 #define CONFIG_BCM2835_SDHCI
 
 /* Console UART */
-#define CONFIG_PL011_SERIAL
-#define CONFIG_PL011_CLOCK		3000000
-#define CONFIG_PL01x_PORTS		{ (void *)0x20201000 }
+#define CONFIG_PL01X_SERIAL
 #define CONFIG_CONS_INDEX		0
 #define CONFIG_BAUDRATE			115200
 
Signature · 1 line
2.1.0.rc2.206.gedb03e5
#12 lore raw

cover dm: rpi: Move Raspberry Pi to use driver model

In reply to Simon Glass
Quoted 8 lines · Simon Glass

This series adds driver model support to the GPIO and serial drivers used by Raspberry Pi, and moves Raspberry Pi over to driver model.

This requires adding driver model support to the pl01x serial driver, and replacing the bcm2835 GPIO driver with a driver model version (since there are no longer clients that don't use driver model).

See u-boot-dm.git branch rpi-working for the tree this is based on.

The series,

It threw me for a while that this series changes the command-line syntax from:

gpio input 18

to:

gpio input GPIO18

Hopefully that won't annoy anyone who has scripts that need to be modified... Still, that's quite minor, so the two RPi patches,

#13 lore raw

cover dm: rpi: Move Raspberry Pi to use driver model

Hi Stephen,

Quoted 18 lines · Stephen Warren
Quoted 8 lines · Simon Glass

This series adds driver model support to the GPIO and serial drivers used by Raspberry Pi, and moves Raspberry Pi over to driver model.

This requires adding driver model support to the pl01x serial driver, and replacing the bcm2835 GPIO driver with a driver model version (since there are no longer clients that don't use driver model).

See u-boot-dm.git branch rpi-working for the tree this is based on.

The series,

It threw me for a while that this series changes the command-line syntax from:

gpio input 18

Quoted 8 lines

to:

gpio input GPIO18

Hopefully that won't annoy anyone who has scripts that need to be modified... Still, that's quite minor, so the two RPi patches,

Thanks for looking at this. Re the issue you raise, there is a patch for this here, part of the omap3 series:

http://patchwork.ozlabs.org/patch/392039/

Regards,
Simon

#14 lore raw

cover dm: rpi: Move Raspberry Pi to use driver model

In reply to Stephen Warren
Quoted 4 lines · Stephen Warren
Quoted 3 lines · Simon Glass

This series adds driver model support to the GPIO and serial drivers used by Raspberry Pi, and moves Raspberry Pi over to driver model.

Quoted 8 lines
Quoted 5 lines

This requires adding driver model support to the pl01x serial driver, and replacing the bcm2835 GPIO driver with a driver model version (since there are no longer clients that don't use driver model).

See u-boot-dm.git branch rpi-working for the tree this is based on.

The series,

Hmm. I take that back. Patch 4 causes a problem, at least when applied on top of u-boot/master from today.

Basic serial output works just fine, and I can interact with U-Boot without issue. However, when the boot scripts execute and load an extlinux.conf, U-Boot hangs. Up to patch 3, everything is fine.

U-Boot 2014.10-00004-g7830ed7 (Oct 17 2014 - 20:47:19)

DRAM:  480 MiB
WARNING: Caches not enabled
MMC:   bcm2835_sdhci: 0

Using default environment

In:    serial
Out:   lcd
Err:   lcd

reading /uEnv.txt
24 bytes read in 14 ms (1000 Bytes/s)
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0...
Found /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
reading /extlinux/extlinux.conf
(U-Boot hangs here)

#15 lore raw

cover dm: rpi: Move Raspberry Pi to use driver model

Hi Stephen,

Quoted 31 lines · Stephen Warren
Quoted 4 lines · Stephen Warren
Quoted 3 lines · Simon Glass

This series adds driver model support to the GPIO and serial drivers used by Raspberry Pi, and moves Raspberry Pi over to driver model.

Quoted 8 lines
Quoted 5 lines

This requires adding driver model support to the pl01x serial driver, and replacing the bcm2835 GPIO driver with a driver model version (since there are no longer clients that don't use driver model).

See u-boot-dm.git branch rpi-working for the tree this is based on.

The series,

Hmm. I take that back. Patch 4 causes a problem, at least when applied on top of u-boot/master from today.

Basic serial output works just fine, and I can interact with U-Boot without issue. However, when the boot scripts execute and load an extlinux.conf, U-Boot hangs. Up to patch 3, everything is fine.

U-Boot 2014.10-00004-g7830ed7 (Oct 17 2014 - 20:47:19)

DRAM:  480 MiB
WARNING: Caches not enabled
MMC:   bcm2835_sdhci: 0

Using default environment

In:    serial
Out:   lcd
Err:   lcd
Quoted 11 lines

reading /uEnv.txt
24 bytes read in 14 ms (1000 Bytes/s)
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0...
Found /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
reading /extlinux/extlinux.conf
(U-Boot hangs here)

Can you please point me to where I can get an image to try this with? Also did you check with dm/next? There may be dependent patches, although the nature of the problem suggests not.

Regards,
Simon

#16 lore raw

cover dm: rpi: Move Raspberry Pi to use driver model

Quoted 46 lines · Simon Glass

Hi Stephen,

Quoted 31 lines · Stephen Warren
Quoted 4 lines · Stephen Warren
Quoted 3 lines · Simon Glass

This series adds driver model support to the GPIO and serial drivers used by Raspberry Pi, and moves Raspberry Pi over to driver model.

Quoted 8 lines
Quoted 5 lines

This requires adding driver model support to the pl01x serial driver, and replacing the bcm2835 GPIO driver with a driver model version (since there are no longer clients that don't use driver model).

See u-boot-dm.git branch rpi-working for the tree this is based on.

The series,

Hmm. I take that back. Patch 4 causes a problem, at least when applied on top of u-boot/master from today.

Basic serial output works just fine, and I can interact with U-Boot without issue. However, when the boot scripts execute and load an extlinux.conf, U-Boot hangs. Up to patch 3, everything is fine.

U-Boot 2014.10-00004-g7830ed7 (Oct 17 2014 - 20:47:19)

DRAM:  480 MiB
WARNING: Caches not enabled
MMC:   bcm2835_sdhci: 0

Using default environment

In:    serial
Out:   lcd
Err:   lcd
Quoted 11 lines

reading /uEnv.txt
24 bytes read in 14 ms (1000 Bytes/s)
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0...
Found /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
reading /extlinux/extlinux.conf
(U-Boot hangs here)

Quoted 3 lines

Can you please point me to where I can get an image to try this with? Also did you check with dm/next? There may be dependent patches, although the nature of the problem suggests not.

I use (a pretty old version of, but I doubt that matters) RPi Foundation's Raspbian image, and compiled the kernel and U-Boot according to:

http://elinux.org/index.php?title=RPi_Upstream_Kernel_Compilation&oldid=351104

http://elinux.org/RPi_U-Boot

#17 lore raw

cover dm: rpi: Move Raspberry Pi to use driver model

Hi Stephen,

Quoted 51 lines · Stephen Warren
Quoted 46 lines · Simon Glass

Hi Stephen,

Quoted 31 lines · Stephen Warren
Quoted 4 lines · Stephen Warren
Quoted 3 lines · Simon Glass

This series adds driver model support to the GPIO and serial drivers used by Raspberry Pi, and moves Raspberry Pi over to driver model.

Quoted 8 lines
Quoted 5 lines

This requires adding driver model support to the pl01x serial driver, and replacing the bcm2835 GPIO driver with a driver model version (since there are no longer clients that don't use driver model).

See u-boot-dm.git branch rpi-working for the tree this is based on.

The series,

Hmm. I take that back. Patch 4 causes a problem, at least when applied on top of u-boot/master from today.

Basic serial output works just fine, and I can interact with U-Boot without issue. However, when the boot scripts execute and load an extlinux.conf, U-Boot hangs. Up to patch 3, everything is fine.

U-Boot 2014.10-00004-g7830ed7 (Oct 17 2014 - 20:47:19)

DRAM:  480 MiB
WARNING: Caches not enabled
MMC:   bcm2835_sdhci: 0

Using default environment

In:    serial
Out:   lcd
Err:   lcd
Quoted 11 lines

reading /uEnv.txt
24 bytes read in 14 ms (1000 Bytes/s)
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0...
Found /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
reading /extlinux/extlinux.conf
(U-Boot hangs here)

Quoted 3 lines

Can you please point me to where I can get an image to try this with? Also did you check with dm/next? There may be dependent patches, although the nature of the problem suggests not.

Quoted 8 lines

I use (a pretty old version of, but I doubt that matters) RPi Foundation's Raspbian image, and compiled the kernel and U-Boot according to:

http://elinux.org/index.php?title=RPi_Upstream_Kernel_Compilation&oldid=351104

http://elinux.org/RPi_U-Boot

I installed the Raspbian image but I don't get uImg.txt nor the same boot sequence. I am able to boot a kernel though.

Do you have your settings or images uploaded somewhere? Also please confirm you used dm/next.

Regards,
Simon

#18 lore raw

cover dm: rpi: Move Raspberry Pi to use driver model

Hi Stephen,

Quoted 60 lines · Simon Glass

Hi Stephen,

Quoted 57 lines · Stephen Warren
Quoted 46 lines · Simon Glass

Hi Stephen,

Quoted 31 lines · Stephen Warren
Quoted 4 lines · Stephen Warren
Quoted 3 lines · Simon Glass

This series adds driver model support to the GPIO and serial drivers used by Raspberry Pi, and moves Raspberry Pi over to driver model.

Quoted 8 lines
Quoted 5 lines

This requires adding driver model support to the pl01x serial driver, and replacing the bcm2835 GPIO driver with a driver model version (since there are no longer clients that don't use driver model).

See u-boot-dm.git branch rpi-working for the tree this is based on.

The series,

Hmm. I take that back. Patch 4 causes a problem, at least when applied on top of u-boot/master from today.

Basic serial output works just fine, and I can interact with U-Boot without issue. However, when the boot scripts execute and load an extlinux.conf, U-Boot hangs. Up to patch 3, everything is fine.

U-Boot 2014.10-00004-g7830ed7 (Oct 17 2014 - 20:47:19)

DRAM:  480 MiB
WARNING: Caches not enabled
MMC:   bcm2835_sdhci: 0

Using default environment

In:    serial
Out:   lcd
Err:   lcd
Quoted 11 lines

reading /uEnv.txt
24 bytes read in 14 ms (1000 Bytes/s)
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0...
Found /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
reading /extlinux/extlinux.conf
(U-Boot hangs here)

Quoted 3 lines

Can you please point me to where I can get an image to try this with? Also did you check with dm/next? There may be dependent patches, although the nature of the problem suggests not.

I use (a pretty old version of, but I doubt that matters) RPi Foundation's Raspbian image, and compiled the kernel and U-Boot according to:

http://elinux.org/index.php?title=RPi_Upstream_Kernel_Compilation&oldid=351104

Quoted 8 lines
Quoted 2 lines

http://elinux.org/RPi_U-Boot

I installed the Raspbian image but I don't get uImg.txt nor the same boot sequence. I am able to boot a kernel though.

Do you have your settings or images uploaded somewhere? Also please confirm you used dm/next.

I've had to leave this last (4/4) patch out of the pull request for now. See u-boot-dm/rpi_working if you would like to try it again.

Regards,
Simon

#19 lore raw

cover dm: rpi: Move Raspberry Pi to use driver model

In reply to Simon Glass
Quoted 58 lines · Simon Glass

Hi Stephen,

Quoted 55 lines · Stephen Warren
Quoted 46 lines · Simon Glass

Hi Stephen,

Quoted 31 lines · Stephen Warren
Quoted 4 lines · Stephen Warren
Quoted 3 lines · Simon Glass

This series adds driver model support to the GPIO and serial drivers used by Raspberry Pi, and moves Raspberry Pi over to driver model.

Quoted 8 lines
Quoted 5 lines

This requires adding driver model support to the pl01x serial driver, and replacing the bcm2835 GPIO driver with a driver model version (since there are no longer clients that don't use driver model).

See u-boot-dm.git branch rpi-working for the tree this is based on.

The series,

Hmm. I take that back. Patch 4 causes a problem, at least when applied on top of u-boot/master from today.

Basic serial output works just fine, and I can interact with U-Boot without issue. However, when the boot scripts execute and load an extlinux.conf, U-Boot hangs. Up to patch 3, everything is fine.

U-Boot 2014.10-00004-g7830ed7 (Oct 17 2014 - 20:47:19)

DRAM:  480 MiB
WARNING: Caches not enabled
MMC:   bcm2835_sdhci: 0

Using default environment

In:    serial
Out:   lcd
Err:   lcd
Quoted 11 lines

reading /uEnv.txt
24 bytes read in 14 ms (1000 Bytes/s)
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0...
Found /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
reading /extlinux/extlinux.conf
(U-Boot hangs here)

Quoted 3 lines

Can you please point me to where I can get an image to try this with? Also did you check with dm/next? There may be dependent patches, although the nature of the problem suggests not.

I use (a pretty old version of, but I doubt that matters) RPi Foundation's Raspbian image, and compiled the kernel and U-Boot according to:

Quoted 7 lines
Quoted 4 lines

http://elinux.org/index.php?title=RPi_Upstream_Kernel_Compilation&oldid=351104

http://elinux.org/RPi_U-Boot

I installed the Raspbian image but I don't get uImg.txt nor the same boot sequence. I am able to boot a kernel though.

The RPi Foundation images boot their kernel directly from their binary firmware, and hence don't include any U-Boot or U-Boot boot scripts.

I haven't used boot.scr for a while, but this is apparently what's in mine:

load ${devtype} ${devnum}:1 ${kernel_addr_r} /zImage
load ${devtype} ${devnum}:1 ${fdt_addr_r} /${fdtfile} setenv bootargs "earlyprintk loglevel=8 console=ttyAMA0 console=tty1 \
verbose rootwait root=/dev/mmcblk0p2 rw"
bootz ${kernel_addr_r} - ${fdt_addr_r}

I use extlinux/extlinux.conf now, with the following content:

TIMEOUT 100
DEFAULT default
MENU TITLE Boot menu

LABEL default
MENU LABEL Default kernel
LINUX ../zImage
FDTDIR ../
APPEND earlyprintk loglevel=8 console=ttyAMA0 console=tty1 verbose \
rootwait root=/dev/mmcblk0p2 rw

LABEL fallback
MENU LABEL Backup kernel
LINUX ../backup/zImage
FDTDIR ../backup/
APPEND earlyprintk loglevel=8 console=ttyAMA0 console=tty1 verbose \
rootwait root=/dev/mmcblk0p2 rw

(in both cases, the continuation lines are all on one line; I only split them for email purposes)

#20 lore raw

cover dm: rpi: Move Raspberry Pi to use driver model

In reply to Simon Glass
Quoted 60 lines · Simon Glass

Hi Stephen,

Quoted 57 lines · Stephen Warren
Quoted 46 lines · Simon Glass

Hi Stephen,

Quoted 31 lines · Stephen Warren
Quoted 4 lines · Stephen Warren
Quoted 3 lines · Simon Glass

This series adds driver model support to the GPIO and serial drivers used by Raspberry Pi, and moves Raspberry Pi over to driver model.

Quoted 8 lines
Quoted 5 lines

This requires adding driver model support to the pl01x serial driver, and replacing the bcm2835 GPIO driver with a driver model version (since there are no longer clients that don't use driver model).

See u-boot-dm.git branch rpi-working for the tree this is based on.

The series,

Hmm. I take that back. Patch 4 causes a problem, at least when applied on top of u-boot/master from today.

Basic serial output works just fine, and I can interact with U-Boot without issue. However, when the boot scripts execute and load an extlinux.conf, U-Boot hangs. Up to patch 3, everything is fine.

U-Boot 2014.10-00004-g7830ed7 (Oct 17 2014 - 20:47:19)

DRAM:  480 MiB
WARNING: Caches not enabled
MMC:   bcm2835_sdhci: 0

Using default environment

In:    serial
Out:   lcd
Err:   lcd
Quoted 11 lines

reading /uEnv.txt
24 bytes read in 14 ms (1000 Bytes/s)
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0...
Found /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
reading /extlinux/extlinux.conf
(U-Boot hangs here)

Quoted 3 lines

Can you please point me to where I can get an image to try this with? Also did you check with dm/next? There may be dependent patches, although the nature of the problem suggests not.

I use (a pretty old version of, but I doubt that matters) RPi Foundation's Raspbian image, and compiled the kernel and U-Boot according to:

http://elinux.org/index.php?title=RPi_Upstream_Kernel_Compilation&oldid=351104

Quoted 8 lines
Quoted 2 lines

http://elinux.org/RPi_U-Boot

I installed the Raspbian image but I don't get uImg.txt nor the same boot sequence. I am able to boot a kernel though.

Do you have your settings or images uploaded somewhere? Also please confirm you used dm/next.

FWIW, the content in the following branches does seem to work:

u-boot/master
5b3ee38 kbuild: clear VENDOR variable to fix build error on tcsh

u-boot-dm/master
c2ded96 serial: remove uniphier_serial_initialize() call

author Applied
#21 lore raw

cover dm: rpi: Move Raspberry Pi to use driver model

Hi Stephen,

Quoted 9 lines · Stephen Warren
Quoted 7 lines · Simon Glass

Hi Stephen,

Quoted 4 lines · Stephen Warren
Quoted 3 lines · Simon Glass

Hi Stephen,

On 17 October 2014 20:51, Stephen Warren <[email protected]>

Quoted 3 lines · wrote:
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines · Stephen Warren
Quoted 2 lines · Simon Glass
Quoted 1 line

This series adds driver model support to the GPIO and serial

drivers used

Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines

by Raspberry Pi, and moves Raspberry Pi over to driver model.

This requires adding driver model support to the pl01x serial

driver, and

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

replacing the bcm2835 GPIO driver with a driver model version

(since there

Quoted 8 lines
Quoted 8 lines
Quoted 8 lines
Quoted 8 lines
Quoted 8 lines
Quoted 6 lines
Quoted 3 lines

are no longer clients that don't use driver model).

See u-boot-dm.git branch rpi-working for the tree this is based on.

The series,

Hmm. I take that back. Patch 4 causes a problem, at least when

applied

Quoted 32 lines
Quoted 32 lines
Quoted 32 lines
Quoted 31 lines
Quoted 16 lines

on top of u-boot/master from today.

Basic serial output works just fine, and I can interact with U-Boot without issue. However, when the boot scripts execute and load an extlinux.conf, U-Boot hangs. Up to patch 3, everything is fine.

U-Boot 2014.10-00004-g7830ed7 (Oct 17 2014 - 20:47:19)

DRAM:  480 MiB
WARNING: Caches not enabled
MMC:   bcm2835_sdhci: 0

Using default environment

In:    serial
Out:   lcd
Err:   lcd
Quoted 11 lines

reading /uEnv.txt
24 bytes read in 14 ms (1000 Bytes/s)
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0...
Found /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
reading /extlinux/extlinux.conf
(U-Boot hangs here)

Can you please point me to where I can get an image to try this with? Also did you check with dm/next? There may be dependent patches, although the nature of the problem suggests not.

Quoted 5 lines
Quoted 5 lines
Quoted 5 lines

I use (a pretty old version of, but I doubt that matters) RPi Foundation's Raspbian image, and compiled the kernel and U-Boot according to:

http://elinux.org/index.php?title=RPi_Upstream_Kernel_Compilation&oldid=351104

Quoted 10 lines
Quoted 9 lines
Quoted 3 lines

http://elinux.org/RPi_U-Boot

I installed the Raspbian image but I don't get uImg.txt nor the same boot sequence. I am able to boot a kernel though.

Do you have your settings or images uploaded somewhere? Also please confirm you used dm/next.

Quoted 8 lines

FWIW, the content in the following branches does seem to work:

u-boot/master
5b3ee38 kbuild: clear VENDOR variable to fix build error on tcsh

u-boot-dm/master
c2ded96 serial: remove uniphier_serial_initialize() call

In what way?

Regards,
Simon

#22 lore raw

cover dm: rpi: Move Raspberry Pi to use driver model

Quoted 85 lines · Simon Glass

Hi Stephen,

Quoted 5 lines · On Oct 25, 2014 9:43 PM, "Stephen Warren" <[email protected]…
Quoted 3 lines · Simon Glass

Hi Stephen,

On 20 October 2014 20:23, Stephen Warren <[email protected]

Quoted 4 lines · <mailto:[email protected]>> wrote:
Quoted 4 lines
Quoted 4 lines · Simon Glass
Quoted 3 lines

Hi Stephen,

On 17 October 2014 20:51, Stephen Warren <[email protected]

Quoted 3 lines · <mailto:[email protected]>> wrote:
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines · Stephen Warren
Quoted 2 lines · Simon Glass
Quoted 1 line

This series adds driver model support to the GPIO and serial

drivers used

Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines

by Raspberry Pi, and moves Raspberry Pi over to driver model.

This requires adding driver model support to the pl01x serial

driver, and

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

replacing the bcm2835 GPIO driver with a driver model version

(since there

Quoted 6 lines
Quoted 6 lines
Quoted 6 lines
Quoted 6 lines
Quoted 6 lines
Quoted 6 lines
Quoted 3 lines

are no longer clients that don't use driver model).

See u-boot-dm.git branch rpi-working for the tree this is based on.

The series,

<mailto:[email protected]>>

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

Hmm. I take that back. Patch 4 causes a problem, at least when

applied

Quoted 32 lines
Quoted 32 lines
Quoted 32 lines
Quoted 31 lines
Quoted 16 lines

on top of u-boot/master from today.

Basic serial output works just fine, and I can interact with U-Boot without issue. However, when the boot scripts execute and load an extlinux.conf, U-Boot hangs. Up to patch 3, everything is fine.

U-Boot 2014.10-00004-g7830ed7 (Oct 17 2014 - 20:47:19)

DRAM:  480 MiB
WARNING: Caches not enabled
MMC:   bcm2835_sdhci: 0

Using default environment

In:    serial
Out:   lcd
Err:   lcd
Quoted 11 lines

reading /uEnv.txt
24 bytes read in 14 ms (1000 Bytes/s)
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0...
Found /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
reading /extlinux/extlinux.conf
(U-Boot hangs here)

Can you please point me to where I can get an image to try this with? Also did you check with dm/next? There may be dependent patches, although the nature of the problem suggests not.

Quoted 5 lines
Quoted 5 lines
Quoted 5 lines

I use (a pretty old version of, but I doubt that matters) RPi Foundation's Raspbian image, and compiled the kernel and U-Boot according to:

http://elinux.org/index.php?title=RPi_Upstream_Kernel_Compilation&oldid=351104

Quoted 12 lines
Quoted 9 lines
Quoted 3 lines

http://elinux.org/RPi_U-Boot

I installed the Raspbian image but I don't get uImg.txt nor the same boot sequence. I am able to boot a kernel though.

Do you have your settings or images uploaded somewhere? Also please confirm you used dm/next.

FWIW, the content in the following branches does seem to work:

Quoted 8 lines
Quoted 6 lines

u-boot/master
5b3ee38 kbuild: clear VENDOR variable to fix build error on tcsh

u-boot-dm/master
c2ded96 serial: remove uniphier_serial_initialize() call

In what way?

I ran U-Boot, and let it boot a kernel via extlinux.conf.

Note that I said it worked, not that it failed.

#23 lore raw

cover dm: rpi: Move Raspberry Pi to use driver model

Hi Stephen,

Quoted 23 lines · Stephen Warren
Quoted 21 lines · Simon Glass

Hi Stephen,

Quoted 5 lines · On Oct 25, 2014 9:43 PM, "Stephen Warren" <[email protected]…
Quoted 3 lines · Simon Glass

Hi Stephen,

On 20 October 2014 20:23, Stephen Warren <[email protected]

Quoted 4 lines · <mailto:[email protected]>> wrote:
Quoted 4 lines
Quoted 4 lines · Simon Glass
Quoted 3 lines

Hi Stephen,

On 17 October 2014 20:51, Stephen Warren <[email protected]

Quoted 3 lines · <mailto:[email protected]>> wrote:
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines · Stephen Warren
Quoted 2 lines · Simon Glass
Quoted 1 line

This series adds driver model support to the GPIO and serial

drivers used

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

by Raspberry Pi, and moves Raspberry Pi over to driver model.

Quoted 7 lines
Quoted 7 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

This requires adding driver model support to the pl01x serial

driver, and

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

replacing the bcm2835 GPIO driver with a driver model version

(since there

Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines

are no longer clients that don't use driver model).

See u-boot-dm.git branch rpi-working for the tree this is based

on.

Quoted 10 lines
Quoted 10 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines

The series,

<mailto:[email protected]>>

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

Hmm. I take that back. Patch 4 causes a problem, at least when

applied

Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines

on top of u-boot/master from today.

Basic serial output works just fine, and I can interact with

U-Boot

Quoted 25 lines
Quoted 25 lines
Quoted 25 lines
Quoted 25 lines
Quoted 25 lines
Quoted 25 lines
Quoted 24 lines

without issue. However, when the boot scripts execute and load an extlinux.conf, U-Boot hangs. Up to patch 3, everything is fine.

U-Boot 2014.10-00004-g7830ed7 (Oct 17 2014 - 20:47:19)

DRAM:  480 MiB
WARNING: Caches not enabled
MMC:   bcm2835_sdhci: 0

Using default environment

In:    serial
Out:   lcd
Err:   lcd

reading /uEnv.txt
24 bytes read in 14 ms (1000 Bytes/s)
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0...
Found /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
reading /extlinux/extlinux.conf
(U-Boot hangs here)

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

Can you please point me to where I can get an image to try this

with?

Quoted 9 lines
Quoted 9 lines
Quoted 8 lines
Quoted 8 lines
Quoted 8 lines
Quoted 2 lines

Also did you check with dm/next? There may be dependent patches, although the nature of the problem suggests not.

I use (a pretty old version of, but I doubt that matters) RPi Foundation's Raspbian image, and compiled the kernel and U-Boot according to:

http://elinux.org/index.php?title=RPi_Upstream_Kernel_Compilation&oldid=351104

Quoted 15 lines
Quoted 15 lines
Quoted 15 lines
Quoted 9 lines
Quoted 3 lines

http://elinux.org/RPi_U-Boot

I installed the Raspbian image but I don't get uImg.txt nor the same boot sequence. I am able to boot a kernel though.

Do you have your settings or images uploaded somewhere? Also please confirm you used dm/next.

FWIW, the content in the following branches does seem to work:

u-boot/master
5b3ee38 kbuild: clear VENDOR variable to fix build error on tcsh

Quoted 7 lines
Quoted 5 lines
Quoted 3 lines

u-boot-dm/master
c2ded96 serial: remove uniphier_serial_initialize() call

In what way?

I ran U-Boot, and let it boot a kernel via extlinux.conf.

Ok that is probably just because I didn't pull in the patch you said was a problem.

Quoted 2 lines

Note that I said it worked, not that it failed.

I did misread this...

Regards,
Simon

#24 lore raw

cover dm: rpi: Move Raspberry Pi to use driver model

Hi,

Quoted 109 lines · Simon Glass

Hi Stephen,

Quoted 94 lines · Stephen Warren
Quoted 92 lines · Simon Glass

Hi Stephen,

Quoted 5 lines · On Oct 25, 2014 9:43 PM, "Stephen Warren" <[email protected]…
Quoted 3 lines · Simon Glass

Hi Stephen,

On 20 October 2014 20:23, Stephen Warren <[email protected]

Quoted 4 lines · <mailto:[email protected]>> wrote:
Quoted 4 lines
Quoted 4 lines · Simon Glass
Quoted 3 lines

Hi Stephen,

On 17 October 2014 20:51, Stephen Warren <[email protected]

Quoted 3 lines · <mailto:[email protected]>> wrote:
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines · Stephen Warren
Quoted 2 lines · Simon Glass
Quoted 1 line

This series adds driver model support to the GPIO and serial

drivers used

Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines

by Raspberry Pi, and moves Raspberry Pi over to driver model.

This requires adding driver model support to the pl01x serial

driver, and

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

replacing the bcm2835 GPIO driver with a driver model version

(since there

Quoted 7 lines
Quoted 7 lines
Quoted 7 lines
Quoted 7 lines
Quoted 7 lines
Quoted 7 lines
Quoted 4 lines

are no longer clients that don't use driver model).

See u-boot-dm.git branch rpi-working for the tree this is based on.

The series,

<mailto:[email protected]>>

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

Hmm. I take that back. Patch 4 causes a problem, at least when

applied

Quoted 34 lines
Quoted 34 lines
Quoted 34 lines
Quoted 33 lines
Quoted 17 lines

on top of u-boot/master from today.

Basic serial output works just fine, and I can interact with U-Boot
without issue. However, when the boot scripts execute and load an extlinux.conf, U-Boot hangs. Up to patch 3, everything is fine.

U-Boot 2014.10-00004-g7830ed7 (Oct 17 2014 - 20:47:19)

DRAM:  480 MiB
WARNING: Caches not enabled
MMC:   bcm2835_sdhci: 0

Using default environment

In:    serial
Out:   lcd
Err:   lcd
Quoted 11 lines

reading /uEnv.txt
24 bytes read in 14 ms (1000 Bytes/s)
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0...
Found /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
reading /extlinux/extlinux.conf
(U-Boot hangs here)

Can you please point me to where I can get an image to try this with?
Also did you check with dm/next? There may be dependent patches, although the nature of the problem suggests not.

Quoted 5 lines
Quoted 5 lines
Quoted 5 lines

I use (a pretty old version of, but I doubt that matters) RPi Foundation's Raspbian image, and compiled the kernel and U-Boot according to:

http://elinux.org/index.php?title=RPi_Upstream_Kernel_Compilation&oldid=351104

Quoted 15 lines
Quoted 9 lines
Quoted 3 lines

http://elinux.org/RPi_U-Boot

I installed the Raspbian image but I don't get uImg.txt nor the same boot sequence. I am able to boot a kernel though.

Do you have your settings or images uploaded somewhere? Also please confirm you used dm/next.

FWIW, the content in the following branches does seem to work:

u-boot/master
5b3ee38 kbuild: clear VENDOR variable to fix build error on tcsh

Quoted 7 lines
Quoted 5 lines
Quoted 3 lines

u-boot-dm/master
c2ded96 serial: remove uniphier_serial_initialize() call

In what way?

I ran U-Boot, and let it boot a kernel via extlinux.conf.

Ok that is probably just because I didn't pull in the patch you said was a problem.

Quoted 1 line
Quoted 6 lines
Quoted 1 line

Note that I said it worked, not that it failed.

I did misread this...

Regards,
Simon

I started a new thread here:

http://u-boot.10912.n7.nabble.com/Raspberry-Pi-with-driver-model-td197255.html

Regards,
Simon