From bb155b5a9091f7bb19e85edc6b2b2f5d4151d1f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fin=20Maa=C3=9F?= Date: Wed, 29 May 2024 11:57:18 +0200 Subject: [PATCH] litex_json2dts_zephyr.py: add custon handler for spiflash MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit add custon handler for spiflash. Signed-off-by: Fin Maaß --- litex/tools/litex_json2dts_zephyr.py | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/litex/tools/litex_json2dts_zephyr.py b/litex/tools/litex_json2dts_zephyr.py index 236a62e43..b5a2451d1 100755 --- a/litex/tools/litex_json2dts_zephyr.py +++ b/litex/tools/litex_json2dts_zephyr.py @@ -201,6 +201,31 @@ def spimaster_handler(name, parm, csr): return dtsi +def spiflash_handler(name, parm, csr): + registers = get_registers_of(name, csr) + if len(registers) == 0: + raise KeyError + + # Add memory mapped region for spiflash, the linker script in zephyr expects this region to be + # the entry with the name flash_mmap in the reg property of the spi controller. + try: + registers.append({ + 'addr': csr['memories'][name]['base'], + 'size': csr['memories'][name]['size'], + 'name': 'flash_mmap', + }) + except KeyError as e: + print('memory mapped', e, 'not found') + + dtsi = dts_reg(registers) + dtsi += dts_reg_names(registers) + + dtsi += indent("clock-frequency = <{}>;\n".format( + csr['constants'][name + '_phy_frequency'])) + + return dtsi + + def peripheral_handler(name, parm, csr): registers = get_registers_of(name, csr) if len(registers) == 0: @@ -244,7 +269,7 @@ overlay_handlers = { 'alias': 'spi0', }, 'spiflash': { - 'handler': peripheral_handler, + 'handler': spiflash_handler, 'alias': 'spi1', }, 'sdcard_block2mem': {