[RFC PATCH 0/2] Pegasos2 emulation

BALATON Zoltan posted 2 patches 3 years, 4 months ago
Test checkpatch failed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/cover.1609973005.git.balaton@eik.bme.hu
Maintainers: David Gibson <david@gibson.dropbear.id.au>, Greg Kurz <groug@kaod.org>
There is a newer version of this series
default-configs/devices/ppc-softmmu.mak |   2 +
hw/pci-host/Kconfig                     |   3 +
hw/pci-host/meson.build                 |   2 +
hw/pci-host/mv64361.c                   | 966 ++++++++++++++++++++++++
hw/pci-host/mv643xx.h                   | 919 ++++++++++++++++++++++
hw/pci-host/trace-events                |   6 +
hw/ppc/Kconfig                          |  10 +
hw/ppc/meson.build                      |   2 +
hw/ppc/pegasos2.c                       | 144 ++++
9 files changed, 2054 insertions(+)
create mode 100644 hw/pci-host/mv64361.c
create mode 100644 hw/pci-host/mv643xx.h
create mode 100644 hw/ppc/pegasos2.c
[RFC PATCH 0/2] Pegasos2 emulation
Posted by BALATON Zoltan 3 years, 4 months ago
Hello,

This is adding a new PPC board called pegasos2 currently posted as RFC
because it depends on not yet merged VT8231 emulation currently on the
list:

https://patchew.org/QEMU/cover.1609967638.git.balaton@eik.bme.hu/

and may need some changes like a test case but I'm posting it now for
getting feedback on what's needed to merge this. More info on it can
be found at:

https://osdn.net/projects/qmiga/wiki/SubprojectPegasos2

Currently it needs a firmware ROM image that I cannot include due to
original copyright holder (bPlan) did not release it under a free
licence but I have plans to write a replacement in the future. With
that firmware it can boot MorphOS now as:

qemu-system-ppc -M pegasos2 -cdrom morphos.iso -device ati-vga,romfile="" -serial stdio

then enter "boot cd boot.img" at the firmware "ok" prompt as described
in the MorphOS.readme. To boot Linux use same command line with e.g.
-cdrom debian-8.11.0-powerpc-netinst.iso then enter
"boot cd install/pegasos"

Patch 2 adds the actual board code after patch 1 adding MV64361 system
controller chip. The mv643xx.h header file is taken from Linux and
produces a bunch of checkpatch warnings due to different formatting
rules it follows, I'm not sure we want to adopt it or keep it as it is
given that it does not appear any more in recent Linux versions so we
could reformat it as it's unlikely to get updated in the future.

Regards,
BALATON Zoltan

BALATON Zoltan (2):
  hw/pci-host: Add emulation of Marvell MV64361 PPC system controller
  hw/ppc: Add emulation of Genesi/bPlan Pegasos II

 default-configs/devices/ppc-softmmu.mak |   2 +
 hw/pci-host/Kconfig                     |   3 +
 hw/pci-host/meson.build                 |   2 +
 hw/pci-host/mv64361.c                   | 966 ++++++++++++++++++++++++
 hw/pci-host/mv643xx.h                   | 919 ++++++++++++++++++++++
 hw/pci-host/trace-events                |   6 +
 hw/ppc/Kconfig                          |  10 +
 hw/ppc/meson.build                      |   2 +
 hw/ppc/pegasos2.c                       | 144 ++++
 9 files changed, 2054 insertions(+)
 create mode 100644 hw/pci-host/mv64361.c
 create mode 100644 hw/pci-host/mv643xx.h
 create mode 100644 hw/ppc/pegasos2.c

-- 
2.21.3


Re: [RFC PATCH 0/2] Pegasos2 emulation
Posted by no-reply@patchew.org 3 years, 4 months ago
Patchew URL: https://patchew.org/QEMU/cover.1609973005.git.balaton@eik.bme.hu/



Hi,

This series seems to have some coding style problems. See output below for
more information:

Type: series
Message-id: cover.1609973005.git.balaton@eik.bme.hu
Subject: [RFC PATCH 0/2] Pegasos2 emulation

=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
 * [new tag]         patchew/cover.1609973005.git.balaton@eik.bme.hu -> patchew/cover.1609973005.git.balaton@eik.bme.hu
Switched to a new branch 'test'
2d34410 hw/ppc: Add emulation of Genesi/bPlan Pegasos II
f987fbe hw/pci-host: Add emulation of Marvell MV64361 PPC system controller

=== OUTPUT BEGIN ===
1/2 Checking commit f987fbe9b10b (hw/pci-host: Add emulation of Marvell MV64361 PPC system controller)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#42: 
new file mode 100644

WARNING: line over 80 characters
#298: FILE: hw/pci-host/mv64361.c:252:
+            trace_mv64361_region_enable(!(val & mask) ? "enable" : "disable", i);

ERROR: code indent should never use tabs
#1023: FILE: hw/pci-host/mv643xx.h:5:
+ * ^IAuthor: Matthew Dharm <mdharm@momenco.com>$

WARNING: architecture specific defines should be avoided
#1031: FILE: hw/pci-host/mv643xx.h:13:
+#ifndef __ASM_MV643XX_H

WARNING: Block comments use a leading /* on a separate line
#1093: FILE: hw/pci-host/mv643xx.h:75:
+/* Enables the CS , DEV_CS , PCI 0 and PCI 1

WARNING: Block comments use * on subsequent lines
#1094: FILE: hw/pci-host/mv643xx.h:76:
+/* Enables the CS , DEV_CS , PCI 0 and PCI 1
+   windows above */

WARNING: Block comments use a trailing */ on a separate line
#1094: FILE: hw/pci-host/mv643xx.h:76:
+   windows above */

ERROR: code indent should never use tabs
#1197: FILE: hw/pci-host/mv643xx.h:179:
+/*      CPU Interface Debug Registers ^I*/$

ERROR: code indent should never use tabs
#1274: FILE: hw/pci-host/mv643xx.h:256:
+/* Device Parameters^I^I^I*/$

ERROR: code indent should never use tabs
#1277: FILE: hw/pci-host/mv643xx.h:259:
+#define MV64340_DEVICE_BANK0_PARAMETERS^I^I^I^I    0x45c$

ERROR: code indent should never use tabs
#1278: FILE: hw/pci-host/mv643xx.h:260:
+#define MV64340_DEVICE_BANK1_PARAMETERS^I^I^I^I    0x460$

ERROR: code indent should never use tabs
#1279: FILE: hw/pci-host/mv643xx.h:261:
+#define MV64340_DEVICE_BANK2_PARAMETERS^I^I^I^I    0x464$

ERROR: code indent should never use tabs
#1280: FILE: hw/pci-host/mv643xx.h:262:
+#define MV64340_DEVICE_BANK3_PARAMETERS^I^I^I^I    0x468$

ERROR: code indent should never use tabs
#1281: FILE: hw/pci-host/mv643xx.h:263:
+#define MV64340_DEVICE_BOOT_BANK_PARAMETERS^I^I^I    0x46c$

ERROR: code indent should never use tabs
#1288: FILE: hw/pci-host/mv643xx.h:270:
+/* Device interrupt registers^I^I*/$

ERROR: code indent should never use tabs
#1291: FILE: hw/pci-host/mv643xx.h:273:
+#define MV64340_DEVICE_INTERRUPT_CAUSE^I^I^I^I    0x4d0$

ERROR: code indent should never use tabs
#1292: FILE: hw/pci-host/mv643xx.h:274:
+#define MV64340_DEVICE_INTERRUPT_MASK^I^I^I^I    0x4d4$

ERROR: code indent should never use tabs
#1293: FILE: hw/pci-host/mv643xx.h:275:
+#define MV64340_DEVICE_ERROR_ADDR^I^I^I^I    0x4d8$

ERROR: code indent should never use tabs
#1294: FILE: hw/pci-host/mv643xx.h:276:
+#define MV64340_DEVICE_ERROR_DATA   ^I^I^I^I    0x4dc$

ERROR: code indent should never use tabs
#1295: FILE: hw/pci-host/mv643xx.h:277:
+#define MV64340_DEVICE_ERROR_PARITY     ^I^I^I    0x4e0$

ERROR: code indent should never use tabs
#1298: FILE: hw/pci-host/mv643xx.h:280:
+/* Device debug registers   ^I^I*/$

ERROR: code indent should never use tabs
#1301: FILE: hw/pci-host/mv643xx.h:283:
+#define MV64340_DEVICE_DEBUG_LOW     ^I^I^I^I    0x4e4$

ERROR: code indent should never use tabs
#1302: FILE: hw/pci-host/mv643xx.h:284:
+#define MV64340_DEVICE_DEBUG_HIGH     ^I^I^I^I    0x4e8$

ERROR: code indent should never use tabs
#1341: FILE: hw/pci-host/mv643xx.h:323:
+#define MV64340_PCI_0_CS_0_BASE_ADDR_REMAP^I^I^I    0xc48$

ERROR: code indent should never use tabs
#1342: FILE: hw/pci-host/mv643xx.h:324:
+#define MV64340_PCI_1_CS_0_BASE_ADDR_REMAP^I^I^I    0xcc8$

ERROR: code indent should never use tabs
#1343: FILE: hw/pci-host/mv643xx.h:325:
+#define MV64340_PCI_0_CS_1_BASE_ADDR_REMAP^I^I^I    0xd48$

ERROR: code indent should never use tabs
#1344: FILE: hw/pci-host/mv643xx.h:326:
+#define MV64340_PCI_1_CS_1_BASE_ADDR_REMAP^I^I^I    0xdc8$

ERROR: code indent should never use tabs
#1345: FILE: hw/pci-host/mv643xx.h:327:
+#define MV64340_PCI_0_CS_2_BASE_ADDR_REMAP^I^I^I    0xc4c$

ERROR: code indent should never use tabs
#1346: FILE: hw/pci-host/mv643xx.h:328:
+#define MV64340_PCI_1_CS_2_BASE_ADDR_REMAP^I^I^I    0xccc$

ERROR: code indent should never use tabs
#1347: FILE: hw/pci-host/mv643xx.h:329:
+#define MV64340_PCI_0_CS_3_BASE_ADDR_REMAP^I^I^I    0xd4c$

ERROR: code indent should never use tabs
#1348: FILE: hw/pci-host/mv643xx.h:330:
+#define MV64340_PCI_1_CS_3_BASE_ADDR_REMAP^I^I^I    0xdcc$

ERROR: code indent should never use tabs
#1349: FILE: hw/pci-host/mv643xx.h:331:
+#define MV64340_PCI_0_CS_0_BASE_HIGH_ADDR_REMAP^I^I^I    0xF04$

ERROR: code indent should never use tabs
#1350: FILE: hw/pci-host/mv643xx.h:332:
+#define MV64340_PCI_1_CS_0_BASE_HIGH_ADDR_REMAP^I^I^I    0xF84$

ERROR: code indent should never use tabs
#1351: FILE: hw/pci-host/mv643xx.h:333:
+#define MV64340_PCI_0_CS_1_BASE_HIGH_ADDR_REMAP^I^I^I    0xF08$

ERROR: code indent should never use tabs
#1352: FILE: hw/pci-host/mv643xx.h:334:
+#define MV64340_PCI_1_CS_1_BASE_HIGH_ADDR_REMAP^I^I^I    0xF88$

ERROR: code indent should never use tabs
#1353: FILE: hw/pci-host/mv643xx.h:335:
+#define MV64340_PCI_0_CS_2_BASE_HIGH_ADDR_REMAP^I^I^I    0xF0C$

ERROR: code indent should never use tabs
#1354: FILE: hw/pci-host/mv643xx.h:336:
+#define MV64340_PCI_1_CS_2_BASE_HIGH_ADDR_REMAP^I^I^I    0xF8C$

ERROR: code indent should never use tabs
#1355: FILE: hw/pci-host/mv643xx.h:337:
+#define MV64340_PCI_0_CS_3_BASE_HIGH_ADDR_REMAP^I^I^I    0xF10$

ERROR: code indent should never use tabs
#1356: FILE: hw/pci-host/mv643xx.h:338:
+#define MV64340_PCI_1_CS_3_BASE_HIGH_ADDR_REMAP^I^I^I    0xF90$

ERROR: code indent should never use tabs
#1357: FILE: hw/pci-host/mv643xx.h:339:
+#define MV64340_PCI_0_DEVCS_0_BASE_ADDR_REMAP^I^I^I    0xc50$

ERROR: code indent should never use tabs
#1358: FILE: hw/pci-host/mv643xx.h:340:
+#define MV64340_PCI_1_DEVCS_0_BASE_ADDR_REMAP^I^I^I    0xcd0$

ERROR: code indent should never use tabs
#1359: FILE: hw/pci-host/mv643xx.h:341:
+#define MV64340_PCI_0_DEVCS_1_BASE_ADDR_REMAP^I^I^I    0xd50$

ERROR: code indent should never use tabs
#1360: FILE: hw/pci-host/mv643xx.h:342:
+#define MV64340_PCI_1_DEVCS_1_BASE_ADDR_REMAP^I^I^I    0xdd0$

