From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47656) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VEyeL-00068F-P5 for qemu-devel@nongnu.org; Thu, 29 Aug 2013 05:36:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VEyeI-0003XD-0f for qemu-devel@nongnu.org; Thu, 29 Aug 2013 05:36:21 -0400 Received: from mail-lb0-x22d.google.com ([2a00:1450:4010:c04::22d]:36010) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VEyeH-0003Ws-No for qemu-devel@nongnu.org; Thu, 29 Aug 2013 05:36:17 -0400 Received: by mail-lb0-f173.google.com with SMTP id o14so361580lbi.18 for ; Thu, 29 Aug 2013 02:36:16 -0700 (PDT) From: Antony Pavlov Date: Thu, 29 Aug 2013 13:33:48 +0400 Message-Id: <1377768833-11400-1-git-send-email-antonynpavlov@gmail.com> Subject: [Qemu-devel] [RFC 0/5] add initial support for Canon DIGIC SoC List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini , Paul Brook , Peter Crosthwaite , Peter Maydell , Alex Dumitrache , g3gg0 , Giovanni Condello Cc: qemu-devel@nongnu.org [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