# HG changeset patch # User Florian Pose # Date 1144766357 0 # Node ID 4e32bcc6b361e44382aaa84a8d8e8e7b47d926c0 # Parent aabbfdacc2ccaeb3fa6960076bdc07ee7aba900d Now fetching port physical layer from EEPROM diff -r aabbfdacc2cc -r 4e32bcc6b361 master/slave.c --- a/master/slave.c Tue Apr 11 14:38:34 2006 +0000 +++ b/master/slave.c Tue Apr 11 14:39:17 2006 +0000 @@ -124,6 +124,7 @@ slave->dl_link[i] = 0; slave->dl_loop[i] = 0; slave->dl_signal[i] = 0; + slave->sii_physical_layer[i] = 0xFF; } return 0; @@ -619,6 +620,8 @@ const uint8_t *data /**< Kategorie-Daten */ ) { + unsigned int i; + if (ec_slave_locate_string(slave, data[0], &slave->eeprom_group)) return -1; if (ec_slave_locate_string(slave, data[1], &slave->eeprom_name)) @@ -626,6 +629,9 @@ if (ec_slave_locate_string(slave, data[3], &slave->eeprom_desc)) return -1; + for (i = 0; i < 4; i++) + slave->sii_physical_layer[i] = (data[4] & (0x03 << (i * 2))) >> (i * 2); + return 0; } @@ -1011,7 +1017,22 @@ EC_INFO(" Data link status:\n"); for (i = 0; i < 4; i++) { - EC_INFO(" Port %i: link %s, loop %s, %s\n", i, + EC_INFO(" Port %i (", i); + switch (slave->sii_physical_layer[i]) { + case 0x00: + printk("EBUS"); + break; + case 0x01: + printk("100BASE-TX"); + break; + case 0x02: + printk("100BASE-FX"); + break; + default: + printk("unknown"); + } + printk(")\n"); + EC_INFO(" link %s, loop %s, %s\n", slave->dl_link[i] ? "up" : "down", slave->dl_loop[i] ? "closed" : "open", slave->dl_signal[i] ? "signal detected" : "no signal"); diff -r aabbfdacc2cc -r 4e32bcc6b361 master/slave.h --- a/master/slave.h Tue Apr 11 14:38:34 2006 +0000 +++ b/master/slave.h Tue Apr 11 14:39:17 2006 +0000 @@ -222,6 +222,7 @@ uint16_t sii_tx_mailbox_offset; /**< Adresse der Mailbox (Slave->Master) */ uint16_t sii_tx_mailbox_size; /**< Adresse der Mailbox (Slave->Master) */ uint16_t sii_mailbox_protocols; /**< Unterstützte Mailbox-Protokolle */ + uint8_t sii_physical_layer[4]; /**< Uebertragungsarten der Ports */ const ec_slave_type_t *type; /**< Zeiger auf die Beschreibung des Slave-Typs */