ERROR: code indent should never use tabs
#1361: FILE: hw/pci-host/mv643xx.h:343:
+#define MV64340_PCI_0_DEVCS_2_BASE_ADDR_REMAP^I^I^I    0xd58$

ERROR: code indent should never use tabs
#1362: FILE: hw/pci-host/mv643xx.h:344:
+#define MV64340_PCI_1_DEVCS_2_BASE_ADDR_REMAP^I^I^I    0xdd8$

ERROR: code indent should never use tabs
#1363: FILE: hw/pci-host/mv643xx.h:345:
+#define MV64340_PCI_0_DEVCS_3_BASE_ADDR_REMAP           ^I    0xc54$

ERROR: code indent should never use tabs
#1364: FILE: hw/pci-host/mv643xx.h:346:
+#define MV64340_PCI_1_DEVCS_3_BASE_ADDR_REMAP           ^I    0xcd4$

ERROR: code indent should never use tabs
#1365: FILE: hw/pci-host/mv643xx.h:347:
+#define MV64340_PCI_0_DEVCS_BOOTCS_BASE_ADDR_REMAP      ^I    0xd54$

ERROR: code indent should never use tabs
#1366: FILE: hw/pci-host/mv643xx.h:348:
+#define MV64340_PCI_1_DEVCS_BOOTCS_BASE_ADDR_REMAP      ^I    0xdd4$

ERROR: code indent should never use tabs
#1402: FILE: hw/pci-host/mv643xx.h:384:
+#define MV64340_PCI_0_COMMAND^I^I^I         ^I    0xc00$

ERROR: code indent should never use tabs
#1403: FILE: hw/pci-host/mv643xx.h:385:
+#define MV64340_PCI_1_COMMAND^I^I^I^I^I    0xc80$

ERROR: code indent should never use tabs
#1406: FILE: hw/pci-host/mv643xx.h:388:
+#define MV64340_PCI_0_RETRY^I        ^I ^I^I    0xc04$

ERROR: code indent should never use tabs
#1407: FILE: hw/pci-host/mv643xx.h:389:
+#define MV64340_PCI_1_RETRY^I^I^I^I            0xc84$

ERROR: code indent should never use tabs
#1469: FILE: hw/pci-host/mv643xx.h:451:
+#define MV64340_PCI_0_CONFIG_ADDR ^I^I^I^I    0xcf8$

ERROR: code indent should never use tabs
#1471: FILE: hw/pci-host/mv643xx.h:453:
+#define MV64340_PCI_1_CONFIG_ADDR ^I^I^I^I    0xc78$

ERROR: code indent should never use tabs
#1473: FILE: hw/pci-host/mv643xx.h:455:
+#define MV64340_PCI_0_INTERRUPT_ACKNOWLEDGE_VIRTUAL_REG^I            0xc34$

ERROR: code indent should never use tabs
#1474: FILE: hw/pci-host/mv643xx.h:456:
+#define MV64340_PCI_1_INTERRUPT_ACKNOWLEDGE_VIRTUAL_REG^I            0xcb4$

ERROR: code indent should never use tabs
#1480: FILE: hw/pci-host/mv643xx.h:462:
+#define MV64340_PCI_0_SERR_MASK^I^I^I^I^I    0xc28$

ERROR: code indent should never use tabs
#1481: FILE: hw/pci-host/mv643xx.h:463:
+#define MV64340_PCI_1_SERR_MASK^I^I^I^I^I    0xca8$

ERROR: code indent should never use tabs
#1506: FILE: hw/pci-host/mv643xx.h:488:
+#define MV64340_PCI_DEVICE_AND_VENDOR_ID ^I^I^I    0x000$

ERROR: code indent should never use tabs
#1507: FILE: hw/pci-host/mv643xx.h:489:
+#define MV64340_PCI_STATUS_AND_COMMAND^I^I^I^I    0x004$

ERROR: code indent should never use tabs
#1508: FILE: hw/pci-host/mv643xx.h:490:
+#define MV64340_PCI_CLASS_CODE_AND_REVISION_ID^I^I^I    0x008$

ERROR: code indent should never use tabs
#1509: FILE: hw/pci-host/mv643xx.h:491:
+#define MV64340_PCI_BIST_HEADER_TYPE_LATENCY_TIMER_CACHE_LINE ^I    0x00C$

ERROR: code indent should never use tabs
#1511: FILE: hw/pci-host/mv643xx.h:493:
+#define MV64340_PCI_SCS_0_BASE_ADDR_LOW   ^I      ^I^I    0x010$

ERROR: code indent should never use tabs
#1512: FILE: hw/pci-host/mv643xx.h:494:
+#define MV64340_PCI_SCS_0_BASE_ADDR_HIGH   ^I^I            0x014$

ERROR: code indent should never use tabs
#1513: FILE: hw/pci-host/mv643xx.h:495:
+#define MV64340_PCI_SCS_1_BASE_ADDR_LOW  ^I     ^I            0x018$

ERROR: code indent should never use tabs
#1514: FILE: hw/pci-host/mv643xx.h:496:
+#define MV64340_PCI_SCS_1_BASE_ADDR_HIGH ^I^I            0x01C$

ERROR: code indent should never use tabs
#1515: FILE: hw/pci-host/mv643xx.h:497:
+#define MV64340_PCI_INTERNAL_REG_MEM_MAPPED_BASE_ADDR_LOW      ^I    0x020$

ERROR: code indent should never use tabs
#1516: FILE: hw/pci-host/mv643xx.h:498:
+#define MV64340_PCI_INTERNAL_REG_MEM_MAPPED_BASE_ADDR_HIGH     ^I    0x024$

ERROR: code indent should never use tabs
#1517: FILE: hw/pci-host/mv643xx.h:499:
+#define MV64340_PCI_SUBSYSTEM_ID_AND_SUBSYSTEM_VENDOR_ID^I    0x02c$

ERROR: code indent should never use tabs
#1518: FILE: hw/pci-host/mv643xx.h:500:
+#define MV64340_PCI_EXPANSION_ROM_BASE_ADDR_REG^I                    0x030$

ERROR: code indent should never use tabs
#1520: FILE: hw/pci-host/mv643xx.h:502:
+#define MV64340_PCI_INTERRUPT_PIN_AND_LINE ^I^I^I    0x03C$

ERROR: code indent should never use tabs
#1538: FILE: hw/pci-host/mv643xx.h:520:
+#define MV64340_PCI_SCS_2_BASE_ADDR_LOW   ^I^I^I    0x110$

ERROR: code indent should never use tabs
#1539: FILE: hw/pci-host/mv643xx.h:521:
+#define MV64340_PCI_SCS_2_BASE_ADDR_HIGH^I^I^I    0x114$

ERROR: code indent should never use tabs
#1540: FILE: hw/pci-host/mv643xx.h:522:
+#define MV64340_PCI_SCS_3_BASE_ADDR_LOW ^I^I^I    0x118$

ERROR: code indent should never use tabs
#1541: FILE: hw/pci-host/mv643xx.h:523:
+#define MV64340_PCI_SCS_3_BASE_ADDR_HIGH^I^I^I    0x11c$

ERROR: code indent should never use tabs
#1542: FILE: hw/pci-host/mv643xx.h:524:
+#define MV64340_PCI_INTERNAL_SRAM_BASE_ADDR_LOW          ^I    0x120$

ERROR: code indent should never use tabs
#1543: FILE: hw/pci-host/mv643xx.h:525:
+#define MV64340_PCI_INTERNAL_SRAM_BASE_ADDR_HIGH         ^I    0x124$

ERROR: code indent should never use tabs
#1549: FILE: hw/pci-host/mv643xx.h:531:
+#define MV64340_PCI_DEVCS_0_BASE_ADDR_LOW^I    ^I^I    0x210$

ERROR: code indent should never use tabs
#1550: FILE: hw/pci-host/mv643xx.h:532:
+#define MV64340_PCI_DEVCS_0_BASE_ADDR_HIGH ^I^I^I    0x214$

ERROR: code indent should never use tabs
#1551: FILE: hw/pci-host/mv643xx.h:533:
+#define MV64340_PCI_DEVCS_1_BASE_ADDR_LOW ^I^I^I    0x218$

ERROR: code indent should never use tabs
#1552: FILE: hw/pci-host/mv643xx.h:534:
+#define MV64340_PCI_DEVCS_1_BASE_ADDR_HIGH      ^I^I    0x21c$

ERROR: code indent should never use tabs
#1553: FILE: hw/pci-host/mv643xx.h:535:
+#define MV64340_PCI_DEVCS_2_BASE_ADDR_LOW ^I^I^I    0x220$

ERROR: code indent should never use tabs
#1554: FILE: hw/pci-host/mv643xx.h:536:
+#define MV64340_PCI_DEVCS_2_BASE_ADDR_HIGH      ^I^I    0x224$

ERROR: code indent should never use tabs
#1560: FILE: hw/pci-host/mv643xx.h:542:
+#define MV64340_PCI_DEVCS_3_BASE_ADDR_LOW^I    ^I^I    0x310$

ERROR: code indent should never use tabs
#1561: FILE: hw/pci-host/mv643xx.h:543:
+#define MV64340_PCI_DEVCS_3_BASE_ADDR_HIGH ^I^I^I    0x314$

ERROR: code indent should never use tabs
#1562: FILE: hw/pci-host/mv643xx.h:544:
+#define MV64340_PCI_BOOT_CS_BASE_ADDR_LOW^I^I^I    0x318$

ERROR: code indent should never use tabs
#1563: FILE: hw/pci-host/mv643xx.h:545:
+#define MV64340_PCI_BOOT_CS_BASE_ADDR_HIGH      ^I^I    0x31c$

ERROR: code indent should never use tabs
#1564: FILE: hw/pci-host/mv643xx.h:546:
+#define MV64340_PCI_CPU_BASE_ADDR_LOW ^I^I^I^I    0x220$

ERROR: code indent should never use tabs
#1565: FILE: hw/pci-host/mv643xx.h:547:
+#define MV64340_PCI_CPU_BASE_ADDR_HIGH      ^I^I^I    0x224$

ERROR: code indent should never use tabs
#1571: FILE: hw/pci-host/mv643xx.h:553:
+#define MV64340_PCI_P2P_MEM0_BASE_ADDR_LOW  ^I^I^I    0x410$

ERROR: code indent should never use tabs
#1572: FILE: hw/pci-host/mv643xx.h:554:
+#define MV64340_PCI_P2P_MEM0_BASE_ADDR_HIGH ^I^I^I    0x414$

ERROR: code indent should never use tabs
#1573: FILE: hw/pci-host/mv643xx.h:555:
+#define MV64340_PCI_P2P_MEM1_BASE_ADDR_LOW   ^I^I^I    0x418$

ERROR: code indent should never use tabs
#1574: FILE: hw/pci-host/mv643xx.h:556:
+#define MV64340_PCI_P2P_MEM1_BASE_ADDR_HIGH ^I^I^I    0x41c$

ERROR: code indent should never use tabs
#1575: FILE: hw/pci-host/mv643xx.h:557:
+#define MV64340_PCI_P2P_I_O_BASE_ADDR                 ^I            0x420$

ERROR: code indent should never use tabs
#1579: FILE: hw/pci-host/mv643xx.h:561:
+/* Messaging Unit Registers (I20)   ^I*/$

ERROR: code indent should never use tabs
#1582: FILE: hw/pci-host/mv643xx.h:564:
+#define MV64340_I2O_INBOUND_MESSAGE_REG0_PCI_0_SIDE^I^I    0x010$

ERROR: code indent should never use tabs
#1583: FILE: hw/pci-host/mv643xx.h:565:
+#define MV64340_I2O_INBOUND_MESSAGE_REG1_PCI_0_SIDE  ^I^I    0x014$

ERROR: code indent should never use tabs
#1584: FILE: hw/pci-host/mv643xx.h:566:
+#define MV64340_I2O_OUTBOUND_MESSAGE_REG0_PCI_0_SIDE ^I^I    0x018$

ERROR: code indent should never use tabs
#1585: FILE: hw/pci-host/mv643xx.h:567:
+#define MV64340_I2O_OUTBOUND_MESSAGE_REG1_PCI_0_SIDE  ^I^I    0x01C$

ERROR: code indent should never use tabs
#1586: FILE: hw/pci-host/mv643xx.h:568:
+#define MV64340_I2O_INBOUND_DOORBELL_REG_PCI_0_SIDE  ^I^I    0x020$

ERROR: code indent should never use tabs
#1588: FILE: hw/pci-host/mv643xx.h:570:
+#define MV64340_I2O_INBOUND_INTERRUPT_MASK_REG_PCI_0_SIDE^I    0x028$

ERROR: code indent should never use tabs
#1589: FILE: hw/pci-host/mv643xx.h:571:
+#define MV64340_I2O_OUTBOUND_DOORBELL_REG_PCI_0_SIDE ^I^I    0x02C$

ERROR: code indent should never use tabs
#1594: FILE: hw/pci-host/mv643xx.h:576:
+#define MV64340_I2O_QUEUE_CONTROL_REG_PCI_0_SIDE ^I^I    0x050$

ERROR: code indent should never use tabs
#1595: FILE: hw/pci-host/mv643xx.h:577:
+#define MV64340_I2O_QUEUE_BASE_ADDR_REG_PCI_0_SIDE ^I^I    0x054$

