
Hi,
On Tue, Aug 14, 2018 at 11:07 AM Michal Simek michal.simek@xilinx.com wrote:
On 14.8.2018 06:55, Luis Araneda wrote:
Implement a method for reading the MAC address from an SPI flash memory. In particular, this method is used by the Zybo Z7 board to read the MAC address from the OTP region in the SPI NOR memory [...] +#if defined(CONFIG_MAC_ADDR_IN_SPI_FLASH)
struct spi_flash *flash;
struct udevice *dev;
int ret;
ret = spi_flash_probe_bus_cs(CONFIG_SF_DEFAULT_BUS,
CONFIG_SF_DEFAULT_CS,
0, 0, &dev);
if (ret) {
printf("SPI(bus:%u cs:%u) probe failed\n",
CONFIG_SF_DEFAULT_BUS,
CONFIG_SF_DEFAULT_CS);
return 0;
}
flash = dev_get_uclass_priv(dev);
flash->read_cmd = CONFIG_MAC_ADDR_SPI_FLASH_READ_CMD;
if (spi_flash_read_dm(dev,
CONFIG_MAC_ADDR_SPI_FLASH_DATA_OFFSET,
6, ethaddr))
printf("SPI MAC address read failed\n");
device_remove(dev, DM_REMOVE_NORMAL);
+#endif return 0; }
diff --git a/configs/zynq_zybo_z7_defconfig b/configs/zynq_zybo_z7_defconfig index ad44e772aa..ca402e3231 100644 --- a/configs/zynq_zybo_z7_defconfig +++ b/configs/zynq_zybo_z7_defconfig @@ -44,6 +44,9 @@ CONFIG_DM_GPIO=y CONFIG_SYS_I2C_ZYNQ=y CONFIG_ZYNQ_I2C0=y CONFIG_ZYNQ_I2C1=y +CONFIG_MAC_ADDR_IN_SPI_FLASH=y +CONFIG_MAC_ADDR_SPI_FLASH_READ_CMD=0x4b
I am doing spi but isn't this any standard OTP read command which should put to spi framework.
I'm not sure if there is an standard OTP read command, they might be vendor/model specific. Jagan, is this possible currently, or might it be covered by the new SPI-mem/SPI-NAND code?
In order to keep this moving, I would like to get some specific question answered: 1: Should the final code be in the "zynq_board_read_rom_ethaddr" function like it is now? 2: On an ideal solution, should I remove the probing and read_cmd, and call a function to read from OTP at a certain offset? In that case the CONFIG_MAC_ADDR_SPI_FLASH_READ_CMD would't be necessary. 3: Is the CONFIG_MAC_ADDR_IN_SPI_FLASH an acceptable solution to enable the feature?
Thanks,
Luis Araneda.