From: Jamin Lin <jamin_lin@aspeedtech.com>
To: "Cédric Le Goater" <clg@kaod.org>,
"Peter Maydell" <peter.maydell@linaro.org>,
"Steven Lee" <steven_lee@aspeedtech.com>,
"Troy Lee" <leetroy@gmail.com>,
"Kane Chen" <kane_chen@aspeedtech.com>,
"Andrew Jeffery" <andrew@codeconstruct.com.au>,
"Joel Stanley" <joel@jms.id.au>,
"open list:ASPEED BMCs" <qemu-arm@nongnu.org>,
"open list:All patches CC here" <qemu-devel@nongnu.org>
Cc: Jamin Lin <jamin_lin@aspeedtech.com>, Troy Lee <troy_lee@aspeedtech.com>
Subject: [PATCH v3 02/10] hw/i2c/aspeed_i2c: Increase AST2700 buffer mode size and adjust offset
Date: Wed, 3 Jun 2026 04:00:30 +0000 [thread overview]
Message-ID: <20260603040027.938816-3-jamin_lin@aspeedtech.com> (raw)
In-Reply-To: <20260603040027.938816-1-jamin_lin@aspeedtech.com>
Update the AST2700 I2C buffer mode configuration to match
the latest firmware definition:
- Increase buffer mode pool size from 0x20 to 0x40
- Adjust buffer mode base offset to 0x1c0
Since the buffer mode region size changes, the migration state
layout is also modified. Bump the VMState version numbers to
prevent incompatible migration between old and new machine states.
Fixes: 1809ab6a67359e0876981cd05d2a50b2843eabad ("hw/i2c/aspeed: Add AST2700 support")
Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
---
include/hw/i2c/aspeed_i2c.h | 2 +-
hw/i2c/aspeed_i2c.c | 46 ++++++++++++++++++-------------------
2 files changed, 24 insertions(+), 24 deletions(-)
diff --git a/include/hw/i2c/aspeed_i2c.h b/include/hw/i2c/aspeed_i2c.h
index 1fc229f699..b2e4d2fb9d 100644
--- a/include/hw/i2c/aspeed_i2c.h
+++ b/include/hw/i2c/aspeed_i2c.h
@@ -35,7 +35,7 @@ OBJECT_DECLARE_TYPE(AspeedI2CState, AspeedI2CClass, ASPEED_I2C)
#define ASPEED_I2C_NR_BUSSES 16
#define ASPEED_I2C_SHARE_POOL_SIZE 0x800
-#define ASPEED_I2C_BUS_POOL_SIZE 0x20
+#define ASPEED_I2C_BUS_POOL_SIZE 0x40
#define ASPEED_I2C_NEW_NUM_REG (0xa0 >> 2)
#define A_I2CD_M_STOP_CMD BIT(5)
diff --git a/hw/i2c/aspeed_i2c.c b/hw/i2c/aspeed_i2c.c
index 9d4e72c858..856d5dc1db 100644
--- a/hw/i2c/aspeed_i2c.c
+++ b/hw/i2c/aspeed_i2c.c
@@ -1132,8 +1132,8 @@ static const MemoryRegionOps aspeed_i2c_bus_pool_ops = {
static const VMStateDescription aspeed_i2c_bus_vmstate = {
.name = TYPE_ASPEED_I2C,
- .version_id = 7,
- .minimum_version_id = 6,
+ .version_id = 8,
+ .minimum_version_id = 8,
.fields = (const VMStateField[]) {
VMSTATE_UINT32_ARRAY(regs, AspeedI2CBus, ASPEED_I2C_NEW_NUM_REG),
VMSTATE_UINT32_V(pending_intr_sts, AspeedI2CBus, 7),
@@ -1145,8 +1145,8 @@ static const VMStateDescription aspeed_i2c_bus_vmstate = {
static const VMStateDescription aspeed_i2c_vmstate = {
.name = TYPE_ASPEED_I2C,
- .version_id = 3,
- .minimum_version_id = 3,
+ .version_id = 4,
+ .minimum_version_id = 4,
.fields = (const VMStateField[]) {
VMSTATE_UINT32(intr_status, AspeedI2CState),
VMSTATE_STRUCT_ARRAY(busses, AspeedI2CState,
@@ -1250,37 +1250,37 @@ static void aspeed_i2c_instance_init(Object *obj)
* Address Definitions (AST2700)
* 0x000 ... 0x0FF: Global Register
* 0x100 ... 0x19F: Device 0
- * 0x1A0 ... 0x1BF: Device 0 buffer
+ * 0x1C0 ... 0x1FF: Device 0 buffer
* 0x200 ... 0x29F: Device 1
- * 0x2A0 ... 0x2BF: Device 1 buffer
+ * 0x2C0 ... 0x2FF: Device 1 buffer
* 0x300 ... 0x39F: Device 2
- * 0x3A0 ... 0x3BF: Device 2 buffer
+ * 0x3C0 ... 0x3FF: Device 2 buffer
* 0x400 ... 0x49F: Device 3
- * 0x4A0 ... 0x4BF: Device 3 buffer
+ * 0x4C0 ... 0x4FF: Device 3 buffer
* 0x500 ... 0x59F: Device 4
- * 0x5A0 ... 0x5BF: Device 4 buffer
+ * 0x5C0 ... 0x5FF: Device 4 buffer
* 0x600 ... 0x69F: Device 5
- * 0x6A0 ... 0x6BF: Device 5 buffer
+ * 0x6C0 ... 0x6FF: Device 5 buffer
* 0x700 ... 0x79F: Device 6
- * 0x7A0 ... 0x7BF: Device 6 buffer
+ * 0x7C0 ... 0x7FF: Device 6 buffer
* 0x800 ... 0x89F: Device 7
- * 0x8A0 ... 0x8BF: Device 7 buffer
+ * 0x8C0 ... 0x8FF: Device 7 buffer
* 0x900 ... 0x99F: Device 8
- * 0x9A0 ... 0x9BF: Device 8 buffer
+ * 0x9C0 ... 0x9FF: Device 8 buffer
* 0xA00 ... 0xA9F: Device 9
- * 0xAA0 ... 0xABF: Device 9 buffer
+ * 0xAC0 ... 0xAFF: Device 9 buffer
* 0xB00 ... 0xB9F: Device 10
- * 0xBA0 ... 0xBBF: Device 10 buffer
+ * 0xBC0 ... 0xBFF: Device 10 buffer
* 0xC00 ... 0xC9F: Device 11
- * 0xCA0 ... 0xCBF: Device 11 buffer
+ * 0xCC0 ... 0xCFF: Device 11 buffer
* 0xD00 ... 0xD9F: Device 12
- * 0xDA0 ... 0xDBF: Device 12 buffer
+ * 0xDC0 ... 0xDFF: Device 12 buffer
* 0xE00 ... 0xE9F: Device 13
- * 0xEA0 ... 0xEBF: Device 13 buffer
+ * 0xEC0 ... 0xEFF: Device 13 buffer
* 0xF00 ... 0xF9F: Device 14
- * 0xFA0 ... 0xFBF: Device 14 buffer
+ * 0xFC0 ... 0xFFF: Device 14 buffer
* 0x1000 ... 0x109F: Device 15
- * 0x10A0 ... 0x10BF: Device 15 buffer
+ * 0x10C0 ... 0x10BF: Device 15 buffer
*/
static void aspeed_i2c_realize(DeviceState *dev, Error **errp)
{
@@ -1666,9 +1666,9 @@ static void aspeed_2700_i2c_class_init(ObjectClass *klass, const void *data)
aic->reg_gap_size = 0x60;
aic->gap = -1; /* no gap */
aic->bus_get_irq = aspeed_2600_i2c_bus_get_irq;
- aic->pool_size = 0x20;
- aic->pool_gap_size = 0xe0;
- aic->pool_base = 0x1a0;
+ aic->pool_size = 0x40;
+ aic->pool_gap_size = 0xc0;
+ aic->pool_base = 0x1c0;
aic->bus_pool_base = aspeed_2500_i2c_bus_pool_base;
aic->has_dma = true;
aic->mem_size = 0x2000;
--
2.43.0
next prev parent reply other threads:[~2026-06-03 4:01 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-03 4:00 [PATCH v3 00/10] hw/arm/aspeed: Add AST1040 peripheral support Jamin Lin
2026-06-03 4:00 ` [PATCH v3 01/10] hw/i2c/aspeed_i2c: Introduce dma_addr_lo_mask to unify DMA address handling Jamin Lin
2026-06-03 4:00 ` Jamin Lin [this message]
2026-06-03 4:00 ` [PATCH v3 03/10] hw/arm/aspeed_ast1040: Reuse AST2700 ADC model Jamin Lin
2026-06-03 4:00 ` [PATCH v3 04/10] hw/arm/aspeed_ast1040: Introduce PECI support Jamin Lin
2026-06-03 4:00 ` [PATCH v3 05/10] hw/arm/aspeed_ast1040: Reuse AST2700 GPIO controller model Jamin Lin
2026-06-03 4:00 ` [PATCH v3 06/10] hw/arm/aspeed_ast1040: Add SGPIO controller support Jamin Lin
2026-06-03 4:00 ` [PATCH v3 07/10] hw/i2c/aspeed_i2c: Introduce AST1040 I2C model Jamin Lin
2026-06-03 4:00 ` [PATCH v3 08/10] hw/arm/aspeed_ast1040: Introduce I2C support Jamin Lin
2026-06-03 4:00 ` [PATCH v3 09/10] hw/arm/aspeed_ast1040_evb: Introduce onboard I2C device Jamin Lin
2026-06-03 4:00 ` [PATCH v3 10/10] hw/arm/aspeed_ast1040: Reuse AST2700 watchdog models Jamin Lin
2026-06-03 6:31 ` [PATCH v3 00/10] hw/arm/aspeed: Add AST1040 peripheral support Cédric Le Goater
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260603040027.938816-3-jamin_lin@aspeedtech.com \
--to=jamin_lin@aspeedtech.com \
--cc=andrew@codeconstruct.com.au \
--cc=clg@kaod.org \
--cc=joel@jms.id.au \
--cc=kane_chen@aspeedtech.com \
--cc=leetroy@gmail.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=steven_lee@aspeedtech.com \
--cc=troy_lee@aspeedtech.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.