Skip to contentSkip to conversation

Adds Marvel 8 phy part M88E1149S to drivers/tsec.c

U-Boot-Users eran.liberty at gmail.com 3 participants 6 messages Jul 3, 2007 – Jul 4, 2007

lore
Share & tools
lore
#0 lore raw
tsec.c +34 -0
Index: drivers/tsec.c
===================================================================
@@ -900,6 +900,39 @@
 		phy_run_commands(priv, priv->phyinfo->shutdown);
 }
 
+struct phy_info phy_info_M88E1149S = {
+	0x1410ca,
+	"Marvell 88E1149S",
+	4,
+	(struct phy_cmd[]){	/* config */
+			   /* Reset and configure the PHY */
+			   {MIIM_CONTROL, MIIM_CONTROL_RESET, NULL},
+			   {0x1d, 0x1f, NULL},
+			   {0x1e, 0x200c, NULL},
+			   {0x1d, 0x5, NULL},
+			   {0x1e, 0x0, NULL},
+			   {0x1e, 0x100, NULL},
+			   {MIIM_GBIT_CONTROL, MIIM_GBIT_CONTROL_INIT, NULL},
+			   {MIIM_ANAR, MIIM_ANAR_INIT, NULL},
+			   {MIIM_CONTROL, MIIM_CONTROL_RESET, NULL},
+			   {MIIM_CONTROL, MIIM_CONTROL_INIT, &mii_cr_init},
+			   {miim_end,}
+			   },
+	(struct phy_cmd[]){	/* startup */
+			   /* Status is read once to clear old link state */
+			   {MIIM_STATUS, miim_read, NULL},
+			   /* Auto-negotiate */
+			   {MIIM_STATUS, miim_read, &mii_parse_sr},
+			   /* Read the status */
+			   {MIIM_88E1011_PHY_STATUS, miim_read,
+			    &mii_parse_88E1011_psr},
+			   {miim_end,}
+			   },
+	(struct phy_cmd[]){	/* shutdown */
+			   {miim_end,}
+			   },
+};
+
 /* The 5411 id is 0x206070, the 5421 is 0x2060e0 */
 struct phy_info phy_info_BCM5461S = {
 	0x02060c1,	/* 5461 ID */
@@ -1293,6 +1326,7 @@
 	&phy_info_cis8201,
 	&phy_info_BCM5461S,
 	&phy_info_M88E1011S,
+	&phy_info_M88E1149S,
 	&phy_info_M88E1111S,
 	&phy_info_M88E1145,
 	&phy_info_dm9161,
Acked-by
#1 lore raw
Quoted 1 line · eran.liberty at gmail.com

Hmmm; this PHY stuff should really common between all drivers... but that's not a comment on your patch.

Quoted 65 lines

Index: drivers/tsec.c
===================================================================

tsec.c (.../branches/exsw6000) (revision 69) renamed from tsec.c (.../tags/trunk/20070620_2_merge_to_exsw6000) (revision 69) +34 -1
@@ -900,6 +900,39 @@
                phy_run_commands(priv, priv->phyinfo->shutdown);
 }
 
+struct phy_info phy_info_M88E1149S = {
+       0x1410ca,
+       "Marvell 88E1149S",
+       4,
+       (struct phy_cmd[]){     /* config */
+                          /* Reset and configure the PHY */
+                          {MIIM_CONTROL, MIIM_CONTROL_RESET, NULL},
+                          {0x1d, 0x1f, NULL},
+                          {0x1e, 0x200c, NULL},
+                          {0x1d, 0x5, NULL},
+                          {0x1e, 0x0, NULL},
+                          {0x1e, 0x100, NULL},
+                          {MIIM_GBIT_CONTROL, MIIM_GBIT_CONTROL_INIT, NULL},
+                          {MIIM_ANAR, MIIM_ANAR_INIT, NULL},
+                          {MIIM_CONTROL, MIIM_CONTROL_RESET, NULL},
+                          {MIIM_CONTROL, MIIM_CONTROL_INIT, &mii_cr_init},
+                          {miim_end,}
+                          },
+       (struct phy_cmd[]){     /* startup */
+                          /* Status is read once to clear old link state */
+                          {MIIM_STATUS, miim_read, NULL},
+                          /* Auto-negotiate */
+                          {MIIM_STATUS, miim_read, &mii_parse_sr},
+                          /* Read the status */
+                          {MIIM_88E1011_PHY_STATUS, miim_read,
+                           &mii_parse_88E1011_psr},
+                          {miim_end,}
+                          },
+       (struct phy_cmd[]){     /* shutdown */
+                          {miim_end,}
+                          },
+};
+
 /* The 5411 id is 0x206070, the 5421 is 0x2060e0 */
 struct phy_info phy_info_BCM5461S = {
        0x02060c1,      /* 5461 ID */
@@ -1293,6 +1326,7 @@
        &phy_info_cis8201,
        &phy_info_BCM5461S,
        &phy_info_M88E1011S,
+       &phy_info_M88E1149S,
        &phy_info_M88E1111S,
        &phy_info_M88E1145,
        &phy_info_dm9161,
 
 
-------------------------------------------------------------------------

This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
U-Boot-Users mailing list
U-Boot-Users at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/u-boot-users

Signature · 4 lines
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
grant.likely at secretlab.ca
(403) 399-0195
#2 lore raw
In reply to eran.liberty at gmail.com
Quoted 12 lines · eran.liberty at gmail.com

Index: drivers/tsec.c
===================================================================

tsec.c +2 -0
@@ -900,6 +900,39 @@
 		phy_run_commands(priv, priv->phyinfo->shutdown);
 }
 
