qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] hw/sh4: Remove the deprecated SHIX machine
@ 2024-09-03 15:39 Philippe Mathieu-Daudé
  2024-09-03 15:39 ` [PATCH 1/3] " Philippe Mathieu-Daudé
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-09-03 15:39 UTC (permalink / raw)
  To: Samuel Tardieu, qemu-devel
  Cc: devel, Magnus Damm, qemu-block, Yoshinori Sato,
	Philippe Mathieu-Daudé

Remove the deprecated SH4 SHIX machine, along
with the TC58128 NAND EEPROM.

Philippe Mathieu-Daudé (3):
  hw/sh4: Remove the deprecated SHIX machine
  hw/block: Remove TC58128 NAND EEPROM
  hw/sh4: Remove sh7750_register_io_device() helper

 MAINTAINERS                             |  11 --
 docs/about/deprecated.rst               |   6 -
 docs/about/removed-features.rst         |   5 +
 configs/devices/sh4-softmmu/default.mak |   1 -
 include/hw/sh4/sh.h                     |  19 ---
 hw/block/tc58128.c                      | 211 ------------------------
 hw/sh4/sh7750.c                         |  57 +------
 hw/sh4/shix.c                           |  86 ----------
 hw/block/Kconfig                        |   3 -
 hw/block/meson.build                    |   1 -
 hw/sh4/Kconfig                          |   7 -
 hw/sh4/meson.build                      |   1 -
 12 files changed, 7 insertions(+), 401 deletions(-)
 delete mode 100644 hw/block/tc58128.c
 delete mode 100644 hw/sh4/shix.c

-- 
2.45.2



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

* [PATCH 1/3] hw/sh4: Remove the deprecated SHIX machine
  2024-09-03 15:39 [PATCH 0/3] hw/sh4: Remove the deprecated SHIX machine Philippe Mathieu-Daudé
@ 2024-09-03 15:39 ` Philippe Mathieu-Daudé
  2024-09-03 15:39 ` [PATCH 2/3] hw/block: Remove TC58128 NAND EEPROM Philippe Mathieu-Daudé
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-09-03 15:39 UTC (permalink / raw)
  To: Samuel Tardieu, qemu-devel
  Cc: devel, Magnus Damm, qemu-block, Yoshinori Sato,
	Philippe Mathieu-Daudé

The SHIX machine is deprecated since v9.0 (commit
322b038c94 "target/sh4: Deprecate the shix machine").
Time to remove it.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 MAINTAINERS                             |  7 +-
 docs/about/deprecated.rst               |  6 --
 docs/about/removed-features.rst         |  5 ++
 configs/devices/sh4-softmmu/default.mak |  1 -
 hw/sh4/shix.c                           | 86 -------------------------
 hw/sh4/Kconfig                          |  7 --
 hw/sh4/meson.build                      |  1 -
 7 files changed, 6 insertions(+), 107 deletions(-)
 delete mode 100644 hw/sh4/shix.c

diff --git a/MAINTAINERS b/MAINTAINERS
index 3584d6a6c6..c8e4e3329c 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1676,16 +1676,11 @@ F: hw/timer/sh_timer.c
 F: include/hw/sh4/sh_intc.h
 F: include/hw/timer/tmu012.h
 
-Shix
+TC58128 NAND EEPROM
 R: Yoshinori Sato <ysato@users.sourceforge.jp>
 R: Magnus Damm <magnus.damm@gmail.com>
 S: Odd Fixes
 F: hw/block/tc58128.c
-F: hw/char/sh_serial.c
-F: hw/sh4/shix.c
-F: hw/intc/sh_intc.c
-F: hw/timer/sh_timer.c
-F: include/hw/sh4/sh_intc.h
 
 SPARC Machines
 --------------
diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index 88f0f03786..2020542a6b 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -232,12 +232,6 @@ These old machine types are quite neglected nowadays and thus might have
 various pitfalls with regards to live migration. Use a newer machine type
 instead.
 
-``shix`` (since 9.0)
-''''''''''''''''''''
-
-The machine is no longer in existence and has been long unmaintained
-in QEMU. This also holds for the TC51828 16MiB flash that it uses.
-
 ``pseries-2.1`` up to ``pseries-2.12`` (since 9.0)
 ''''''''''''''''''''''''''''''''''''''''''''''''''
 
diff --git a/docs/about/removed-features.rst b/docs/about/removed-features.rst
index fc7b28e637..9eaf864004 100644
--- a/docs/about/removed-features.rst
+++ b/docs/about/removed-features.rst
@@ -978,6 +978,11 @@ Nios II ``10m50-ghrd`` and ``nios2-generic-nommu`` machines (removed in 9.1)
 
 The Nios II architecture was orphan.
 
+``shix`` (removed in 9.2)
+'''''''''''''''''''''''''
+
+The machine was unmaintained.
+
 linux-user mode CPUs
 --------------------
 
diff --git a/configs/devices/sh4-softmmu/default.mak b/configs/devices/sh4-softmmu/default.mak
index c06a427053..aa821e4b60 100644
--- a/configs/devices/sh4-softmmu/default.mak
+++ b/configs/devices/sh4-softmmu/default.mak
@@ -7,4 +7,3 @@
 
 # Boards are selected by default, uncomment to keep out of the build.
 # CONFIG_R2D=n
-# CONFIG_SHIX=n
diff --git a/hw/sh4/shix.c b/hw/sh4/shix.c
deleted file mode 100644
index eb3150b5bc..0000000000
--- a/hw/sh4/shix.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * SHIX 2.0 board description
- *
- * Copyright (c) 2005 Samuel Tardieu
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-/*
- * Shix 2.0 board by Alexis Polti, described at
- * https://web.archive.org/web/20070917001736/perso.enst.fr/~polti/realisations/shix20
- *
- * More information in target/sh4/README.sh4
- */
-#include "qemu/osdep.h"
-#include "qapi/error.h"
-#include "cpu.h"
-#include "hw/sh4/sh.h"
-#include "sysemu/qtest.h"
-#include "hw/boards.h"
-#include "hw/loader.h"
-#include "qemu/error-report.h"
-
-#define BIOS_FILENAME "shix_bios.bin"
-#define BIOS_ADDRESS 0xA0000000
-
-static void shix_init(MachineState *machine)
-{
-    int ret;
-    SuperHCPU *cpu;
-    struct SH7750State *s;
-    MemoryRegion *sysmem = get_system_memory();
-    MemoryRegion *rom = g_new(MemoryRegion, 1);
-    MemoryRegion *sdram = g_new(MemoryRegion, 2);
-    const char *bios_name = machine->firmware ?: BIOS_FILENAME;
-
-    cpu = SUPERH_CPU(cpu_create(machine->cpu_type));
-
-    /* Allocate memory space */
-    memory_region_init_rom(rom, NULL, "shix.rom", 0x4000, &error_fatal);
-    memory_region_add_subregion(sysmem, 0x00000000, rom);
-    memory_region_init_ram(&sdram[0], NULL, "shix.sdram1", 0x01000000,
-                           &error_fatal);
-    memory_region_add_subregion(sysmem, 0x08000000, &sdram[0]);
-    memory_region_init_ram(&sdram[1], NULL, "shix.sdram2", 0x01000000,
-                           &error_fatal);
-    memory_region_add_subregion(sysmem, 0x0c000000, &sdram[1]);
-
-    /* Load BIOS in 0 (and access it through P2, 0xA0000000) */
-    ret = load_image_targphys(bios_name, 0, 0x4000);
-    if (ret < 0 && !qtest_enabled()) {
-        error_report("Could not load SHIX bios '%s'", bios_name);
-        exit(1);
-    }
-
-    /* Register peripherals */
-    s = sh7750_init(cpu, sysmem);
-    /* XXXXX Check success */
-    tc58128_init(s, "shix_linux_nand.bin", NULL);
-}
-
-static void shix_machine_init(MachineClass *mc)
-{
-    mc->desc = "shix card";
-    mc->init = shix_init;
-    mc->is_default = true;
-    mc->default_cpu_type = TYPE_SH7750R_CPU;
-    mc->deprecation_reason = "old and unmaintained";
-}
-
-DEFINE_MACHINE("shix", shix_machine_init)
diff --git a/hw/sh4/Kconfig b/hw/sh4/Kconfig
index 99a76a94c3..1660d292d5 100644
--- a/hw/sh4/Kconfig
+++ b/hw/sh4/Kconfig
@@ -13,13 +13,6 @@ config R2D
     select SH7750
     select SH_PCI
 
-config SHIX
-    bool
-    default y
-    depends on SH4
-    select SH7750
-    select TC58128
-
 config SH7750
     bool
     select SH_INTC
diff --git a/hw/sh4/meson.build b/hw/sh4/meson.build
index 70e814c3a2..7d27839fee 100644
--- a/hw/sh4/meson.build
+++ b/hw/sh4/meson.build
@@ -4,6 +4,5 @@ sh4_ss.add(when: 'CONFIG_SH7750', if_true: files(
   'sh7750_regnames.c',
 ))
 sh4_ss.add(when: 'CONFIG_R2D', if_true: files('r2d.c'))
-sh4_ss.add(when: 'CONFIG_SHIX', if_true: files('shix.c'))
 
 hw_arch += {'sh4': sh4_ss}
-- 
2.45.2



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

* [PATCH 2/3] hw/block: Remove TC58128 NAND EEPROM
  2024-09-03 15:39 [PATCH 0/3] hw/sh4: Remove the deprecated SHIX machine Philippe Mathieu-Daudé
  2024-09-03 15:39 ` [PATCH 1/3] " Philippe Mathieu-Daudé
