From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([209.51.188.92]:38508) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gmPzS-0006Ew-9E for qemu-devel@nongnu.org; Wed, 23 Jan 2019 16:23:20 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gmPzR-0001pe-IV for qemu-devel@nongnu.org; Wed, 23 Jan 2019 16:23:18 -0500 From: Stefan Hajnoczi Date: Wed, 23 Jan 2019 21:22:29 +0000 Message-Id: <20190123212234.32068-1-stefanha@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH v2 0/5] arm: microbit Non-Volatile Memory Controller List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Joel Stanley , qemu-block@nongnu.org, Thomas Huth , qemu-arm@nongnu.org, jusual@mail.ru, Laurent Vivier , jim@groklearning.com, Peter Crosthwaite , Peter Maydell , Paolo Bonzini , Kevin Wolf , Max Reitz , =?UTF-8?q?Steffen=20G=C3=B6rtz?= , Richard Henderson , Stefan Hajnoczi v2: * Add Patch 2 to call memory_region_flush_rom_device() from pflash devic= es [Peter] This series adds the Non-Volatile Memory Controller, which controls acces= s to the User Information Control Registers (UICR), Factory Information Contro= l Registers (FICR), and flash memory. This is the last piece of microbit work needed to make basic programs lik= e Micropython "Hello world" work under QEMU. Originally sent as part of Steffen's longer microbit device emulation ser= ies, I extracted this and deferred it until later because cleanups were necessar= y: * Use memory_region_flush_rom_device() to dirty/invalidate memory [Peter= ] ^--- Paolo: I CCed you on this new memory API * Fix device-introspect-test segfault due to missing owner when initiali= zing FICR and UICR memory regions [Peter] * Fix off-by-one assertion checks [Peter] * Fix missing whitespace at end of comment [Peter] * Clear UICR on reset - we'd need a block device for true non-volatility [Peter] Stefan Hajnoczi (2): memory: add memory_region_flush_rom_device() pflash: flush rom device memory region Steffen G=C3=B6rtz (3): hw/nvram/nrf51_nvm: Add nRF51 non-volatile memories arm: Instantiate NRF51 special NVM's and NVMC tests/microbit-test: Add tests for nRF51 NVMC hw/nvram/Makefile.objs | 1 + include/exec/memory.h | 18 ++ include/hw/arm/nrf51_soc.h | 2 + include/hw/nvram/nrf51_nvm.h | 64 ++++++ exec.c | 12 ++ hw/arm/nrf51_soc.c | 41 ++-- hw/block/pflash_cfi01.c | 5 + hw/block/pflash_cfi02.c | 8 + hw/nvram/nrf51_nvm.c | 381 +++++++++++++++++++++++++++++++++++ tests/microbit-test.c | 97 +++++++++ 10 files changed, 617 insertions(+), 12 deletions(-) create mode 100644 include/hw/nvram/nrf51_nvm.h create mode 100644 hw/nvram/nrf51_nvm.c --=20 2.20.1