Philippe Mathieu-Daudé 
							
						 
					 
					
						
						
							
						
						a828ba9d46 
					 
					
						
						
							
							hw/riscv/opentitan: Correct OpenTitanState parent type/size  
						
						... 
						
						
						
						OpenTitanState is the 'machine' (or 'board') state: it isn't
a SysBus device, but inherits from the MachineState type.
Correct the instance size.
Doing so we  avoid leaking an OpenTitanState pointer in
opentitan_machine_init().
Fixes: fe0fe4735ephilmd@linaro.org >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com >
Message-Id: <20230520054510.68822-6-philmd@linaro.org >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com > 
						
						
					 
					
						2023-06-13 17:19:42 +10:00 
						 
				 
			
				
					
						
							
							
								Philippe Mathieu-Daudé 
							
						 
					 
					
						
						
							
						
						8696b74a6f 
					 
					
						
						
							
							hw/riscv/opentitan: Explicit machine type definition  
						
						... 
						
						
						
						Expand the DEFINE_MACHINE() macro, converting the class_init()
handler.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com >
Message-Id: <20230520054510.68822-5-philmd@linaro.org >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com > 
						
						
					 
					
						2023-06-13 17:18:54 +10:00 
						 
				 
			
				
					
						
							
							
								Philippe Mathieu-Daudé 
							
						 
					 
					
						
						
							
						
						264495f948 
					 
					
						
						
							
							hw/riscv/opentitan: Add TYPE_OPENTITAN_MACHINE definition  
						
						... 
						
						
						
						QOM type names are usually defined as TYPE_FOO.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com >
Message-Id: <20230520054510.68822-4-philmd@linaro.org >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com > 
						
						
					 
					
						2023-06-13 17:18:06 +10:00 
						 
				 
			
				
					
						
							
							
								Wilfred Mallawa 
							
						 
					 
					
						
						
							
						
						7ae7146287 
					 
					
						
						
							
							include/hw/riscv/opentitan: update opentitan IRQs  
						
						... 
						
						
						
						Updates the opentitan IRQs to match the latest supported commit of
Opentitan from TockOS.
OPENTITAN_SUPPORTED_SHA := 565e4af39760a123c59a184aa2f5812a961fde47
Memory layout as per [1]
[1] 565e4af397/hw/top_earlgrey/sw/autogen/top_earlgrey_memory.hwilfred.mallawa@wdc.com >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <20230123063619.222459-1-wilfred.mallawa@opensource.wdc.com >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com > 
						
						
					 
					
						2023-02-07 08:19:22 +10:00 
						 
				 
			
				
					
						
							
							
								Wilfred Mallawa 
							
						 
					 
					
						
						
							
						
						aefd1108ee 
					 
					
						
						
							
							hw/riscv/opentitan: add aon_timer base unimpl  
						
						... 
						
						
						
						Adds the updated `aon_timer` base as an unimplemented device. This is
used by TockOS, patch ensures the guest doesn't hit load faults.
Signed-off-by: Wilfred Mallawa <wilfred.mallawa@wdc.com >
Reviewed-by: Bin Meng <bmeng.cn@gmail.com >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <20221025043335.339815-3-wilfred.mallawa@opensource.wdc.com >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com > 
						
						
					 
					
						2023-01-06 10:42:55 +10:00 
						 
				 
			
				
					
						
							
							
								Wilfred Mallawa 
							
						 
					 
					
						
						
							
						
						5379c1d0a4 
					 
					
						
						
							
							hw/riscv/opentitan: bump opentitan  
						
						... 
						
						
						
						This patch updates the OpenTitan model to match