@ 2024-09-03 15:39 ` Philippe Mathieu-Daudé
  2024-09-03 15:39 ` [PATCH 3/3] hw/sh4: Remove sh7750_register_io_device() helper Philippe Mathieu-Daudé
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-09-03 15:39 UTC (permalink / raw)
  To: Samuel Tardieu, qemu-devel
  Cc: devel, Magnus Damm, qemu-block, Yoshinori Sato,
	Philippe Mathieu-Daudé

The TC58128 NAND EEPROM is not user creatable and
needs to be instanciated in the code via tc58128_init().

Only the SHIX machine was using it, and it was removed
in the previous commit. Since the TC58128 has no more
users, remove it too.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 MAINTAINERS          |   6 --
 include/hw/sh4/sh.h  |   3 -
 hw/block/tc58128.c   | 211 -------------------------------------------
 hw/block/Kconfig     |   3 -
 hw/block/meson.build |   1 -
 5 files changed, 224 deletions(-)
 delete mode 100644 hw/block/tc58128.c

diff --git a/MAINTAINERS b/MAINTAINERS
index c8e4e3329c..55f41ecbc4 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1676,12 +1676,6 @@ F: hw/timer/sh_timer.c
 F: include/hw/sh4/sh_intc.h
 F: include/hw/timer/tmu012.h
 
