lantiq: use upstream mechanism to append device tree file
Instead of using our patch-dtb program just place the device tree behind the kernel binary and then let the in kernel mechanism fetch it. This also adds support for having the device tree file in the boot loader. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> SVN-Revision: 49050
This commit is contained in:
parent
217a643755
commit
d6d0597cdf
6 changed files with 91 additions and 69 deletions
|
@ -38,7 +38,7 @@ CONFIG_CRYPTO_WORKQUEUE=y
|
||||||
CONFIG_CSRC_R4K=y
|
CONFIG_CSRC_R4K=y
|
||||||
CONFIG_DMA_NONCOHERENT=y
|
CONFIG_DMA_NONCOHERENT=y
|
||||||
CONFIG_DTC=y
|
CONFIG_DTC=y
|
||||||
CONFIG_DT_EASY50712=y
|
# CONFIG_DT_EASY50712 is not set
|
||||||
CONFIG_EARLY_PRINTK=y
|
CONFIG_EARLY_PRINTK=y
|
||||||
CONFIG_ETHERNET_PACKET_MANGLE=y
|
CONFIG_ETHERNET_PACKET_MANGLE=y
|
||||||
CONFIG_GENERIC_ATOMIC64=y
|
CONFIG_GENERIC_ATOMIC64=y
|
||||||
|
@ -108,6 +108,7 @@ CONFIG_IRQ_FORCED_THREADING=y
|
||||||
CONFIG_IRQ_MIPS_CPU=y
|
CONFIG_IRQ_MIPS_CPU=y
|
||||||
CONFIG_IRQ_WORK=y
|
CONFIG_IRQ_WORK=y
|
||||||
CONFIG_LANTIQ=y
|
CONFIG_LANTIQ=y
|
||||||
|
CONFIG_LANTIQ_DT_NONE=y
|
||||||
CONFIG_LANTIQ_ETOP=y
|
CONFIG_LANTIQ_ETOP=y
|
||||||
# CONFIG_LANTIQ_PHY is not set
|
# CONFIG_LANTIQ_PHY is not set
|
||||||
CONFIG_LANTIQ_WDT=y
|
CONFIG_LANTIQ_WDT=y
|
||||||
|
@ -125,8 +126,8 @@ CONFIG_MIPS_CMDLINE_FROM_DTB=y
|
||||||
CONFIG_MIPS_L1_CACHE_SHIFT=5
|
CONFIG_MIPS_L1_CACHE_SHIFT=5
|
||||||
# CONFIG_MIPS_MACHINE is not set
|
# CONFIG_MIPS_MACHINE is not set
|
||||||
# CONFIG_MIPS_MT_SMP is not set
|
# CONFIG_MIPS_MT_SMP is not set
|
||||||
CONFIG_MIPS_NO_APPENDED_DTB=y
|
# CONFIG_MIPS_NO_APPENDED_DTB is not set
|
||||||
# CONFIG_MIPS_RAW_APPENDED_DTB is not set
|
CONFIG_MIPS_RAW_APPENDED_DTB=y
|
||||||
CONFIG_MIPS_SPRAM=y
|
CONFIG_MIPS_SPRAM=y
|
||||||
# CONFIG_MIPS_VPE_LOADER is not set
|
# CONFIG_MIPS_VPE_LOADER is not set
|
||||||
CONFIG_MODULES_USE_ELF_REL=y
|
CONFIG_MODULES_USE_ELF_REL=y
|
||||||
|
@ -187,7 +188,6 @@ CONFIG_SPI=y
|
||||||
CONFIG_SPI_LANTIQ=y
|
CONFIG_SPI_LANTIQ=y
|
||||||
CONFIG_SPI_MASTER=y
|
CONFIG_SPI_MASTER=y
|
||||||
CONFIG_SRCU=y
|
CONFIG_SRCU=y
|
||||||
# CONFIG_SUNXI_SRAM is not set
|
|
||||||
CONFIG_SWAP_IO_SPACE=y
|
CONFIG_SWAP_IO_SPACE=y
|
||||||
CONFIG_SWCONFIG=y
|
CONFIG_SWCONFIG=y
|
||||||
CONFIG_SYSCTL_EXCEPTION_TRACE=y
|
CONFIG_SYSCTL_EXCEPTION_TRACE=y
|
||||||
|
|
|
@ -32,8 +32,8 @@ endef
|
||||||
define PatchKernelLzma
|
define PatchKernelLzma
|
||||||
cp $(KDIR)/vmlinux$(2) $(KDIR)/vmlinux$(2)-$(1)
|
cp $(KDIR)/vmlinux$(2) $(KDIR)/vmlinux$(2)-$(1)
|
||||||
$(LINUX_DIR)/scripts/dtc/dtc -O dtb -o $(KDIR)/$(1).dtb ../dts/$(1).dts
|
$(LINUX_DIR)/scripts/dtc/dtc -O dtb -o $(KDIR)/$(1).dtb ../dts/$(1).dts
|
||||||
$(STAGING_DIR_HOST)/bin/patch-dtb $(KDIR)/vmlinux$(2)-$(1) $(KDIR)/$(1).dtb
|
cat $(KDIR)/vmlinux$(2)-$(1) $(KDIR)/$(1).dtb > $(KDIR)/vmlinux$(2)-$(1).tmp
|
||||||
$(call CompressLzma,$(KDIR)/vmlinux$(2)-$(1),$(KDIR)/vmlinux$(2)-$(1).lzma)
|
$(call CompressLzma,$(KDIR)/vmlinux$(2)-$(1).tmp,$(KDIR)/vmlinux$(2)-$(1).lzma)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define MkBrnImage
|
define MkBrnImage
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
From 17348293f7f8103c97c8d2a6b0ef36eae06ec371 Mon Sep 17 00:00:00 2001
|
|
||||||
From: John Crispin <blogic@openwrt.org>
|
|
||||||
Date: Wed, 13 Mar 2013 09:36:16 +0100
|
|
||||||
Subject: [PATCH 02/36] MIPS: lantiq: dtb image hack
|
|
||||||
|
|
||||||
Signed-off-by: John Crispin <blogic@openwrt.org>
|
|
||||||
---
|
|
||||||
arch/mips/lantiq/Makefile | 2 --
|
|
||||||
arch/mips/lantiq/prom.c | 4 +++-
|
|
||||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
--- a/arch/mips/lantiq/prom.c
|
|
||||||
+++ b/arch/mips/lantiq/prom.c
|
|
||||||
@@ -63,6 +63,8 @@ static void __init prom_init_cmdline(voi
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+extern struct boot_param_header __image_dtb;
|
|
||||||
+
|
|
||||||
void __init plat_mem_setup(void)
|
|
||||||
{
|
|
||||||
ioport_resource.start = IOPORT_RESOURCE_START;
|
|
||||||
@@ -76,7 +78,7 @@ void __init plat_mem_setup(void)
|
|
||||||
* Load the builtin devicetree. This causes the chosen node to be
|
|
||||||
* parsed resulting in our memory appearing
|
|
||||||
*/
|
|
||||||
- __dt_setup_arch(__dtb_start);
|
|
||||||
+ __dt_setup_arch(&__image_dtb);
|
|
||||||
}
|
|
||||||
|
|
||||||
void __init device_tree_init(void)
|
|
|
@ -1,32 +0,0 @@
|
||||||
From dba8578e06aedf1e67312ebfc6162e2fadc9448d Mon Sep 17 00:00:00 2001
|
|
||||||
From: John Crispin <blogic@openwrt.org>
|
|
||||||
Date: Thu, 7 Aug 2014 18:32:12 +0200
|
|
||||||
Subject: [PATCH 36/36] owrt: generic dtb image hack
|
|
||||||
|
|
||||||
Signed-off-by: John Crispin <blogic@openwrt.org>
|
|
||||||
---
|
|
||||||
arch/mips/kernel/head.S | 3 +++
|
|
||||||
1 file changed, 3 insertions(+)
|
|
||||||
|
|
||||||
--- a/arch/mips/kernel/head.S
|
|
||||||
+++ b/arch/mips/kernel/head.S
|
|
||||||
@@ -86,6 +86,9 @@ EXPORT(__image_cmdline)
|
|
||||||
.fill 0x400
|
|
||||||
#endif /* CONFIG_IMAGE_CMDLINE_HACK */
|
|
||||||
|
|
||||||
+ .ascii "OWRTDTB:"
|
|
||||||
+ EXPORT(__image_dtb)
|
|
||||||
+ .fill 0x4000
|
|
||||||
__REF
|
|
||||||
|
|
||||||
NESTED(kernel_entry, 16, sp) # kernel entry point
|
|
||||||
--- a/arch/mips/lantiq/Kconfig
|
|
||||||
+++ b/arch/mips/lantiq/Kconfig
|
|
||||||
@@ -32,7 +32,6 @@ choice
|
|
||||||
config DT_EASY50712
|
|
||||||
bool "Easy50712"
|
|
||||||
depends on SOC_XWAY
|
|
||||||
- select BUILTIN_DTB
|
|
||||||
endchoice
|
|
||||||
|
|
||||||
config PCI_LANTIQ
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
From a32285ed4ba970b868b7fb49b716d776f4410ef6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Hauke Mehrtens <hauke@hauke-m.de>
|
||||||
|
Date: Sat, 19 Mar 2016 16:52:46 +0100
|
||||||
|
Subject: [PATCH] MIPS: lantiq: add support for device tree file from boot
|
||||||
|
loader
|
||||||
|
|
||||||
|
This fetches the device tree file like it is specified in the MIPS UHI
|
||||||
|
interface if one was found. This is also used when the device tree file
|
||||||
|
was appended to the kernel image with cat.
|
||||||
|
This code is copied from arch/mips/bmips/setup.c.
|
||||||
|
|
||||||
|
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
|
||||||
|
---
|
||||||
|
arch/mips/lantiq/prom.c | 13 +++++++++++--
|
||||||
|
1 file changed, 11 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
--- a/arch/mips/lantiq/prom.c
|
||||||
|
+++ b/arch/mips/lantiq/prom.c
|
||||||
|
@@ -65,6 +65,8 @@ static void __init prom_init_cmdline(voi
|
||||||
|
|
||||||
|
void __init plat_mem_setup(void)
|
||||||
|
{
|
||||||
|
+ void *dtb;
|
||||||
|
+
|
||||||
|
ioport_resource.start = IOPORT_RESOURCE_START;
|
||||||
|
ioport_resource.end = IOPORT_RESOURCE_END;
|
||||||
|
iomem_resource.start = IOMEM_RESOURCE_START;
|
||||||
|
@@ -72,11 +74,18 @@ void __init plat_mem_setup(void)
|
||||||
|
|
||||||
|
set_io_port_base((unsigned long) KSEG1);
|
||||||
|
|
||||||
|
+ if (fw_arg0 == -2) /* UHI interface */
|
||||||
|
+ dtb = (void *)fw_arg1;
|
||||||
|
+ else if (__dtb_start != __dtb_end)
|
||||||
|
+ dtb = (void *)__dtb_start;
|
||||||
|
+ else
|
||||||
|
+ panic("no dtb found");
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
- * Load the builtin devicetree. This causes the chosen node to be
|
||||||
|
+ * Load the devicetree. This causes the chosen node to be
|
||||||
|
* parsed resulting in our memory appearing
|
||||||
|
*/
|
||||||
|
- __dt_setup_arch(__dtb_start);
|
||||||
|
+ __dt_setup_arch(dtb);
|
||||||
|
}
|
||||||
|
|
||||||
|
void __init device_tree_init(void)
|
|
@ -0,0 +1,37 @@
|
||||||
|
From 8cfe01de7d5c974165c1383fcc9e1dad6953341d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Hauke Mehrtens <hauke@hauke-m.de>
|
||||||
|
Date: Sat, 19 Mar 2016 17:06:00 +0100
|
||||||
|
Subject: [PATCH 2/2] MIPS: lantiq: make it possible to build in no device tree
|
||||||
|
|
||||||
|
Now it is possible to build in no device tree at all and depend on the
|
||||||
|
boot loader providing one or someone concatenating a device tree to the
|
||||||
|
end of the image.
|
||||||
|
|
||||||
|
This was copied from arch/mips/bmips/Kconfig
|
||||||
|
|
||||||
|
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
|
||||||
|
---
|
||||||
|
arch/mips/lantiq/Kconfig | 12 +++++++++++-
|
||||||
|
1 file changed, 11 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
--- a/arch/mips/lantiq/Kconfig
|
||||||
|
+++ b/arch/mips/lantiq/Kconfig
|
||||||
|
@@ -27,7 +27,17 @@ config SOC_FALCON
|
||||||
|
endchoice
|
||||||
|
|
||||||
|
choice
|
||||||
|
- prompt "Devicetree"
|
||||||
|
+ prompt "Built-in device tree"
|
||||||
|
+ help
|
||||||
|
+ Legacy bootloaders do not pass a DTB pointer to the kernel, so
|
||||||
|
+ if a "wrapper" is not being used, the kernel will need to include
|
||||||
|
+ a device tree that matches the target board.
|
||||||
|
+
|
||||||
|
+ The builtin DTB will only be used if the firmware does not supply
|
||||||
|
+ a valid DTB.
|
||||||
|
+
|
||||||
|
+config LANTIQ_DT_NONE
|
||||||
|
+ bool "None"
|
||||||
|
|
||||||
|
config DT_EASY50712
|
||||||
|
bool "Easy50712"
|
Loading…
Reference in a new issue