Hi Kirill,
On 13/7/26 13:16, Kirill A. Korinsky wrote:
Add a minimal Cavium/Marvell Octeon III machine model for the EBB7304
evaluation board. This work is based on Amir Mehmood's original Octeon
host.patch; the basic machine approach and several hardware model ideas
come from that work.
The model targets modern U-Boot's EBB7304 firmware and OpenBSD/octeon.
The same machine also boots the U-Boot image shipped in the ER-8-XG
firmware upgrade package.
It provides the RAM layout, boot flash aliasing, CIU/CIU3 interrupt
state, UART, TWSI/SPD, LMC state, RNG, POW, DWC3 USB, and minimal PCIe
support needed to boot with USB storage and an attached PCI e1000.
Add a functional test that boots the OpenBSD/octeon ramdisk through
U-Boot using QEMU's user mode TFTP server.
Signed-off-by: Kirill A. Korinsky <[email protected]>
---
hw/mips/Kconfig | 10 +
hw/mips/meson.build | 1 +
hw/mips/octeon.c | 3829 +++++++++++++++++++++++
Thanks for this contribution! Unfortunately the patch is too big to be
reviewable... Do you mind splitting it in distinct parts (add empty
machine, then add pheripherals and wire them to the machine, then the
test).
PCI host bridge, I2C and USB controllers deserve their own file in
hw/pci-bridge/, hw/i2c/ and hw/usb/.
Do not use DEVICE_NATIVE_ENDIAN.
octeon_board_reset() seems to contain reset code from distinct
peripherals. Each peripheral should have its own reset handler
(please do not use the legacy reset API).
Thanks,
Phil.
tests/functional/mips64/meson.build | 2 +
tests/functional/mips64/test_octeon3.py | 54 +
5 files changed, 3896 insertions(+)
create mode 100644 hw/mips/octeon.c
create mode 100644 tests/functional/mips64/test_octeon3.py