forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6
* 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6: mtd/m25p80: add support to parse the partitions by OF node of/irq: of_irq.c needs to include linux/irq.h of/mips: Cleanup some include directives/files. of/mips: Add device tree support to MIPS of/flattree: Eliminate need to provide early_init_dt_scan_chosen_arch of/device: Rework to use common platform_device_alloc() for allocating devices of/xsysace: Fix OF probing on little-endian systems of: use __be32 types for big-endian device tree data of/irq: remove references to NO_IRQ in drivers/of/platform.c of/promtree: add package-to-path support to pdt of/promtree: add of_pdt namespace to pdt code of/promtree: no longer call prom_ functions directly; use an ops structure of/promtree: make drivers/of/pdt.c no longer sparc-only sparc: break out some PROM device-tree building code out into drivers/of of/sparc: convert various prom_* functions to use phandle sparc: stop exporting openprom.h header powerpc, of_serial: Endianness issues setting up the serial ports of: MTD: Fix OF probing on little-endian systems of: GPIO: Fix OF probing on little-endian systems
- Loading branch information
Showing
60 changed files
with
800 additions
and
417 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
/* | ||
* arch/mips/include/asm/prom.h | ||
* | ||
* Copyright (C) 2010 Cisco Systems Inc. <[email protected]> | ||
* | ||
* This program is free software; you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License version 2 as | ||
* published by the Free Software Foundation. | ||
* | ||
*/ | ||
#ifndef __ASM_MIPS_PROM_H | ||
#define __ASM_MIPS_PROM_H | ||
|
||
#ifdef CONFIG_OF | ||
#include <asm/bootinfo.h> | ||
|
||
/* which is compatible with the flattened device tree (FDT) */ | ||
#define cmd_line arcs_cmdline | ||
|
||
extern int early_init_dt_scan_memory_arch(unsigned long node, | ||
const char *uname, int depth, void *data); | ||
|
||
extern int reserve_mem_mach(unsigned long addr, unsigned long size); | ||
extern void free_mem_mach(unsigned long addr, unsigned long size); | ||
|
||
extern void device_tree_init(void); | ||
#else /* CONFIG_OF */ | ||
static inline void device_tree_init(void) { } | ||
#endif /* CONFIG_OF */ | ||
|
||
#endif /* _ASM_MIPS_PROM_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,112 @@ | ||
/* | ||
* MIPS support for CONFIG_OF device tree support | ||
* | ||
* Copyright (C) 2010 Cisco Systems Inc. <[email protected]> | ||
* | ||
* This program is free software; you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License version 2 as | ||
* published by the Free Software Foundation. | ||
*/ | ||
|
||
#include <linux/init.h> | ||
#include <linux/module.h> | ||
#include <linux/errno.h> | ||
#include <linux/types.h> | ||
#include <linux/bootmem.h> | ||
#include <linux/initrd.h> | ||
#include <linux/debugfs.h> | ||
#include <linux/of.h> | ||
#include <linux/of_fdt.h> | ||
#include <linux/of_irq.h> | ||
#include <linux/of_platform.h> | ||
|
||
#include <asm/page.h> | ||
#include <asm/prom.h> | ||
|
||
int __init early_init_dt_scan_memory_arch(unsigned long node, | ||
const char *uname, int depth, | ||
void *data) | ||
{ | ||
return early_init_dt_scan_memory(node, uname, depth, data); | ||
} | ||
|
||
void __init early_init_dt_add_memory_arch(u64 base, u64 size) | ||
{ | ||
return add_memory_region(base, size, BOOT_MEM_RAM); | ||
} | ||
|
||
int __init reserve_mem_mach(unsigned long addr, unsigned long size) | ||
{ | ||
return reserve_bootmem(addr, size, BOOTMEM_DEFAULT); | ||
} | ||
|
||
void __init free_mem_mach(unsigned long addr, unsigned long size) | ||
{ | ||
return free_bootmem(addr, size); | ||
} | ||
|
||
u64 __init early_init_dt_alloc_memory_arch(u64 size, u64 align) | ||
{ | ||
return virt_to_phys( | ||
__alloc_bootmem(size, align, __pa(MAX_DMA_ADDRESS)) | ||
); | ||
} | ||
|
||
#ifdef CONFIG_BLK_DEV_INITRD | ||
void __init early_init_dt_setup_initrd_arch(unsigned long start, | ||
unsigned long end) | ||
{ | ||
initrd_start = (unsigned long)__va(start); | ||
initrd_end = (unsigned long)__va(end); | ||
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); | ||
|
||
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 = 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); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.