support both be and le arm targets in one file
[AROS.git] / arch / armeb-raspi / boot / mmakefile.src
blobe869e7bfe7aeb789b1c29b2e1caae53cbaa85fea
1 # $Id $
3 include $(SRCDIR)/config/aros.cfg
5 TARGETDIR       := $(GENDIR)/$(CURDIR)
6 FILES           := boot mmu kprintf support vc_mb serialdebug elf devicetree \
7                    bc/vars bc/font8x14 bc/screen_fb vc_fb
8 USER_CFLAGS     := -ffixed-r8 -Wall $(CFLAGS_NO_BUILTIN)
9 KERNEL_LDFLAGS  =
10 USER_INCLUDES   := -isystem $(SRCDIR)/$(CURDIR)/include -I$(SRCDIR)/rom/openfirmware
11 USER_CPPFLAGS     := -DUSE_UBOOT
12 OPTIMIZATION_CFLAGS := -O2
14 ARM_BSP := aros-$(AROS_TARGET_CPU)-bsp.rom
16 #MM- distfiles-raspi-armhf : distfiles-raspi
17 #MM- distfiles-raspi-arm : distfiles-raspi
18 #MM- distfiles-raspi-armeb : distfiles-raspi-be
19 #MM- distfiles-quick-raspi-armeb : distfiles-raspi-be-quick
21 #MM- distfiles-raspi-quick : \
22 #MM kernel-raspi-arm-quick \
23 #MM kernel-package-raspi-arm-quick \
24 #MM distfiles-raspi-fw
26 #MM distfiles-raspi : \
27 #MM kernel-raspi-arm \
28 #MM kernel-package-raspi-arm \
29 #MM distfiles-raspi-fw
31 #MM- distfiles-raspi-be-quick : \
32 #MM kernel-raspi-arm-quick \
33 #MM kernel-package-raspi-arm-quick \
34 #MM distfiles-raspi-fw
36 #MM distfiles-raspi-be : \
37 #MM kernel-raspi-arm \
38 #MM kernel-package-raspi-arm \
39 #MM distfiles-raspi-fw
41 #MM kernel-package-raspi-arm-quick: \
42 #MM linklibs-stdc-static-quick \
43 #MM kernel-dos-quick \
44 #MM kernel-bootloader-quick \
45 #MM kernel-dosboot-quick \
46 #MM kernel-oop-quick \
47 #MM kernel-utility-quick \
48 #MM kernel-debug-quick \
49 #MM kernel-expansion-quick \
50 #MM kernel-openfirmware-quick \
51 #MM kernel-graphics-quick \
52 #MM kernel-cgxbootpic-quick \
53 #MM kernel-intuition-quick \
54 #MM kernel-partition-quick \
55 #MM kernel-layers-quick \
56 #MM kernel-timer-quick \
57 #MM kernel-lddemon-quick \
58 #MM kernel-hidd-quick \
59 #MM kernel-aros-quick \
60 #MM kernel-misc-quick \
61 #MM kernel-keymap-quick \
62 #MM kernel-input-quick \
63 #MM kernel-gameport-quick \
64 #MM kernel-keyboard-quick \
65 #MM kernel-console-quick \
66 #MM kernel-shell-quick \
67 #MM kernel-shellcommands-quick \
68 #MM kernel-filesystem-quick \
69 #MM kernel-fs-con-quick \
70 #MM kernel-fs-afs-quick \
71 #MM kernel-fs-cdvdfs-quick \
72 #MM kernel-fs-fat-quick \
73 #MM kernel-fs-sfs-quick \
74 #MM kernel-fs-ram-quick \
75 #MM kernel-processor-quick \
76 #MM kernel-mbox-bcm2708-quick \
77 #MM hidd-i2c-quick \
78 #MM kernel-hidd-gfx-quick \
79 #MM hidd-vc4gfx-quick \
80 #MM kernel-sdcard-quick \
81 #MM kernel-hidd-kbd-quick \
82 #MM kernel-hidd-mouse-quick \
83 #MM kernel-usb-nopci-quick \
84 #MM kernel-usb-usb2otg-quick \
85 #MM kernel-usb-romstrap-raspi-quick \
86 #MM kernel-econsole-quick
88 #MM kernel-package-raspi-arm: \
89 #MM linklibs-stdc-static \
90 #MM kernel-dos \
91 #MM kernel-bootloader \
92 #MM kernel-dosboot \
93 #MM kernel-oop \
94 #MM kernel-utility \
95 #MM kernel-debug \
96 #MM kernel-expansion \
97 #MM kernel-openfirmware \
98 #MM kernel-graphics \
99 #MM kernel-cgxbootpic \
100 #MM kernel-intuition \
101 #MM kernel-partition \
102 #MM kernel-layers \
103 #MM kernel-timer \
104 #MM kernel-lddemon \
105 #MM kernel-hidd \
106 #MM kernel-aros \
107 #MM kernel-misc \
108 #MM kernel-keymap \
109 #MM kernel-input \
110 #MM kernel-gameport \
111 #MM kernel-keyboard \
112 #MM kernel-console \
113 #MM kernel-shell \
114 #MM kernel-shellcommands \
115 #MM kernel-filesystem \
116 #MM kernel-fs-con \
117 #MM kernel-fs-afs \
118 #MM kernel-fs-cdvdfs \
119 #MM kernel-fs-fat \
120 #MM kernel-fs-sfs \
121 #MM kernel-fs-ram \
122 #MM kernel-processor \
123 #MM kernel-mbox-bcm2708 \
124 #MM kernel-sdcard \
125 #MM hidd-i2c \
126 #MM hidd-i2c-bcm2708 \
127 #MM hidd-vc4gfx \
128 #MM kernel-hidd-gfx \
129 #MM kernel-hidd-kbd \
130 #MM kernel-hidd-mouse \
131 #MM kernel-usb-nopci \
132 #MM kernel-usb-usb2otg \
133 #MM kernel-usb-romstrap-raspi \
134 #MM kernel-econsole
136 #MM kernel-package-raspi-arm-missing: \
137 #MM kernel-battclock
139 RASPIFW_BRANCH    := master
140 RASPIFW_URI       := https://github.com/raspberrypi/firmware/blob/$(RASPIFW_BRANCH)/boot
141 RASPIFW_FILES     := LICENCE.broadcom bootcode.bin fixup.dat start.elf bcm2709-rpi-2-b.dtb bcm2710-rpi-3-b-plus.dtb bcm2710-rpi-3-b.dtb
143 PKG_LIBS      := aros partition utility oop graphics layers intuition keymap dos debug poseidon cgxbootpic
144 PKG_LIBS_ARCH := expansion
145 PKG_RSRC      := openfirmware misc bootloader dosboot lddemon usbromstartup FileSystem shell shellcommands mbox
146 PKG_RSRC_ARCH := processor
147 PKG_DEVS      := input gameport keyboard console sdcard USBHardware/usb2otg
148 PKG_DEVS_ARCH := timer
149 PKG_HANDLERS  := con ram cdrom sfs fat afs
150 PKG_HIDDS     := gfx mouse keyboard hiddclass i2c i2c-bcm2708 vc4gfx
151 PKG_CLASSES   := USB/hid USB/hub USB/bootmouse USB/bootkeyboard USB/massstorage
153 %make_package mmake=kernel-package-raspi-arm file=$(AROSDIR)/$(ARM_BSP) \
154     libs=$(PKG_LIBS) arch_libs=$(PKG_LIBS_ARCH) res=$(PKG_RSRC) \
155     arch_res=$(PKG_RSRC_ARCH) devs=$(PKG_DEVS) arch_devs=$(PKG_DEVS_ARCH) \
156     handlers=$(PKG_HANDLERS) hidds=$(PKG_HIDDS) classes=$(PKG_CLASSES)
159 distfiles-raspi-fw:
160         $(foreach file, $(RASPIFW_FILES), $(shell wget -t 5 -T 15 -c "$(addprefix $(RASPIFW_URI)/, $(addsuffix ?raw=true, $(file)))" -O "$(addprefix $(AROSDIR)/, $(file))"))
163 distfiles-raspi-be-bootimg: $(AROSDIR)/aros-$(AROS_TARGET_CPU)-raspi.img
166 distfiles-raspi-bootimg: $(AROSDIR)/aros-$(AROS_TARGET_CPU)-raspi.img
169 distfiles-raspi-be-bootimg-quick: $(AROSDIR)/aros-$(AROS_TARGET_CPU)-raspi.img
172 distfiles-raspi-bootimg-quick: $(AROSDIR)/aros-$(AROS_TARGET_CPU)-raspi.img
174 $(AROSDIR)/config.txt: $(AROSDIR)/$(ARM_BSP)
175         @printf "kernel=aros-$(AROS_TARGET_CPU)-raspi.img\ninitramfs $(ARM_BSP) 0x00800000" > $@
177 $(AROSDIR)/aros-armeb-raspi.img: $(TARGETDIR)/core-be.bin.o $(foreach f, $(FILES), $(TARGETDIR)/$(f).o $(TARGETDIR)/$(f).d)
178         $(KERNEL_LD) --be8 --format elf32-bigarm -s --entry=bootstrap --script=$(SRCDIR)/$(CURDIR)/ldscript-be.lds $(foreach f, $(FILES), $(TARGETDIR)/$(f).o) $ $(TARGETDIR)/core.bin.o -L$(AROS_LIB) -lstdc.static -laeabi -o $(OSGENDIR)/boot/aros-armeb-raspi.img.elf
179         $(TARGET_OBJCOPY) -O binary $(OSGENDIR)/boot/aros-armeb-raspi.img.elf $@
181 $(AROSDIR)/aros-arm-raspi.img: $(TARGETDIR)/core.bin.o $(foreach f, $(FILES), $(TARGETDIR)/$(f).o $(TARGETDIR)/$(f).d)
182         $(KERNEL_LD) -s --entry=bootstrap --script=$(SRCDIR)/$(CURDIR)/ldscript-le.lds $(foreach f, $(FILES), $(TARGETDIR)/$(f).o) $ $(TARGETDIR)/core.bin.o -L$(AROS_LIB) -lstdc.static -laeabi -o $(OSGENDIR)/boot/aros-armeb-raspi.img.elf
183         $(TARGET_OBJCOPY) -O binary $(OSGENDIR)/boot/aros-armeb-raspi.img.elf $@
185 $(TARGETDIR)/core-be.bin.o: $(OSGENDIR)/boot/core.elf
186         cp $(OSGENDIR)/boot/core.elf $(TARGETDIR)/core-be.bin
187         cd $(TARGETDIR) && $(KERNEL_LD) $(KERNEL_LDFLAGS) --be8 -r --format binary --oformat elf32-bigarm core-be.bin -o $@
189 $(TARGETDIR)/core.bin.o: $(OSGENDIR)/boot/core.elf
190         cp $(OSGENDIR)/boot/core.elf $(TARGETDIR)/core.bin
191         cd $(TARGETDIR) && $(KERNEL_LD) $(KERNEL_LDFLAGS) -r --format binary --oformat elf32-littlearm core.bin -o $@
193 distfiles-raspi-be: $(DISTDIR)/aros$(AROS_TARGET_SUFFIX)-raspi-armeb.tar.bz2
194 distfiles-raspi-be-quick: $(DISTDIR)/aros$(AROS_TARGET_SUFFIX)-raspi-armeb.tar.bz2
196 distfiles-raspi: $(DISTDIR)/aros$(AROS_TARGET_SUFFIX)-raspi-arm.tar.bz2
197 distfiles-raspi-quick: $(DISTDIR)/aros$(AROS_TARGET_SUFFIX)-raspi-arm.tar.bz2
199 $(DISTDIR)/aros$(AROS_TARGET_SUFFIX)-raspi-armeb.tar.bz2: $(AROSDIR)/aros-armeb-raspi.img  $(AROSDIR)/$(ARM_BSP) $(AROSDIR)/config.txt
200         %mkdirs_q $(AROSDIR)/S
201         @$(CP) $(SRCDIR)/workbench/s/Startup-Sequence $(AROSDIR)/S/Startup-Sequence
202         @$(MKDIR) -p "$(DISTDIR)"
203         cd $(AROSDIR) && tar -cjf  $@ ./
205 $(DISTDIR)/aros$(AROS_TARGET_SUFFIX)-raspi-arm.tar.bz2: $(AROSDIR)/aros-arm-raspi.img  $(AROSDIR)/$(ARM_BSP) $(AROSDIR)/config.txt
206         %mkdirs_q $(AROSDIR)/S
207         @$(CP) $(SRCDIR)/workbench/s/Startup-Sequence $(AROSDIR)/S/Startup-Sequence
208         @$(MKDIR) -p "$(DISTDIR)"
209         cd $(AROSDIR) && tar -cjf  $@ ./
212 clean ::
213         -$(RM) $(TESTS)
215 $(TARGETDIR)/%.o : %.c
216         %compile_q
218 $(TARGETDIR)/%.o : %.S
219         %compile_q
221 $(TARGETDIR)/%.d : %.c
222         %mkdepend_q
224 DEPS    := $(foreach f, $(FILES), $(TARGETDIR)/$(f).d)
226 -include $(DEPS)
228 %common