the specified register layout as per [1]. Which is also the latest
commit of OpenTitan supported by TockOS.
Note: Pinmux and Padctrl has been merged into Pinmux [2][3], this patch removes
any references to Padctrl. Note: OpenTitan doc [2] has not yet specified
much detail regarding this, except for a note that states `TODO: this
section needs to be updated to reflect the pinmux/padctrl merger`
[1] d072ac505f/hw/top_earlgrey/sw/autogen/top_earlgrey_memory.hhttps://docs.opentitan.org/hw/top_earlgrey/doc/design/ 
[3] https://docs.opentitan.org/hw/ip/pinmux/doc/#overview 
Signed-off-by: Wilfred Mallawa <wilfred.mallawa@wdc.com >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Reviewed-by: Bin Meng <bmeng.cn@gmail.com >
Message-Id: <20221025043335.339815-2-wilfred.mallawa@opensource.wdc.com >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com > 
						
						
					 
					
						2023-01-06 10:42:55 +10:00 
						 
				 
			
				
					
						
							
							
								Alistair Francis 
							
						 
					 
					
						
						
							
						
						a06fded82e 
					 
					
						
						
							
							hw/riscv: opentitan: Expose the resetvec as a SoC property  
						
						... 
						
						
						
						On the OpenTitan hardware the resetvec is fixed at the start of ROM. In
QEMU we don't run the ROM code and instead just jump to the next stage.
This means we need to be a little more flexible about what the resetvec
is.
This patch allows us to set the resetvec from the command line with
something like this:
    -global driver=riscv.lowrisc.ibex.soc,property=resetvec,value=0x20000400
This way as the next stage changes we can update the resetvec.
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20220914101108.82571-4-alistair.francis@wdc.com >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com > 
						
						
					 
					
						2022-09-27 07:04:38 +10:00 
						 
				 
			
				
					
						
							
							
								Wilfred Mallawa 
							
						 
					 
					
						
						
							
						
						bf8803c64d 
					 
					
						
						
							
							hw/riscv: opentitan: bump opentitan version  
						
						... 
						
						
						
						The following patch updates opentitan to match the new configuration,
as per, lowRISC/opentitan@217a0168ba 
Note: with this patch we now skip the usage of the opentitan
`boot_rom`. The Opentitan boot rom contains hw verification
for devies which we are currently not supporting in qemu. As of now,
the `boot_rom` has no major significance, however, would be good to
support in the future.
Tested by running utests from the latest tock [1]
(that supports this version of OT).
[1] https://github.com/tock/tock/pull/3056 
Signed-off-by: Wilfred Mallawa <wilfred.mallawa@wdc.com >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <20220812005229.358850-1-wilfred.mallawa@opensource.wdc.com >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com > 
						
						
					 
					
						2022-09-07 09:18:33 +02:00 
						 
				 
			
				
					
						
							
							
								Wilfred Mallawa 
							
						 
					 
					
						
						
							
						
						9972479fac 
					 
					
						
						
							
							riscv: opentitan: Connect opentitan SPI Host  
						
						... 
						
						
						
						Connect spi host[1/0] to opentitan.
Signed-off-by: Wilfred Mallawa <wilfred.mallawa@wdc.com >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20220303045426.511588-2-alistair.francis@opensource.wdc.com >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com > 
						
						
					 
					
						2022-04-22 10:35:16 +10:00 
						 
				 
			
				
					
						
							
							
								Wilfred Mallawa 
							
						 
					 
					
						
						
							
						
						aecabd50b7 
					 
					
						
						
							
							hw: riscv: opentitan: fixup SPI addresses  
						
						... 
						
						
						
						This patch updates the SPI_DEVICE, SPI_HOST0, SPI_HOST1
base addresses. Also adds these as unimplemented devices.
The address references can be found [1].
[1] 6c317992fb/hw/top_earlgrey/sw/autogen/top_earlgrey_memory.h (L107)wilfred.mallawa@wdc.com >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Reviewed-by: Bin Meng <bmeng.cn@gmail.com >
Message-Id: <20220218063839.405082-1-alistair.francis@opensource.wdc.com >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com > 
						
						
					 
					
						2022-03-03 13:14:50 +10:00 
						 
				 
			
				
					
						
							
							
								Alistair Francis 
							
						 
					 
					
						
						
							
						
						ef63100648 
					 
					
						
						
							
							hw/riscv: opentitan: Update to the latest build  
						
						... 
						
						
						
						Update the OpenTitan machine model to match the latest OpenTitan FPGA
