Hi all, since no one commented on my prior mail, i just took the liberty to write a little patch that chooses regs 0-5 if none are specified for 'mii dump'. Also fixes some alignment issues, typos and introduces the 'Selector Field' to the register description of PHY regs 4 and 5. On top, 'mii dump' now prints the PHY address in front of a register dump.
this is my first patch, if anything is wrong, plese tell me :) diff --git a/common/cmd_mii.c b/common/cmd_mii.c index d3dd6b1..1856c5b 100644 --- a/common/cmd_mii.c +++ b/common/cmd_mii.c @@ -78,9 +78,9 @@ static const MII_field_desc_t reg_3_desc_tbl[] = { static const MII_field_desc_t reg_4_desc_tbl[] = { { 15, 15, 0x01, "next page able" }, - { 14, 14, 0x01, "reserved" }, + { 14, 14, 0x01, "(reserved)" }, { 13, 13, 0x01, "remote fault" }, - { 12, 12, 0x01, "reserved" }, + { 12, 12, 0x01, "(reserved)" }, { 11, 11, 0x01, "asymmetric pause" }, { 10, 10, 0x01, "pause enable" }, { 9, 9, 0x01, "100BASE-T4 able" }, @@ -88,7 +88,7 @@ static const MII_field_desc_t reg_4_desc_tbl[] = { { 7, 7, 0x01, "100BASE-TX able" }, { 6, 6, 0x01, "10BASE-T full duplex able" }, { 5, 5, 0x01, "10BASE-T able" }, - { 4, 0, 0x1f, "xxx to do" }, + { 4, 0, 0x1f, "Selector Field" }, }; static const MII_field_desc_t reg_5_desc_tbl[] = { @@ -103,7 +103,7 @@ static const MII_field_desc_t reg_5_desc_tbl[] = { { 7, 7, 0x01, "100BASE-TX able" }, { 6, 6, 0x01, "10BASE-T full duplex able" }, { 5, 5, 0x01, "10BASE-T able" }, - { 4, 0, 0x1f, "xxx to do" }, + { 4, 0, 0x1f, "Selctor Field" }, }; typedef struct _MII_field_desc_and_len_t { const MII_field_desc_t *pdesc; @@ -130,6 +130,7 @@ static int special_field( ushort regval); static void MII_dump_0_to_5( + unsigned char addr, ushort regvals[6], uchar reglo, uchar reghi) @@ -138,6 +139,7 @@ static void MII_dump_0_to_5( for (i = 0; i < 6; i++) { if ((reglo <= i) && (i <= reghi)) + printf("%02x.", addr); dump_reg(regvals[i], ®_0_5_desc_tbl[i], &desc_and_len_tbl[i]); } @@ -218,7 +220,7 @@ static int special_field( else if ((regno == MII_ADVERTISE) && (pdesc->lo == 0)) { ushort sel_bits = (regval >> pdesc->lo) & pdesc->mask; - printf("%2u-%2u = %5u selector = %s", + printf("%2u-%2u = %5u Selector Field = %s", pdesc->hi, pdesc->lo, sel_bits, sel_bits == PHY_ANLPAR_PSB_802_3 ? "IEEE 802.3" : @@ -230,7 +232,7 @@ static int special_field( else if ((regno == MII_LPA) && (pdesc->lo == 0)) { ushort sel_bits = (regval >> pdesc->lo) & pdesc->mask; - printf("%2u-%2u = %u selector = %s", + printf("%2u-%2u = %5u Selector Field = %s", pdesc->hi, pdesc->lo, sel_bits, sel_bits == PHY_ANLPAR_PSB_802_3 ? "IEEE 802.3" : @@ -384,6 +386,10 @@ static int do_mii(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) "standard MII registers, 0-5.\n"); return 1; } + if (argc < 4){ /* no reg-range given -> dump 0 to 5 */ + reglo = 0; + reghi = 5; + } for (addr = addrlo; addr <= addrhi; addr++) { for (reg = reglo; reg < reghi + 1; reg++) { if (miiphy_read(devname, addr, reg, ®s[reg]) != 0) { @@ -394,8 +400,9 @@ static int do_mii(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) rcode = 1; } } - if (ok) - MII_dump_0_to_5(regs, reglo, reghi); + if (ok) { + MII_dump_0_to_5(addr, regs, reglo, reghi); + } printf("\n"); } } else if (strncmp(op, "de", 2) == 0) {
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot