From 9bc43b2dbfb3c0b2ab68e14237dbbc1dc51bcb56 Mon Sep 17 00:00:00 2001 From: Sebastien Bourdeauducq Date: Thu, 23 Apr 2020 23:00:36 +0800 Subject: [PATCH] kasli: support EEPROM on v2 --- artiq/firmware/libboard_misoc/i2c_eeprom.rs | 11 ++++++++++- artiq/firmware/libboard_misoc/net_settings.rs | 5 ++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/artiq/firmware/libboard_misoc/i2c_eeprom.rs b/artiq/firmware/libboard_misoc/i2c_eeprom.rs index 0a15f7535..be06a55b4 100644 --- a/artiq/firmware/libboard_misoc/i2c_eeprom.rs +++ b/artiq/firmware/libboard_misoc/i2c_eeprom.rs @@ -13,7 +13,7 @@ pub struct EEPROM { } impl EEPROM { - pub fn kasli_eeprom() -> Self { + pub fn kasli1_eeprom() -> Self { EEPROM { busno: 0, /// Same port as Si5324 @@ -22,6 +22,15 @@ impl EEPROM { } } + pub fn kasli2_eeprom() -> Self { + EEPROM { + busno: 0, + /// SHARED I2C bus + port: 11, + address: 0xae, + } + } + fn select(&self) -> Result<(), &'static str> { let mask: u16 = 1 << self.port; i2c::pca9548_select(self.busno, I2C_SWITCH0, mask as u8)?; diff --git a/artiq/firmware/libboard_misoc/net_settings.rs b/artiq/firmware/libboard_misoc/net_settings.rs index f58eae13f..b553b5120 100644 --- a/artiq/firmware/libboard_misoc/net_settings.rs +++ b/artiq/firmware/libboard_misoc/net_settings.rs @@ -33,7 +33,10 @@ pub fn get_adresses() -> NetAddresses { _ => { #[cfg(soc_platform = "kasli")] { - let eeprom = i2c_eeprom::EEPROM::kasli_eeprom(); + #[cfg(any(hw_rev = "v1.0", hw_rev = "v1.1"))] + let eeprom = i2c_eeprom::EEPROM::kasli1_eeprom(); + #[cfg(hw_rev = "v2.0")] + let eeprom = i2c_eeprom::EEPROM::kasli2_eeprom(); hardware_addr = eeprom.read_eui48() .map(|addr_buf| EthernetAddress(addr_buf))