3 * Reinhard Meyer, EMK Elektronik GmbH, r.meyer@emk-elektronik.de
5 * SPDX-License-Identifier: GPL-2.0+
10 /*****************************************************************************
11 * read "factory" part of EEPROM and set some environment variables
12 *****************************************************************************/
13 void read_factory_r (void)
15 /* read 'factory' part of EEPROM */
22 /* get length first */
23 addr = CONFIG_SYS_FACT_OFFSET;
24 if (eeprom_read (CONFIG_SYS_I2C_FACT_ADDR, addr, buf, 2)) {
26 printf ("cannot read factory configuration\n");
27 printf ("be sure to set ethaddr yourself!\n");
30 length = buf[0] + (buf[1] << 8);
34 if (length < 20 || length > CONFIG_SYS_FACT_SIZE - 2)
40 len = length > 80 ? 80 : length;
41 if (eeprom_read (CONFIG_SYS_I2C_FACT_ADDR, addr, buf, len))
43 /* mark end of buffer */
45 /* search end of line */
46 for (p = buf; *p && *p != 0x0a; p++);
50 /* advance to next line start */
53 /*printf ("%s\n", buf); */
54 /* search for our specific entry */
55 if (!strncmp ((char *) buf, "[RLA/lan/Ethernet] ", 19)) {
56 setenv ("ethaddr", (char *)(buf + 19));
57 } else if (!strncmp ((char *) buf, "[BOARD/SERIAL] ", 15)) {
58 setenv ("serial#", (char *)(buf + 15));
59 } else if (!strncmp ((char *) buf, "[BOARD/TYPE] ", 13)) {
60 setenv ("board_id", (char *)(buf + 13));