All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] libacpi updates
@ 2016-11-15  4:52 Boris Ostrovsky
  2016-11-15  4:52 ` [PATCH 1/2] tools/libacpi: Re-licence remaining GPL code to LGPLv2.1 Boris Ostrovsky
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Boris Ostrovsky @ 2016-11-15  4:52 UTC (permalink / raw)
  To: xen-devel
  Cc: lars.kurth, wei.liu2, andrew.cooper3, ian.jackson, jbeulich,
	Boris Ostrovsky

First patch makes all DSDT tables to be licensed under LGPL.

Seconds patch updates makefiles to create only DSDT files that are
needed by a particular component/architecture (some files were
built unnecessarily). I haven't tested on ARM so if Julian or
Shannon could give it a quick test I'd appreciate it.

Boris Ostrovsky (2):
  tools/libacpi: Re-licence remaining GPL code to LGPLv2.1
  libacpi: Be specific about which DSDT files to build

 tools/firmware/hvmloader/Makefile |  11 ++--
 tools/libacpi/COPYING             |  12 ----
 tools/libacpi/Makefile            |  25 +++-----
 tools/libacpi/dsdt.asl            |  11 ++++
 tools/libacpi/gpl/COPYING         |  22 -------
 tools/libacpi/gpl/mk_dsdt_gpl.sh  | 117 --------------------------------------
 tools/libacpi/mk_dsdt.c           |  68 +++++++++++++++++++++-
 tools/libxl/Makefile              |  15 ++---
 8 files changed, 99 insertions(+), 182 deletions(-)
 delete mode 100644 tools/libacpi/gpl/COPYING
 delete mode 100755 tools/libacpi/gpl/mk_dsdt_gpl.sh

-- 
2.7.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH 1/2] tools/libacpi: Re-licence remaining GPL code to LGPLv2.1
  2016-11-15  4:52 [PATCH 0/2] libacpi updates Boris Ostrovsky
@ 2016-11-15  4:52 ` Boris Ostrovsky
  2016-11-15  6:14   ` Wei Liu
                     ` (2 more replies)
  2016-11-15  4:52 ` [PATCH 2/2] libacpi: Be specific about which DSDT files to build Boris Ostrovsky
  2016-11-15  4:55 ` [PATCH 0/2] libacpi updates Boris Ostrovsky
  2 siblings, 3 replies; 12+ messages in thread
From: Boris Ostrovsky @ 2016-11-15  4:52 UTC (permalink / raw)
  To: xen-devel
  Cc: lars.kurth, wei.liu2, andrew.cooper3, ian.jackson, jbeulich,
	Boris Ostrovsky, Ken Lancaster

We now have permission from Lenovo to relicense commit 801d469ad8b2
("[HVM] ACPI support patch 3 of 4: ACPI _PRT table") to LGPLv2.1