+struct phy_info phy_info_M88E1149S = {
+	0x1410ca,

tsec.c line 914

Quoted 10 lines
tsec.c +10 -0
+	"Marvell 88E1149S",
+	4,
+	(struct phy_cmd[]){	/* config */
+			   /* Reset and configure the PHY */
+			   {MIIM_CONTROL, MIIM_CONTROL_RESET, NULL},
+			   {0x1d, 0x1f, NULL},
+			   {0x1e, 0x200c, NULL},
+			   {0x1d, 0x5, NULL},
+			   {0x1e, 0x0, NULL},
+			   {0x1e, 0x100, NULL},

I believe the above five writes were only required for an Errata on an 88E1011 device and are not applicable to new devices.

Quoted 43 lines
tsec.c +22 -1
+			   {MIIM_GBIT_CONTROL, MIIM_GBIT_CONTROL_INIT, NULL},
+			   {MIIM_ANAR, MIIM_ANAR_INIT, NULL},
+			   {MIIM_CONTROL, MIIM_CONTROL_RESET, NULL},
+			   {MIIM_CONTROL, MIIM_CONTROL_INIT, &mii_cr_init},
+			   {miim_end,}
+			   },
+	(struct phy_cmd[]){	/* startup */
+			   /* Status is read once to clear old link state */
+			   {MIIM_STATUS, miim_read, NULL},
+			   /* Auto-negotiate */
+			   {MIIM_STATUS, miim_read, &mii_parse_sr},
+			   /* Read the status */
+			   {MIIM_88E1011_PHY_STATUS, miim_read,
+			    &mii_parse_88E1011_psr},
+			   {miim_end,}
+			   },
+	(struct phy_cmd[]){	/* shutdown */
+			   {miim_end,}
+			   },
+};
+
 /* The 5411 id is 0x206070, the 5421 is 0x2060e0 */
 struct phy_info phy_info_BCM5461S = {
 	0x02060c1,	/* 5461 ID */
@@ -1293,6 +1326,7 @@
 	&phy_info_cis8201,
 	&phy_info_BCM5461S,
 	&phy_info_M88E1011S,
+	&phy_info_M88E1149S,
 	&phy_info_M88E1111S,
 	&phy_info_M88E1145,
 	&phy_info_dm9161,
 
 
-------------------------------------------------------------------------

This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
U-Boot-Users mailing list
U-Boot-Users at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/u-boot-users

Signature · 20 lines
John Traill
Systems Engineer
Network and Computing Systems Group

Freescale Semiconductor UK LTD
Colvilles Road
East Kilbride
Glasgow G75 0TG, Scotland

Tel: +44 (0) 1355 355494
Fax: +44 (0) 1355 261790

E-mail: john.traill at freescale.com

Registration Number: SC262720
VAT Number: GB831329053

[ ] General Business Use
[ ] Freescale Internal Use Only
[ ] Freescale Confidential Proprietary
#3 lore raw
Quoted 11 lines · John Traill
Quoted 10 lines · eran.liberty at gmail.com

Index: drivers/tsec.c
===================================================================

tsec.c (.../branches/exsw6000) (revision 69) renamed from tsec.c (.../tags/trunk/20070620_2_merge_to_exsw6000) (revision 69) +0 -0
@@ -900,6 +900,39 @@
              phy_run_commands(priv, priv->phyinfo->shutdown);
 }
 
Quoted 14 lines

tsec.c (.../branches/exsw6000) (revision 69) line 914