ERROR: code indent should never use tabs
#1605: FILE: hw/pci-host/mv643xx.h:587:
+#define MV64340_I2O_INBOUND_MESSAGE_REG0_PCI_1_SIDE^I^I    0x090$

ERROR: code indent should never use tabs
#1606: FILE: hw/pci-host/mv643xx.h:588:
+#define MV64340_I2O_INBOUND_MESSAGE_REG1_PCI_1_SIDE  ^I^I    0x094$

ERROR: code indent should never use tabs
#1607: FILE: hw/pci-host/mv643xx.h:589:
+#define MV64340_I2O_OUTBOUND_MESSAGE_REG0_PCI_1_SIDE ^I^I    0x098$

ERROR: code indent should never use tabs
#1608: FILE: hw/pci-host/mv643xx.h:590:
+#define MV64340_I2O_OUTBOUND_MESSAGE_REG1_PCI_1_SIDE  ^I^I    0x09C$

ERROR: code indent should never use tabs
#1609: FILE: hw/pci-host/mv643xx.h:591:
+#define MV64340_I2O_INBOUND_DOORBELL_REG_PCI_1_SIDE  ^I^I    0x0A0$

ERROR: code indent should never use tabs
#1611: FILE: hw/pci-host/mv643xx.h:593:
+#define MV64340_I2O_INBOUND_INTERRUPT_MASK_REG_PCI_1_SIDE^I    0x0A8$

ERROR: code indent should never use tabs
#1612: FILE: hw/pci-host/mv643xx.h:594:
+#define MV64340_I2O_OUTBOUND_DOORBELL_REG_PCI_1_SIDE ^I^I    0x0AC$

ERROR: code indent should never use tabs
#1617: FILE: hw/pci-host/mv643xx.h:599:
+#define MV64340_I2O_QUEUE_CONTROL_REG_PCI_1_SIDE ^I^I    0x0D0$

ERROR: code indent should never use tabs
#1618: FILE: hw/pci-host/mv643xx.h:600:
+#define MV64340_I2O_QUEUE_BASE_ADDR_REG_PCI_1_SIDE ^I^I    0x0D4$

ERROR: code indent should never use tabs
#1628: FILE: hw/pci-host/mv643xx.h:610:
+#define MV64340_I2O_INBOUND_MESSAGE_REG0_CPU0_SIDE^I^I    0x1C10$

ERROR: code indent should never use tabs
#1629: FILE: hw/pci-host/mv643xx.h:611:
+#define MV64340_I2O_INBOUND_MESSAGE_REG1_CPU0_SIDE  ^I^I    0x1C14$

ERROR: code indent should never use tabs
#1630: FILE: hw/pci-host/mv643xx.h:612:
+#define MV64340_I2O_OUTBOUND_MESSAGE_REG0_CPU0_SIDE ^I^I    0x1C18$

ERROR: code indent should never use tabs
#1631: FILE: hw/pci-host/mv643xx.h:613:
+#define MV64340_I2O_OUTBOUND_MESSAGE_REG1_CPU0_SIDE  ^I^I    0x1C1C$

ERROR: code indent should never use tabs
#1632: FILE: hw/pci-host/mv643xx.h:614:
+#define MV64340_I2O_INBOUND_DOORBELL_REG_CPU0_SIDE  ^I^I    0x1C20$

ERROR: code indent should never use tabs
#1633: FILE: hw/pci-host/mv643xx.h:615:
+#define MV64340_I2O_INBOUND_INTERRUPT_CAUSE_REG_CPU0_SIDE  ^I    0x1C24$

ERROR: code indent should never use tabs
#1634: FILE: hw/pci-host/mv643xx.h:616:
+#define MV64340_I2O_INBOUND_INTERRUPT_MASK_REG_CPU0_SIDE^I    0x1C28$

ERROR: code indent should never use tabs
#1635: FILE: hw/pci-host/mv643xx.h:617:
+#define MV64340_I2O_OUTBOUND_DOORBELL_REG_CPU0_SIDE ^I^I    0x1C2C$

ERROR: code indent should never use tabs
#1640: FILE: hw/pci-host/mv643xx.h:622:
+#define MV64340_I2O_QUEUE_CONTROL_REG_CPU0_SIDE ^I^I    0x1C50$

ERROR: code indent should never use tabs
#1641: FILE: hw/pci-host/mv643xx.h:623:
+#define MV64340_I2O_QUEUE_BASE_ADDR_REG_CPU0_SIDE ^I^I    0x1C54$

ERROR: code indent should never use tabs
#1650: FILE: hw/pci-host/mv643xx.h:632:
+#define MV64340_I2O_INBOUND_MESSAGE_REG0_CPU1_SIDE^I^I    0x1C90$

ERROR: code indent should never use tabs
#1651: FILE: hw/pci-host/mv643xx.h:633:
+#define MV64340_I2O_INBOUND_MESSAGE_REG1_CPU1_SIDE  ^I^I    0x1C94$

ERROR: code indent should never use tabs
#1652: FILE: hw/pci-host/mv643xx.h:634:
+#define MV64340_I2O_OUTBOUND_MESSAGE_REG0_CPU1_SIDE ^I^I    0x1C98$

ERROR: code indent should never use tabs
#1653: FILE: hw/pci-host/mv643xx.h:635:
+#define MV64340_I2O_OUTBOUND_MESSAGE_REG1_CPU1_SIDE  ^I^I    0x1C9C$

ERROR: code indent should never use tabs
#1654: FILE: hw/pci-host/mv643xx.h:636:
+#define MV64340_I2O_INBOUND_DOORBELL_REG_CPU1_SIDE  ^I^I    0x1CA0$

ERROR: code indent should never use tabs
#1655: FILE: hw/pci-host/mv643xx.h:637:
+#define MV64340_I2O_INBOUND_INTERRUPT_CAUSE_REG_CPU1_SIDE  ^I    0x1CA4$

ERROR: code indent should never use tabs
#1656: FILE: hw/pci-host/mv643xx.h:638:
+#define MV64340_I2O_INBOUND_INTERRUPT_MASK_REG_CPU1_SIDE^I    0x1CA8$

ERROR: code indent should never use tabs
#1657: FILE: hw/pci-host/mv643xx.h:639:
+#define MV64340_I2O_OUTBOUND_DOORBELL_REG_CPU1_SIDE ^I^I    0x1CAC$

ERROR: code indent should never use tabs
#1662: FILE: hw/pci-host/mv643xx.h:644:
+#define MV64340_I2O_QUEUE_CONTROL_REG_CPU1_SIDE ^I^I    0x1CD0$

ERROR: code indent should never use tabs
#1663: FILE: hw/pci-host/mv643xx.h:645:
+#define MV64340_I2O_QUEUE_BASE_ADDR_REG_CPU1_SIDE ^I^I    0x1CD4$

ERROR: code indent should never use tabs
#1674: FILE: hw/pci-host/mv643xx.h:656:
+/*        Ethernet Unit Registers  ^I^I*/$

WARNING: line over 80 characters
#1724: FILE: hw/pci-host/mv643xx.h:706:
+#define MV64340_MPSC_CAUSE_REG(port)                               (0xb804 + (port<<3))

ERROR: spaces required around that '<<' (ctx:VxV)
#1724: FILE: hw/pci-host/mv643xx.h:706:
+#define MV64340_MPSC_CAUSE_REG(port)                               (0xb804 + (port<<3))
                                                                                   ^

WARNING: line over 80 characters
#1725: FILE: hw/pci-host/mv643xx.h:707:
+#define MV64340_MPSC_MASK_REG(port)                                (0xb884 + (port<<3))

ERROR: spaces required around that '<<' (ctx:VxV)
#1725: FILE: hw/pci-host/mv643xx.h:707:
+#define MV64340_MPSC_MASK_REG(port)                                (0xb884 + (port<<3))
                                                                                   ^

WARNING: line over 80 characters
#1727: FILE: hw/pci-host/mv643xx.h:709:
+#define MV64340_MPSC_MAIN_CONFIG_LOW(port)                         (0x8000 + (port<<12))

ERROR: spaces required around that '<<' (ctx:VxV)
#1727: FILE: hw/pci-host/mv643xx.h:709:
+#define MV64340_MPSC_MAIN_CONFIG_LOW(port)                         (0x8000 + (port<<12))
                                                                                   ^

WARNING: line over 80 characters
#1728: FILE: hw/pci-host/mv643xx.h:710:
+#define MV64340_MPSC_MAIN_CONFIG_HIGH(port)                        (0x8004 + (port<<12))

ERROR: spaces required around that '<<' (ctx:VxV)
#1728: FILE: hw/pci-host/mv643xx.h:710:
+#define MV64340_MPSC_MAIN_CONFIG_HIGH(port)                        (0x8004 + (port<<12))
                                                                                   ^

WARNING: line over 80 characters
#1729: FILE: hw/pci-host/mv643xx.h:711:
+#define MV64340_MPSC_PROTOCOL_CONFIG(port)                         (0x8008 + (port<<12))

ERROR: spaces required around that '<<' (ctx:VxV)
#1729: FILE: hw/pci-host/mv643xx.h:711:
+#define MV64340_MPSC_PROTOCOL_CONFIG(port)                         (0x8008 + (port<<12))
                                                                                   ^

WARNING: line over 80 characters
#1730: FILE: hw/pci-host/mv643xx.h:712:
+#define MV64340_MPSC_CHANNEL_REG1(port)                            (0x800c + (port<<12))

ERROR: spaces required around that '<<' (ctx:VxV)
#1730: FILE: hw/pci-host/mv643xx.h:712:
+#define MV64340_MPSC_CHANNEL_REG1(port)                            (0x800c + (port<<12))
                                                                                   ^

WARNING: line over 80 characters
#1731: FILE: hw/pci-host/mv643xx.h:713:
+#define MV64340_MPSC_CHANNEL_REG2(port)                            (0x8010 + (port<<12))

ERROR: spaces required around that '<<' (ctx:VxV)
#1731: FILE: hw/pci-host/mv643xx.h:713:
+#define MV64340_MPSC_CHANNEL_REG2(port)                            (0x8010 + (port<<12))
                                                                                   ^

WARNING: line over 80 characters
#1732: FILE: hw/pci-host/mv643xx.h:714:
+#define MV64340_MPSC_CHANNEL_REG3(port)                            (0x8014 + (port<<12))

ERROR: spaces required around that '<<' (ctx:VxV)
#1732: FILE: hw/pci-host/mv643xx.h:714:
+#define MV64340_MPSC_CHANNEL_REG3(port)                            (0x8014 + (port<<12))
                                                                                   ^

WARNING: line over 80 characters
#1733: FILE: hw/pci-host/mv643xx.h:715:
+#define MV64340_MPSC_CHANNEL_REG4(port)                            (0x8018 + (port<<12))

ERROR: spaces required around that '<<' (ctx:VxV)
#1733: FILE: hw/pci-host/mv643xx.h:715:
+#define MV64340_MPSC_CHANNEL_REG4(port)                            (0x8018 + (port<<12))
                                                                                   ^

WARNING: line over 80 characters
#1734: FILE: hw/pci-host/mv643xx.h:716:
+#define MV64340_MPSC_CHANNEL_REG5(port)                            (0x801c + (port<<12))

ERROR: spaces required around that '<<' (ctx:VxV)
#1734: FILE: hw/pci-host/mv643xx.h:716:
+#define MV64340_MPSC_CHANNEL_REG5(port)                            (0x801c + (port<<12))
                                                                                   ^

WARNING: line over 80 characters
#1735: FILE: hw/pci-host/mv643xx.h:717:
+#define MV64340_MPSC_CHANNEL_REG6(port)                            (0x8020 + (port<<12))

ERROR: spaces required around that '<<' (ctx:VxV)
#1735: FILE: hw/pci-host/mv643xx.h:717:
+#define MV64340_MPSC_CHANNEL_REG6(port)                            (0x8020 + (port<<12))
                                                                                   ^

WARNING: line over 80 characters
#1736: FILE: hw/pci-host/mv643xx.h:718:
+#define MV64340_MPSC_CHANNEL_REG7(port)                            (0x8024 + (port<<12))

ERROR: spaces required around that '<<' (ctx:VxV)
#1736: FILE: hw/pci-host/mv643xx.h:718:
+#define MV64340_MPSC_CHANNEL_REG7(port)                            (0x8024 + (port<<12))
                                                                                   ^

WARNING: line over 80 characters
#1737: FILE: hw/pci-host/mv643xx.h:719:
+#define MV64340_MPSC_CHANNEL_REG8(port)                            (0x8028 + (port<<12))

ERROR: spaces required around that '<<' (ctx:VxV)
#1737: FILE: hw/pci-host/mv643xx.h:719:
+#define MV64340_MPSC_CHANNEL_REG8(port)                            (0x8028 + (port<<12))
                                                                                   ^

WARNING: line over 80 characters
#1738: FILE: hw/pci-host/mv643xx.h:720:
+#define MV64340_MPSC_CHANNEL_REG9(port)                            (0x802c + (port<<12))