This essentially means reverting commits c3397311a658 ("acpi: Prevent
GPL-only code from seeping into non-GPL binaries") and 26c4f0b8a4cf
("tools/libacpi: fix sed usage")

Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Acked-by: Ken Lancaster <klancaster@lenovo.com>
---
CC: Ken Lancaster <klancaster@lenovo.com>
--
 tools/firmware/hvmloader/Makefile |   3 -
 tools/libacpi/COPYING             |  12 ----
 tools/libacpi/Makefile            |  20 ++-----
 tools/libacpi/dsdt.asl            |  11 ++++
 tools/libacpi/gpl/COPYING         |  22 -------
 tools/libacpi/gpl/mk_dsdt_gpl.sh  | 117 --------------------------------------
 tools/libacpi/mk_dsdt.c           |  68 +++++++++++++++++++++-
 7 files changed, 83 insertions(+), 170 deletions(-)
 delete mode 100644 tools/libacpi/gpl/COPYING
 delete mode 100755 tools/libacpi/gpl/mk_dsdt_gpl.sh

diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile
index 77d7551..002ff18 100644
--- a/tools/firmware/hvmloader/Makefile
+++ b/tools/firmware/hvmloader/Makefile
@@ -63,9 +63,6 @@ ROMBIOS_ROM := $(ROMBIOS_DIR)/BIOS-bochs-latest
 ROMS += $(ROMBIOS_ROM) $(STDVGA_ROM) $(CIRRUSVGA_ROM) $(ETHERBOOT_ROMS)
 endif
 
-# Certain parts of ACPI builder are GPL-only
-export GPL := y
-
 .PHONY: all
 all: acpi subdirs-all
 	$(MAKE) hvmloader
diff --git a/tools/libacpi/COPYING b/tools/libacpi/COPYING
index 5f2f87e..063062b 100644
--- a/tools/libacpi/COPYING
+++ b/tools/libacpi/COPYING
@@ -8,18 +8,6 @@ Where clause 3 is invoked in order to relicense under the GPL then
 this shall be considered to be GPL v2 only for files which have
 specified LGPL v2.1 only.
 
-gpl sub-directory
-=================
-This directory contains a gpl sub-directory which contains code
-licensed under the GPL v2, because we have not yet been able to get
-the permission to relicense the relevant code to LGPL v2.1. See
-gpl/COPYING for more information.
-
-The makefile in this component allows to build a GPL and LGPL only
-variant of this library, the latter omits all GPL source code.
-
-
-
                   GNU LESSER GENERAL PUBLIC LICENSE
                        Version 2.1, February 1999
 
diff --git a/tools/libacpi/Makefile b/tools/libacpi/Makefile
index b79db47..506d85e 100644
--- a/tools/libacpi/Makefile
+++ b/tools/libacpi/Makefile
@@ -21,7 +21,7 @@ endif
 
 MK_DSDT = $(ACPI_BUILD_DIR)/mk_dsdt
 
-C_SRC-$(GPL) = dsdt_anycpu.c dsdt_15cpu.c dsdt_anycpu_qemu_xen.c
+C_SRC-$(CONFIG_X86) = dsdt_anycpu.c dsdt_15cpu.c dsdt_anycpu_qemu_xen.c
 C_SRC-$(CONFIG_ARM_64) = dsdt_anycpu_arm.c
 C_SRC = $(addprefix $(ACPI_BUILD_DIR)/, dsdt_pvh.c $(C_SRC-y))
 H_SRC = $(addprefix $(ACPI_BUILD_DIR)/, ssdt_s3.h ssdt_s4.h ssdt_pm.h ssdt_tpm.h)
@@ -45,30 +45,20 @@ $(H_SRC): $(ACPI_BUILD_DIR)/%.h: %.asl iasl
 $(MK_DSDT): mk_dsdt.c
 	$(HOSTCC) $(HOSTCFLAGS) $(CFLAGS_xeninclude) -D__XEN_TOOLS__ -o $@ mk_dsdt.c
 
-ifeq ($(GPL),y)
-$(ACPI_BUILD_DIR)/dsdt_anycpu_qemu_xen.asl: dsdt.asl dsdt_acpi_info.asl gpl/mk_dsdt_gpl.sh $(MK_DSDT)
+$(ACPI_BUILD_DIR)/dsdt_anycpu_qemu_xen.asl: dsdt.asl dsdt_acpi_info.asl $(MK_DSDT)
 	# Remove last bracket
-	awk 'NR > 1 {print s} {s=$$0}' $< > $@.1.$(TMP_SUFFIX)
-	# Strip license comment
-	sed '1,/\*\//d' $@.1.$(TMP_SUFFIX) > $@.$(TMP_SUFFIX)
-	rm -f $@.1.$(TMP_SUFFIX)
-	$(SHELL) gpl/mk_dsdt_gpl.sh >> $@.$(TMP_SUFFIX)
+	awk 'NR > 1 {print s} {s=$$0}' $< > $@.$(TMP_SUFFIX)
 	cat dsdt_acpi_info.asl >> $@.$(TMP_SUFFIX)
 	$(MK_DSDT) --debug=$(debug) --dm-version qemu-xen >> $@.$(TMP_SUFFIX)
 	mv -f $@.$(TMP_SUFFIX) $@
 
 # NB. awk invocation is a portable alternative to 'head -n -1'
-$(ACPI_BUILD_DIR)/dsdt_%cpu.asl: dsdt.asl dsdt_acpi_info.asl gpl/mk_dsdt_gpl.sh $(MK_DSDT)
+$(ACPI_BUILD_DIR)/dsdt_%cpu.asl: dsdt.asl dsdt_acpi_info.asl  $(MK_DSDT)
 	# Remove last bracket
-	awk 'NR > 1 {print s} {s=$$0}' $< > $@.1.$(TMP_SUFFIX)
-	# Strip license comment
-	sed '1,/\*\//d' $@.1.$(TMP_SUFFIX) > $@.$(TMP_SUFFIX)
-	rm -f $@.1.$(TMP_SUFFIX)
-	$(SHELL) gpl/mk_dsdt_gpl.sh >> $@.$(TMP_SUFFIX)
+	awk 'NR > 1 {print s} {s=$$0}' $< > $@.$(TMP_SUFFIX)
 	cat dsdt_acpi_info.asl >> $@.$(TMP_SUFFIX)
 	$(MK_DSDT) --debug=$(debug) --maxcpu $*  >> $@.$(TMP_SUFFIX)
 	mv -f $@.$(TMP_SUFFIX) $@
-endif
 
 $(ACPI_BUILD_DIR)/dsdt_pvh.asl: dsdt_acpi_info.asl $(MK_DSDT)
 	printf "DefinitionBlock (\"DSDT.aml\", \"DSDT\", 5, \"Xen\", \"HVM\", 0)\n{" > $@
diff --git a/tools/libacpi/dsdt.asl b/tools/libacpi/dsdt.asl
index 2db40e4..fa8ff31 100644
--- a/tools/libacpi/dsdt.asl
+++ b/tools/libacpi/dsdt.asl
@@ -442,4 +442,15 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2, "Xen", "HVM", 0)
             }
         }
     }
+    /* _S3 and _S4 are in separate SSDTs */
+    Name (\_S5, Package (0x04) {
+        0x00,  /* PM1a_CNT.SLP_TYP */
+        0x00,  /* PM1b_CNT.SLP_TYP */
+        0x00,  /* reserved */
+        0x00   /* reserved */
+    })
+    Name(PICD, 0)
+    Method(_PIC, 1) {
+        Store(Arg0, PICD)
+    }
 }
