This patch set contains the support I2C platform EEPROM and multi-dtb mechanism on Unmatched board. There are two revisions of Unmatched with different DDR timing respectively, so we'd like to support multi-dtb in SPL, then it can select the right DTB at runtime according to PCB revision in I2C EEPROM to initialize the right DDR timing.
The I2C EEPROM support is refactored based on Paul Welmsley's porting and adopt many suggestions from David Abdurachmanov. Zong Li (6): board: sifive: unmatched: add initial support for a platform ID EEPROM riscv: sifive: fu740: kconfig: Enable support for Opencores I2C controller riscv: sifive: fu740: Support i2c in spl board: sifive: Add an interface to get PCB revision riscv: dts: add dts for unmatched rev1 board: sifive: support spl multi-dtb on unmatched board arch/riscv/cpu/fu740/Kconfig | 3 + arch/riscv/dts/Makefile | 2 +- arch/riscv/dts/fu740-c000-u-boot.dtsi | 4 + .../fu740-hifive-unmatched-a00-ddr-rev1.dtsi | 1489 +++++++++++++++++ .../dts/hifive-unmatched-a00-rev1-u-boot.dtsi | 7 + arch/riscv/dts/hifive-unmatched-a00-rev1.dts | 4 + arch/riscv/include/asm/arch-fu740/eeprom.h | 15 + board/sifive/unmatched/Kconfig | 1 + board/sifive/unmatched/Makefile | 1 + .../unmatched/hifive-platform-i2c-eeprom.c | 574 +++++++ board/sifive/unmatched/spl.c | 28 +- configs/sifive_unmatched_defconfig | 4 + include/configs/sifive-unmatched.h | 6 + 13 files changed, 2135 insertions(+), 3 deletions(-) create mode 100644 arch/riscv/dts/fu740-hifive-unmatched-a00-ddr-rev1.dtsi create mode 100644 arch/riscv/dts/hifive-unmatched-a00-rev1-u-boot.dtsi create mode 100644 arch/riscv/dts/hifive-unmatched-a00-rev1.dts create mode 100644 arch/riscv/include/asm/arch-fu740/eeprom.h create mode 100644 board/sifive/unmatched/hifive-platform-i2c-eeprom.c -- 2.31.1