mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 15:23:53 -06:00
hw/i2c/aspeed: Introduce a new dma_dram_offset attribute in AspeedI2Cbus
The "Current DMA Operating Address Status(0x50)" register of I2C new mode has been removed in AST2700. This register is used for debugging and it is a read only register. To support AST2700 DMA mode, introduce a new dma_dram_offset class attribute in AspeedI2Cbus to save the current DMA operating address. ASPEED AST2700 SOC is a 64 bits quad core CPUs (Cortex-a35) And the base address of dram is "0x4 00000000" which is 64bits address. Set the dma_dram_offset data type to uint64_t for 64 bits dram address DMA support. Both "DMA Mode Buffer Address Register(I2CD24 old mode)" and "DMA Operating Address Status (I2CC50 new mode)" are used for showing the low part dram offset bits [31:0], so change to read/write both register bits [31:0] in bus register read/write functions. The aspeed_i2c_bus_vmstate is changed again and version is not increased because it was done earlier in the same series. Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com> Reviewed-by: Cédric Le Goater <clg@redhat.com>
This commit is contained in:
parent
d46a4ba0f4
commit
c400c38854
2 changed files with 33 additions and 27 deletions
|
@ -248,6 +248,7 @@ struct AspeedI2CBus {
|
|||
|
||||
uint32_t regs[ASPEED_I2C_NEW_NUM_REG];
|
||||
uint8_t pool[ASPEED_I2C_BUS_POOL_SIZE];
|
||||
uint64_t dma_dram_offset;
|
||||
};
|
||||
|
||||
struct AspeedI2CState {
|
||||
|
@ -369,14 +370,6 @@ static inline uint32_t aspeed_i2c_bus_dma_len_offset(AspeedI2CBus *bus)
|
|||
return R_I2CD_DMA_LEN;
|
||||
}
|
||||
|
||||
static inline uint32_t aspeed_i2c_bus_dma_addr_offset(AspeedI2CBus *bus)
|
||||
{
|
||||
if (aspeed_i2c_is_new_mode(bus->controller)) {
|
||||
return R_I2CC_DMA_ADDR;
|
||||
}
|
||||
return R_I2CD_DMA_ADDR;
|
||||
}
|
||||
|
||||
static inline bool aspeed_i2c_bus_is_master(AspeedI2CBus *bus)
|
||||
{
|
||||
return SHARED_ARRAY_FIELD_EX32(bus->regs, aspeed_i2c_bus_ctrl_offset(bus),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue