Hi I am using this fork of qemu that has pic32 support in it.
https://github.com/sergev/qemu/ When I boot a firmware image I get these errors as I don’t think the gpios have been defined. /usr/local/qemu-mips/bin/qemu-system-mipsel -machine pic32mx7-max32 -nographic -serial file:serial1.log -serial file:serial2.log -bios boot.hex -kernel pfm.hex QEMU 2.3.50 monitor - type 'help' for more information (qemu) Board: chipKIT Max32 Processor: M4K RAM size: 128 kbytes Load file: 'boot.hex', 2344 bytes Load file: 'pfm.hex', 287440 bytes --- Read 1f800810: peripheral register not supported --- Write 00000001 to 1f800008: peripheral register not supported --- Write 00000001 to ???: readonly register --- Read 1f800600: peripheral register not supported --- Write 00000030 to 1f800600: peripheral register not supported --- Write 00000030 to ???: readonly register --- Write 0000ffff to 1f800620: peripheral register not supported --- Write 0000ffff to ???: readonly register --- Write 00000000 to 1f800610: peripheral register not supported --- Write 00000000 to ???: readonly register --- Read 1f800c00: peripheral register not supported --- Write 00000070 to 1f800c00: peripheral register not supported --- Write 00000070 to ???: readonly register --- Write 0000003f to 1f800c20: peripheral register not supported --- Write 0000003f to ???: readonly register --- Write 00000000 to 1f800c10: peripheral register not supported --- Write 00000000 to ???: readonly register --- Read 1f800600: peripheral register not supported --- Write 00008000 to 1f800600: peripheral register not supported --- Write 00008000 to ???: readonly register --- Read 1f800c00: peripheral register not supported --- Write 00008000 to 1f800c00: peripheral register not supported --- Write 00008000 to ???: readonly register --- Write 00000000 to 1f800800: peripheral register not supported --- Write 00000000 to ???: readonly register --- Write 00000000 to 1f800810: peripheral register not supported --- Write 00000000 to ???: readonly register --- Write 00000000 to 1f800a10: peripheral register not supported --- Write 00000000 to ???: readonly register --- Write 0000ffff to 1f800a20: peripheral register not supported --- Write 0000ffff to ???: readonly register --- Write 00000078 to 1f800800: peripheral register not supported --- Write 00000078 to ???: readonly register --- Write 00000000 to 1f800810: peripheral register not supported --- Write 00000000 to ???: readonly register --- Write ffffffff to 1f800820: peripheral register not supported --- Write ffffffff to ???: readonly register --- Write 00008000 to 1f800808: peripheral register not supported --- Write 00008000 to ???: readonly register --- Read 1f800810: peripheral register not supported --- Write 1d07e000 to 1f80f420: peripheral register not supported --- Write 1d07e000 to ???: readonly register --- Write 00004004 to 1f80f400: peripheral register not supported --- Write 00004004 to ???: readonly register --- Write aa996655 to 1f80f410: peripheral register not supported --- Write aa996655 to ???: readonly register --- Write 556699aa to 1f80f410: peripheral register not supported --- Write 556699aa to ???: readonly register --- Write 00008000 to 1f80f408: peripheral register not supported --- Write 00008000 to ???: readonly register --- Read 1f80f400: peripheral register not supported --- Write 00004000 to 1f80f404: peripheral register not supported --- Write 00004000 to ???: readonly register --- Read 1f80f400: peripheral register not supported --- Write 1d07e000 to 1f80f420: peripheral register not supported --- Write 1d07e000 to ???: readonly register --- Write 0000c608 to 1f80f440: peripheral register not supported --- Write 0000c608 to ???: readonly register --- Write 00004003 to 1f80f400: peripheral register not supported --- Write 00004003 to ???: readonly register --- Write aa996655 to 1f80f410: peripheral register not supported --- Write aa996655 to ???: readonly register --- Write 556699aa to 1f80f410: peripheral register not supported --- Write 556699aa to ???: readonly register --- Write 00008000 to 1f80f408: peripheral register not supported --- Write 00008000 to ???: readonly register --- Read 1f80f400: peripheral register not supported --- Write 00004000 to 1f80f404: peripheral register not supported --- Write 00004000 to ???: readonly register --- Read 1f80f400: peripheral register not supported --- Write 1d07e200 to 1f80f420: peripheral register not supported --- Write 1d07e200 to ???: readonly register --- Write 0000c808 to 1f80f440: peripheral register not supported --- Write 0000c808 to ???: readonly register --- Write 00004003 to 1f80f400: peripheral register not supported --- Write 00004003 to ???: readonly register --- Write aa996655 to 1f80f410: peripheral register not supported --- Write aa996655 to ???: readonly register --- Write 556699aa to 1f80f410: peripheral register not supported --- Write 556699aa to ???: readonly register --- Write 00008000 to 1f80f408: peripheral register not supported --- Write 00008000 to ???: readonly register --- Read 1f80f400: peripheral register not supported --- Write 00004000 to 1f80f404: peripheral register not supported --- Write 00004000 to ???: readonly register --- Read 1f80f400: peripheral register not supported --- Write 1d07e400 to 1f80f420: peripheral register not supported --- Write 1d07e400 to ???: readonly register --- Write 0000ca08 to 1f80f440: peripheral register not supported --- Write 0000ca08 to ???: readonly register --- Write 00004003 to 1f80f400: peripheral register not supported --- Write 00004003 to ???: readonly register --- Write aa996655 to 1f80f410: peripheral register not supported --- Write aa996655 to ???: readonly register --- Write 556699aa to 1f80f410: peripheral register not supported --- Write 556699aa to ???: readonly register --- Write 00008000 to 1f80f408: peripheral register not supported --- Write 00008000 to ???: readonly register --- Read 1f80f400: peripheral register not supported --- Write 00004000 to 1f80f404: peripheral register not supported --- Write 00004000 to ???: readonly register --- Read 1f80f400: peripheral register not supported --- Write 1d07e600 to 1f80f420: peripheral register not supported --- Write 1d07e600 to ???: readonly register --- Write 0000cc08 to 1f80f440: peripheral register not supported --- Write 0000cc08 to ???: readonly register --- Write 00004003 to 1f80f400: peripheral register not supported --- Write 00004003 to ???: readonly register --- Write aa996655 to 1f80f410: peripheral register not supported --- Write aa996655 to ???: readonly register --- Write 556699aa to 1f80f410: peripheral register not supported --- Write 556699aa to ???: readonly register --- Write 00008000 to 1f80f408: peripheral register not supported --- Write 00008000 to ???: readonly register --- Read 1f80f400: peripheral register not supported --- Write 00004000 to 1f80f404: peripheral register not supported --- Write 00004000 to ???: readonly register --- Read 1f80f400: peripheral register not supported --- Write 1d07e800 to 1f80f420: peripheral register not supported --- Write 1d07e800 to ???: readonly register --- Write 0000ce08 to 1f80f440: peripheral register not supported --- Write 0000ce08 to ???: readonly register --- Write 00004003 to 1f80f400: peripheral register not supported --- Write 00004003 to ???: readonly register --- Write aa996655 to 1f80f410: peripheral register not supported --- Write aa996655 to ???: readonly register --- Write 556699aa to 1f80f410: peripheral register not supported --- Write 556699aa to ???: readonly register --- Write 00008000 to 1f80f408: peripheral register not supported --- Write 00008000 to ???: readonly register --- Read 1f80f400: peripheral register not supported --- Write 00004000 to 1f80f404: peripheral register not supported --- Write 00004000 to ???: readonly register --- Read 1f80f400: peripheral register not supported --- Write 1d07ea00 to 1f80f420: peripheral register not supported --- Write 1d07ea00 to ???: readonly register --- Write 0000d008 to 1f80f440: peripheral register not supported --- Write 0000d008 to ???: readonly register --- Write 00004003 to 1f80f400: peripheral register not supported --- Write 00004003 to ???: readonly register --- Write aa996655 to 1f80f410: peripheral register not supported --- Write aa996655 to ???: readonly register --- Write 556699aa to 1f80f410: peripheral register not supported --- Write 556699aa to ???: readonly register --- Write 00008000 to 1f80f408: peripheral register not supported --- Write 00008000 to ???: readonly register --- Read 1f80f400: peripheral register not supported --- Write 00004000 to 1f80f404: peripheral register not supported --- Write 00004000 to ???: readonly register --- Read 1f80f400: peripheral register not supported --- Write 1d07ec00 to 1f80f420: peripheral register not supported --- Write 1d07ec00 to ???: readonly register --- Write 0000d208 to 1f80f440: peripheral register not supported --- Write 0000d208 to ???: readonly register --- Write 00004003 to 1f80f400: peripheral register not supported --- Write 00004003 to ???: readonly register --- Write aa996655 to 1f80f410: peripheral register not supported --- Write aa996655 to ???: readonly register --- Write 556699aa to 1f80f410: peripheral register not supported --- Write 556699aa to ???: readonly register --- Write 00008000 to 1f80f408: peripheral register not supported --- Write 00008000 to ???: readonly register --- Read 1f80f400: peripheral register not supported --- Write 00004000 to 1f80f404: peripheral register not supported --- Write 00004000 to ???: readonly register --- Read 1f80f400: peripheral register not supported --- Write 1d07ee00 to 1f80f420: peripheral register not supported --- Write 1d07ee00 to ???: readonly register --- Write 0000d408 to 1f80f440: peripheral register not supported --- Write 0000d408 to ???: readonly register --- Write 00004003 to 1f80f400: peripheral register not supported --- Write 00004003 to ???: readonly register --- Write aa996655 to 1f80f410: peripheral register not supported --- Write aa996655 to ???: readonly register --- Write 556699aa to 1f80f410: peripheral register not supported --- Write 556699aa to ???: readonly register --- Write 00008000 to 1f80f408: peripheral register not supported --- Write 00008000 to ???: readonly register --- Read 1f80f400: peripheral register not supported --- Write 00004000 to 1f80f404: peripheral register not supported --- Write 00004000 to ???: readonly register --- Read 1f80f400: peripheral register not supported --- Read 1f800810: peripheral register not supported I think I need to add a new case at this point to stub the gpios https://github.com/sergev/qemu/blob/a2e0277dfe4b399a074f2124c0326be31b34a6e8/hw/mips/mips_pic32mx7.c#L833 But have never had any experience with how qemu works or building up objects. Is there any pointers that could help me along this journey? Cheers Peter