From patchwork Mon Mar 30 23:12:36 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1264405 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=CZbGWrMr; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48rpf81LRwz9sSJ for ; Tue, 31 Mar 2020 10:32:32 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id F346581904; Tue, 31 Mar 2020 01:31:49 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="CZbGWrMr"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 4E408818E6; Tue, 31 Mar 2020 01:14:28 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-il1-x144.google.com (mail-il1-x144.google.com [IPv6:2607:f8b0:4864:20::144]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id AF52480369 for ; Tue, 31 Mar 2020 01:14:06 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-il1-x144.google.com with SMTP id t11so17646057ils.1 for ; Mon, 30 Mar 2020 16:14:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=af0IChme26cJeBokhjTR92DpgSY+QZLJCSayNpf5yJE=; b=CZbGWrMrBZW8mYJU0pVdzF2wIYEODv0ohod2cmS54HW/kfyJh0CoAH2uDHoKo6NtPy NcyhcettoOLJUpqJzCZ8xIDU0ocnTtZSKqo4CCNtpbYazfAStL2ldh/64p8uz973X8CD bijihEWiR2Ju1hWB2S3VninzUNBElVntwi3lc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=af0IChme26cJeBokhjTR92DpgSY+QZLJCSayNpf5yJE=; b=Fs4Ucu05zlvX050HQNLzfdRyR5PEPT0WVGTsngOACItwwzNF2e4Z0bMZJCo3NGwNKt Vof7IuJ3dr02jygr3TqZ7fdxEiT445SIu/rgj0nM08jUOLookSdx5/eYhhQxKvka055f PfaOip1yLrt7ak45IPOOonC8ecH+n0sBN+hLq2BFk4QF13in0w0LOYnLbkOEQAWb3Yb6 ShuNZHYBdWNG2DzWQv5sQX+L4iavV0aAJowdneQvwoXjaSexJoGE8favjjYqOvlhuO38 huE8UG08Yw4ouMyRKtFmUiO/7qWWnVW5MyiFrhaygd3+HxMMlKurIIXYx4+yGKZNjAAW s6Kg== X-Gm-Message-State: ANhLgQ2N8FT6Y8799WCx11QVpSiqhnNDhu7tHa4MAKbsAua93niS8mRP e7EZS0AJ5Nq4DpGch6xu1YNwySvXbxh4yw== X-Google-Smtp-Source: ADFU+vspZWnYeMZVBr5g5B6ATNLtnuiQb76tbnnZHy2ZCXpGOfK0th+nOHTS/32hMkETOU6yrdH/FQ== X-Received: by 2002:a92:d650:: with SMTP id x16mr14298245ilp.226.1585610034927; Mon, 30 Mar 2020 16:13:54 -0700 (PDT) Received: from localhost.localdomain (c-73-14-175-90.hsd1.co.comcast.net. [73.14.175.90]) by smtp.gmail.com with ESMTPSA id c28sm5357898ilf.26.2020.03.30.16.13.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2020 16:13:54 -0700 (PDT) From: Simon Glass To: u-boot@lists.denx.de Cc: Andy Shevchenko , Wolfgang Wallner , Leif Lindholm , Simon Glass , AKASHI Takahiro , Alex Marginean , Alex Marginean , Alexander Graf , Anatolij Gustschin , Andy Shevchenko , Anup Patel , Bin Meng , Eugeniu Rosca , Heinrich Schuchardt , Jaehoon Chung , Jagan Teki , Jean-Jacques Hiblot , Joe Hershberger , Joel Johnson , Lukasz Majewski , =?utf-8?q?Marek_Beh=C3=BAn?= , Michael Walle , Miquel Raynal , "Park, Aiden" , Patrice Chotard , Patrick Delaunay , Peng Fan , Philippe Reynes , Ramon Fried , Sam Protsenko , Sean Anderson , Simon Goldschmidt , Stefan Roese , Thierry Reding , Vagrant Cascadian Subject: [PATCH v3 00/29] dm: Add programmatic generation of ACPI tables (part A) Date: Mon, 30 Mar 2020 17:12:36 -0600 Message-Id: <20200330231305.130488-1-sjg@chromium.org> X-Mailer: git-send-email 2.26.0.rc2.310.g2932bb562d-goog MIME-Version: 1.0 X-Mailman-Approved-At: Tue, 31 Mar 2020 01:31:49 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.2 at phobos.denx.de X-Virus-Status: Clean This is split from the original series in an attempt to get things applied in chunks. This section includes patches up to and including the 'acpi' command. Changes in v3: - Add a pointer to information about acpi,compatible - Add forward declarations for the functions - Add missing error check in acpi_create_dmar() - Add new patch to add hexdump.h to the unit test header - Add new patch to move acpi_s3.h to include/acpi/ - Beef up the comment explaining how the unaligned address is used - Change the example to ELAN - Compute ACPI_NAME_MAX from ACPI_NAME_LEN - Correct description of acpi,probed - Drop 'Intel' from 'Intel ACPI' - Drop acpi,name in example - Drop duplicate assert - Drop hid-descr-addr - Drop mention of PRIC - Fix 'RSDP' typo - Fix 'XDST' typo - Fix DMA_ typo - Fix a few typos - Fix file comment for acpi_table.c - Fix indenting error mentioned by Andy Shevchenko - Fix stray #endif - Just add the device.txt binding file in this patch - Make use of BIT() - Move acpi_align_large() out of dm_test_acpi_setup_base_tables() - Move acpi_table.h to include/acpi - Rename acpi,desc to acpi,ddn - Rename acpi_align_large() to acpi_align64() - Rename acpi_return_name() to acpi_copy_name() - Reword commit message to drop the bit about ACPI being complicated - Split out hid-over-i2c into its own patch - Update commit message to say that we move most of its contents - Use strncpy() instead of strcpy() in acpi_copy_name() Changes in v2: - Add in the acpi_table.h header file to this patch - Add the hid-over-i2c binding document - Add trailing commas to enum - Don't bracket the definitions with DM_SPI - Drop definition of ACPI_TABLE_CREATOR - Drop the Chrome OS pieces - Drop the other comment change since it is already applied - Drop two unnecessary __packed - Fix definition of HID - Generalise the ACPI function recursion with acpi_recurse_method() - Infer hid-over-i2c CID value - Make _acpi_write_dev_tables() static and switch argument order - Move LOGC_ACPI definition to this patch - Move __packed to after struct - Move the sandbox acpi_table.h header file to an earlier patch - Rename the 'coreboot' console to 'U-Boot' - Use #defines for MADT and MCFG version numbers Simon Glass (29): cpu: Support querying the address width spi: Add SPI mode enums tpm: cr50: Release locality on exit tpm: cr50: Add a comment for cr50_priv tpm: cr50: Use the correct GPIO binding tpm: Don't cleanup unless an error happens dm: pci: Allow disabling auto-config for a device x86: Correct wording of coreboot source code x86: apl: Move p2sb ofdata reading to the correct method pci: Adjust dm_pci_read_bar32() to return errors correctly x86: apl: Add Global NVS table header dm: core: Add basic ACPI support dts: Add a binding for hid-over-i2c acpi: Add a binding for ACPI settings in the device tree acpi: Add a simple sandbox test x86: Move acpi_s3.h to include/acpi/ x86: Move acpi_table header to main include/ directory acpi: Add an __ACPI__ preprocessor symbol acpi: Add a central location for table version numbers acpi: Add support for DMAR test: Add hexdump.h to the unit test header acpi: Add a method to write tables for a device acpi: Convert part of acpi_table to use acpi_ctx x86: Allow devices to write ACPI tables acpi: Drop code for missing XSDT from acpi_write_rsdp() acpi: Move acpi_add_table() to generic code acpi: Put table-setup code in its own function acpi: Move the xsdt pointer to acpi_ctx acpi: Add an acpi command arch/sandbox/dts/test.dts | 8 + arch/sandbox/include/asm/acpi_table.h | 9 + arch/sandbox/include/asm/global_data.h | 1 + arch/x86/cpu/apollolake/cpu_spl.c | 2 +- arch/x86/cpu/apollolake/fsp_s.c | 2 +- arch/x86/cpu/apollolake/pmc.c | 2 +- arch/x86/cpu/baytrail/acpi.c | 6 +- arch/x86/cpu/coreboot/timestamp.c | 4 +- arch/x86/cpu/cpu.c | 4 +- arch/x86/cpu/intel_common/p2sb.c | 33 +- arch/x86/cpu/quark/acpi.c | 2 +- arch/x86/cpu/tangier/acpi.c | 4 +- arch/x86/cpu/wakeup.S | 2 +- arch/x86/dts/chromebook_coral.dts | 2 +- arch/x86/include/asm/acpi_table.h | 381 +----------- .../include/asm/arch-apollolake/global_nvs.h | 36 ++ .../x86/include/asm/arch-coreboot/timestamp.h | 4 +- arch/x86/include/asm/global_data.h | 1 + arch/x86/include/asm/intel_pinctrl_defs.h | 2 - arch/x86/lib/acpi.c | 2 +- arch/x86/lib/acpi_s3.c | 4 +- arch/x86/lib/acpi_table.c | 240 ++------ arch/x86/lib/coreboot_table.c | 2 +- arch/x86/lib/fsp/fsp_common.c | 2 +- arch/x86/lib/fsp1/fsp_common.c | 2 +- arch/x86/lib/fsp2/fsp_dram.c | 2 +- arch/x86/lib/tables.c | 2 +- arch/x86/lib/zimage.c | 2 +- cmd/Kconfig | 14 + cmd/Makefile | 1 + cmd/acpi.c | 179 ++++++ doc/device-tree-bindings/device.txt | 37 ++ .../gpio/intel,apl-gpio.txt | 2 +- .../input/hid-over-i2c.txt | 44 ++ .../interrupt-controller/intel,acpi-gpe.txt | 2 +- doc/device-tree-bindings/pci/x86-pci.txt | 23 + drivers/core/Kconfig | 9 + drivers/core/Makefile | 1 + drivers/core/acpi.c | 94 +++ drivers/cpu/cpu_sandbox.c | 1 + drivers/pci/pci-uclass.c | 11 +- drivers/pci/pci_rom.c | 4 +- drivers/power/acpi_pmc/acpi-pmc-uclass.c | 2 +- drivers/sysreset/sysreset_x86.c | 2 +- drivers/tpm/cr50_i2c.c | 24 +- drivers/tpm/tpm-uclass.c | 13 +- include/{ => acpi}/acpi_s3.h | 0 include/acpi/acpi_table.h | 581 ++++++++++++++++++ include/cpu.h | 2 + include/dm/acpi.h | 114 ++++ include/dm/device.h | 5 + include/dm/uclass-id.h | 1 + include/log.h | 2 + include/spi.h | 33 + include/test/ut.h | 1 + lib/Makefile | 1 + lib/acpi/Makefile | 4 + lib/acpi/acpi_table.c | 257 ++++++++ lib/efi_loader/efi_acpi.c | 2 +- scripts/Makefile.lib | 4 +- test/dm/Makefile | 1 + test/dm/acpi.c | 317 ++++++++++ test/dm/cpu.c | 1 + 63 files changed, 1915 insertions(+), 637 deletions(-) create mode 100644 arch/sandbox/include/asm/acpi_table.h create mode 100644 arch/x86/include/asm/arch-apollolake/global_nvs.h create mode 100644 cmd/acpi.c create mode 100644 doc/device-tree-bindings/device.txt create mode 100644 doc/device-tree-bindings/input/hid-over-i2c.txt create mode 100644 drivers/core/acpi.c rename include/{ => acpi}/acpi_s3.h (100%) create mode 100644 include/acpi/acpi_table.h create mode 100644 include/dm/acpi.h create mode 100644 lib/acpi/Makefile create mode 100644 lib/acpi/acpi_table.c create mode 100644 test/dm/acpi.c