Port-arm archive

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

Re: Marvell kernel on Zyxel NSA310



On 2024/08/16 12:18, Rin Okuyama wrote:
Our makphy(4) driver does not support MV88E1318 (even for -current).

At first glance for Linux driver, this chip needs some special handling;
see drivers/net/phy/marvell.c from github.com:torvalds/linux.

What happens if you add ukphy(4), general PHY driver, to your kernel
config?

Sorry, this is incorrect! Our driver supports 1318. See dmesg from:

https://gnats.netbsd.org/57488

Do you have makphy(4) driver in your kernel config?

And as PR above reported, there is one more problem, probably
related to CPU cache handling. Disabling ASLR may help...

Thanks,
rin

BTW, sorry if discouraging you, but there are some problems for mvsoc:

(1) mvsata(4) driver is broken for years:
https://gnats.netbsd.org/53997

(2) The system eventually locks up with NFS root:
https://gnats.netbsd.org/56850

I'd like to examine (2) further, but no progress until now...

Thanks,
rin

On 2024/08/16 1:07, Harri Haataja wrote:
I used build.sh to build a 10 release install image and kernel to try on
a Zyxel NSA310. I did get it to boot via USB and install on a local
drive and boot from there after some twists. I didn't keep too careful
log, but here's a few things from my notes:

     ./build.sh -U -u -j2 -O /mnt/ssd/obj -m evbarm -a earmv5 install-image

I think this would have wanted to package a GENERIC kernel, but didn't
build one. I just copied a sheeva tgz as generic tgz and that worked as
an easy hack. I'd be using a different kernel to boot anyway. There
might be a way to inject a custom kernel config, but I didn't find
instructions.

Console pinout:  VCC TxD RxD [] GND

     U-Boot 2017.07-tld-1 (Sep 05 2017 - 00:54:15 -0700)
     ZyXEL NSA310 1-Bay Power Media Server

     SoC:   Kirkwood 88F6281_A1
     DRAM:  256 MiB
     WARNING: Caches not enabled
     NAND:  128 MiB
     In:    serial
     Out:   serial
     Err:   serial
     Net:   egiga0
     PHY reset timed out
     MV88E1318 PHY initialized on egiga0
     Hit any key to stop autoboot:  0

There wasn't many, if any, guides on the variables that NetBSD might
want from uboot, but I ended up with these my mixing some posts I found:

     env set netbsd_add 0x800000
     env set netbsd_boot 'bootm $netbsd_add $bootargs'
     env set netbsd_bootcmd 'run netbsd_get ; run netbsd_set_args ; run netbsd_boot'
     env set netbsd_rootdev /dev/dk1
     env set netbsd_set_args 'setenv bootargs root=$netbsd_rootdev'
     env set bootcmd run netbsd_bootcmd
     env set netbsd_get 'ide reset; fatload ide 0 $netbsd_add $image_name'
     env set image_name netbsd.ub

https://blog.netbsd.org/tnf/entry/running_netbsd_on_the_lg was a likely
source for the general idea.