ERROR: spaces required around that '<<' (ctx:VxV)
#1738: FILE: hw/pci-host/mv643xx.h:720:
+#define MV64340_MPSC_CHANNEL_REG9(port)                            (0x802c + (port<<12))
                                                                                   ^

WARNING: line over 80 characters
#1739: FILE: hw/pci-host/mv643xx.h:721:
+#define MV64340_MPSC_CHANNEL_REG10(port)                           (0x8030 + (port<<12))

ERROR: spaces required around that '<<' (ctx:VxV)
#1739: FILE: hw/pci-host/mv643xx.h:721:
+#define MV64340_MPSC_CHANNEL_REG10(port)                           (0x8030 + (port<<12))
                                                                                   ^

WARNING: line over 80 characters
#1748: FILE: hw/pci-host/mv643xx.h:730:
+#define MV64340_SDMA_CONFIG_REG(channel)                        (0x4000 + (channel<<13))

ERROR: spaces required around that '<<' (ctx:VxV)
#1748: FILE: hw/pci-host/mv643xx.h:730:
+#define MV64340_SDMA_CONFIG_REG(channel)                        (0x4000 + (channel<<13))
                                                                                   ^

WARNING: line over 80 characters
#1749: FILE: hw/pci-host/mv643xx.h:731:
+#define MV64340_SDMA_COMMAND_REG(channel)                       (0x4008 + (channel<<13))

ERROR: spaces required around that '<<' (ctx:VxV)
#1749: FILE: hw/pci-host/mv643xx.h:731:
+#define MV64340_SDMA_COMMAND_REG(channel)                       (0x4008 + (channel<<13))
                                                                                   ^

WARNING: line over 80 characters
#1750: FILE: hw/pci-host/mv643xx.h:732:
+#define MV64340_SDMA_CURRENT_RX_DESCRIPTOR_POINTER(channel)     (0x4810 + (channel<<13))

ERROR: spaces required around that '<<' (ctx:VxV)
#1750: FILE: hw/pci-host/mv643xx.h:732:
+#define MV64340_SDMA_CURRENT_RX_DESCRIPTOR_POINTER(channel)     (0x4810 + (channel<<13))
                                                                                   ^

WARNING: line over 80 characters
#1751: FILE: hw/pci-host/mv643xx.h:733:
+#define MV64340_SDMA_CURRENT_TX_DESCRIPTOR_POINTER(channel)     (0x4c10 + (channel<<13))

ERROR: spaces required around that '<<' (ctx:VxV)
#1751: FILE: hw/pci-host/mv643xx.h:733:
+#define MV64340_SDMA_CURRENT_TX_DESCRIPTOR_POINTER(channel)     (0x4c10 + (channel<<13))
                                                                                   ^

WARNING: line over 80 characters
#1752: FILE: hw/pci-host/mv643xx.h:734:
+#define MV64340_SDMA_FIRST_TX_DESCRIPTOR_POINTER(channel)       (0x4c14 + (channel<<13))

ERROR: spaces required around that '<<' (ctx:VxV)
#1752: FILE: hw/pci-host/mv643xx.h:734:
+#define MV64340_SDMA_FIRST_TX_DESCRIPTOR_POINTER(channel)       (0x4c14 + (channel<<13))
                                                                                   ^

WARNING: line over 80 characters
#1759: FILE: hw/pci-host/mv643xx.h:741:
+#define MV64340_BRG_CONFIG_REG(brg)                              (0xb200 + (brg<<3))

ERROR: spaces required around that '<<' (ctx:VxV)
#1759: FILE: hw/pci-host/mv643xx.h:741:
+#define MV64340_BRG_CONFIG_REG(brg)                              (0xb200 + (brg<<3))
                                                                                ^

WARNING: line over 80 characters
#1760: FILE: hw/pci-host/mv643xx.h:742:
+#define MV64340_BRG_BAUDE_TUNING_REG(brg)                        (0xb208 + (brg<<3))

ERROR: spaces required around that '<<' (ctx:VxV)
#1760: FILE: hw/pci-host/mv643xx.h:742:
+#define MV64340_BRG_BAUDE_TUNING_REG(brg)                        (0xb208 + (brg<<3))
                                                                                ^

ERROR: code indent should never use tabs
#1765: FILE: hw/pci-host/mv643xx.h:747:
+/* DMA Channel Control^I^I^I*/$

ERROR: code indent should never use tabs
#1768: FILE: hw/pci-host/mv643xx.h:750:
+#define MV64340_DMA_CHANNEL0_CONTROL ^I^I^I^I    0x840$

ERROR: code indent should never use tabs
#1769: FILE: hw/pci-host/mv643xx.h:751:
+#define MV64340_DMA_CHANNEL0_CONTROL_HIGH^I^I^I    0x880$

ERROR: code indent should never use tabs
#1770: FILE: hw/pci-host/mv643xx.h:752:
+#define MV64340_DMA_CHANNEL1_CONTROL ^I^I^I^I    0x844$

ERROR: code indent should never use tabs
#1771: FILE: hw/pci-host/mv643xx.h:753:
+#define MV64340_DMA_CHANNEL1_CONTROL_HIGH^I^I^I    0x884$

ERROR: code indent should never use tabs
#1772: FILE: hw/pci-host/mv643xx.h:754:
+#define MV64340_DMA_CHANNEL2_CONTROL ^I^I^I^I    0x848$

ERROR: code indent should never use tabs
#1773: FILE: hw/pci-host/mv643xx.h:755:
+#define MV64340_DMA_CHANNEL2_CONTROL_HIGH^I^I^I    0x888$

ERROR: code indent should never use tabs
#1774: FILE: hw/pci-host/mv643xx.h:756:
+#define MV64340_DMA_CHANNEL3_CONTROL ^I^I^I^I    0x84C$

ERROR: code indent should never use tabs
#1775: FILE: hw/pci-host/mv643xx.h:757:
+#define MV64340_DMA_CHANNEL3_CONTROL_HIGH^I^I^I    0x88C$

WARNING: Block comments use a leading /* on a separate line
#1825: FILE: hw/pci-host/mv643xx.h:807:
+ /* IDMA Address Decoding High Address Remap and Access

WARNING: Block comments use * on subsequent lines
#1826: FILE: hw/pci-host/mv643xx.h:808:
+ /* IDMA Address Decoding High Address Remap and Access
+                  Protection Registers                    */

WARNING: Block comments use a trailing */ on a separate line
#1826: FILE: hw/pci-host/mv643xx.h:808:
+                  Protection Registers                    */

ERROR: code indent should never use tabs
#1859: FILE: hw/pci-host/mv643xx.h:841:
+/* Timer_Counter ^I^I^I*/$

ERROR: code indent should never use tabs
#1862: FILE: hw/pci-host/mv643xx.h:844:
+#define MV64340_TIMER_COUNTER0^I^I^I^I^I    0x850$

ERROR: code indent should never use tabs
#1863: FILE: hw/pci-host/mv643xx.h:845:
+#define MV64340_TIMER_COUNTER1^I^I^I^I^I    0x854$

ERROR: code indent should never use tabs
#1864: FILE: hw/pci-host/mv643xx.h:846:
+#define MV64340_TIMER_COUNTER2^I^I^I^I^I    0x858$

ERROR: code indent should never use tabs
#1865: FILE: hw/pci-host/mv643xx.h:847:
+#define MV64340_TIMER_COUNTER3^I^I^I^I^I    0x85C$

ERROR: code indent should never use tabs
#1866: FILE: hw/pci-host/mv643xx.h:848:
+#define MV64340_TIMER_COUNTER_0_3_CONTROL^I^I^I    0x864$

ERROR: code indent should never use tabs
#1867: FILE: hw/pci-host/mv643xx.h:849:
+#define MV64340_TIMER_COUNTER_0_3_INTERRUPT_CAUSE^I^I    0x868$

ERROR: code indent should never use tabs
#1868: FILE: hw/pci-host/mv643xx.h:850:
+#define MV64340_TIMER_COUNTER_0_3_INTERRUPT_MASK      ^I^I    0x86c$

ERROR: code indent should never use tabs
#1871: FILE: hw/pci-host/mv643xx.h:853:
+/*         Watchdog registers  ^I        */$

ERROR: code indent should never use tabs
#1902: FILE: hw/pci-host/mv643xx.h:884:
+/* Interrupts^I  ^I^I^I*/$

total: 170 errors, 31 warnings, 1911 lines checked

Patch 1/2 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

2/2 Checking commit 2d344106c413 (hw/ppc: Add emulation of Genesi/bPlan Pegasos II)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#65: 
new file mode 100644

total: 0 errors, 1 warnings, 174 lines checked

Patch 2/2 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/cover.1609973005.git.balaton@eik.bme.hu/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
Re: [RFC PATCH 0/2] Pegasos2 emulation
Posted by no-reply@patchew.org 3 years, 4 months ago
Patchew URL: https://patchew.org/QEMU/cover.1609973005.git.balaton@eik.bme.hu/



Hi,

This series seems to have some coding style problems. See output below for
more information:

Type: series
Message-id: cover.1609973005.git.balaton@eik.bme.hu
Subject: [RFC PATCH 0/2] Pegasos2 emulation

=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
 - [tag update]      patchew/cover.1609973005.git.balaton@eik.bme.hu -> patchew/cover.1609973005.git.balaton@eik.bme.hu
Switched to a new branch 'test'
3d24553 hw/ppc: Add emulation of Genesi/bPlan Pegasos II
ac7efd0 hw/pci-host: Add emulation of Marvell MV64361 PPC system controller

=== OUTPUT BEGIN ===
1/2 Checking commit ac7efd0619df (hw/pci-host: Add emulation of Marvell MV64361 PPC system controller)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#43: 
new file mode 100644

WARNING: line over 80 characters
#299: FILE: hw/pci-host/mv64361.c:252:
+            trace_mv64361_region_enable(!(val & mask) ? "enable" : "disable", i);

ERROR: code indent should never use tabs
#1024: FILE: hw/pci-host/mv643xx.h:5:
+ * ^IAuthor: Matthew Dharm <mdharm@momenco.com>$

WARNING: architecture specific defines should be avoided
#1032: FILE: hw/pci-host/mv643xx.h:13:
+#ifndef __ASM_MV643XX_H

WARNING: Block comments use a leading /* on a separate line
#1094: FILE: hw/pci-host/mv643xx.h:75:
+/* Enables the CS , DEV_CS , PCI 0 and PCI 1

WARNING: Block comments use * on subsequent lines
#1095: FILE: hw/pci-host/mv643xx.h:76:
+/* Enables the CS , DEV_CS , PCI 0 and PCI 1
+   windows above */

WARNING: Block comments use a trailing */ on a separate line
#1095: FILE: hw/pci-host/mv643xx.h:76:
+   windows above */

ERROR: code indent should never use tabs
#1198: FILE: hw/pci-host/mv643xx.h:179:
+/*      CPU Interface Debug Registers ^I*/$

ERROR: code indent should never use tabs
#1275: FILE: hw/pci-host/mv643xx.h:256:
+/* Device Parameters^I^I^I*/$

ERROR: code indent should never use tabs
#1278: FILE: hw/pci-host/mv643xx.h:259:
+#define MV64340_DEVICE_BANK0_PARAMETERS^I^I^I^I    0x45c$

ERROR: code indent should never use tabs
#1279: FILE: hw/pci-host/mv643xx.h:260:
+#define MV64340_DEVICE_BANK1_PARAMETERS^I^I^I^I    0x460$

ERROR: code indent should never use tabs
#1280: FILE: hw/pci-host/mv643xx.h:261:
+#define MV64340_DEVICE_BANK2_PARAMETERS^I^I^I^I    0x464$

ERROR: code indent should never use tabs
#1281: FILE: hw/pci-host/mv643xx.h:262:
+#define MV64340_DEVICE_BANK3_PARAMETERS^I^I^I^I    0x468$

ERROR: code indent should never use tabs
#1282: FILE: hw/pci-host/mv643xx.h:263:
+#define MV64340_DEVICE_BOOT_BANK_PARAMETERS^I^I^I    0x46c$

ERROR: code indent should never use tabs
#1289: FILE: hw/pci-host/mv643xx.h:270:
+/* Device interrupt registers^I^I*/$

ERROR: code indent should never use tabs
#1292: FILE: hw/pci-host/mv643xx.h:273:
+#define MV64340_DEVICE_INTERRUPT_CAUSE^I^I^I^I    0x4d0$

ERROR: code indent should never use tabs
#1293: FILE: hw/pci-host/mv643xx.h:274:
+#define MV64340_DEVICE_INTERRUPT_MASK^I^I^I^I    0x4d4$

ERROR: code indent should never use tabs
#1294: FILE: hw/pci-host/mv643xx.h:275:
+#define MV64340_DEVICE_ERROR_ADDR^I^I^I^I    0x4d8$

ERROR: code indent should never use tabs
#1295: FILE: hw/pci-host/mv643xx.h:276:
+#define MV64340_DEVICE_ERROR_DATA   ^I^I^I^I    0x4dc$

ERROR: code indent should never use tabs
#1296: FILE: hw/pci-host/mv643xx.h:277:
+#define MV64340_DEVICE_ERROR_PARITY     ^I^I^I    0x4e0$

