From patchwork Tue Oct 22 13:31:27 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 177195 Delivered-To: patch@linaro.org Received: by 2002:ac9:3c86:0:0:0:0:0 with SMTP id w6csp5795980ocf; Tue, 22 Oct 2019 07:09:19 -0700 (PDT) X-Google-Smtp-Source: APXvYqzcxPrfMj3GpumHbgr2uzNx+IEgKBCYDac4oohRiGmm8Sj8rk18j2/z8uEWmlSwbhCy5EiW X-Received: by 2002:ac8:2a83:: with SMTP id b3mr3536819qta.244.1571753359010; Tue, 22 Oct 2019 07:09:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1571753359; cv=none; d=google.com; s=arc-20160816; b=B3Oxw3+H42aSGmziUmsLatXRaIBVL3huYH3ZTVnnRgOg+JyEsZZuo134gwaXkJp0zK 90XhRV3dGsVVFjBwURSosTEQ3WwCP0EsLZnzId0SbmqKqTfJp5JHXUWszhdKd6zIrKlz V4jDTFcvF8VNhjbLs2Rr+8OR3MNg1j/vLUVgmiSS+4GuzkajnaMRYXRyn133x0/LmjF8 eeigrWjsL/OxdtKkdK33pssdGBeBryNzKDxdeU0r3cHCKXl9Twc1mJ39VKlVy0jZvLWp OrUeospiMJzWcWv6XckMcRKpiWLwm+q5f0BXVfisY7UiwDZLA6CieAeADifDkUaP6GOK 9bMA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=VQV5FCBK+kBKKN7cw2HOegQIhSxfiRcO/BOW8D/eYOc=; b=uSXJyxk2oPK1Q42Ixhd6apvYA/os7T8R78i08GRgO9+bkb9kdYteQ6RFnomMUBWQmx 9MVmAuZ37RjreQX91EomNj/G+nbMX7luma+fTySmJxuxyW3bt06v8V6abu5xOkCZj4No BMLrnTNt1I0FCGlVr91NuOcUC8rsj0LbbZtWYkv6bBCFXYr5UjjtfU+/9omdFjepZSXu 8Y+DmCJO13YXhjHPacVF8iFnMIz8g5JDA7ShP8nP8jgWIxCHLScaXzodC10SOEnA+laq rGlmgn56Duhx5Kjrc9DDlu3iB9x6gPUVwgeTlFXIU4KopmJE2EWr1HwzUl8TevYf4CzQ Y0Fg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=aa5dwVgz; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id c31si16867258qta.396.2019.10.22.07.09.18 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 22 Oct 2019 07:09:18 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=aa5dwVgz; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:58170 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iMuqc-0005OH-1H for patch@linaro.org; Tue, 22 Oct 2019 10:09:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37198) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iMuHS-0003Sh-KU for qemu-devel@nongnu.org; Tue, 22 Oct 2019 09:32:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iMuHR-0001av-9v for qemu-devel@nongnu.org; Tue, 22 Oct 2019 09:32:58 -0400 Received: from mail-wm1-x343.google.com ([2a00:1450:4864:20::343]:50827) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iMuHR-0001ai-4A for qemu-devel@nongnu.org; Tue, 22 Oct 2019 09:32:57 -0400 Received: by mail-wm1-x343.google.com with SMTP id q13so7252434wmj.0 for ; Tue, 22 Oct 2019 06:32:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=VQV5FCBK+kBKKN7cw2HOegQIhSxfiRcO/BOW8D/eYOc=; b=aa5dwVgzlasXISGNrziOqMe0yxooTPHy5i1Q6TRlHvjYDMP3m1drDJQFN5QT/XQv0J 9WZF2/9VgOEZBEvI67MS9D0ub/OvWI+EDO7tg3yqlPSslzkgJczsW6bPKKoIOtgCYIfm ZOGZ+rdXEpA/CVnxtiBvwp+8+7HvnokwkA3B08euaBKszT832A752itu4dL73MkawLN+ ujkdhnxzqRilOiCuktVCY7rwrn0OeiaYqZGikPPAVaB/NWcqga8n+/JQaTtrvW4rTX4u 70H+EYxge9UwJGiUsDURez0ksQl8hN5nBIH4KLl95t3ELhqaKJewia2oqqACskjojHBv AV5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=VQV5FCBK+kBKKN7cw2HOegQIhSxfiRcO/BOW8D/eYOc=; b=n2+tUvlw7nrUvvT4aOIXDtgInAn2m0vrzy4cO5uZFLJ8agOul7uQjYXfYmH4To7a4m KampQsfjmAXU4vlJb3HIG+7cYyOlv6Kh6N2/FjG8V4ZdOWi4yC7l/p7O0ZSF/dIlI/QD xVDK1SKY1PLFzuY4D0VGDRsOcRE5EQfLPNZklbHxJKb1ozaY8QGCsOfmwljbzXFMqvtx IdB8ReMvPLAJoVwp4gRmeG/kBz2D3yO5FgkPBly7AFUoORqYHKPXGAew74u7PmHUhuOI W2qBn2V8tB08uokDffb58ZWKNxxULQCsZwFOvPMzxni4ahABy9sP0ujCUEXuKGzLFN8l eoTQ== X-Gm-Message-State: APjAAAXUqOLQS5RlM8r2bpwCs3mEw7zrsGg8catpB6BqYHcLen9UHiyq 7x3kXfxMMwiLQRYChIcLlipuirtVo/s= X-Received: by 2002:a7b:c924:: with SMTP id h4mr3210630wml.46.1571751175554; Tue, 22 Oct 2019 06:32:55 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id r2sm20263856wma.1.2019.10.22.06.32.53 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Oct 2019 06:32:53 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 34/41] hw/sd/sdhci: Add dummy Samsung SDHCI controller Date: Tue, 22 Oct 2019 14:31:27 +0100 Message-Id: <20191022133134.14487-35-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20191022133134.14487-1-peter.maydell@linaro.org> References: <20191022133134.14487-1-peter.maydell@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::343 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé The Linux kernel access few S3C-specific registers [1] to set some clock. We don't care about this part for device emulation [2]. Add a dummy device to properly ignore these accesses, so we can focus on the important registers missing. [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/mmc/host/sdhci-s3c-regs.h?h=cc014f3 [2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/mmc/host/sdhci-s3c.c?h=v5.3#n263 Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Krzysztof Kozlowski Message-id: 20191005154748.21718-4-f4bug@amsat.org Signed-off-by: Peter Maydell --- include/hw/sd/sdhci.h | 2 ++ hw/sd/sdhci.c | 65 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) -- 2.20.1 diff --git a/include/hw/sd/sdhci.h b/include/hw/sd/sdhci.h index cbf415e43ab..c6868c96994 100644 --- a/include/hw/sd/sdhci.h +++ b/include/hw/sd/sdhci.h @@ -116,4 +116,6 @@ typedef struct SDHCIState { #define TYPE_IMX_USDHC "imx-usdhc" +#define TYPE_S3C_SDHCI "s3c-sdhci" + #endif /* SDHCI_H */ diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 82ec5c1b4a4..88404d0e9d5 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -1761,11 +1761,76 @@ static const TypeInfo imx_usdhc_info = { .instance_init = imx_usdhc_init, }; +/* --- qdev Samsung s3c --- */ + +#define S3C_SDHCI_CONTROL2 0x80 +#define S3C_SDHCI_CONTROL3 0x84 +#define S3C_SDHCI_CONTROL4 0x8c + +static uint64_t sdhci_s3c_read(void *opaque, hwaddr offset, unsigned size) +{ + uint64_t ret; + + switch (offset) { + case S3C_SDHCI_CONTROL2: + case S3C_SDHCI_CONTROL3: + case S3C_SDHCI_CONTROL4: + /* ignore */ + ret = 0; + break; + default: + ret = sdhci_read(opaque, offset, size); + break; + } + + return ret; +} + +static void sdhci_s3c_write(void *opaque, hwaddr offset, uint64_t val, + unsigned size) +{ + switch (offset) { + case S3C_SDHCI_CONTROL2: + case S3C_SDHCI_CONTROL3: + case S3C_SDHCI_CONTROL4: + /* ignore */ + break; + default: + sdhci_write(opaque, offset, val, size); + break; + } +} + +static const MemoryRegionOps sdhci_s3c_mmio_ops = { + .read = sdhci_s3c_read, + .write = sdhci_s3c_write, + .valid = { + .min_access_size = 1, + .max_access_size = 4, + .unaligned = false + }, + .endianness = DEVICE_LITTLE_ENDIAN, +}; + +static void sdhci_s3c_init(Object *obj) +{ + SDHCIState *s = SYSBUS_SDHCI(obj); + + s->io_ops = &sdhci_s3c_mmio_ops; +} + +static const TypeInfo sdhci_s3c_info = { + .name = TYPE_S3C_SDHCI , + .parent = TYPE_SYSBUS_SDHCI, + .instance_init = sdhci_s3c_init, +}; + static void sdhci_register_types(void) { type_register_static(&sdhci_sysbus_info); type_register_static(&sdhci_bus_info); type_register_static(&imx_usdhc_info); + type_register_static(&sdhci_s3c_info); } type_init(sdhci_register_types)