* [PATCH 2/8] hw/gpio/avr_gpio: Add migration VMstate
[not found] <20220912112106.49110-1-heecheol.yang@outlook.com>
@ 2022-09-12 11:21 ` Heecheol Yang
2022-09-12 11:21 ` [PATCH 3/8] hw/gpio/avr_gpio: Add 'id' field in AVRGPIOState Heecheol Yang
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Heecheol Yang @ 2022-09-12 11:21 UTC (permalink / raw)
To: qemu-devel; +Cc: Philippe Mathieu-Daudé, Michael Rolnik, Heecheol Yang
From: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20210313165445.2113938-5-f4bug@amsat.org>
Reviewed-by: Michael Rolnik <mrolnik@gmail.com>
Signed-off-by: Heecheol Yang <heecheol.yang@outlook.com>
---
hw/gpio/avr_gpio.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/hw/gpio/avr_gpio.c b/hw/gpio/avr_gpio.c
index cdb574ef0d..da34009dae 100644
--- a/hw/gpio/avr_gpio.c
+++ b/hw/gpio/avr_gpio.c
@@ -25,6 +25,7 @@
#include "hw/irq.h"
#include "hw/gpio/avr_gpio.h"
#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
static void avr_gpio_reset(DeviceState *dev)
{
@@ -100,6 +101,18 @@ static const MemoryRegionOps avr_gpio_ops = {
.endianness = DEVICE_NATIVE_ENDIAN,
};
+static const VMStateDescription avr_gpio_vmstate = {
+ .name = "avr-gpio",
+ .version_id = 0,
+ .minimum_version_id = 0,
+ .fields = (VMStateField[]) {
+ VMSTATE_UINT8(reg.pin, AVRGPIOState),
+ VMSTATE_UINT8(reg.ddr, AVRGPIOState),
+ VMSTATE_UINT8(reg.port, AVRGPIOState),
+ VMSTATE_END_OF_LIST(),
+ },
+};
+
static void avr_gpio_init(Object *obj)
{
AVRGPIOState *s = AVR_GPIO(obj);
@@ -120,6 +133,7 @@ static void avr_gpio_class_init(ObjectClass *klass, void *data)
dc->reset = avr_gpio_reset;
dc->realize = avr_gpio_realize;
+ dc->vmsd = &avr_gpio_vmstate;
}
static const TypeInfo avr_gpio_info = {
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 3/8] hw/gpio/avr_gpio: Add 'id' field in AVRGPIOState
[not found] <20220912112106.49110-1-heecheol.yang@outlook.com>
2022-09-12 11:21 ` [PATCH 2/8] hw/gpio/avr_gpio: Add migration VMstate Heecheol Yang
@ 2022-09-12 11:21 ` Heecheol Yang
2022-09-12 11:21 ` [PATCH 4/8] hw/gpio/avr_gpio: Simplify avr_gpio_write_port using extract32() Heecheol Yang
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Heecheol Yang @ 2022-09-12 11:21 UTC (permalink / raw)
To: qemu-devel; +Cc: Philippe Mathieu-Daudé, Michael Rolnik, Heecheol Yang
From: Philippe Mathieu-Daudé <f4bug@amsat.org>
AVR MCU have various GPIO ports. Add an 'id' property to distinct
all instances.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20210313165445.2113938-6-f4bug@amsat.org>
Reviewed-by: Michael Rolnik <mrolnik@gmail.com>
Signed-off-by: Heecheol Yang <heecheol.yang@outlook.com>
---
hw/avr/atmega.c | 1 +
hw/gpio/avr_gpio.c | 14 ++++++++++++--
include/hw/gpio/avr_gpio.h | 1 +
3 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/hw/avr/atmega.c b/hw/avr/atmega.c
index f5fb3a5225..d3a966ae94 100644
--- a/hw/avr/atmega.c
+++ b/hw/avr/atmega.c
@@ -284,6 +284,7 @@ static void atmega_realize(DeviceState *dev, Error **errp)
devname = g_strdup_printf("atmega-gpio-%c", 'a' + (char)i);
object_initialize_child(OBJECT(dev), devname, &s->gpio[i],
TYPE_AVR_GPIO);
+ qdev_prop_set_uint8(DEVICE(&s->gpio[i]), "id", i);
sysbus_realize(SYS_BUS_DEVICE(&s->gpio[i]), &error_abort);
sysbus_mmio_map(SYS_BUS_DEVICE(&s->gpio[i]), 0,
OFFSET_DATA + mc->dev[idx].addr);
diff --git a/hw/gpio/avr_gpio.c b/hw/gpio/avr_gpio.c
index da34009dae..3db55bfa77 100644
--- a/hw/gpio/avr_gpio.c
+++ b/hw/gpio/avr_gpio.c
@@ -113,6 +113,11 @@ static const VMStateDescription avr_gpio_vmstate = {
},
};
+static Property avr_gpio_properties[] = {
+ DEFINE_PROP_UINT8("id", AVRGPIOState, id, UINT8_MAX),
+ DEFINE_PROP_END_OF_LIST(),
+};
+
static void avr_gpio_init(Object *obj)
{
AVRGPIOState *s = AVR_GPIO(obj);
@@ -123,9 +128,13 @@ static void avr_gpio_init(Object *obj)
}
static void avr_gpio_realize(DeviceState *dev, Error **errp)
{
- /* Do nothing currently */
-}
+ AVRGPIOState *s = AVR_GPIO(dev);
+ if (s->id == UINT8_MAX) {
+ error_setg(errp, "property 'id' not set");
+ return;
+ }
+}
static void avr_gpio_class_init(ObjectClass *klass, void *data)
{
@@ -134,6 +143,7 @@ static void avr_gpio_class_init(ObjectClass *klass, void *data)
dc->reset = avr_gpio_reset;
dc->realize = avr_gpio_realize;
dc->vmsd = &avr_gpio_vmstate;
+ device_class_set_props(dc, avr_gpio_properties);
}
static const TypeInfo avr_gpio_info = {
diff --git a/include/hw/gpio/avr_gpio.h b/include/hw/gpio/avr_gpio.h
index 498a7275f0..e982f627ea 100644
--- a/include/hw/gpio/avr_gpio.h
+++ b/include/hw/gpio/avr_gpio.h
@@ -48,6 +48,7 @@ struct AVRGPIOState {
/* PORTx data changed IRQs */
qemu_irq out[8u];
+ uint8_t id;
};
#endif /* AVR_GPIO_H */
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 4/8] hw/gpio/avr_gpio: Simplify avr_gpio_write_port using extract32()
[not found] <20220912112106.49110-1-heecheol.yang@outlook.com>
2022-09-12 11:21 ` [PATCH 2/8] hw/gpio/avr_gpio: Add migration VMstate Heecheol Yang
2022-09-12 11:21 ` [PATCH 3/8] hw/gpio/avr_gpio: Add 'id' field in AVRGPIOState Heecheol Yang
@ 2022-09-12 11:21 ` Heecheol Yang
2022-09-12 11:21 ` [PATCH 5/8] hw/gpio/avr_gpio: Add tracing for reads and writes Heecheol Yang
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Heecheol Yang @ 2022-09-12 11:21 UTC (permalink / raw)
To: qemu-devel; +Cc: Philippe Mathieu-Daudé, Michael Rolnik, Heecheol Yang
From: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20210313165445.2113938-7-f4bug@amsat.org>
Reviewed-by: Michael Rolnik <mrolnik@gmail.com>
Signed-off-by: Heecheol Yang <heecheol.yang@outlook.com>
---
hw/gpio/avr_gpio.c | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)
diff --git a/hw/gpio/avr_gpio.c b/hw/gpio/avr_gpio.c
index 3db55bfa77..e4c7122e62 100644
--- a/hw/gpio/avr_gpio.c
+++ b/hw/gpio/avr_gpio.c
@@ -39,20 +39,15 @@ static void avr_gpio_reset(DeviceState *dev)
static void avr_gpio_write_port(AVRGPIOState *s, uint64_t value)
{
uint8_t pin;
- uint8_t cur_port_val = s->reg.port;
- uint8_t cur_ddr_val = s->reg.ddr;
for (pin = 0u; pin < AVR_GPIO_COUNT ; pin++) {
- uint8_t cur_port_pin_val = cur_port_val & 0x01u;
- uint8_t cur_ddr_pin_val = cur_ddr_val & 0x01u;
- uint8_t new_port_pin_val = value & 0x01u;
+ uint8_t cur_port_pin_val = extract32(s->reg.port, pin, 1);
+ uint8_t cur_ddr_pin_val = extract32(s->reg.ddr, pin, 1);
+ uint8_t new_port_pin_val = extract32(value, pin, 1);
if (cur_ddr_pin_val && (cur_port_pin_val != new_port_pin_val)) {
qemu_set_irq(s->out[pin], new_port_pin_val);
}
- cur_port_val >>= 1u;
- cur_ddr_val >>= 1u;
- value >>= 1u;
}
s->reg.port = value & s->reg.ddr;
}
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 5/8] hw/gpio/avr_gpio: Add tracing for reads and writes
[not found] <20220912112106.49110-1-heecheol.yang@outlook.com>
` (2 preceding siblings ...)
2022-09-12 11:21 ` [PATCH 4/8] hw/gpio/avr_gpio: Simplify avr_gpio_write_port using extract32() Heecheol Yang
@ 2022-09-12 11:21 ` Heecheol Yang
2022-09-12 11:21 ` [PATCH 6/8] hw/avr/arduino: Add D13 LED Heecheol Yang
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Heecheol Yang @ 2022-09-12 11:21 UTC (permalink / raw)
To: qemu-devel
Cc: G S Niteesh Babu, Michael Rolnik, Philippe Mathieu-Daudé,
Heecheol Yang
From: G S Niteesh Babu <niteesh.gs@gmail.com>
Added tracing for gpio read, write, and update output irq.
1) trace_avr_gpio_update_ouput_irq
2) trace_avr_gpio_read
3) trace_avr_gpio_write
Signed-off-by: G S Niteesh Babu <niteesh.gs@gmail.com>
Reviewed-by: Michael Rolnik <mrolnik@gmail.com>
Message-Id: <20210311135539.10206-3-niteesh.gs@gmail.com>
[PMD: Added port_name(), display port name in trace events]
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20210313165445.2113938-8-f4bug@amsat.org>
Signed-off-by: Heecheol Yang <heecheol.yang@outlook.com>
---
hw/gpio/avr_gpio.c | 26 +++++++++++++++++++++-----
hw/gpio/trace-events | 5 +++++
2 files changed, 26 insertions(+), 5 deletions(-)
diff --git a/hw/gpio/avr_gpio.c b/hw/gpio/avr_gpio.c
index e4c7122e62..29252d6ccf 100644
--- a/hw/gpio/avr_gpio.c
+++ b/hw/gpio/avr_gpio.c
@@ -2,6 +2,7 @@
* AVR processors GPIO registers emulation.
*
* Copyright (C) 2020 Heecheol Yang <heecheol.yang@outlook.com>
+ * Copyright (C) 2021 Niteesh Babu G S <niteesh.gs@gmail.com>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@@ -26,6 +27,12 @@
#include "hw/gpio/avr_gpio.h"
#include "hw/qdev-properties.h"
#include "migration/vmstate.h"
+#include "trace.h"
+
+static char port_name(AVRGPIOState *s)
+{
+ return 'A' + s->id;
+}
static void avr_gpio_reset(DeviceState *dev)
{
@@ -47,32 +54,41 @@ static void avr_gpio_write_port(AVRGPIOState *s, uint64_t value)
if (cur_ddr_pin_val && (cur_port_pin_val != new_port_pin_val)) {
qemu_set_irq(s->out[pin], new_port_pin_val);
+ trace_avr_gpio_update_output_irq(port_name(s), pin, new_port_pin_val);
}
}
s->reg.port = value & s->reg.ddr;
}
static uint64_t avr_gpio_read(void *opaque, hwaddr offset, unsigned int size)
{
+ uint8_t val = 0;
AVRGPIOState *s = (AVRGPIOState *)opaque;
switch (offset) {
case GPIO_PIN:
- return s->reg.pin;
+ val = s->reg.pin;
+ break;
case GPIO_DDR:
- return s->reg.ddr;
+ val = s->reg.ddr;
+ break;
case GPIO_PORT:
- return s->reg.port;
+ val = s->reg.port;
+ break;
default:
g_assert_not_reached();
break;
}
- return 0;
+
+ trace_avr_gpio_read(port_name(s), offset, val);
+ return val;
}
static void avr_gpio_write(void *opaque, hwaddr offset, uint64_t value,
unsigned int size)
{
AVRGPIOState *s = (AVRGPIOState *)opaque;
- value = value & 0xF;
+ value = value & 0xFF;
+
+ trace_avr_gpio_write(port_name(s), offset, value);
switch (offset) {
case GPIO_PIN:
s->reg.pin = value;
diff --git a/hw/gpio/trace-events b/hw/gpio/trace-events
index 9736b362ac..5f89c30910 100644
--- a/hw/gpio/trace-events
+++ b/hw/gpio/trace-events
@@ -31,3 +31,8 @@ sifive_gpio_update_output_irq(int64_t line, int64_t value) "line %" PRIi64 " val
# aspeed_gpio.c
aspeed_gpio_read(uint64_t offset, uint64_t value) "offset: 0x%" PRIx64 " value 0x%" PRIx64
aspeed_gpio_write(uint64_t offset, uint64_t value) "offset: 0x%" PRIx64 " value 0x%" PRIx64
+
+# avr_gpio.c
+avr_gpio_read(unsigned id, uint64_t offset, uint64_t r) "port %c offset 0x%" PRIx64 " value 0x%" PRIx64
+avr_gpio_write(unsigned id, uint64_t offset, uint64_t value) "port %c offset 0x%" PRIx64 " value 0x%" PRIx64
+avr_gpio_update_output_irq(unsigned id, int64_t line, int64_t value) "port %c pin %" PRIi64 " value %" PRIi64
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 6/8] hw/avr/arduino: Add D13 LED
[not found] <20220912112106.49110-1-heecheol.yang@outlook.com>
` (3 preceding siblings ...)
2022-09-12 11:21 ` [PATCH 5/8] hw/gpio/avr_gpio: Add tracing for reads and writes Heecheol Yang
@ 2022-09-12 11:21 ` Heecheol Yang
2022-09-12 11:21 ` [PATCH 7/8] hw/avr/arduino: Replace magic number by gpio_port_index() call Heecheol Yang
2022-09-12 11:21 ` [PATCH 8/8] Fix license statements Heecheol Yang
6 siblings, 0 replies; 8+ messages in thread
From: Heecheol Yang @ 2022-09-12 11:21 UTC (permalink / raw)
To: qemu-devel
Cc: G S Niteesh Babu, Michael Rolnik, Philippe Mathieu-Daudé,
Heecheol Yang
From: G S Niteesh Babu <niteesh.gs@gmail.com>
Signed-off-by: G S Niteesh Babu <niteesh.gs@gmail.com>
Reviewed-by: Michael Rolnik <mrolnik@gmail.com>
Message-Id: <20210311135539.10206-4-niteesh.gs@gmail.com>
[PMD: Added ArduinoMachineClass::d13_led_portb_bit]
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20210313165445.2113938-9-f4bug@amsat.org>
Signed-off-by: Heecheol Yang <heecheol.yang@outlook.com>
---
hw/avr/Kconfig | 1 +
hw/avr/arduino.c | 19 +++++++++++++++++++
2 files changed, 20 insertions(+)
diff --git a/hw/avr/Kconfig b/hw/avr/Kconfig
index 16a57ced11..e0d4fc5537 100644
--- a/hw/avr/Kconfig
+++ b/hw/avr/Kconfig
@@ -8,3 +8,4 @@ config AVR_ATMEGA_MCU
config ARDUINO
select AVR_ATMEGA_MCU
select UNIMP
+ select LED
diff --git a/hw/avr/arduino.c b/hw/avr/arduino.c
index 48ef478346..73563a35d0 100644
--- a/hw/avr/arduino.c
+++ b/hw/avr/arduino.c
@@ -12,6 +12,8 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
+#include "hw/boards.h"
+#include "hw/misc/led.h"
#include "atmega.h"
#include "boot.h"
#include "qom/object.h"
@@ -21,6 +23,8 @@ struct ArduinoMachineState {
MachineState parent_obj;
/*< public >*/
AtmegaMcuState mcu;
+
+ LEDState *onboard_led;
};
typedef struct ArduinoMachineState ArduinoMachineState;
@@ -30,6 +34,7 @@ struct ArduinoMachineClass {
/*< public >*/
const char *mcu_type;
uint64_t xtal_hz;
+ unsigned d13_led_portb_bit; /* PORTB GPIO for D13 yellow LED */
};
typedef struct ArduinoMachineClass ArduinoMachineClass;
@@ -48,6 +53,16 @@ static void arduino_machine_init(MachineState *machine)
amc->xtal_hz, &error_abort);
sysbus_realize(SYS_BUS_DEVICE(&ams->mcu), &error_abort);
+ /* Onboard led connected to digital header PIN 13 */
+ ams->onboard_led = led_create_simple(OBJECT(ams),
+ GPIO_POLARITY_ACTIVE_HIGH,
+ LED_COLOR_YELLOW,
+ "D13 LED");
+
+ qdev_connect_gpio_out(DEVICE(&ams->mcu.gpio[1]),
+ amc->d13_led_portb_bit,
+ qdev_get_gpio_in(DEVICE(ams->onboard_led), 0));
+
if (machine->firmware) {
if (!avr_load_firmware(&ams->mcu.cpu, machine,
&ams->mcu.flash, machine->firmware)) {
@@ -82,6 +97,7 @@ static void arduino_duemilanove_class_init(ObjectClass *oc, void *data)
mc->alias = "2009";
amc->mcu_type = TYPE_ATMEGA168_MCU;
amc->xtal_hz = 16 * 1000 * 1000;
+ amc->d13_led_portb_bit = 5;
};
static void arduino_uno_class_init(ObjectClass *oc, void *data)
@@ -97,6 +113,7 @@ static void arduino_uno_class_init(ObjectClass *oc, void *data)
mc->alias = "uno";
amc->mcu_type = TYPE_ATMEGA328_MCU;
amc->xtal_hz = 16 * 1000 * 1000;
+ amc->d13_led_portb_bit = 5;
};
static void arduino_mega_class_init(ObjectClass *oc, void *data)
@@ -112,6 +129,7 @@ static void arduino_mega_class_init(ObjectClass *oc, void *data)
mc->alias = "mega";
amc->mcu_type = TYPE_ATMEGA1280_MCU;
amc->xtal_hz = 16 * 1000 * 1000;
+ amc->d13_led_portb_bit = 7;
};
static void arduino_mega2560_class_init(ObjectClass *oc, void *data)
@@ -127,6 +145,7 @@ static void arduino_mega2560_class_init(ObjectClass *oc, void *data)
mc->alias = "mega2560";
amc->mcu_type = TYPE_ATMEGA2560_MCU;
amc->xtal_hz = 16 * 1000 * 1000; /* CSTCE16M0V53-R0 */
+ amc->d13_led_portb_bit = 7;
};
static const TypeInfo arduino_machine_types[] = {
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 7/8] hw/avr/arduino: Replace magic number by gpio_port_index() call
[not found] <20220912112106.49110-1-heecheol.yang@outlook.com>
` (4 preceding siblings ...)
2022-09-12 11:21 ` [PATCH 6/8] hw/avr/arduino: Add D13 LED Heecheol Yang
@ 2022-09-12 11:21 ` Heecheol Yang
2022-09-12 11:21 ` [PATCH 8/8] Fix license statements Heecheol Yang
6 siblings, 0 replies; 8+ messages in thread
From: Heecheol Yang @ 2022-09-12 11:21 UTC (permalink / raw)
To: qemu-devel; +Cc: Philippe Mathieu-Daudé, Michael Rolnik, Heecheol Yang
From: Philippe Mathieu-Daudé <f4bug@amsat.org>
The '1' magic value means 'Port B'. Introduce and use the
gpio_port_index() helper to explicit the port name.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20210313165445.2113938-10-f4bug@amsat.org>
Reviewed-by: Michael Rolnik <mrolnik@gmail.com>
Signed-off-by: Heecheol Yang <heecheol.yang@outlook.com>
---
hw/avr/arduino.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/hw/avr/arduino.c b/hw/avr/arduino.c
index 73563a35d0..87124d17f1 100644
--- a/hw/avr/arduino.c
+++ b/hw/avr/arduino.c
@@ -43,6 +43,12 @@ typedef struct ArduinoMachineClass ArduinoMachineClass;
DECLARE_OBJ_CHECKERS(ArduinoMachineState, ArduinoMachineClass,
ARDUINO_MACHINE, TYPE_ARDUINO_MACHINE)
+static unsigned gpio_port_index(char c)
+{
+ assert(c >= 'A' && c < 'A' + GPIO_MAX);
+ return c - 'A';
+}
+
static void arduino_machine_init(MachineState *machine)
{
ArduinoMachineClass *amc = ARDUINO_MACHINE_GET_CLASS(machine);
@@ -59,7 +65,7 @@ static void arduino_machine_init(MachineState *machine)
LED_COLOR_YELLOW,
"D13 LED");
- qdev_connect_gpio_out(DEVICE(&ams->mcu.gpio[1]),
+ qdev_connect_gpio_out(DEVICE(&ams->mcu.gpio[gpio_port_index('B')]),
amc->d13_led_portb_bit,
qdev_get_gpio_in(DEVICE(ams->onboard_led), 0));
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 8/8] Fix license statements
[not found] <20220912112106.49110-1-heecheol.yang@outlook.com>
` (5 preceding siblings ...)
2022-09-12 11:21 ` [PATCH 7/8] hw/avr/arduino: Replace magic number by gpio_port_index() call Heecheol Yang
@ 2022-09-12 11:21 ` Heecheol Yang
2022-09-18 16:33 ` [PATCH 8/8] Ping : hw/gpio Fix license statements in avr_gpio Heecheol Yang
6 siblings, 1 reply; 8+ messages in thread
From: Heecheol Yang @ 2022-09-12 11:21 UTC (permalink / raw)
To: qemu-devel; +Cc: Heecheol Yang
Signed-off-by: Heecheol Yang <heecheol.yang@outlook.com>
---
hw/gpio/avr_gpio.c | 16 ++++------------
include/hw/gpio/avr_gpio.h | 15 +++------------
2 files changed, 7 insertions(+), 24 deletions(-)
diff --git a/hw/gpio/avr_gpio.c b/hw/gpio/avr_gpio.c
index 29252d6ccf..7613ca6493 100644
--- a/hw/gpio/avr_gpio.c
+++ b/hw/gpio/avr_gpio.c
@@ -4,19 +4,11 @@
* Copyright (C) 2020 Heecheol Yang <heecheol.yang@outlook.com>
* Copyright (C) 2021 Niteesh Babu G S <niteesh.gs@gmail.com>
*
- * 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 or
- * (at your option) version 3 of the License.
- *
- * 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 <http://www.gnu.org/licenses/>.
+ * This work is licensed under the terms of the GNU GPLv2 or later.
+ * See the COPYING file in the top-level directory.
+ * SPDX-License-Identifier: GPL-2.0-or-later
*/
+
#include "qemu/osdep.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/include/hw/gpio/avr_gpio.h b/include/hw/gpio/avr_gpio.h
index e982f627ea..e4bfef0def 100644
--- a/include/hw/gpio/avr_gpio.h
+++ b/include/hw/gpio/avr_gpio.h
@@ -3,18 +3,9 @@
*
* Copyright (C) 2020 Heecheol Yang <heecheol.yang@outlook.com>
*
- * 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 or
- * (at your option) version 3 of the License.
- *
- * 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 <http://www.gnu.org/licenses/>.
+ * This work is licensed under the terms of the GNU GPLv2 or later.
+ * See the COPYING file in the top-level directory.
+ * SPDX-License-Identifier: GPL-2.0-or-later
*/
#ifndef AVR_GPIO_H
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 8/8] Ping : hw/gpio Fix license statements in avr_gpio
2022-09-12 11:21 ` [PATCH 8/8] Fix license statements Heecheol Yang
@ 2022-09-18 16:33 ` Heecheol Yang
0 siblings, 0 replies; 8+ messages in thread
From: Heecheol Yang @ 2022-09-18 16:33 UTC (permalink / raw)
To: qemu-devel; +Cc: heecheol.yang, f4bug, mrolnik
I send this patch to continue our works discussed about two years ago.
Due to my personal issue, I couldn't noticed that there were some issues
in license statements in the code.
I am very sorry for my late response and politely request to check this patch.
Signed-off-by: Heecheol Yang <heecheol.yang@outlook.com>
---
hw/gpio/avr_gpio.c | 16 ++++------------
include/hw/gpio/avr_gpio.h | 15 +++------------
2 files changed, 7 insertions(+), 24 deletions(-)
diff --git a/hw/gpio/avr_gpio.c b/hw/gpio/avr_gpio.c
index 29252d6ccf..7613ca6493 100644
--- a/hw/gpio/avr_gpio.c
+++ b/hw/gpio/avr_gpio.c
@@ -4,19 +4,11 @@
* Copyright (C) 2020 Heecheol Yang <heecheol.yang@outlook.com>
* Copyright (C) 2021 Niteesh Babu G S <niteesh.gs@gmail.com>
*
- * 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 or
- * (at your option) version 3 of the License.
- *
- * 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 <http://www.gnu.org/licenses/>.
+ * This work is licensed under the terms of the GNU GPLv2 or later.
+ * See the COPYING file in the top-level directory.
+ * SPDX-License-Identifier: GPL-2.0-or-later
*/
+
#include "qemu/osdep.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/include/hw/gpio/avr_gpio.h b/include/hw/gpio/avr_gpio.h
index e982f627ea..e4bfef0def 100644
--- a/include/hw/gpio/avr_gpio.h
+++ b/include/hw/gpio/avr_gpio.h
@@ -3,18 +3,9 @@
*
* Copyright (C) 2020 Heecheol Yang <heecheol.yang@outlook.com>
*
- * 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 or
- * (at your option) version 3 of the License.
- *
- * 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 <http://www.gnu.org/licenses/>.
+ * This work is licensed under the terms of the GNU GPLv2 or later.
+ * See the COPYING file in the top-level directory.
+ * SPDX-License-Identifier: GPL-2.0-or-later
*/
#ifndef AVR_GPIO_H
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
end of thread, other threads:[~2022-09-18 16:42 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <20220912112106.49110-1-heecheol.yang@outlook.com>
2022-09-12 11:21 ` [PATCH 2/8] hw/gpio/avr_gpio: Add migration VMstate Heecheol Yang
2022-09-12 11:21 ` [PATCH 3/8] hw/gpio/avr_gpio: Add 'id' field in AVRGPIOState Heecheol Yang
2022-09-12 11:21 ` [PATCH 4/8] hw/gpio/avr_gpio: Simplify avr_gpio_write_port using extract32() Heecheol Yang
2022-09-12 11:21 ` [PATCH 5/8] hw/gpio/avr_gpio: Add tracing for reads and writes Heecheol Yang
2022-09-12 11:21 ` [PATCH 6/8] hw/avr/arduino: Add D13 LED Heecheol Yang
2022-09-12 11:21 ` [PATCH 7/8] hw/avr/arduino: Replace magic number by gpio_port_index() call Heecheol Yang
2022-09-12 11:21 ` [PATCH 8/8] Fix license statements Heecheol Yang
2022-09-18 16:33 ` [PATCH 8/8] Ping : hw/gpio Fix license statements in avr_gpio Heecheol Yang
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.