ERROR: code indent should never use tabs
#1299: FILE: hw/pci-host/mv643xx.h:280:
+/* Device debug registers   ^I^I*/$

ERROR: code indent should never use tabs
#1302: FILE: hw/pci-host/mv643xx.h:283:
+#define MV64340_DEVICE_DEBUG_LOW     ^I^I^I^I    0x4e4$

ERROR: code indent should never use tabs
#1303: FILE: hw/pci-host/mv643xx.h:284:
+#define MV64340_DEVICE_DEBUG_HIGH     ^I^I^I^I    0x4e8$

ERROR: code indent should never use tabs
#1342: FILE: hw/pci-host/mv643xx.h:323:
+#define MV64340_PCI_0_CS_0_BASE_ADDR_REMAP^I^I^I    0xc48$

ERROR: code indent should never use tabs
#1343: FILE: hw/pci-host/mv643xx.h:324:
+#define MV64340_PCI_1_CS_0_BASE_ADDR_REMAP^I^I^I    0xcc8$

ERROR: code indent should never use tabs
#1344: FILE: hw/pci-host/mv643xx.h:325:
+#define MV64340_PCI_0_CS_1_BASE_ADDR_REMAP^I^I^I    0xd48$

ERROR: code indent should never use tabs
#1345: FILE: hw/pci-host/mv643xx.h:326:
+#define MV64340_PCI_1_CS_1_BASE_ADDR_REMAP^I^I^I    0xdc8$

ERROR: code indent should never use tabs
#1346: FILE: hw/pci-host/mv643xx.h:327:
+#define MV64340_PCI_0_CS_2_BASE_ADDR_REMAP^I^I^I    0xc4c$

ERROR: code indent should never use tabs
#1347: FILE: hw/pci-host/mv643xx.h:328:
+#define MV64340_PCI_1_CS_2_BASE_ADDR_REMAP^I^I^I    0xccc$

ERROR: code indent should never use tabs
#1348: FILE: hw/pci-host/mv643xx.h:329:
+#define MV64340_PCI_0_CS_3_BASE_ADDR_REMAP^I^I^I    0xd4c$

ERROR: code indent should never use tabs
#1349: FILE: hw/pci-host/mv643xx.h:330:
+#define MV64340_PCI_1_CS_3_BASE_ADDR_REMAP^I^I^I    0xdcc$

ERROR: code indent should never use tabs
#1350: FILE: hw/pci-host/mv643xx.h:331:
+#define MV64340_PCI_0_CS_0_BASE_HIGH_ADDR_REMAP^I^I^I    0xF04$

ERROR: code indent should never use tabs
#1351: FILE: hw/pci-host/mv643xx.h:332:
+#define MV64340_PCI_1_CS_0_BASE_HIGH_ADDR_REMAP^I^I^I    0xF84$

ERROR: code indent should never use tabs
#1352: FILE: hw/pci-host/mv643xx.h:333:
+#define MV64340_PCI_0_CS_1_BASE_HIGH_ADDR_REMAP^I^I^I    0xF08$

ERROR: code indent should never use tabs
#1353: FILE: hw/pci-host/mv643xx.h:334:
+#define MV64340_PCI_1_CS_1_BASE_HIGH_ADDR_REMAP^I^I^I    0xF88$

ERROR: code indent should never use tabs
#1354: FILE: hw/pci-host/mv643xx.h:335:
+#define MV64340_PCI_0_CS_2_BASE_HIGH_ADDR_REMAP^I^I^I    0xF0C$

ERROR: code indent should never use tabs
#1355: FILE: hw/pci-host/mv643xx.h:336:
+#define MV64340_PCI_1_CS_2_BASE_HIGH_ADDR_REMAP^I^I^I    0xF8C$

ERROR: code indent should never use tabs
#1356: FILE: hw/pci-host/mv643xx.h:337:
+#define MV64340_PCI_0_CS_3_BASE_HIGH_ADDR_REMAP^I^I^I    0xF10$

ERROR: code indent should never use tabs
#1357: FILE: hw/pci-host/mv643xx.h:338:
+#define MV64340_PCI_1_CS_3_BASE_HIGH_ADDR_REMAP^I^I^I    0xF90$

ERROR: code indent should never use tabs
#1358: FILE: hw/pci-host/mv643xx.h:339:
+#define MV64340_PCI_0_DEVCS_0_BASE_ADDR_REMAP^I^I^I    0xc50$

ERROR: code indent should never use tabs
#1359: FILE: hw/pci-host/mv643xx.h:340:
+#define MV64340_PCI_1_DEVCS_0_BASE_ADDR_REMAP^I^I^I    0xcd0$

ERROR: code indent should never use tabs
#1360: FILE: hw/pci-host/mv643xx.h:341:
+#define MV64340_PCI_0_DEVCS_1_BASE_ADDR_REMAP^I^I^I    0xd50$

ERROR: code indent should never use tabs
#1361: FILE: hw/pci-host/mv643xx.h:342:
+#define MV64340_PCI_1_DEVCS_1_BASE_ADDR_REMAP^I^I^I    0xdd0$

ERROR: code indent should never use tabs
#1362: FILE: hw/pci-host/mv643xx.h:343:
+#define MV64340_PCI_0_DEVCS_2_BASE_ADDR_REMAP^I^I^I    0xd58$

ERROR: code indent should never use tabs
#1363: FILE: hw/pci-host/mv643xx.h:344:
+#define MV64340_PCI_1_DEVCS_2_BASE_ADDR_REMAP^I^I^I    0xdd8$

ERROR: code indent should never use tabs
#1364: FILE: hw/pci-host/mv643xx.h:345:
+#define MV64340_PCI_0_DEVCS_3_BASE_ADDR_REMAP           ^I    0xc54$

ERROR: code indent should never use tabs
#1365: FILE: hw/pci-host/mv643xx.h:346:
+#define MV64340_PCI_1_DEVCS_3_BASE_ADDR_REMAP           ^I    0xcd4$

ERROR: code indent should never use tabs
#1366: FILE: hw/pci-host/mv643xx.h:347:
+#define MV64340_PCI_0_DEVCS_BOOTCS_BASE_ADDR_REMAP      ^I    0xd54$

ERROR: code indent should never use tabs
#1367: FILE: hw/pci-host/mv643xx.h:348:
+#define MV64340_PCI_1_DEVCS_BOOTCS_BASE_ADDR_REMAP      ^I    0xdd4$

ERROR: code indent should never use tabs
#1403: FILE: hw/pci-host/mv643xx.h:384:
+#define MV64340_PCI_0_COMMAND^I^I^I         ^I    0xc00$

ERROR: code indent should never use tabs
#1404: FILE: hw/pci-host/mv643xx.h:385:
+#define MV64340_PCI_1_COMMAND^I^I^I^I^I    0xc80$

ERROR: code indent should never use tabs
#1407: FILE: hw/pci-host/mv643xx.h:388:
+#define MV64340_PCI_0_RETRY^I        ^I ^I^I    0xc04$

ERROR: code indent should never use tabs
#1408: FILE: hw/pci-host/mv643xx.h:389:
+#define MV64340_PCI_1_RETRY^I^I^I^I            0xc84$

ERROR: code indent should never use tabs
#1470: FILE: hw/pci-host/mv643xx.h:451:
+#define MV64340_PCI_0_CONFIG_ADDR ^I^I^I^I    0xcf8$

ERROR: code indent should never use tabs
#1472: FILE: hw/pci-host/mv643xx.h:453:
+#define MV64340_PCI_1_CONFIG_ADDR ^I^I^I^I    0xc78$

ERROR: code indent should never use tabs
#1474: FILE: hw/pci-host/mv643xx.h:455:
+#define MV64340_PCI_0_INTERRUPT_ACKNOWLEDGE_VIRTUAL_REG^I            0xc34$

ERROR: code indent should never use tabs
#1475: FILE: hw/pci-host/mv643xx.h:456:
+#define MV64340_PCI_1_INTERRUPT_ACKNOWLEDGE_VIRTUAL_REG^I            0xcb4$

ERROR: code indent should never use tabs
#1481: FILE: hw/pci-host/mv643xx.h:462:
+#define MV64340_PCI_0_SERR_MASK^I^I^I^I^I    0xc28$

ERROR: code indent should never use tabs
#1482: FILE: hw/pci-host/mv643xx.h:463:
+#define MV64340_PCI_1_SERR_MASK^I^I^I^I^I    0xca8$

ERROR: code indent should never use tabs
#1507: FILE: hw/pci-host/mv643xx.h:488:
+#define MV64340_PCI_DEVICE_AND_VENDOR_ID ^I^I^I    0x000$

ERROR: code indent should never use tabs
#1508: FILE: hw/pci-host/mv643xx.h:489:
+#define MV64340_PCI_STATUS_AND_COMMAND^I^I^I^I    0x004$

ERROR: code indent should never use tabs
#1509: FILE: hw/pci-host/mv643xx.h:490:
+#define MV64340_PCI_CLASS_CODE_AND_REVISION_ID^I^I^I    0x008$

ERROR: code indent should never use tabs
#1510: FILE: hw/pci-host/mv643xx.h:491:
+#define MV64340_PCI_BIST_HEADER_TYPE_LATENCY_TIMER_CACHE_LINE ^I    0x00C$

ERROR: code indent should never use tabs
#1512: FILE: hw/pci-host/mv643xx.h:493:
+#define MV64340_PCI_SCS_0_BASE_ADDR_LOW   ^I      ^I^I    0x010$

ERROR: code indent should never use tabs
#1513: FILE: hw/pci-host/mv643xx.h:494:
+#define MV64340_PCI_SCS_0_BASE_ADDR_HIGH   ^I^I            0x014$

ERROR: code indent should never use tabs
#1514: FILE: hw/pci-host/mv643xx.h:495:
+#define MV64340_PCI_SCS_1_BASE_ADDR_LOW  ^I     ^I            0x018$

ERROR: code indent should never use tabs
#1515: FILE: hw/pci-host/mv643xx.h:496:
+#define MV64340_PCI_SCS_1_BASE_ADDR_HIGH ^I^I            0x01C$

ERROR: code indent should never use tabs
#1516: FILE: hw/pci-host/mv643xx.h:497:
+#define MV64340_PCI_INTERNAL_REG_MEM_MAPPED_BASE_ADDR_LOW      ^I    0x020$

ERROR: code indent should never use tabs
#1517: FILE: hw/pci-host/mv643xx.h:498:
+#define MV64340_PCI_INTERNAL_REG_MEM_MAPPED_BASE_ADDR_HIGH     ^I    0x024$

ERROR: code indent should never use tabs
#1518: FILE: hw/pci-host/mv643xx.h:499:
+#define MV64340_PCI_SUBSYSTEM_ID_AND_SUBSYSTEM_VENDOR_ID^I    0x02c$

ERROR: code indent should never use tabs
#1519: FILE: hw/pci-host/mv643xx.h:500:
+#define MV64340_PCI_EXPANSION_ROM_BASE_ADDR_REG^I                    0x030$

ERROR: code indent should never use tabs
#1521: FILE: hw/pci-host/mv643xx.h:502:
+#define MV64340_PCI_INTERRUPT_PIN_AND_LINE ^I^I^I    0x03C$

ERROR: code indent should never use tabs
#1539: FILE: hw/pci-host/mv643xx.h:520:
+#define MV64340_PCI_SCS_2_BASE_ADDR_LOW   ^I^I^I    0x110$

ERROR: code indent should never use tabs
#1540: FILE: hw/pci-host/mv643xx.h:521:
+#define MV64340_PCI_SCS_2_BASE_ADDR_HIGH^I^I^I    0x114$

ERROR: code indent should never use tabs
#1541: FILE: hw/pci-host/mv643xx.h:522:
+#define MV64340_PCI_SCS_3_BASE_ADDR_LOW ^I^I^I    0x118$

ERROR: code indent should never use tabs
#1542: FILE: hw/pci-host/mv643xx.h:523:
+#define MV64340_PCI_SCS_3_BASE_ADDR_HIGH^I^I^I    0x11c$

ERROR: code indent should never use tabs
#1543: FILE: hw/pci-host/mv643xx.h:524:
+#define MV64340_PCI_INTERNAL_SRAM_BASE_ADDR_LOW          ^I    0x120$

ERROR: code indent should never use tabs
#1544: FILE: hw/pci-host/mv643xx.h:525:
+#define MV64340_PCI_INTERNAL_SRAM_BASE_ADDR_HIGH         ^I    0x124$

ERROR: code indent should never use tabs
#1550: FILE: hw/pci-host/mv643xx.h:531:
+#define MV64340_PCI_DEVCS_0_BASE_ADDR_LOW^I    ^I^I    0x210$

ERROR: code indent should never use tabs
#1551: FILE: hw/pci-host/mv643xx.h:532:
+#define MV64340_PCI_DEVCS_0_BASE_ADDR_HIGH ^I^I^I    0x214$

ERROR: code indent should never use tabs
#1552: FILE: hw/pci-host/mv643xx.h:533:
+#define MV64340_PCI_DEVCS_1_BASE_ADDR_LOW ^I^I^I    0x218$

ERROR: code indent should never use tabs
#1553: FILE: hw/pci-host/mv643xx.h:534:
+#define MV64340_PCI_DEVCS_1_BASE_ADDR_HIGH      ^I^I    0x21c$

