diff options
Diffstat (limited to 'arch/microblaze')
-rw-r--r-- | arch/microblaze/Kconfig | 2 | ||||
-rw-r--r-- | arch/microblaze/boot/Makefile | 12 | ||||
-rw-r--r-- | arch/microblaze/include/asm/prom.h | 3 | ||||
-rw-r--r-- | arch/microblaze/kernel/prom_parse.c | 38 |
4 files changed, 4 insertions, 51 deletions
diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig index 387d5ffdfd3a..5f5018a71a3d 100644 --- a/arch/microblaze/Kconfig +++ b/arch/microblaze/Kconfig | |||
@@ -14,7 +14,7 @@ config MICROBLAZE | |||
14 | select HAVE_DMA_API_DEBUG | 14 | select HAVE_DMA_API_DEBUG |
15 | select TRACING_SUPPORT | 15 | select TRACING_SUPPORT |
16 | select OF | 16 | select OF |
17 | select OF_FLATTREE | 17 | select OF_EARLY_FLATTREE |
18 | 18 | ||
19 | config SWAP | 19 | config SWAP |
20 | def_bool n | 20 | def_bool n |
diff --git a/arch/microblaze/boot/Makefile b/arch/microblaze/boot/Makefile index be01d78750d9..4c4e58ef0cb6 100644 --- a/arch/microblaze/boot/Makefile +++ b/arch/microblaze/boot/Makefile | |||
@@ -10,9 +10,6 @@ targets := linux.bin linux.bin.gz simpleImage.% | |||
10 | 10 | ||
11 | OBJCOPYFLAGS := -O binary | 11 | OBJCOPYFLAGS := -O binary |
12 | 12 | ||
13 | # Where the DTS files live | ||
14 | dtstree := $(srctree)/$(src)/dts | ||
15 | |||
16 | # Ensure system.dtb exists | 13 | # Ensure system.dtb exists |
17 | $(obj)/linked_dtb.o: $(obj)/system.dtb | 14 | $(obj)/linked_dtb.o: $(obj)/system.dtb |
18 | 15 | ||
@@ -51,14 +48,11 @@ $(obj)/simpleImage.%: vmlinux FORCE | |||
51 | $(call if_changed,strip) | 48 | $(call if_changed,strip) |
52 | @echo 'Kernel: $@ is ready' ' (#'`cat .version`')' | 49 | @echo 'Kernel: $@ is ready' ' (#'`cat .version`')' |
53 | 50 | ||
54 | # Rule to build device tree blobs | ||
55 | DTC = $(objtree)/scripts/dtc/dtc | ||
56 | 51 | ||
57 | # Rule to build device tree blobs | 52 | # Rule to build device tree blobs |
58 | quiet_cmd_dtc = DTC $@ | 53 | DTC_FLAGS := -p 1024 |
59 | cmd_dtc = $(DTC) -O dtb -o $(obj)/$*.dtb -b 0 -p 1024 $(dtstree)/$*.dts | ||
60 | 54 | ||
61 | $(obj)/%.dtb: $(dtstree)/%.dts FORCE | 55 | $(obj)/%.dtb: $(src)/dts/%.dts FORCE |
62 | $(call if_changed,dtc) | 56 | $(call cmd,dtc) |
63 | 57 | ||
64 | clean-files += *.dtb simpleImage.*.unstrip linux.bin.ub | 58 | clean-files += *.dtb simpleImage.*.unstrip linux.bin.ub |
diff --git a/arch/microblaze/include/asm/prom.h b/arch/microblaze/include/asm/prom.h index bdc38312ae4a..2e72af078b05 100644 --- a/arch/microblaze/include/asm/prom.h +++ b/arch/microblaze/include/asm/prom.h | |||
@@ -64,9 +64,6 @@ extern void kdump_move_device_tree(void); | |||
64 | /* CPU OF node matching */ | 64 | /* CPU OF node matching */ |
65 | struct device_node *of_get_cpu_node(int cpu, unsigned int *thread); | 65 | struct device_node *of_get_cpu_node(int cpu, unsigned int *thread); |
66 | 66 | ||
67 | /* Get the MAC address */ | ||
68 | extern const void *of_get_mac_address(struct device_node *np); | ||
69 | |||
70 | /** | 67 | /** |
71 | * of_irq_map_pci - Resolve the interrupt for a PCI device | 68 | * of_irq_map_pci - Resolve the interrupt for a PCI device |
72 | * @pdev: the device whose interrupt is to be resolved | 69 | * @pdev: the device whose interrupt is to be resolved |
diff --git a/arch/microblaze/kernel/prom_parse.c b/arch/microblaze/kernel/prom_parse.c index 99d9b61cccb5..9ae24f4b882b 100644 --- a/arch/microblaze/kernel/prom_parse.c +++ b/arch/microblaze/kernel/prom_parse.c | |||
@@ -110,41 +110,3 @@ void of_parse_dma_window(struct device_node *dn, const void *dma_window_prop, | |||
110 | cells = prop ? *(u32 *)prop : of_n_size_cells(dn); | 110 | cells = prop ? *(u32 *)prop : of_n_size_cells(dn); |
111 | *size = of_read_number(dma_window, cells); | 111 | *size = of_read_number(dma_window, cells); |
112 | } | 112 | } |
113 | |||
114 | /** | ||
115 | * Search the device tree for the best MAC address to use. 'mac-address' is | ||
116 | * checked first, because that is supposed to contain to "most recent" MAC | ||
117 | * address. If that isn't set, then 'local-mac-address' is checked next, | ||
118 | * because that is the default address. If that isn't set, then the obsolete | ||
119 | * 'address' is checked, just in case we're using an old device tree. | ||
120 | * | ||
121 | * Note that the 'address' property is supposed to contain a virtual address of | ||
122 | * the register set, but some DTS files have redefined that property to be the | ||
123 | * MAC address. | ||
124 | * | ||
125 | * All-zero MAC addresses are rejected, because those could be properties that | ||
126 | * exist in the device tree, but were not set by U-Boot. For example, the | ||
127 | * DTS could define 'mac-address' and 'local-mac-address', with zero MAC | ||
128 | * addresses. Some older U-Boots only initialized 'local-mac-address'. In | ||
129 | * this case, the real MAC is in 'local-mac-address', and 'mac-address' exists | ||
130 | * but is all zeros. | ||
131 | */ | ||
132 | const void *of_get_mac_address(struct device_node *np) | ||
133 | { | ||
134 | struct property *pp; | ||
135 | |||
136 | pp = of_find_property(np, "mac-address", NULL); | ||
137 | if (pp && (pp->length == 6) && is_valid_ether_addr(pp->value)) | ||
138 | return pp->value; | ||
139 | |||
140 | pp = of_find_property(np, "local-mac-address", NULL); | ||
141 | if (pp && (pp->length == 6) && is_valid_ether_addr(pp->value)) | ||
142 | return pp->value; | ||
143 | |||
144 | pp = of_find_property(np, "address", NULL); | ||
145 | if (pp && (pp->length == 6) && is_valid_ether_addr(pp->value)) | ||
146 | return pp->value; | ||
147 | |||
148 | return NULL; | ||
149 | } | ||
150 | EXPORT_SYMBOL(of_get_mac_address); | ||