[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC 0/5] add initial support for Canon DIGIC SoC
From: |
Antony Pavlov |
Subject: |
[Qemu-devel] [RFC 0/5] add initial support for Canon DIGIC SoC |
Date: |
Thu, 29 Aug 2013 13:33:48 +0400 |
[RFC 1/5] target-arm: add ARM946E-S CPU
[RFC 2/5] hw/arm: add very initial support for Canon DIGIC SoC
[RFC 3/5] hw/arm/digic: add timer support
[RFC 4/5] hw/arm/digic: add UART support
[RFC 5/5] hw/arm/digic: add NOR ROM support
DIGIC is Canon Inc.'s name for a family of SoC
for digital cameras and camcorders.
See http://en.wikipedia.org/wiki/DIGIC for details.
There is no publicly available specification for
DIGIC chips. All information about DIGIC chip
internals is based on reverse engineering efforts
made by CHDK (http://chdk.wikia.com) and
Magic Lantern (http://www.magiclantern.fm) projects
contributors.
Also this patch series adds initial support for Canon
PowerShot A1100 IS compact camera (it is my only camera
with connected UART interface). As the DIGIC-based cameras
differences mostly are unsignificant (e.g. RAM-size,
ROM type and size, GPIO usage) the other compact
and DSLR cameras support can be easely added.
This DIGIC support patch series is inspired
by EOS QEMU from Magic Lantern project.
The main differences:
* EOS QEMU uses home-brew all-in-one monolith design;
this patch series uses conventional qemu object-centric design;
* EOS QEMU tries provide simplest emulation for most
controllers inside SoC to run Magic Lantern firmware;
this patch series provide more complete support
only for core devices to run barebox bootloader.
** EOS QEMU does not support timer counting
(this patch series emulate 1 MHz counting);
** EOS QEMU support DIGIC UART only for output
character to stderr; (this patch series emulate
introduces full blown UART interface);
** EOS QEMU has incomplete ROM support;
(this patch series uses conventional qemu pflash).
This initial DIGIC support can't be used to run
the original camera firmware, but it can successfully
run experimental version of barebox bootloader
(see http://www.barebox.org).
The last sources of barebox for PowerShot A1100 can be
obtained here:
https://github.com/frantony/barebox/tree/next.digic.20130829
The precompiled ROM image usable with qemu can be
obtained here:
https://github.com/frantony/barebox/blob/next.digic.20130829/canon-a1100-rom1.bin
This ROM image (after "dancing bit" encoding) can be run on
real Canon A1100 camera.
The short build instruction for __previous__ DIGIC barebox
version (it can be used with more recent sources too) can
be obtained here:
http://lists.infradead.org/pipermail/barebox/2013-August/016007.html
- [Qemu-devel] [RFC 0/5] add initial support for Canon DIGIC SoC,
Antony Pavlov <=
- [Qemu-devel] [RFC 1/5] target-arm: add ARM946E-S CPU, Antony Pavlov, 2013/08/29
- Re: [Qemu-devel] [RFC 1/5] target-arm: add ARM946E-S CPU, Peter Maydell, 2013/08/29
- Re: [Qemu-devel] [RFC 1/5] target-arm: add ARM946E-S CPU, Antony Pavlov, 2013/08/29
- Re: [Qemu-devel] [RFC 1/5] target-arm: add ARM946E-S CPU, Antony Pavlov, 2013/08/29
- Re: [Qemu-devel] [RFC 1/5] target-arm: add ARM946E-S CPU, Peter Crosthwaite, 2013/08/30
- Re: [Qemu-devel] [RFC 1/5] target-arm: add ARM946E-S CPU, Peter Maydell, 2013/08/30
- Re: [Qemu-devel] [RFC 1/5] target-arm: add ARM946E-S CPU, Antony Pavlov, 2013/08/30
[Qemu-devel] [RFC 2/5] hw/arm: add very initial support for Canon DIGIC SoC, Antony Pavlov, 2013/08/29