ERROR: code indent should never use tabs
#1554: FILE: hw/pci-host/mv643xx.h:535:
+#define MV64340_PCI_DEVCS_2_BASE_ADDR_LOW ^I^I^I    0x220$

ERROR: code indent should never use tabs
#1555: FILE: hw/pci-host/mv643xx.h:536:
+#define MV64340_PCI_DEVCS_2_BASE_ADDR_HIGH      ^I^I    0x224$

ERROR: code indent should never use tabs
#1561: FILE: hw/pci-host/mv643xx.h:542:
+#define MV64340_PCI_DEVCS_3_BASE_ADDR_LOW^I    ^I^I    0x310$

ERROR: code indent should never use tabs
#1562: FILE: hw/pci-host/mv643xx.h:543:
+#define MV64340_PCI_DEVCS_3_BASE_ADDR_HIGH ^I^I^I    0x314$

ERROR: code indent should never use tabs
#1563: FILE: hw/pci-host/mv643xx.h:544:
+#define MV64340_PCI_BOOT_CS_BASE_ADDR_LOW^I^I^I    0x318$

ERROR: code indent should never use tabs
#1564: FILE: hw/pci-host/mv643xx.h:545:
+#define MV64340_PCI_BOOT_CS_BASE_ADDR_HIGH      ^I^I    0x31c$

ERROR: code indent should never use tabs
#1565: FILE: hw/pci-host/mv643xx.h:546:
+#define MV64340_PCI_CPU_BASE_ADDR_LOW ^I^I^I^I    0x220$

ERROR: code indent should never use tabs
#1566: FILE: hw/pci-host/mv643xx.h:547:
+#define MV64340_PCI_CPU_BASE_ADDR_HIGH      ^I^I^I    0x224$

ERROR: code indent should never use tabs
#1572: FILE: hw/pci-host/mv643xx.h:553:
+#define MV64340_PCI_P2P_MEM0_BASE_ADDR_LOW  ^I^I^I    0x410$

ERROR: code indent should never use tabs
#1573: FILE: hw/pci-host/mv643xx.h:554:
+#define MV64340_PCI_P2P_MEM0_BASE_ADDR_HIGH ^I^I^I    0x414$

ERROR: code indent should never use tabs
#1574: FILE: hw/pci-host/mv643xx.h:555:
+#define MV64340_PCI_P2P_MEM1_BASE_ADDR_LOW   ^I^I^I    0x418$

ERROR: code indent should never use tabs
#1575: FILE: hw/pci-host/mv643xx.h:556:
+#define MV64340_PCI_P2P_MEM1_BASE_ADDR_HIGH ^I^I^I    0x41c$

ERROR: code indent should never use tabs
#1576: FILE: hw/pci-host/mv643xx.h:557:
+#define MV64340_PCI_P2P_I_O_BASE_ADDR                 ^I            0x420$

ERROR: code indent should never use tabs
#1580: FILE: hw/pci-host/mv643xx.h:561:
+/* Messaging Unit Registers (I20)   ^I*/$

ERROR: code indent should never use tabs
#1583: FILE: hw/pci-host/mv643xx.h:564:
+#define MV64340_I2O_INBOUND_MESSAGE_REG0_PCI_0_SIDE^I^I    0x010$

ERROR: code indent should never use tabs
#1584: FILE: hw/pci-host/mv643xx.h:565:
+#define MV64340_I2O_INBOUND_MESSAGE_REG1_PCI_0_SIDE  ^I^I    0x014$

ERROR: code indent should never use tabs
#1585: FILE: hw/pci-host/mv643xx.h:566:
+#define MV64340_I2O_OUTBOUND_MESSAGE_REG0_PCI_0_SIDE ^I^I    0x018$

ERROR: code indent should never use tabs
#1586: FILE: hw/pci-host/mv643xx.h:567:
+#define MV64340_I2O_OUTBOUND_MESSAGE_REG1_PCI_0_SIDE  ^I^I    0x01C$

ERROR: code indent should never use tabs
#1587: FILE: hw/pci-host/mv643xx.h:568:
+#define MV64340_I2O_INBOUND_DOORBELL_REG_PCI_0_SIDE  ^I^I    0x020$

ERROR: code indent should never use tabs
#1589: FILE: hw/pci-host/mv643xx.h:570:
+#define MV64340_I2O_INBOUND_INTERRUPT_MASK_REG_PCI_0_SIDE^I    0x028$

ERROR: code indent should never use tabs
#1590: FILE: hw/pci-host/mv643xx.h:571:
+#define MV64340_I2O_OUTBOUND_DOORBELL_REG_PCI_0_SIDE ^I^I    0x02C$

ERROR: code indent should never use tabs
#1595: FILE: hw/pci-host/mv643xx.h:576:
+#define MV64340_I2O_QUEUE_CONTROL_REG_PCI_0_SIDE ^I^I    0x050$

ERROR: code indent should never use tabs
#1596: FILE: hw/pci-host/mv643xx.h:577:
+#define MV64340_I2O_QUEUE_BASE_ADDR_REG_PCI_0_SIDE ^I^I    0x054$

ERROR: code indent should never use tabs
#1606: FILE: hw/pci-host/mv643xx.h:587:
+#define MV64340_I2O_INBOUND_MESSAGE_REG0_PCI_1_SIDE^I^I    0x090$

ERROR: code indent should never use tabs
#1607: FILE: hw/pci-host/mv643xx.h:588:
+#define MV64340_I2O_INBOUND_MESSAGE_REG1_PCI_1_SIDE  ^I^I    0x094$

ERROR: code indent should never use tabs
#1608: FILE: hw/pci-host/mv643xx.h:589:
+#define MV64340_I2O_OUTBOUND_MESSAGE_REG0_PCI_1_SIDE ^I^I    0x098$

ERROR: code indent should never use tabs
#1609: FILE: hw/pci-host/mv643xx.h:590:
+#define MV64340_I2O_OUTBOUND_MESSAGE_REG1_PCI_1_SIDE  ^I^I    0x09C$

ERROR: code indent should never use tabs
#1610: FILE: hw/pci-host/mv643xx.h:591:
+#define MV64340_I2O_INBOUND_DOORBELL_REG_PCI_1_SIDE  ^I^I    0x0A0$

ERROR: code indent should never use tabs
#1612: FILE: hw/pci-host/mv643xx.h:593:
+#define MV64340_I2O_INBOUND_INTERRUPT_MASK_REG_PCI_1_SIDE^I    0x0A8$

ERROR: code indent should never use tabs
#1613: FILE: hw/pci-host/mv643xx.h:594:
+#define MV64340_I2O_OUTBOUND_DOORBELL_REG_PCI_1_SIDE ^I^I    0x0AC$

ERROR: code indent should never use tabs
#1618: FILE: hw/pci-host/mv643xx.h:599:
+#define MV64340_I2O_QUEUE_CONTROL_REG_PCI_1_SIDE ^I^I    0x0D0$

ERROR: code indent should never use tabs
#1619: FILE: hw/pci-host/mv643xx.h:600:
+#define MV64340_I2O_QUEUE_BASE_ADDR_REG_PCI_1_SIDE ^I^I    0x0D4$

ERROR: code indent should never use tabs
#1629: FILE: hw/pci-host/mv643xx.h:610:
+#define MV64340_I2O_INBOUND_MESSAGE_REG0_CPU0_SIDE^I^I    0x1C10$

ERROR: code indent should never use tabs
#1630: FILE: hw/pci-host/mv643xx.h:611:
+#define MV64340_I2O_INBOUND_MESSAGE_REG1_CPU0_SIDE  ^I^I    0x1C14$

ERROR: code indent should never use tabs
#1631: FILE: hw/pci-host/mv643xx.h:612:
+#define MV64340_I2O_OUTBOUND_MESSAGE_REG0_CPU0_SIDE ^I^I    0x1C18$

ERROR: code indent should never use tabs
#1632: FILE: hw/pci-host/mv643xx.h:613:
+#define MV64340_I2O_OUTBOUND_MESSAGE_REG1_CPU0_SIDE  ^I^I    0x1C1C$

ERROR: code indent should never use tabs
#1633: FILE: hw/pci-host/mv643xx.h:614:
+#define MV64340_I2O_INBOUND_DOORBELL_REG_CPU0_SIDE  ^I^I    0x1C20$

ERROR: code indent should never use tabs
#1634: FILE: hw/pci-host/mv643xx.h:615:
+#define MV64340_I2O_INBOUND_INTERRUPT_CAUSE_REG_CPU0_SIDE  ^I    0x1C24$

ERROR: code indent should never use tabs
#1635: FILE: hw/pci-host/mv643xx.h:616:
+#define MV64340_I2O_INBOUND_INTERRUPT_MASK_REG_CPU0_SIDE^I    0x1C28$

ERROR: code indent should never use tabs
#1636: FILE: hw/pci-host/mv643xx.h:617:
+#define MV64340_I2O_OUTBOUND_DOORBELL_REG_CPU0_SIDE ^I^I    0x1C2C$

ERROR: code indent should never use tabs
#1641: FILE: hw/pci-host/mv643xx.h:622:
+#define MV64340_I2O_QUEUE_CONTROL_REG_CPU0_SIDE ^I^I    0x1C50$

ERROR: code indent should never use tabs
#1642: FILE: hw/pci-host/mv643xx.h:623:
+#define MV64340_I2O_QUEUE_BASE_ADDR_REG_CPU0_SIDE ^I^I    0x1C54$

ERROR: code indent should never use tabs
#1651: FILE: hw/pci-host/mv643xx.h:632:
+#define MV64340_I2O_INBOUND_MESSAGE_REG0_CPU1_SIDE^I^I    0x1C90$

ERROR: code indent should never use tabs
#1652: FILE: hw/pci-host/mv643xx.h:633:
+#define MV64340_I2O_INBOUND_MESSAGE_REG1_CPU1_SIDE  ^I^I    0x1C94$

ERROR: code indent should never use tabs
#1653: FILE: hw/pci-host/mv643xx.h:634:
+#define MV64340_I2O_OUTBOUND_MESSAGE_REG0_CPU1_SIDE ^I^I    0x1C98$

ERROR: code indent should never use tabs
#1654: FILE: hw/pci-host/mv643xx.h:635:
+#define MV64340_I2O_OUTBOUND_MESSAGE_REG1_CPU1_SIDE  ^I^I    0x1C9C$

ERROR: code indent should never use tabs
#1655: FILE: hw/pci-host/mv643xx.h:636:
+#define MV64340_I2O_INBOUND_DOORBELL_REG_CPU1_SIDE  ^I^I    0x1CA0$

ERROR: code indent should never use tabs
#1656: FILE: hw/pci-host/mv643xx.h:637:
+#define MV64340_I2O_INBOUND_INTERRUPT_CAUSE_REG_CPU1_SIDE  ^I    0x1CA4$

ERROR: code indent should never use tabs
#1657: FILE: hw/pci-host/mv643xx.h:638:
+#define MV64340_I2O_INBOUND_INTERRUPT_MASK_REG_CPU1_SIDE^I    0x1CA8$

ERROR: code indent should never use tabs
#1658: FILE: hw/pci-host/mv643xx.h:639:
+#define MV64340_I2O_OUTBOUND_DOORBELL_REG_CPU1_SIDE ^I^I    0x1CAC$

ERROR: code indent should never use tabs
#1663: FILE: hw/pci-host/mv643xx.h:644:
+#define MV64340_I2O_QUEUE_CONTROL_REG_CPU1_SIDE ^I^I    0x1CD0$

ERROR: code indent should never use tabs
#1664: FILE: hw/pci-host/mv643xx.h:645:
+#define MV64340_I2O_QUEUE_BASE_ADDR_REG_CPU1_SIDE ^I^I    0x1CD4$

ERROR: code indent should never use tabs
#1675: FILE: hw/pci-host/mv643xx.h:656:
+/*        Ethernet Unit Registers  ^I^I*/$

WARNING: line over 80 characters
#1725: FILE: hw/pci-host/mv643xx.h:706:
+#define MV64340_MPSC_CAUSE_REG(port)                               (0xb804 + (port<<3))

ERROR: spaces required around that '<<' (ctx:VxV)
#1725: FILE: hw/pci-host/mv643xx.h:706:
+#define MV64340_MPSC_CAUSE_REG(port)                               (0xb804 + (port<<3))
                                                                                   ^

WARNING: line over 80 characters
#1726: FILE: hw/pci-host/mv643xx.h:707:
+#define MV64340_MPSC_MASK_REG(port)                                (0xb884 + (port<<3))

ERROR: spaces required around that '<<' (ctx:VxV)
#1726: FILE: hw/pci-host/mv643xx.h:707:
+#define MV64340_MPSC_MASK_REG(port)                                (0xb884 + (port<<3))
                                                                                   ^

WARNING: line over 80 characters
#1728: FILE: hw/pci-host/mv643xx.h:709:
+#define MV64340_MPSC_MAIN_CONFIG_LOW(port)                         (0x8000 + (port<<12))

