* [PATCH 11/28] arm: use early_init_dt_scan
[not found] <1379372965-22359-1-git-send-email-robherring2@gmail.com>
@ 2013-09-16 23:09 ` Rob Herring
2013-09-16 23:09 ` [PATCH 12/28] arm64: " Rob Herring
` (5 subsequent siblings)
6 siblings, 0 replies; 18+ messages in thread
From: Rob Herring @ 2013-09-16 23:09 UTC (permalink / raw)
To: linux-arm-kernel
From: Rob Herring <rob.herring@calxeda.com>
Convert arm to use new early_init_dt_scan function.
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: linux-arm-kernel at lists.infradead.org
---
arch/arm/kernel/devtree.c | 15 +--------------
1 file changed, 1 insertion(+), 14 deletions(-)
diff --git a/arch/arm/kernel/devtree.c b/arch/arm/kernel/devtree.c
index f35906b..04050f7 100644
--- a/arch/arm/kernel/devtree.c
+++ b/arch/arm/kernel/devtree.c
@@ -183,7 +183,6 @@ bool arch_match_cpu_phys_id(int cpu, u64 phys_id)
*/
const struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys)
{
- struct boot_param_header *devtree;
const struct machine_desc *mdesc, *mdesc_best = NULL;
unsigned int score, mdesc_score = ~1;
unsigned long dt_root;
@@ -199,14 +198,9 @@ const struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys)
if (!dt_phys)
return NULL;
- devtree = phys_to_virt(dt_phys);
-
- /* check device tree validity */
- if (be32_to_cpu(devtree->magic) != OF_DT_HEADER)
- return NULL;
+ early_init_dt_scan(phys_to_virt(dt_phys));
/* Search the mdescs for the 'best' compatible value match */
- initial_boot_params = devtree;
dt_root = of_get_flat_dt_root();
for_each_machine_desc(mdesc) {
score = of_flat_dt_match(dt_root, mdesc->dt_compat);
@@ -240,13 +234,6 @@ const struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys)
model = "<unknown>";
pr_info("Machine: %s, model: %s\n", mdesc_best->name, model);
- /* Retrieve various information from the /chosen node */
- of_scan_flat_dt(early_init_dt_scan_chosen, boot_command_line);
- /* Initialize {size,address}-cells info */
- of_scan_flat_dt(early_init_dt_scan_root, NULL);
- /* Setup memory, calling early_init_dt_add_memory_arch */
- of_scan_flat_dt(early_init_dt_scan_memory, NULL);
-
/* Change machine number to match the mdesc we're using */
__machine_arch_type = mdesc_best->nr;
--
1.8.1.2
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 12/28] arm64: use early_init_dt_scan
[not found] <1379372965-22359-1-git-send-email-robherring2@gmail.com>
2013-09-16 23:09 ` [PATCH 11/28] arm: use early_init_dt_scan Rob Herring
@ 2013-09-16 23:09 ` Rob Herring
2013-09-17 8:43 ` Catalin Marinas
2013-09-16 23:09 ` [PATCH 18/28] of: create default early_init_dt_add_memory_arch Rob Herring
` (4 subsequent siblings)
6 siblings, 1 reply; 18+ messages in thread
From: Rob Herring @ 2013-09-16 23:09 UTC (permalink / raw)
To: linux-arm-kernel
From: Rob Herring <rob.herring@calxeda.com>
Convert arm64 to use new early_init_dt_scan function.
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: linux-arm-kernel at lists.infradead.org
---
arch/arm64/kernel/setup.c | 31 +++----------------------------
1 file changed, 3 insertions(+), 28 deletions(-)
diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c
index 12ad8f3..b4461e1 100644
--- a/arch/arm64/kernel/setup.c
+++ b/arch/arm64/kernel/setup.c
@@ -124,37 +124,19 @@ static void __init setup_processor(void)
static void __init setup_machine_fdt(phys_addr_t dt_phys)
{
- struct boot_param_header *devtree;
unsigned long dt_root;
- /* Check we have a non-NULL DT pointer */
- if (!dt_phys) {
- early_print("\n"
- "Error: NULL or invalid device tree blob\n"
- "The dtb must be 8-byte aligned and passed in the first 512MB of memory\n"
- "\nPlease check your bootloader.\n");
-
- while (true)
- cpu_relax();
-
- }
-
- devtree = phys_to_virt(dt_phys);
-
- /* Check device tree validity */
- if (be32_to_cpu(devtree->magic) != OF_DT_HEADER) {
+ if (!dt_phys || !early_init_dt_scan(phys_to_virt(dt_phys))) {
early_print("\n"
"Error: invalid device tree blob at physical address 0x%p (virtual address 0x%p)\n"
- "Expected 0x%x, found 0x%x\n"
+ "The dtb must be 8-byte aligned and passed in the first 512MB of memory\n"
"\nPlease check your bootloader.\n",
- dt_phys, devtree, OF_DT_HEADER,
- be32_to_cpu(devtree->magic));
+ dt_phys, phys_to_virt(dt_phys));
while (true)
cpu_relax();
}
- initial_boot_params = devtree;
dt_root = of_get_flat_dt_root();
machine_name = of_get_flat_dt_prop(dt_root, "model", NULL);
@@ -163,13 +145,6 @@ static void __init setup_machine_fdt(phys_addr_t dt_phys)
if (!machine_name)
machine_name = "<unknown>";
pr_info("Machine: %s\n", machine_name);
-
- /* Retrieve various information from the /chosen node */
- of_scan_flat_dt(early_init_dt_scan_chosen, boot_command_line);
- /* Initialize {size,address}-cells info */
- of_scan_flat_dt(early_init_dt_scan_root, NULL);
- /* Setup memory, calling early_init_dt_add_memory_arch */
- of_scan_flat_dt(early_init_dt_scan_memory, NULL);
}
void __init early_init_dt_add_memory_arch(u64 base, u64 size)
--
1.8.1.2
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 18/28] of: create default early_init_dt_add_memory_arch
[not found] <1379372965-22359-1-git-send-email-robherring2@gmail.com>
2013-09-16 23:09 ` [PATCH 11/28] arm: use early_init_dt_scan Rob Herring
2013-09-16 23:09 ` [PATCH 12/28] arm64: " Rob Herring
@ 2013-09-16 23:09 ` Rob Herring
2013-09-17 8:46 ` Catalin Marinas
2013-09-18 3:33 ` Grant Likely
2013-09-16 23:09 ` [PATCH 19/28] arm: set initrd_start/initrd_end for fdt scan Rob Herring
` (3 subsequent siblings)
6 siblings, 2 replies; 18+ messages in thread
From: Rob Herring @ 2013-09-16 23:09 UTC (permalink / raw)
To: linux-arm-kernel
From: Rob Herring <rob.herring@calxeda.com>
Create a weak version of early_init_dt_add_memory_arch which uses
memblock or is an empty function when memblock is not enabled. This
will unify all architectures except ones with custom memory bank
structs.
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: James Hogan <james.hogan@imgtec.com>
Cc: Michal Simek <monstr@monstr.eu>
Cc: Jonas Bonn <jonas@southpole.se>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: x86 at kernel.org
Cc: Grant Likely <grant.likely@linaro.org>
Cc: linux-arm-kernel at lists.infradead.org
Cc: microblaze-uclinux at itee.uq.edu.au
Cc: linux at lists.openrisc.net
Cc: devicetree at vger.kernel.org
---
arch/arm64/kernel/setup.c | 18 ------------------
arch/metag/kernel/devtree.c | 6 ------
arch/microblaze/kernel/prom.c | 5 -----
arch/openrisc/kernel/prom.c | 6 ------
arch/x86/kernel/devicetree.c | 10 ----------
drivers/of/fdt.c | 11 +++++++++++
6 files changed, 11 insertions(+), 45 deletions(-)
diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c
index b4461e1..3790004 100644
--- a/arch/arm64/kernel/setup.c
+++ b/arch/arm64/kernel/setup.c
@@ -147,24 +147,6 @@ static void __init setup_machine_fdt(phys_addr_t dt_phys)
pr_info("Machine: %s\n", machine_name);
}
-void __init early_init_dt_add_memory_arch(u64 base, u64 size)
-{
- base &= PAGE_MASK;
- size &= PAGE_MASK;
- if (base + size < PHYS_OFFSET) {
- pr_warning("Ignoring memory block 0x%llx - 0x%llx\n",
- base, base + size);
- return;
- }
- if (base < PHYS_OFFSET) {
- pr_warning("Ignoring memory range 0x%llx - 0x%llx\n",
- base, PHYS_OFFSET);
- size -= PHYS_OFFSET - base;
- base = PHYS_OFFSET;
- }
- memblock_add(base, size);
-}
-
/*
* Limit the memory size that was specified via FDT.
*/
diff --git a/arch/metag/kernel/devtree.c b/arch/metag/kernel/devtree.c
index 049af56..2c6ee6d 100644
--- a/arch/metag/kernel/devtree.c
+++ b/arch/metag/kernel/devtree.c
@@ -23,12 +23,6 @@
#include <asm/page.h>
#include <asm/mach/arch.h>
-void __init early_init_dt_add_memory_arch(u64 base, u64 size)
-{
- pr_err("%s(%llx, %llx)\n",
- __func__, base, size);
-}
-
void * __init early_init_dt_alloc_memory_arch(u64 size, u64 align)
{
return alloc_bootmem_align(size, align);
diff --git a/arch/microblaze/kernel/prom.c b/arch/microblaze/kernel/prom.c
index e13686e..951e4d6 100644
--- a/arch/microblaze/kernel/prom.c
+++ b/arch/microblaze/kernel/prom.c
@@ -41,11 +41,6 @@
#include <asm/sections.h>
#include <asm/pci-bridge.h>
-void __init early_init_dt_add_memory_arch(u64 base, u64 size)
-{
- memblock_add(base, size);
-}
-
#ifdef CONFIG_EARLY_PRINTK
static char *stdout;
diff --git a/arch/openrisc/kernel/prom.c b/arch/openrisc/kernel/prom.c
index fbed459..6dbcaa8 100644
--- a/arch/openrisc/kernel/prom.c
+++ b/arch/openrisc/kernel/prom.c
@@ -47,12 +47,6 @@
#include <asm/sections.h>
#include <asm/setup.h>
-void __init early_init_dt_add_memory_arch(u64 base, u64 size)
-{
- size &= PAGE_MASK;
- memblock_add(base, size);
-}
-
void __init early_init_devtree(void *params)
{
early_init_dt_scan(params);
diff --git a/arch/x86/kernel/devicetree.c b/arch/x86/kernel/devicetree.c
index 0db805c..2f5cb37 100644
--- a/arch/x86/kernel/devicetree.c
+++ b/arch/x86/kernel/devicetree.c
@@ -36,16 +36,6 @@ unsigned long pci_address_to_pio(phys_addr_t address)
}
EXPORT_SYMBOL_GPL(pci_address_to_pio);
-void __init early_init_dt_scan_chosen_arch(unsigned long node)
-{
- BUG();
-}
-
-void __init early_init_dt_add_memory_arch(u64 base, u64 size)
-{
- BUG();
-}
-
void * __init early_init_dt_alloc_memory_arch(u64 size, u64 align)
{
return __alloc_bootmem(size, align, __pa(MAX_DMA_ADDRESS));
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
index 0714dd4..a9dce7a 100644
--- a/drivers/of/fdt.c
+++ b/drivers/of/fdt.c
@@ -688,6 +688,17 @@ u64 __init dt_mem_next_cell(int s, __be32 **cellp)
return of_read_number(p, s);
}
+void __init __weak early_init_dt_add_memory_arch(u64 base, u64 size)
+{
+#ifdef CONFIG_HAVE_MEMBLOCK
+ base &= PAGE_MASK;
+ size &= PAGE_MASK;
+ memblock_add(base, size);
+#else
+ pr_err("%s: ignoring memory (%llx, %llx)\n", __func__, base, size);
+#endif
+}
+
/**
* early_init_dt_scan_memory - Look for an parse memory nodes
*/
--
1.8.1.2
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 19/28] arm: set initrd_start/initrd_end for fdt scan
[not found] <1379372965-22359-1-git-send-email-robherring2@gmail.com>
` (2 preceding siblings ...)
2013-09-16 23:09 ` [PATCH 18/28] of: create default early_init_dt_add_memory_arch Rob Herring
@ 2013-09-16 23:09 ` Rob Herring
2013-09-18 3:36 ` Grant Likely
2013-09-16 23:09 ` [PATCH 20/28] arm64: " Rob Herring
` (2 subsequent siblings)
6 siblings, 1 reply; 18+ messages in thread
From: Rob Herring @ 2013-09-16 23:09 UTC (permalink / raw)
To: linux-arm-kernel
From: Rob Herring <rob.herring@calxeda.com>
In order to unify the initrd scanning for DT across architectures, make
arm set initrd_start and initrd_end instead of the physical addresses.
This is aligned with all other architectures.
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: linux-arm-kernel at lists.infradead.org
---
arch/arm/mm/init.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
index febaee7..9eeb1cd 100644
--- a/arch/arm/mm/init.c
+++ b/arch/arm/mm/init.c
@@ -77,11 +77,11 @@ static int __init parse_tag_initrd2(const struct tag *tag)
__tagtable(ATAG_INITRD2, parse_tag_initrd2);
-#ifdef CONFIG_OF_FLATTREE
+#if defined(CONFIG_OF_FLATTREE) && defined(CONFIG_BLK_DEV_INITRD)
void __init early_init_dt_setup_initrd_arch(u64 start, u64 end)
{
- phys_initrd_start = start;
- phys_initrd_size = end - start;
+ initrd_start = (unsigned long)__va(start);
+ initrd_end = (unsigned long)__va(end);
}
#endif /* CONFIG_OF_FLATTREE */
@@ -351,6 +351,11 @@ void __init arm_memblock_init(struct meminfo *mi,
memblock_reserve(__pa(_stext), _end - _stext);
#endif
#ifdef CONFIG_BLK_DEV_INITRD
+ /* FDT scan will populate initrd_start */
+ if (initrd_start) {
+ phys_initrd_start = __virt_to_phys(initrd_start);
+ phys_initrd_size = initrd_end - initrd_start;
+ }
if (phys_initrd_size &&
!memblock_is_region_memory(phys_initrd_start, phys_initrd_size)) {
pr_err("INITRD: 0x%08llx+0x%08lx is not a memory region - disabling initrd\n",
--
1.8.1.2
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 20/28] arm64: set initrd_start/initrd_end for fdt scan
[not found] <1379372965-22359-1-git-send-email-robherring2@gmail.com>
` (3 preceding siblings ...)
2013-09-16 23:09 ` [PATCH 19/28] arm: set initrd_start/initrd_end for fdt scan Rob Herring
@ 2013-09-16 23:09 ` Rob Herring
2013-09-17 8:50 ` Catalin Marinas
2013-09-16 23:09 ` [PATCH 25/28] arm: use common of_flat_dt_match_machine Rob Herring
2013-09-16 23:09 ` [PATCH 26/28] arm64: use common of_flat_dt_get_machine_name Rob Herring
6 siblings, 1 reply; 18+ messages in thread
From: Rob Herring @ 2013-09-16 23:09 UTC (permalink / raw)
To: linux-arm-kernel
From: Rob Herring <rob.herring@calxeda.com>
In order to unify the initrd scanning for DT across architectures, make
arm64 use initrd_start and initrd_end instead of the physical addresses.
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: linux-arm-kernel at lists.infradead.org
---
arch/arm64/mm/init.c | 24 ++++++------------------
1 file changed, 6 insertions(+), 18 deletions(-)
diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c
index de2de5d..8261f4e 100644
--- a/arch/arm64/mm/init.c
+++ b/arch/arm64/mm/init.c
@@ -39,17 +39,9 @@
#include "mm.h"
-static unsigned long phys_initrd_start __initdata = 0;
-static unsigned long phys_initrd_size __initdata = 0;
-
phys_addr_t memstart_addr __read_mostly = 0;
-void __init early_init_dt_setup_initrd_arch(u64 start, u64 end)
-{
- phys_initrd_start = start;
- phys_initrd_size = end - start;
-}
-
+#ifdef CONFIG_BLK_DEV_INITRD
static int __init early_initrd(char *p)
{
unsigned long start, size;
@@ -59,12 +51,13 @@ static int __init early_initrd(char *p)
if (*endp == ',') {
size = memparse(endp + 1, NULL);
- phys_initrd_start = start;
- phys_initrd_size = size;
+ initrd_start = (unsigned long)__va(start);
+ initrd_end = (unsigned long)__va(start + size);
}
return 0;
}
early_param("initrd", early_initrd);
+#endif
#define MAX_DMA32_PFN ((4UL * 1024 * 1024 * 1024) >> PAGE_SHIFT)
@@ -137,13 +130,8 @@ void __init arm64_memblock_init(void)
/* Register the kernel text, kernel data and initrd with memblock */
memblock_reserve(__pa(_text), _end - _text);
#ifdef CONFIG_BLK_DEV_INITRD
- if (phys_initrd_size) {
- memblock_reserve(phys_initrd_start, phys_initrd_size);
-
- /* Now convert initrd to virtual addresses */
- initrd_start = __phys_to_virt(phys_initrd_start);
- initrd_end = initrd_start + phys_initrd_size;
- }
+ if (initrd_start)
+ memblock_reserve(__virt_to_phys(initrd_start), initrd_end - initrd_start);
#endif
/*
--
1.8.1.2
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 25/28] arm: use common of_flat_dt_match_machine
[not found] <1379372965-22359-1-git-send-email-robherring2@gmail.com>
` (4 preceding siblings ...)
2013-09-16 23:09 ` [PATCH 20/28] arm64: " Rob Herring
@ 2013-09-16 23:09 ` Rob Herring
2013-09-16 23:09 ` [PATCH 26/28] arm64: use common of_flat_dt_get_machine_name Rob Herring
6 siblings, 0 replies; 18+ messages in thread
From: Rob Herring @ 2013-09-16 23:09 UTC (permalink / raw)
To: linux-arm-kernel
From: Rob Herring <rob.herring@calxeda.com>
Convert arm to use the common of_flat_dt_match_machine function.
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: linux-arm-kernel at lists.infradead.org
---
arch/arm/kernel/devtree.c | 42 ++++++++++++++++++++----------------------
1 file changed, 20 insertions(+), 22 deletions(-)
diff --git a/arch/arm/kernel/devtree.c b/arch/arm/kernel/devtree.c
index 04050f7..cb918f6 100644
--- a/arch/arm/kernel/devtree.c
+++ b/arch/arm/kernel/devtree.c
@@ -174,6 +174,19 @@ bool arch_match_cpu_phys_id(int cpu, u64 phys_id)
return (phys_id & MPIDR_HWID_BITMASK) == cpu_logical_map(cpu);
}
+static void * __init arch_get_next_mach(const char *const **match)
+{
+ static struct machine_desc *mdesc = __arch_info_begin;
+ struct machine_desc *m = mdesc;
+
+ if (m >= __arch_info_end)
+ return NULL;
+
+ mdesc++;
+ *match = m->dt_compat;
+ return m;
+}
+
/**
* setup_machine_fdt - Machine setup when an dtb was passed to the kernel
* @dt_phys: physical address of dt blob
@@ -184,9 +197,6 @@ bool arch_match_cpu_phys_id(int cpu, u64 phys_id)
const struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys)
{
const struct machine_desc *mdesc, *mdesc_best = NULL;
- unsigned int score, mdesc_score = ~1;
- unsigned long dt_root;
- const char *model;
#ifdef CONFIG_ARCH_MULTIPLATFORM
DT_MACHINE_START(GENERIC_DT, "Generic DT based system")
@@ -199,23 +209,17 @@ const struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys)
return NULL;
early_init_dt_scan(phys_to_virt(dt_phys));
+ mdesc = of_flat_dt_match_machine(mdesc_best, arch_get_next_mach);
- /* Search the mdescs for the 'best' compatible value match */
- dt_root = of_get_flat_dt_root();
- for_each_machine_desc(mdesc) {
- score = of_flat_dt_match(dt_root, mdesc->dt_compat);
- if (score > 0 && score < mdesc_score) {
- mdesc_best = mdesc;
- mdesc_score = score;
- }
- }
- if (!mdesc_best) {
+ if (!mdesc) {
const char *prop;
long size;
+ unsigned long dt_root;
early_print("\nError: unrecognized/unsupported "
"device tree compatible list:\n[ ");
+ dt_root = of_get_flat_dt_root();
prop = of_get_flat_dt_prop(dt_root, "compatible", &size);
while (size > 0) {
early_print("'%s' ", prop);
@@ -226,16 +230,10 @@ const struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys)
dump_machine_table(); /* does not return */
}
-
- model = of_get_flat_dt_prop(dt_root, "model", NULL);
- if (!model)
- model = of_get_flat_dt_prop(dt_root, "compatible", NULL);
- if (!model)
- model = "<unknown>";
- pr_info("Machine: %s, model: %s\n", mdesc_best->name, model);
+ early_print("matched mach %s\n", mdesc->name);
/* Change machine number to match the mdesc we're using */
- __machine_arch_type = mdesc_best->nr;
+ __machine_arch_type = mdesc->nr;
- return mdesc_best;
+ return mdesc;
}
--
1.8.1.2
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 26/28] arm64: use common of_flat_dt_get_machine_name
[not found] <1379372965-22359-1-git-send-email-robherring2@gmail.com>
` (5 preceding siblings ...)
2013-09-16 23:09 ` [PATCH 25/28] arm: use common of_flat_dt_match_machine Rob Herring
@ 2013-09-16 23:09 ` Rob Herring
2013-09-17 8:53 ` Catalin Marinas
6 siblings, 1 reply; 18+ messages in thread
From: Rob Herring @ 2013-09-16 23:09 UTC (permalink / raw)
To: linux-arm-kernel
From: Rob Herring <rob.herring@calxeda.com>
Convert arm64 to use the common of_flat_dt_get_machine_name function.
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: linux-arm-kernel at lists.infradead.org
---
arch/arm64/kernel/setup.c | 11 +----------
1 file changed, 1 insertion(+), 10 deletions(-)
diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c
index 3790004..4504f28 100644
--- a/arch/arm64/kernel/setup.c
+++ b/arch/arm64/kernel/setup.c
@@ -124,8 +124,6 @@ static void __init setup_processor(void)
static void __init setup_machine_fdt(phys_addr_t dt_phys)
{
- unsigned long dt_root;
-
if (!dt_phys || !early_init_dt_scan(phys_to_virt(dt_phys))) {
early_print("\n"
"Error: invalid device tree blob at physical address 0x%p (virtual address 0x%p)\n"
@@ -137,14 +135,7 @@ static void __init setup_machine_fdt(phys_addr_t dt_phys)
cpu_relax();
}
- dt_root = of_get_flat_dt_root();
-
- machine_name = of_get_flat_dt_prop(dt_root, "model", NULL);
- if (!machine_name)
- machine_name = of_get_flat_dt_prop(dt_root, "compatible", NULL);
- if (!machine_name)
- machine_name = "<unknown>";
- pr_info("Machine: %s\n", machine_name);
+ machine_name = of_flat_dt_get_machine_name();
}
/*
--
1.8.1.2
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 12/28] arm64: use early_init_dt_scan
2013-09-16 23:09 ` [PATCH 12/28] arm64: " Rob Herring
@ 2013-09-17 8:43 ` Catalin Marinas
0 siblings, 0 replies; 18+ messages in thread
From: Catalin Marinas @ 2013-09-17 8:43 UTC (permalink / raw)
To: linux-arm-kernel
On 17 Sep 2013, at 00:09, Rob Herring <robherring2@gmail.com> wrote:
> From: Rob Herring <rob.herring@calxeda.com>
>
> Convert arm64 to use new early_init_dt_scan function.
>
> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will.deacon@arm.com>
> Cc: linux-arm-kernel at lists.infradead.org
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 18/28] of: create default early_init_dt_add_memory_arch
2013-09-16 23:09 ` [PATCH 18/28] of: create default early_init_dt_add_memory_arch Rob Herring
@ 2013-09-17 8:46 ` Catalin Marinas
2013-09-17 13:01 ` Rob Herring
2013-09-18 3:33 ` Grant Likely
1 sibling, 1 reply; 18+ messages in thread
From: Catalin Marinas @ 2013-09-17 8:46 UTC (permalink / raw)
To: linux-arm-kernel
On 17 Sep 2013, at 00:09, Rob Herring <robherring2@gmail.com> wrote:
> --- a/arch/arm64/kernel/setup.c
> +++ b/arch/arm64/kernel/setup.c
> @@ -147,24 +147,6 @@ static void __init setup_machine_fdt(phys_addr_t dt_phys)
> pr_info("Machine: %s\n", machine_name);
> }
>
> -void __init early_init_dt_add_memory_arch(u64 base, u64 size)
> -{
> - base &= PAGE_MASK;
> - size &= PAGE_MASK;
> - if (base + size < PHYS_OFFSET) {
> - pr_warning("Ignoring memory block 0x%llx - 0x%llx\n",
> - base, base + size);
> - return;
> - }
> - if (base < PHYS_OFFSET) {
> - pr_warning("Ignoring memory range 0x%llx - 0x%llx\n",
> - base, PHYS_OFFSET);
> - size -= PHYS_OFFSET - base;
> - base = PHYS_OFFSET;
> - }
> - memblock_add(base, size);
> -}
> -
> /*
> * Limit the memory size that was specified via FDT.
> */
...
> --- a/drivers/of/fdt.c
> +++ b/drivers/of/fdt.c
> @@ -688,6 +688,17 @@ u64 __init dt_mem_next_cell(int s, __be32 **cellp)
> return of_read_number(p, s);
> }
>
> +void __init __weak early_init_dt_add_memory_arch(u64 base, u64 size)
> +{
> +#ifdef CONFIG_HAVE_MEMBLOCK
> + base &= PAGE_MASK;
> + size &= PAGE_MASK;
> + memblock_add(base, size);
> +#else
> + pr_err("%s: ignoring memory (%llx, %llx)\n", __func__, base, size);
> +#endif
> +}
Are the arm64 changes equivalent here? There are some safety checks to
cope with the kernel being loaded at a higher offset than the
recommended one (PHYS_OFFSET calculated automatically).
Catalin
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 20/28] arm64: set initrd_start/initrd_end for fdt scan
2013-09-16 23:09 ` [PATCH 20/28] arm64: " Rob Herring
@ 2013-09-17 8:50 ` Catalin Marinas
2013-09-18 3:36 ` Grant Likely
0 siblings, 1 reply; 18+ messages in thread
From: Catalin Marinas @ 2013-09-17 8:50 UTC (permalink / raw)
To: linux-arm-kernel
On 17 Sep 2013, at 00:09, Rob Herring <robherring2@gmail.com> wrote:
> From: Rob Herring <rob.herring@calxeda.com>
>
> In order to unify the initrd scanning for DT across architectures, make
> arm64 use initrd_start and initrd_end instead of the physical addresses.
>
> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will.deacon@arm.com>
> Cc: linux-arm-kernel at lists.infradead.org
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 26/28] arm64: use common of_flat_dt_get_machine_name
2013-09-16 23:09 ` [PATCH 26/28] arm64: use common of_flat_dt_get_machine_name Rob Herring
@ 2013-09-17 8:53 ` Catalin Marinas
0 siblings, 0 replies; 18+ messages in thread
From: Catalin Marinas @ 2013-09-17 8:53 UTC (permalink / raw)
To: linux-arm-kernel
On 17 Sep 2013, at 00:09, Rob Herring <robherring2@gmail.com> wrote:
> From: Rob Herring <rob.herring@calxeda.com>
>
> Convert arm64 to use the common of_flat_dt_get_machine_name function.
>
> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will.deacon@arm.com>
> Cc: linux-arm-kernel at lists.infradead.org
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 18/28] of: create default early_init_dt_add_memory_arch
2013-09-17 8:46 ` Catalin Marinas
@ 2013-09-17 13:01 ` Rob Herring
2013-09-17 15:28 ` Catalin Marinas
0 siblings, 1 reply; 18+ messages in thread
From: Rob Herring @ 2013-09-17 13:01 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Sep 17, 2013 at 3:46 AM, Catalin Marinas
<catalin.marinas@arm.com> wrote:
> On 17 Sep 2013, at 00:09, Rob Herring <robherring2@gmail.com> wrote:
>> --- a/arch/arm64/kernel/setup.c
>> +++ b/arch/arm64/kernel/setup.c
>> @@ -147,24 +147,6 @@ static void __init setup_machine_fdt(phys_addr_t dt_phys)
>> pr_info("Machine: %s\n", machine_name);
>> }
>>
>> -void __init early_init_dt_add_memory_arch(u64 base, u64 size)
>> -{
>> - base &= PAGE_MASK;
>> - size &= PAGE_MASK;
>> - if (base + size < PHYS_OFFSET) {
>> - pr_warning("Ignoring memory block 0x%llx - 0x%llx\n",
>> - base, base + size);
>> - return;
>> - }
>> - if (base < PHYS_OFFSET) {
>> - pr_warning("Ignoring memory range 0x%llx - 0x%llx\n",
>> - base, PHYS_OFFSET);
>> - size -= PHYS_OFFSET - base;
>> - base = PHYS_OFFSET;
>> - }
>> - memblock_add(base, size);
>> -}
>> -
>> /*
>> * Limit the memory size that was specified via FDT.
>> */
>
> ...
>
>> --- a/drivers/of/fdt.c
>> +++ b/drivers/of/fdt.c
>> @@ -688,6 +688,17 @@ u64 __init dt_mem_next_cell(int s, __be32 **cellp)
>> return of_read_number(p, s);
>> }
>>
>> +void __init __weak early_init_dt_add_memory_arch(u64 base, u64 size)
>> +{
>> +#ifdef CONFIG_HAVE_MEMBLOCK
>> + base &= PAGE_MASK;
>> + size &= PAGE_MASK;
>> + memblock_add(base, size);
>> +#else
>> + pr_err("%s: ignoring memory (%llx, %llx)\n", __func__, base, size);
>> +#endif
>> +}
>
> Are the arm64 changes equivalent here? There are some safety checks to
> cope with the kernel being loaded at a higher offset than the
> recommended one (PHYS_OFFSET calculated automatically).
I tried to keep that, but PHYS_OFFSET is not universally defined. My
reasoning is this range checking is hardly specific to an
architecture. Perhaps if memory always starts at 0 you don't need it.
If arm64 really needs these checks, then all architectures do.
Perhaps "__virt_to_phys(PAGE_OFFSET)" instead of PHYS_OFFSET would work for all?
Rob
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 18/28] of: create default early_init_dt_add_memory_arch
2013-09-17 13:01 ` Rob Herring
@ 2013-09-17 15:28 ` Catalin Marinas
0 siblings, 0 replies; 18+ messages in thread
From: Catalin Marinas @ 2013-09-17 15:28 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Sep 17, 2013 at 02:01:36PM +0100, Rob Herring wrote:
> On Tue, Sep 17, 2013 at 3:46 AM, Catalin Marinas
> <catalin.marinas@arm.com> wrote:
> > On 17 Sep 2013, at 00:09, Rob Herring <robherring2@gmail.com> wrote:
> >> --- a/arch/arm64/kernel/setup.c
> >> +++ b/arch/arm64/kernel/setup.c
> >> @@ -147,24 +147,6 @@ static void __init setup_machine_fdt(phys_addr_t dt_phys)
> >> pr_info("Machine: %s\n", machine_name);
> >> }
> >>
> >> -void __init early_init_dt_add_memory_arch(u64 base, u64 size)
> >> -{
> >> - base &= PAGE_MASK;
> >> - size &= PAGE_MASK;
> >> - if (base + size < PHYS_OFFSET) {
> >> - pr_warning("Ignoring memory block 0x%llx - 0x%llx\n",
> >> - base, base + size);
> >> - return;
> >> - }
> >> - if (base < PHYS_OFFSET) {
> >> - pr_warning("Ignoring memory range 0x%llx - 0x%llx\n",
> >> - base, PHYS_OFFSET);
> >> - size -= PHYS_OFFSET - base;
> >> - base = PHYS_OFFSET;
> >> - }
> >> - memblock_add(base, size);
> >> -}
> >> -
> >> /*
> >> * Limit the memory size that was specified via FDT.
> >> */
> >
> > ...
> >
> >> --- a/drivers/of/fdt.c
> >> +++ b/drivers/of/fdt.c
> >> @@ -688,6 +688,17 @@ u64 __init dt_mem_next_cell(int s, __be32 **cellp)
> >> return of_read_number(p, s);
> >> }
> >>
> >> +void __init __weak early_init_dt_add_memory_arch(u64 base, u64 size)
> >> +{
> >> +#ifdef CONFIG_HAVE_MEMBLOCK
> >> + base &= PAGE_MASK;
> >> + size &= PAGE_MASK;
> >> + memblock_add(base, size);
> >> +#else
> >> + pr_err("%s: ignoring memory (%llx, %llx)\n", __func__, base, size);
> >> +#endif
> >> +}
> >
> > Are the arm64 changes equivalent here? There are some safety checks to
> > cope with the kernel being loaded at a higher offset than the
> > recommended one (PHYS_OFFSET calculated automatically).
>
> I tried to keep that, but PHYS_OFFSET is not universally defined. My
> reasoning is this range checking is hardly specific to an
> architecture. Perhaps if memory always starts at 0 you don't need it.
> If arm64 really needs these checks, then all architectures do.
>
> Perhaps "__virt_to_phys(PAGE_OFFSET)" instead of PHYS_OFFSET would work for all?
I think virt_to_phys() or __pa() should work, the __virt_to_phys() is
only defined by a few architectures.
--
Catalin
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 18/28] of: create default early_init_dt_add_memory_arch
2013-09-16 23:09 ` [PATCH 18/28] of: create default early_init_dt_add_memory_arch Rob Herring
2013-09-17 8:46 ` Catalin Marinas
@ 2013-09-18 3:33 ` Grant Likely
2013-09-18 15:09 ` Rob Herring
1 sibling, 1 reply; 18+ messages in thread
From: Grant Likely @ 2013-09-18 3:33 UTC (permalink / raw)
To: linux-arm-kernel
On Mon, 16 Sep 2013 18:09:14 -0500, Rob Herring <robherring2@gmail.com> wrote:
> From: Rob Herring <rob.herring@calxeda.com>
>
> Create a weak version of early_init_dt_add_memory_arch which uses
> memblock or is an empty function when memblock is not enabled. This
> will unify all architectures except ones with custom memory bank
> structs.
Two comments below, but otherwise:
Acked-by: Grant Likely <grant.likely@linaro.org>
> diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
> index 0714dd4..a9dce7a 100644
> --- a/drivers/of/fdt.c
> +++ b/drivers/of/fdt.c
> @@ -688,6 +688,17 @@ u64 __init dt_mem_next_cell(int s, __be32 **cellp)
> return of_read_number(p, s);
> }
>
> +void __init __weak early_init_dt_add_memory_arch(u64 base, u64 size)
> +{
> +#ifdef CONFIG_HAVE_MEMBLOCK
> + base &= PAGE_MASK;
> + size &= PAGE_MASK;
> + memblock_add(base, size);
> +#else
> + pr_err("%s: ignoring memory (%llx, %llx)\n", __func__, base, size);
> +#endif
> +}
> +
Can you do it this way instead:
#ifdef CONFIG_HAVE_MEMBLOCK
void __init __weak early_init_dt_add_memory_arch(u64 base, u64 size)
{
base &= PAGE_MASK;
size &= PAGE_MASK;
memblock_add(base, size);
}
#endif
If the platform doesn't provide an early_init_dt_add_memory_arch()
function and it doesn't have a memblock implementation, then the build
should outright fail. I don't see a scenario where we would want to
successfully build the kernel without a working add memory function.
Also, can you group this function with the common __weak
early_init_dt_alloc_memory_arch() implementation? It would be good to
group all the memblock specific functions together.
g.
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 19/28] arm: set initrd_start/initrd_end for fdt scan
2013-09-16 23:09 ` [PATCH 19/28] arm: set initrd_start/initrd_end for fdt scan Rob Herring
@ 2013-09-18 3:36 ` Grant Likely
0 siblings, 0 replies; 18+ messages in thread
From: Grant Likely @ 2013-09-18 3:36 UTC (permalink / raw)
To: linux-arm-kernel
On Mon, 16 Sep 2013 18:09:15 -0500, Rob Herring <robherring2@gmail.com> wrote:
> From: Rob Herring <rob.herring@calxeda.com>
>
> In order to unify the initrd scanning for DT across architectures, make
> arm set initrd_start and initrd_end instead of the physical addresses.
> This is aligned with all other architectures.
>
> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
> Cc: Russell King <linux@arm.linux.org.uk>
> Cc: linux-arm-kernel at lists.infradead.org
Acked-by: Grant Likely <grant.likely@linaro.org>
> ---
> arch/arm/mm/init.c | 11 ++++++++---
> 1 file changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
> index febaee7..9eeb1cd 100644
> --- a/arch/arm/mm/init.c
> +++ b/arch/arm/mm/init.c
> @@ -77,11 +77,11 @@ static int __init parse_tag_initrd2(const struct tag *tag)
>
> __tagtable(ATAG_INITRD2, parse_tag_initrd2);
>
> -#ifdef CONFIG_OF_FLATTREE
> +#if defined(CONFIG_OF_FLATTREE) && defined(CONFIG_BLK_DEV_INITRD)
> void __init early_init_dt_setup_initrd_arch(u64 start, u64 end)
> {
> - phys_initrd_start = start;
> - phys_initrd_size = end - start;
> + initrd_start = (unsigned long)__va(start);
> + initrd_end = (unsigned long)__va(end);
> }
> #endif /* CONFIG_OF_FLATTREE */
>
> @@ -351,6 +351,11 @@ void __init arm_memblock_init(struct meminfo *mi,
> memblock_reserve(__pa(_stext), _end - _stext);
> #endif
> #ifdef CONFIG_BLK_DEV_INITRD
> + /* FDT scan will populate initrd_start */
> + if (initrd_start) {
> + phys_initrd_start = __virt_to_phys(initrd_start);
> + phys_initrd_size = initrd_end - initrd_start;
> + }
> if (phys_initrd_size &&
> !memblock_is_region_memory(phys_initrd_start, phys_initrd_size)) {
> pr_err("INITRD: 0x%08llx+0x%08lx is not a memory region - disabling initrd\n",
> --
> 1.8.1.2
>
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 20/28] arm64: set initrd_start/initrd_end for fdt scan
2013-09-17 8:50 ` Catalin Marinas
@ 2013-09-18 3:36 ` Grant Likely
0 siblings, 0 replies; 18+ messages in thread
From: Grant Likely @ 2013-09-18 3:36 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, 17 Sep 2013 09:50:04 +0100, Catalin Marinas <catalin.marinas@arm.com> wrote:
> On 17 Sep 2013, at 00:09, Rob Herring <robherring2@gmail.com> wrote:
> > From: Rob Herring <rob.herring@calxeda.com>
> >
> > In order to unify the initrd scanning for DT across architectures, make
> > arm64 use initrd_start and initrd_end instead of the physical addresses.
> >
> > Signed-off-by: Rob Herring <rob.herring@calxeda.com>
> > Cc: Catalin Marinas <catalin.marinas@arm.com>
> > Cc: Will Deacon <will.deacon@arm.com>
> > Cc: linux-arm-kernel at lists.infradead.org
>
> Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: Grant Likely <grant.likely@linaro.org>
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 18/28] of: create default early_init_dt_add_memory_arch
2013-09-18 3:33 ` Grant Likely
@ 2013-09-18 15:09 ` Rob Herring
2013-09-22 12:16 ` Grant Likely
0 siblings, 1 reply; 18+ messages in thread
From: Rob Herring @ 2013-09-18 15:09 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Sep 17, 2013 at 10:33 PM, Grant Likely <grant.likely@linaro.org> wrote:
> On Mon, 16 Sep 2013 18:09:14 -0500, Rob Herring <robherring2@gmail.com> wrote:
>> From: Rob Herring <rob.herring@calxeda.com>
>>
>> Create a weak version of early_init_dt_add_memory_arch which uses
>> memblock or is an empty function when memblock is not enabled. This
>> will unify all architectures except ones with custom memory bank
>> structs.
>
> Two comments below, but otherwise:
>
> Acked-by: Grant Likely <grant.likely@linaro.org>
>
>> diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
>> index 0714dd4..a9dce7a 100644
>> --- a/drivers/of/fdt.c
>> +++ b/drivers/of/fdt.c
>> @@ -688,6 +688,17 @@ u64 __init dt_mem_next_cell(int s, __be32 **cellp)
>> return of_read_number(p, s);
>> }
>>
>> +void __init __weak early_init_dt_add_memory_arch(u64 base, u64 size)
>> +{
>> +#ifdef CONFIG_HAVE_MEMBLOCK
>> + base &= PAGE_MASK;
>> + size &= PAGE_MASK;
>> + memblock_add(base, size);
>> +#else
>> + pr_err("%s: ignoring memory (%llx, %llx)\n", __func__, base, size);
>> +#endif
>> +}
>> +
>
> Can you do it this way instead:
>
> #ifdef CONFIG_HAVE_MEMBLOCK
> void __init __weak early_init_dt_add_memory_arch(u64 base, u64 size)
> {
> base &= PAGE_MASK;
> size &= PAGE_MASK;
> memblock_add(base, size);
> }
> #endif
>
> If the platform doesn't provide an early_init_dt_add_memory_arch()
> function and it doesn't have a memblock implementation, then the build
> should outright fail. I don't see a scenario where we would want to
> successfully build the kernel without a working add memory function.
metag and x86 both have empty functions. I guess they get memory from
a different boot interface.
Rob
>
> Also, can you group this function with the common __weak
> early_init_dt_alloc_memory_arch() implementation? It would be good to
> group all the memblock specific functions together.
>
> g.
>
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 18/28] of: create default early_init_dt_add_memory_arch
2013-09-18 15:09 ` Rob Herring
@ 2013-09-22 12:16 ` Grant Likely
0 siblings, 0 replies; 18+ messages in thread
From: Grant Likely @ 2013-09-22 12:16 UTC (permalink / raw)
To: linux-arm-kernel
On Wed, 18 Sep 2013 10:09:40 -0500, Rob Herring <robherring2@gmail.com> wrote:
> On Tue, Sep 17, 2013 at 10:33 PM, Grant Likely <grant.likely@linaro.org> wrote:
> > On Mon, 16 Sep 2013 18:09:14 -0500, Rob Herring <robherring2@gmail.com> wrote:
> >> From: Rob Herring <rob.herring@calxeda.com>
> >>
> >> Create a weak version of early_init_dt_add_memory_arch which uses
> >> memblock or is an empty function when memblock is not enabled. This
> >> will unify all architectures except ones with custom memory bank
> >> structs.
> >
> > Two comments below, but otherwise:
> >
> > Acked-by: Grant Likely <grant.likely@linaro.org>
> >
> >> diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
> >> index 0714dd4..a9dce7a 100644
> >> --- a/drivers/of/fdt.c
> >> +++ b/drivers/of/fdt.c
> >> @@ -688,6 +688,17 @@ u64 __init dt_mem_next_cell(int s, __be32 **cellp)
> >> return of_read_number(p, s);
> >> }
> >>
> >> +void __init __weak early_init_dt_add_memory_arch(u64 base, u64 size)
> >> +{
> >> +#ifdef CONFIG_HAVE_MEMBLOCK
> >> + base &= PAGE_MASK;
> >> + size &= PAGE_MASK;
> >> + memblock_add(base, size);
> >> +#else
> >> + pr_err("%s: ignoring memory (%llx, %llx)\n", __func__, base, size);
> >> +#endif
> >> +}
> >> +
> >
> > Can you do it this way instead:
> >
> > #ifdef CONFIG_HAVE_MEMBLOCK
> > void __init __weak early_init_dt_add_memory_arch(u64 base, u64 size)
> > {
> > base &= PAGE_MASK;
> > size &= PAGE_MASK;
> > memblock_add(base, size);
> > }
> > #endif
> >
> > If the platform doesn't provide an early_init_dt_add_memory_arch()
> > function and it doesn't have a memblock implementation, then the build
> > should outright fail. I don't see a scenario where we would want to
> > successfully build the kernel without a working add memory function.
>
> metag and x86 both have empty functions. I guess they get memory from
> a different boot interface.
I would put the exceptions into arch/x86 and arch/metag then. The
default answer should be that early_init_dt_add_memory_arch() works, and
the build will fail if they aren't implemented. If it really is valid to
have an empty implementation, then the architecture should have to do
something special to get that.
g.
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2013-09-22 12:16 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1379372965-22359-1-git-send-email-robherring2@gmail.com>
2013-09-16 23:09 ` [PATCH 11/28] arm: use early_init_dt_scan Rob Herring
2013-09-16 23:09 ` [PATCH 12/28] arm64: " Rob Herring
2013-09-17 8:43 ` Catalin Marinas
2013-09-16 23:09 ` [PATCH 18/28] of: create default early_init_dt_add_memory_arch Rob Herring
2013-09-17 8:46 ` Catalin Marinas
2013-09-17 13:01 ` Rob Herring
2013-09-17 15:28 ` Catalin Marinas
2013-09-18 3:33 ` Grant Likely
2013-09-18 15:09 ` Rob Herring
2013-09-22 12:16 ` Grant Likely
2013-09-16 23:09 ` [PATCH 19/28] arm: set initrd_start/initrd_end for fdt scan Rob Herring
2013-09-18 3:36 ` Grant Likely
2013-09-16 23:09 ` [PATCH 20/28] arm64: " Rob Herring
2013-09-17 8:50 ` Catalin Marinas
2013-09-18 3:36 ` Grant Likely
2013-09-16 23:09 ` [PATCH 25/28] arm: use common of_flat_dt_match_machine Rob Herring
2013-09-16 23:09 ` [PATCH 26/28] arm64: use common of_flat_dt_get_machine_name Rob Herring
2013-09-17 8:53 ` Catalin Marinas
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).