2001-06-17 09:39:44 +00:00
|
|
|
# Makefile.powerpc -- with config changes.
|
1993-06-12 14:58:17 +00:00
|
|
|
# Copyright 1990 W. Jolitz
|
This Makefile is for FreeBSD, not 4.3 BSD-Reno. Moved $Id$.
Added STRIP=, DBSYM=, and LOAD_ADDRESS?=
Now use LOAD_ADDRESS for linking kernel and for dbsym, added strip -x to
cut kernel size.
Added machde.o: dependency, this will be needed in the future, and for
now it does not hurt anyone.
Cleaned out conf.o: dependency, mkdep does the right things. Same for
param.c:
This is really a Merge in of NetBSD's Makefile.i386, here is the relevant
rlog info:
----------------------------
revision 1.27
date: 1993/08/27 23:58:20; author: brezak; state: Exp; lines: +2 -2
Need LOAD_ADDRESS for depend pass.
----------------------------
revision 1.25
date: 1993/07/19 16:52:16; author: mycroft; state: Exp; lines: +3 -3
Add ${DEBUG} to CFLAGS and -f to dbsym.
----------------------------
revision 1.22
date: 1993/07/18 10:08:22; author: mycroft; state: Exp; lines: +5 -6
Change to work with new config stuff for specifying load address.
----------------------------
revision 1.20
date: 1993/07/18 09:47:40; author: mycroft; state: Exp; lines: +6 -5
Use new -T option to dbsym.
----------------------------
revision 1.17
date: 1993/07/11 08:42:22; author: cgd; state: Exp; lines: +2 -2
don't ignore errors from dbsym... it might say that, e.g. there's
not enough symbol space!
----------------------------
revision 1.14
date: 1993/06/06 23:29:03; author: cgd; state: Exp; lines: +2 -2
make conf.o actually depend on conf.c...
----------------------------
revision 1.8
date: 1993/04/29 03:27:39; author: cgd; state: Exp; lines: +5 -10
use ed instead of ex. the script to use is identical, and we might
want to switch back to using ex when our ex supports -.
----------------------------
revision 1.5
date: 1993/03/24 18:48:57; author: cgd; state: Exp; lines: +1 -1
now use absolute path for dbsym
----------------------------
1993-09-26 19:44:33 +00:00
|
|
|
# from: @(#)Makefile.i386 7.1 5/10/91
|
1999-08-28 01:08:13 +00:00
|
|
|
# $FreeBSD$
|
This Makefile is for FreeBSD, not 4.3 BSD-Reno. Moved $Id$.
Added STRIP=, DBSYM=, and LOAD_ADDRESS?=
Now use LOAD_ADDRESS for linking kernel and for dbsym, added strip -x to
cut kernel size.
Added machde.o: dependency, this will be needed in the future, and for
now it does not hurt anyone.
Cleaned out conf.o: dependency, mkdep does the right things. Same for
param.c:
This is really a Merge in of NetBSD's Makefile.i386, here is the relevant
rlog info:
----------------------------
revision 1.27
date: 1993/08/27 23:58:20; author: brezak; state: Exp; lines: +2 -2
Need LOAD_ADDRESS for depend pass.
----------------------------
revision 1.25
date: 1993/07/19 16:52:16; author: mycroft; state: Exp; lines: +3 -3
Add ${DEBUG} to CFLAGS and -f to dbsym.
----------------------------
revision 1.22
date: 1993/07/18 10:08:22; author: mycroft; state: Exp; lines: +5 -6
Change to work with new config stuff for specifying load address.
----------------------------
revision 1.20
date: 1993/07/18 09:47:40; author: mycroft; state: Exp; lines: +6 -5
Use new -T option to dbsym.
----------------------------
revision 1.17
date: 1993/07/11 08:42:22; author: cgd; state: Exp; lines: +2 -2
don't ignore errors from dbsym... it might say that, e.g. there's
not enough symbol space!
----------------------------
revision 1.14
date: 1993/06/06 23:29:03; author: cgd; state: Exp; lines: +2 -2
make conf.o actually depend on conf.c...
----------------------------
revision 1.8
date: 1993/04/29 03:27:39; author: cgd; state: Exp; lines: +5 -10
use ed instead of ex. the script to use is identical, and we might
want to switch back to using ex when our ex supports -.
----------------------------
revision 1.5
date: 1993/03/24 18:48:57; author: cgd; state: Exp; lines: +1 -1
now use absolute path for dbsym
----------------------------
1993-09-26 19:44:33 +00:00
|
|
|
#
|
|
|
|
# Makefile for FreeBSD
|
1993-06-12 14:58:17 +00:00
|
|
|
#
|
|
|
|
# This makefile is constructed from a machine description:
|
|
|
|
# config machineid
|
|
|
|
# Most changes should be made in the machine description
|
2001-06-17 09:39:44 +00:00
|
|
|
# /sys/powerpc/conf/``machineid''
|
1993-06-12 14:58:17 +00:00
|
|
|
# after which you should do
|
|
|
|
# config machineid
|
|
|
|
# Generic makefile changes should be made in
|
2001-10-26 10:33:45 +00:00
|
|
|
# /sys/conf/Makefile.powerpc
|
1993-06-12 14:58:17 +00:00
|
|
|
# after which config should be rerun for all machines.
|
|
|
|
#
|
1997-04-22 06:55:47 +00:00
|
|
|
|
1997-10-22 00:48:36 +00:00
|
|
|
# Which version of config(8) is required.
|
2018-07-17 14:11:30 +00:00
|
|
|
%VERSREQ= 600012
|
1997-10-22 00:48:36 +00:00
|
|
|
|
1997-07-25 11:53:30 +00:00
|
|
|
STD8X16FONT?= iso
|
|
|
|
|
1999-10-30 09:28:27 +00:00
|
|
|
.if !defined(S)
|
1994-08-13 03:50:34 +00:00
|
|
|
.if exists(./@/.)
|
|
|
|
S= ./@
|
|
|
|
.else
|
2001-06-30 06:29:47 +00:00
|
|
|
S= ../../..
|
1994-08-13 03:50:34 +00:00
|
|
|
.endif
|
1999-10-30 09:28:27 +00:00
|
|
|
.endif
|
2010-07-13 05:32:19 +00:00
|
|
|
|
|
|
|
LDSCRIPT_NAME?= ldscript.${MACHINE_ARCH}
|
|
|
|
|
2001-11-02 21:34:20 +00:00
|
|
|
.include "$S/conf/kern.pre.mk"
|
2001-06-12 06:06:18 +00:00
|
|
|
|
Convert Freescale PowerPC platforms to FDT convention.
The following systems are affected:
- MPC8555CDS
- MPC8572DS
This overhaul covers the following major changes:
- All integrated peripherals drivers for Freescale MPC85XX SoC, which are
currently in the FreeBSD source tree are reworked and adjusted so they
derive config data out of the device tree blob (instead of hard coded /
tabelarized values).
- This includes: LBC, PCI / PCI-Express, I2C, DS1553, OpenPIC, TSEC, SEC,
QUICC, UART, CFI.
- Thanks to the common FDT infrastrucutre (fdtbus, simplebus) we retire
ocpbus(4) driver, which was based on hard-coded config data.
Note that world for these platforms has to be built WITH_FDT.
Reviewed by: imp
Sponsored by: The FreeBSD Foundation
2010-07-11 21:08:29 +00:00
|
|
|
INCLUDES+= -I$S/contrib/libfdt
|
|
|
|
|
Create a new MACHINE_ARCH for Freescale PowerPC e500v2
Summary:
The Freescale e500v2 PowerPC core does not use a standard FPU.
Instead, it uses a Signal Processing Engine (SPE)--a DSP-style vector processor
unit, which doubles as a FPU. The PowerPC SPE ABI is incompatible with the
stock powerpc ABI, so a new MACHINE_ARCH was created to deal with this.
Additionaly, the SPE opcodes overlap with Altivec, so these are mutually
exclusive. Taking advantage of this fact, a new file, powerpc/booke/spe.c, was
created with the same function set as in powerpc/powerpc/altivec.c, so it
becomes effectively a drop-in replacement. setjmp/longjmp were modified to save
the upper 32-bits of the now-64-bit GPRs (upper 32-bits are only accessible by
the SPE).
Note: This does _not_ support the SPE in the e500v1, as the e500v1 SPE does not
support double-precision floating point.
Also, without a new MACHINE_ARCH it would be impossible to provide binary
packages which utilize the SPE.
Additionally, no work has been done to support ports, work is needed for this.
This also means no newer gcc can yet be used. However, gcc's powerpc support
has been refactored which would make adding a powerpcspe-freebsd target very
easy.
Test Plan:
This was lightly tested on a RouterBoard RB800 and an AmigaOne A1222
(P1022-based) board, compiled against the new ABI. Base system utilities
(/bin/sh, /bin/ls, etc) still function appropriately, the system is able to boot
multiuser.
Reviewed By: bdrewery, imp
Relnotes: yes
Differential Revision: https://reviews.freebsd.org/D5683
2016-10-22 01:57:15 +00:00
|
|
|
.if "${MACHINE_ARCH}" == "powerpcspe"
|
|
|
|
# Force __SPE__, since the builtin will be removed later with -mno-spe
|
2019-12-27 05:01:13 +00:00
|
|
|
CFLAGS.gcc+= -mabi=spe -D__SPE__
|
|
|
|
CFLAGS.clang+= -mspe -D__SPE__ -m32
|
Create a new MACHINE_ARCH for Freescale PowerPC e500v2
Summary:
The Freescale e500v2 PowerPC core does not use a standard FPU.
Instead, it uses a Signal Processing Engine (SPE)--a DSP-style vector processor
unit, which doubles as a FPU. The PowerPC SPE ABI is incompatible with the
stock powerpc ABI, so a new MACHINE_ARCH was created to deal with this.
Additionaly, the SPE opcodes overlap with Altivec, so these are mutually
exclusive. Taking advantage of this fact, a new file, powerpc/booke/spe.c, was
created with the same function set as in powerpc/powerpc/altivec.c, so it
becomes effectively a drop-in replacement. setjmp/longjmp were modified to save
the upper 32-bits of the now-64-bit GPRs (upper 32-bits are only accessible by
the SPE).
Note: This does _not_ support the SPE in the e500v1, as the e500v1 SPE does not
support double-precision floating point.
Also, without a new MACHINE_ARCH it would be impossible to provide binary
packages which utilize the SPE.
Additionally, no work has been done to support ports, work is needed for this.
This also means no newer gcc can yet be used. However, gcc's powerpc support
has been refactored which would make adding a powerpcspe-freebsd target very
easy.
Test Plan:
This was lightly tested on a RouterBoard RB800 and an AmigaOne A1222
(P1022-based) board, compiled against the new ABI. Base system utilities
(/bin/sh, /bin/ls, etc) still function appropriately, the system is able to boot
multiuser.
Reviewed By: bdrewery, imp
Relnotes: yes
Differential Revision: https://reviews.freebsd.org/D5683
2016-10-22 01:57:15 +00:00
|
|
|
.endif
|
2017-01-22 06:00:05 +00:00
|
|
|
CFLAGS+= -msoft-float
|
|
|
|
CFLAGS.gcc+= -Wa,-many
|
2001-11-12 10:12:00 +00:00
|
|
|
|
2019-11-02 21:15:56 +00:00
|
|
|
# Apply compiler-specific DPAA exceptions.
|
|
|
|
.if "${COMPILER_TYPE}" == "clang"
|
|
|
|
DPAAWARNFLAGS += \
|
|
|
|
-Wno-error=parentheses-equality \
|
|
|
|
-Wno-error=self-assign \
|
|
|
|
-Wno-error=incompatible-pointer-types-discards-qualifiers \
|
|
|
|
-Wno-error=non-literal-null-conversion \
|
|
|
|
-Wno-error=enum-conversion
|
|
|
|
.elif "${COMPILER_TYPE}" == "gcc" && ${COMPILER_VERSION} >= 50200
|
|
|
|
DPAAWARNFLAGS += \
|
|
|
|
-Wno-error=redundant-decls \
|
|
|
|
-Wno-error=int-in-bool-context
|
|
|
|
.endif
|
|
|
|
|
2015-03-07 20:14:46 +00:00
|
|
|
# Build position-independent kernel
|
2015-01-31 19:16:51 +00:00
|
|
|
CFLAGS+= -fPIC
|
|
|
|
LDFLAGS+= -pie
|
|
|
|
|
2005-09-07 17:38:46 +00:00
|
|
|
.if !empty(DDB_ENABLED)
|
2005-02-03 06:28:17 +00:00
|
|
|
CFLAGS+= -fno-omit-frame-pointer
|
|
|
|
.endif
|
|
|
|
|
1994-12-31 19:27:29 +00:00
|
|
|
%BEFORE_DEPEND
|
|
|
|
|
1993-06-12 14:58:17 +00:00
|
|
|
%OBJS
|
|
|
|
|
2000-11-25 03:25:34 +00:00
|
|
|
%FILES.c
|
1993-06-12 14:58:17 +00:00
|
|
|
|
2000-11-25 03:25:34 +00:00
|
|
|
%FILES.s
|
1995-10-29 11:10:53 +00:00
|
|
|
|
2000-11-25 03:25:34 +00:00
|
|
|
%FILES.m
|
1998-09-03 20:58:34 +00:00
|
|
|
|
1995-03-01 10:08:07 +00:00
|
|
|
%CLEAN
|
|
|
|
|
1993-06-12 14:58:17 +00:00
|
|
|
%RULES
|
2001-11-11 20:33:02 +00:00
|
|
|
|
|
|
|
.include "$S/conf/kern.post.mk"
|