ERROR: spaces required around that '<<' (ctx:VxV)
#1728: FILE: hw/pci-host/mv643xx.h:709:
+#define MV64340_MPSC_MAIN_CONFIG_LOW(port)                         (0x8000 + (port<<12))
                                                                                   ^

WARNING: line over 80 characters
#1729: FILE: hw/pci-host/mv643xx.h:710:
+#define MV64340_MPSC_MAIN_CONFIG_HIGH(port)                        (0x8004 + (port<<12))

ERROR: spaces required around that '<<' (ctx:VxV)
#1729: FILE: hw/pci-host/mv643xx.h:710:
+#define MV64340_MPSC_MAIN_CONFIG_HIGH(port)                        (0x8004 + (port<<12))
                                                                                   ^

WARNING: line over 80 characters
#1730: FILE: hw/pci-host/mv643xx.h:711:
+#define MV64340_MPSC_PROTOCOL_CONFIG(port)                         (0x8008 + (port<<12))

ERROR: spaces required around that '<<' (ctx:VxV)
#1730: FILE: hw/pci-host/mv643xx.h:711:
+#define MV64340_MPSC_PROTOCOL_CONFIG(port)                         (0x8008 + (port<<12))
                                                                                   ^

WARNING: line over 80 characters
#1731: FILE: hw/pci-host/mv643xx.h:712:
+#define MV64340_MPSC_CHANNEL_REG1(port)                            (0x800c + (port<<12))

ERROR: spaces required around that '<<' (ctx:VxV)
#1731: FILE: hw/pci-host/mv643xx.h:712:
+#define MV64340_MPSC_CHANNEL_REG1(port)                            (0x800c + (port<<12))
                                                                                   ^

WARNING: line over 80 characters
#1732: FILE: hw/pci-host/mv643xx.h:713:
+#define MV64340_MPSC_CHANNEL_REG2(port)                            (0x8010 + (port<<12))

ERROR: spaces required around that '<<' (ctx:VxV)
#1732: FILE: hw/pci-host/mv643xx.h:713:
+#define MV64340_MPSC_CHANNEL_REG2(port)                            (0x8010 + (port<<12))
                                                                                   ^

WARNING: line over 80 characters
#1733: FILE: hw/pci-host/mv643xx.h:714:
+#define MV64340_MPSC_CHANNEL_REG3(port)                            (0x8014 + (port<<12))

ERROR: spaces required around that '<<' (ctx:VxV)
#1733: FILE: hw/pci-host/mv643xx.h:714:
+#define MV64340_MPSC_CHANNEL_REG3(port)                            (0x8014 + (port<<12))
                                                                                   ^

WARNING: line over 80 characters
#1734: FILE: hw/pci-host/mv643xx.h:715:
+#define MV64340_MPSC_CHANNEL_REG4(port)                            (0x8018 + (port<<12))

ERROR: spaces required around that '<<' (ctx:VxV)
#1734: FILE: hw/pci-host/mv643xx.h:715:
+#define MV64340_MPSC_CHANNEL_REG4(port)                            (0x8018 + (port<<12))
                                                                                   ^

WARNING: line over 80 characters
#1735: FILE: hw/pci-host/mv643xx.h:716:
+#define MV64340_MPSC_CHANNEL_REG5(port)                            (0x801c + (port<<12))

ERROR: spaces required around that '<<' (ctx:VxV)
#1735: FILE: hw/pci-host/mv643xx.h:716:
+#define MV64340_MPSC_CHANNEL_REG5(port)                            (0x801c + (port<<12))
                                                                                   ^

WARNING: line over 80 characters
#1736: FILE: hw/pci-host/mv643xx.h:717:
+#define MV64340_MPSC_CHANNEL_REG6(port)                            (0x8020 + (port<<12))

ERROR: spaces required around that '<<' (ctx:VxV)
#1736: FILE: hw/pci-host/mv643xx.h:717:
+#define MV64340_MPSC_CHANNEL_REG6(port)                            (0x8020 + (port<<12))
                                                                                   ^

WARNING: line over 80 characters
#1737: FILE: hw/pci-host/mv643xx.h:718:
+#define MV64340_MPSC_CHANNEL_REG7(port)                            (0x8024 + (port<<12))

ERROR: spaces required around that '<<' (ctx:VxV)
#1737: FILE: hw/pci-host/mv643xx.h:718:
+#define MV64340_MPSC_CHANNEL_REG7(port)                            (0x8024 + (port<<12))
                                                                                   ^

WARNING: line over 80 characters
#1738: FILE: hw/pci-host/mv643xx.h:719:
+#define MV64340_MPSC_CHANNEL_REG8(port)                            (0x8028 + (port<<12))

ERROR: spaces required around that '<<' (ctx:VxV)
#1738: FILE: hw/pci-host/mv643xx.h:719:
+#define MV64340_MPSC_CHANNEL_REG8(port)                            (0x8028 + (port<<12))
                                                                                   ^

WARNING: line over 80 characters
#1739: FILE: hw/pci-host/mv643xx.h:720:
+#define MV64340_MPSC_CHANNEL_REG9(port)                            (0x802c + (port<<12))

ERROR: spaces required around that '<<' (ctx:VxV)
#1739: FILE: hw/pci-host/mv643xx.h:720:
+#define MV64340_MPSC_CHANNEL_REG9(port)                            (0x802c + (port<<12))
                                                                                   ^

WARNING: line over 80 characters
#1740: FILE: hw/pci-host/mv643xx.h:721:
+#define MV64340_MPSC_CHANNEL_REG10(port)                           (0x8030 + (port<<12))

ERROR: spaces required around that '<<' (ctx:VxV)
#1740: FILE: hw/pci-host/mv643xx.h:721:
+#define MV64340_MPSC_CHANNEL_REG10(port)                           (0x8030 + (port<<12))
                                                                                   ^

WARNING: line over 80 characters
#1749: FILE: hw/pci-host/mv643xx.h:730:
+#define MV64340_SDMA_CONFIG_REG(channel)                        (0x4000 + (channel<<13))

ERROR: spaces required around that '<<' (ctx:VxV)
#1749: FILE: hw/pci-host/mv643xx.h:730:
+#define MV64340_SDMA_CONFIG_REG(channel)                        (0x4000 + (channel<<13))
                                                                                   ^

WARNING: line over 80 characters
#1750: FILE: hw/pci-host/mv643xx.h:731:
+#define MV64340_SDMA_COMMAND_REG(channel)                       (0x4008 + (channel<<13))

ERROR: spaces required around that '<<' (ctx:VxV)
#1750: FILE: hw/pci-host/mv643xx.h:731:
+#define MV64340_SDMA_COMMAND_REG(channel)                       (0x4008 + (channel<<13))
                                                                                   ^

WARNING: line over 80 characters
#1751: FILE: hw/pci-host/mv643xx.h:732:
+#define MV64340_SDMA_CURRENT_RX_DESCRIPTOR_POINTER(channel)     (0x4810 + (channel<<13))

ERROR: spaces required around that '<<' (ctx:VxV)
#1751: FILE: hw/pci-host/mv643xx.h:732:
+#define MV64340_SDMA_CURRENT_RX_DESCRIPTOR_POINTER(channel)     (0x4810 + (channel<<13))
                                                                                   ^

WARNING: line over 80 characters
#1752: FILE: hw/pci-host/mv643xx.h:733:
+#define MV64340_SDMA_CURRENT_TX_DESCRIPTOR_POINTER(channel)     (0x4c10 + (channel<<13))

ERROR: spaces required around that '<<' (ctx:VxV)
#1752: FILE: hw/pci-host/mv643xx.h:733:
+#define MV64340_SDMA_CURRENT_TX_DESCRIPTOR_POINTER(channel)     (0x4c10 + (channel<<13))
                                                                                   ^

WARNING: line over 80 characters
#1753: FILE: hw/pci-host/mv643xx.h:734:
+#define MV64340_SDMA_FIRST_TX_DESCRIPTOR_POINTER(channel)       (0x4c14 + (channel<<13))

ERROR: spaces required around that '<<' (ctx:VxV)
#1753: FILE: hw/pci-host/mv643xx.h:734:
+#define MV64340_SDMA_FIRST_TX_DESCRIPTOR_POINTER(channel)       (0x4c14 + (channel<<13))
                                                                                   ^

WARNING: line over 80 characters
#1760: FILE: hw/pci-host/mv643xx.h:741:
+#define MV64340_BRG_CONFIG_REG(brg)                              (0xb200 + (brg<<3))

ERROR: spaces required around that '<<' (ctx:VxV)
#1760: FILE: hw/pci-host/mv643xx.h:741:
+#define MV64340_BRG_CONFIG_REG(brg)                              (0xb200 + (brg<<3))
                                                                                ^

WARNING: line over 80 characters
#1761: FILE: hw/pci-host/mv643xx.h:742:
+#define MV64340_BRG_BAUDE_TUNING_REG(brg)                        (0xb208 + (brg<<3))

ERROR: spaces required around that '<<' (ctx:VxV)
#1761: FILE: hw/pci-host/mv643xx.h:742:
+#define MV64340_BRG_BAUDE_TUNING_REG(brg)                        (0xb208 + (brg<<3))
                                                                                ^

ERROR: code indent should never use tabs
#1766: FILE: hw/pci-host/mv643xx.h:747:
+/* DMA Channel Control^I^I^I*/$

ERROR: code indent should never use tabs
#1769: FILE: hw/pci-host/mv643xx.h:750:
+#define MV64340_DMA_CHANNEL0_CONTROL ^I^I^I^I    0x840$

ERROR: code indent should never use tabs
#1770: FILE: hw/pci-host/mv643xx.h:751:
+#define MV64340_DMA_CHANNEL0_CONTROL_HIGH^I^I^I    0x880$

ERROR: code indent should never use tabs
#1771: FILE: hw/pci-host/mv643xx.h:752:
+#define MV64340_DMA_CHANNEL1_CONTROL ^I^I^I^I    0x844$

ERROR: code indent should never use tabs
#1772: FILE: hw/pci-host/mv643xx.h:753:
+#define MV64340_DMA_CHANNEL1_CONTROL_HIGH^I^I^I    0x884$

ERROR: code indent should never use tabs
#1773: FILE: hw/pci-host/mv643xx.h:754:
+#define MV64340_DMA_CHANNEL2_CONTROL ^I^I^I^I    0x848$

ERROR: code indent should never use tabs
#1774: FILE: hw/pci-host/mv643xx.h:755:
+#define MV64340_DMA_CHANNEL2_CONTROL_HIGH^I^I^I    0x888$

ERROR: code indent should never use tabs
#1775: FILE: hw/pci-host/mv643xx.h:756:
+#define MV64340_DMA_CHANNEL3_CONTROL ^I^I^I^I    0x84C$

ERROR: code indent should never use tabs
#1776: FILE: hw/pci-host/mv643xx.h:757:
+#define MV64340_DMA_CHANNEL3_CONTROL_HIGH^I^I^I    0x88C$

WARNING: Block comments use a leading /* on a separate line
#1826: FILE: hw/pci-host/mv643xx.h:807:
+ /* IDMA Address Decoding High Address Remap and Access

WARNING: Block comments use * on subsequent lines
#1827: FILE: hw/pci-host/mv643xx.h:808:
+ /* IDMA Address Decoding High Address Remap and Access
+                  Protection Registers                    */

WARNING: Block comments use a trailing */ on a separate line
#1827: FILE: hw/pci-host/mv643xx.h:808:
+                  Protection Registers                    */

ERROR: code indent should never use tabs
#1860: FILE: hw/pci-host/mv643xx.h:841:
+/* Timer_Counter ^I^I^I*/$

ERROR: code indent should never use tabs
#1863: FILE: hw/pci-host/mv643xx.h:844:
+#define MV64340_TIMER_COUNTER0^I^I^I^I^I    0x850$

ERROR: code indent should never use tabs
#1864: FILE: hw/pci-host/mv643xx.h:845:
+#define MV64340_TIMER_COUNTER1^I^I^I^I^I    0x854$

ERROR: code indent should never use tabs
#1865: FILE: hw/pci-host/mv643xx.h:846:
+#define MV64340_TIMER_COUNTER2^I^I^I^I^I    0x858$

ERROR: code indent should never use tabs
#1866: FILE: hw/pci-host/mv643xx.h:847:
+#define MV64340_TIMER_COUNTER3^I^I^I^I^I    0x85C$

ERROR: code indent should never use tabs
#1867: FILE: hw/pci-host/mv643xx.h:848:
+#define MV64340_TIMER_COUNTER_0_3_CONTROL^I^I^I    0x864$

ERROR: code indent should never use tabs
#1868: FILE: hw/pci-host/mv643xx.h:849:
+#define MV64340_TIMER_COUNTER_0_3_INTERRUPT_CAUSE^I^I    0x868$

ERROR: code indent should never use tabs
#1869: FILE: hw/pci-host/mv643xx.h:850:
+#define MV64340_TIMER_COUNTER_0_3_INTERRUPT_MASK      ^I^I    0x86c$

ERROR: code indent should never use tabs
#1872: FILE: hw/pci-host/mv643xx.h:853:
+/*         Watchdog registers  ^I        */$

ERROR: code indent should never use tabs
#1903: FILE: hw/pci-host/mv643xx.h:884:
+/* Interrupts^I  ^I^I^I*/$