And the system runs, but the ethernet port doesn't work. dmesg:

     NetBSD 10.0 (XTLNSA) #1: Thu Aug 15 14:20:50 UTC 2024

     total memory = 256 MB
     avail memory = 245 MB
     mainbus0 (root)
     cpu0 at mainbus0 core 0: Sheeva 88SV131 rev 1 (ARM9E-S V5TE core)
     cpu0: DC enabled IC enabled WB enabled LABT branch prediction enabled
     cpu0: L1 16KB/32B 4-way (128 set) VIVT Instruction cache
     cpu0: L1 16KB/32B 4-way (128 set) write-back-locking-C VIVT Data cache
     mvsoc0 at mainbus0: Marvell 88F6281 Rev. A1  Kirkwood
     mvsoc0: CPU Clock 1200.000 MHz  SysClock 400.000 MHz  TClock 200.000 MHz      mvsoctmr0 at mvsoc0 unit 0 offset 0x20300-0x203ff irq 65: Marvell SoC Timer      mvsocgpp0 at mvsoc0 unit 0 offset 0x10100-0x101ff irq 35: Marvell SoC General Purpose I/O Port Interface
     mvsocgpp0: 50 gpio pins
     mvsocgpp0: interrupts 96..103, intr 35
     mvsocgpp0: interrupts 104..111, intr 36
     mvsocgpp0: interrupts 112..119, intr 37
     mvsocgpp0: interrupts 120..127, intr 38
     mvsocgpp0: interrupts 128..135, intr 39
     mvsocgpp0: interrupts 136..143, intr 40
     mvsocgpp0: interrupts 144..151, intr 41
     mvsocgpp0:   Data Out:                     0x00000000
     mvsocgpp0:   Data Out Enable Control:      0x00000000
     mvsocgpp0:   Data Blink Enable:            0x10000000
     mvsocgpp0:   Data In Polarity:             0x00000000
     mvsocgpp0:   Data In:                      0x00000000
     mvsocgpp0:   Interrupt Cause:              0x00000000
     mvsocgpp0:   Interrupt Mask:               0x00000000
     mvsocgpp0:   Interrupt Level Mask:         0x00000000
     mvsocgpp0:   High Data Out:                0x00000000
     mvsocgpp0:   High Data Out Enable Ctrl:    0x00000000
     mvsocgpp0:   High Blink Enable:            0x00000000
     mvsocgpp0:   High Data In Polarity:        0x00000000
     mvsocgpp0:   High Data In:                 0x00000008
     mvsocgpp0:   High Interrupt Cause:         0x00000000
     mvsocgpp0:   High Interrupt Mask:          0x00000000
     mvsocgpp0:   High Interrupt Level Mask:    0x00000000
     gpio0 at mvsocgpp0: 50 pins
     mvsocrtc at mvsoc0 unit 0 not configured
     com0 at mvsoc0 unit 0 offset 0x12000-0x1201f irq 33: ns16550a, 16-byte FIFO
     com0: console
     com1 at mvsoc0 unit 1 offset 0x12100-0x1211f irq 34: ns16550a, 16-byte FIFO      ehci0 at mvsoc0 unit 0 offset 0x50000-0x50fff irq 19: Marvell USB 2.0 Interface
     usb0 at ehci0: USB revision 2.0
     gtidmac0 at mvsoc0 unit 0 offset 0x60000-0x60fff: Marvell IDMA Controller/XOR Engine
     gtidmac0: XOR Engine 4 channels, intr 5, 6, 7, 8
     gttwsi0 at mvsoc0 unit 0 offset 0x11000-0x110ff irq 29: Marvell TWSI controller
     iic0 at gttwsi0: I2C bus
     mvcesa0 at mvsoc0 unit 0 offset 0x3d000-0x3dfff irq 22: Marvell Cryptographic Engines and Security Accelerator      mvgbec0 at mvsoc0 unit 0 offset 0x70000-0x73fff: Marvell Gigabit Ethernet Controller
     mvgbe0 at mvgbec0 port 0 irq 11
     mvgbe0: Ethernet address 50:67:f0:69:87:70
     mvgbe0: no PHY found!
     mvgbec1 at mvsoc0 unit 1 offset 0x74000-0x77fff: Marvell Gigabit Ethernet Controller
     mvgbe at mvgbec1 port 0 not configured
     mvpex0 at mvsoc0 unit 0 offset 0x40000-0x41fff irq 9: Marvell PCI Express Interface
     mvpex0: can't read pcicfg space
     pci0 at mvpex0
     Marvell 88F6281 SoC Kirkwood (miscellaneous memory, revision 0x03) at pci0 dev 0 function 0 not configured
     mvpex0: can't read pcicfg space
     mvsata0 at mvsoc0 unit 0 offset 0x80000-0x87fff irq 21: Marvell Serial-ATA Host Controller (SATAHC)
     mvsata0: GenIIe, 1hc, 2port/hc
     atabus0 at mvsata0 channel 0
     atabus1 at mvsata0 channel 1
     mvsdio at mvsoc0 unit 0 not configured

Notably that no PHY found message sticks out. I see
http://mail-index.netbsd.org/port-arm/2022/10/18/msg007891.html for
example has a PHY detected with the same pci message as does
https://www.netbsd.org/~martin/evbarm-atf/Y2023_10/dmesg.txt (obviously
different boards, but still).

I couldn't find anything very obvious to change or configure though I've
made some tries and compared the configs to a few other boards'.

I thought I'd post my journey so far in case someone finds similar
messages or problems or happens to have ideas.




Home | Main Index | Thread Index | Old Index