[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 0/6] hw/arm: add initial support for Canon DIGIC
From: |
Antony Pavlov |
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 |
On Mon, 16 Dec 2013 14:02:57 +0400
Antony Pavlov <address@hidden> 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
- [Qemu-devel] [PATCH 0/6] hw/arm: add initial support for Canon DIGIC SoC, Antony Pavlov, 2013/12/16
- [Qemu-devel] [PATCH 1/6] hw/arm: add very initial support for Canon DIGIC SoC, Antony Pavlov, 2013/12/16
- [Qemu-devel] [PATCH 2/6] hw/arm/digic: prepare DIGIC-based boards support, Antony Pavlov, 2013/12/16
- [Qemu-devel] [PATCH 3/6] hw/arm/digic: add timer support, Antony Pavlov, 2013/12/16
- [Qemu-devel] [PATCH 4/6] hw/arm/digic: add UART support, Antony Pavlov, 2013/12/16
- [Qemu-devel] [PATCH 6/6] MAINTAINERS: Document 'Canon DIGIC' machine, Antony Pavlov, 2013/12/16
- [Qemu-devel] [PATCH 5/6] hw/arm/digic: add NOR ROM support, Antony Pavlov, 2013/12/16
- Re: [Qemu-devel] [PATCH 0/6] hw/arm: add initial support for Canon DIGIC SoC,
Antony Pavlov <=