Quoted 12 lines
tsec.c (.../branches/exsw6000) (revision 69) renamed from tsec.c (.../tags/trunk/20070620_2_merge_to_exsw6000) (revision 69) +12 -0
+struct phy_info phy_info_M88E1149S = {
+     0x1410ca,
+     "Marvell 88E1149S",
+     4,
+     (struct phy_cmd[]){     /* config */
+                        /* Reset and configure the PHY */
+                        {MIIM_CONTROL, MIIM_CONTROL_RESET, NULL},
+                        {0x1d, 0x1f, NULL},
+                        {0x1e, 0x200c, NULL},
+                        {0x1d, 0x5, NULL},
+                        {0x1e, 0x0, NULL},
+                        {0x1e, 0x100, NULL},

I believe the above five writes were only required for an Errata on an 88E1011 device and are not applicable to new devices.

I do not really understand the values I added. (not a phy expert) I needed a entry that identify itself as Marvell 88E1149S. so i copy-paste from the 88E1011 entry.
It works as is!
Tell me what needs to be cut out and I will try it.

Quoted 66 lines
Quoted 35 lines
tsec.c (.../branches/exsw6000) (revision 69) renamed from tsec.c (.../tags/trunk/20070620_2_merge_to_exsw6000) (revision 69) +22 -1
+                        {MIIM_GBIT_CONTROL, MIIM_GBIT_CONTROL_INIT, NULL},
+                        {MIIM_ANAR, MIIM_ANAR_INIT, NULL},
+                        {MIIM_CONTROL, MIIM_CONTROL_RESET, NULL},
+                        {MIIM_CONTROL, MIIM_CONTROL_INIT, &mii_cr_init},
+                        {miim_end,}
+                        },
+     (struct phy_cmd[]){     /* startup */
+                        /* Status is read once to clear old link state */
+                        {MIIM_STATUS, miim_read, NULL},
+                        /* Auto-negotiate */
+                        {MIIM_STATUS, miim_read, &mii_parse_sr},
+                        /* Read the status */
+                        {MIIM_88E1011_PHY_STATUS, miim_read,
+                         &mii_parse_88E1011_psr},
+                        {miim_end,}
+                        },
+     (struct phy_cmd[]){     /* shutdown */
+                        {miim_end,}
+                        },
+};
+
 /* The 5411 id is 0x206070, the 5421 is 0x2060e0 */
 struct phy_info phy_info_BCM5461S = {
      0x02060c1,      /* 5461 ID */
@@ -1293,6 +1326,7 @@
      &phy_info_cis8201,
      &phy_info_BCM5461S,
      &phy_info_M88E1011S,
+     &phy_info_M88E1149S,
      &phy_info_M88E1111S,
      &phy_info_M88E1145,
      &phy_info_dm9161,
 
 
-------------------------------------------------------------------------
Quoted 8 lines

This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
U-Boot-Users mailing list
U-Boot-Users at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/u-boot-users

--
John Traill
Systems Engineer
Network and Computing Systems Group

Freescale Semiconductor UK LTD
Colvilles Road
East Kilbride
Glasgow G75 0TG, Scotland

Tel: +44 (0) 1355 355494
Fax: +44 (0) 1355 261790

E-mail: john.traill at freescale.com

Registration Number: SC262720
VAT Number: GB831329053

[ ] General Business Use
[ ] Freescale Internal Use Only
[ ] Freescale Confidential Proprietary

#4 lore raw

Eran,

Quoted 29 lines · eran liberty
Quoted 12 lines · John Traill
Quoted 5 lines · eran.liberty at gmail.com

Index: drivers/tsec.c
===================================================================
--- drivers/tsec.c

(.../tags/trunk/20070620_2_merge_to_exsw6000) (revision 69)

Quoted 5 lines

+++ drivers/tsec.c (.../branches/exsw6000) (revision 69)

tsec.c +0 -0
@@ -900,6 +900,39 @@
              phy_run_commands(priv, priv->phyinfo->shutdown);
 }
 
Quoted 15 lines

tsec.c line 914

