Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.sys.apple2.programmer > #1773 > unrolled thread

Uthernet II W5100 auto-increment

Started byD Finnigan <dog_cow@macgui.com>
First post2015-07-20 21:19 +0000
Last post2015-08-10 14:32 +0000
Articles 10 — 4 participants

Back to article view | Back to comp.sys.apple2.programmer


Contents

  Uthernet II W5100 auto-increment D Finnigan <dog_cow@macgui.com> - 2015-07-20 21:19 +0000
    Re: Uthernet II W5100 auto-increment David Schmenk <dschmenk@gmail.com> - 2015-07-20 21:46 -0700
      Re: Uthernet II W5100 auto-increment D Finnigan <dog_cow@macgui.com> - 2015-07-21 23:40 +0000
        Re: Uthernet II W5100 auto-increment David Schmenk <dschmenk@gmail.com> - 2015-07-29 06:41 -0700
          Re: Uthernet II W5100 auto-increment D Finnigan <dog_cow@macgui.com> - 2015-07-30 20:35 +0000
        Re: Uthernet II W5100 auto-increment ol.sc@web.de (Oliver Schmidt) - 2015-08-01 14:01 +0000
          Re: Uthernet II W5100 auto-increment D Finnigan <dog_cow@macgui.com> - 2015-08-04 23:21 +0000
            Re: Uthernet II W5100 auto-increment ol.sc@web.de (Oliver Schmidt) - 2015-08-09 14:27 +0000
              Re: Uthernet II W5100 auto-increment spectrumdaddy@nospam.com (Ewen) - 2015-08-10 07:43 +0100
                Re: Uthernet II W5100 auto-increment D Finnigan <dog_cow@macgui.com> - 2015-08-10 14:32 +0000

#1773 — Uthernet II W5100 auto-increment

FromD Finnigan <dog_cow@macgui.com>
Date2015-07-20 21:19 +0000
SubjectUthernet II W5100 auto-increment
Message-ID<dog_cow-1437427269@macgui.com>
I can't get auto-increment for addresses in the W5100 to work. I'm using $03
as the Mode byte. Anyone know? This is really quite a setback!

-- 
]DF$
The Marina IP stack for Apple II--
http://marina.a2hq.com/

[toc] | [next] | [standalone]


#1774

FromDavid Schmenk <dschmenk@gmail.com>
Date2015-07-20 21:46 -0700
Message-ID<14c20f7e-fc62-46d2-a440-b9f9c3f9bdd3@googlegroups.com>
In reply to#1773
On Monday, 20 July 2015 14:21:11 UTC-7, D Finnigan  wrote:
> I can't get auto-increment for addresses in the W5100 to work. I'm using $03
> as the Mode byte. Anyone know? This is really quite a setback!
> 
> -- 
> ]DF$
> The Marina IP stack for Apple II--
> http://marina.a2hq.com/

I couldn't get it stable on my home-brew Wiznet card, but I figured it was because of my wiring mess. To get around it, I set the register address before every read/write. Not what I wanted, but it works. Perhaps I did something wrong as well - I use mode $03.

Dave...

[toc] | [prev] | [next] | [standalone]


#1775

FromD Finnigan <dog_cow@macgui.com>
Date2015-07-21 23:40 +0000
Message-ID<dog_cow-1437522089@macgui.com>
In reply to#1774
David Schmenk wrote:
> On Monday, 20 July 2015 14:21:11 UTC-7, D Finnigan  wrote:
>> I can't get auto-increment for addresses in the W5100 to work. I'm using
>> $03
>> as the Mode byte. Anyone know? This is really quite a setback!
>> 
> 
> I couldn't get it stable on my home-brew Wiznet card, but I figured it was
> because of my wiring mess. To get around it, I set the register address
> before every read/write. Not what I wanted, but it works.

That's what the Contiki/ ip65 driver is doing.

 I am *not* happy about this. :-(

I was hoping to get my driver for Marina completed this past weekend, but I
stopped when I found I could not get auto-increment to work.

-- 
]DF$
The Marina IP stack for Apple II--
http://marina.a2hq.com/

[toc] | [prev] | [next] | [standalone]


#1778

FromDavid Schmenk <dschmenk@gmail.com>
Date2015-07-29 06:41 -0700
Message-ID<56f3be4e-10c5-4821-8f02-cad1ee4f5b54@googlegroups.com>
In reply to#1775
Does this look familiar? I've not found a hardware solution, but I'm still looking at it.

