aboutsummaryrefslogtreecommitdiffstats
path: root/arch/microblaze/boot
diff options
context:
space:
mode:
authorMichal Simek <monstr@monstr.eu>2009-09-14 09:15:49 -0400
committerMichal Simek <monstr@monstr.eu>2009-09-24 04:28:22 -0400
commitf05131cd7a9521031ccb1afd6234ce57ff03ae45 (patch)
tree35723939661604ca031afead37cb5e270362e9d2 /arch/microblaze/boot
parentcfa9a775b9ddcef7f53c35e489a71cfed8c02710 (diff)
microblaze: Support simpleImage.dts make target
Instead of remembering to specify DTB= on the make commandline, this commit allows the much friendlier make simpleImage.<dts> where <dts>.dts is expected to be found in arch/microblaze/boot/dts/ The resulting vmlinux, with the compiled DTS linked in, will be copied to boot/simpleImage.<dts> This mirrors the same functionality as on PowerPC, albeit achieving it in a slightly different way. + strip simpleImage file The size of output file is very similar to linux.bin. vmlinux - full elf without fdt blob simpleImage.<dtb name>.unstrip - full elf with fdt blob simpleImage.<dtb name> - stripped elf with fdt blob Add symlink to generic system.dts in platform folder Signed-off-by: John Williams <john.williams@petalogix.com> Signed-off-by: Michal Simek <monstr@monstr.eu>
Diffstat (limited to 'arch/microblaze/boot')
-rw-r--r--arch/microblaze/boot/Makefile41
l---------arch/microblaze/boot/dts/system.dts1
-rw-r--r--arch/microblaze/boot/linked_dtb.S3
3 files changed, 43 insertions, 2 deletions
diff --git a/arch/microblaze/boot/Makefile b/arch/microblaze/boot/Makefile
index c2bb043a029d..21f13322a4ca 100644
--- a/arch/microblaze/boot/Makefile
+++ b/arch/microblaze/boot/Makefile
@@ -2,10 +2,24 @@
2# arch/microblaze/boot/Makefile 2# arch/microblaze/boot/Makefile
3# 3#
4 4
5targets := linux.bin linux.bin.gz 5obj-y += linked_dtb.o
6
7targets := linux.bin linux.bin.gz simpleImage.%
6 8
7OBJCOPYFLAGS_linux.bin := -O binary 9OBJCOPYFLAGS_linux.bin := -O binary
8 10
11# Where the DTS files live
12dtstree := $(srctree)/$(src)/dts
13
14# Ensure system.dtb exists
15$(obj)/linked_dtb.o: $(obj)/system.dtb
16
17# Generate system.dtb from $(DTB).dtb
18ifneq ($(DTB),system)
19$(obj)/system.dtb: $(obj)/$(DTB).dtb
20 $(call if_changed,cp)
21endif
22
9$(obj)/linux.bin: vmlinux FORCE 23$(obj)/linux.bin: vmlinux FORCE
10 [ -n $(CONFIG_INITRAMFS_SOURCE) ] && [ ! -e $(CONFIG_INITRAMFS_SOURCE) ] && \ 24 [ -n $(CONFIG_INITRAMFS_SOURCE) ] && [ ! -e $(CONFIG_INITRAMFS_SOURCE) ] && \
11 touch $(CONFIG_INITRAMFS_SOURCE) || echo "No CPIO image" 25 touch $(CONFIG_INITRAMFS_SOURCE) || echo "No CPIO image"
@@ -16,4 +30,27 @@ $(obj)/linux.bin.gz: $(obj)/linux.bin FORCE
16 $(call if_changed,gzip) 30 $(call if_changed,gzip)
17 @echo 'Kernel: $@ is ready' ' (#'`cat .version`')' 31 @echo 'Kernel: $@ is ready' ' (#'`cat .version`')'
18 32
19clean-kernel += linux.bin linux.bin.gz 33quiet_cmd_cp = CP $< $@$2
34 cmd_cp = cat $< >$@$2 || (rm -f $@ && echo false)
35
36quiet_cmd_strip = STRIP $@
37 cmd_strip = $(STRIP) -K _start -K _end -K __log_buf -K _fdt_start vmlinux -o $@
38
39$(obj)/simpleImage.%: vmlinux FORCE
40 $(call if_changed,cp,.unstrip)
41 $(call if_changed,strip)
42 @echo 'Kernel: $@ is ready' ' (#'`cat .version`')'
43
44# Rule to build device tree blobs
45DTC = $(objtree)/scripts/dtc/dtc
46
47# Rule to build device tree blobs
48quiet_cmd_dtc = DTC $@
49 cmd_dtc = $(DTC) -O dtb -o $(obj)/$*.dtb -b 0 -p 1024 $(dtstree)/$*.dts
50
51$(obj)/%.dtb: $(dtstree)/%.dts FORCE
52 $(call if_changed,dtc)
53
54clean-kernel += linux.bin linux.bin.gz simpleImage.*
55
56clean-files += *.dtb
diff --git a/arch/microblaze/boot/dts/system.dts b/arch/microblaze/boot/dts/system.dts
new file mode 120000
index 000000000000..7cb657892f21
--- /dev/null
+++ b/arch/microblaze/boot/dts/system.dts
@@ -0,0 +1 @@
../../platform/generic/system.dts \ No newline at end of file
diff --git a/arch/microblaze/boot/linked_dtb.S b/arch/microblaze/boot/linked_dtb.S
new file mode 100644
index 000000000000..cb2b537aebee
--- /dev/null
+++ b/arch/microblaze/boot/linked_dtb.S
@@ -0,0 +1,3 @@
1.section __fdt_blob,"a"
2.incbin "arch/microblaze/boot/system.dtb"
3