Quoted 12 lines
tsec.c +12 -0
+struct phy_info phy_info_M88E1149S = {
+     0x1410ca,
+     "Marvell 88E1149S",
+     4,
+     (struct phy_cmd[]){     /* config */
+                        /* Reset and configure the PHY */
+                        {MIIM_CONTROL, MIIM_CONTROL_RESET, NULL},
+                        {0x1d, 0x1f, NULL},
+                        {0x1e, 0x200c, NULL},
+                        {0x1d, 0x5, NULL},
+                        {0x1e, 0x0, NULL},
+                        {0x1e, 0x100, NULL},

I believe the above five writes were only required for an Errata on an 88E1011
device and are not applicable to new devices.

Quoted 5 lines

I do not really understand the values I added. (not a phy expert) I needed a entry that identify itself as Marvell 88E1149S. so i copy-paste from the 88E1011 entry.
It works as is!
Tell me what needs to be cut out and I will try it.

I'm not an expert on phys but I believe the following :-

Quoted 5 lines
Quoted 5 lines

tsec.c line 914

Quoted 5 lines
tsec.c +5 -0
+                        {0x1d, 0x1f, NULL},
+                        {0x1e, 0x200c, NULL},
+                        {0x1d, 0x5, NULL},
+                        {0x1e, 0x0, NULL},
+                        {0x1e, 0x100, NULL},

Has been cut'n'pasted from the 88E1011 entry but does not apply to other Marvell phys. Try removing the above lines and see if it still works.

Quoted 71 lines
Quoted 71 lines

Review line 920

Quoted 2 lines
(quoted diff) +1 -0
+                        {MIIM_GBIT_CONTROL, MIIM_GBIT_CONTROL_INIT, 

NULL},

tsec.c

Quoted 3 lines
tsec.c +3 -0
+                        {MIIM_ANAR, MIIM_ANAR_INIT, NULL},
+                        {MIIM_CONTROL, MIIM_CONTROL_RESET, NULL},
+                        {MIIM_CONTROL, MIIM_CONTROL_INIT, 

&mii_cr_init},

tsec.c

Quoted 4 lines
tsec.c +4 -0
+                        {miim_end,}
+                        },
+     (struct phy_cmd[]){     /* startup */
+                        /* Status is read once to clear old link 

state */

Quoted 20 lines
tsec.c +13 -0
+                        {MIIM_STATUS, miim_read, NULL},
+                        /* Auto-negotiate */
+                        {MIIM_STATUS, miim_read, &mii_parse_sr},
+                        /* Read the status */
+                        {MIIM_88E1011_PHY_STATUS, miim_read,
+                         &mii_parse_88E1011_psr},
+                        {miim_end,}
+                        },
+     (struct phy_cmd[]){     /* shutdown */
+                        {miim_end,}
+                        },
+};
+
 /* The 5411 id is 0x206070, the 5421 is 0x2060e0 */
 struct phy_info phy_info_BCM5461S = {
      0x02060c1,      /* 5461 ID */

tsec.c line 1332

Quoted 7 lines
tsec.c +1 -0
@@ -1293,6 +1326,7 @@
      &phy_info_cis8201,
      &phy_info_BCM5461S,
      &phy_info_M88E1011S,
+     &phy_info_M88E1149S,
      &phy_info_M88E1111S,
      &phy_info_M88E1145,
      &phy_info_dm9161,

-------------------------------------------------------------------------

Quoted 8 lines

This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
U-Boot-Users mailing list
U-Boot-Users at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/u-boot-users

Signature · 20 lines
John Traill
Systems Engineer
Network and Computing Systems Group

Freescale Semiconductor UK LTD
Colvilles Road
East Kilbride
Glasgow G75 0TG, Scotland

Tel: +44 (0) 1355 355494
Fax: +44 (0) 1355 261790

E-mail: john.traill at freescale.com

Registration Number: SC262720
VAT Number: GB831329053

[ ] General Business Use
[ ] Freescale Internal Use Only
[ ] Freescale Confidential Proprietary
Signature · 20 lines
John Traill
Systems Engineer
Network and Computing Systems Group

Freescale Semiconductor UK LTD
Colvilles Road
East Kilbride
Glasgow G75 0TG, Scotland

Tel: +44 (0) 1355 355494
Fax: +44 (0) 1355 261790

E-mail: john.traill at freescale.com

Registration Number: SC262720
VAT Number: GB831329053

[ ] General Business Use
[ ] Freescale Internal Use Only
[ ] Freescale Confidential Proprietary
#5 lore raw
Quoted 39 lines · John Traill

Eran,

Quoted 29 lines · eran liberty
Quoted 12 lines · John Traill
Quoted 5 lines · eran.liberty at gmail.com

Index: drivers/tsec.c
===================================================================
--- drivers/tsec.c

(.../tags/trunk/20070620_2_merge_to_exsw6000) (revision 69)

Quoted 5 lines

+++ drivers/tsec.c (.../branches/exsw6000) (revision 69)

tsec.c +0 -0
@@ -900,6 +900,39 @@
              phy_run_commands(priv, priv->phyinfo->shutdown);
 }
 
Quoted 15 lines

tsec.c line 914