diff --git a/tools/libacpi/gpl/COPYING b/tools/libacpi/gpl/COPYING
deleted file mode 100644
index f995ef6..0000000
--- a/tools/libacpi/gpl/COPYING
+++ /dev/null
@@ -1,22 +0,0 @@
-Unlike files in the directory above that are licensed under GNU Lesser
-General Public License version 2.1, files here are licensed under GNU
-General Public License version 2.
-
-A copy of this license can be obtained at <http://www.gnu.org/licenses/>
-
-
-INBOUND LICENSE
-
-Contributions to this directory are made under the LGPLv2.1 *only* as
-described in the COPYING file of the parent directory. As LGPLv2.1 is
-compatible with the GPLv2, the resulting file is GPLv2 when seen as a
-whole.
-
-The intention of this inbound license, is to avoid having to ask
-subsequent contributors to this directory for permission to change the
-license from GPLv2 to LGPLv2.1, once we get permission from the
-remaining copyright holders of this directory to change the license to
-LGPLv2.1.
-
-Note: The only outstanding permission required to re-license this
-directory to LGPLv2.1 is from Lenovo.
diff --git a/tools/libacpi/gpl/mk_dsdt_gpl.sh b/tools/libacpi/gpl/mk_dsdt_gpl.sh
deleted file mode 100755
index 38fe01a..0000000
--- a/tools/libacpi/gpl/mk_dsdt_gpl.sh
+++ /dev/null
@@ -1,117 +0,0 @@
-#!/bin/sh
-
-# This program is free software; you can redistribute it and/or modify it
-# under the terms and conditions of the GNU General Public License,
-# version 2, as published by the Free Software Foundation.
-#
-# This program is distributed in the hope it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
-# more details.
-#
-# You should have received a copy of the GNU General Public License along with
-# this program; If not, see <http://www.gnu.org/licenses/>.
-#
-
-cat <<'EndOfASL'
-    /* Beginning of GPL-only code */
-
-    /* _S3 and _S4 are in separate SSDTs */
-    Name (\_S5, Package (0x04) {
-        0x00,  /* PM1a_CNT.SLP_TYP */
-        0x00,  /* PM1b_CNT.SLP_TYP */
-        0x00,  /* reserved */
-        0x00   /* reserved */
-    })
-    Name(PICD, 0)
-    Method(_PIC, 1) {
-        Store(Arg0, PICD)
-    }
-EndOfASL
-
-# PCI-ISA link definitions
-# BUFA: List of ISA IRQs available for linking to PCI INTx.
-# BUFB: IRQ descriptor for returning from link-device _CRS methods.
-cat <<'EndOfASL'
-    Scope ( \_SB.PCI0 )  {
-        Name ( BUFA, ResourceTemplate() { IRQ(Level, ActiveLow, Shared) { 5, 10, 11 } } )
-        Name ( BUFB, Buffer() { 0x23, 0x00, 0x00, 0x18, 0x79, 0 } )
-        CreateWordField ( BUFB, 0x01, IRQV )
-EndOfASL
-
-for i in $(seq 1 4)
-do
-    link=`echo "A B C D" | cut -d" " -f $i`
-    cat <<EndOfASL
-        Device ( LNK$link ) {
-            Name ( _HID,  EISAID("PNP0C0F") )
-            Name ( _UID, $i)
-            Method ( _STA, 0) {
-                If ( And(PIR$link, 0x80) ) {
-                    Return ( 0x09 )
-                } Else {
-                    Return ( 0x0B )
-                }
-            }
-            Method ( _PRS ) {
-                Return ( BUFA )
-            }
-            Method ( _DIS ) {
-                Or ( PIR$link, 0x80, PIR$link )
-            }
-            Method ( _CRS ) {
-                And ( PIR$link, 0x0f, Local0 )
-                ShiftLeft ( 0x1, Local0, IRQV )
-                Return ( BUFB )
-            }
-            Method ( _SRS, 1 ) {
-                CreateWordField ( ARG0, 0x01, IRQ1 )
-                FindSetRightBit ( IRQ1, Local0 )
-                Decrement ( Local0 )
-                Store ( Local0, PIR$link )
-            }
-        }
-EndOfASL
-done
-
-# PCI interrupt routing definitions
-# _PRT: Method to return routing table.
-cat <<'EndOfASL'
-        Method ( _PRT, 0 ) {
-            If ( PICD ) {
-                Return ( PRTA )
-            }
-            Return ( PRTP )
-        }
-EndOfASL
-
-# PRTP: PIC routing table (via ISA links).
-echo "        Name(PRTP, Package() {"
-for dev in $(seq 1 31)
-do
-    for intx in $(seq 0 3)  # INTA-D
-    do
-	link_idx=$(( ((dev + intx) & 3) + 1 ))
-	link=`echo "A B C D" | cut -d" " -f $link_idx`
-	printf "            Package(){0x%04xffff, %u, \\\\_SB.PCI0.LNK%c, 0},\n" \
-	    $dev $intx $link
-    done
-done
-echo "        })"
-
-# PRTA: APIC routing table (via non-legacy IOAPIC GSIs).
-echo "        Name(PRTA, Package() {"
-for dev in $(seq 1 31)
-do
-    for intx in $(seq 0 3)  # INTA-D
-    do
-	idx=$(( ((dev * 4 + dev/8 + intx) & 31) + 16 ))
-	printf "            Package(){0x%04xffff, %u, 0, %u},\n" \
-	    $dev $intx $idx
-    done
-done
-echo "        })"
-
-echo "    }"
-
-echo "    /* End of GPL-only code */"
diff --git a/tools/libacpi/mk_dsdt.c b/tools/libacpi/mk_dsdt.c
index 4ae68bc..16320a9 100644
--- a/tools/libacpi/mk_dsdt.c
+++ b/tools/libacpi/mk_dsdt.c
@@ -108,7 +108,7 @@ static struct option options[] = {
 
 int main(int argc, char **argv)
 {
-    unsigned int slot, cpu, max_cpus;
+    unsigned int slot, dev, intx, link, cpu, max_cpus;
     dm_version dm_version = QEMU_XEN_TRADITIONAL;
 
 #if defined(__i386__) || defined(__x86_64__)
@@ -318,6 +318,72 @@ int main(int argc, char **argv)
         }
     } pop_block();
 
+    /*** PCI-ISA link definitions ***/
+    /* BUFA: List of ISA IRQs available for linking to PCI INTx. */
+    stmt("Name", "BUFA, ResourceTemplate() { "
+         "IRQ(Level, ActiveLow, Shared) { 5, 10, 11 } }");
+    /* BUFB: IRQ descriptor for returning from link-device _CRS methods. */
+    stmt("Name", "BUFB, Buffer() { "
+         "0x23, 0x00, 0x00, 0x18, " /* IRQ descriptor */
+         "0x79, 0 }");              /* End tag, null checksum */
+    stmt("CreateWordField", "BUFB, 0x01, IRQV");
+    /* Create four PCI-ISA link devices: LNKA, LNKB, LNKC, LNKD. */
+    for ( link = 0; link < 4; link++ )
+    {
+        push_block("Device", "LNK%c", 'A'+link);
+        stmt("Name", "_HID,  EISAID(\"PNP0C0F\")");  /* PCI interrupt link */
+        stmt("Name", "_UID, %u", link+1);
+        push_block("Method", "_STA, 0");
+        push_block("If", "And(PIR%c, 0x80)", 'A'+link);
+        stmt("Return", "0x09");
+        pop_block();
+        push_block("Else", NULL);
+        stmt("Return", "0x0B");
+        pop_block();
+        pop_block();
+        push_block("Method", "_PRS");
+        stmt("Return", "BUFA");
+        pop_block();
+        push_block("Method", "_DIS");
+        stmt("Or", "PIR%c, 0x80, PIR%c", 'A'+link, 'A'+link);
+        pop_block();
+        push_block("Method", "_CRS");
+        stmt("And", "PIR%c, 0x0f, Local0", 'A'+link);
+        stmt("ShiftLeft", "0x1, Local0, IRQV");
+        stmt("Return", "BUFB");
+        pop_block();
+        push_block("Method", "_SRS, 1");
+        stmt("CreateWordField", "ARG0, 0x01, IRQ1");
+        stmt("FindSetRightBit", "IRQ1, Local0");
+        stmt("Decrement", "Local0");
+        stmt("Store", "Local0, PIR%c", 'A'+link);
+        pop_block();
+        pop_block();
+    }
+
+    /*** PCI interrupt routing definitions***/
+    /* _PRT: Method to return routing table. */
+    push_block("Method", "_PRT, 0");
+    push_block("If", "PICD");
+    stmt("Return", "PRTA");
+    pop_block();
+    stmt("Return", "PRTP");
+    pop_block();
+    /* PRTP: PIC routing table (via ISA links). */
+    printf("Name(PRTP, Package() {\n");
+    for ( dev = 1; dev < 32; dev++ )
+        for ( intx = 0; intx < 4; intx++ ) /* INTA-D */
+            printf("Package(){0x%04xffff, %u, \\_SB.PCI0.LNK%c, 0},\n",
+                   dev, intx, 'A'+((dev+intx)&3));
+    printf("})\n");
+    /* PRTA: APIC routing table (via non-legacy IOAPIC GSIs). */
+    printf("Name(PRTA, Package() {\n");
+    for ( dev = 1; dev < 32; dev++ )
+        for ( intx = 0; intx < 4; intx++ ) /* INTA-D */
+            printf("Package(){0x%04xffff, %u, 0, %u},\n",
+                   dev, intx, ((dev*4+dev/8+intx)&31)+16);
+    printf("})\n");
+
     /*
      * Each PCI hotplug slot needs at least two methods to handle
      * the ACPI event:
-- 
2.7.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 2/2] libacpi: Be specific about which DSDT files to build
  2016-11-15  4:52 [PATCH 0/2] libacpi updates Boris Ostrovsky
  2016-11-15  4:52 ` [PATCH 1/2] tools/libacpi: Re-licence remaining GPL code to LGPLv2.1 Boris Ostrovsky
@ 2016-11-15  4:52 ` Boris Ostrovsky
  2016-11-15  6:17   ` Wei Liu
  2016-11-15  8:14   ` Jan Beulich
  2016-11-15  4:55 ` [PATCH 0/2] libacpi updates Boris Ostrovsky
  2 siblings, 2 replies; 12+ messages in thread
From: Boris Ostrovsky @ 2016-11-15  4:52 UTC (permalink / raw)
  To: xen-devel
  Cc: lars.kurth, wei.liu2, andrew.cooper3, ian.jackson, jbeulich,
	Boris Ostrovsky

There is no reason to build, for example, dsdt_pvh.asl for hvmloader. We
pass which DSDTs to build via DSDT_FILES parameter.

If DSDT_FILES is empty all DSDTs for a particular architecture will be built.

Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
---
 tools/firmware/hvmloader/Makefile |  8 ++++----
 tools/libacpi/Makefile            |  7 +++++--
 tools/libxl/Makefile              | 15 ++++++++-------
 3 files changed, 17 insertions(+), 13 deletions(-)

diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile
index 002ff18..bb5b92f 100644
--- a/tools/firmware/hvmloader/Makefile
+++ b/tools/firmware/hvmloader/Makefile
@@ -69,14 +69,14 @@ all: acpi subdirs-all
 
 .PHONY: acpi
 acpi:
-	$(MAKE) -C $(ACPI_PATH)  ACPI_BUILD_DIR=$(CURDIR)
+	$(MAKE) -C $(ACPI_PATH)  ACPI_BUILD_DIR=$(CURDIR) DSDT_FILES="$(DSDT_FILES)"
 
 rombios.o: roms.inc
 smbios.o: CFLAGS += -D__SMBIOS_DATE__="\"$(SMBIOS_REL_DATE)\""
 
 ACPI_PATH = ../../libacpi
-ACPI_FILES = dsdt_anycpu.c dsdt_15cpu.c dsdt_anycpu_qemu_xen.c
-ACPI_OBJS = $(patsubst %.c,%.o,$(ACPI_FILES)) build.o static_tables.o
+DSDT_FILES = dsdt_anycpu.c dsdt_15cpu.c dsdt_anycpu_qemu_xen.c
+ACPI_OBJS = $(patsubst %.c,%.o,$(DSDT_FILES)) build.o static_tables.o
 $(ACPI_OBJS): CFLAGS += -I. -DLIBACPI_STDUTILS=\"$(CURDIR)/util.h\"
 CFLAGS += -I$(ACPI_PATH)
 vpath build.c $(ACPI_PATH)
@@ -119,7 +119,7 @@ endif
 clean: subdirs-clean
 	rm -f roms.inc roms.inc.new acpi.h
 	rm -f hvmloader hvmloader.tmp *.o $(DEPS)
-	$(MAKE) -C $(ACPI_PATH)  ACPI_BUILD_DIR=$(CURDIR) clean
+	$(MAKE) -C $(ACPI_PATH)  ACPI_BUILD_DIR=$(CURDIR) DSDT_FILES="$(DSDT_FILES)" clean
 
 .PHONY: distclean
 distclean: clean
diff --git a/tools/libacpi/Makefile b/tools/libacpi/Makefile
index 506d85e..7b3ec12 100644
--- a/tools/libacpi/Makefile
+++ b/tools/libacpi/Makefile
@@ -21,9 +21,12 @@ endif
 
 MK_DSDT = $(ACPI_BUILD_DIR)/mk_dsdt
 
-C_SRC-$(CONFIG_X86) = dsdt_anycpu.c dsdt_15cpu.c dsdt_anycpu_qemu_xen.c
+C_SRC-$(CONFIG_X86) = dsdt_anycpu.c dsdt_15cpu.c dsdt_anycpu_qemu_xen.c dsdt_pvh.c
 C_SRC-$(CONFIG_ARM_64) = dsdt_anycpu_arm.c
-C_SRC = $(addprefix $(ACPI_BUILD_DIR)/, dsdt_pvh.c $(C_SRC-y))
+ifeq ($(DSDT_FILES),)
+DSDT_FILES = $(C_SRC-y)
+endif
+C_SRC = $(addprefix $(ACPI_BUILD_DIR)/, $(DSDT_FILES))
 H_SRC = $(addprefix $(ACPI_BUILD_DIR)/, ssdt_s3.h ssdt_s4.h ssdt_pm.h ssdt_tpm.h)
 
 # Suffix for temporary files.
diff --git a/tools/libxl/Makefile b/tools/libxl/Makefile
index af0a3ad..1133ed5 100644
--- a/tools/libxl/Makefile
+++ b/tools/libxl/Makefile
@@ -76,9 +76,9 @@ LIBXL_OBJS-y += libxl_no_colo.o
 endif
 
 ACPI_PATH  = $(XEN_ROOT)/tools/libacpi
-ACPI_FILES = dsdt_pvh.c
-ACPI_OBJS  = $(patsubst %.c,%.o,$(ACPI_FILES)) build.o static_tables.o
-$(ACPI_FILES): acpi
+DSDT_FILES-$(CONFIG_X86) = dsdt_pvh.c
+ACPI_OBJS  = $(patsubst %.c,%.o,$(DSDT_FILES-y)) build.o static_tables.o
+$(DSDT_FILES-y): acpi
 $(ACPI_OBJS): CFLAGS += -I. -DLIBACPI_STDUTILS=\"$(CURDIR)/libxl_x86_acpi.h\"
 vpath build.c $(ACPI_PATH)/
 vpath static_tables.c $(ACPI_PATH)/
@@ -86,14 +86,15 @@ LIBXL_OBJS-$(CONFIG_X86) += $(ACPI_OBJS)
 
 .PHONY: acpi
 acpi:
-	$(MAKE) -C $(ACPI_PATH) ACPI_BUILD_DIR=$(CURDIR)
+	$(MAKE) -C $(ACPI_PATH) ACPI_BUILD_DIR=$(CURDIR) DSDT_FILES="$(DSDT_FILES-y)"
 
 LIBXL_OBJS-$(CONFIG_X86) += libxl_cpuid.o libxl_x86.o libxl_psr.o libxl_x86_acpi.o
 LIBXL_OBJS-$(CONFIG_ARM) += libxl_nocpuid.o libxl_arm.o libxl_libfdt_compat.o
 ifeq ($(CONFIG_ARM_64),y)
-LIBXL_OBJS-y += libxl_arm_acpi.o dsdt_anycpu_arm.o
+DSDT_FILES-y = dsdt_anycpu_arm.c
+LIBXL_OBJS-y += libxl_arm_acpi.o $(patsubst %.c,%.o,$(DSDT_FILES-y))
 dsdt_anycpu_arm.c:
-	$(MAKE) -C $(ACPI_PATH) ACPI_BUILD_DIR=$(CURDIR)
+	$(MAKE) -C $(ACPI_PATH) ACPI_BUILD_DIR=$(CURDIR) DSDT_FILES="$(DSDT_FILES-y)"
 else
 LIBXL_OBJS-$(CONFIG_ARM) += libxl_arm_no_acpi.o
 endif
@@ -330,7 +331,7 @@ clean:
 	$(RM) -f testidl.c.new testidl.c *.api-ok
 	$(RM) -f xenlight.pc
 	$(RM) -f xlutil.pc
-	$(MAKE) -C $(ACPI_PATH) ACPI_BUILD_DIR=$(CURDIR) clean
+	$(MAKE) -C $(ACPI_PATH) ACPI_BUILD_DIR=$(CURDIR) DSDT_FILES="$(DSDT_FILES-y)" clean
 
 distclean: clean
 	$(RM) -f xenlight.pc.in xlutil.pc.in
-- 
2.7.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH 0/2] libacpi updates
  2016-11-15  4:52 [PATCH 0/2] libacpi updates Boris Ostrovsky
  2016-11-15  4:52 ` [PATCH 1/2] tools/libacpi: Re-licence remaining GPL code to LGPLv2.1 Boris Ostrovsky
  2016-11-15  4:52 ` [PATCH 2/2] libacpi: Be specific about which DSDT files to build Boris Ostrovsky
@ 2016-11-15  4:55 ` Boris Ostrovsky
  2 siblings, 0 replies; 12+ messages in thread
From: Boris Ostrovsky @ 2016-11-15  4:55 UTC (permalink / raw)
  To: xen-devel
  Cc: lars.kurth, wei.liu2, andrew.cooper3, ian.jackson, Julien Grall,
	Shannon Zhao, jbeulich



On 11/14/2016 11:52 PM, Boris Ostrovsky wrote:
> First patch makes all DSDT tables to be licensed under LGPL.
>
> Seconds patch updates makefiles to create only DSDT files that are
> needed by a particular component/architecture (some files were
> built unnecessarily). I haven't tested on ARM so if Julian or
> Shannon could give it a quick test I'd appreciate it.


And copying them would have been a good idea.

-boris


>
> Boris Ostrovsky (2):
>   tools/libacpi: Re-licence remaining GPL code to LGPLv2.1
>   libacpi: Be specific about which DSDT files to build
>
>  tools/firmware/hvmloader/Makefile |  11 ++--
>  tools/libacpi/COPYING             |  12 ----
>  tools/libacpi/Makefile            |  25 +++-----
>  tools/libacpi/dsdt.asl            |  11 ++++
>  tools/libacpi/gpl/COPYING         |  22 -------
>  tools/libacpi/gpl/mk_dsdt_gpl.sh  | 117 --------------------------------------
>  tools/libacpi/mk_dsdt.c           |  68 +++++++++++++++++++++-
>  tools/libxl/Makefile              |  15 ++---
>  8 files changed, 99 insertions(+), 182 deletions(-)
>  delete mode 100644 tools/libacpi/gpl/COPYING
>  delete mode 100755 tools/libacpi/gpl/mk_dsdt_gpl.sh
>

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/2] tools/libacpi: Re-licence remaining GPL code to LGPLv2.1
  2016-11-15  4:52 ` [PATCH 1/2] tools/libacpi: Re-licence remaining GPL code to LGPLv2.1 Boris Ostrovsky
@ 2016-11-15  6:14   ` Wei Liu
  2016-11-15  8:10   ` Jan Beulich
  2016-11-15 15:14   ` Wei Liu
  2 siblings, 0 replies; 12+ messages in thread
From: Wei Liu @ 2016-11-15  6:14 UTC (permalink / raw)
  To: Boris Ostrovsky
  Cc: lars.kurth, wei.liu2, andrew.cooper3, ian.jackson, xen-devel,
	jbeulich, Ken Lancaster

On Mon, Nov 14, 2016 at 11:52:26PM -0500, Boris Ostrovsky wrote:
> We now have permission from Lenovo to relicense commit 801d469ad8b2
> ("[HVM] ACPI support patch 3 of 4: ACPI _PRT table") to LGPLv2.1
> 
> This essentially means reverting commits c3397311a658 ("acpi: Prevent
> GPL-only code from seeping into non-GPL binaries") and 26c4f0b8a4cf
> ("tools/libacpi: fix sed usage")
> 
> Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
> Acked-by: Ken Lancaster <klancaster@lenovo.com>

Reviewed-by: Wei Liu <wei.liu2@citrix.com>

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/2] libacpi: Be specific about which DSDT files to build
  2016-11-15  4:52 ` [PATCH 2/2] libacpi: Be specific about which DSDT files to build Boris Ostrovsky
@ 2016-11-15  6:17   ` Wei Liu
  2016-11-15 13:35     ` Boris Ostrovsky
  2016-11-15  8:14   ` Jan Beulich
  1 sibling, 1 reply; 12+ messages in thread
From: Wei Liu @ 2016-11-15  6:17 UTC (permalink / raw)
  To: Boris Ostrovsky
  Cc: lars.kurth, wei.liu2, andrew.cooper3, ian.jackson, xen-devel, jbeulich

On Mon, Nov 14, 2016 at 11:52:27PM -0500, Boris Ostrovsky wrote:
> There is no reason to build, for example, dsdt_pvh.asl for hvmloader. We
> pass which DSDTs to build via DSDT_FILES parameter.
> 
> If DSDT_FILES is empty all DSDTs for a particular architecture will be built.
> 
> Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>

Acked-by: Wei Liu <wei.liu2@citrix.com>

This doesn't seem to be strictly necessary for 4.8 though.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/2] tools/libacpi: Re-licence remaining GPL code to LGPLv2.1
  2016-11-15  4:52 ` [PATCH 1/2] tools/libacpi: Re-licence remaining GPL code to LGPLv2.1 Boris Ostrovsky
  2016-11-15  6:14   ` Wei Liu
@ 2016-11-15  8:10   ` Jan Beulich
  2016-11-15 15:14   ` Wei Liu
  2 siblings, 0 replies; 12+ messages in thread
From: Jan Beulich @ 2016-11-15  8:10 UTC (permalink / raw)
  To: Boris Ostrovsky
  Cc: lars.kurth, wei.liu2, andrew.cooper3, ian.jackson, xen-devel,
	Ken Lancaster

>>> On 15.11.16 at 05:52, <boris.ostrovsky@oracle.com> wrote:
> We now have permission from Lenovo to relicense commit 801d469ad8b2
> ("[HVM] ACPI support patch 3 of 4: ACPI _PRT table") to LGPLv2.1
> 
> This essentially means reverting commits c3397311a658 ("acpi: Prevent
> GPL-only code from seeping into non-GPL binaries") and 26c4f0b8a4cf
> ("tools/libacpi: fix sed usage")
> 
> Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
> Acked-by: Ken Lancaster <klancaster@lenovo.com>

Acked-by: Jan Beulich <jbeulich@suse.com>


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/2] libacpi: Be specific about which DSDT files to build
  2016-11-15  4:52 ` [PATCH 2/2] libacpi: Be specific about which DSDT files to build Boris Ostrovsky
  2016-11-15  6:17   ` Wei Liu
@ 2016-11-15  8:14   ` Jan Beulich
  1 sibling, 0 replies; 12+ messages in thread
From: Jan Beulich @ 2016-11-15  8:14 UTC (permalink / raw)
  To: Boris Ostrovsky
  Cc: lars.kurth, wei.liu2, andrew.cooper3, ian.jackson, xen-devel

> @@ -119,7 +119,7 @@ endif
>  clean: subdirs-clean
>  	rm -f roms.inc roms.inc.new acpi.h
>  	rm -f hvmloader hvmloader.tmp *.o $(DEPS)
> -	$(MAKE) -C $(ACPI_PATH)  ACPI_BUILD_DIR=$(CURDIR) clean
> +	$(MAKE) -C $(ACPI_PATH)  ACPI_BUILD_DIR=$(CURDIR) DSDT_FILES="$(DSDT_FILES)" 

I think this could be left out - there's no issue cleaning up a wider set
of files. Namely during the transition just imagine someone running
a "clean" after having pulled your change.

> --- a/tools/libacpi/Makefile
> +++ b/tools/libacpi/Makefile
> @@ -21,9 +21,12 @@ endif
>  
>  MK_DSDT = $(ACPI_BUILD_DIR)/mk_dsdt
>  
> -C_SRC-$(CONFIG_X86) = dsdt_anycpu.c dsdt_15cpu.c dsdt_anycpu_qemu_xen.c
> +C_SRC-$(CONFIG_X86) = dsdt_anycpu.c dsdt_15cpu.c dsdt_anycpu_qemu_xen.c dsdt_pvh.c
>  C_SRC-$(CONFIG_ARM_64) = dsdt_anycpu_arm.c
> -C_SRC = $(addprefix $(ACPI_BUILD_DIR)/, dsdt_pvh.c $(C_SRC-y))
> +ifeq ($(DSDT_FILES),)
> +DSDT_FILES = $(C_SRC-y)
> +endif

DSDT_FILES ?= $(C_SRC-y)

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/2] libacpi: Be specific about which DSDT files to build
  2016-11-15  6:17   ` Wei Liu
@ 2016-11-15 13:35     ` Boris Ostrovsky
  2016-11-15 13:45       ` Andrew Cooper
  0 siblings, 1 reply; 12+ messages in thread
From: Boris Ostrovsky @ 2016-11-15 13:35 UTC (permalink / raw)
  To: Wei Liu; +Cc: lars.kurth, andrew.cooper3, ian.jackson, xen-devel, jbeulich

On 11/15/2016 01:17 AM, Wei Liu wrote:
> On Mon, Nov 14, 2016 at 11:52:27PM -0500, Boris Ostrovsky wrote:
>> There is no reason to build, for example, dsdt_pvh.asl for hvmloader. We
>> pass which DSDTs to build via DSDT_FILES parameter.
>>
>> If DSDT_FILES is empty all DSDTs for a particular architecture will be built.
>>
>> Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
> Acked-by: Wei Liu <wei.liu2@citrix.com>
>
> This doesn't seem to be strictly necessary for 4.8 though.

Right.

In fact, I'd argue that even the first patch could wait until after 4.8
is out given that we are quite late in RC cycle now and it is not fixing
any bugs.


-boris

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/2] libacpi: Be specific about which DSDT files to build
  2016-11-15 13:35     ` Boris Ostrovsky
@ 2016-11-15 13:45       ` Andrew Cooper
  2016-11-15 14:14         ` Lars Kurth
  0 siblings, 1 reply; 12+ messages in thread
From: Andrew Cooper @ 2016-11-15 13:45 UTC (permalink / raw)
  To: Boris Ostrovsky, Wei Liu; +Cc: lars.kurth, ian.jackson, jbeulich, xen-devel

On 15/11/16 13:35, Boris Ostrovsky wrote:
> On 11/15/2016 01:17 AM, Wei Liu wrote:
>> On Mon, Nov 14, 2016 at 11:52:27PM -0500, Boris Ostrovsky wrote:
>>> There is no reason to build, for example, dsdt_pvh.asl for hvmloader. We
>>> pass which DSDTs to build via DSDT_FILES parameter.
>>>
>>> If DSDT_FILES is empty all DSDTs for a particular architecture will be built.
>>>
>>> Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
>> Acked-by: Wei Liu <wei.liu2@citrix.com>
>>
>> This doesn't seem to be strictly necessary for 4.8 though.
> Right.
>
> In fact, I'd argue that even the first patch could wait until after 4.8
> is out given that we are quite late in RC cycle now and it is not fixing
> any bugs.

Patch 1 should definitely be taken into 4.8, so we don't end up with one
release of Xen with a dual-licensed libacpi.

~Andrew

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/2] libacpi: Be specific about which DSDT files to build
  2016-11-15 13:45       ` Andrew Cooper
@ 2016-11-15 14:14         ` Lars Kurth
  0 siblings, 0 replies; 12+ messages in thread
From: Lars Kurth @ 2016-11-15 14:14 UTC (permalink / raw)
  To: Andrew Cooper, Boris Ostrovsky, Wei Liu; +Cc: Ian Jackson, jbeulich, xen-devel



On 15/11/2016 13:45, "Andrew Cooper" <Andrew.Cooper3@citrix.com> wrote:

>On 15/11/16 13:35, Boris Ostrovsky wrote:
>> On 11/15/2016 01:17 AM, Wei Liu wrote:
>>> On Mon, Nov 14, 2016 at 11:52:27PM -0500, Boris Ostrovsky wrote:
>>>> There is no reason to build, for example, dsdt_pvh.asl for hvmloader.
>>>>We
>>>> pass which DSDTs to build via DSDT_FILES parameter.
>>>>
>>>> If DSDT_FILES is empty all DSDTs for a particular architecture will
>>>>be built.
>>>>
>>>> Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
>>> Acked-by: Wei Liu <wei.liu2@citrix.com>
>>>
>>> This doesn't seem to be strictly necessary for 4.8 though.
>> Right.
>>
>> In fact, I'd argue that even the first patch could wait until after 4.8
>> is out given that we are quite late in RC cycle now and it is not fixing
>> any bugs.
>
>Patch 1 should definitely be taken into 4.8, so we don't end up with one
>release of Xen with a dual-licensed libacpi.

+1
Lars

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/2] tools/libacpi: Re-licence remaining GPL code to LGPLv2.1
  2016-11-15  4:52 ` [PATCH 1/2] tools/libacpi: Re-licence remaining GPL code to LGPLv2.1 Boris Ostrovsky
  2016-11-15  6:14   ` Wei Liu
  2016-11-15  8:10   ` Jan Beulich
@ 2016-11-15 15:14   ` Wei Liu
  2 siblings, 0 replies; 12+ messages in thread
From: Wei Liu @ 2016-11-15 15:14 UTC (permalink / raw)
  To: Boris Ostrovsky
  Cc: lars.kurth, wei.liu2, andrew.cooper3, ian.jackson, xen-devel,
	jbeulich, Ken Lancaster

On Mon, Nov 14, 2016 at 11:52:26PM -0500, Boris Ostrovsky wrote:
> We now have permission from Lenovo to relicense commit 801d469ad8b2
> ("[HVM] ACPI support patch 3 of 4: ACPI _PRT table") to LGPLv2.1
> 
> This essentially means reverting commits c3397311a658 ("acpi: Prevent
> GPL-only code from seeping into non-GPL binaries") and 26c4f0b8a4cf
> ("tools/libacpi: fix sed usage")
> 
> Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
> Acked-by: Ken Lancaster <klancaster@lenovo.com>

Applied

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2016-11-15 15:14 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-11-15  4:52 [PATCH 0/2] libacpi updates Boris Ostrovsky
2016-11-15  4:52 ` [PATCH 1/2] tools/libacpi: Re-licence remaining GPL code to LGPLv2.1 Boris Ostrovsky
2016-11-15  6:14   ` Wei Liu
2016-11-15  8:10   ` Jan Beulich
2016-11-15 15:14   ` Wei Liu
2016-11-15  4:52 ` [PATCH 2/2] libacpi: Be specific about which DSDT files to build Boris Ostrovsky
2016-11-15  6:17   ` Wei Liu
2016-11-15 13:35     ` Boris Ostrovsky
2016-11-15 13:45       ` Andrew Cooper
2016-11-15 14:14         ` Lars Kurth
2016-11-15  8:14   ` Jan Beulich
2016-11-15  4:55 ` [PATCH 0/2] libacpi updates Boris Ostrovsky

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.