From: Antony Pavlov <antonynpavlov@gmail.com>
To: qemu-devel@nongnu.org
Cc: "Alex Dumitrache" <broscutamaker@gmail.com>,
"Peter Crosthwaite" <peter.crosthwaite@xilinx.com>,
"Giovanni Condello" <condellog@gmail.com>,
g3gg0 <georg.hofstetter@lx-networking.de>,
"Peter Maydell" <peter.maydell@linaro.org>,
"Paul Brook" <paul@codesourcery.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Andreas Färber" <afaerber@suse.de>
Subject: [Qemu-devel] [RFC v5 0/5] hw/arm: add initial support for Canon DIGIC SoC
Date: Sat, 7 Sep 2013 11:04:22 +0400 [thread overview]
Message-ID: <1378537467-13471-1-git-send-email-antonynpavlov@gmail.com> (raw)
[RFC v5 1/5] hw/arm: add very initial support for Canon DIGIC SoC
[RFC v5 2/5] hw/arm/digic: prepare DIGIC-based boards support
[RFC v5 3/5] hw/arm/digic: add timer support
[RFC v5 4/5] hw/arm/digic: add UART support
[RFC v5 5/5] hw/arm/digic: add NOR ROM support
Changes since v4:
1. digic.h: parent_obj: change type Object -> DeviceState
2. digic-uart: drop reg array
3. digic_boards: fix K8P3215UQB comment
4. Makefile: place digic stuff in own line
5. drop cpu-qom.h inclusion
6. digic.h: add private/public labels
7. digic.h: fix guard macro
8. move base address macros to digic.c
9. fix header comments
Changes since v3:
1. fix typos and formatting
2. digic-timer: drop DPRINTF
3. digic-timer: fix DIGIC4_TIMER_BASE() macro
4. digic.c: fix max timer device string
Changes since v2:
1. rebase over latest master;
* pass available size to object_initialize().
2. digic-uart: qemu_log: use LOG_UNIMP instead LOG_GUEST_ERROR;
3. digic-boards: update rom image load code: introduce digic_load_rom().
Changes since v1:
0. drop the "add ARM946E-S CPU" patch;
1. convert to QOM, split DIGIC SoC code and board code
(thanks to Andreas Fa:rber, Peter Maydell and Peter Crosthwaite);
2. fix digic-uart (many thanks to Peter Crosthwaite
for his comments);
3. digic-boards: digic4_add_k8p3215uqb_rom(): update
rom image load code: use the '-bios' option.
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
next reply other threads:[~2013-09-07 7:07 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-07 7:04 Antony Pavlov [this message]
2013-09-07 7:04 ` [Qemu-devel] [RFC v5 1/5] hw/arm: add very initial support for Canon DIGIC SoC Antony Pavlov
2013-09-13 14:48 ` Andreas Färber
2013-09-07 7:04 ` [Qemu-devel] [RFC v5 2/5] hw/arm/digic: prepare DIGIC-based boards support Antony Pavlov
2013-10-17 18:01 ` Peter Maydell
2013-10-17 18:51 ` Georg Hofstetter
2013-10-17 19:17 ` Peter Maydell
2013-10-20 0:13 ` Georg Hofstetter
2013-10-22 11:26 ` Antony Pavlov
2013-12-04 20:22 ` Antony Pavlov
2013-12-04 20:29 ` Peter Maydell
2013-12-04 21:20 ` Antony Pavlov
2013-12-04 21:34 ` Peter Maydell
2013-12-05 0:20 ` Peter Crosthwaite
2013-12-05 8:02 ` Peter Maydell
2013-12-05 0:25 ` Peter Crosthwaite
2013-12-05 7:59 ` Peter Maydell
2013-12-07 0:55 ` [Qemu-devel] [RFC 0/2] ARM: make possible to use high vectors for reset exception Antony Pavlov
2013-12-07 0:55 ` [Qemu-devel] [RFC 1/2] ARM: cpu: add "hivecs" property (high vectors on reset) Antony Pavlov
2013-12-07 1:00 ` Peter Crosthwaite
2013-12-07 20:44 ` Antony Pavlov
2013-12-07 22:14 ` Peter Crosthwaite
2013-12-07 1:14 ` Peter Maydell
2013-12-07 0:55 ` [Qemu-devel] [RFC 2/2] ARM: arm_cpu_reset: make possible to use high vectors for reset_exc Antony Pavlov
2013-12-07 1:08 ` Peter Crosthwaite
2013-12-07 20:49 ` Antony Pavlov
2013-12-07 21:03 ` Peter Maydell
2013-09-07 7:04 ` [Qemu-devel] [RFC v5 3/5] hw/arm/digic: add timer support Antony Pavlov
2013-10-17 17:51 ` Peter Maydell
2013-09-07 7:04 ` [Qemu-devel] [RFC v5 4/5] hw/arm/digic: add UART support Antony Pavlov
2013-10-17 17:54 ` Peter Maydell
2013-10-22 10:48 ` Antony Pavlov
2013-09-07 7:04 ` [Qemu-devel] [RFC v5 5/5] hw/arm/digic: add NOR ROM support Antony Pavlov
2013-10-17 18:00 ` Peter Maydell
2013-09-13 14:37 ` [Qemu-devel] [RFC v5 0/5] hw/arm: add initial support for Canon DIGIC SoC Antony Pavlov
2013-09-20 9:01 ` [Qemu-devel] [RFC v5 0/5] hw/arm: add initial support for Canon DIGIC SoC: ping-ping Antony Pavlov
2013-09-28 10:41 ` [Qemu-devel] [RFC v5 0/5] hw/arm: add initial support for Canon DIGIC SoC: ping-ping-ping Antony Pavlov
2013-09-28 10:50 ` Peter Maydell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1378537467-13471-1-git-send-email-antonynpavlov@gmail.com \
--to=antonynpavlov@gmail.com \
--cc=afaerber@suse.de \
--cc=broscutamaker@gmail.com \
--cc=condellog@gmail.com \
--cc=georg.hofstetter@lx-networking.de \
--cc=paul@codesourcery.com \
--cc=pbonzini@redhat.com \
--cc=peter.crosthwaite@xilinx.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).