From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([209.51.188.92]:56753) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ghHMb-0007zZ-Ib for qemu-devel@nongnu.org; Wed, 09 Jan 2019 12:09:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ghHMZ-00048Q-Ts for qemu-devel@nongnu.org; Wed, 09 Jan 2019 12:09:57 -0500 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]:35526) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ghHMZ-0003vg-HK for qemu-devel@nongnu.org; Wed, 09 Jan 2019 12:09:55 -0500 Received: by mail-wm1-x335.google.com with SMTP id t200so9166803wmt.0 for ; Wed, 09 Jan 2019 09:09:37 -0800 (PST) MIME-Version: 1.0 From: Stefan Hajnoczi Date: Wed, 9 Jan 2019 17:09:23 +0000 Message-ID: Content-Type: text/plain; charset="UTF-8" Subject: [Qemu-devel] Internship idea: I2C passthrough List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel Cc: Paolo Bonzini , Jim Mussared , Joel Stanley , Jonathan Austin Hi folks, You may be interested in I2C passthrough support in QEMU. Paolo and I brainstormed the idea and I've written up a rough project summary below. It still needs some work to make this a solid internship project idea. Any thoughts? Would you like to co-mentor this summer? === I2C Passthrough === '''Summary:''' Implement I2C bus passthrough on Linux hosts so that emulated Raspberry Pi or micro:bit boards can talk to real I2C devices. QEMU emulates I2C devices in software but currently cannot pass through real I2C devices from the host to the guest. It would be useful to access real I2C devices from inside the guest, for example for developers writing and testing software under QEMU on their computer. The project consists of the following tasks: * Implement -object i2c-bus-passthrough,adapter=N,id=my-i2c-bus * Add i2c-bus-passthrough support to at least 1 existing emulated I2C controller * Implement micro:bit TWI controller emulation on the nRF51 system-on-chip This project will allow you to learn about the I2C bus and how to write device emulation code in QEMU. You will enjoy it if you like working with physical hardware. '''Links:''' * [https://en.wikipedia.org/wiki/I%C2%B2C I2C wikipedia page] * [https://elinux.org/Interfacing_with_I2C_Devices Overview of Linux I2C programming interfaces] * [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/plain/Documentation/i2c/dev-interface Linux I2C userspace interface documentation] '''Details:''' * Skill level: intermediate * Language: C * Mentor: Paolo Bonzini ("bonzini" on IRC), Stefan Hajnoczi ("stefanha" on IRC)