-TC58128 NAND EEPROM
-R: Yoshinori Sato <ysato@users.sourceforge.jp>
-R: Magnus Damm <magnus.damm@gmail.com>
-S: Odd Fixes
-F: hw/block/tc58128.c
-
 SPARC Machines
 --------------
 Sun4m
diff --git a/include/hw/sh4/sh.h b/include/hw/sh4/sh.h
index ec716cdd45..b726b987cc 100644
--- a/include/hw/sh4/sh.h
+++ b/include/hw/sh4/sh.h
@@ -60,7 +60,4 @@ int sh7750_register_io_device(struct SH7750State *s,
 /* sh7750.c */
 qemu_irq sh7750_irl(struct SH7750State *s);
 
-/* tc58128.c */
-int tc58128_init(struct SH7750State *s, const char *zone1, const char *zone2);
-
 #endif
diff --git a/hw/block/tc58128.c b/hw/block/tc58128.c
deleted file mode 100644
index 0984e37417..0000000000
--- a/hw/block/tc58128.c
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- * TC58128 NAND EEPROM emulation
- *
- * Copyright (c) 2005 Samuel Tardieu
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- * SPDX-License-Identifier: MIT
- */
-#include "qemu/osdep.h"
-#include "qemu/units.h"
-#include "hw/sh4/sh.h"
-#include "hw/loader.h"
-#include "sysemu/qtest.h"
-#include "qemu/error-report.h"
-
-#define CE1  0x0100
-#define CE2  0x0200
-#define RE   0x0400
-#define WE   0x0800
-#define ALE  0x1000
-#define CLE  0x2000
-#define RDY1 0x4000
-#define RDY2 0x8000
-#define RDY(n) ((n) == 0 ? RDY1 : RDY2)
-
-typedef enum { WAIT, READ1, READ2, READ3 } state_t;
-
-typedef struct {
-    uint8_t *flash_contents;
-    state_t state;
-    uint32_t address;
-    uint8_t address_cycle;
-} tc58128_dev;
-
-static tc58128_dev tc58128_devs[2];
-
-#define FLASH_SIZE (16 * MiB)
-
-static void init_dev(tc58128_dev * dev, const char *filename)
-{
-    int ret, blocks;
-
-    dev->state = WAIT;
-    dev->flash_contents = g_malloc(FLASH_SIZE);
-    memset(dev->flash_contents, 0xff, FLASH_SIZE);
-    if (filename) {
-        /* Load flash image skipping the first block */
-        ret = load_image_size(filename, dev->flash_contents + 528 * 32,
-                              FLASH_SIZE - 528 * 32);
-        if (ret < 0) {
-            if (!qtest_enabled()) {
-                error_report("Could not load flash image %s", filename);
-                exit(1);
-            }
-        } else {
-            /* Build first block with number of blocks */
-            blocks = DIV_ROUND_UP(ret, 528 * 32);
-            dev->flash_contents[0] = blocks & 0xff;
-            dev->flash_contents[1] = (blocks >> 8) & 0xff;
-            dev->flash_contents[2] = (blocks >> 16) & 0xff;
-            dev->flash_contents[3] = (blocks >> 24) & 0xff;
-            fprintf(stderr, "loaded %d bytes for %s into flash\n", ret,
-                    filename);
-        }
-    }
-}
-
-static void handle_command(tc58128_dev * dev, uint8_t command)
-{
-    switch (command) {
-    case 0xff:
-        fprintf(stderr, "reset flash device\n");
-        dev->state = WAIT;
-        break;
-    case 0x00:
-        fprintf(stderr, "read mode 1\n");
-        dev->state = READ1;
-        dev->address_cycle = 0;
-        break;
-    case 0x01:
-        fprintf(stderr, "read mode 2\n");
-        dev->state = READ2;
-        dev->address_cycle = 0;
-        break;
-    case 0x50:
-        fprintf(stderr, "read mode 3\n");
-        dev->state = READ3;
-        dev->address_cycle = 0;
-        break;
-    default:
-        fprintf(stderr, "unknown flash command 0x%02x\n", command);
-        abort();
-    }
-}
-
-static void handle_address(tc58128_dev * dev, uint8_t data)
-{
-    switch (dev->state) {
-    case READ1:
-    case READ2:
-    case READ3:
-        switch (dev->address_cycle) {
-        case 0:
-            dev->address = data;
-            if (dev->state == READ2)
-                dev->address |= 0x100;
-            else if (dev->state == READ3)
-                dev->address |= 0x200;
-            break;
-        case 1:
-            dev->address += data * 528 * 0x100;
-            break;
-        case 2:
-            dev->address += data * 528;
-            fprintf(stderr, "address pointer in flash: 0x%08x\n",
-                    dev->address);
-            break;
-        default:
-            /* Invalid data */
-            abort();
-        }
-        dev->address_cycle++;
-        break;
-    default:
-        abort();
-    }
-}
-
-static uint8_t handle_read(tc58128_dev * dev)
-{
-#if 0
-    if (dev->address % 0x100000 == 0)
-        fprintf(stderr, "reading flash at address 0x%08x\n", dev->address);
-#endif
-    return dev->flash_contents[dev->address++];
-}
-
-/* We never mark the device as busy, so interrupts cannot be triggered
-   XXXXX */
-
-static int tc58128_cb(uint16_t porta, uint16_t portb,
-                      uint16_t * periph_pdtra, uint16_t * periph_portadir,
-                      uint16_t * periph_pdtrb, uint16_t * periph_portbdir)
-{
-    int dev;
-
-    if ((porta & CE1) == 0)
-        dev = 0;
-    else if ((porta & CE2) == 0)
-        dev = 1;
-    else
-        return 0;        /* No device selected */
-
-    if ((porta & RE) && (porta & WE)) {
-        /* Nothing to do, assert ready and return to input state */
-        *periph_portadir &= 0xff00;
-        *periph_portadir |= RDY(dev);
-        *periph_pdtra |= RDY(dev);
-        return 1;
-    }
-
-    if (porta & CLE) {
-        /* Command */
-        assert((porta & WE) == 0);
-        handle_command(&tc58128_devs[dev], porta & 0x00ff);
-    } else if (porta & ALE) {
-        assert((porta & WE) == 0);
-        handle_address(&tc58128_devs[dev], porta & 0x00ff);
-    } else if ((porta & RE) == 0) {
-        *periph_portadir |= 0x00ff;
-        *periph_pdtra &= 0xff00;
-        *periph_pdtra |= handle_read(&tc58128_devs[dev]);
-    } else {
-        abort();
-    }
-    return 1;
-}
-
-static sh7750_io_device tc58128 = {
-    RE | WE,            /* Port A triggers */
-    0,                  /* Port B triggers */
-    tc58128_cb          /* Callback */
-};
-
-int tc58128_init(struct SH7750State *s, const char *zone1, const char *zone2)
-{
-    if (!qtest_enabled()) {
-        warn_report_once("The TC58128 flash device is deprecated");
-    }
-    init_dev(&tc58128_devs[0], zone1);
-    init_dev(&tc58128_devs[1], zone2);
-    return sh7750_register_io_device(s, &tc58128);
-}
diff --git a/hw/block/Kconfig b/hw/block/Kconfig
index 9e8f28f982..ef6709b106 100644
--- a/hw/block/Kconfig
+++ b/hw/block/Kconfig
@@ -28,9 +28,6 @@ config ECC
 config ONENAND
     bool
 
-config TC58128
-    bool
-
 config VIRTIO_BLK
     bool
     default y
diff --git a/hw/block/meson.build b/hw/block/meson.build
index 8aa4dc3893..0fb0f41f42 100644
--- a/hw/block/meson.build
+++ b/hw/block/meson.build
@@ -15,7 +15,6 @@ system_ss.add(when: 'CONFIG_SSI_M25P80', if_true: files('m25p80.c'))
 system_ss.add(when: 'CONFIG_SSI_M25P80', if_true: files('m25p80_sfdp.c'))
 system_ss.add(when: 'CONFIG_SWIM', if_true: files('swim.c'))
 system_ss.add(when: 'CONFIG_XEN_BUS', if_true: files('xen-block.c'))
-system_ss.add(when: 'CONFIG_TC58128', if_true: files('tc58128.c'))
 
 specific_ss.add(when: 'CONFIG_VIRTIO_BLK', if_true: files('virtio-blk.c', 'virtio-blk-common.c'))
 specific_ss.add(when: 'CONFIG_VHOST_USER_BLK', if_true: files('vhost-user-blk.c', 'virtio-blk-common.c'))
-- 
2.45.2



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

* [PATCH 3/3] hw/sh4: Remove sh7750_register_io_device() helper
  2024-09-03 15:39 [PATCH 0/3] hw/sh4: Remove the deprecated SHIX machine Philippe Mathieu-Daudé
  2024-09-03 15:39 ` [PATCH 1/3] " Philippe Mathieu-Daudé
  2024-09-03 15:39 ` [PATCH 2/3] hw/block: Remove TC58128 NAND EEPROM Philippe Mathieu-Daudé
@ 2024-09-03 15:39 ` Philippe Mathieu-Daudé
  2024-09-03 16:29 ` [PATCH 0/3] hw/sh4: Remove the deprecated SHIX machine Peter Maydell
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-09-03 15:39 UTC (permalink / raw)
  To: Samuel Tardieu, qemu-devel
  Cc: devel, Magnus Damm, qemu-block, Yoshinori Sato,
	Philippe Mathieu-Daudé

sh7750_register_io_device() was only used by the TC58128
NAND EEPROM which has been removed in the previous commit.
Remove it as unused code.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 include/hw/sh4/sh.h | 16 -------------
 hw/sh4/sh7750.c     | 57 ++-------------------------------------------
 2 files changed, 2 insertions(+), 71 deletions(-)

diff --git a/include/hw/sh4/sh.h b/include/hw/sh4/sh.h
index b726b987cc..c82feef8d0 100644
--- a/include/hw/sh4/sh.h
+++ b/include/hw/sh4/sh.h
@@ -38,22 +38,6 @@ struct SH7750State;
 
 struct SH7750State *sh7750_init(SuperHCPU *cpu, MemoryRegion *sysmem);
 
-typedef struct {
-    /* The callback will be triggered if any of the designated lines change */
-    uint16_t portamask_trigger;
-    uint16_t portbmask_trigger;
-    /* Return 0 if no action was taken */
-    int (*port_change_cb) (uint16_t porta, uint16_t portb,
-                           uint16_t *periph_pdtra,
-                           uint16_t *periph_portdira,
-                           uint16_t *periph_pdtrb,
-                           uint16_t *periph_portdirb);
-} sh7750_io_device;
-
-int sh7750_register_io_device(struct SH7750State *s,
-                              sh7750_io_device *device);
-
-/* sh_serial.c */
 #define TYPE_SH_SERIAL "sh-serial"
 #define SH_SERIAL_FEAT_SCIF (1 << 0)
 
diff --git a/hw/sh4/sh7750.c b/hw/sh4/sh7750.c
index ebe0fd96d9..8041b3b651 100644
--- a/hw/sh4/sh7750.c
+++ b/hw/sh4/sh7750.c
@@ -38,8 +38,6 @@
 #include "exec/exec-all.h"
 #include "trace.h"
 
-#define NB_DEVICES 4
-
 typedef struct SH7750State {
     MemoryRegion iomem;
     MemoryRegion iomem_1f0;
@@ -75,7 +73,6 @@ typedef struct SH7750State {
     uint16_t periph_portdira; /* Direction seen from the peripherals */
     uint16_t periph_pdtrb;    /* Imposed by the peripherals */
     uint16_t periph_portdirb; /* Direction seen from the peripherals */
-    sh7750_io_device *devices[NB_DEVICES]; /* External peripherals */
 
     /* Cache */
     uint32_t ccr;
@@ -92,19 +89,6 @@ static inline int has_bcr3_and_bcr4(SH7750State *s)
  * I/O ports
  */
 
-int sh7750_register_io_device(SH7750State *s, sh7750_io_device *device)
-{
-    int i;
-
-    for (i = 0; i < NB_DEVICES; i++) {
-        if (s->devices[i] == NULL) {
-            s->devices[i] = device;
-            return 0;
-        }
-    }
-    return -1;
-}
-
 static uint16_t portdir(uint32_t v)
 {
 #define EVENPORTMASK(n) ((v & (1 << ((n) << 1))) >> (n))
@@ -142,63 +126,26 @@ static uint16_t portb_lines(SH7750State *s)
         (~(s->portdirb | s->periph_portdirb) & s->portpullupb); /* Pullups */
 }
 
-static void gen_port_interrupts(SH7750State *s)
-{
-    /* XXXXX interrupts not generated */
-}
-
 static void porta_changed(SH7750State *s, uint16_t prev)
 {
-    uint16_t currenta, changes;
-    int i, r = 0;
+    uint16_t currenta;
 
     currenta = porta_lines(s);
     if (currenta == prev) {
         return;
     }
     trace_sh7750_porta(prev, currenta, s->pdtra, s->pctra);
-    changes = currenta ^ prev;
-
-    for (i = 0; i < NB_DEVICES; i++) {
-        if (s->devices[i] && (s->devices[i]->portamask_trigger & changes)) {
-            r |= s->devices[i]->port_change_cb(currenta, portb_lines(s),
-                                               &s->periph_pdtra,
-                                               &s->periph_portdira,
-                                               &s->periph_pdtrb,
-                                               &s->periph_portdirb);
-        }
-    }
-
-    if (r) {
-        gen_port_interrupts(s);
-    }
 }
 
 static void portb_changed(SH7750State *s, uint16_t prev)
 {
-    uint16_t currentb, changes;
-    int i, r = 0;
+    uint16_t currentb;
 
     currentb = portb_lines(s);
     if (currentb == prev) {
         return;
     }
     trace_sh7750_portb(prev, currentb, s->pdtrb, s->pctrb);
-    changes = currentb ^ prev;
-
-    for (i = 0; i < NB_DEVICES; i++) {
-        if (s->devices[i] && (s->devices[i]->portbmask_trigger & changes)) {
-            r |= s->devices[i]->port_change_cb(portb_lines(s), currentb,
-                                               &s->periph_pdtra,
-                                               &s->periph_portdira,
-                                               &s->periph_pdtrb,
-                                               &s->periph_portdirb);
-        }
-    }
-
-    if (r) {
-        gen_port_interrupts(s);
-    }
 }
 
 /*
-- 
2.45.2



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

* Re: [PATCH 0/3] hw/sh4: Remove the deprecated SHIX machine
  2024-09-03 15:39 [PATCH 0/3] hw/sh4: Remove the deprecated SHIX machine Philippe Mathieu-Daudé
                   ` (2 preceding siblings ...)
  2024-09-03 15:39 ` [PATCH 3/3] hw/sh4: Remove sh7750_register_io_device() helper Philippe Mathieu-Daudé
@ 2024-09-03 16:29 ` Peter Maydell
  2024-09-06  9:31 ` Yoshinori Sato
  2024-09-06 11:40 ` Philippe Mathieu-Daudé
  5 siblings, 0 replies; 7+ messages in thread
From: Peter Maydell @ 2024-09-03 16:29 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé
  Cc: Samuel Tardieu, qemu-devel, devel, Magnus Damm, qemu-block,
	Yoshinori Sato

On Tue, 3 Sept 2024 at 16:40, Philippe Mathieu-Daudé <philmd@linaro.org> wrote:
>
> Remove the deprecated SH4 SHIX machine, along
> with the TC58128 NAND EEPROM.
>
> Philippe Mathieu-Daudé (3):
>   hw/sh4: Remove the deprecated SHIX machine
>   hw/block: Remove TC58128 NAND EEPROM
>   hw/sh4: Remove sh7750_register_io_device() helper

Whole series:
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>

thanks
-- PMM


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

* Re: [PATCH 0/3] hw/sh4: Remove the deprecated SHIX machine
  2024-09-03 15:39 [PATCH 0/3] hw/sh4: Remove the deprecated SHIX machine Philippe Mathieu-Daudé
                   ` (3 preceding siblings ...)
  2024-09-03 16:29 ` [PATCH 0/3] hw/sh4: Remove the deprecated SHIX machine Peter Maydell
@ 2024-09-06  9:31 ` Yoshinori Sato
  2024-09-06 11:40 ` Philippe Mathieu-Daudé
  5 siblings, 0 replies; 7+ messages in thread
From: Yoshinori Sato @ 2024-09-06  9:31 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé
  Cc: Samuel Tardieu, qemu-devel, devel, Magnus Damm, qemu-block

On Wed, 04 Sep 2024 00:39:56 +0900,
Philippe Mathieu-Daudé wrote:
> 
> Remove the deprecated SH4 SHIX machine, along
> with the TC58128 NAND EEPROM.
> 
> Philippe Mathieu-Daudé (3):
>   hw/sh4: Remove the deprecated SHIX machine
>   hw/block: Remove TC58128 NAND EEPROM
>   hw/sh4: Remove sh7750_register_io_device() helper
> 
>  MAINTAINERS                             |  11 --
>  docs/about/deprecated.rst               |   6 -
>  docs/about/removed-features.rst         |   5 +
>  configs/devices/sh4-softmmu/default.mak |   1 -
>  include/hw/sh4/sh.h                     |  19 ---
>  hw/block/tc58128.c                      | 211 ------------------------
>  hw/sh4/sh7750.c                         |  57 +------
>  hw/sh4/shix.c                           |  86 ----------
>  hw/block/Kconfig                        |   3 -
>  hw/block/meson.build                    |   1 -
>  hw/sh4/Kconfig                          |   7 -
>  hw/sh4/meson.build                      |   1 -
>  12 files changed, 7 insertions(+), 401 deletions(-)
>  delete mode 100644 hw/block/tc58128.c
>  delete mode 100644 hw/sh4/shix.c
> 
> -- 
> 2.45.2
> 

for hw/sh4
Reviewed-by: Yoshinori Sato <ysato@users.sourceforge.jp>

-- 
Yosinori Sato


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

* Re: [PATCH 0/3] hw/sh4: Remove the deprecated SHIX machine
  2024-09-03 15:39 [PATCH 0/3] hw/sh4: Remove the deprecated SHIX machine Philippe Mathieu-Daudé
                   ` (4 preceding siblings ...)
  2024-09-06  9:31 ` Yoshinori Sato
@ 2024-09-06 11:40 ` Philippe Mathieu-Daudé
  5 siblings, 0 replies; 7+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-09-06 11:40 UTC (permalink / raw)
  To: Samuel Tardieu, qemu-devel; +Cc: devel, Magnus Damm, qemu-block, Yoshinori Sato

On 3/9/24 17:39, Philippe Mathieu-Daudé wrote:
> Remove the deprecated SH4 SHIX machine, along
> with the TC58128 NAND EEPROM.
> 
> Philippe Mathieu-Daudé (3):
>    hw/sh4: Remove the deprecated SHIX machine
>    hw/block: Remove TC58128 NAND EEPROM
>    hw/sh4: Remove sh7750_register_io_device() helper

Series queued, thanks.


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

end of thread, other threads:[~2024-09-06 11:42 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-03 15:39 [PATCH 0/3] hw/sh4: Remove the deprecated SHIX machine Philippe Mathieu-Daudé
2024-09-03 15:39 ` [PATCH 1/3] " Philippe Mathieu-Daudé
2024-09-03 15:39 ` [PATCH 2/3] hw/block: Remove TC58128 NAND EEPROM Philippe Mathieu-Daudé
2024-09-03 15:39 ` [PATCH 3/3] hw/sh4: Remove sh7750_register_io_device() helper Philippe Mathieu-Daudé
2024-09-03 16:29 ` [PATCH 0/3] hw/sh4: Remove the deprecated SHIX machine Peter Maydell
2024-09-06  9:31 ` Yoshinori Sato
2024-09-06 11:40 ` Philippe Mathieu-Daudé

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).