From nobody Mon Feb 9 20:59:28 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=amsat.org ARC-Seal: i=1; a=rsa-sha256; t=1593697111; cv=none; d=zohomail.com; s=zohoarc; b=XSWmNbItkgnJ3MJR1wzm0tIT8a/D8zd5YvOf+GF2YybEK6Oc7jQtj0FJY1KLPxDCsR6ecI39w91ZmYnDK/3xkngGdepLOIsB8eTcqxu6e0anZ0zOa7nBXjUNG6+jkieqmmYv+q0Wvob0kaMX1/j2O3hb0vnRHmHyfTGtnGzfU1o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1593697111; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=5jSKi2QOxwNQ1UhTGOrIlKaL8fARM41TzI1DAZN/UMI=; b=Xvdk1bEAxa6wfooAm27O1tZTX3USxEmamslOtHlpG1dlzb8kqFwv3mBxcWntACWuQEf3IfCEk0wiHTTSFjPekU0tBsg8iHb7BFkCQLvv9nj7+ixR4fKGGvzbUt+Lp+xEwIuzQeL3ngS68M27QR9S7GqFx10k1EFD9+aA/kbRh7s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1593697111938777.0293080908773; Thu, 2 Jul 2020 06:38:31 -0700 (PDT) Received: from localhost ([::1]:54602 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jqzQ6-0003IX-HK for importer@patchew.org; Thu, 02 Jul 2020 09:38:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38402) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jqzOs-0001Ke-QG for qemu-devel@nongnu.org; Thu, 02 Jul 2020 09:37:14 -0400 Received: from mail-wr1-x444.google.com ([2a00:1450:4864:20::444]:38837) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jqzOq-0004I7-H8 for qemu-devel@nongnu.org; Thu, 02 Jul 2020 09:37:14 -0400 Received: by mail-wr1-x444.google.com with SMTP id z13so28441235wrw.5 for ; Thu, 02 Jul 2020 06:37:12 -0700 (PDT) Received: from localhost.localdomain (1.red-83-51-162.dynamicip.rima-tde.net. [83.51.162.1]) by smtp.gmail.com with ESMTPSA id p17sm10190511wma.47.2020.07.02.06.37.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Jul 2020 06:37:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=5jSKi2QOxwNQ1UhTGOrIlKaL8fARM41TzI1DAZN/UMI=; b=bCBT0AFWnkllwtDyRzWUuM+M0aXnZeOCe7mT9y5wlQkghPOqY1b0BoCUs2JOMFzIBb e1JwKTF3DyVr8WggNUwObXgYk+x3JENac5lo0KOfyZi0w3psi8s0fkwGr425YdPsGUvl m9ROX3Pl6BW6hvB0vr8xK4KsKpCP/yPMae3drpFQNzXsfXeE1OBji52AdZX+/Bo60s5A JaQ8pnb9iCRERXdmTJ1C90ydSlyffj0A27XcNJsJ/A9gRhP3zpl8p1zx0nToO7EmSLql KBNgXvNBoEHHOj/2RNi4kphJh91SWK4qdBfECoMLNh1aZDE0XkxuvsVBU00jyEvLMpFq AV4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=5jSKi2QOxwNQ1UhTGOrIlKaL8fARM41TzI1DAZN/UMI=; b=gCxRKPdo/YPqjYjTDaYjDuY0D7UJ5HV1tYVrmn54GDPPBFQzbj5c/gmt8esu89rlEy iDRJ7FJNDPdwXKU+FxBj6PElTGRYVTlGmL0JFXHOeyWdIsODQMnXS8cKBL39CboSplSP eHTPEYcFZx1vyqoFEW4oa4UXPnAt4iS7PLzNbbkIxS1sZtdJN5R/JGBLV8+otgKuixik fjTzIzEehSwxRK9fUFLT/FZtVjpVrQ/JJIRYMSK0M7rhPF45nEtaFlbCayRZs2IoXxNj DhhPpV4t6FK+A6gBjcT3Y867bLLiSeVkbcDzkvHjvtMEqRv0Uktl0s88xx6ncT4SLf++ G+Lw== X-Gm-Message-State: AOAM530x08e6DsavXZJv7IUvK4qidb9Lvkmtk/FUZ/oL1VSINtP9nKL+ motRmrY66PaZo9rA1wxHJVDeAryxnaQ= X-Google-Smtp-Source: ABdhPJzi8fnfIawZfNy5CXLhyGUqiySVxve1m3tUkgJEwCdemzU9BsZc8nVPaSdxmgu9pCCyGR3RXw== X-Received: by 2002:a05:6000:1107:: with SMTP id z7mr31064692wrw.355.1593697030260; Thu, 02 Jul 2020 06:37:10 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH 1/5] Revert "hw/intc: Add Loongson LIOINTC support" Date: Thu, 2 Jul 2020 15:36:57 +0200 Message-Id: <20200702133701.25237-2-f4bug@amsat.org> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20200702133701.25237-1-f4bug@amsat.org> References: <20200702133701.25237-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::444; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-x444.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: 0 X-Spam_score: 0.0 X-Spam_bar: / X-Spam_report: (0.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=1, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN X-Spam_action: no action 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: , Cc: Huacai Chen , Aleksandar Markovic , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Aleksandar Markovic said the "[Loongson-3 virtual platforms] machine, for multiple reasons, will not be accepted in 5.1." [*]. As this file file is not buildable/testable neither, remove it from the repository. Re-introducing it later with the rest of the machine will be as easy as reverting this very commit. This reverts commit c012e0b1f9121f3d8d2315af4dfd63084ea23faa. [*] https://www.mail-archive.com/qemu-devel@nongnu.org/msg718416.html Cc: Huacai Chen Cc: Jiaxun Yang Reported-by: Aleksandar Markovic Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/intc/loongson_liointc.c | 242 ------------------------------------- MAINTAINERS | 1 - hw/intc/Kconfig | 3 - hw/intc/Makefile.objs | 1 - 4 files changed, 247 deletions(-) delete mode 100644 hw/intc/loongson_liointc.c diff --git a/hw/intc/loongson_liointc.c b/hw/intc/loongson_liointc.c deleted file mode 100644 index 23ca51cc2e..0000000000 --- a/hw/intc/loongson_liointc.c +++ /dev/null @@ -1,242 +0,0 @@ -/* - * QEMU Loongson Local I/O interrupt controler. - * - * Copyright (c) 2020 Jiaxun Yang - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that 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 . - * - */ - -#include "qemu/osdep.h" -#include "hw/sysbus.h" -#include "qemu/module.h" -#include "hw/irq.h" -#include "hw/qdev-properties.h" - -#define D(x) - -#define NUM_IRQS 32 - -#define NUM_CORES 4 -#define NUM_IPS 4 -#define NUM_PARENTS (NUM_CORES * NUM_IPS) -#define PARENT_COREx_IPy(x, y) (NUM_IPS * x + y) - -#define R_MAPPER_START 0x0 -#define R_MAPPER_END 0x20 -#define R_ISR R_MAPPER_END -#define R_IEN 0x24 -#define R_IEN_SET 0x28 -#define R_IEN_CLR 0x2c -#define R_PERCORE_ISR(x) (0x40 + 0x8 * x) -#define R_END 0x64 - -#define TYPE_LOONGSON_LIOINTC "loongson.liointc" -#define LOONGSON_LIOINTC(obj) \ - OBJECT_CHECK(struct loongson_liointc, (obj), TYPE_LOONGSON_LIOINTC) - -struct loongson_liointc { - SysBusDevice parent_obj; - - MemoryRegion mmio; - qemu_irq parent_irq[NUM_PARENTS]; - - uint8_t mapper[NUM_IRQS]; /* 0:3 for core, 4:7 for IP */ - uint32_t isr; - uint32_t ien; - uint32_t per_core_isr[NUM_CORES]; - - /* state of the interrupt input pins */ - uint32_t pin_state; - bool parent_state[NUM_PARENTS]; -}; - -static void update_irq(struct loongson_liointc *p) -{ - uint32_t irq, core, ip; - uint32_t per_ip_isr[NUM_IPS] =3D {0}; - - /* level triggered interrupt */ - p->isr =3D p->pin_state; - - /* Clear disabled IRQs */ - p->isr &=3D p->ien; - - /* Clear per_core_isr */ - for (core =3D 0; core < NUM_CORES; core++) { - p->per_core_isr[core] =3D 0; - } - - /* Update per_core_isr and per_ip_isr */ - for (irq =3D 0; irq < NUM_IRQS; irq++) { - if (!(p->isr & (1 << irq))) { - continue; - } - - for (core =3D 0; core < NUM_CORES; core++) { - if ((p->mapper[irq] & (1 << core))) { - p->per_core_isr[core] |=3D (1 << irq); - } - } - - for (ip =3D 0; ip < NUM_IPS; ip++) { - if ((p->mapper[irq] & (1 << (ip + 4)))) { - per_ip_isr[ip] |=3D (1 << irq); - } - } - } - - /* Emit IRQ to parent! */ - for (core =3D 0; core < NUM_CORES; core++) { - for (ip =3D 0; ip < NUM_IPS; ip++) { - int parent =3D PARENT_COREx_IPy(core, ip); - if (p->parent_state[parent] !=3D - (!!p->per_core_isr[core] && !!per_ip_isr[ip])) { - p->parent_state[parent] =3D !p->parent_state[parent]; - qemu_set_irq(p->parent_irq[parent], p->parent_state[parent= ]); - } - } - } -} - -static uint64_t -liointc_read(void *opaque, hwaddr addr, unsigned int size) -{ - struct loongson_liointc *p =3D opaque; - uint32_t r =3D 0; - - /* Mapper is 1 byte */ - if (size =3D=3D 1 && addr < R_MAPPER_END) { - r =3D p->mapper[addr]; - goto out; - } - - /* Rest is 4 byte */ - if (size !=3D 4 || (addr % 4)) { - goto out; - } - - if (addr >=3D R_PERCORE_ISR(0) && - addr < R_PERCORE_ISR(NUM_CORES)) { - int core =3D (addr - R_PERCORE_ISR(0)) / 4; - r =3D p->per_core_isr[core]; - goto out; - } - - switch (addr) { - case R_ISR: - r =3D p->isr; - break; - case R_IEN: - r =3D p->ien; - break; - default: - break; - } - -out: - D(qemu_log("%s: size=3D%d addr=3D%lx val=3D%x\n", __func__, size, addr= , r)); - return r; -} - -static void -liointc_write(void *opaque, hwaddr addr, - uint64_t val64, unsigned int size) -{ - struct loongson_liointc *p =3D opaque; - uint32_t value =3D val64; - - D(qemu_log("%s: size=3D%d, addr=3D%lx val=3D%x\n", __func__, size, add= r, value)); - - /* Mapper is 1 byte */ - if (size =3D=3D 1 && addr < R_MAPPER_END) { - p->mapper[addr] =3D value; - goto out; - } - - /* Rest is 4 byte */ - if (size !=3D 4 || (addr % 4)) { - goto out; - } - - if (addr >=3D R_PERCORE_ISR(0) && - addr < R_PERCORE_ISR(NUM_CORES)) { - int core =3D (addr - R_PERCORE_ISR(0)) / 4; - p->per_core_isr[core] =3D value; - goto out; - } - - switch (addr) { - case R_IEN_SET: - p->ien |=3D value; - break; - case R_IEN_CLR: - p->ien &=3D ~value; - break; - default: - break; - } - -out: - update_irq(p); -} - -static const MemoryRegionOps pic_ops =3D { - .read =3D liointc_read, - .write =3D liointc_write, - .endianness =3D DEVICE_NATIVE_ENDIAN, - .valid =3D { - .min_access_size =3D 1, - .max_access_size =3D 4 - } -}; - -static void irq_handler(void *opaque, int irq, int level) -{ - struct loongson_liointc *p =3D opaque; - - p->pin_state &=3D ~(1 << irq); - p->pin_state |=3D level << irq; - update_irq(p); -} - -static void loongson_liointc_init(Object *obj) -{ - struct loongson_liointc *p =3D LOONGSON_LIOINTC(obj); - int i; - - qdev_init_gpio_in(DEVICE(obj), irq_handler, 32); - - for (i =3D 0; i < NUM_PARENTS; i++) { - sysbus_init_irq(SYS_BUS_DEVICE(obj), &p->parent_irq[i]); - } - - memory_region_init_io(&p->mmio, obj, &pic_ops, p, - "loongson.liointc", R_END); - sysbus_init_mmio(SYS_BUS_DEVICE(obj), &p->mmio); -} - -static const TypeInfo loongson_liointc_info =3D { - .name =3D TYPE_LOONGSON_LIOINTC, - .parent =3D TYPE_SYS_BUS_DEVICE, - .instance_size =3D sizeof(struct loongson_liointc), - .instance_init =3D loongson_liointc_init, -}; - -static void loongson_liointc_register_types(void) -{ - type_register_static(&loongson_liointc_info); -} - -type_init(loongson_liointc_register_types) diff --git a/MAINTAINERS b/MAINTAINERS index dec252f38b..f463b83d7a 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1100,7 +1100,6 @@ Loongson-3 virtual platforms M: Huacai Chen R: Jiaxun Yang S: Maintained -F: hw/intc/loongson_liointc.c =20 Boston M: Paul Burton diff --git a/hw/intc/Kconfig b/hw/intc/Kconfig index 2ae1e89497..f562342bab 100644 --- a/hw/intc/Kconfig +++ b/hw/intc/Kconfig @@ -64,6 +64,3 @@ config OMPIC =20 config RX_ICU bool - -config LOONGSON_LIOINTC - bool diff --git a/hw/intc/Makefile.objs b/hw/intc/Makefile.objs index 3ac2b40fbb..a4202636d4 100644 --- a/hw/intc/Makefile.objs +++ b/hw/intc/Makefile.objs @@ -51,4 +51,3 @@ obj-$(CONFIG_MIPS_CPS) +=3D mips_gic.o obj-$(CONFIG_NIOS2) +=3D nios2_iic.o obj-$(CONFIG_OMPIC) +=3D ompic.o obj-$(CONFIG_IBEX) +=3D ibex_plic.o -obj-$(CONFIG_LOONGSON_LIOINTC) +=3D loongson_liointc.o --=20 2.21.3