[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [microblaze-uclinux] Ethernet update for David Banas' NuHorizons board project



Sure, see attached.

It's truly hack, though, so standard disclaimers apply.

You'll likely need to have a datasheet w/Ethernet PHY register
descriptions handy, but they are standardized registers.  And I do use
the Linux-approved #defines to identify the registers to read/write, so
it shouldn't be too bad.

MII_ADVERTISE: set bits 5, 6; clear 7, 8, 9.
MII_BMSR: set 3, 12; clear 13, 14, 15
MII_BMCR: set 9, 12

Bascially tells the PHY that it is only capable of 10Mbps and then
forces a re-negotation to occur.  I should probably wait for the
negotation to complete before proceeding, but ... that would be a very
un-hacky thing to do.

Steve

--- David Banas <dbanas@nuhorizons.com> wrote:

> Steve,
> 
> Could you post your hack, please?
> 
> Thanks,
> 
> David Banas
> Field Applications Engineer
> Nu Horizons Electronics Corp.
> 2070 Ringwood Avenue
> San Jose, CA 95131
> (408)434-0800 - office
> (415)846-5837 - cell
> http://www.nuhorizons.com
> 
> > -----Original Message-----
> > From: owner-microblaze-uclinux@itee.uq.edu.au
> [mailto:owner-microblaze-
> > uclinux@itee.uq.edu.au] On Behalf Of Steve Sanders
> > Sent: Thursday, March 24, 2005 9:25 AM
> > To: microblaze-uclinux@itee.uq.edu.au
> > Subject: Re: [microblaze-uclinux] Ethernet update for David Banas'
> > NuHorizons board project
> >
> > FYI - I'm working on a board that's using a 44MHz system clock and
> > Ethernet is working at 10Mbps.  To get it working ... I hacked up
> the
> > Ethernet driver to force 10Mbps-only mode and then triggered a
> > re-negotiation with its link partner.  Worked OK after that.
> >
> > Also had some problems with it auto-detecting the PHY address
> properly.
> >   Sometimes would detect the PHY at 0x1, 0x2, or 0x3.  Hard-coded
> the
> > address with the appropriate value for my board (0x3)
> >
> > Steve
> >
> >
> > --- "Lee, Michael" <MichaelLee@pesa.com> wrote:
> >
> > > The problems were a pinout error and a slow system
> > > clock.  There is some MAC state machine that needs
> > > 65MHz to keep up with 100MBps.  I guess the IP is
> > > not smart enough to force 10Mbps if the bus speed
> > > is under 65MHz.
> > >
> > > Ping worked, and DHCP must have worked.  What else
> > > should I try to exercise it?
> > >
> > > Mike Lee
> > >
> > >
> > > > Linux version 2.4.29-uc0 (dbanas@linux) (gcc version 2.95.3-4
> > Xilinx
> > > EDK 6.3 Bui
> > > ld EDK_Gmm.11.2) #12 Tue Mar 22 06:40:27 PST 2005
> > > On node 0 totalpages: 4096
> > > zone(0): 4096 pages.
> > > zone(1): 0 pages.
> > > zone(2): 0 pages.
> > > CPU: MICROBLAZE
> > > Console: xmbserial on UARTLite
> > > Kernel command line:
> > > Calibrating delay loop... 24.32 BogoMIPS
> > > Memory: 16MB = 16MB total
> > > Memory: 14136KB available (1109K code, 951K data, 44K init)
> > > Dentry cache hash table entries: 2048 (order: 2, 16384 bytes)
> > > Inode cache hash table entries: 1024 (order: 1, 8192 bytes)
> > > Mount cache hash table entries: 512 (order: 0, 4096 bytes)
> > > Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
> > > Page-cache hash table entries: 4096 (order: 2, 16384 bytes)
> > > POSIX conformance testing by UNIFIX
> > > Linux NET4.0 for Linux 2.4
> > > Based upon Swansea University Computer Society NET3.039
> > > Initializing RT netlink socket
> > > Microblaze UARTlite serial driver version 1.00
> > > ttyS0 at 0xffff2000 (irq = 2) is a Microblaze UARTlite
> > > Starting kswapd
> > > xgpio #0 at 0xFFFF5000 mapped to 0xFFFF5000
> > > Xilinx GPIO registered
> > > RAMDISK driver initialized: 16 RAM disks of 4096K size 1024
> blocksize
> > > eth0: using fifo mode.
> > > eth0: Xilinx EMAC #0 at 0xC0000000 mapped to 0xC0000000, irq=1
> > > eth0: id 2.0h; block id 7, type 1
> > > MBVanilla flash probe(0xff800000,8388608,2): 800000 at ff800000
> > > Entering mtd_do_chip_probe
> > > Returning from genprobe_ident_chips not null
> > > genprobe_ident_chips returned non null
> > > Entering check_cmd_set
> > >  Amd/Fujitsu Extended Query Table v1.0 at 0x0040
> > > reading id at :2
> > > Flash: JEDEC Device ID is 0xCB. Assuming broken CFI table.
> > > bootloc=3
> > > number of CFI chips: 1
> > > cfi_cmdset_0002: Disabling fast programming due to code
> brokenness.
> > > mtd_do_chip_probe returning non null mtd
> > > Creating 8 MTD partitions on "Flash":
> > > 0x00000000-0x00020000 : "Bootloader"
> > > 0x00020000-0x00040000 : "Bootargs"
> > > 0x00040000-0x00060000 : "MAC"
> > > 0x00080000-0x00100000 : "Config"
> > > 0x00060000-0x00080000 : "Spare"
> > > 0x00100000-0x00300000 : "Image"
> > > 0x00300000-0x00800000 : "JFFS2"
> > > mtd: partition "JFFS2" extends beyond the end of device "Flash"
> --
> > > size truncate
> > > d to 0x100000
> > > 0x00000000-0x00400000 : "Flash"
> > > MBVanilla ram probe(0xfe14f6bc,737280,4): b4000 at fe14f6bc
> > > Creating 1 MTD partitions on "RAM":
> > > 0x00000000-0x000b4000 : "Romfs"
> > > NET4: Linux TCP/IP 1.0 for NET4.0
> > > IP Protocols: ICMP, UDP, TCP
> > > IP: routing cache hash table of 512 buckets, 4Kbytes
> > > TCP: Hash tables configured (established 1024 bind 1024)
> > > NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
> > > VFS: Mounted root (romfs filesystem) readonly.
> > > Freeing init memory: 44K
> > > Mounting proc:
> > > Mounting var:
> > > Populating /var:
> > > Running local start scripts.
> > > Mounting /etc/config:
> > > Populating /etc/config:
> > > flatfsd: invalid header magic
> > > flatfsd: Nonexistent or bad flatfs (-183), creating new one...
> > > flatfsd: Wrote 288 bytes to flash in 18 seconds
> > > flatfsd: Created 4 configuration files (184 bytes)
> > > Setting hostname:
> > > Setting up interface lo:
> > > Starting DHCP client:
> > > Starting inetd:
> > > Starting thttpd:
> > >
> > > uclinux-auto login: root
> > > Password:
> > > # ifconfig -a
> > > eth0      Link encap:Ethernet  HWaddr 00:00:C0:A3:E5:44
> > >           inet addr:192.168.0.41  Bcast:192.168.3.255
> > > Mask:255.255.252.0
> > >           UP BROADCAST NOTRAILERS RUNNING  MTU:1500  Metric:1
> > >           RX packets:41 errors:0 dropped:0 overruns:0 frame:0
> > >           TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
> > >           collisions:0 txqueuelen:1000
> > >           Interrupt:1
> > >
> > > lo        Link encap:Local Loopback
> > >           inet addr:127.0.0.1  Mask:255.0.0.0
> > >           UP LOOPBACK RUNNING  MTU:16436  Metric:1
> > >           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
> > >           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
> > >           collisions:0 txqueuelen:0
> > >
> > > [after ping from my PC, which worked:]
> > >
> > >
> > > # ifconfig -a
> > > eth0      Link encap:Ethernet  HWaddr 00:00:C0:A3:E5:44
> > >           inet addr:192.168.0.41  Bcast:192.168.3.255
> > > Mask:255.255.252.0
> > >           UP BROADCAST NOTRAILERS RUNNING  MTU:1500  Metric:1
> > >           RX packets:110 errors:0 dropped:0 overruns:0 frame:0
> > >           TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
> > >           collisions:0 txqueuelen:1000
> > >           Interrupt:1
> > >
> > > lo        Link encap:Local Loopback
> > >           inet addr:127.0.0.1  Mask:255.0.0.0
> > >           UP LOOPBACK RUNNING  MTU:16436  Metric:1
> > >           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
> > >           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
> > >           collisions:0 txqueuelen:0
> > >
> > > # dhrystone
> > > dhrystone: not found
> > > # rats
> > > rats: not found
> > > # ratstone
> > > ratstone: not found
> > > #
> >
> > ___________________________
> > microblaze-uclinux mailing list
> > microblaze-uclinux@itee.uq.edu.au
> > Project Home Page :
> http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
> > Mailing List Archive :
> http://www.itee.uq.edu.au/~listarch/microblaze-
> > uclinux/
> >
> >
> >
>
________________________________________________________________________
> > This email has been scanned for all viruses by the MessageLabs
> Email
> > Security System. For more information on a proactive email security
> > service working around the clock, around the globe, visit
> > http://www.messagelabs.com
> >
>
________________________________________________________________________
> 
> 
> 
> ___________________________
> microblaze-uclinux mailing list
> microblaze-uclinux@itee.uq.edu.au
> Project Home Page :
> http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
> Mailing List Archive :
> http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/
> 
> 

___________________________
microblaze-uclinux mailing list
microblaze-uclinux@itee.uq.edu.au
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/