On Sat, 7 Sep 2013 11:04:22 +0400 Antony Pavlov <antonynpav...@gmail.com> wrote:
ping > [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 -- -- Best regards, Antony Pavlov