http://wizwiki.net/forum/viewtopic.php?t=110

Dave...


On Tuesday, 21 July 2015 16:41:31 UTC-7, D Finnigan  wrote:
> David Schmenk wrote:
> > On Monday, 20 July 2015 14:21:11 UTC-7, D Finnigan  wrote:
> >> I can't get auto-increment for addresses in the W5100 to work. I'm using
> >> $03
> >> as the Mode byte. Anyone know? This is really quite a setback!
> >> 
> > 
> > I couldn't get it stable on my home-brew Wiznet card, but I figured it was
> > because of my wiring mess. To get around it, I set the register address
> > before every read/write. Not what I wanted, but it works.
> 
> That's what the Contiki/ ip65 driver is doing.
> 
>  I am *not* happy about this. :-(
> 
> I was hoping to get my driver for Marina completed this past weekend, but I
> stopped when I found I could not get auto-increment to work.
> 
> -- 
> ]DF$
> The Marina IP stack for Apple II--
> http://marina.a2hq.com/

[toc] | [prev] | [next] | [standalone]


#1779

FromD Finnigan <dog_cow@macgui.com>
Date2015-07-30 20:35 +0000
Message-ID<dog_cow-1438288633@macgui.com>
In reply to#1778
David Schmenk wrote:
> Does this look familiar? I've not found a hardware solution, but I'm still
> looking at it.
> 
> http://wizwiki.net/forum/viewtopic.php?t=110
> 

Eh, thanks for giving me a new angle to think about... About a year ago (!)
I had a basic receive routine working for this thing, so I must have had
auto-increment working then. But the odd thing is that I cribbed that code
to write the driver for Marina (which currently doesn't have receive since I
want the send function written and debugged first) so I'm at a loss as to
what's going on.

I think (hope?) this is going to be like my last thread with the old
Uthernet, where I had my own problem resolved with more tinkering in my
code. I sincerely hope this is not a hardware limitation of the Uthernet II,
because if it is, we are in BIG trouble.

-- 
]DF$
The Marina IP stack for Apple II--
http://marina.a2hq.com/

[toc] | [prev] | [next] | [standalone]


#1781

Fromol.sc@web.de (Oliver Schmidt)
Date2015-08-01 14:01 +0000
Message-ID<mpijf9$7p9$1@news.albasani.net>
In reply to#1775
Hi David,

>>> I can't get auto-increment for addresses in the W5100 to work. I'm using
>>> $03
>>> as the Mode byte. Anyone know? This is really quite a setback!

Mode $03 is correct - and auto-increment is supposed to work.

>> I couldn't get it stable on my home-brew Wiznet card, but I figured it was
>> because of my wiring mess. To get around it, I set the register address
>> before every read/write. Not what I wanted, but it works.

Getting auto-increment to work correctly seems to be much harder with
the W5100 than with the CS8900A or the LAN91C96.

I know of two prototpyes for the C64 both suffering from
auto-increment not fully working too. One was even a professionally
produced PCB:
http://www.forum64.de/wbb3/index.php?page=Attachment&attachmentID=36052&thumbnail=1&embedded=1

>That's what the Contiki/ ip65 driver is doing.

Certainly not ! I have no idea how anybody could come to that
conclusion ?!?

The Contiki / IP65 driver is fully speed-optimized and as such
precalculates W5100 buffer wraparounds and partial page transfers in
order to end up in tight loops for the actual data transfer. Here's
the loop for writing data to the W5100. The "sta data" writes to the
W5100 and triggers the auto-increment:

: lda (ptr),y
  sta data
  iny
  bne :-
  inc ptr+1
  dex
  bpl :-
  rts

BTW: There's no need for comments telling me that I could spare one
cycle by replacing the indirect zeropage addressing with self
modifying code. I already know that ;-)

Some additional notes:

- Right after verifying that I could successfully initialize the W5100
one of my first test programs was an explicit auto-increment stress
test. It writes 8kB of a pattern to the W5100 buffer, reads it back
and compares it with the original pattern.

- The Contiki / IP65 driver uses auto-increment not only for the
actual data transfer but also for programming the W5100. I.e. setting
the MAC address in the W5100 looks like this:

  ldx #$00
  ldy #$09
  jsr set_addr
: lda mac,x
  sta data
  inx
  cpx #$06
  bcc :-

Or setting two consecutive socket specific registers looks like this:

  ldy #$00
  jsr set_addrsocket0
  lda #$44
  sta data
  lda #$01
  sta data