total: 170 errors, 31 warnings, 1911 lines checked

Patch 1/2 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

2/2 Checking commit 3d245536f531 (hw/ppc: Add emulation of Genesi/bPlan Pegasos II)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#66: 
new file mode 100644

total: 0 errors, 1 warnings, 174 lines checked

Patch 2/2 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/cover.1609973005.git.balaton@eik.bme.hu/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
Re: [RFC PATCH 0/2] Pegasos2 emulation
Posted by BALATON Zoltan 3 years, 4 months ago
On Wed, 6 Jan 2021, BALATON Zoltan wrote:
> Hello,
>
> This is adding a new PPC board called pegasos2 currently posted as RFC
> because it depends on not yet merged VT8231 emulation currently on the
> list:
>
> https://patchew.org/QEMU/cover.1609967638.git.balaton@eik.bme.hu/
>
> and may need some changes like a test case but I'm posting it now for
> getting feedback on what's needed to merge this. More info on it can
> be found at:
>
> https://osdn.net/projects/qmiga/wiki/SubprojectPegasos2
>
> Currently it needs a firmware ROM image that I cannot include due to
> original copyright holder (bPlan) did not release it under a free
> licence but I have plans to write a replacement in the future. With
> that firmware it can boot MorphOS now as:
>
> qemu-system-ppc -M pegasos2 -cdrom morphos.iso -device ati-vga,romfile="" -serial stdio
>
> then enter "boot cd boot.img" at the firmware "ok" prompt as described
> in the MorphOS.readme. To boot Linux use same command line with e.g.
> -cdrom debian-8.11.0-powerpc-netinst.iso then enter
> "boot cd install/pegasos"
>
> Patch 2 adds the actual board code after patch 1 adding MV64361 system
> controller chip. The mv643xx.h header file is taken from Linux and
> produces a bunch of checkpatch warnings due to different formatting
> rules it follows, I'm not sure we want to adopt it or keep it as it is
> given that it does not appear any more in recent Linux versions so we
> could reformat it as it's unlikely to get updated in the future.

Interestingly it applies for patchew while this was accidentally based on 
my previous series that has hw/ppc/Kconfig reverts so it does not apply on 
current master. Also missing a file so does not compile but other than 
that the content could be reviewed. I've now updated this repo:

https://osdn.net/projects/qmiga/scm/git/qemu/tree/pegasos2/

which contains all the needed patches over QEMU master at one place in 
case somebody wants to try this. I'll send an updated version later after 
I get some feedback.

The command lines above also need -bios /path/to/firmware.rom

Regards,
BALATON Zoltan

> BALATON Zoltan (2):
>  hw/pci-host: Add emulation of Marvell MV64361 PPC system controller
>  hw/ppc: Add emulation of Genesi/bPlan Pegasos II
>
> default-configs/devices/ppc-softmmu.mak |   2 +
> hw/pci-host/Kconfig                     |   3 +
> hw/pci-host/meson.build                 |   2 +
> hw/pci-host/mv64361.c                   | 966 ++++++++++++++++++++++++
> hw/pci-host/mv643xx.h                   | 919 ++++++++++++++++++++++
> hw/pci-host/trace-events                |   6 +
> hw/ppc/Kconfig                          |  10 +
> hw/ppc/meson.build                      |   2 +
> hw/ppc/pegasos2.c                       | 144 ++++
> 9 files changed, 2054 insertions(+)
> create mode 100644 hw/pci-host/mv64361.c
> create mode 100644 hw/pci-host/mv643xx.h
> create mode 100644 hw/ppc/pegasos2.c
>
>

Re: [RFC PATCH 0/2] Pegasos2 emulation
Posted by Philippe Mathieu-Daudé 3 years, 4 months ago
On 1/7/21 2:15 AM, BALATON Zoltan wrote:
> On Wed, 6 Jan 2021, BALATON Zoltan wrote:
>> Hello,
>>
>> This is adding a new PPC board called pegasos2 currently posted as RFC
>> because it depends on not yet merged VT8231 emulation currently on the
>> list:
>>
>> https://patchew.org/QEMU/cover.1609967638.git.balaton@eik.bme.hu/

This note ^^^ ...

>>
>> and may need some changes like a test case but I'm posting it now for
>> getting feedback on what's needed to merge this. More info on it can
>> be found at:
>>
>> https://osdn.net/projects/qmiga/wiki/SubprojectPegasos2
>>
>> Currently it needs a firmware ROM image that I cannot include due to
>> original copyright holder (bPlan) did not release it under a free
>> licence but I have plans to write a replacement in the future. With
>> that firmware it can boot MorphOS now as:
>>
>> qemu-system-ppc -M pegasos2 -cdrom morphos.iso -device
>> ati-vga,romfile="" -serial stdio
>>
>> then enter "boot cd boot.img" at the firmware "ok" prompt as described
>> in the MorphOS.readme. To boot Linux use same command line with e.g.
>> -cdrom debian-8.11.0-powerpc-netinst.iso then enter
>> "boot cd install/pegasos"
>>
>> Patch 2 adds the actual board code after patch 1 adding MV64361 system
>> controller chip. The mv643xx.h header file is taken from Linux and
>> produces a bunch of checkpatch warnings due to different formatting
>> rules it follows, I'm not sure we want to adopt it or keep it as it is
>> given that it does not appear any more in recent Linux versions so we
>> could reformat it as it's unlikely to get updated in the future.
> 
> Interestingly it applies for patchew while this was accidentally based
> on my previous series that has hw/ppc/Kconfig reverts so it does not
> apply on current master.

... can be passed as hint to patchew as a tag:

Based-on: <cover.1609967638.git.balaton@eik.bme.hu>

> Also missing a file so does not compile but
> other than that the content could be reviewed. I've now updated this repo:
> 
> https://osdn.net/projects/qmiga/scm/git/qemu/tree/pegasos2/
> 
> which contains all the needed patches over QEMU master at one place in
> case somebody wants to try this. I'll send an updated version later
> after I get some feedback.
> 
> The command lines above also need -bios /path/to/firmware.rom

An integration test similar to the Fuloong PMON would be highly
appreciated :)

https://www.mail-archive.com/qemu-devel@nongnu.org/msg752605.html

Regards,

Phil.

Re: [RFC PATCH 0/2] Pegasos2 emulation
Posted by BALATON Zoltan 3 years, 4 months ago
On Thu, 7 Jan 2021, Philippe Mathieu-Daudé wrote:
> On 1/7/21 2:15 AM, BALATON Zoltan wrote:
>> On Wed, 6 Jan 2021, BALATON Zoltan wrote:
>>> Hello,
>>>
>>> This is adding a new PPC board called pegasos2 currently posted as RFC
>>> because it depends on not yet merged VT8231 emulation currently on the
>>> list:
>>>
>>> https://patchew.org/QEMU/cover.1609967638.git.balaton@eik.bme.hu/
>
> This note ^^^ ...
>
>>>
>>> and may need some changes like a test case but I'm posting it now for
>>> getting feedback on what's needed to merge this. More info on it can
>>> be found at:
>>>
>>> https://osdn.net/projects/qmiga/wiki/SubprojectPegasos2
>>>
>>> Currently it needs a firmware ROM image that I cannot include due to
>>> original copyright holder (bPlan) did not release it under a free
>>> licence but I have plans to write a replacement in the future. With
>>> that firmware it can boot MorphOS now as:
>>>
>>> qemu-system-ppc -M pegasos2 -cdrom morphos.iso -device
>>> ati-vga,romfile="" -serial stdio
>>>
>>> then enter "boot cd boot.img" at the firmware "ok" prompt as described
>>> in the MorphOS.readme. To boot Linux use same command line with e.g.
>>> -cdrom debian-8.11.0-powerpc-netinst.iso then enter
>>> "boot cd install/pegasos"
>>>
>>> Patch 2 adds the actual board code after patch 1 adding MV64361 system
>>> controller chip. The mv643xx.h header file is taken from Linux and
>>> produces a bunch of checkpatch warnings due to different formatting
>>> rules it follows, I'm not sure we want to adopt it or keep it as it is
>>> given that it does not appear any more in recent Linux versions so we
>>> could reformat it as it's unlikely to get updated in the future.
>>
>> Interestingly it applies for patchew while this was accidentally based
>> on my previous series that has hw/ppc/Kconfig reverts so it does not
>> apply on current master.
>
> ... can be passed as hint to patchew as a tag:
>
> Based-on: <cover.1609967638.git.balaton@eik.bme.hu>
>
>> Also missing a file so does not compile but
>> other than that the content could be reviewed. I've now updated this repo:
>>
>> https://osdn.net/projects/qmiga/scm/git/qemu/tree/pegasos2/
>>
>> which contains all the needed patches over QEMU master at one place in
>> case somebody wants to try this. I'll send an updated version later
>> after I get some feedback.
>>
>> The command lines above also need -bios /path/to/firmware.rom
>
> An integration test similar to the Fuloong PMON would be highly
> appreciated :)
>
> https://www.mail-archive.com/qemu-devel@nongnu.org/msg752605.html

This does not seem to be in master so I could copy and modify. I also have 
no way to test this test so maybe you could help writing and testing the 
necessary module. Basically we need to download a boot iso from here:

https://www.morphos-team.net/morphos-3.15.iso

For the pegasos2.rom the easiest may be to extract it from an update still 
available here:

https://morph.zone/modules/newbb_plus/viewtopic.php?forum=11&topic_id=11892&post_id=129768&viewmode=flat&sortorder=0&showonepost=1

which links to

http://web.archive.org/web/20071021223056/http://www.bplan-gmbh.de/up050404/up050404

that has the actual file as the original site does not have it any more 
(used to be here: 
http://www.bplan-gmbh.de/flash_update_for_pegasos_ii_en.html ). Then the 
rom can be extracted with:

https://osdn.net/projects/qmiga/wiki/SubprojectPegasos2/attach/extract_rom_from_updater

To get a binary with MD5 sum 3248e02596480f2dba5944bd219ecfad

Then running it like this should produce the following output:

$ qemu-system-ppc -M pegasos2 -bios pegasos2.rom -device ati-vga,romfile="" -cdrom morphos-3.15.iso -serial stdio

PegasosII Boot Strap (c) 2002-2003 bplan GmbH
Running on CPU PVR:000C0209
Enable L1 ICache...                                                   Done.
Reading W83194 :                                                      FAILED.
Setting Front Side Bus to 133MHz...                                   FAILED.
Configuring DDR...                                                    Done.
Configuring PCI0...                                                   Done.
Configuring PCI1...                                                   Done.
Configuring ETH...                                                    Done.
Releasing IDE reset ...                                	              Done.
Configuring Legacy Devices
Initializing KBD...                                                   Done.
Testing 10000000 Bytes, Pass: 00000000 Failed: 00000000
RAM TEST (fill linear)...                                             Done.
FFFFFFFF

SmartFirmware:
cpu0: PowerPC,G4 CPUClock 599 Mhz BUSClock 133 Mhz (Version 0x000C,0x0209)
no/bad nvramrc - performing default startup script
channel 1 unit 0 : atapi | QEMU DVD-ROM                             | 2.5+ 
ATA device not present or not responding



Welcome to SmartFirmware(tm) for bplan Pegasos2 version 1.1 (20040405172512)
SmartFirmware(tm) Copyright 1996-2001 by CodeGen, Inc.
All Rights Reserved.
Pegasos BIOS Extensions Copyright 2001-2003 by bplan GmbH.
All Rights Reserved.
entering main read/eval loop...
ok boot cd boot.img
ISO-9660 filesystem:  System-ID: "MORPHOS"  Volume-ID: "MorphOSBoot"
Root dir: "" flags=0x2 extent=0x20 size=0x1800
Memory used before SYS_Init: 9MB


ABox 1.30 (2.7.2018) © 1999-2018 by Ralph Schmidt, Emmanuel Lesueur, Teemu Suikki, Harry Sintonen
PCI ATA/ATAPI Driver@2: PIO Mode 4
PCI ATA/ATAPI Driver@2: UDMA Mode 5
ide.device@2: QEMU     QEMU DVD-ROM     <CDROM>
ide.device@2:  CDRom <CD001>,<MORPHOS > found, bootable
ide.device@2:  Mount <CD0>
ide.device@2:  Partition <CD0> DosType 0x43444653 BootPri 127

Maybe you should wait for the "Welcome to SmartFirmware" banner or 
"entering main read/eval loop" followed by the "ok" prompt where you 
should send "boot cd boot.img" string then wait for the "ide.device@2: 
Mount <CD0>" string to confirm it found the boot CD at which point it 
should be working which also tests that via-ide DMA works (it it doesn't 
it won't find the CD). This tests mv64361, vt8231 (including via-ide 
half-native mode). Also uses ati-vga but that's already tested by other 
tests and these texts on serial do not confirm it works with ati-vga, 
that's just so you can also see it boot if you let it running further. The 
romfile="" is needed to disable vgabios-ati.bin which the firmware cannot 
handle.

Can you turn this into a python script implementing a test case based on 
your other similar tests? I think you have more experience with this and 
have a way to actually test it that I lack.

Regards,
BALATON Zoltan