diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-11-12 02:52:17 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-11-12 02:52:17 -0500 |
commit | 10d0c9705e80bbd3d587c5fad24599aabaca6688 (patch) | |
tree | 9456083a1b04b8d98da08d88e937cfeff80e2a7d /arch/arm64/mm | |
parent | 85b656cf1560e27a89354a23f2c10ba229d2f173 (diff) | |
parent | c11eede69b6ad0ac44ebc1e021a8d2699c5f1f8f (diff) |
Merge tag 'devicetree-for-3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
Pull devicetree updates from Rob Herring:
"DeviceTree updates for 3.13. This is a bit larger pull request than
usual for this cycle with lots of clean-up.
- Cross arch clean-up and consolidation of early DT scanning code.
- Clean-up and removal of arch prom.h headers. Makes arch specific
prom.h optional on all but Sparc.
- Addition of interrupts-extended property for devices connected to
multiple interrupt controllers.
- Refactoring of DT interrupt parsing code in preparation for
deferred probe of interrupts.
- ARM cpu and cpu topology bindings documentation.
- Various DT vendor binding documentation updates"
* tag 'devicetree-for-3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (82 commits)
powerpc: add missing explicit OF includes for ppc
dt/irq: add empty of_irq_count for !OF_IRQ
dt: disable self-tests for !OF_IRQ
of: irq: Fix interrupt-map entry matching
MIPS: Netlogic: replace early_init_devtree() call
of: Add Panasonic Corporation vendor prefix
of: Add Chunghwa Picture Tubes Ltd. vendor prefix
of: Add AU Optronics Corporation vendor prefix
of/irq: Fix potential buffer overflow
of/irq: Fix bug in interrupt parsing refactor.
of: set dma_mask to point to coherent_dma_mask
of: add vendor prefix for PHYTEC Messtechnik GmbH
DT: sort vendor-prefixes.txt
of: Add vendor prefix for Cadence
of: Add empty for_each_available_child_of_node() macro definition
arm/versatile: Fix versatile irq specifications.
of/irq: create interrupts-extended property
microblaze/pci: Drop PowerPC-ism from irq parsing
of/irq: Create of_irq_parse_and_map_pci() to consolidate arch code.
of/irq: Use irq_of_parse_and_map()
...
Diffstat (limited to 'arch/arm64/mm')
-rw-r--r-- | arch/arm64/mm/init.c | 25 |
1 files changed, 6 insertions, 19 deletions
diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c index de2de5db628d..0cb8742de4f2 100644 --- a/arch/arm64/mm/init.c +++ b/arch/arm64/mm/init.c | |||
@@ -31,7 +31,6 @@ | |||
31 | #include <linux/sort.h> | 31 | #include <linux/sort.h> |
32 | #include <linux/of_fdt.h> | 32 | #include <linux/of_fdt.h> |
33 | 33 | ||
34 | #include <asm/prom.h> | ||
35 | #include <asm/sections.h> | 34 | #include <asm/sections.h> |
36 | #include <asm/setup.h> | 35 | #include <asm/setup.h> |
37 | #include <asm/sizes.h> | 36 | #include <asm/sizes.h> |
@@ -39,17 +38,9 @@ | |||
39 | 38 | ||
40 | #include "mm.h" | 39 | #include "mm.h" |
41 | 40 | ||
42 | static unsigned long phys_initrd_start __initdata = 0; | ||
43 | static unsigned long phys_initrd_size __initdata = 0; | ||
44 | |||
45 | phys_addr_t memstart_addr __read_mostly = 0; | 41 | phys_addr_t memstart_addr __read_mostly = 0; |
46 | 42 | ||
47 | void __init early_init_dt_setup_initrd_arch(u64 start, u64 end) | 43 | #ifdef CONFIG_BLK_DEV_INITRD |
48 | { | ||
49 | phys_initrd_start = start; | ||
50 | phys_initrd_size = end - start; | ||
51 | } | ||
52 | |||
53 | static int __init early_initrd(char *p) | 44 | static int __init early_initrd(char *p) |
54 | { | 45 | { |
55 | unsigned long start, size; | 46 | unsigned long start, size; |
@@ -59,12 +50,13 @@ static int __init early_initrd(char *p) | |||
59 | if (*endp == ',') { | 50 | if (*endp == ',') { |
60 | size = memparse(endp + 1, NULL); | 51 | size = memparse(endp + 1, NULL); |
61 | 52 | ||
62 | phys_initrd_start = start; | 53 | initrd_start = (unsigned long)__va(start); |
63 | phys_initrd_size = size; | 54 | initrd_end = (unsigned long)__va(start + size); |
64 | } | 55 | } |
65 | return 0; | 56 | return 0; |
66 | } | 57 | } |
67 | early_param("initrd", early_initrd); | 58 | early_param("initrd", early_initrd); |
59 | #endif | ||
68 | 60 | ||
69 | #define MAX_DMA32_PFN ((4UL * 1024 * 1024 * 1024) >> PAGE_SHIFT) | 61 | #define MAX_DMA32_PFN ((4UL * 1024 * 1024 * 1024) >> PAGE_SHIFT) |
70 | 62 | ||
@@ -137,13 +129,8 @@ void __init arm64_memblock_init(void) | |||
137 | /* Register the kernel text, kernel data and initrd with memblock */ | 129 | /* Register the kernel text, kernel data and initrd with memblock */ |
138 | memblock_reserve(__pa(_text), _end - _text); | 130 | memblock_reserve(__pa(_text), _end - _text); |
139 | #ifdef CONFIG_BLK_DEV_INITRD | 131 | #ifdef CONFIG_BLK_DEV_INITRD |
140 | if (phys_initrd_size) { | 132 | if (initrd_start) |
141 | memblock_reserve(phys_initrd_start, phys_initrd_size); | 133 | memblock_reserve(__virt_to_phys(initrd_start), initrd_end - initrd_start); |
142 | |||
143 | /* Now convert initrd to virtual addresses */ | ||
144 | initrd_start = __phys_to_virt(phys_initrd_start); | ||
145 | initrd_end = initrd_start + phys_initrd_size; | ||
146 | } | ||
147 | #endif | 134 | #endif |
148 | 135 | ||
149 | /* | 136 | /* |