qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

MIPS support for PIC32 and GPIOs


From: Peter Lambrechtsen
Subject: MIPS support for PIC32 and GPIOs
Date: Tue, 26 Jan 2021 03:03:49 +1300

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 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]