1193323Sed# 2193323Sed# $FreeBSD: releng/10.3/sys/boot/usb/Makefile 269922 2014-08-13 08:21:52Z hselasky $ 3193323Sed# 4193323Sed# Copyright (c) 2013 Hans Petter Selasky. All rights reserved. 5193323Sed# 6193323Sed# Redistribution and use in source and binary forms, with or without 7193323Sed# modification, are permitted provided that the following conditions 8193323Sed# are met: 9193323Sed# 1. Redistributions of source code must retain the above copyright 10193323Sed# notice, this list of conditions and the following disclaimer. 11193323Sed# 2. Redistributions in binary form must reproduce the above copyright 12193323Sed# notice, this list of conditions and the following disclaimer in the 13193323Sed# documentation and/or other materials provided with the distribution. 14193323Sed# 15193323Sed# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 16193323Sed# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17193323Sed# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18193323Sed# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19193323Sed# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20193323Sed# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21193323Sed# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22193323Sed# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23193323Sed# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24193323Sed# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25193323Sed# SUCH DAMAGE. 26193323Sed# 27193323Sed 28239462SdimT=${.CURDIR}/tools 29263508SdimS=${.CURDIR}/../.. 30239462Sdim 31239462Sdim.PATH: \ 32249423Sdim ${.CURDIR} \ 33249423Sdim ${S}/dev/usb \ 34249423Sdim ${S}/dev/usb/controller \ 35249423Sdim ${S}/dev/usb/serial \ 36249423Sdim ${S}/dev/usb/storage \ 37249423Sdim ${S}/dev/usb/template 38249423Sdim 39193323SedLIB= usbboot 40243830SdimINTERNALLIB= 41193323SedOBJCOPY?= objcopy 42193323SedSYSCC?= cc 43193323Sed 44218893SdimCFLAGS+= -DBOOTPROG=\"usbloader\" 45193323SedCFLAGS+= -DUSB_GLOBAL_INCLUDE_FILE=\"bsd_global.h\" 46193323SedCFLAGS+= -ffunction-sections -fdata-sections 47193323SedCFLAGS+= -ffreestanding 48193323SedCFLAGS+= -Wformat -Wall 49193323SedCFLAGS+= -I${S} 50193323SedCFLAGS+= -I${T} 51193323SedCFLAGS+= -I${.CURDIR} 52218893SdimCFLAGS+= -g 53193323Sed 54218893Sdim.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64" 55193323SedCFLAGS+= -march=i386 56193323SedCFLAGS.gcc+= -mpreferred-stack-boundary=2 57218893Sdim.endif 58218893Sdim.if ${MACHINE_CPUARCH} == "amd64" 59193323SedCFLAGS+= -m32 60218893Sdim.endif 61193323Sed 62193323Sed# 63193323Sed# Single threaded BSD kernel 64193323Sed# 65193323SedSRCS+= bsd_kernel.c 66193323Sed 67193323Sed# 68193323Sed# BUSSPACE implementation 69193323Sed# 70193323SedSRCS+= bsd_busspace.c 71193323Sed 72193323Sed# 73218893Sdim# BUSDMA implementation 74218893Sdim# 75218893SdimSRCS+= usb_busdma_loader.c 76218893Sdim 77218893Sdim# 78218893Sdim# USB controller drivers 79193323Sed# 80212904SdimSRCS+= at91dci.c 81218893SdimSRCS+= atmegadci.c 82218893SdimSRCS+= avr32dci.c 83212904SdimSRCS+= dwc_otg.c 84212904SdimSRCS+= ehci.c 85212904SdimSRCS+= musb_otg.c 86212904SdimSRCS+= ohci.c 87212904SdimSRCS+= uhci.c 88212904SdimSRCS+= uss820dci.c 89218893SdimSRCS+= xhci.c 90212904SdimSRCS+= usb_controller.c 91218893Sdim 92218893SdimCFLAGS += -DUSB_PROBE_LIST="\"xhci\", \"ehci\", \"uhci\", \"ohci\"" 93212904Sdim 94221345Sdim# 95221345Sdim# USB core and templates 96218893Sdim# 97221345SdimSRCS+= usb_core.c 98221345SdimSRCS+= usb_debug.c 99221345SdimSRCS+= usb_device.c 100221345SdimSRCS+= usb_dynamic.c 101221345SdimSRCS+= usb_error.c 102221345SdimSRCS+= usb_handle_request.c 103218893SdimSRCS+= usb_hid.c 104218893SdimSRCS+= usb_hub.c 105218893SdimSRCS+= usb_lookup.c 106221345SdimSRCS+= usb_msctest.c 107221345SdimSRCS+= usb_parse.c 108212904SdimSRCS+= usb_request.c 109212904SdimSRCS+= usb_transfer.c 110212904SdimSRCS+= usb_util.c 111212904SdimSRCS+= usb_template.c 112218893SdimSRCS+= usb_template_cdce.c 113212904SdimSRCS+= usb_template_msc.c 114218893SdimSRCS+= usb_template_mtp.c 115212904SdimSRCS+= usb_template_modem.c 116212904SdimSRCS+= usb_template_mouse.c 117218893SdimSRCS+= usb_template_kbd.c 118212904SdimSRCS+= usb_template_audio.c 119212904SdimSRCS+= usb_template_phone.c 120212904SdimSRCS+= sysinit_data.c 121212904SdimSRCS+= sysuninit_data.c 122218893Sdim 123212904SdimCLEANFILES+= sysinit 124212904SdimCLEANFILES+= sysinit.bin 125212904SdimCLEANFILES+= sysinit_data.c 126212904SdimCLEANFILES+= sysuninit_data.c 127218893Sdim 128212904SdimCLEANFILES+= ${SRCS:C/\.c/.osys/g} 129212904Sdim 130212904Sdim.include <bsd.lib.mk> 131212904Sdim 132212904Sdim# 133212904Sdim# SYSINIT() and SYSUNINIT() handling 134212904Sdim# 135212904Sdimsysinit: ${T}/sysinit.c 136212904Sdim ${SYSCC} -Wall -o ${.TARGET} ${.ALLSRC} 137218893Sdim 138212904Sdimsysinit_data.c: sysinit.bin sysinit 139212904Sdim ${.OBJDIR}/sysinit -i sysinit.bin -o ${.TARGET} -k sysinit -s sysinit_data 140212904Sdim 141212904Sdimsysuninit_data.c: sysinit.bin sysinit 142212904Sdim ${.OBJDIR}/sysinit -i sysinit.bin -o ${.TARGET} -R -k sysuninit -s sysuninit_data 143212904Sdim 144218893Sdim.for F in ${OBJS} 145212904Sdim${F}sys: ${F} 146212904Sdim ${OBJCOPY} -j ".debug.sysinit" -O binary ${F} ${.TARGET} 147212904Sdim [ -f ${.TARGET} ] || touch ${.TARGET} 148212904Sdim.endfor 149212904Sdim 150218893Sdimsysinit.bin: ${OBJS:C/\.o/.osys/g:C/sysinit_data.osys//g:C/sysuninit_data.osys//g} 151212904Sdim cat ${.ALLSRC} > sysinit.bin 152221345Sdim