design.
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
Reviewed-by: Bin Meng <bmeng.cn@gmail.com >
Message-id: 18b1b681b0f8dd2461e819d1217bf0b530812680.1634524691.git.alistair.francis@wdc.com  
						
						
					 
					
						2021-10-22 23:35:47 +10:00 
						 
				 
			
				
					
						
							
							
								Alistair Francis 
							
						 
					 
					
						
						
							
						
						bb7e0cde3c 
					 
					
						
						
							
							hw/riscv: opentitan: Add the flash alias  
						
						... 
						
						
						
						OpenTitan has an alias of flash avaliable which is called virtual flash.
Add support for that in the QEMU model.
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
Reviewed-by: Bin Meng <bmeng.cn@gmail.com >
Message-id: c9cfbd2dd840fd0076877b8ea4d6dcfce60db5e9.1625801868.git.alistair.francis@wdc.com  
						
						
					 
					
						2021-07-15 08:56:00 +10:00 
						 
				 
			
				
					
						
							
							
								Alistair Francis 
							
						 
					 
					
						
						
							
						
						5ee257649f 
					 
					
						
						
							
							hw/riscv: opentitan: Add the unimplement rv_core_ibex_peri  
						
						... 
						
						
						
						Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
Reviewed-by: Bin Meng <bmeng.cn@gmail.com >
Message-id: ed707782e84118e1b06a32fd79b70fecfb54ff82.1625801868.git.alistair.francis@wdc.com  
						
						
					 
					
						2021-07-15 08:56:00 +10:00 
						 
				 
			
				
					
						
							
							
								Alistair Francis 
							
						 
					 
					
						
						
							
						
						3ef6434409 
					 
					
						
						
							
							hw/riscv: OpenTitan: Connect the mtime and mtimecmp timer  
						
						... 
						
						
						
						Connect the Ibex timer to the OpenTitan machine. The timer can trigger
the RISC-V MIE interrupt as well as a custom device interrupt.
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
Reviewed-by: Bin Meng <bmeng.cn@gmail.com >
Message-id: 5e7f4e9b4537f863bcb8db1264b840b56ef2a929.1624001156.git.alistair.francis@wdc.com  
						
						
					 
					
						2021-06-24 05:00:13 -07:00 
						 
				 
			
				
					
						
							
							
								Alistair Francis 
							
						 
					 
					
						
						
							
						
						d4cad54499 
					 
					
						
						
							
							hw/opentitan: Update the interrupt layout  
						
						... 
						
						
						
						Update the OpenTitan interrupt layout to match the latest OpenTitan
bitstreams. This involves changing the Ibex PLIC memory layout and the
UART interrupts.
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
Reviewed-by: Bin Meng <bmeng.cn@gmail.com >
Message-id: e92b696f1809c9fa4410da2e9f23c414db5a6960.1617202791.git.alistair.francis@wdc.com  
						
						
					 
					
						2021-05-11 20:02:06 +10:00 
						 
				 
			
				
					
						
							
							
								Alistair Francis 
							
						 
					 
					
						
						
							
						
						d31e970a01 
					 
					
						
						
							
							riscv/opentitan: Update the OpenTitan memory layout  
						
						... 
						
						
						
						OpenTitan is currently only avalible on an FPGA platform and the memory
addresses have changed. Update to use the new memory addresses.
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
Message-id: 8eb65314830a75d0fea3fccf77bc45b8ddd01c42.1607982831.git.alistair.francis@wdc.com  
						
						
					 
					
						2020-12-17 21:56:44 -08:00 
						 
				 
			
				
					
						
							
							
								Eduardo Habkost 
							
						 
					 
					
						
						
							
						
						8063396bf3 
					 
					
						
						
							
							Use OBJECT_DECLARE_SIMPLE_TYPE when possible  
						
						... 
						
						
						
						This converts existing DECLARE_INSTANCE_CHECKER usage to
