From owner-freebsd-arch@FreeBSD.ORG Sun Jan 22 20:43:10 2012 Return-Path: Delivered-To: freebsd-arch@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 84A491065672 for ; Sun, 22 Jan 2012 20:43:10 +0000 (UTC) (envelope-from rmh.aybabtu@gmail.com) Received: from mail-we0-f182.google.com (mail-we0-f182.google.com [74.125.82.182]) by mx1.freebsd.org (Postfix) with ESMTP id 076A38FC12 for ; Sun, 22 Jan 2012 20:43:09 +0000 (UTC) Received: by werg1 with SMTP id g1so2628614wer.13 for ; Sun, 22 Jan 2012 12:43:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=sender:date:from:to:cc:subject:message-id:mime-version:content-type :content-disposition:user-agent; bh=dpct/SXUEuuQPUpSNNuptpitXmAPtHUKZJL9m2nMLE0=; b=duLtyhdFfpSug//Pt6GQutY+hde87iO/vo9TV7dw03b3z/M7oXZUjmGy7JO+gNX4QJ b3UT0+qRqncLQJeKg2ZX6u+JgfQb2SRywlIolxncYxDHT5pSmtqwmfm5wuz0CyuEMH7p xxTN3MQkaBFDY7v9jl3ChfM6KGcnd46d09EVc= Received: by 10.216.139.71 with SMTP id b49mr2574380wej.47.1327263498124; Sun, 22 Jan 2012 12:18:18 -0800 (PST) Received: from thorin (81.Red-95-122-64.staticIP.rima-tde.net. [95.122.64.81]) by mx.google.com with ESMTPS id fr8sm24050600wib.10.2012.01.22.12.18.15 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 22 Jan 2012 12:18:17 -0800 (PST) Sender: Robert Millan Received: from rmh by thorin with local (Exim 4.72) (envelope-from ) id 1Rp3ri-0008Ln-6y; Sun, 22 Jan 2012 21:18:14 +0100 Date: Sun, 22 Jan 2012 21:18:14 +0100 From: Robert Millan To: freebsd-arch@freebsd.org Message-ID: <20120122201814.GA32081@thorin> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="VrqPEDrXMn8OVzN4" Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) Cc: Kostik Belousov , Adrian Chadd Subject: RFC: MK_BLOBS build option X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Jan 2012 20:43:10 -0000 --VrqPEDrXMn8OVzN4 Content-Type: multipart/mixed; boundary="AqsLC8rIMeq19msA" Content-Disposition: inline --AqsLC8rIMeq19msA Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi everyone, I propose this build option so that users can select if they want to disable blobs of binary code in their kernel. Currently Debian does this by patchi= ng the build system; having a build option would make things much easier, but it can also be useful for users whose preference is not to install those modules. Description: Add MK_BLOBS build option. Setting MK_BLOBS to "no" will disable kernel modules that include binary-only blobs of code. More fine-grained control is provided via MK_BLOBS_HOST (for native code that runs on host CPU) and MK_BLOBS_UCODE (for microcode). Please comment! --=20 Robert Millan --AqsLC8rIMeq19msA Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="mk_blobs.diff" Content-Transfer-Encoding: quoted-printable Index: sys/modules/sound/driver/Makefile =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- sys/modules/sound/driver/Makefile (revision 230389) +++ sys/modules/sound/driver/Makefile (working copy) @@ -1,10 +1,21 @@ # $FreeBSD$ =20 -SUBDIR=3D ad1816 als4000 atiixp cs4281 csa ds1 emu10k1 emu10kx -SUBDIR+=3D envy24 envy24ht es137x ess fm801 hda ich maestro maestro3 +.include + +# Modules that include binary-only blobs of microcode should be selectable= by +# MK_BLOBS_UCODE option (see below). + +SUBDIR=3D ad1816 als4000 atiixp cs4281 ${_csa} ${_ds1} emu10k1 emu10kx +SUBDIR+=3D envy24 envy24ht es137x ess fm801 hda ich maestro ${_maestro3} SUBDIR+=3D neomagic sb16 sb8 sbc solo spicds t4dwave via8233 SUBDIR+=3D via82c686 vibes driver uaudio =20 +.if ${MK_BLOBS_UCODE} !=3D "no" +_csa=3D csa +_ds1=3D ds1 +_maestro3=3D maestro3 +.endif + .if ${MACHINE_CPUARCH} =3D=3D "i386" || ${MACHINE_CPUARCH} =3D=3D "amd64" SUBDIR+=3D cmi mss .endif Index: sys/modules/drm/Makefile =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- sys/modules/drm/Makefile (revision 230389) +++ sys/modules/drm/Makefile (working copy) @@ -1,15 +1,26 @@ # $FreeBSD$ =20 +.include + +# Modules that include binary-only blobs of microcode should be selectable= by +# MK_BLOBS_UCODE option (see below). + SUBDIR =3D \ drm \ i915 \ mach64 \ - mga \ - r128 \ - radeon \ + ${_mga} \ + ${_r128} \ + ${_radeon} \ savage \ sis \ tdfx \ via =20 +.if ${MK_BLOBS_UCODE} !=3D "no" +_mga=3D mga +_r128=3D r128 +_radeon=3D radeon +.endif + .include Index: sys/modules/Makefile =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- sys/modules/Makefile (revision 230389) +++ sys/modules/Makefile (working copy) @@ -2,6 +2,9 @@ =20 .include =20 +# Modules that include binary-only blobs of microcode should be selectable= by +# MK_BLOBS_UCODE option (see below). + SUBDIR=3D ${_3dfx} \ ${_3dfx_linux} \ ${_aac} \ @@ -36,7 +39,7 @@ ath \ ath_pci \ ${_auxio} \ - bce \ + ${_bce} \ bfe \ bge \ ${_bxe} \ @@ -95,13 +98,13 @@ ${_ex} \ ${_exca} \ ${_ext2fs} \ - fatm \ + ${_fatm} \ fdc \ fdescfs \ ${_fe} \ firewire \ firmware \ - fxp \ + ${_fxp} \ gem \ geom \ ${_glxiic} \ @@ -147,7 +150,7 @@ ${_ipwfw} \ iscsi \ isp \ - ispfw \ + ${_ispfw} \ ${_iwi} \ ${_iwifw} \ ${_iwn} \ @@ -208,7 +211,7 @@ ${_mthca} \ mvs \ mwl \ - mwlfw \ + ${_mwlfw} \ mxge \ my \ ${_ncp} \ @@ -258,14 +261,14 @@ puc \ ${_qlxgb} \ ral \ - ralfw \ + ${_ralfw} \ ${_random} \ rc4 \ ${_rdma} \ re \ reiserfs \ rl \ - runfw \ + ${_runfw} \ ${_s3} \ ${_safe} \ ${_sbni} \ @@ -275,7 +278,7 @@ sdhci \ sem \ send \ - sf \ + ${_sf} \ ${_sfxge} \ sge \ siba_bwn \ @@ -284,7 +287,7 @@ sis \ sk \ ${_smbfs} \ - sn \ + ${_sn} \ ${_snc} \ snp \ ${_sound} \ @@ -299,7 +302,7 @@ ${_sym} \ ${_syscons} \ sysvipc \ - ti \ + ${_ti} \ tl \ tmpfs \ ${_tpm} \ @@ -308,7 +311,7 @@ twe \ tws \ tx \ - txp \ + ${_txp} \ uart \ ubsec \ udf \ @@ -357,8 +360,10 @@ # No barrier instruction support (specific to this driver) _sym=3D sym # intr_disable() is a macro, causes problems +.if ${MK_BLOBS_UCODE} !=3D "no" _cxgb=3D cxgb .endif +.endif =20 .if ${MK_CRYPT} !=3D "no" || defined(ALL_MODULES) .if exists(${.CURDIR}/../opencrypto) @@ -400,6 +405,20 @@ .endif .endif =20 +.if ${MK_BLOBS_UCODE} !=3D "no" +_bce=3D bce +_fatm=3D fatm +_fxp=3D fxp +_ispfw=3D ispfw +_mwlfw=3D mwlfw +_ralfw=3D ralfw +_runfw=3D runfw +_sf=3D sf +_sn=3D sn +_ti=3D ti +_txp=3D txp +.endif + .if ${MACHINE_CPUARCH} =3D=3D "i386" # XXX some of these can move to the general case when de-i386'ed # XXX some of these can move now, but are untested on other architectures. @@ -415,9 +434,13 @@ _bxe=3D bxe _cardbus=3D cardbus _cbb=3D cbb +.if ${MK_BLOBS_UCODE} !=3D "no" _ce=3D ce +.endif _coff=3D coff +.if ${MK_BLOBS_UCODE} !=3D "no" _cp=3D cp +.endif _cpuctl=3D cpuctl _cpufreq=3D cpufreq _cs=3D cs @@ -506,35 +529,51 @@ _cm=3D cm _cmx=3D cmx _coretemp=3D coretemp +.if ${MK_BLOBS_UCODE} !=3D "no" _ctau=3D ctau +.endif _dpt=3D dpt _ex=3D ex +.if ${MK_BLOBS_HOST} !=3D "no" _hpt27xx=3D hpt27xx +.endif _hptiop=3D hptiop +.if ${MK_BLOBS_HOST} !=3D "no" _hptmv=3D hptmv _hptrr=3D hptrr +.endif _ichwd=3D ichwd _ida=3D ida _iir=3D iir _ipmi=3D ipmi _ips=3D ips _ipw=3D ipw +.if ${MK_BLOBS_UCODE} !=3D "no" _ipwfw=3D ipwfw +.endif _iwi=3D iwi +.if ${MK_BLOBS_UCODE} !=3D "no" _iwifw=3D iwifw +.endif _iwn=3D iwn +.if ${MK_BLOBS_UCODE} !=3D "no" _iwnfw=3D iwnfw +.endif _ixgb=3D ixgb _ixgbe=3D ixgbe _mly=3D mly _nfe=3D nfe +.if ${MK_BLOBS_HOST} !=3D "no" _nve=3D nve +.endif _nvram=3D nvram _nxge=3D nxge _tpm=3D tpm _viawd=3D viawd _wpi=3D wpi +.if ${MK_BLOBS_UCODE} !=3D "no" _wpifw=3D wpifw +.endif .if ${MK_CRYPT} !=3D "no" || defined(ALL_MODULES) _padlock=3D padlock .endif @@ -586,10 +625,14 @@ _em=3D em _exca=3D exca _ext2fs=3D ext2fs +.if ${MK_BLOBS_HOST} !=3D "no" _hpt27xx=3D hpt27xx +.endif _hptiop=3D hptiop +.if ${MK_BLOBS_HOST} !=3D "no" _hptmv=3D hptmv _hptrr=3D hptrr +.endif _i2c=3D i2c _ichwd=3D ichwd _ida=3D ida @@ -600,11 +643,17 @@ _ipmi=3D ipmi _ips=3D ips _ipw=3D ipw +.if ${MK_BLOBS_UCODE} !=3D "no" _ipwfw=3D ipwfw +.endif _iwi=3D iwi +.if ${MK_BLOBS_UCODE} !=3D "no" _iwifw=3D iwifw +.endif _iwn=3D iwn +.if ${MK_BLOBS_UCODE} !=3D "no" _iwnfw=3D iwnfw +.endif _ixgb=3D ixgb _ixgbe=3D ixgbe _lindev=3D lindev @@ -620,7 +669,9 @@ .endif _ndis=3D ndis _nfe=3D nfe +.if ${MK_BLOBS_HOST} !=3D "no" _nve=3D nve +.endif _nvram=3D nvram _nxge=3D nxge .if ${MK_CDDL} !=3D "no" || defined(ALL_MODULES) @@ -650,7 +701,9 @@ _x86bios=3D x86bios _wi=3D wi _wpi=3D wpi +.if ${MK_BLOBS_UCODE} !=3D "no" _wpifw=3D wpifw +.endif .if ${MK_ZFS} !=3D "no" || defined(ALL_MODULES) _zfs=3D zfs .endif Index: sys/modules/usb/Makefile =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- sys/modules/usb/Makefile (revision 230389) +++ sys/modules/usb/Makefile (working copy) @@ -25,16 +25,28 @@ # SUCH DAMAGE. # =20 +.include + +# Modules that include binary-only blobs of microcode should be selectable= by +# MK_BLOBS_UCODE option (see below). + SUBDIR =3D usb SUBDIR +=3D ehci musb ohci uhci xhci uss820dci ${_at91dci} ${_atmegadci} $= {_avr32dci} -SUBDIR +=3D rum run uath upgt usie ural zyd ${_urtw} +SUBDIR +=3D ${_rum} run ${_uath} upgt usie ural ${_zyd} ${_urtw} SUBDIR +=3D atp uhid ukbd ums udbp ufm uep SUBDIR +=3D ucom u3g uark ubsa ubser uchcom ucycom ufoma uftdi ugensa uipa= q ulpt \ umct umcs umodem umoscom uplcom uslcom uvisor uvscom -SUBDIR +=3D uether aue axe cdce cue kue mos rue udav uhso ipheth +SUBDIR +=3D uether aue axe cdce cue ${_kue} mos rue udav uhso ipheth SUBDIR +=3D usfs umass urio SUBDIR +=3D quirk template =20 +.if ${MK_BLOBS_UCODE} !=3D "no" +_rum=3D rum +_uath=3D uath +_zyd=3D zyd +_kue=3D kue +.endif + .if ${MACHINE_CPUARCH} =3D=3D "amd64" _urtw=3D urtw .endif Index: share/mk/bsd.own.mk =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- share/mk/bsd.own.mk (revision 230389) +++ share/mk/bsd.own.mk (working copy) @@ -320,6 +320,9 @@ BOOT \ BSD_CPIO \ BSNMP \ + BLOBS \ + BLOBS_HOST \ + BLOBS_UCODE \ BZIP2 \ CALENDAR \ CAPSICUM \ @@ -511,6 +514,11 @@ MK_BIND_ETC:=3D no .endif =20 +.if ${MK_BLOBS} =3D=3D "no" +MK_BLOBS_HOST:=3D no +MK_BLOBS_UCODE:=3D no +.endif + .if ${MK_CDDL} =3D=3D "no" MK_ZFS:=3D no MK_CTF:=3D no Index: tools/build/options/WITHOUT_BLOBS =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- tools/build/options/WITHOUT_BLOBS (revision 0) +++ tools/build/options/WITHOUT_BLOBS (revision 0) @@ -0,0 +1,2 @@ +.\" $FreeBSD$ +Set to not build kernel modules that include binary-only blobs of code (ei= ther microcode or native code for host CPU). Index: tools/build/options/WITHOUT_BLOBS_HOST =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- tools/build/options/WITHOUT_BLOBS_HOST (revision 0) +++ tools/build/options/WITHOUT_BLOBS_HOST (revision 0) @@ -0,0 +1,2 @@ +.\" $FreeBSD$ +Set to not build kernel modules that include binary-only blobs of native c= ode for host CPU. Index: tools/build/options/WITHOUT_BLOBS_UCODE =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- tools/build/options/WITHOUT_BLOBS_UCODE (revision 0) +++ tools/build/options/WITHOUT_BLOBS_UCODE (revision 0) @@ -0,0 +1,2 @@ +.\" $FreeBSD$ +Set to not build kernel modules that include binary-only blobs of microcod= e. --AqsLC8rIMeq19msA-- --VrqPEDrXMn8OVzN4 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/kFreeBSD) iQIcBAEBCAAGBQJPHG8FAAoJELd1onhloKnOSdEQAK0I+5Lj0aP6E0I9Hz3IUiJe TwGDB9o6R+CZ4VxBNoZs+87XrDOSTxPsSkfvA6UGGHmOcdUNO7ZUoTc4QpDSM4Fl fCpXkoeuMf8DB/T0L61mkv1oZvQ0Rv+UwODyCQhMDh/no8m+v1JmUomUzIlIBrMi 9iBaLg8KR5OP8xl0IK6bIjL8eUtWQ4+dLEUZ1de+agWY3Bq5UjH5LaMFc2BGfW4R +9cefeQ8/3dyg8AgrE/namgDlaPEqEj/iSM+PrDSy+z6prlIefdryq1NUNqWTk4F iuu82CGkxsYIaWnr37kFwl4f3PunhuZ4iHXlcGV5wcMG4g0g+UlbWgGyWlPlmXUy vkEuhNdADB3Y/QrpSpk3k/1EjzEdF0cWbSJ8oZbXMIxCb1WR5JIp5tVIxMz6yjCN LXUj5W/MrZm5yjXaNm23U/hBlD7hseqKDDZYlaKU4Ydx2L9FyDTEQ3YscyJIIyyj 2VMcsQauySWtRco3oVeE13XlYoaaZrEQs4SltMYqg9r7rWwrzDX1c/ebb6PU/QUJ vZ2ShGXAdbZ5uyvkT03cqI2Rh9eXK/ORBfMyE8DfGkUJNPPP90lRkateFEGhccxM kJX7+cMCiu6EppoDDJQB8jJe25eJSjFSiDO8FEOqQqNzawosVzDtM/mgbLJGRPi9 7EYGZOuHvQFvtKXIXgam =hzoV -----END PGP SIGNATURE----- --VrqPEDrXMn8OVzN4--