To summarize: Glenn and I were from the beginning in agreement that a
fully working auto-increment is a must-have for the Uthernet II. If he
wouldn't have managed to get it working reliably we wouldn't have
continued with the W5100!

> I am *not* happy about this. :-(
>
>I was hoping to get my driver for Marina completed this past weekend, but I
>stopped when I found I could not get auto-increment to work.

Something about your hardware and/or software setup has an issue.

By the way: The Contiki / IP65 driver for the W5100 is fully
speed-optimized and uses the W5100 in the 'MAC raw mode' bypassing its
builtin TCP/IP stack. The goal of this driver is to use the W5100 a
drop-in replacement for the CS8900A (and LAN91C96) - and being as fast
as those drivers.

I additionally wrote a fully size-optimized driver using the W5100 in
'UDP mode':
https://github.com/oliverschmidt/ip65/blob/master/supplement/w5100_udp.s

That driver makes even more use of the auto-increment for W5100
programming. Every comment "; -> addr is already set" means that
auto-increment was used to get/set consecutive W5100 registers.

Regards,
Oliver

[toc] | [prev] | [next] | [standalone]


#1784

FromD Finnigan <dog_cow@macgui.com>
Date2015-08-04 23:21 +0000
Message-ID<dog_cow-1438730607@macgui.com>
In reply to#1781
Oliver Schmidt wrote:
>
> To summarize: Glenn and I were from the beginning in agreement that a
> fully working auto-increment is a must-have for the Uthernet II. If he
> wouldn't have managed to get it working reliably we wouldn't have
> continued with the W5100!
> 

So the Uthernet II cards that he sent out back in March 2014 should have a
working auto-increment? That's what I'm using to test.

-- 
]DF$
The Marina IP stack for Apple II--
http://marina.a2hq.com/

[toc] | [prev] | [next] | [standalone]


#1785

Fromol.sc@web.de (Oliver Schmidt)
Date2015-08-09 14:27 +0000
Message-ID<mq7o14$9q7$1@news.albasani.net>
In reply to#1784
Hi David,

>So the Uthernet II cards that he sent out back in March 2014 should have a
>working auto-increment? That's what I'm using to test.

I have no insight what cards were sent to whom when. I suggest to get
in touch with Glenn via PM.

What I can tell you is:
- Working auto-increment is considered an obligatory feature for
Uthernet II.
- Both Uthernet II prototypes Glenn sent to me have working
auto-increment.
- All drivers I implemented fully rely on auto-increment so every
tester providing positive feedback implies that auto-increment fully
works for him.

Regards,
Oliver

[toc] | [prev] | [next] | [standalone]


#1790

Fromspectrumdaddy@nospam.com (Ewen)
Date2015-08-10 07:43 +0100
Message-ID<1m8xh9q.11fawnga49bgsN%spectrumdaddy@nospam.com>
In reply to#1785
Oliver Schmidt <ol.sc@web.de> wrote:

> - All drivers I implemented fully rely on auto-increment so every
> tester providing positive feedback implies that auto-increment fully
> works for him.

And simply to confirm what Oliver reports, the auto-increment is also
used with the U2 Link Layer for Marinetti, which you can get from my web
site. The LL works for me, and I have had no reports from any of the
other testers that it doesn't work.

Even on the first U2 beta card that I was sent, which had timing issues
with some computers, auto-increment worked just fine.

Cheers - Ewen

http://www.speccie.co.uk 

[toc] | [prev] | [next] | [standalone]


#1791

FromD Finnigan <dog_cow@macgui.com>
Date2015-08-10 14:32 +0000
Message-ID<dog_cow-1439217226@macgui.com>
In reply to#1790
Ewen wrote:
> Oliver Schmidt <ol.sc@web.de> wrote:
> 
>> - All drivers I implemented fully rely on auto-increment so every
>> tester providing positive feedback implies that auto-increment fully
>> works for him.
> 
> And simply to confirm what Oliver reports, the auto-increment is also
> used with the U2 Link Layer for Marinetti, which you can get from my web
> site. The LL works for me, and I have had no reports from any of the
> other testers that it doesn't work.

Yes, your LL worked for me on the IIgs.

> 
> Even on the first U2 beta card that I was sent, which had timing issues
> with some computers, auto-increment worked just fine.

That's what I've got. I'll look over my code, then. Thanks everyone.

[toc] | [prev] | [standalone]


Back to top | Article view | comp.sys.apple2.programmer


csiph-web