Quoted 12 lines
tsec.c +12 -0
+struct phy_info phy_info_M88E1149S = {
+     0x1410ca,
+     "Marvell 88E1149S",
+     4,
+     (struct phy_cmd[]){     /* config */
+                        /* Reset and configure the PHY */
+                        {MIIM_CONTROL, MIIM_CONTROL_RESET, NULL},
+                        {0x1d, 0x1f, NULL},
+                        {0x1e, 0x200c, NULL},
+                        {0x1d, 0x5, NULL},
+                        {0x1e, 0x0, NULL},
+                        {0x1e, 0x100, NULL},

I believe the above five writes were only required for an Errata on an 88E1011
device and are not applicable to new devices.

Quoted 5 lines

I do not really understand the values I added. (not a phy expert) I needed a entry that identify itself as Marvell 88E1149S. so i copy-paste from the 88E1011 entry.
It works as is!
Tell me what needs to be cut out and I will try it.

I'm not an expert on phys but I believe the following :-

Quoted 9 lines
Quoted 5 lines
Quoted 5 lines

tsec.c line 914

Quoted 5 lines
tsec.c +5 -0
+                        {0x1d, 0x1f, NULL},
+                        {0x1e, 0x200c, NULL},
+                        {0x1d, 0x5, NULL},
+                        {0x1e, 0x0, NULL},
+                        {0x1e, 0x100, NULL},

Has been cut'n'pasted from the 88E1011 entry but does not apply to other Marvell phys. Try removing the above lines and see if it still works.

It works :)

Thanks.

Patch follows

Liberty

Quoted 94 lines
Quoted 64 lines
Quoted 64 lines

Review line 920

Quoted 2 lines
(quoted diff) +1 -0
+                        {MIIM_GBIT_CONTROL, MIIM_GBIT_CONTROL_INIT,

NULL},

tsec.c

Quoted 3 lines
tsec.c +3 -0
+                        {MIIM_ANAR, MIIM_ANAR_INIT, NULL},
+                        {MIIM_CONTROL, MIIM_CONTROL_RESET, NULL},
+                        {MIIM_CONTROL, MIIM_CONTROL_INIT,

&mii_cr_init},

tsec.c

Quoted 4 lines
tsec.c +4 -0
+                        {miim_end,}
+                        },
+     (struct phy_cmd[]){     /* startup */
+                        /* Status is read once to clear old link

state */

Quoted 20 lines
tsec.c +13 -0
+                        {MIIM_STATUS, miim_read, NULL},
+                        /* Auto-negotiate */
+                        {MIIM_STATUS, miim_read, &mii_parse_sr},
+                        /* Read the status */
+                        {MIIM_88E1011_PHY_STATUS, miim_read,
+                         &mii_parse_88E1011_psr},
+                        {miim_end,}
+                        },
+     (struct phy_cmd[]){     /* shutdown */
+                        {miim_end,}
+                        },
+};
+
 /* The 5411 id is 0x206070, the 5421 is 0x2060e0 */
 struct phy_info phy_info_BCM5461S = {
      0x02060c1,      /* 5461 ID */

tsec.c line 1332

Quoted 7 lines
tsec.c +1 -0
@@ -1293,6 +1326,7 @@
      &phy_info_cis8201,
      &phy_info_BCM5461S,
      &phy_info_M88E1011S,
+     &phy_info_M88E1149S,
      &phy_info_M88E1111S,
      &phy_info_M88E1145,
      &phy_info_dm9161,

-------------------------------------------------------------------------

Quoted 8 lines

This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
U-Boot-Users mailing list
U-Boot-Users at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/u-boot-users

--
John Traill
Systems Engineer
Network and Computing Systems Group

Freescale Semiconductor UK LTD Colvilles Road
East Kilbride
Glasgow G75 0TG, Scotland

Tel: +44 (0) 1355 355494
Fax: +44 (0) 1355 261790

E-mail: john.traill at freescale.com

Quoted 7 lines
Quoted 7 lines

Registration Number: SC262720 VAT Number: GB831329053

[ ] General Business Use
[ ] Freescale Internal Use Only [ ] Freescale Confidential Proprietary

--
John Traill
Systems Engineer
Network and Computing Systems Group

Freescale Semiconductor UK LTD
Colvilles Road
East Kilbride
Glasgow G75 0TG, Scotland

Tel: +44 (0) 1355 355494
Fax: +44 (0) 1355 261790

E-mail: john.traill at freescale.com

Registration Number: SC262720
VAT Number: GB831329053

[ ] General Business Use
[ ] Freescale Internal Use Only
[ ] Freescale Confidential Proprietary