Stefan Reinauer | 52db0b9 | 2012-12-07 17:15:04 -0800 | [diff] [blame] | 1 | ################################################################################ |
| 2 | ## |
| 3 | ## This file is part of the coreboot project. |
| 4 | ## |
Gabe Black | 169c0df | 2013-10-08 18:24:10 -0700 | [diff] [blame] | 5 | ## Copyright (C) 2012-2013 The ChromiumOS Authors |
Stefan Reinauer | 52db0b9 | 2012-12-07 17:15:04 -0800 | [diff] [blame] | 6 | ## Copyright (C) 2012 Alexandru Gagniuc <mr.nuke.me@gmail.com> |
| 7 | ## Copyright (C) 2009-2010 coresystems GmbH |
| 8 | ## Copyright (C) 2009 Ronald G. Minnich |
| 9 | ## |
| 10 | ## This program is free software; you can redistribute it and/or modify |
| 11 | ## it under the terms of the GNU General Public License as published by |
| 12 | ## the Free Software Foundation; version 2 of the License. |
| 13 | ## |
| 14 | ## This program is distributed in the hope that it will be useful, |
| 15 | ## but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 16 | ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 17 | ## GNU General Public License for more details. |
| 18 | ## |
| 19 | ## You should have received a copy of the GNU General Public License |
| 20 | ## along with this program; if not, write to the Free Software |
Patrick Georgi | b890a12 | 2015-03-26 15:17:45 +0100 | [diff] [blame] | 21 | ## Foundation, Inc. |
Stefan Reinauer | 52db0b9 | 2012-12-07 17:15:04 -0800 | [diff] [blame] | 22 | ## |
Stefan Reinauer | 52db0b9 | 2012-12-07 17:15:04 -0800 | [diff] [blame] | 23 | |
Furquan Shaikh | 88ca81a | 2014-04-22 16:33:22 -0700 | [diff] [blame] | 24 | ############################################################################### |
| 25 | # ARM specific options |
| 26 | ############################################################################### |
Stefan Reinauer | 52db0b9 | 2012-12-07 17:15:04 -0800 | [diff] [blame] | 27 | |
Gabe Black | 51edd54 | 2013-09-30 23:00:33 -0700 | [diff] [blame] | 28 | ifeq ($(CONFIG_ARCH_ROMSTAGE_ARM),y) |
Julius Werner | efcee76 | 2014-11-10 13:14:24 -0800 | [diff] [blame] | 29 | CBFSTOOL_PRE1_OPTS = -m arm -s $(CONFIG_CBFS_SIZE) |
Furquan Shaikh | 88ca81a | 2014-04-22 16:33:22 -0700 | [diff] [blame] | 30 | CBFSTOOL_PRE_OPTS = -b 0 |
Furquan Shaikh | 99ac98f | 2014-04-23 10:18:48 -0700 | [diff] [blame] | 31 | endif |
Stefan Reinauer | 52db0b9 | 2012-12-07 17:15:04 -0800 | [diff] [blame] | 32 | |
Gabe Black | 51edd54 | 2013-09-30 23:00:33 -0700 | [diff] [blame] | 33 | ifeq ($(CONFIG_ARCH_ARM),y) |
Patrick Georgi | 8ef8afb | 2015-04-29 20:28:03 +0200 | [diff] [blame] | 34 | subdirs-y += libgcc/ |
| 35 | subdirs-y += armv4/ armv7/ |
| 36 | |
Gabe Black | 51edd54 | 2013-09-30 23:00:33 -0700 | [diff] [blame] | 37 | stages_c = $(src)/arch/arm/stages.c |
| 38 | stages_o = $(obj)/arch/arm/stages.o |
Ronald G. Minnich | 27bd64a | 2013-02-28 17:47:00 +0100 | [diff] [blame] | 39 | |
Gabe Black | 4938a32 | 2013-09-15 20:53:57 -0700 | [diff] [blame] | 40 | $(stages_o): $(stages_c) $(obj)/config.h |
Ronald G. Minnich | 27bd64a | 2013-02-28 17:47:00 +0100 | [diff] [blame] | 41 | @printf " CC $(subst $(obj)/,,$(@))\n" |
Gabe Black | 51edd54 | 2013-09-30 23:00:33 -0700 | [diff] [blame] | 42 | $(CC_arm) -I. $(CPPFLAGS_arm) -c -o $@ $< -marm |
Ronald G. Minnich | 27bd64a | 2013-02-28 17:47:00 +0100 | [diff] [blame] | 43 | |
Gabe Black | 51edd54 | 2013-09-30 23:00:33 -0700 | [diff] [blame] | 44 | endif # CONFIG_ARCH_ARM |
David Hendricks | 10c90d3 | 2012-12-27 13:30:55 -0800 | [diff] [blame] | 45 | |
Furquan Shaikh | 88ca81a | 2014-04-22 16:33:22 -0700 | [diff] [blame] | 46 | ############################################################################### |
| 47 | # bootblock |
| 48 | ############################################################################### |
Ronald G. Minnich | b21eaa7 | 2013-03-07 15:23:45 -0800 | [diff] [blame] | 49 | |
Gabe Black | 51edd54 | 2013-09-30 23:00:33 -0700 | [diff] [blame] | 50 | ifeq ($(CONFIG_ARCH_BOOTBLOCK_ARM),y) |
Furquan Shaikh | 99ac98f | 2014-04-23 10:18:48 -0700 | [diff] [blame] | 51 | |
Gabe Black | a2a87d4 | 2013-09-29 05:40:13 -0700 | [diff] [blame] | 52 | bootblock-y += id.S |
Gabe Black | 8b68539 | 2013-09-29 03:02:55 -0700 | [diff] [blame] | 53 | $(obj)/arch/arm/id.bootblock.o: $(obj)/build.h |
Gabe Black | 8b68539 | 2013-09-29 03:02:55 -0700 | [diff] [blame] | 54 | |
Aaron Durbin | b3847e6 | 2015-03-20 15:55:08 -0500 | [diff] [blame] | 55 | bootblock-y += boot.c |
Gabe Black | 8b68539 | 2013-09-29 03:02:55 -0700 | [diff] [blame] | 56 | bootblock-y += stages.c |
Stefan Reinauer | 93ce3b3 | 2013-05-24 14:38:48 -0700 | [diff] [blame] | 57 | bootblock-y += eabi_compat.c |
Stefan Reinauer | ff7c8e8 | 2013-05-29 13:12:20 -0700 | [diff] [blame] | 58 | bootblock-y += memset.S |
Stefan Reinauer | ff7c8e8 | 2013-05-29 13:12:20 -0700 | [diff] [blame] | 59 | bootblock-y += memcpy.S |
Gabe Black | 7a6651c | 2013-07-07 14:15:22 -0700 | [diff] [blame] | 60 | bootblock-y += memmove.S |
Gabe Black | 169c0df | 2013-10-08 18:24:10 -0700 | [diff] [blame] | 61 | bootblock-y += div0.c |
Furquan Shaikh | d653ae8 | 2014-06-24 15:21:03 -0700 | [diff] [blame] | 62 | bootblock-y += clock.c |
Stefan Reinauer | ff7c8e8 | 2013-05-29 13:12:20 -0700 | [diff] [blame] | 63 | |
Aaron Durbin | 52a530d | 2015-05-08 15:47:00 -0500 | [diff] [blame] | 64 | $(objcbfs)/bootblock.debug: $$(bootblock-objs) |
Stefan Reinauer | 52db0b9 | 2012-12-07 17:15:04 -0800 | [diff] [blame] | 65 | @printf " LINK $(subst $(obj)/,,$(@))\n" |
Aaron Durbin | d4dd44c | 2015-09-06 10:15:17 -0500 | [diff] [blame] | 66 | $(LD_bootblock) $(LDFLAGS_bootblock) -o $@ -L$(obj) -T $(obj)/mainboard/$(MAINBOARDDIR)/memlayout.bootblock.ld --whole-archive --start-group $(filter-out %.ld,$(bootblock-objs)) --end-group |
Stefan Reinauer | 52db0b9 | 2012-12-07 17:15:04 -0800 | [diff] [blame] | 67 | |
Gabe Black | 51edd54 | 2013-09-30 23:00:33 -0700 | [diff] [blame] | 68 | endif # CONFIG_ARCH_BOOTBLOCK_ARM |
Furquan Shaikh | 99ac98f | 2014-04-23 10:18:48 -0700 | [diff] [blame] | 69 | |
Furquan Shaikh | 88ca81a | 2014-04-22 16:33:22 -0700 | [diff] [blame] | 70 | ############################################################################### |
Daisuke Nojiri | bcc1d42 | 2014-06-19 19:16:24 -0700 | [diff] [blame] | 71 | # verification stage |
| 72 | ############################################################################### |
| 73 | |
Aaron Durbin | 804c139 | 2015-04-22 12:10:06 -0500 | [diff] [blame] | 74 | ifeq ($(CONFIG_ARCH_VERSTAGE_ARM),y) |
| 75 | |
Aaron Durbin | 52a530d | 2015-05-08 15:47:00 -0500 | [diff] [blame] | 76 | $(objcbfs)/verstage.debug: $(objgenerated)/libverstage.a $$(verstage-objs) |
Daisuke Nojiri | efddcfb | 2014-09-04 09:55:34 -0700 | [diff] [blame] | 77 | @printf " LINK $(subst $(obj)/,,$(@))\n" |
Aaron Durbin | d4dd44c | 2015-09-06 10:15:17 -0500 | [diff] [blame] | 78 | $(LD_verstage) $(LDFLAGS_verstage) -o $@ -L$(obj) -T $(obj)/mainboard/$(MAINBOARDDIR)/memlayout.verstage.ld --whole-archive --start-group $(filter-out %.ld,$(verstage-objs)) $(objgenerated)/libverstage.a --end-group |
Daisuke Nojiri | efddcfb | 2014-09-04 09:55:34 -0700 | [diff] [blame] | 79 | |
Aaron Durbin | 52a530d | 2015-05-08 15:47:00 -0500 | [diff] [blame] | 80 | verstage-y += boot.c |
Daisuke Nojiri | bcc1d42 | 2014-06-19 19:16:24 -0700 | [diff] [blame] | 81 | verstage-y += div0.c |
| 82 | verstage-y += eabi_compat.c |
| 83 | verstage-y += memset.S |
| 84 | verstage-y += memcpy.S |
| 85 | verstage-y += memmove.S |
| 86 | verstage-y += stages.c |
| 87 | |
Aaron Durbin | 804c139 | 2015-04-22 12:10:06 -0500 | [diff] [blame] | 88 | endif # CONFIG_ARCH_VERSTAGE_ARM |
| 89 | |
Daisuke Nojiri | bcc1d42 | 2014-06-19 19:16:24 -0700 | [diff] [blame] | 90 | ############################################################################### |
Furquan Shaikh | 88ca81a | 2014-04-22 16:33:22 -0700 | [diff] [blame] | 91 | # romstage |
| 92 | ############################################################################### |
| 93 | |
Gabe Black | 51edd54 | 2013-09-30 23:00:33 -0700 | [diff] [blame] | 94 | ifeq ($(CONFIG_ARCH_ROMSTAGE_ARM),y) |
Furquan Shaikh | 99ac98f | 2014-04-23 10:18:48 -0700 | [diff] [blame] | 95 | |
Aaron Durbin | b3847e6 | 2015-03-20 15:55:08 -0500 | [diff] [blame] | 96 | romstage-y += boot.c |
Gabe Black | 8b68539 | 2013-09-29 03:02:55 -0700 | [diff] [blame] | 97 | romstage-y += stages.c |
Furquan Shaikh | 88ca81a | 2014-04-22 16:33:22 -0700 | [diff] [blame] | 98 | romstage-y += div0.c |
| 99 | romstage-y += eabi_compat.c |
| 100 | romstage-y += memset.S |
| 101 | romstage-y += memcpy.S |
| 102 | romstage-y += memmove.S |
Furquan Shaikh | d653ae8 | 2014-06-24 15:21:03 -0700 | [diff] [blame] | 103 | romstage-y += clock.c |
Furquan Shaikh | a742ef1 | 2014-07-23 11:41:59 -0700 | [diff] [blame] | 104 | rmodules_arm-y += memset.S |
| 105 | rmodules_arm-y += memcpy.S |
| 106 | rmodules_arm-y += memmove.S |
| 107 | rmodules_arm-y += eabi_compat.c |
Furquan Shaikh | 88ca81a | 2014-04-22 16:33:22 -0700 | [diff] [blame] | 108 | |
Julius Werner | ec5e5e0 | 2014-08-20 15:29:56 -0700 | [diff] [blame] | 109 | $(objcbfs)/romstage.debug: $$(romstage-objs) |
Stefan Reinauer | 52db0b9 | 2012-12-07 17:15:04 -0800 | [diff] [blame] | 110 | @printf " LINK $(subst $(obj)/,,$(@))\n" |
Aaron Durbin | d4dd44c | 2015-09-06 10:15:17 -0500 | [diff] [blame] | 111 | $(LD_romstage) $(LDFLAGS_romstage) -o $@ -L$(obj) -T $(obj)/mainboard/$(MAINBOARDDIR)/memlayout.romstage.ld --whole-archive --start-group $(filter-out %.ld,$(romstage-objs)) --end-group |
Stefan Reinauer | 52db0b9 | 2012-12-07 17:15:04 -0800 | [diff] [blame] | 112 | |
Gabe Black | 51edd54 | 2013-09-30 23:00:33 -0700 | [diff] [blame] | 113 | endif # CONFIG_ARCH_ROMSTAGE_ARM |
Furquan Shaikh | 88ca81a | 2014-04-22 16:33:22 -0700 | [diff] [blame] | 114 | |
| 115 | ############################################################################### |
| 116 | # ramstage |
| 117 | ############################################################################### |
| 118 | |
Gabe Black | 51edd54 | 2013-09-30 23:00:33 -0700 | [diff] [blame] | 119 | ifeq ($(CONFIG_ARCH_RAMSTAGE_ARM),y) |
Furquan Shaikh | 99ac98f | 2014-04-23 10:18:48 -0700 | [diff] [blame] | 120 | |
Gabe Black | 8b68539 | 2013-09-29 03:02:55 -0700 | [diff] [blame] | 121 | ramstage-y += stages.c |
Furquan Shaikh | 88ca81a | 2014-04-22 16:33:22 -0700 | [diff] [blame] | 122 | ramstage-y += div0.c |
Julius Werner | 635ee51 | 2014-09-23 20:53:20 -0700 | [diff] [blame] | 123 | ramstage-$(CONFIG_COOP_MULTITASKING) += cpu.c |
Furquan Shaikh | 88ca81a | 2014-04-22 16:33:22 -0700 | [diff] [blame] | 124 | ramstage-y += eabi_compat.c |
| 125 | ramstage-y += boot.c |
| 126 | ramstage-y += tables.c |
| 127 | ramstage-y += memset.S |
| 128 | ramstage-y += memcpy.S |
| 129 | ramstage-y += memmove.S |
Furquan Shaikh | d653ae8 | 2014-06-24 15:21:03 -0700 | [diff] [blame] | 130 | ramstage-y += clock.c |
Julius Werner | ec5e5e0 | 2014-08-20 15:29:56 -0700 | [diff] [blame] | 131 | |
Furquan Shaikh | fbff908 | 2014-07-22 15:59:16 -0700 | [diff] [blame] | 132 | rmodules_arm-y += memset.S |
| 133 | rmodules_arm-y += memcpy.S |
| 134 | rmodules_arm-y += memmove.S |
| 135 | rmodules_arm-y += eabi_compat.c |
Furquan Shaikh | 88ca81a | 2014-04-22 16:33:22 -0700 | [diff] [blame] | 136 | ramstage-srcs += $(wildcard src/mainboard/$(MAINBOARDDIR)/mainboard.c) |
| 137 | |
Julius Werner | ec5e5e0 | 2014-08-20 15:29:56 -0700 | [diff] [blame] | 138 | $(objcbfs)/ramstage.debug: $$(ramstage-objs) |
Furquan Shaikh | 88ca81a | 2014-04-22 16:33:22 -0700 | [diff] [blame] | 139 | @printf " CC $(subst $(obj)/,,$(@))\n" |
Aaron Durbin | d4dd44c | 2015-09-06 10:15:17 -0500 | [diff] [blame] | 140 | $(LD_ramstage) $(LDFLAGS_ramstage) -o $@ -L$(obj) -T $(obj)/mainboard/$(MAINBOARDDIR)/memlayout.ramstage.ld --whole-archive --start-group $(filter-out %.ld,$(ramstage-objs)) --end-group |
Furquan Shaikh | 88ca81a | 2014-04-22 16:33:22 -0700 | [diff] [blame] | 141 | |
Gabe Black | 51edd54 | 2013-09-30 23:00:33 -0700 | [diff] [blame] | 142 | endif # CONFIG_ARCH_RAMSTAGE_ARM |