* [U-Boot] [PATCH v1 02/07] db410c: update wlan and bt mac addresses from firmware
2018-01-10 10:34 [U-Boot] [PATCH v1 01/07] db410c: configs: increase gunzip buffer size for the kernel Jorge Ramirez-Ortiz
@ 2018-01-10 10:34 ` Jorge Ramirez-Ortiz
2018-01-15 21:43 ` [U-Boot] [U-Boot, v1, " Tom Rini
2018-01-10 10:34 ` [U-Boot] [PATCH v1 03/07] db410c: replace reset driver with psci Jorge Ramirez-Ortiz
` (5 subsequent siblings)
6 siblings, 1 reply; 14+ messages in thread
From: Jorge Ramirez-Ortiz @ 2018-01-10 10:34 UTC (permalink / raw)
To: u-boot
From: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
The firmware that runs before u-boot modifies u-boot's device tree
adding the local-mac-address and local-bd-address properties for the
compatibles "qcom,wcnss-bt" and "qcom,wcnss-wlan".
This commit reads that firmware, retrieves the properties and fixups
the device tree that is passed to the kernel before booting.
Signed-off-by: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
---
arch/arm/dts/dragonboard410c.dts | 10 +++++
board/qualcomm/dragonboard410c/Makefile | 1 +
board/qualcomm/dragonboard410c/dragonboard410c.c | 49 +++++++++++++++++++++---
board/qualcomm/dragonboard410c/lowlevel_init.S | 28 ++++++++++++++
configs/dragonboard410c_defconfig | 3 ++
5 files changed, 85 insertions(+), 6 deletions(-)
create mode 100644 board/qualcomm/dragonboard410c/lowlevel_init.S
diff --git a/arch/arm/dts/dragonboard410c.dts b/arch/arm/dts/dragonboard410c.dts
index 7746622..25aeac4 100644
--- a/arch/arm/dts/dragonboard410c.dts
+++ b/arch/arm/dts/dragonboard410c.dts
@@ -86,6 +86,16 @@
clock-frequency = <200000000>;
};
+ wcnss {
+ bt {
+ compatible="qcom,wcnss-bt";
+ };
+
+ wifi {
+ compatible="qcom,wcnss-wlan";
+ };
+ };
+
spmi at 200f000 {
compatible = "qcom,spmi-pmic-arb";
reg = <0x200f800 0x200 0x2400000 0x400000 0x2c00000 0x400000>;
diff --git a/board/qualcomm/dragonboard410c/Makefile b/board/qualcomm/dragonboard410c/Makefile
index cd67808..5082383 100644
--- a/board/qualcomm/dragonboard410c/Makefile
+++ b/board/qualcomm/dragonboard410c/Makefile
@@ -5,4 +5,5 @@
#
obj-y := dragonboard410c.o
+obj-y += lowlevel_init.o
extra-y += head.o
diff --git a/board/qualcomm/dragonboard410c/dragonboard410c.c b/board/qualcomm/dragonboard410c/dragonboard410c.c
index 848e278..99fc91b 100644
--- a/board/qualcomm/dragonboard410c/dragonboard410c.c
+++ b/board/qualcomm/dragonboard410c/dragonboard410c.c
@@ -10,9 +10,16 @@
#include <dm.h>
#include <usb.h>
#include <asm/gpio.h>
+#include <fdt_support.h>
DECLARE_GLOBAL_DATA_PTR;
+/* pointer to the device tree ammended by the firmware */
+extern const void *fw_dtb;
+
+static char wlan_mac[ARP_HLEN];
+static char bt_mac[ARP_HLEN];
+
int dram_init(void)
{
gd->ram_size = PHYS_SDRAM_1_SIZE;
@@ -27,7 +34,6 @@ int dram_init_banksize(void)
return 0;
}
-
int board_prepare_usb(enum usb_init_type type)
{
static struct udevice *pmic_gpio;
@@ -96,11 +102,6 @@ int board_prepare_usb(enum usb_init_type type)
return 0;
}
-int board_init(void)
-{
- return 0;
-}
-
/* Check for vol- button - if pressed - stop autoboot */
int misc_init_r(void)
{
@@ -134,3 +135,39 @@ int misc_init_r(void)
return 0;
}
+
+int board_init(void)
+{
+ int offset, len;
+ const char *mac;
+
+ /* take a copy of the firmware information (the user could unknownly
+ overwrite that DDR via tftp or other means) */
+
+ offset = fdt_node_offset_by_compatible(fw_dtb, -1, "qcom,wcnss-wlan");
+ if (offset >= 0) {
+ mac = fdt_getprop(fw_dtb, offset, "local-mac-address", &len);
+ if (mac)
+ memcpy(wlan_mac, mac, ARP_HLEN);
+ }
+
+ offset = fdt_node_offset_by_compatible(fw_dtb, -1, "qcom,wcnss-bt");
+ if (offset >= 0) {
+ mac = fdt_getprop(fw_dtb, offset, "local-bd-address", &len);
+ if (mac)
+ memcpy(bt_mac, mac, ARP_HLEN);
+ }
+
+ return 0;
+}
+
+int ft_board_setup(void *blob, bd_t *bd)
+{
+ do_fixup_by_compat(blob, "qcom,wcnss-wlan", "local-mac-address",
+ wlan_mac, ARP_HLEN, 1);
+
+ do_fixup_by_compat(blob, "qcom,wcnss-bt", "local-bd-address",
+ bt_mac, ARP_HLEN, 1);
+
+ return 0;
+}
diff --git a/board/qualcomm/dragonboard410c/lowlevel_init.S b/board/qualcomm/dragonboard410c/lowlevel_init.S
new file mode 100644
index 0000000..15b2d0c
--- /dev/null
+++ b/board/qualcomm/dragonboard410c/lowlevel_init.S
@@ -0,0 +1,28 @@
+/*
+ * (C) Copyright 2016
+ * Cédric Schieli <cschieli@gmail.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <config.h>
+
+.align 8
+.global fw_dtb
+fw_dtb:
+ .dword 0x0
+
+/*
+ * Routine: save_boot_params (called after reset from start.S)
+ * Description: save ATAG/FDT address provided by the firmware at boot time
+ */
+
+.global save_boot_params
+save_boot_params:
+
+ /* The firmware provided ATAG/FDT address can be found in r2/x0 */
+ adr x8, fw_dtb
+ str x0, [x8]
+
+ /* Returns */
+ b save_boot_params_ret
diff --git a/configs/dragonboard410c_defconfig b/configs/dragonboard410c_defconfig
index b71bff7..cfe9be9 100644
--- a/configs/dragonboard410c_defconfig
+++ b/configs/dragonboard410c_defconfig
@@ -44,3 +44,6 @@ CONFIG_USB_ETHER_ASIX88179=y
CONFIG_USB_ETHER_MCS7830=y
CONFIG_USB_ETHER_SMSC95XX=y
CONFIG_OF_LIBFDT_OVERLAY=y
+CONFIG_OF_CONTROL=y
+CONFIG_ENV_IS_IN_MMC=y
+CONFIG_OF_BOARD_SETUP=y
--
2.7.4
^ permalink raw reply related [flat|nested] 14+ messages in thread* [U-Boot] [U-Boot, v1, 02/07] db410c: update wlan and bt mac addresses from firmware
2018-01-10 10:34 ` [U-Boot] [PATCH v1 02/07] db410c: update wlan and bt mac addresses from firmware Jorge Ramirez-Ortiz
@ 2018-01-15 21:43 ` Tom Rini
0 siblings, 0 replies; 14+ messages in thread
From: Tom Rini @ 2018-01-15 21:43 UTC (permalink / raw)
To: u-boot
On Wed, Jan 10, 2018 at 11:34:35AM +0100, Jorge Ramirez-Ortiz wrote:
> From: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
>
> The firmware that runs before u-boot modifies u-boot's device tree
> adding the local-mac-address and local-bd-address properties for the
> compatibles "qcom,wcnss-bt" and "qcom,wcnss-wlan".
>
> This commit reads that firmware, retrieves the properties and fixups
> the device tree that is passed to the kernel before booting.
>
> Signed-off-by: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
Applied to u-boot/master, thanks!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180115/d1ff3719/attachment.sig>
^ permalink raw reply [flat|nested] 14+ messages in thread
* [U-Boot] [PATCH v1 03/07] db410c: replace reset driver with psci
2018-01-10 10:34 [U-Boot] [PATCH v1 01/07] db410c: configs: increase gunzip buffer size for the kernel Jorge Ramirez-Ortiz
2018-01-10 10:34 ` [U-Boot] [PATCH v1 02/07] db410c: update wlan and bt mac addresses from firmware Jorge Ramirez-Ortiz
@ 2018-01-10 10:34 ` Jorge Ramirez-Ortiz
2018-01-15 21:43 ` [U-Boot] [U-Boot, v1, " Tom Rini
2018-01-10 10:34 ` [U-Boot] [PATCH v1 04/07] fdtdec: allow board to provide fdt for CONFIG_OF_SEPARATE Jorge Ramirez-Ortiz
` (4 subsequent siblings)
6 siblings, 1 reply; 14+ messages in thread
From: Jorge Ramirez-Ortiz @ 2018-01-10 10:34 UTC (permalink / raw)
To: u-boot
From: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
this should be the norm for armv8 platforms.
Signed-off-by: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
---
arch/arm/dts/dragonboard410c.dts | 5 ---
board/qualcomm/dragonboard410c/dragonboard410c.c | 5 +++
configs/dragonboard410c_defconfig | 2 +-
drivers/sysreset/Makefile | 2 --
drivers/sysreset/sysreset_snapdragon.c | 40 ------------------------
5 files changed, 6 insertions(+), 48 deletions(-)
delete mode 100644 drivers/sysreset/sysreset_snapdragon.c
diff --git a/arch/arm/dts/dragonboard410c.dts b/arch/arm/dts/dragonboard410c.dts
index 25aeac4..b67e588 100644
--- a/arch/arm/dts/dragonboard410c.dts
+++ b/arch/arm/dts/dragonboard410c.dts
@@ -48,11 +48,6 @@
clock = <&clkc 4>;
};
- restart at 4ab000 {
- compatible = "qcom,pshold";
- reg = <0x4ab000 0x4>;
- };
-
soc_gpios: pinctrl at 1000000 {
compatible = "qcom,apq8016-pinctrl";
reg = <0x1000000 0x300000>;
diff --git a/board/qualcomm/dragonboard410c/dragonboard410c.c b/board/qualcomm/dragonboard410c/dragonboard410c.c
index 99fc91b..8ef4338 100644
--- a/board/qualcomm/dragonboard410c/dragonboard410c.c
+++ b/board/qualcomm/dragonboard410c/dragonboard410c.c
@@ -171,3 +171,8 @@ int ft_board_setup(void *blob, bd_t *bd)
return 0;
}
+
+void reset_cpu(ulong addr)
+{
+ psci_system_reset();
+}
diff --git a/configs/dragonboard410c_defconfig b/configs/dragonboard410c_defconfig
index cfe9be9..de923ad 100644
--- a/configs/dragonboard410c_defconfig
+++ b/configs/dragonboard410c_defconfig
@@ -30,7 +30,6 @@ CONFIG_DM_PMIC=y
CONFIG_PMIC_PM8916=y
CONFIG_MSM_SERIAL=y
CONFIG_SPMI_MSM=y
-CONFIG_SYSRESET=y
CONFIG_USB=y
CONFIG_DM_USB=y
CONFIG_USB_EHCI_HCD=y
@@ -47,3 +46,4 @@ CONFIG_OF_LIBFDT_OVERLAY=y
CONFIG_OF_CONTROL=y
CONFIG_ENV_IS_IN_MMC=y
CONFIG_OF_BOARD_SETUP=y
+CONFIG_PSCI_RESET=y
diff --git a/drivers/sysreset/Makefile b/drivers/sysreset/Makefile
index 2e9598e..000c288 100644
--- a/drivers/sysreset/Makefile
+++ b/drivers/sysreset/Makefile
@@ -8,10 +8,8 @@ obj-$(CONFIG_SYSRESET) += sysreset-uclass.o
obj-$(CONFIG_SYSRESET_PSCI) += sysreset_psci.o
obj-$(CONFIG_SYSRESET_SYSCON) += sysreset_syscon.o
obj-$(CONFIG_SYSRESET_WATCHDOG) += sysreset_watchdog.o
-
obj-$(CONFIG_ARCH_ROCKCHIP) += sysreset_rockchip.o
obj-$(CONFIG_SANDBOX) += sysreset_sandbox.o
-obj-$(CONFIG_ARCH_SNAPDRAGON) += sysreset_snapdragon.o
obj-$(CONFIG_ARCH_STI) += sysreset_sti.o
obj-$(CONFIG_TARGET_XTFPGA) += sysreset_xtfpga.o
obj-$(CONFIG_ARCH_ASPEED) += sysreset_ast.o
diff --git a/drivers/sysreset/sysreset_snapdragon.c b/drivers/sysreset/sysreset_snapdragon.c
deleted file mode 100644
index 9869813..0000000
--- a/drivers/sysreset/sysreset_snapdragon.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Qualcomm APQ8016 reset controller driver
- *
- * (C) Copyright 2015 Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
- *
- * SPDX-License-Identifier: GPL-2.0+
- */
-
-#include <common.h>
-#include <dm.h>
-#include <errno.h>
-#include <sysreset.h>
-#include <asm/io.h>
-
-DECLARE_GLOBAL_DATA_PTR;
-
-static int msm_sysreset_request(struct udevice *dev, enum sysreset_t type)
-{
- phys_addr_t addr = devfdt_get_addr(dev);
- if (!addr)
- return -EINVAL;
- writel(0, addr);
- return -EINPROGRESS;
-}
-
-static struct sysreset_ops msm_sysreset_ops = {
- .request = msm_sysreset_request,
-};
-
-static const struct udevice_id msm_sysreset_ids[] = {
- { .compatible = "qcom,pshold" },
- { }
-};
-
-U_BOOT_DRIVER(msm_reset) = {
- .name = "msm_sysreset",
- .id = UCLASS_SYSRESET,
- .of_match = msm_sysreset_ids,
- .ops = &msm_sysreset_ops,
-};
--
2.7.4
^ permalink raw reply related [flat|nested] 14+ messages in thread* [U-Boot] [PATCH v1 04/07] fdtdec: allow board to provide fdt for CONFIG_OF_SEPARATE
2018-01-10 10:34 [U-Boot] [PATCH v1 01/07] db410c: configs: increase gunzip buffer size for the kernel Jorge Ramirez-Ortiz
2018-01-10 10:34 ` [U-Boot] [PATCH v1 02/07] db410c: update wlan and bt mac addresses from firmware Jorge Ramirez-Ortiz
2018-01-10 10:34 ` [U-Boot] [PATCH v1 03/07] db410c: replace reset driver with psci Jorge Ramirez-Ortiz
@ 2018-01-10 10:34 ` Jorge Ramirez-Ortiz
2018-01-15 21:43 ` [U-Boot] [U-Boot, v1, " Tom Rini
2018-01-10 10:34 ` [U-Boot] [PATCH v1 05/07] db410c: use the device tree parsed by the lk loader Jorge Ramirez-Ortiz
` (3 subsequent siblings)
6 siblings, 1 reply; 14+ messages in thread
From: Jorge Ramirez-Ortiz @ 2018-01-10 10:34 UTC (permalink / raw)
To: u-boot
From: Rob Clark <robdclark@gmail.com>
Similar to CONFIG_OF_BOARD, but in this case the fdt is still built by
u-boot build. This allows the board to patch the fdt, etc.
In the specific case of dragonboard 410c, we pass the u-boot generated
fdt to the previous stage of bootloader (by embedding it in the
u-boot.img that is loaded by lk/aboot), which patches the fdt and passes
it back to u-boot.
Signed-off-by: Rob Clark <robdclark@gmail.com>
---
include/fdtdec.h | 3 ++-
lib/fdtdec.c | 35 +++++++++++++++++++++++------------
2 files changed, 25 insertions(+), 13 deletions(-)
diff --git a/include/fdtdec.h b/include/fdtdec.h
index 0fb3e07..4afb9ac 100644
--- a/include/fdtdec.h
+++ b/include/fdtdec.h
@@ -990,7 +990,8 @@ int fdtdec_setup(void);
/**
* Board-specific FDT initialization. Returns the address to a device tree blob.
- * Called when CONFIG_OF_BOARD is defined.
+ * Called when CONFIG_OF_BOARD is defined, or if CONFIG_OF_SEPARATE is defined
+ * and the board implements it.
*/
void *board_fdt_blob_setup(void);
diff --git a/lib/fdtdec.c b/lib/fdtdec.c
index 30ec6b9..cc3dfd6 100644
--- a/lib/fdtdec.c
+++ b/lib/fdtdec.c
@@ -1272,6 +1272,28 @@ static int uncompress_blob(const void *src, ulong sz_src, void **dstp)
# endif
#endif
+#if CONFIG_IS_ENABLED(OF_SEPARATE)
+/*
+ * For CONFIG_OF_SEPARATE, the board may optionally implement this to
+ * provide and/or fixup the fdt.
+ */
+__weak void *board_fdt_blob_setup(void)
+{
+ void *fdt_blob = NULL;
+#ifdef CONFIG_SPL_BUILD
+ /* FDT is at end of BSS unless it is in a different memory region */
+ if (IS_ENABLED(CONFIG_SPL_SEPARATE_BSS))
+ fdt_blob = (ulong *)&_image_binary_end;
+ else
+ fdt_blob = (ulong *)&__bss_end;
+#else
+ /* FDT is at end of image */
+ fdt_blob = (ulong *)&_end;
+#endif
+ return fdt_blob;
+}
+#endif
+
int fdtdec_setup(void)
{
#if CONFIG_IS_ENABLED(OF_CONTROL)
@@ -1285,18 +1307,7 @@ int fdtdec_setup(void)
# else
gd->fdt_blob = __dtb_dt_begin;
# endif
-# elif defined CONFIG_OF_SEPARATE
-# ifdef CONFIG_SPL_BUILD
- /* FDT is at end of BSS unless it is in a different memory region */
- if (IS_ENABLED(CONFIG_SPL_SEPARATE_BSS))
- gd->fdt_blob = (ulong *)&_image_binary_end;
- else
- gd->fdt_blob = (ulong *)&__bss_end;
-# else
- /* FDT is at end of image */
- gd->fdt_blob = (ulong *)&_end;
-# endif
-# elif defined(CONFIG_OF_BOARD)
+# elif defined(CONFIG_OF_BOARD) || defined (CONFIG_OF_SEPARATE)
/* Allow the board to override the fdt address. */
gd->fdt_blob = board_fdt_blob_setup();
# elif defined(CONFIG_OF_HOSTFILE)
--
2.7.4
^ permalink raw reply related [flat|nested] 14+ messages in thread* [U-Boot] [U-Boot, v1, 04/07] fdtdec: allow board to provide fdt for CONFIG_OF_SEPARATE
2018-01-10 10:34 ` [U-Boot] [PATCH v1 04/07] fdtdec: allow board to provide fdt for CONFIG_OF_SEPARATE Jorge Ramirez-Ortiz
@ 2018-01-15 21:43 ` Tom Rini
0 siblings, 0 replies; 14+ messages in thread
From: Tom Rini @ 2018-01-15 21:43 UTC (permalink / raw)
To: u-boot
On Wed, Jan 10, 2018 at 11:34:37AM +0100, Jorge Ramirez-Ortiz wrote:
> From: Rob Clark <robdclark@gmail.com>
>
> Similar to CONFIG_OF_BOARD, but in this case the fdt is still built by
> u-boot build. This allows the board to patch the fdt, etc.
>
> In the specific case of dragonboard 410c, we pass the u-boot generated
> fdt to the previous stage of bootloader (by embedding it in the
> u-boot.img that is loaded by lk/aboot), which patches the fdt and passes
> it back to u-boot.
>
> Signed-off-by: Rob Clark <robdclark@gmail.com>
Applied to u-boot/master, thanks!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180115/8dcc4a35/attachment.sig>
^ permalink raw reply [flat|nested] 14+ messages in thread
* [U-Boot] [PATCH v1 05/07] db410c: use the device tree parsed by the lk loader.
2018-01-10 10:34 [U-Boot] [PATCH v1 01/07] db410c: configs: increase gunzip buffer size for the kernel Jorge Ramirez-Ortiz
` (2 preceding siblings ...)
2018-01-10 10:34 ` [U-Boot] [PATCH v1 04/07] fdtdec: allow board to provide fdt for CONFIG_OF_SEPARATE Jorge Ramirez-Ortiz
@ 2018-01-10 10:34 ` Jorge Ramirez-Ortiz
2018-01-15 21:43 ` [U-Boot] [U-Boot, v1, " Tom Rini
2018-01-10 10:34 ` [U-Boot] [PATCH v1 06/07] db410c: add reserved-memory node to dts Jorge Ramirez-Ortiz
` (2 subsequent siblings)
6 siblings, 1 reply; 14+ messages in thread
From: Jorge Ramirez-Ortiz @ 2018-01-10 10:34 UTC (permalink / raw)
To: u-boot
From: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
We dont need to keep copies of the properties that we are going to
fixup since we will be using the dtb provided by the firmware.
Signed-off-by: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
---
board/qualcomm/dragonboard410c/dragonboard410c.c | 71 ++++++++++++++----------
configs/dragonboard410c_defconfig | 1 +
2 files changed, 44 insertions(+), 28 deletions(-)
diff --git a/board/qualcomm/dragonboard410c/dragonboard410c.c b/board/qualcomm/dragonboard410c/dragonboard410c.c
index 8ef4338..236160a 100644
--- a/board/qualcomm/dragonboard410c/dragonboard410c.c
+++ b/board/qualcomm/dragonboard410c/dragonboard410c.c
@@ -15,14 +15,22 @@
DECLARE_GLOBAL_DATA_PTR;
/* pointer to the device tree ammended by the firmware */
-extern const void *fw_dtb;
+extern void *fw_dtb;
-static char wlan_mac[ARP_HLEN];
-static char bt_mac[ARP_HLEN];
+void *board_fdt_blob_setup(void)
+{
+ if (fdt_magic(fw_dtb) != FDT_MAGIC) {
+ printf("Firmware provided invalid dtb!\n");
+ return NULL;
+ }
+
+ return fw_dtb;
+}
int dram_init(void)
{
gd->ram_size = PHYS_SDRAM_1_SIZE;
+
return 0;
}
@@ -138,36 +146,43 @@ int misc_init_r(void)
int board_init(void)
{
- int offset, len;
- const char *mac;
-
- /* take a copy of the firmware information (the user could unknownly
- overwrite that DDR via tftp or other means) */
-
- offset = fdt_node_offset_by_compatible(fw_dtb, -1, "qcom,wcnss-wlan");
- if (offset >= 0) {
- mac = fdt_getprop(fw_dtb, offset, "local-mac-address", &len);
- if (mac)
- memcpy(wlan_mac, mac, ARP_HLEN);
- }
-
- offset = fdt_node_offset_by_compatible(fw_dtb, -1, "qcom,wcnss-bt");
- if (offset >= 0) {
- mac = fdt_getprop(fw_dtb, offset, "local-bd-address", &len);
- if (mac)
- memcpy(bt_mac, mac, ARP_HLEN);
- }
-
return 0;
}
int ft_board_setup(void *blob, bd_t *bd)
{
- do_fixup_by_compat(blob, "qcom,wcnss-wlan", "local-mac-address",
- wlan_mac, ARP_HLEN, 1);
-
- do_fixup_by_compat(blob, "qcom,wcnss-bt", "local-bd-address",
- bt_mac, ARP_HLEN, 1);
+ int offset, len, i;
+ const char *mac;
+ struct {
+ const char *compatible;
+ const char *property;
+ } fix[] = {
+ [0] = {
+ /* update the kernel's dtb with wlan mac */
+ .compatible = "qcom,wcnss-wlan",
+ .property = "local-mac-address",
+ },
+ [1] = {
+ /* update the kernel's dtb with bt mac */
+ .compatible = "qcom,wcnss-bt",
+ .property = "local-bd-address",
+ },
+ };
+
+ for ( i = 0; i < sizeof(fix)/sizeof(fix[0]); i++) {
+
+ offset = fdt_node_offset_by_compatible(gd->fdt_blob, -1,
+ fix[i].compatible);
+ if (offset < 0)
+ continue;
+
+ mac = fdt_getprop(gd->fdt_blob, offset, fix[i].property, &len);
+ if (mac)
+ do_fixup_by_compat(blob,
+ fix[i].compatible,
+ fix[i].property,
+ mac, ARP_HLEN, 1);
+ }
return 0;
}
diff --git a/configs/dragonboard410c_defconfig b/configs/dragonboard410c_defconfig
index de923ad..4389f52 100644
--- a/configs/dragonboard410c_defconfig
+++ b/configs/dragonboard410c_defconfig
@@ -47,3 +47,4 @@ CONFIG_OF_CONTROL=y
CONFIG_ENV_IS_IN_MMC=y
CONFIG_OF_BOARD_SETUP=y
CONFIG_PSCI_RESET=y
+CONFIG_OF_SEPARATE=y
--
2.7.4
^ permalink raw reply related [flat|nested] 14+ messages in thread* [U-Boot] [PATCH v1 06/07] db410c: add reserved-memory node to dts
2018-01-10 10:34 [U-Boot] [PATCH v1 01/07] db410c: configs: increase gunzip buffer size for the kernel Jorge Ramirez-Ortiz
` (3 preceding siblings ...)
2018-01-10 10:34 ` [U-Boot] [PATCH v1 05/07] db410c: use the device tree parsed by the lk loader Jorge Ramirez-Ortiz
@ 2018-01-10 10:34 ` Jorge Ramirez-Ortiz
2018-01-15 21:43 ` [U-Boot] [U-Boot, v1, " Tom Rini
2018-01-10 10:34 ` [U-Boot] [PATCH v1 07/07] db410c: on aarch64 the fdtfile is in per-vendor subdirectory Jorge Ramirez-Ortiz
2018-01-15 21:43 ` [U-Boot] [U-Boot, v1, 01/07] db410c: configs: increase gunzip buffer size for the kernel Tom Rini
6 siblings, 1 reply; 14+ messages in thread
From: Jorge Ramirez-Ortiz @ 2018-01-10 10:34 UTC (permalink / raw)
To: u-boot
From: Rob Clark <robdclark@gmail.com>
If lk lights up display and populates simple-framebuffer node, it will
also setup a reserved-memory node (needed by simplefb on linux). But
it isn't clever enough to cope when the reserved-memory node is not
present.
Signed-off-by: Rob Clark <robdclark@gmail.com>
---
arch/arm/dts/dragonboard410c.dts | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/arch/arm/dts/dragonboard410c.dts b/arch/arm/dts/dragonboard410c.dts
index b67e588..5ccfe7f 100644
--- a/arch/arm/dts/dragonboard410c.dts
+++ b/arch/arm/dts/dragonboard410c.dts
@@ -23,11 +23,16 @@
reg = <0 0x80000000 0 0x3da00000>;
};
+ reserved-memory {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+ };
+
chosen {
stdout-path = "/soc/serial at 78b0000";
};
-
soc {
#address-cells = <0x1>;
#size-cells = <0x1>;
--
2.7.4
^ permalink raw reply related [flat|nested] 14+ messages in thread* [U-Boot] [PATCH v1 07/07] db410c: on aarch64 the fdtfile is in per-vendor subdirectory
2018-01-10 10:34 [U-Boot] [PATCH v1 01/07] db410c: configs: increase gunzip buffer size for the kernel Jorge Ramirez-Ortiz
` (4 preceding siblings ...)
2018-01-10 10:34 ` [U-Boot] [PATCH v1 06/07] db410c: add reserved-memory node to dts Jorge Ramirez-Ortiz
@ 2018-01-10 10:34 ` Jorge Ramirez-Ortiz
2018-01-15 21:43 ` [U-Boot] [U-Boot, v1, " Tom Rini
2018-01-15 21:43 ` [U-Boot] [U-Boot, v1, 01/07] db410c: configs: increase gunzip buffer size for the kernel Tom Rini
6 siblings, 1 reply; 14+ messages in thread
From: Jorge Ramirez-Ortiz @ 2018-01-10 10:34 UTC (permalink / raw)
To: u-boot
From: Rob Clark <robdclark@gmail.com>
Signed-off-by: Rob Clark <robdclark@gmail.com>
---
include/configs/dragonboard410c.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/configs/dragonboard410c.h b/include/configs/dragonboard410c.h
index 3c5bb8a..530d667 100644
--- a/include/configs/dragonboard410c.h
+++ b/include/configs/dragonboard410c.h
@@ -92,7 +92,7 @@ REFLASH(dragonboard/u-boot.img, 8)\
"initrd_high=0xffffffffffffffff\0" \
"linux_image=Image\0" \
"kernel_addr_r=0x81000000\0"\
- "fdtfile=apq8016-sbc.dtb\0" \
+ "fdtfile=qcom/apq8016-sbc.dtb\0" \
"fdt_addr_r=0x83000000\0"\
"ramdisk_addr_r=0x84000000\0"\
"scriptaddr=0x90000000\0"\
--
2.7.4
^ permalink raw reply related [flat|nested] 14+ messages in thread* [U-Boot] [U-Boot, v1, 01/07] db410c: configs: increase gunzip buffer size for the kernel
2018-01-10 10:34 [U-Boot] [PATCH v1 01/07] db410c: configs: increase gunzip buffer size for the kernel Jorge Ramirez-Ortiz
` (5 preceding siblings ...)
2018-01-10 10:34 ` [U-Boot] [PATCH v1 07/07] db410c: on aarch64 the fdtfile is in per-vendor subdirectory Jorge Ramirez-Ortiz
@ 2018-01-15 21:43 ` Tom Rini
6 siblings, 0 replies; 14+ messages in thread
From: Tom Rini @ 2018-01-15 21:43 UTC (permalink / raw)
To: u-boot
On Wed, Jan 10, 2018 at 11:34:34AM +0100, Jorge Ramirez-Ortiz wrote:
> From: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
>
> the kernel fails to boot when it goes over the limit.
>
> Signed-off-by: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
Applied to u-boot/master, thanks!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180115/927ad1b3/attachment.sig>
^ permalink raw reply [flat|nested] 14+ messages in thread