OBJECT_DECLARE_SIMPLE_TYPE when possible.
$ ./scripts/codeconverter/converter.py -i \
  --pattern=AddObjectDeclareSimpleType $(git grep -l '' -- '*.[ch]')
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com >
Acked-by: Paul Durrant <paul@xen.org >
Message-Id: <20200916182519.415636-6-ehabkost@redhat.com >
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com > 
						
						
					 
					
						2020-09-18 14:12:32 -04:00 
						 
				 
			
				
					
						
							
							
								Eduardo Habkost 
							
						 
					 
					
						
						
							
						
						8110fa1d94 
					 
					
						
						
							
							Use DECLARE_*CHECKER* macros  
						
						... 
						
						
						
						Generated using:
 $ ./scripts/codeconverter/converter.py -i \
   --pattern=TypeCheckMacro $(git grep -l '' -- '*.[ch]')
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com >
Reviewed-by: Juan Quintela <quintela@redhat.com >
Message-Id: <20200831210740.126168-12-ehabkost@redhat.com >
Reviewed-by: Juan Quintela <quintela@redhat.com >
Message-Id: <20200831210740.126168-13-ehabkost@redhat.com >
Message-Id: <20200831210740.126168-14-ehabkost@redhat.com >
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com > 
						
						
					 
					
						2020-09-09 09:27:09 -04:00 
						 
				 
			
				
					
						
							
							
								Eduardo Habkost 
							
						 
					 
					
						
						
							
						
						db1015e92e 
					 
					
						
						
							
							Move QOM typedefs and add missing includes  
						
						... 
						
						
						
						Some typedefs and macros are defined after the type check macros.
This makes it difficult to automatically replace their
definitions with OBJECT_DECLARE_TYPE.
Patch generated using:
 $ ./scripts/codeconverter/converter.py -i \
   --pattern=QOMStructTypedefSplit $(git grep -l '' -- '*.[ch]')
which will split "typdef struct { ... } TypedefName"
declarations.
Followed by:
 $ ./scripts/codeconverter/converter.py -i --pattern=MoveSymbols \
    $(git grep -l '' -- '*.[ch]')
which will:
- move the typedefs and #defines above the type check macros
- add missing #include "qom/object.h" lines if necessary
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com >
Reviewed-by: Juan Quintela <quintela@redhat.com >
Message-Id: <20200831210740.126168-9-ehabkost@redhat.com >
Reviewed-by: Juan Quintela <quintela@redhat.com >
Message-Id: <20200831210740.126168-10-ehabkost@redhat.com >
Message-Id: <20200831210740.126168-11-ehabkost@redhat.com >
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com > 
						
						
					 
					
						2020-09-09 09:26:43 -04:00 
						 
				 
			
				
					
						
							
							
								Eduardo Habkost 
							
						 
					 
					
						
						
							
						
						30c717cb50 
					 
					
						
						
							
							opentitan: Rename memmap enum constants  
						
						... 
						
						
						
						Some of the enum constant names conflict with the QOM type check
macros (IBEX_PLIC, IBEX_UART).  This needs to be addressed to
allow us to transform the QOM type check macros into functions
generated by OBJECT_DECLARE_TYPE().
Rename all the constants to IBEX_DEV_*, to avoid conflicts.
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com >
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com >
Tested-By: Roman Bolshakov <r.bolshakov@yadro.com >
Message-Id: <20200825192110.3528606-8-ehabkost@redhat.com >
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com > 
						
						
					 
					
						2020-08-27 14:04:54 -04:00 
						 
				 
			
				
					
						
							
							
								Alistair Francis 
							
						 
					 
					
						
						
							
						
						cc4112605e 
					 
					
						
						
							
							riscv/opentitan: Connect the UART device  
						
						... 
						
						
						
						Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
Reviewed-by: Bin Meng <bin.meng@windriver.com >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org > 
						
						
					 
					
						2020-06-19 08:24:07 -07:00 
						 
				 
			
				
					
						
							
							
								Alistair Francis 
							
						 
					 
					
						
						
							
						
						b9fc51354c 
					 
					
						
						
							
							riscv/opentitan: Connect the PLIC device  
						
						... 
						
						
						
						Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
Reviewed-by: Bin Meng <bin.meng@windriver.com >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org > 
						
						
					 
					
						2020-06-19 08:24:07 -07:00 
						 
				 
			
				
					
						
							
							
								Alistair Francis 
							
						 
					 
					
						
						
							
						
						fe0fe4735e 
					 
					
						
						
							
							riscv: Initial commit of OpenTitan machine  
						
						... 
						
						
						
						This adds a barebone OpenTitan machine to QEMU.
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
Reviewed-by: Bin Meng <bin.meng@windriver.com > 
						
						
					 
					
						2020-06-03 09:11:51 -07:00