Port-sandpoint archive

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

Re: Synology PPCBoot SK98 network bug fix


> The problem is that PPCBoot uses the Linux SK98 driver, which configures
> the Genesis interface to automatically revert the bytes in all
> descriptors. This is a bit in the PCI config space, which is unaffected
> by any chip reset our drivers are doing, so the receive- and transmit-
> descriptors are not working.

Good catch!

> I have uploaded an updated altboot at
>   ftp://ftp.netbsd.org/pub/NetBSD/misc/phx/sandpoint/altboot.bin.gz
> Please, anybody running a Synology with network problems, try it and
> report back if it helps. The new altboot will just reset the byte-reverse
> bit in config space.

With this altboot.bin:

  transmit works in altboot (I see bootp requests and reply to them)
  receive fails in altboot (I see 4 "timeout" and 1 "bootp: no reply")

  both transmit and receive work in the kernel (I can use an NFS root)

So, I'm slightly puzzled why it works in the kernel, but not in altboot.
I would guess that either the chip doesn't think that the packet is for
us (wrong MAC address loaded?) or that we are not getting receive interrupts.
The latter seems unlikely, but I notice that the kernel driver also sets up
Source Address {Low|Middle|High} #2 and the multicast filters.  I will try
adding those to altboot tomorrow.

Also, on finding somewhere to place altboot on the flash, my ppcboot reports:

  _MPC824X > flinfo
  Bank # 1: 
    Brand: AMD Type: SPANSION S29AL032D (32 Mbit)
    Size: 4096 KB in 71 Sectors
    Sector Start Addresses: 0xffc00000
      FFC00000   RO FFC10000   RO FFC20000   RO FFC30000   RO FFC40000   RO
      FFC50000   RO FFC60000   RO FFC70000   RO FFC80000   RO FFC90000   RO
      FFCA0000   RO FFCB0000   RO FFCC0000   RO FFCD0000   RO FFCE0000   RO
      FFCF0000   RO FFD00000   RO FFD10000   RO FFD20000   RO FFD30000   RO
      FFD40000   RO FFD50000   RO FFD60000   RO FFD70000   RO FFD80000   RO
      FFD90000   RO FFDA0000 E RO FFDB0000 E RO FFDC0000 E RO FFDD0000 E RO
      FFDE0000 E RO FFDF0000 E RO FFE00000   RO FFE10000   RO FFE20000   RO
      FFE30000   RO FFE40000   RO FFE50000   RO FFE60000   RO FFE70000   RO
      FFE80000   RO FFE90000   RO FFEA0000   RO FFEB0000   RO FFEC0000   RO
      FFED0000   RO FFEE0000   RO FFEF0000   RO FFF00000   RO FFF10000   RO
      FFF20000   RO FFF30000   RO FFF40000   RO FFF50000   RO FFF60000   RO
      FFF70000 E RO FFF80000 E RO FFF90000 E RO FFFA0000 E RO FFFB0000 E RO
      FFFC0000 E RO FFFD0000 E RO FFFE0000 E RO FFFF0000   RO FFFF2000 E   
      FFFF4000 E    FFFF6000 E RO FFFF8000 E RO FFFFA000 E    FFFFC000 E RO
      FFFFE000 E   
  _MPC824X > printenv bootcmd
  bootcmd=bootm FFC00000 FFE00000

so, it's easy to see the empty sectors (they are marked with an 'E' and
contain only 0xff.



  My other computer also runs NetBSD    /        Sailing at Newbiggin
        http://www.netbsd.org/        /   http://www.newbigginsailingclub.org/

Home | Main Index | Thread Index | Old Index