All of lore.kernel.org
 help / color / mirror / Atom feed
From: Antony Pavlov <antonynpavlov@gmail.com>
To: Antony Pavlov <antonynpavlov@gmail.com>
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
	"Peter Crosthwaite" <peter.crosthwaite@xilinx.com>,
	qemu-devel@nongnu.org, "Paul Brook" <paul@codesourcery.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Andreas Färber" <afaerber@suse.de>
Subject: Re: [Qemu-devel] [PATCH 0/6] hw/arm: add initial support for Canon DIGIC SoC
Date: Mon, 16 Dec 2013 14:05:22 +0400	[thread overview]
Message-ID: <20131216140522.420e36e592bd0287a821d337@gmail.com> (raw)
In-Reply-To: <1387188183-607-1-git-send-email-antonynpavlov@gmail.com>

On Mon, 16 Dec 2013 14:02:57 +0400
Antony Pavlov <antonynpavlov@gmail.com> wrote:

Sorry!
I have added --cover-letter option but I have forgot add "v10". 

> Changes since v9:
>  1. rebase over Peter Crosthwaite's "Fix Support for ARM CBAR and
>     reset-hivecs" v5 patch series
>  2. qom-test: add "canon-a1100" to arm machines list
>  3. include a diffstat in the cover letter (--cover-letter option)
>  4. fix patches timestamp
> 
> Changes since v8:
>  1. digic-timer: move hardware-related macros to the header file
>  2. digic-timer: use extract32 instead of & >> logic
>  3. digic-timer, digic-uart: move header files to include/hw/...
>  4. digic-timer, digic-uart: fix other trivial stuff
>     fix emptyline; also add "/*< private >*/" and "/*< public >*/"
>  5. fix patches timestamp
> 
> Changes since v7:
>  1. change "fprintf(stderr," -> "error_report("
>     (thanks to Peter Crosthwaite)
>  2. fix digic_timer
>     * use ptimer in continuous mode according to Peter Crosthwaite's
>       recommendations;
>     * implement the 'control' and 'reload value' registers.
>  3. fix patches timestamp
> 
> Changes since v6:
>  1. rebase over Peter Crosthwaite's "Fix Support for ARM CBAR and
>     reset-hivecs" v4 patch series
>  2. digic_boards: drop start_addr
>     so the line 's->digic->cpu.env.regs[15] = board->start_addr;' has gone
>  3. hw/arc/digic: use "reset-hivecs" ARM CPU property
>  4. add a record to the MAINTAINERS file
> 
> Changes since v5:
>  1. rebase over latest master
>  2. digic_timer: add a reset function
>  3. digic_timer: add a VMStateDescription
>  4. digic_timer: fix whitespaces
>  5. digic_boards: fix whitespaces
>  6. move misplaced DIGIC_ROM* definitions
>     to the "hw/arm/digic: add NOR ROM support" patch
> 
> 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 insignificant (e.g. RAM-size,
> ROM type and size, GPIO usage) the other compact
> and DSLR cameras support can be easily 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.20131213
> 
> The precompiled ROM image usable with QEMU can be
> obtained here:
>   https://github.com/frantony/barebox/raw/next.digic.20131213/canon-a1100-rom1.bin
> Download this ROM image and just run QEMU:
>   qemu-system-arm -M canon-a1100 -serial stdio
> 
> Short build instruction for QEMU bios image (canon-a1100-rom1.bin):
>   $ git clone https://github.com/frantony/barebox -b next.digic.20131213
>   $ cd barebox
>   $ export ARCH=arm
>   $ export CROSS_COMPILE=<your ARM cross-compiler prefix>
>   $ make canon-a1100_defconfig
>   $ make
>   $ ./mk-canon-a1100-rom1.sh
> 
> 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
> 
> Antony Pavlov (6):
>   hw/arm: add very initial support for Canon DIGIC SoC
>   hw/arm/digic: prepare DIGIC-based boards support
>   hw/arm/digic: add timer support
>   hw/arm/digic: add UART support
>   hw/arm/digic: add NOR ROM support
>   MAINTAINERS: Document 'Canon DIGIC' machine
> 
>  MAINTAINERS                     |   6 ++
>  default-configs/arm-softmmu.mak |   1 +
>  hw/arm/Makefile.objs            |   2 +
>  hw/arm/digic.c                  | 115 ++++++++++++++++++++++++
>  hw/arm/digic_boards.c           | 154 +++++++++++++++++++++++++++++++
>  hw/char/Makefile.objs           |   1 +
>  hw/char/digic-uart.c            | 195 ++++++++++++++++++++++++++++++++++++++++
>  hw/timer/Makefile.objs          |   1 +
>  hw/timer/digic-timer.c          | 163 +++++++++++++++++++++++++++++++++
>  include/hw/arm/digic.h          |  43 +++++++++
>  include/hw/char/digic-uart.h    |  47 ++++++++++
>  include/hw/timer/digic-timer.h  |  46 ++++++++++
>  tests/qom-test.c                |   1 +
>  13 files changed, 775 insertions(+)
>  create mode 100644 hw/arm/digic.c
>  create mode 100644 hw/arm/digic_boards.c
>  create mode 100644 hw/char/digic-uart.c
>  create mode 100644 hw/timer/digic-timer.c
>  create mode 100644 include/hw/arm/digic.h
>  create mode 100644 include/hw/char/digic-uart.h
>  create mode 100644 include/hw/timer/digic-timer.h
> 
> -- 
> 1.8.5
> 


-- 
-- 
Best regards,
  Antony Pavlov

      parent reply	other threads:[~2013-12-16  9:57 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-16 10:02 [Qemu-devel] [PATCH 0/6] hw/arm: add initial support for Canon DIGIC SoC Antony Pavlov
2013-12-16 10:02 ` [Qemu-devel] [PATCH 1/6] hw/arm: add very " Antony Pavlov
2013-12-16 10:02 ` [Qemu-devel] [PATCH 2/6] hw/arm/digic: prepare DIGIC-based boards support Antony Pavlov
2013-12-16 10:03 ` [Qemu-devel] [PATCH 3/6] hw/arm/digic: add timer support Antony Pavlov
2013-12-16 10:03 ` [Qemu-devel] [PATCH 4/6] hw/arm/digic: add UART support Antony Pavlov
2013-12-16 10:03 ` [Qemu-devel] [PATCH 5/6] hw/arm/digic: add NOR ROM support Antony Pavlov
2013-12-16 10:03 ` [Qemu-devel] [PATCH 6/6] MAINTAINERS: Document 'Canon DIGIC' machine Antony Pavlov
2013-12-16 10:05 ` Antony Pavlov [this message]

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=20131216140522.420e36e592bd0287a821d337@gmail.com \
    --to=antonynpavlov@gmail.com \
    --cc=afaerber@suse.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.