[RFC PATCH v4 4/6] MIPS: Prune some target specific code out of prom.c
David Daney
ddaney at caviumnetworks.com
Sat May 28 03:05:36 EST 2011
On 05/26/2011 06:58 PM, Grant Likely wrote:
> On Fri, May 20, 2011 at 03:25:41PM -0700, David Daney wrote:
>> This code is not common enough to be in a shared file. It is also not
>> used by any existing boards, so just remove it.
>>
>> Signed-off-by: David Daney<ddaney at caviumnetworks.com>
>> ---
>> arch/mips/kernel/prom.c | 49 -----------------------------------------------
>> 1 files changed, 0 insertions(+), 49 deletions(-)
>>
>> diff --git a/arch/mips/kernel/prom.c b/arch/mips/kernel/prom.c
>> index a19811e9..a07b6f1 100644
>> --- a/arch/mips/kernel/prom.c
>> +++ b/arch/mips/kernel/prom.c
>> @@ -59,52 +59,3 @@ void __init early_init_dt_setup_initrd_arch(unsigned long start,
>> initrd_below_start_ok = 1;
>> }
>> #endif
>> -
>> -/*
>> - * irq_create_of_mapping - Hook to resolve OF irq specifier into a Linux irq#
>> - *
>> - * Currently the mapping mechanism is trivial; simple flat hwirq numbers are
>> - * mapped 1:1 onto Linux irq numbers. Cascaded irq controllers are not
>> - * supported.
>> - */
>> -unsigned int irq_create_of_mapping(struct device_node *controller,
>> - const u32 *intspec, unsigned int intsize)
>> -{
>> - return intspec[0];
>> -}
>> -EXPORT_SYMBOL_GPL(irq_create_of_mapping);
>
> In $NEXT_KERNEL+1 irq_create_of_mapping will be replaced by common
> infrastructure code after irq_domain is merged, so this will become
> irrelevant anyway.
Yes, I saw your patch. I will be tracking that as it gets merged.
>
>> -
>> -void __init early_init_devtree(void *params)
>> -{
>> - /* Setup flat device-tree pointer */
>> - initial_boot_params = params;
>> -
>> - /* Retrieve various informations from the /chosen node of the
>> - * device-tree, including the platform type, initrd location and
>> - * size, and more ...
>> - */
>> - of_scan_flat_dt(early_init_dt_scan_chosen, NULL);
>> -
>> - /* Scan memory nodes */
>> - of_scan_flat_dt(early_init_dt_scan_root, NULL);
>> - of_scan_flat_dt(early_init_dt_scan_memory_arch, NULL);
>> -}
>> -
>> -void __init device_tree_init(void)
>> -{
>> - unsigned long base, size;
>> -
>> - if (!initial_boot_params)
>> - return;
>> -
>> - base = virt_to_phys((void *)initial_boot_params);
>> - size = be32_to_cpu(initial_boot_params->totalsize);
>> -
>> - /* Before we do anything, lets reserve the dt blob */
>> - reserve_mem_mach(base, size);
>> -
>> - unflatten_device_tree();
>> -
>> - /* free the space reserved for the dt blob */
>> - free_mem_mach(base, size);
>> -}
>
> I'm a little concerned that the MIPS platforms are not sharing the
> same DT init code. This isn't really something that should need to be
> customized per-platform.
>
For better or worse, the Octeon kernel is booted with a protocol
completely different than any other MIPS board. So there has to be some
custom code to find and initialize the device tree.
For boards that boot with the u-boot 'bootm' protocol, I think we need
to pass the device tree in the environment like other architectures do.
The bootm code could, I think, be made common to all MIPS ports.
David Daney
More information about the devicetree-discuss
mailing list