Welcome! Log In Create A New Profile

Advanced

Debian on Action Tech SG200 and MI424WR-rev-I

Posted by veriqster 
Debian on Action Tech SG200 and MI424WR-rev-I
February 22, 2019 07:30AM
Hi Guys.
I've soldered some wires to the serial pins on an ActionTec200 and it has an old U-Boot as well as a debian 5 base system.
Created a fresh Kirkwood 4.12 rootfs.
The U-Boot
This is the output of the help command in uboot
BootROM 1.34
Booting from NAND flash
BootROM: Image checksum verification PASSED

 __   __                      _ _
|  \/  | __ _ _ ____   _____| | |
| |\/| |/ _` | '__\ \ / / _ \ | |
| |  | | (_| | |   \ V /  __/ | |
|_|  |_|\__,_|_|    \_/ \___|_|_|
         _   _     ____              _
        | | | |   | __ )  ___   ___ | |_
        | | | |___|  _ \ / _ \ / _ \| __|
        | |_| |___| |_) | (_) | (_) | |_
         \___/    |____/ \___/ \___/ \__|
 ** LOADER **


U-Boot 2009.08 (May 09 2011 - 18:11:51) Marvell version: 2.1.6_NQ

Board: SG200
SoC:   MV88F6560 Rev 2
CPU:   Marvell Feroceon (Rev 1) - LE
       CPU @ 1200Mhz, L2 @ 480Mhz
       DDR3 @ 400Mhz, TClock @ 200Mhz
PEX 0: Root Complex Interface, Detected Link X1
PEX 1: Detected No Link.
DRAM:  512 MB
       CS 0: base 0x00000000 size 512 MB
       Addresses 10M - 0M are saved for the U-Boot usage.
NAND:  1bit HM ECC, Size: 512 MiB
USB 0: Host Mode
Shutting down unused interfaces:
       PON
       SATA
       Switch
       3xFE-PHY
Modules Detected:
       No PON module.
       GE-PHY on MAC1.
Net:   egiga0, egiga1 [PRIME]
Hit any key to stop autoboot:  0
Marvell>>  help
?       - alias for 'help'
SatR    - Sample At Reset sub-system

aei_boot- aei_boot  - boot or setup
autoscr - DEPRECATED - use "source" command instead
base    - print or set address offset
bdinfo  - print Board Info structure
boot    - boot default, i.e., run 'bootcmd'
bootd   - boot default, i.e., run 'bootcmd'
bootext2- bootext2    dev:boot_part1,boot_part2 addr boot_image linux_dev_name

bootm   - boot application image from memory
bootp   - boot image via network using BOOTP/TFTP protocol
bubt    - bubt  - Burn an image on the Boot Nand Flash.

chpart  - change active partition
cmp     - memory compare
cmpm    - cmpm  - Compare Memory

coninfo - print console devices and information
cp      - memory copy
cpumap  - cpumap - Display CPU memory mapping settings.

crc32   - checksum calculation
date    - get/set/reset date & time
dclk    - dclk  - Display the MV device CLKs.

dhcp    - boot image via network using DHCP/TFTP protocol
diskboot- diskboot- boot from IDE device

echo    - echo args to console
eeprom  - EEPROM sub-system
ethCounters- ethShow    - show the current ETH port counters

ethShow - ethShow       - scanning the PHYs status

ext2load- load binary file from a Ext2 filesystem
ext2ls  - list files in a directory (default /)
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls   - list files in a directory (default /)
fi      - fi    - Find value in the memory.

g       - g     - start application at cached address 'addr'(default addr 0x40000)

go      - start application at address 'addr'
help    - print online help
i2c     - I2C sub-system
ide     - ide     - IDE sub-system

iminfo  - print header information for application image
imxtract- extract a part of a multi-image
ir      - ir    - reading and changing MV internal register values.

itest   - return true/false on integer compare
loadb   - load binary file over serial line (kermit mode)
loads   - load S-Record file over serial line
loady   - load binary file over serial line (ymodem mode)
loop    - infinite loop on address range
map     - map   - Diasplay address decode windows

md      - memory display
me      - me    - PCI master enable

mm      - memory modify (auto-incrementing address)
mmc     - MMC sub-system
mp      - mp    - map PCI BAR

mpp     - mpp
mtdparts- define flash/nand partitions
mtest   - simple RAM read/write test
mux     - mux set
mw      - memory write (fill)
nand    - NAND sub-system
nboot   - boot from NAND device
nbubt   - nbubt - Burn a boot loader image on the Boot Nand Flash.

nfs     - boot image via network using NFS protocol
nm      - memory modify (constant address)
pci     - list and access PCI Configuration Space
pciePhyRead- phyRead    - Read PCI-E Phy register

pciePhyWrite- pciePhyWrite      - Write PCI-E Phy register

phyRead - phyRead       - Read Phy register

phyWrite- phyWrite      - Write Phy register

ping    - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
rarpboot- boot image via network using RARP/TFTP protocol
rcvr    - rcvr  - Satrt recovery process (Distress Beacon with TFTP server)

reset   - Perform RESET of the CPU
resetenv- resetenv      - earse environment sector to reset all variables to default.

run     - run commands in an environment variable
saveenv - save environment variables to persistent storage
se      - se    - PCI Slave enable

setenv  - set environment variables
sg      - sg    - scanning the PHYs status

sleep   - delay execution for some time
source  - run script from memory
sp      - sp    - Scan PCI bus.

switchCountersRead- switchCntPrint      - Read switch port counters.

switchPhyRegRead- - Read switch register

switchPhyRegWrite- - Write switch register

switchRegRead- switchRegRead    - Read switch register

switchRegWrite- switchRegWrite  - Write switch register

tftpboot- boot image via network using TFTP protocol
ubi     - ubi commands
ubifsload- load file from an UBIFS filesystem
ubifsls - list files in a directory
ubifsmount- mount UBIFS volume
usb     - USB sub-system
usbboot - boot from USB device
version - print monitor version
Marvell>>

The rootfs is ext2 otherwise the uboot does not want to read it but as ext2 I can load the usb device and list the files
BootROM 1.34
Booting from NAND flash
BootROM: Image checksum verification PASSED

 __   __                      _ _
|  \/  | __ _ _ ____   _____| | |
| |\/| |/ _` | '__\ \ / / _ \ | |
| |  | | (_| | |   \ V /  __/ | |
|_|  |_|\__,_|_|    \_/ \___|_|_|
         _   _     ____              _
        | | | |   | __ )  ___   ___ | |_
        | | | |___|  _ \ / _ \ / _ \| __|
        | |_| |___| |_) | (_) | (_) | |_
         \___/    |____/ \___/ \___/ \__|
 ** LOADER **


U-Boot 2009.08 (May 09 2011 - 18:11:51) Marvell version: 2.1.6_NQ

Board: SG200
SoC:   MV88F6560 Rev 2
CPU:   Marvell Feroceon (Rev 1) - LE
       CPU @ 1200Mhz, L2 @ 480Mhz
       DDR3 @ 400Mhz, TClock @ 200Mhz
PEX 0: Root Complex Interface, Detected Link X1
PEX 1: Detected No Link.
DRAM:  512 MB
       CS 0: base 0x00000000 size 512 MB
       Addresses 10M - 0M are saved for the U-Boot usage.
NAND:  1bit HM ECC, Size: 512 MiB
USB 0: Host Mode
Shutting down unused interfaces:
       PON
       SATA
       Switch
       3xFE-PHY
Modules Detected:
       No PON module.
       GE-PHY on MAC1.
Net:   egiga0, egiga1 [PRIME]
Hit any key to stop autoboot:  0
Marvell>>  usb start
(Re)start USB...
USB:   Register 10011 NbrPorts 1
USB EHCI 1.00
scanning bus for devices... 3 USB Device(s) found
       scanning bus for storage devices... 1 Storage Device(s) found
Marvell>> ext2ls usb 0:1 /
<DIR>       4096 .
<DIR>       4096 ..
<DIR>      16384 lost+found
<DIR>       4096 proc
<DIR>       4096 sbin
<DIR>       4096 dev
<DIR>       4096 root
<DIR>       4096 usr
<DIR>       4096 opt
<DIR>       4096 boot
<DIR>       4096 bin
<DIR>       4096 etc
<DIR>       4096 tmp
<DIR>       4096 mnt
<DIR>       4096 var
<DIR>       4096 home
<DIR>       4096 media
<DIR>       4096 sys
<DIR>       4096 run
<DIR>       4096 lib
<DIR>       4096 srv
Marvell>>

Next step would be to tune the environment to boot from the usb rootfs, it has the sheevaplug dtb integrated in the kernel image.

Any advice on how to do that?

Thank You!

=======

bodhi edited: add MI424WR-rev-I to the Subject.



Edited 2 time(s). Last edit at 01/24/2021 06:08PM by bodhi.
Re: Debian on Action Tech SG200
February 22, 2019 02:53PM
veriqster,

Interrupt serial console and

printenv

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: Debian on Action Tech SG200
February 22, 2019 07:26PM
output of printenv

BootROM 1.34
Booting from NAND flash
BootROM: Image checksum verification PASSED

 __   __                      _ _
|  \/  | __ _ _ ____   _____| | |
| |\/| |/ _` | '__\ \ / / _ \ | |
| |  | | (_| | |   \ V /  __/ | |
|_|  |_|\__,_|_|    \_/ \___|_|_|
         _   _     ____              _
        | | | |   | __ )  ___   ___ | |_
        | | | |___|  _ \ / _ \ / _ \| __|
        | |_| |___| |_) | (_) | (_) | |_
         \___/    |____/ \___/ \___/ \__|
 ** LOADER **


U-Boot 2009.08 (May 09 2011 - 18:11:51) Marvell version: 2.1.6_NQ

Board: SG200
SoC:   MV88F6560 Rev 2
CPU:   Marvell Feroceon (Rev 1) - LE
       CPU @ 1200Mhz, L2 @ 480Mhz
       DDR3 @ 400Mhz, TClock @ 200Mhz
PEX 0: Root Complex Interface, Detected Link X1
PEX 1: Detected No Link.
DRAM:  512 MB
       CS 0: base 0x00000000 size 512 MB
       Addresses 10M - 0M are saved for the U-Boot usage.
NAND:  1bit HM ECC, Size: 512 MiB
USB 0: Host Mode
Shutting down unused interfaces:
       PON
       SATA
       Switch
       3xFE-PHY
Modules Detected:
       No PON module.
       GE-PHY on MAC1.
Net:   egiga0, egiga1 [PRIME]
Hit any key to stop autoboot:  0
Marvell>>  printenv
bootcmd=aei_boot
baudrate=115200
loads_echo=0
ipaddr=10.4.50.165
serverip=10.4.50.5
rootpath=/mnt/ARM_FS/
netmask=255.255.255.0
mtdids=nand0=nand
sgd_magic=0xc00010
mtdparts=mtdparts=nand:2m(uboot),-(ubi)
nandparts=mtdparts=nand_mtd:2m(uboot),-(ubi)
sgd_type=AEIServiceGateway
sgd_model=SG200
sgd_fw=1.0.7
console=console=ttyS0,115200
CASset=min
MALLOC_len=3
bootargs_root=root=/dev/nfs rw
bootargs_end=:::DB88FXX81:eth0:none
image_name=uImage
standalone=fsload 0x2000000 $(image_name);setenv bootargs $(console) root=/dev/mtdblock0 rw ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvPhoneConfig); bootm 0x2000000;
ethmtu=1500
eth1mtu=1500
usb0Mode=host
nandEcc=1bit
netretry=no
rcvrip=169.254.100.100
loadaddr=0x02000000
autoload=no
eeeEnable=no
sgd_revision=3B
sgd_serial=CSGA1471002700
zhomeid=E8:C6:DC:29
ethaddr=00:26:B8:71:C1:FC
eth1addr=00:26:B8:71:C1:FC
wlanaddr=00:26:B8:71:C1:FD
ubi_root=active
stdin=serial
stdout=serial
stderr=serial
enaMonExt=no
enaCpuStream=no
enaWrAllo=no
pexMode=RC
disL2Cache=no
setL2CacheWT=yes
disL2Prefetch=yes
enaICPref=yes
enaDCPref=yes
sata_dma_mode=yes
netbsd_en=no
vxworks_en=no
bootdelay=0
disaMvPnp=no
enaAutoRecovery=yes
ethprime=egiga1
pcieTune=no
ethact=egiga1

Environment size: 1204/4092 bytes
Marvell>>

Re: Debian on Action Tech SG200
February 22, 2019 07:40PM
this is what I get if I try a plain usbboot from rootfs drive
Marvell>> usbboot usb 0:1

Loading from USB device 0, partition 1: Name: usbda1  Type: U-Boot
** Unknown image type
Marvell>>

Re: Debian on Action Tech SG200
February 22, 2019 07:44PM
if it makes a difference or helps figure this out, the link below supposedly has the full sources for the Debian that is currently running on the device.
Judging by the fact that the /etc/shadow in the sources has no password for root and the box does not allow a login without password there's definitely some differences.

https://opensource.actiontec.com/sg200.html
Re: Debian on Action Tech SG200
February 22, 2019 08:14PM
took some lines from the dell appliance thread and ran commands; output attached.
Basically loaded the uImage and uInit files and booted it. It gets stuck as expected.

▒▒
BootROM 1.34
Booting from NAND flash
BootROM: Image checksum verification PASSED

 __   __                      _ _
|  \/  | __ _ _ ____   _____| | |
| |\/| |/ _` | '__\ \ / / _ \ | |
| |  | | (_| | |   \ V /  __/ | |
|_|  |_|\__,_|_|    \_/ \___|_|_|
         _   _     ____              _
        | | | |   | __ )  ___   ___ | |_
        | | | |___|  _ \ / _ \ / _ \| __|
        | |_| |___| |_) | (_) | (_) | |_
         \___/    |____/ \___/ \___/ \__|
 ** LOADER **


U-Boot 2009.08 (May 09 2011 - 18:11:51) Marvell version: 2.1.6_NQ

Board: SG200
SoC:   MV88F6560 Rev 2
CPU:   Marvell Feroceon (Rev 1) - LE
       CPU @ 1200Mhz, L2 @ 480Mhz
       DDR3 @ 400Mhz, TClock @ 200Mhz
PEX 0: Root Complex Interface, Detected Link X1
PEX 1: Detected No Link.
DRAM:  512 MB
       CS 0: base 0x00000000 size 512 MB
       Addresses 10M - 0M are saved for the U-Boot usage.
NAND:  1bit HM ECC, Size: 512 MiB
USB 0: Host Mode
Shutting down unused interfaces:
       PON
       SATA
       Switch
       3xFE-PHY
Modules Detected:
       No PON module.
       GE-PHY on MAC1.
Net:   egiga0, egiga1 [PRIME]
Hit any key to stop autoboot:  0
Marvell>>    usb start
(Re)start USB...
USB:   Register 10011 NbrPorts 1
USB EHCI 1.00
scanning bus for devices... 3 USB Device(s) found
       scanning bus for storage devices... 1 Storage Device(s) found
Marvell>> ext2load usb 0:1 0x800000 /boot/uImage
Loading file "/boot/uImage" from usb device 0:1 (usbda1)
3843985 bytes read
Marvell>> ext2load usb 0:1 0x02100000 /boot/uInitrd
Loading file "/boot/uInitrd" from usb device 0:1 (usbda1)
7245696 bytes read
Marvell>> setenv set_bootargs_usb 'setenv bootargs console=ttyS0,115200 root=LAB                                                     EL=rootfs rootdelay=10 $(mtdparts) earlyprintk=serial'
Marvell>> run set_bootargs_usb
Marvell>> bootm 0x800000 0x02100000
## Booting kernel from Legacy Image at 00800000 ...
   Image Name:   Linux-4.12.1-kirkwood-tld-1
   Created:      2019-02-22  13:26:58 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3843921 Bytes =  3.7 MB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 02100000 ...
   Image Name:   initramfs-4.12.1-kirkwood-tld-1
   Created:      2017-07-24   0:18:23 UTC
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    7245632 Bytes =  6.9 MB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.12.1-kirkwood-tld-1 (root@tldDebian) (gcc version                                                      4.9.2 (Debian 4.9.2-10) ) #1 PREEMPT Sat Jul 15 21:40:50 PDT 2017
[    0.000000] CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=0005397                                                     f
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] OF: fdt: Machine model: Seagate GoFlex Net
[    0.000000] bootconsole [earlycon0] enabled
[    0.000000] Memory policy: Data cache writeback
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pag                                                     es: 130048
[    0.000000] Kernel command line: console=ttyS0,115200 root=LABEL=rootfs rootd                                                     elay=10 mtdparts=nand:2m(uboot),-(ubi) earlyprintk=serial
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Memory: 499268K/524288K available (8192K kernel code, 716K rwdata                                                     , 1972K rodata, 1024K init, 288K bss, 25020K reserved, 0K cma-reserved)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xe0800000 - 0xff800000   ( 496 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
[    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
[    0.000000]       .text : 0xc0008000 - 0xc0900000   (9184 kB)
[    0.000000]       .init : 0xc0c00000 - 0xc0d00000   (1024 kB)
[    0.000000]       .data : 0xc0d00000 - 0xc0db3274   ( 717 kB)
[    0.000000]        .bss : 0xc0db9b9c - 0xc0e01e60   ( 289 kB)
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] clocksource: orion_clocksource: mask: 0xffffffff max_cycles: 0xff                                                     ffffff, max_idle_ns: 9556302233 ns
[    0.000006] sched_clock: 32 bits at 200MHz, resolution 5ns, wraps every 10737                                                     418237ns
[    0.007903] Switching to timer-based delay loop, resolution 5ns
[    0.014306] Console: colour dummy device 80x30
[    0.018870] Calibrating delay loop (skipped), value calculated using timer fr                                                     equency.. 400.00 BogoMIPS (lpj=2000000)
[    0.029452] pid_max: default: 32768 minimum: 301
[    0.034297] Security Framework initialized
[    0.038568] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.045241] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.053063] CPU: Testing write buffer coherency: ok
[    0.058645] Setting up static identity map for 0x100000 - 0x100058
[    0.065088] mvebu-soc-id: MVEBU SoC ID=0x6560, Rev=0x2
[    0.073028] devtmpfs: initialized
[    0.080014] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, ma                                                     x_idle_ns: 19112604462750000 ns
[    0.089945] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.096397] prandom: seed boundary self test passed
[    0.105093] prandom: 100 self tests passed
[    0.109273] pinctrl core: initialized pinctrl subsystem
[    0.115402] NET: Registered protocol family 16
[    0.120342] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.128436] cpuidle: using governor ladder
[    0.132633] cpuidle: using governor menu
[    0.136986] [Firmware Bug]: Feroceon L2: bootloader left the L2 cache on!
[    0.143858] Feroceon L2: Cache support initialised.
[    0.149093] [Firmware Info]: /ocp@f1000000/ethernet-controller@72000/ethernet                                                     0-port@0: local-mac-address is not set
[    0.164249] No ATAGs?
[    0.173339] vgaarb: loaded
[    0.178842] SCSI subsystem initialized
[    0.183129] usbcore: registered new interface driver usbfs
[    0.188796] usbcore: registered new interface driver hub
[    0.194244] usbcore: registered new device driver usb
[    0.200501] clocksource: Switched to clocksource orion_clocksource
[    0.297926] VFS: Disk quotas dquot_6.6.0
[    0.302101] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.319396] NET: Registered protocol family 2
[    0.324675] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[    0.331881] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
[    0.338438] TCP: Hash tables configured (established 4096 bind 4096)
[    0.344949] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.350887] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.357395] NET: Registered protocol family 1
[    0.362268] RPC: Registered named UNIX socket transport module.
[    0.368251] RPC: Registered udp transport module.
[    0.373093] RPC: Registered tcp transport module.
[    0.377863] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.384628] Unpacking initramfs...
[    1.036066] Freeing initrd memory: 7076K
[    1.040222] NetWinder Floating Point Emulator V0.97 (double precision)
[    1.047888] audit: initializing netlink subsys (disabled)
[    1.053909] Initialise system trusted keyrings
[    1.058466] Key type blacklist registered
[    1.062626] audit: type=2000 audit(1.043:1): state=initialized audit_enabled=                                                     0 res=1
[    1.070624] workingset: timestamp_bits=30 max_order=17 bucket_order=0
[    1.077185] zbud: loaded
[    1.080852] NFS: Registering the id_resolver key type
[    1.085985] Key type id_resolver registered
[    1.090236] Key type id_legacy registered
[    1.094377] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    1.101167] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
[    1.107796] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
[    1.115115] fuse init (API version 7.26)
[    1.119468] orangefs_debugfs_init: called with debug mask: :none: :0:
[    1.126255] orangefs_init: module version upstream loaded
[    1.131744] SGI XFS with ACLs, security attributes, realtime, no debug enable                                                     d
[    2.560507] random: fast init done
[    6.970146] Key type asymmetric registered
[    6.974634] Asymmetric key parser 'x509' registered
[    6.979642] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 2                                                     49)
[    6.987240] io scheduler noop registered
[    6.991289] io scheduler deadline registered
[    6.995698] io scheduler cfq registered (default)
I'll leave it be for a while and see what happens as it's only been stuck like this for a couple of minutes
Re: Debian on Action Tech SG200
February 23, 2019 12:14AM
veriqster,

The u-boot envs are correct. But your rootfs preparation was incorrect. You need to redo step 4b using the Sheevaplug DTB.

Quote

4b. Boot with DTB file embedded in the kernel image (no U-Boot envs changes are needed if your system already booting on USB or HDD). Again, this step 4b is for stock U-Boot only.

Please replace kirkwood-goflexnet.dtb below with the correct DTB name for your box.

Generate the uImage and uInitrd (the kernel files vmlinuz-4.20.6-kirkwood-tld-1 and initramfs-4.20.6-kirkwood-tld-1 were generated by dpkg in Step 3):
cd /boot
mv uImage uImage.orig
cp -a zImage-4.20.6-kirkwood-tld-1 zImage.fdt
cat dts/kirkwood-sheevaplug.dtb >> zImage.fdt
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n Linux-4.20.6-kirkwood-tld-1 -d zImage.fdt uImage
mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initramfs-4.20.6-kirkwood-tld-1 -d initrd.img-4.20.6-kirkwood-tld-1 uInitrd

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: Debian on Action Tech SG200
February 23, 2019 04:32AM
I actually ran those but with the 4.12 kernel in the rootfs.
Can't figure out how to do it with the latest kernel some of the files (initrd) are only generated as the .deb is installed.
so I put the rootfs back into the linux box and ran the commands with 12.1 instead of 20.6.
They complete and the files are created.
sync, unmount and move to the board.
Still getting stuck on the same thing.


BootROM 1.34

BootROM 1.34
Booting from NAND flash
BootROM: Image checksum verification PASSED
l
 __   __                      _ _
|  \/  | __ _ _ ____   _____| | |
| |\/| |/ _` | '__\ \ / / _ \ | |
| |  | | (_| | |   \ V /  __/ | |
|_|  |_|\__,_|_|    \_/ \___|_|_|
         _   _     ____              _
        | | | |   | __ )  ___   ___ | |_
        | | | |___|  _ \ / _ \ / _ \| __|
        | |_| |___| |_) | (_) | (_) | |_
         \___/    |____/ \___/ \___/ \__|
 ** LOADER **


U-Boot 2009.08 (May 09 2011 - 18:11:51) Marvell version: 2.1.6_NQ

Board: SG200
SoC:   MV88F6560 Rev 2
CPU:   Marvell Feroceon (Rev 1) - LE
       CPU @ 1200Mhz, L2 @ 480Mhz
       DDR3 @ 400Mhz, TClock @ 200Mhz
PEX 0: Root Complex Interface, Detected Link X1
PEX 1: Detected No Link.
DRAM:  512 MB
       CS 0: base 0x00000000 size 512 MB
       Addresses 10M - 0M are saved for the U-Boot usage.
NAND:  1bit HM ECC, Size: 512 MiB
USB 0: Host Mode
Shutting down unused interfaces:
       PON
       SATA
       Switch
       3xFE-PHY
Modules Detected:
       No PON module.
       GE-PHY on MAC1.
Net:   egiga0, egiga1 [PRIME]
Hit any key to stop autoboot:  0
Marvell>>  setenv set_bootargs_usb 'setenv bootargs console=ttyS0,115200 root=LA                                                                 BEL=rootfs rootdelay=10 $(mtdparts) earlyprintk=serial'
Marvell>> usb start
(Re)start USB...
USB:   Register 10011 NbrPorts 1
USB EHCI 1.00
scanning bus for devices... 3 USB Device(s) found
       scanning bus for storage devices... 1 Storage Device(s) found
Marvell>> ext2load usb 0:1 0x800000 /boot/uImage
Loading file "/boot/uImage" from usb device 0:1 (usbda1)
3831752 bytes read
Marvell>> ext2load usb 0:1 0x02100000 /boot/uInitrd
Loading file "/boot/uInitrd" from usb device 0:1 (usbda1)
7245696 bytes read
Marvell>> run set_bootargs_usb
Marvell>> bootm 0x800000 0x02100000
## Booting kernel from Legacy Image at 00800000 ...
   Image Name:   Linux-4.12.1-kirkwood-tld-1
   Created:      2019-02-23  10:25:57 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3831688 Bytes =  3.7 MB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 02100000 ...
   Image Name:   initramfs-4.12.1-kirkwood-tld-1
   Created:      2019-02-23  10:26:02 UTC
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    7245632 Bytes =  6.9 MB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.12.1-kirkwood-tld-1 (root@tldDebian) (gcc version 4.9.2 (Debian 4.9.2-10) ) #1 PREEMPT Sat Jul 15 21:40:50 PDT 2017
[    0.000000] CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=0005397f
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] OF: fdt: Machine model: Globalscale Technologies SheevaPlug
[    0.000000] bootconsole [earlycon0] enabled
[    0.000000] Memory policy: Data cache writeback
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048
[    0.000000] Kernel command line: console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 mtdparts=nand:2m(uboot),-(ubi) earlyprintk=serial
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Memory: 499280K/524288K available (8192K kernel code, 716K rwdata, 1972K rodata, 1024K init, 288K bss, 25008K reserved, 0K cma-reserved)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xe0800000 - 0xff800000   ( 496 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
[    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
[    0.000000]       .text : 0xc0008000 - 0xc0900000   (9184 kB)
[    0.000000]       .init : 0xc0c00000 - 0xc0d00000   (1024 kB)
[    0.000000]       .data : 0xc0d00000 - 0xc0db3274   ( 717 kB)
[    0.000000]        .bss : 0xc0db9b9c - 0xc0e01e60   ( 289 kB)
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] clocksource: orion_clocksource: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 9556302233 ns
[    0.000006] sched_clock: 32 bits at 200MHz, resolution 5ns, wraps every 10737418237ns
[    0.007903] Switching to timer-based delay loop, resolution 5ns
[    0.014301] Console: colour dummy device 80x30
[    0.018866] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=2000000)
[    0.029448] pid_max: default: 32768 minimum: 301
[    0.034291] Security Framework initialized
[    0.038563] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.045237] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.053062] CPU: Testing write buffer coherency: ok
[    0.058647] Setting up static identity map for 0x100000 - 0x100058
[    0.065078] mvebu-soc-id: MVEBU SoC ID=0x6560, Rev=0x2
[    0.073026] devtmpfs: initialized
[    0.079558] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.089486] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.095934] prandom: seed boundary self test passed
[    0.104630] prandom: 100 self tests passed
[    0.108811] pinctrl core: initialized pinctrl subsystem
[    0.114938] NET: Registered protocol family 16
[    0.119876] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.127952] cpuidle: using governor ladder
[    0.132151] cpuidle: using governor menu
[    0.136498] [Firmware Bug]: Feroceon L2: bootloader left the L2 cache on!
[    0.143368] Feroceon L2: Cache support initialised.
[    0.148614] [Firmware Info]: /ocp@f1000000/ethernet-controller@72000/ethernet0-port@0: local-mac-address is not set
[    0.163653] No ATAGs?
[    0.172541] vgaarb: loaded
[    0.178054] SCSI subsystem initialized
[    0.182335] usbcore: registered new interface driver usbfs
[    0.187992] usbcore: registered new interface driver hub
[    0.193439] usbcore: registered new device driver usb
[    0.199675] clocksource: Switched to clocksource orion_clocksource
[    0.297121] VFS: Disk quotas dquot_6.6.0
[    0.301294] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.318597] NET: Registered protocol family 2
[    0.323857] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[    0.331065] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
[    0.337623] TCP: Hash tables configured (established 4096 bind 4096)
[    0.344146] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.350082] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.356591] NET: Registered protocol family 1
[    0.361470] RPC: Registered named UNIX socket transport module.
[    0.367453] RPC: Registered udp transport module.
[    0.372293] RPC: Registered tcp transport module.
[    0.377064] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.383829] Unpacking initramfs...
[    1.035101] Freeing initrd memory: 7076K
[    1.039255] NetWinder Floating Point Emulator V0.97 (double precision)
[    1.046896] audit: initializing netlink subsys (disabled)
[    1.052903] Initialise system trusted keyrings
[    1.057457] Key type blacklist registered
[    1.061616] audit: type=2000 audit(1.042:1): state=initialized audit_enabled=0 res=1
[    1.069577] workingset: timestamp_bits=30 max_order=17 bucket_order=0
[    1.076204] zbud: loaded
[    1.079844] NFS: Registering the id_resolver key type
[    1.084977] Key type id_resolver registered
[    1.089228] Key type id_legacy registered
[    1.093378] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    1.100169] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
[    1.106797] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
[    1.114116] fuse init (API version 7.26)
[    1.118457] orangefs_debugfs_init: called with debug mask: :none: :0:
[    1.125246] orangefs_init: module version upstream loaded
[    1.130735] SGI XFS with ACLs, security attributes, realtime, no debug enabled
[    2.559682] random: fast init done
[    6.969215] Key type asymmetric registered
[    6.973709] Asymmetric key parser 'x509' registered
[    6.978716] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249)
[    6.986315] io scheduler noop registered
[    6.990364] io scheduler deadline registered
[    6.994771] io scheduler cfq registered (default)


Re: Debian on Action Tech SG200
February 23, 2019 09:19AM
by the way, those commands were run on a x64 system, not on a kirkwood. would that be the issue?
Re: Debian on Action Tech SG200
February 23, 2019 01:54PM
veriqster,

> by the way, those commands were run on a x64
> system, not on a kirkwood. would that be the
> issue?

No, not an issue. Only mkimage could have made a difference. But since we use "-A arm", it was already taken care of.

mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initramfs-4.20.6-kirkwood-tld-1 -d initrd.img-4.20.6-kirkwood-tld-1 uInitrd

Besides, the kernel has already booted that far. This hangup must be because there is some significant difference between the Avanta and the Kirkwood SoCs.

Let me think about this a bit.

In the mean time, you should google for the Avanta MV88F6560 SoC DTS. See if anybody has created a DTS for it (mainline does not have support for this SoC family yet).

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: Debian on Action Tech SG200
February 23, 2019 03:00PM
Would it be included in the sources for building a debian rootfs?
If so then the sources are available at https://opensource.actiontec.com/sg200.html.
it has the full sources and the script to build them into a full Debian 5.
this is one of the config files used for compiling the kernel for this board
/*******************************************************************************
Copyright (C) Marvell International Ltd. and its affiliates

This software file (the "File") is owned and distributed by Marvell
International Ltd. and/or its affiliates ("Marvell") under the following
alternative licensing terms.  Once you have made an election to distribute the
File under one of the following license alternatives, please (i) delete this
introductory statement regarding license alternatives, (ii) delete the two
license alternatives that you have not elected to use and (iii) preserve the
Marvell copyright notice above.

********************************************************************************
Marvell Commercial License Option

If you received this File from Marvell and you have entered into a commercial
license agreement (a "Commercial License") with Marvell, the File is licensed
to you under the terms of the applicable Commercial License.

********************************************************************************
Marvell GPL License Option

If you received this File from Marvell, you may opt to use, redistribute and/or
modify this File in accordance with the terms and conditions of the General
Public License Version 2, June 1991 (the "GPL License"), a copy of which is
available along with the File in the license.txt file or by writing to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 or
on the worldwide web at http://www.gnu.org/licenses/gpl.txt.

THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY
DISCLAIMED.  The GPL License provides additional details about this warranty
disclaimer.
********************************************************************************
Marvell BSD License Option

If you received this File from Marvell, you may opt to use, redistribute and/or
modify this File under the following licensing terms.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

    * 	Redistributions of source code must retain the above copyright notice,
	this list of conditions and the following disclaimer.

    *	Redistributions in binary form must reproduce the above copyright
	notice, this list of conditions and the following disclaimer in the
	documentation and/or other materials provided with the distribution.

    *	Neither the name of Marvell nor the names of its contributors may be
	used to endorse or promote products derived from this software without
	specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

*******************************************************************************/

#ifndef __INCmvBoardEnvSpech
#define __INCmvBoardEnvSpech

#include "mvSysHwConfig.h"

/* For future use */
#define BD_ID_DATA_START_OFFS			0x0
#define BD_DETECT_SEQ_OFFS			0x0
#define BD_SYS_NUM_OFFS				0x4
#define BD_NAME_OFFS				0x8

/* I2C bus addresses */
#define MV_BOARD_CTRL_I2C_ADDR			0x0	/* Controller slave addr */
#define MV_BOARD_CTRL_I2C_ADDR_TYPE 		ADDR7_BIT
#define MV_BOARD_DIMM0_I2C_ADDR			0x56
#define MV_BOARD_DIMM0_I2C_ADDR_TYPE 		ADDR7_BIT
#define MV_BOARD_DIMM1_I2C_ADDR			0x54
#define MV_BOARD_DIMM1_I2C_ADDR_TYPE 		ADDR7_BIT
#define MV_BOARD_EEPROM_I2C_ADDR	    	0x51
#define MV_BOARD_EEPROM_I2C_ADDR_TYPE 		ADDR7_BIT
#define MV_BOARD_MAIN_EEPROM_I2C_ADDR	   	0x50
#define MV_BOARD_MAIN_EEPROM_I2C_ADDR_TYPE 	ADDR7_BIT
#define MV_BOARD_MUX_I2C_ADDR_ENTRY		0x2
#define MV_BOARD_DIMM_I2C_CHANNEL		0x0

#define BOOT_FLASH_INDEX		0
#define MAIN_FLASH_INDEX		1

#define BOARD_ETH_START_PORT_NUM	0

/* Board specific configuration */
/* ============================ */

/* boards ID numbers */

#define BOARD_ID_BASE			0x20

/* New board ID numbers */
#define DB_88F6535_BP_ID		(BOARD_ID_BASE)
#define RD_88F6510_SFU_ID		(BOARD_ID_BASE+0x1)
#define RD_88F6560_GW_ID		(BOARD_ID_BASE+0x2)
#define RD_88F6530_MDU_ID		(BOARD_ID_BASE+0x3)
#define DB_CUSTOMER_ID			(BOARD_ID_BASE+0x4)
#define MV_MAX_BOARD_ID			(DB_CUSTOMER_ID + 1)

/* old configuration (from schmatics)
#define DB_88F6535_MPP0_7		0x11111111
#define DB_88F6535_MPP8_15		0x31111111
#define DB_88F6535_MPP16_23		0x23555603
#define DB_88F6535_MPP24_31		0x04400000
#define DB_88F6535_MPP32_39		0x22044444
#define DB_88F6535_MPP40_47		0x22222222
#define DB_88F6535_MPP48_55		0x33322222
#define DB_88F6535_MPP56_63		0x33333333
#define DB_88F6535_MPP64_69		0x00000333
*/
/* DB-88F6535-BP */
#define DB_88F6535_MPP0_7		0x11111111
#define DB_88F6535_MPP8_15		0x31111111
#define DB_88F6535_MPP16_23		0x03555603
#define DB_88F6535_MPP24_31		0x04400000
#define DB_88F6535_MPP32_39		0x00444444
#define DB_88F6535_MPP40_47		0x00000000
#define DB_88F6535_MPP48_55		0x00000000
#define DB_88F6535_MPP56_63		0x00000000
#define DB_88F6535_MPP64_71		0x90000000
#define DB_88F6535_MPP72_79		0x00000000
#define DB_88F6535_MPP80_87		0x90000000
#define DB_88F6535_MPP88_88		0x00000000

/* GPPs
MPP#	NAME			IN/OUT
--------------------------------------
17		XVR_TXfault_RST	IN/OUT?
31		UsbDevice_Vbus	IN
68		SD_Status	IN
67		PEX_VCC_OFF	OUT
69		SD_WP		IN
*/
#define DB_88F6535_GPP_OUT_ENA_LOW	(BIT31 | BIT23 | BIT17)
#define DB_88F6535_GPP_OUT_ENA_MID	0x0
#define DB_88F6535_GPP_OUT_ENA_HIGH	(BIT5 | BIT23)

#define DB_88F6535_GPP_OUT_VAL_LOW	0x0
#define DB_88F6535_GPP_OUT_VAL_MID	0x0
#define DB_88F6535_GPP_OUT_VAL_HIGH	(BIT3)

#define DB_88F6535_GPP_POL_LOW		(BIT23)
#define DB_88F6535_GPP_POL_MID		0x0
#define DB_88F6535_GPP_POL_HIGH		0x0

/* RD-88F6510-SFU */
#define RD_88F6510_MPP0_7		0x11111111
#define RD_88F6510_MPP8_15		0x31111111
#define RD_88F6510_MPP16_23		0x20000003
#define RD_88F6510_MPP24_31		0x06622222
#define RD_88F6510_MPP32_39		0x00044444
#define RD_88F6510_MPP40_47		0x00006660
#define RD_88F6510_MPP48_55		0x00000460
#define RD_88F6510_MPP56_63		0x00000000
#define RD_88F6510_MPP64_71		0x00500000
#define RD_88F6510_MPP72_79		0x00000000
#define RD_88F6510_MPP80_87		0x00000000
#define RD_88F6510_MPP88_88		0x00000000

/* GPPs
MPP#	NAME			IN/OUT
--------------------------------------
17		WiFi_Host2WLAN	OUT
18		free		free
19		WiFi_WLAN2Host	IN
20		WiFi_PDn	OUT
21		WiFi_PWR	IN/OUT?
22		WiFi_RSTn	OUT
31		free		free
37		NF&SPI_WP	OUT
39		free (ground)	free
40		free (3.3V)	free
44		LED_SYS		OUT
45		LED_PON		OUT
46		LED_Phone	OUT
47		LED_PWR		OUT
48		free		free
51		free		free
52		free		free
53		free		free
54		free		free
55		free		free
56		free (ground)	free
57		free		free
58		free		free
59		free		free
60		free		free
61		free		free
62		free		free
63		free		free
64		free		free
65		free		free
66		PB		IN
67		free		free
68		TXfault_RST	IN/OUT?
*/
#define RD_88F6510_GPP_OUT_ENA_LOW	0x0
#define RD_88F6510_GPP_OUT_ENA_MID	0x0
#define RD_88F6510_GPP_OUT_ENA_HIGH	(BIT2 | BIT4)

#define RD_88F6510_GPP_OUT_VAL_LOW	0x0
#define RD_88F6510_GPP_OUT_VAL_MID	(BIT5)
#define RD_88F6510_GPP_OUT_VAL_HIGH	0

#define RD_88F6510_GPP_POL_LOW		0x0
#define RD_88F6510_GPP_POL_MID		0x0
#define RD_88F6510_GPP_POL_HIGH		0x0

/* RD-88F6560-GW */
/*
#define RD_88F6560_MPP0_7		0x11111111
#define RD_88F6560_MPP8_15		0x31111111
#define RD_88F6560_MPP16_23		0x11111113
#define RD_88F6560_MPP24_31		0x04411001
#define RD_88F6560_MPP32_39		0x60004444
#define RD_88F6560_MPP40_47		0x04006060
#define RD_88F6560_MPP48_55		0x00000460
#define RD_88F6560_MPP56_63		0x00000000
#define RD_88F6560_MPP64_71		0x90500000
#define RD_88F6560_MPP72_79		0x00044444
#define RD_88F6560_MPP80_87		0x10000000
#define RD_88F6560_MPP88_88		0x00000000
*/

#define RD_88F6560_MPP0_7		0x11111111
#define RD_88F6560_MPP8_15		0x31111111
#define RD_88F6560_MPP16_23		0x30000003
#define RD_88F6560_MPP24_31		0x00000003
#define RD_88F6560_MPP32_39		0x00004444
#define RD_88F6560_MPP40_47		0x00000000
#define RD_88F6560_MPP48_55		0x00050500
#define RD_88F6560_MPP56_63		0x00000000
#define RD_88F6560_MPP64_71		0x00000000
#define RD_88F6560_MPP72_79		0x00000000
#define RD_88F6560_MPP80_87		0x00000000
#define RD_88F6560_MPP88_88		0x00000000
/* GPPs
MPP#	NAME			IN/OUT
--------------------------------------
24		TDM_Reset	OUT
25		TDM_INTm0	IN
31		SD_WP		IN
37		HDD_PWR_CTRL	OUT
38		free		free
40		Fan_PWR_CTRL	OUT
44		Phy_INTn	IN
45		FXO_CTRL	OUT
47		WPS_Switch	IN
48		SD_Status	IN
51		TDM_INTn1	IN
52		Phone_Led	OUT
53		free		free
54		free		free
55		free		free
56		free		free
57		free		free
58		USB_Dev_Vbus	IN
59		USB_OC		IN
60		GP0		IN
61		GP1		IN
62		GP2		IN
63		free		free
64		free		free
65		free		free
66		free		free
68		SYS_LED		OUT
77		RST_PEX#	OUT
*/
/*
#define RD_88F6560_GPP_OUT_ENA_LOW	BIT31
#define RD_88F6560_GPP_OUT_ENA_MID	(BIT5 | BIT12 | BIT15 | BIT16 | BIT19 | BIT26 | BIT27 | BIT28 | BIT29 | BIT30)
#define RD_88F6560_GPP_OUT_ENA_HIGH	0x0

#define RD_88F6560_GPP_OUT_VAL_LOW	0x0
#define RD_88F6560_GPP_OUT_VAL_MID	(BIT20)
#define RD_88F6560_GPP_OUT_VAL_HIGH	(BIT13)

#define RD_88F6560_GPP_POL_LOW		0x0
#define RD_88F6560_GPP_POL_MID		(BIT19)
#define RD_88F6560_GPP_POL_HIGH		0x0
*/

#define RD_88F6560_GPP_OUT_ENA_LOW	( BIT16 | BIT17 | BIT18 | BIT19 | BIT20 | BIT24 | BIT27 )
#define RD_88F6560_GPP_OUT_ENA_MID	( BIT3 | BIT12 | BIT18 | BIT20 | BIT31  )
#define RD_88F6560_GPP_OUT_ENA_HIGH	0x0

#define RD_88F6560_GPP_OUT_VAL_LOW	0xFFFFFFFF
#define RD_88F6560_GPP_OUT_VAL_MID	0xFFFFFFFF
#define RD_88F6560_GPP_OUT_VAL_HIGH	0xFFFFFFFF

#define RD_88F6560_GPP_POL_LOW		0x0
#define RD_88F6560_GPP_POL_MID		0x0
#define RD_88F6560_GPP_POL_HIGH		0x0


/* RD-88F6530-MDU */
#define RD_88F6530_MPP0_7		0x11111111
#define RD_88F6530_MPP8_15		0x31111111
#define RD_88F6530_MPP16_23		0x00005003
#define RD_88F6530_MPP24_31		0x04422222
#define RD_88F6530_MPP32_39		0x00444444
#define RD_88F6530_MPP40_47		0x00044400
#define RD_88F6530_MPP48_55		0x00000000
#define RD_88F6530_MPP56_63		0x00000000
#define RD_88F6530_MPP64_69		0x00000000
#define RD_88F6530_MPP72_79		0x00000000
#define RD_88F6530_MPP80_87		0x00000000
#define RD_88F6530_MPP88_88		0x00000000

/* GPPs
MPP#	NAME			IN/OUT
-------------------------------
*/
/*the output GPIO is 17, 21, 23, 59, 60 */
/*61,62,63 as INPUT pin */

#define RD_88F6530_GPP_OUT_ENA_LOW	0xff5dffff
#define RD_88F6530_GPP_OUT_ENA_MID	0xffffffff
#define RD_88F6530_GPP_OUT_ENA_HIGH	0xffffffff

/*the output default value = 1 */
#define RD_88F6530_GPP_OUT_VAL_LOW	0x00A20000
#define RD_88F6530_GPP_OUT_VAL_MID	0x00000000
#define RD_88F6530_GPP_OUT_VAL_HIGH	(BIT4)

#define RD_88F6530_GPP_POL_LOW		0x0
#define RD_88F6530_GPP_POL_MID		0x0
#define RD_88F6530_GPP_POL_HIGH		0x0

/* DB-CUSTOMER */
#define DB_CUSTOMER_MPP0_7		0x21111111
#define DB_CUSTOMER_MPP8_15		0x00003311
#define DB_CUSTOMER_MPP16_23		0x00001100
#define DB_CUSTOMER_MPP24_31		0x00000000
#define DB_CUSTOMER_MPP32_39		0x00000000
#define DB_CUSTOMER_MPP40_47		0x00000000
#define DB_CUSTOMER_MPP48_55		0x00000000
#define DB_CUSTOMER_OE_LOW		0x0
#define DB_CUSTOMER_OE_HIGH		(~((BIT6) | (BIT7) | (BIT8) | (BIT9)))
#define DB_CUSTOMER_OE_VAL_LOW		0x0
#define DB_CUSTOMER_OE_VAL_HIGH		0x0

#endif /* __INCmvBoardEnvSpech */
and this is another of the 4 files
/*******************************************************************************
Copyright (C) Marvell International Ltd. and its affiliates

This software file (the "File") is owned and distributed by Marvell
International Ltd. and/or its affiliates ("Marvell") under the following
alternative licensing terms.  Once you have made an election to distribute the
File under one of the following license alternatives, please (i) delete this
introductory statement regarding license alternatives, (ii) delete the two
license alternatives that you have not elected to use and (iii) preserve the
Marvell copyright notice above.

********************************************************************************
Marvell Commercial License Option

If you received this File from Marvell and you have entered into a commercial
license agreement (a "Commercial License") with Marvell, the File is licensed
to you under the terms of the applicable Commercial License.

********************************************************************************
Marvell GPL License Option

If you received this File from Marvell, you may opt to use, redistribute and/or
modify this File in accordance with the terms and conditions of the General
Public License Version 2, June 1991 (the "GPL License"), a copy of which is
available along with the File in the license.txt file or by writing to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 or
on the worldwide web at http://www.gnu.org/licenses/gpl.txt.

THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY
DISCLAIMED.  The GPL License provides additional details about this warranty
disclaimer.
********************************************************************************
Marvell BSD License Option

If you received this File from Marvell, you may opt to use, redistribute and/or
modify this File under the following licensing terms.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

    * 	Redistributions of source code must retain the above copyright notice,
	this list of conditions and the following disclaimer.

    *	Redistributions in binary form must reproduce the above copyright
	notice, this list of conditions and the following disclaimer in the
	documentation and/or other materials provided with the distribution.

    *	Neither the name of Marvell nor the names of its contributors may be
	used to endorse or promote products derived from this software without
	specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

*******************************************************************************/
#include "mvCommon.h"
#include "mvBoardEnvLib.h"
#include "mvBoardEnvSpec.h"
#include "twsi/mvTwsi.h"

#define DB_88F6535_BOARD_TWSI_DEF_NUM		0x5
#define DB_88F6535_BOARD_SWITCH_NUM         	0x1
#define DB_88F6535_BOARD_MAC_INFO_NUM		0x2
#define DB_88F6535_BOARD_GPP_INFO_NUM		0x4
#define DB_88F6535_BOARD_MPP_CONFIG_NUM		0x1
#define DB_88F6535_BOARD_MPP_GROUP_TYPE_NUM	0x1

#define DB_88F6535_BOARD_DEVICE_CONFIG_NUM	0x1
#define DB_88F6535_BOARD_DEBUG_LED_NUM		0x0

#define DB_88F6535_BOARD_NAND_READ_PARAMS	0x000C0282
#define DB_88F6535_BOARD_NAND_WRITE_PARAMS	0x00010305
/* NAND care support for small page chips */
#define DB_88F6535_BOARD_NAND_CONTROL		0x01c00543

MV_BOARD_TWSI_INFO db88f6535InfoBoardTwsiDev[] = {
	/* {{MV_BOARD_DEV_CLASS devClass, MV_U8 twsiDevAddr, MV_U8 twsiDevAddrType}} */
	{BOARD_DEV_TWSI_SATR, 0x4C, ADDR7_BIT},
	{BOARD_DEV_TWSI_SATR, 0x4D, ADDR7_BIT},
	{BOARD_DEV_TWSI_SATR, 0x4E, ADDR7_BIT},
	{BOARD_DEV_TWSI_SATR, 0x4F, ADDR7_BIT},
	{BOARD_TWSI_MUX, 0x70, ADDR7_BIT}
};

MV_BOARD_MAC_INFO db88f6535InfoBoardMacInfo[] = {
	/* {{MV_BOARD_MAC_SPEED boardMacSpeed, MV_U8 boardEthSmiAddr}} */
	{BOARD_MAC_SPEED_AUTO, 0x8},
	{BOARD_MAC_SPEED_AUTO, 0x9}
};

MV_BOARD_MPP_TYPE_INFO db88f6535InfoBoardMppTypeInfo[] = {
	{
		.boardMppTdm = MV_BOARD_AUTO,
		.ethSataComplexOpt = ESC_OPT_AUTO,
		.ethPortsMode = 0x0
	}
};

MV_BOARD_GPP_INFO db88f6535InfoBoardGppInfo[] = {
	/* {{MV_BOARD_GPP_CLASS devClass, MV_U8 gppPinNum}} */
	{BOARD_GPP_USB_VBUS, 31},
	{BOARD_GPP_PEX_RESET, 67},
	{BOARD_GPP_SDIO_DETECT, 68},
	{BOARD_GPP_SDIO_WP, 69},
	{BOARD_GPP_PON_P2P_BEN, 17}
};

MV_DEV_CS_INFO db88f6535InfoBoardDeCsInfo[] = {
	/*{deviceCS, params, devType, devWidth} */
#if defined(MTD_NAND_LNC)
	{NAND_NOR_CS, N_A, BOARD_DEV_NAND_FLASH, 8}	/* NAND DEV */
#elif defined(MV_SPI)
	{SPI_CS0, N_A, BOARD_DEV_SPI_FLASH, 8}	/* SPI DEV */
#elif defined(MV_NOR)
	{NAND_NOR_CS, N_A, BOARD_DEV_NOR_FLASH, 16}	/* NOR DEV */
#else
	{N_A, N_A, N_A, N_A}			/* No device */
#endif
};

MV_BOARD_MPP_INFO db88f6535InfoBoardMppConfigValue[] = {
	{{
	  DB_88F6535_MPP0_7,
	  DB_88F6535_MPP8_15,
	  DB_88F6535_MPP16_23,
	  DB_88F6535_MPP24_31,
	  DB_88F6535_MPP32_39,
	  DB_88F6535_MPP40_47,
	  DB_88F6535_MPP48_55,
	  DB_88F6535_MPP56_63,
	  DB_88F6535_MPP64_71,
	  DB_88F6535_MPP72_79,
	  DB_88F6535_MPP80_87,
	  DB_88F6535_MPP88_88
	  }
	 }
};

MV_BOARD_SWITCH_INFO db88f6535InfoBoardSwitchValue[] = {
	{
	 .switchIrq = 29,	/* set to -1 for timer operation */
	 .switchPort = {1, 2, 3, 0, -1, -1, -1, -1},
	 .cpuPort = 4,
	 .connectedPort = {4, 5, -1},
	 .smiScanMode = 2,
	 .quadPhyAddr = 0,
	 .forceLinkMask = 0x0
	 }
};

MV_BOARD_TDM_INFO db88f6535Tdm880[] = {
	{1},
	{2}
};

MV_BOARD_TDM_INFO db88f6535Tdm792[] = {
	{1},
	{2},
	{3},
	{4},
	{6},
	{7}
};

MV_BOARD_TDM_INFO db88f6535Tdm3215[] = { {1} };

MV_BOARD_TDM_SPI_INFO db88f6535TdmSpiInfo[] = { {0} };

MV_BOARD_SPEC_INIT db88f6535BoardSpecInit[] = {
	{
		.reg = PMU_POWER_IF_POLARITY_REG,
		.mask = (BIT1),
		.val = 0
	},
	{
		.reg = TBL_TERM,
		.val = TBL_TERM
	}
};

MV_BOARD_INFO db88f6535Info = {
	.boardName = "DB-88F6560-BP",
	.numBoardMppTypeValue = DB_88F6535_BOARD_MPP_GROUP_TYPE_NUM,
	.pBoardMppTypeValue = db88f6535InfoBoardMppTypeInfo,
	.numBoardMppConfigValue = DB_88F6535_BOARD_MPP_CONFIG_NUM,
	.pBoardMppConfigValue = db88f6535InfoBoardMppConfigValue,
	.intsGppMaskLow = 0,
	.intsGppMaskMid = 0,
	.intsGppMaskHigh = 0,
	.numBoardDeviceIf = DB_88F6535_BOARD_DEVICE_CONFIG_NUM,
	.pDevCsInfo = db88f6535InfoBoardDeCsInfo,
	.numBoardTwsiDev = DB_88F6535_BOARD_TWSI_DEF_NUM,
	.pBoardTwsiDev = db88f6535InfoBoardTwsiDev,
	.numBoardMacInfo = DB_88F6535_BOARD_MAC_INFO_NUM,
	.pBoardMacInfo = db88f6535InfoBoardMacInfo,
	.numBoardGppInfo = MV_ARRAY_SIZE(db88f6535InfoBoardGppInfo),
	.pBoardGppInfo = db88f6535InfoBoardGppInfo,
	.activeLedsNumber = DB_88F6535_BOARD_DEBUG_LED_NUM,
	.pLedGppPin = NULL,
	.ledsPolarity = 0,

	/* GPP values */
	.gppOutEnValLow = DB_88F6535_GPP_OUT_ENA_LOW,
	.gppOutEnValMid = DB_88F6535_GPP_OUT_ENA_MID,
	.gppOutEnValHigh = DB_88F6535_GPP_OUT_ENA_HIGH,
	.gppOutValLow = DB_88F6535_GPP_OUT_VAL_LOW,
	.gppOutValMid = DB_88F6535_GPP_OUT_VAL_MID,
	.gppOutValHigh = DB_88F6535_GPP_OUT_VAL_HIGH,
	.gppPolarityValLow = DB_88F6535_GPP_POL_LOW,
	.gppPolarityValMid = DB_88F6535_GPP_POL_MID,
	.gppPolarityValHigh = DB_88F6535_GPP_POL_HIGH,

	/* External Switch Configuration */
	.pSwitchInfo = db88f6535InfoBoardSwitchValue,
	.switchInfoNum = DB_88F6535_BOARD_SWITCH_NUM,

	/* PON configuration. */
	.ponConfigValue = BOARD_PON_AUTO,

	/* TDM configuration */
	/* We hold a different configuration array for each possible slic that
	 ** can be connected to board.
	 ** When modules are scanned, then we select the index of the relevant
	 ** slic's information array.
	 ** For RD and Customers boards we only need to initialize a single
	 ** entry of the arrays below, and set the boardTdmInfoIndex to 0.
	 */
	.numBoardTdmInfo = {2, 6, 1},
	.pBoardTdmInt2CsInfo = {db88f6535Tdm880,
				db88f6535Tdm792,
				db88f6535Tdm3215},
	.boardTdmInfoIndex = -1,

	.pBoardSpecInit = db88f6535BoardSpecInit,

	.deepIdlePwrUpDelay = 2400,	/* 12uS */

	/* NAND init params */
	.nandFlashReadParams = DB_88F6535_BOARD_NAND_READ_PARAMS,
	.nandFlashWriteParams = DB_88F6535_BOARD_NAND_WRITE_PARAMS,
	.nandFlashControl = DB_88F6535_BOARD_NAND_CONTROL,
	.pBoardTdmSpiInfo = db88f6535TdmSpiInfo,

	/* Enable modules auto-detection. */
	.moduleAutoDetect = MV_TRUE
};

/* RD-88F6510-SFU */
#define RD_88F6510_BOARD_TWSI_DEF_NUM		0x0
#define RD_88F6510_BOARD_SWITCH_NUM		0x1
#define RD_88F6510_BOARD_MAC_INFO_NUM		0x2
#define RD_88F6510_BOARD_GPP_INFO_NUM		0x1
#define RD_88F6510_BOARD_MPP_CONFIG_NUM		0x1
#define RD_88F6510_BOARD_MPP_GROUP_TYPE_NUM	0x1
#define RD_88F6510_BOARD_DEVICE_CONFIG_NUM	0x1
#define RD_88F6510_BOARD_DEBUG_LED_NUM		0x0

#define RD_88F6510_BOARD_NAND_READ_PARAMS	0x000C0282
#define RD_88F6510_BOARD_NAND_WRITE_PARAMS	0x00010305
/* NAND care support for small page chips */
#define RD_88F6510_BOARD_NAND_CONTROL		0x01c00543

MV_BOARD_TWSI_INFO rd88f6510InfoBoardTwsiDev[] = {
	/* {{MV_BOARD_DEV_CLASS devClass, MV_U8 twsiDevAddr, MV_U8 twsiDevAddrType}} */
};

MV_BOARD_MAC_INFO rd88f6510InfoBoardMacInfo[] = {
	/* {{MV_BOARD_MAC_SPEED boardMacSpeed, MV_U8 boardEthSmiAddr}} */
	{BOARD_MAC_SPEED_1000M, 0x0}
	,
	{BOARD_MAC_SPEED_1000M, 0x9}
/* 	{BOARD_MAC_SPEED_AUTO, 0x9} */

};

MV_BOARD_MPP_TYPE_INFO rd88f6510InfoBoardMppTypeInfo[] = {
	{
	 .boardMppTdm = MV_BOARD_TDM_2CH,
	 //.ethSataComplexOpt = ESC_OPT_MAC0_2_SW_P4 | ESC_OPT_MAC1_2_SW_P5 | ESC_OPT_FE3PHY | ESC_OPT_GEPHY_SW_P0,
	 .ethSataComplexOpt = ESC_OPT_GEPHY_MAC1,
	 .ethPortsMode = 0x0
	 }
};

MV_BOARD_GPP_INFO rd88f6510InfoBoardGppInfo[] = {
	/* {{MV_BOARD_GPP_CLASS devClass, MV_U8 gppPinNum}} */
	{BOARD_GPP_PEX_RESET, 67},
	{BOARD_GPP_PON_P2P_BEN, 68}
};

MV_DEV_CS_INFO rd88f6510InfoBoardDeCsInfo[] = {
	/*{deviceCS, params, devType, devWidth} */
#if defined(MTD_NAND_LNC)
	{NAND_NOR_CS, N_A, BOARD_DEV_NAND_FLASH, 8}	/* NAND DEV */
#elif defined(MV_SPI)
	{SPI_CS0, N_A, BOARD_DEV_SPI_FLASH, 8}		/* SPI DEV */
#else
	{N_A, N_A, N_A, N_A}			/* No device */
#endif
};

MV_BOARD_MPP_INFO rd88f6510InfoBoardMppConfigValue[] = {
	{{
		RD_88F6510_MPP0_7,
		RD_88F6510_MPP8_15,
		RD_88F6510_MPP16_23,
		RD_88F6510_MPP24_31,
		RD_88F6510_MPP32_39,
		RD_88F6510_MPP40_47,
		RD_88F6510_MPP48_55,
		RD_88F6510_MPP56_63,
		RD_88F6510_MPP64_71,
		RD_88F6510_MPP72_79,
		RD_88F6510_MPP80_87,
		RD_88F6510_MPP88_88
	  }
	 }
};

MV_BOARD_SWITCH_INFO rd88f6510InfoBoardSwitchValue[] = {
	{
	 .switchIrq = 29,	/* set to -1 for timer operation */
	 .switchPort = {1, 2, 3, 0, -1, -1, -1, -1},
	 .cpuPort = 4,
	 //.connectedPort = {4, 5, -1},
	 .connectedPort = {4, -1, -1},
	 .smiScanMode = 1,
	 .quadPhyAddr = 0,
	 .forceLinkMask = 0x0
	 }
};

MV_BOARD_TDM_INFO rd88f6510Tdm880[] = { {1} };

MV_BOARD_TDM_SPI_INFO rd88f6510TdmSpiInfo[] = { {0} };

MV_BOARD_INFO rd88f6510Info = {
	.boardName = "RD-88F6510-SFU",
	.numBoardMppTypeValue = RD_88F6510_BOARD_MPP_GROUP_TYPE_NUM,
	.pBoardMppTypeValue = rd88f6510InfoBoardMppTypeInfo,
	.numBoardMppConfigValue = RD_88F6510_BOARD_MPP_CONFIG_NUM,
	.pBoardMppConfigValue = rd88f6510InfoBoardMppConfigValue,
	.intsGppMaskLow = 0,
	.intsGppMaskMid = 0,
	.intsGppMaskHigh = 0,
	.numBoardDeviceIf = RD_88F6510_BOARD_DEVICE_CONFIG_NUM,
	.pDevCsInfo = rd88f6510InfoBoardDeCsInfo,
	.numBoardTwsiDev = RD_88F6510_BOARD_TWSI_DEF_NUM,
	.pBoardTwsiDev = rd88f6510InfoBoardTwsiDev,
	.numBoardMacInfo = RD_88F6510_BOARD_MAC_INFO_NUM,
	.pBoardMacInfo = rd88f6510InfoBoardMacInfo,
	.numBoardGppInfo = MV_ARRAY_SIZE(rd88f6510InfoBoardGppInfo),
	.pBoardGppInfo = rd88f6510InfoBoardGppInfo,
	.activeLedsNumber = RD_88F6510_BOARD_DEBUG_LED_NUM,
	.pLedGppPin = NULL,
	.ledsPolarity = 0,

	/* GPP values */
	.gppOutEnValLow = RD_88F6510_GPP_OUT_ENA_LOW,
	.gppOutEnValMid = RD_88F6510_GPP_OUT_ENA_MID,
	.gppOutEnValHigh = RD_88F6510_GPP_OUT_ENA_HIGH,
	.gppOutValLow = RD_88F6510_GPP_OUT_VAL_LOW,
	.gppOutValMid = RD_88F6510_GPP_OUT_VAL_MID,
	.gppOutValHigh = RD_88F6510_GPP_OUT_VAL_HIGH,
	.gppPolarityValLow = RD_88F6510_GPP_POL_LOW,
	.gppPolarityValMid = RD_88F6510_GPP_POL_MID,
	.gppPolarityValHigh = RD_88F6510_GPP_POL_HIGH,

	/* External Switch Configuration */
	.pSwitchInfo = rd88f6510InfoBoardSwitchValue,
	.switchInfoNum = RD_88F6510_BOARD_SWITCH_NUM,

	/* PON configuration. */
	.ponConfigValue = BOARD_PON_AUTO,

	/* TDM configuration */
	/* We hold a different configuration array for each possible slic that
	 ** can be connected to board.
	 ** When modules are scanned, then we select the index of the relevant
	 ** slic's information array.
	 ** For RD and Customers boards we only need to initialize a single
	 ** entry of the arrays below, and set the boardTdmInfoIndex to 0.
	 */
	.numBoardTdmInfo = {1}
	,
	.pBoardTdmInt2CsInfo = {rd88f6510Tdm880,
				}
	,
	.boardTdmInfoIndex = 0,

	.deepIdlePwrUpDelay = 0x80000,

	/* NAND init params */
	.nandFlashReadParams = RD_88F6510_BOARD_NAND_READ_PARAMS,
	.nandFlashWriteParams = RD_88F6510_BOARD_NAND_WRITE_PARAMS,
	.nandFlashControl = RD_88F6510_BOARD_NAND_CONTROL,
	.pBoardTdmSpiInfo = rd88f6510TdmSpiInfo,

	/* Disable modules auto-detection. */
	.moduleAutoDetect = MV_FALSE
};

/* RD-88F6560-GW */
#define RD_88F6560_BOARD_TWSI_DEF_NUM		0x0
#define RD_88F6560_BOARD_SWITCH_NUM		0x1
#define RD_88F6560_BOARD_MAC_INFO_NUM		0x2
//#define RD_88F6560_BOARD_GPP_INFO_NUM		11
#define RD_88F6560_BOARD_GPP_INFO_NUM		0
#define RD_88F6560_BOARD_MPP_CONFIG_NUM		0x1
#define RD_88F6560_BOARD_MPP_GROUP_TYPE_NUM	0x1
#define RD_88F6560_BOARD_DEVICE_CONFIG_NUM	0x1
//#define RD_88F6560_BOARD_DEBUG_LED_NUM		0x1
#define RD_88F6560_BOARD_DEBUG_LED_NUM		0x0

#define RD_88F6560_BOARD_NAND_READ_PARAMS	0x000C0282
#define RD_88F6560_BOARD_NAND_WRITE_PARAMS	0x00010305

/* NAND care support for small page chips */
#define RD_88F6560_BOARD_NAND_CONTROL		0x01c00543

MV_BOARD_TWSI_INFO rd88f6560InfoBoardTwsiDev[] = {
	/* {{MV_BOARD_DEV_CLASS devClass, MV_U8 twsiDevAddr, MV_U8 twsiDevAddrType}} */
};

MV_BOARD_MAC_INFO rd88f6560InfoBoardMacInfo[] = {
	/* {{MV_BOARD_MAC_SPEED boardMacSpeed, MV_U8 boardEthSmiAddr}} */
	{BOARD_MAC_SPEED_1000M, 0x8}
	,
	{BOARD_MAC_SPEED_AUTO, 0x9}
};

MV_BOARD_MPP_TYPE_INFO rd88f6560InfoBoardMppTypeInfo[] = {
	{
	 .boardMppTdm = MV_BOARD_TDM_2CH,
	 //.ethSataComplexOpt = ESC_OPT_QSGMII | ESC_OPT_GEPHY_MAC1 | ESC_OPT_MAC0_2_SW_P4,
	 .ethSataComplexOpt = ESC_OPT_GEPHY_MAC1,
	 .ethPortsMode = 0x0
	}
};

MV_BOARD_GPP_INFO rd88f6560InfoBoardGppInfo[] = {
	/* {{MV_BOARD_GPP_CLASS devClass, MV_U8 gppPinNum}} */
/*
	{BOARD_GPP_SDIO_WP, 31},
	{BOARD_GPP_PON_P2P_BEN, 37},
	{BOARD_GPP_FAN_POWER, 40},
	{BOARD_GPP_WPS_BUTTON, 47},
	{BOARD_GPP_SDIO_DETECT, 48},
	{BOARD_GPP_USB_VBUS, 58},
	{BOARD_GPP_USB_OC, 59},
	{BOARD_GPP_CONF, 60},
	{BOARD_GPP_CONF, 61},
	{BOARD_GPP_CONF, 62},
	{BOARD_GPP_PEX_RESET, 77}
*/
};

#if 0
MV_DEV_CS_INFO rd88f6560InfoBoardDeCsInfo[] = {
	/*{deviceCS, params, devType, devWidth} */
#if defined(MTD_NAND_LNC)
	{NAND_NOR_CS, N_A, BOARD_DEV_NAND_FLASH, 8}	/* NAND DEV */
#elif defined(MV_SPI)
	{SPI_CS0, N_A, BOARD_DEV_SPI_FLASH, 8}	/* SPI DEV */
#else
	{N_A, N_A, N_A, N_A}			/* No device */
#endif
};
#endif
MV_DEV_CS_INFO rd88f6560InfoBoardDeCsInfo[] = {
	{NAND_NOR_CS, N_A, BOARD_DEV_NAND_FLASH, 8}
};

MV_BOARD_MPP_INFO rd88f6560InfoBoardMppConfigValue[] = {
	{{
	  RD_88F6560_MPP0_7,
	  RD_88F6560_MPP8_15,
	  RD_88F6560_MPP16_23,
	  RD_88F6560_MPP24_31,
	  RD_88F6560_MPP32_39,
	  RD_88F6560_MPP40_47,
	  RD_88F6560_MPP48_55,
	  RD_88F6560_MPP56_63,
	  RD_88F6560_MPP64_71,
	  RD_88F6560_MPP72_79,
	  RD_88F6560_MPP80_87,
	  RD_88F6560_MPP88_88
	  }
	 }
};

MV_BOARD_SWITCH_INFO rd88f6560InfoBoardSwitchValue[] = {
	{
	 .switchIrq = 29,	/* set to -1 for timer operation */
	 .switchPort = {1, 2, 3, 0, -1, -1, -1, -1},
	 .cpuPort = 4,
	 .connectedPort = {4, -1, -1},
	 .smiScanMode = 2,
	 .quadPhyAddr = 0,
	 .forceLinkMask = 0x0
	 }
};

//MV_U8 rd88f6560LedGppPin[] = { 68 };
MV_U8 rd88f6560LedGppPin[] = { };

//MV_BOARD_TDM_INFO rd88f6560Tdm880[] = { {1} };
MV_BOARD_TDM_INFO rd88f6560Tdm880[] = { };

//MV_BOARD_TDM_SPI_INFO rd88f6560TdmSpiInfo[] = { {1} };
MV_BOARD_TDM_SPI_INFO rd88f6560TdmSpiInfo[] = { };

#if 0
MV_BOARD_SPEC_INIT rd88f6560BoardSpecInit[] = {
	{
		.reg = PMU_POWER_IF_POLARITY_REG,
		.mask = (BIT1),
		.val = 0
	},
	{
		.reg = TBL_TERM,
		.val = TBL_TERM
	}
};
#endif
MV_BOARD_SPEC_INIT rd88f6560BoardSpecInit[] = {
	{
		.reg = TBL_TERM,
		.val = TBL_TERM
	}

};

MV_BOARD_INFO rd88f6560Info = {
	//.boardName = "RD-88F6560-GW",
	.boardName = "SG200",
	.numBoardMppTypeValue = RD_88F6560_BOARD_MPP_GROUP_TYPE_NUM,
	.pBoardMppTypeValue = rd88f6560InfoBoardMppTypeInfo,
	.numBoardMppConfigValue = RD_88F6560_BOARD_MPP_CONFIG_NUM,
	.pBoardMppConfigValue = rd88f6560InfoBoardMppConfigValue,
	.intsGppMaskLow = 0,
	.intsGppMaskMid = 0,
	.intsGppMaskHigh = 0,
	.numBoardDeviceIf = RD_88F6560_BOARD_DEVICE_CONFIG_NUM,
	.pDevCsInfo = rd88f6560InfoBoardDeCsInfo,
	.numBoardTwsiDev = RD_88F6560_BOARD_TWSI_DEF_NUM,
	.pBoardTwsiDev = rd88f6560InfoBoardTwsiDev,
	.numBoardMacInfo = RD_88F6560_BOARD_MAC_INFO_NUM,
	.pBoardMacInfo = rd88f6560InfoBoardMacInfo,
	.numBoardGppInfo = MV_ARRAY_SIZE(rd88f6560InfoBoardGppInfo),
	.pBoardGppInfo = rd88f6560InfoBoardGppInfo,
	.activeLedsNumber = RD_88F6560_BOARD_DEBUG_LED_NUM,
	.pLedGppPin = rd88f6560LedGppPin,
	.ledsPolarity = 0,

	/* GPP values */
	.gppOutEnValLow = RD_88F6560_GPP_OUT_ENA_LOW,
	.gppOutEnValMid = RD_88F6560_GPP_OUT_ENA_MID,
	.gppOutEnValHigh = RD_88F6560_GPP_OUT_ENA_HIGH,
	.gppOutValLow = RD_88F6560_GPP_OUT_VAL_LOW,
	.gppOutValMid = RD_88F6560_GPP_OUT_VAL_MID,
	.gppOutValHigh = RD_88F6560_GPP_OUT_VAL_HIGH,
	.gppPolarityValLow = RD_88F6560_GPP_POL_LOW,
	.gppPolarityValMid = RD_88F6560_GPP_POL_MID,
	.gppPolarityValHigh = RD_88F6560_GPP_POL_HIGH,

	/* External Switch Configuration */
	.pSwitchInfo = rd88f6560InfoBoardSwitchValue,
	.switchInfoNum = RD_88F6560_BOARD_SWITCH_NUM,

	/* PON configuration. */
	//.ponConfigValue = BOARD_GPON_CONFIG,
	.ponConfigValue = BOARD_PON_NONE,

	/* TDM configuration */
	/* We hold a different configuration array for each possible slic that
	 ** can be connected to board.
	 ** When modules are scanned, then we select the index of the relevant
	 ** slic's information array.
	 ** For RD and Customers boards we only need to initialize a single
	 ** entry of the arrays below, and set the boardTdmInfoIndex to 0.
	 */
	//.numBoardTdmInfo = {1},
	.numBoardTdmInfo = {},
	.pBoardTdmInt2CsInfo = { rd88f6560Tdm880 },
	.boardTdmInfoIndex = 0,

	.pBoardSpecInit = rd88f6560BoardSpecInit,

	.deepIdlePwrUpDelay = 2400, /* 12 uS */

	/* NAND init params */
	.nandFlashReadParams = RD_88F6560_BOARD_NAND_READ_PARAMS,
	.nandFlashWriteParams = RD_88F6560_BOARD_NAND_WRITE_PARAMS,
	.nandFlashControl = RD_88F6560_BOARD_NAND_CONTROL,
	.pBoardTdmSpiInfo = rd88f6560TdmSpiInfo,

	/* Disable modules auto-detection. */
	.moduleAutoDetect = MV_FALSE
};


/* RD-88F6530-MDU */
#define RD_88F6530_BOARD_TWSI_DEF_NUM		0x0
#define RD_88F6530_BOARD_SWITCH_NUM		0x0
#define RD_88F6530_BOARD_MAC_INFO_NUM		0x2
#define RD_88F6530_BOARD_GPP_INFO_NUM		0x0
#define RD_88F6530_BOARD_MPP_CONFIG_NUM		0x1
#define RD_88F6530_BOARD_MPP_GROUP_TYPE_NUM	0x1
#define RD_88F6530_BOARD_DEVICE_CONFIG_NUM	0x1
#define RD_88F6530_BOARD_DEBUG_LED_NUM		0x0

#define RD_88F6530_BOARD_NAND_READ_PARAMS	0x000C0282
#define RD_88F6530_BOARD_NAND_WRITE_PARAMS	0x00010305
#define RD_88F6530_BOARD_NAND_CONTROL		0x01c00543

MV_BOARD_TWSI_INFO rd88f6530InfoBoardTwsiDev[] = {
	/* {{MV_BOARD_DEV_CLASS devClass, MV_U8 twsiDevAddr, MV_U8 twsiDevAddrType}} */
};

MV_BOARD_MAC_INFO rd88f6530InfoBoardMacInfo[] = {
	/* {{MV_BOARD_MAC_SPEED boardMacSpeed, MV_U8 boardEthSmiAddr}} */
	{BOARD_MAC_SPEED_1000M, 0x8}
	,			/* This connected to SGMII to xcat ,right now forced SGMII 1G */
	{BOARD_MAC_SPEED_AUTO, 0x9}
};

MV_BOARD_MPP_TYPE_INFO rd88f6530InfoBoardMppTypeInfo[] = {
	{
	 .boardMppTdm = MV_BOARD_TDM_2CH,
	 .ethSataComplexOpt = ESC_OPT_SGMII | ESC_OPT_GEPHY_MAC1,
	 .ethPortsMode = 0x0
	}
};

MV_BOARD_GPP_INFO rd88f6530InfoBoardGppInfo[] = {
	/* {{MV_BOARD_GPP_CLASS devClass, MV_U8 gppPinNum}} */
};

MV_DEV_CS_INFO rd88f6530InfoBoardDeCsInfo[] = {
	/*{deviceCS, params, devType, devWidth} */
#if defined(MTD_NAND_LNC)
	{NAND_NOR_CS, N_A, BOARD_DEV_NAND_FLASH, 8}	/* NAND DEV */
#elif defined(MV_SPI)
	{SPI_CS0, N_A, BOARD_DEV_SPI_FLASH, 8}	/* SPI DEV */
#else
	{N_A, N_A, N_A, N_A}			/* No device */
#endif
};

MV_BOARD_MPP_INFO rd88f6530InfoBoardMppConfigValue[] = {
	{{
	  RD_88F6530_MPP0_7,
	  RD_88F6530_MPP8_15,
	  RD_88F6530_MPP16_23,
	  RD_88F6530_MPP24_31,
	  RD_88F6530_MPP32_39,
	  RD_88F6530_MPP40_47,
	  RD_88F6530_MPP48_55,
	  RD_88F6530_MPP56_63,
	  RD_88F6530_MPP64_69,
	  RD_88F6530_MPP72_79,
	  RD_88F6530_MPP80_87,
	  RD_88F6530_MPP88_88
	  }
	 }
};

MV_BOARD_TDM_INFO rd88f6530Tdm880[] = { {1}
};

MV_BOARD_TDM_SPI_INFO rd88f6530TdmSpiInfo[] = { {0} };

MV_BOARD_INFO rd88f6530Info = {
	.boardName = "RD-88F6530-MDU",
	.numBoardMppTypeValue = RD_88F6530_BOARD_MPP_GROUP_TYPE_NUM,
	.pBoardMppTypeValue = rd88f6530InfoBoardMppTypeInfo,
	.numBoardMppConfigValue = RD_88F6530_BOARD_MPP_CONFIG_NUM,
	.pBoardMppConfigValue = rd88f6530InfoBoardMppConfigValue,
	.intsGppMaskLow = 0,
	.intsGppMaskMid = 0,
	.intsGppMaskHigh = 0,
	.numBoardDeviceIf = RD_88F6530_BOARD_DEVICE_CONFIG_NUM,
	.pDevCsInfo = rd88f6530InfoBoardDeCsInfo,
	.numBoardTwsiDev = RD_88F6530_BOARD_TWSI_DEF_NUM,
	.pBoardTwsiDev = rd88f6530InfoBoardTwsiDev,
	.numBoardMacInfo = RD_88F6530_BOARD_MAC_INFO_NUM,
	.pBoardMacInfo = rd88f6530InfoBoardMacInfo,
	.numBoardGppInfo = MV_ARRAY_SIZE(rd88f6530InfoBoardGppInfo),
	.pBoardGppInfo = rd88f6530InfoBoardGppInfo,
	.activeLedsNumber = RD_88F6530_BOARD_DEBUG_LED_NUM,
	.pLedGppPin = NULL,
	.ledsPolarity = 0,

	/* GPP values */
	.gppOutEnValLow = RD_88F6530_GPP_OUT_ENA_LOW,
	.gppOutEnValMid = RD_88F6530_GPP_OUT_ENA_MID,
	.gppOutEnValHigh = RD_88F6530_GPP_OUT_ENA_HIGH,
	.gppOutValLow = RD_88F6530_GPP_OUT_VAL_LOW,
	.gppOutValMid = RD_88F6530_GPP_OUT_VAL_MID,
	.gppOutValHigh = RD_88F6530_GPP_OUT_VAL_HIGH,
	.gppPolarityValLow = RD_88F6530_GPP_POL_LOW,
	.gppPolarityValMid = RD_88F6530_GPP_POL_MID,
	.gppPolarityValHigh = RD_88F6530_GPP_POL_HIGH,

	/* External Switch Configuration */
	.pSwitchInfo = NULL,
	.switchInfoNum = 0,

	/* PON configuration. */
	.ponConfigValue = BOARD_GPON_CONFIG,

	/* TDM configuration */
	/* We hold a different configuration array for each possible slic that
	 ** can be connected to board.
	 ** When modules are scanned, then we select the index of the relevant
	 ** slic's information array.
	 ** For RD and Customers boards we only need to initialize a single
	 ** entry of the arrays below, and set the boardTdmInfoIndex to 0.
	 */
	.numBoardTdmInfo = {1}
	,
	.pBoardTdmInt2CsInfo = {rd88f6530Tdm880,
				}
	,
	.boardTdmInfoIndex = 0,

	.deepIdlePwrUpDelay = 0x80000,

	/* NAND init params */
	.nandFlashReadParams = RD_88F6530_BOARD_NAND_READ_PARAMS,
	.nandFlashWriteParams = RD_88F6530_BOARD_NAND_WRITE_PARAMS,
	.nandFlashControl = RD_88F6530_BOARD_NAND_CONTROL,
	.pBoardTdmSpiInfo = rd88f6530TdmSpiInfo,

	/* Disable modules auto-detection. */
	.moduleAutoDetect = MV_FALSE
};

/* Customer specific board place holder*/

#define DB_CUSTOMER_BOARD_PCI_IF_NUM		        0x0
#define DB_CUSTOMER_BOARD_TWSI_DEF_NUM		        0x0
#define DB_CUSTOMER_BOARD_MAC_INFO_NUM		        0x0
#define DB_CUSTOMER_BOARD_GPP_INFO_NUM		        0x0
#define DB_CUSTOMER_BOARD_MPP_GROUP_TYPE_NUN        0x0
#define DB_CUSTOMER_BOARD_MPP_CONFIG_NUM		    0x0
#define DB_CUSTOMER_BOARD_DEVICE_CONFIG_NUM	    	0x0
#define DB_CUSTOMER_BOARD_DEBUG_LED_NUM				0x0
#define DB_CUSTOMER_BOARD_NAND_READ_PARAMS		    0x000E02C2
#define DB_CUSTOMER_BOARD_NAND_WRITE_PARAMS		    0x00010305
#define DB_CUSTOMER_BOARD_NAND_CONTROL		        0x01c00543

MV_U8 dbCustomerInfoBoardDebugLedIf[] = { 0 };

MV_BOARD_MAC_INFO dbCustomerInfoBoardMacInfo[] =
    /* {{MV_BOARD_MAC_SPEED     boardMacSpeed,  MV_U8   boardEthSmiAddr}} */
{ {BOARD_MAC_SPEED_AUTO, 0x0}
};

MV_BOARD_TWSI_INFO dbCustomerInfoBoardTwsiDev[] =
    /* {{MV_BOARD_DEV_CLASS devClass, MV_U8 twsiDevAddr, MV_U8 twsiDevAddrType}} */
{ {BOARD_TWSI_OTHER, 0x0, ADDR7_BIT}
};

MV_BOARD_MPP_TYPE_INFO dbCustomerInfoBoardMppTypeInfo[] = { {MV_BOARD_OTHER, MV_BOARD_OTHER, 0x0}
};

MV_DEV_CS_INFO dbCustomerInfoBoardDeCsInfo[] = {
	/*{deviceCS, params, devType, devWidth} */
#if defined(MTD_NAND_LNC)
	{NAND_NOR_CS, N_A, BOARD_DEV_NAND_FLASH, 8}	/* NAND DEV */
#elif defined(MV_SPI)
	{SPI_CS0, N_A, BOARD_DEV_SPI_FLASH, 8}	/* SPI DEV */
#else
	{N_A, N_A, N_A, N_A}			/* No device */
#endif
};

MV_BOARD_MPP_INFO dbCustomerInfoBoardMppConfigValue[] = { {{
							    DB_CUSTOMER_MPP0_7,
							    DB_CUSTOMER_MPP8_15,
							    DB_CUSTOMER_MPP16_23,
							    DB_CUSTOMER_MPP24_31,
							    DB_CUSTOMER_MPP32_39,
							    DB_CUSTOMER_MPP40_47,
							    DB_CUSTOMER_MPP48_55}
							   }
};

MV_BOARD_INFO dbCustomerInfo = { };

MV_BOARD_INFO *boardInfoTbl[] = {
	&db88f6535Info,
	&rd88f6510Info,
	&rd88f6560Info,
	&rd88f6530Info,
	&rd88f6510Info,
	&rd88f6510Info,
	&dbCustomerInfo
};
3rd one
/*******************************************************************************
Copyright (C) Marvell International Ltd. and its affiliates

This software file (the "File") is owned and distributed by Marvell
International Ltd. and/or its affiliates ("Marvell") under the following
alternative licensing terms.  Once you have made an election to distribute the
File under one of the following license alternatives, please (i) delete this
introductory statement regarding license alternatives, (ii) delete the two
license alternatives that you have not elected to use and (iii) preserve the
Marvell copyright notice above.

********************************************************************************
Marvell Commercial License Option

If you received this File from Marvell and you have entered into a commercial
license agreement (a "Commercial License") with Marvell, the File is licensed
to you under the terms of the applicable Commercial License.

********************************************************************************
Marvell GPL License Option

If you received this File from Marvell, you may opt to use, redistribute and/or
modify this File in accordance with the terms and conditions of the General
Public License Version 2, June 1991 (the "GPL License"), a copy of which is
available along with the File in the license.txt file or by writing to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 or
on the worldwide web at http://www.gnu.org/licenses/gpl.txt.

THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY
DISCLAIMED.  The GPL License provides additional details about this warranty
disclaimer.
********************************************************************************
Marvell BSD License Option

If you received this File from Marvell, you may opt to use, redistribute and/or
modify this File under the following licensing terms.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

    *	Redistributions of source code must retain the above copyright notice,
	this list of conditions and the following disclaimer.

    *	Redistributions in binary form must reproduce the above copyright
	notice, this list of conditions and the following disclaimer in the
	documentation and/or other materials provided with the distribution.

    *	Neither the name of Marvell nor the names of its contributors may be
	used to endorse or promote products derived from this software without
	specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

*******************************************************************************/
#ifndef __INCmvBoardEnvLibh
#define __INCmvBoardEnvLibh

/* defines */
/* The below constant macros defines the board I2C EEPROM data offsets */

#include "ctrlEnv/mvCtrlEnvLib.h"
#include "mvSysHwConfig.h"
#include "boardEnv/mvBoardEnvSpec.h"
#include "twsi/mvTwsi.h"

/* DUART stuff for Tclk detection only */
#define DUART_BAUD_RATE			115200
#define MAX_CLOCK_MARGINE		5000000	/* Maximum detected clock margine */

/* Voice devices assembly modes */
#define DAISY_CHAIN_MODE	1
#define DUAL_CHIP_SELECT_MODE   0
#define INTERRUPT_TO_MPP        1
#define INTERRUPT_TO_TDM	0

#define BOARD_ETH_PORT_NUM  MV_ETH_MAX_PORTS
#define BOARD_ETH_SWITCH_PORT_NUM	8
#define BOARD_ETH_SWITCH_CPUPORT_NUM	2

#define	MV_BOARD_MAX_USB_IF		1
#define MV_BOARD_MAX_MPP		12
#define MV_BOARD_NAME_LEN  		0x20

/*
#define MV_BOARD_CFG_IS_GPON_EN(cfg)	(cfg & 0x1)
#define MV_BOARD_CFG_IS_EPON_EN(cfg)	(!MV_BOARD_CFG_IS_EPON(cfg))
#define MV_BOARD_CFG_IS_QSGMII_EN(cfg)	((cfg & 0x8) && (cfg & 0x10))
#define MV_BOARD_CFG_IS_SGMII_EN(cfg)	((cfg & 0x8) && (!(cfg & 0x10)))
#define MV_BOARD_CFG_IS_SATA_EN(cfg)	(!(cfg & 0x8))
#define MV_BOARD_CFG_IS_3FE_1GE_EN(cfg)	(cfg & 0x20)
#define MV_BOARD_CFG_IS_4FE_EN(cfg)	(!MV_BOARD_CFG_IS_3FE_1GE_EN(cfg))
*/
/* EPPROM Modules detection information */
#define MV_BOARD_CFG_SW_SRC(cfg)	(cfg & 0x3)
/* SW_SRC
JP5 JP6
 0   0
	If QSGMII module present: MAC0 => Switch => QSGMII
 0   1
	If QSGMII module present: MAC1 => Switch => QSGMII
	If QSGMII module not present: MAC0 => Switch => 3xFE
 1   0
	If QSGMII module present: MAC0 => Switch => QSGMII.
	If QSGMII module not present: MAC1 => Switch => 3xFE.
 1   1
	If QSGMII module present: (MAC0 + MAC1) => Switch => QSGMII
	If QSGMII module not present: (MAC0 + MAC1) => Switch => 3xFE
*/
#define MV_BOARD_CFG_SERDES_SRC(cfg)	((cfg & 0xC)>>2)
/* SERDES_SRC
JP8 JP10
 0   0    None
 1   0    SATA
 0   1    SGMII
 1   1    N/A
*/
#define MV_BOARD_CFG_RGMIIA_SRC(cfg)	((cfg & 0x30)>>4)
/* RGMIIA_SRC
JP11 JP12
 0    0   None
 1    0   MAC0 source
 0    1   MAC1 source
 1    1   Switch port 5 source
*/
#define MV_BOARD_CFG_FEGEPHY_SRC(cfg)	((cfg & 0xC0)>>6)
/* GEPHY_SRC
JP17 JP18
 0    0   None
 1    0   MAC1 source
 0    1   Switch port 4 source
 1    1   Switch port 5 source
*/

#define MV_BOARD_EEPROM_MODULE_ADDR		0x24
#define MV_BOARD_EEPROM_MODULE_ADDR_TYPE	ADDR7_BIT

#define MV_BOARD_RGMIIA_MODULE_ADDR		0x22
#define MV_BOARD_RGMIIA_MODULE_ADDR_TYPE	ADDR7_BIT
#define MV_BOARD_RGMIIA_MODULE_MUX_CHNUM	1

#define MV_BOARD_RGMIIB_MODULE_ADDR		0x20
#define MV_BOARD_RGMIIB_MODULE_ADDR_TYPE	ADDR7_BIT
#define MV_BOARD_RGMIIB_MODULE_MUX_CHNUM	1

#define MV_BOARD_QSGMII_MODULE_ADDR		0x23
#define MV_BOARD_QSGMII_MODULE_ADDR_TYPE	ADDR7_BIT
#define MV_BOARD_QSGMII_MODULE_MUX_CHNUM	1

#define MV_BOARD_GE_SFP_MODULE_ADDR		0x50
#define MV_BOARD_GE_SFP_MODULE_ADDR_TYPE	ADDR7_BIT
#define MV_BOARD_GE_SFP_MODULE_MUX_CHNUM	1

#define MV_BOARD_TDM_792_ADAPT_MODULE_ADDR	0x27
#define MV_BOARD_TDM_880_MODULE_ADDR		0x26
#define MV_BOARD_TDM_3215_MODULE_ADDR		0x23
#define MV_BOARD_TDM_MODULE_ADDR_TYPE		ADDR7_BIT
#define MV_BOARD_TDM_MODULE_MUX_CHNUM		0

#define MV_BOARD_SWITCH_SCAN_MODE_SATR_IDX	0
#define MV_BOARD_SWITCH_SCAN_MODE(x)		((x & 1) == 1)
#define MV_BOARD_SWITCH_SCAN_MODE_MASK		0x1


typedef struct _boardData {
	MV_U32 magic;
	MV_U16 boardId;
	MV_U8 boardVer;
	MV_U8 boardRev;
	MV_U32 reserved1;
	MV_U32 reserved2;
} BOARD_DATA;

typedef enum _devBoardMppGroupClass {
	MV_BOARD_MPP_GROUP_1,
	MV_BOARD_MPP_GROUP_2,
	MV_BOARD_MPP_GROUP_3,
	MV_BOARD_MAX_MPP_GROUP
} MV_BOARD_MPP_GROUP_CLASS;

typedef enum _devBoardMppTypeClass {
	MV_BOARD_AUTO,
	MV_BOARD_TDM_2CH,
	MV_BOARD_TDM_32CH,
	MV_BOARD_GE0,
	MV_BOARD_GE1,
	MV_BOARD_SW_P5,
	MV_BOARD_SW_P6,
	MV_BOARD_OTHER
} MV_BOARD_MPP_TYPE_CLASS;

#ifdef MV_TDM_2CHANNELS
#define MV_BOARD_TDM 	MV_BOARD_TDM_2CH
#else
#define MV_BOARD_TDM	MV_BOARD_TDM_32CH
#endif

typedef enum {
	MV_BOARD_MODULE_TS_ID = 0x00001,
	MV_BOARD_MODULE_QSGMII_ID = 0x00002,
	MV_BOARD_MODULE_SGMII_ID = 0x00004,
	MV_BOARD_MODULE_GE_SFP_ID = 0x00008,
	MV_BOARD_MODULE_RGMIIA_ID = 0x00010,
	MV_BOARD_MODULE_RGMIIB_ID = 0x00020,
	MV_BOARD_MODULE_MIIA_ID = 0x00040,
	MV_BOARD_MODULE_MIIB_ID = 0x00080,
	MV_BOARD_MODULE_TDM_1_ID = 0x00100,
	MV_BOARD_MODULE_TDM_2_ID = 0x00200,
	MV_BOARD_MODULE_TDM_3_ID = 0x00400,
	MV_BOARD_MODULE_TDM_4_ID = 0x00800,
	MV_BOARD_MODULE_GPON_ID = 0x01000,
	MV_BOARD_MODULE_EPON_ID = 0x02000,
	MV_BOARD_MODULE_4FE_PHY_ID = 0x04000,
	MV_BOARD_MODULE_FE_GE_PHY_ID = 0x08000,
	MV_BOARD_MODULE_SATA_ID = 0x10000,
	MV_BOARD_MODULE_SDIO_ID = 0x20000,
	MV_BOARD_MODULE_OTHER_ID = 0x80000
} MV_BOARD_MODULE_ID_CLASS;

typedef struct _boardMppTypeInfo {
	MV_BOARD_MPP_TYPE_CLASS boardMppTdm;

	/* Ethernet / Sata complex                      */
	/* A bitmask of MV_ETH_SATA_COMPLEX_OPTIONS     */
	MV_U32 ethSataComplexOpt;
	MV_U32 ethPortsMode;	/* bitmask of MV_ETH_PORT_MODE */
} MV_BOARD_MPP_TYPE_INFO;

typedef enum _devBoardClass {
	BOARD_DEV_NOR_FLASH,
	BOARD_DEV_NAND_FLASH,
	BOARD_DEV_SEVEN_SEG,
	BOARD_DEV_FPGA,
	BOARD_DEV_SRAM,
	BOARD_DEV_SPI_FLASH,
	BOARD_DEV_OTHER,
} MV_BOARD_DEV_CLASS;

typedef enum _devTwsiBoardClass {
	BOARD_TWSI_RTC,
	BOARD_DEV_TWSI_EXP,
	BOARD_DEV_TWSI_SATR,
	BOARD_TWSI_MUX,
	BOARD_TWSI_AUDIO_DEC,
	BOARD_TWSI_OTHER
} MV_BOARD_TWSI_CLASS;

typedef enum _devGppBoardClass {
	BOARD_GPP_RTC,
	BOARD_GPP_MV_SWITCH,
	BOARD_GPP_USB_VBUS,
	BOARD_GPP_USB_VBUS_EN,
	BOARD_GPP_USB_OC,
	BOARD_GPP_USB_HOST_DEVICE,
	BOARD_GPP_REF_CLCK,
	BOARD_GPP_VOIP_SLIC,
	BOARD_GPP_LIFELINE,
	BOARD_GPP_BUTTON,
	BOARD_GPP_TS_BUTTON_C,
	BOARD_GPP_TS_BUTTON_U,
	BOARD_GPP_TS_BUTTON_D,
	BOARD_GPP_TS_BUTTON_L,
	BOARD_GPP_TS_BUTTON_R,
	BOARD_GPP_POWER_BUTTON,
	BOARD_GPP_RESTOR_BUTTON,
	BOARD_GPP_WPS_BUTTON,
	BOARD_GPP_HDD0_POWER,
	BOARD_GPP_HDD1_POWER,
	BOARD_GPP_FAN_POWER,
	BOARD_GPP_RESET,
	BOARD_GPP_POWER_ON_LED,
	BOARD_GPP_HDD_POWER,
	BOARD_GPP_SDIO_POWER,
	BOARD_GPP_SDIO_DETECT,
	BOARD_GPP_SDIO_WP,
	BOARD_GPP_SWITCH_PHY_INT,
	BOARD_GPP_TSU_DIRCTION,
	BOARD_GPP_PEX_RESET,
	BOARD_GPP_CONF,
	BOARD_GPP_PON_P2P_BEN,
	BOARD_GPP_OTHER
} MV_BOARD_GPP_CLASS;

typedef struct _devCsInfo {
	MV_U8 deviceCS;
	MV_U32 params;
	MV_U32 devClass;	/* MV_BOARD_DEV_CLASS */
	MV_U8 devWidth;
} MV_DEV_CS_INFO;

typedef struct _boardSwitchInfo {
	MV_32 switchIrq;
	MV_32 switchPort[BOARD_ETH_SWITCH_PORT_NUM];
	MV_32 cpuPort;
	MV_32 connectedPort[MV_ETH_MAX_PORTS];
	MV_32 smiScanMode;
	MV_32 quadPhyAddr;
	MV_U32 forceLinkMask; /* Bitmask of switch ports to have force link (1Gbps) */
} MV_BOARD_SWITCH_INFO;

typedef struct _boardLedInfo {
	MV_U8 activeLedsNumber;
	MV_U8 ledsPolarity;	/* '0' or '1' to turn on led */
	MV_U8 *gppPinNum;	/* Pointer to GPP values */
} MV_BOARD_LED_INFO;

typedef struct _boardGppInfo {
	MV_BOARD_GPP_CLASS devClass;
	MV_U8 gppPinNum;
} MV_BOARD_GPP_INFO;

typedef struct _boardTwsiInfo {
	MV_BOARD_TWSI_CLASS devClass;
	MV_U8 twsiDevAddr;
	MV_U8 twsiDevAddrType;
} MV_BOARD_TWSI_INFO;

typedef enum _boardMacSpeed {
	BOARD_MAC_SPEED_10M,
	BOARD_MAC_SPEED_100M,
	BOARD_MAC_SPEED_1000M,
	BOARD_MAC_SPEED_AUTO,
} MV_BOARD_MAC_SPEED;

typedef struct _boardMacInfo {
	MV_BOARD_MAC_SPEED boardMacSpeed;
	MV_U8 boardEthSmiAddr;
} MV_BOARD_MAC_INFO;

typedef struct _boardMppInfo {
	MV_U32 mppGroup[MV_BOARD_MAX_MPP];
} MV_BOARD_MPP_INFO;

typedef enum {
	BOARD_EPON_CONFIG,
	BOARD_GPON_CONFIG,
	BOARD_PON_NONE,
	BOARD_PON_AUTO
} MV_BOARD_PON_CONFIG;

typedef struct {
	MV_U8 spiCs;
} MV_BOARD_TDM_INFO;

typedef struct {
	MV_U8 spiId;
} MV_BOARD_TDM_SPI_INFO;

typedef enum {
	BOARD_TDM_SLIC_880 = 0,
	BOARD_TDM_SLIC_792,
	BOARD_TDM_SLIC_3215,
	BOARD_TDM_SLIC_OTHER,
	BOARD_TDM_SLIC_COUNT
} MV_BOARD_TDM_SLIC_TYPE;

typedef struct {
	MV_U32	reg;
	MV_U32	mask;
	MV_U32	val;
} MV_BOARD_SPEC_INIT;

typedef struct _boardInfo {
	char boardName[MV_BOARD_NAME_LEN];
	MV_U8 numBoardMppTypeValue;
	MV_BOARD_MPP_TYPE_INFO *pBoardMppTypeValue;
	MV_U8 numBoardMppConfigValue;
	MV_BOARD_MPP_INFO *pBoardMppConfigValue;
	MV_U32 intsGppMaskLow;
	MV_U32 intsGppMaskMid;
	MV_U32 intsGppMaskHigh;
	MV_U8 numBoardDeviceIf;
	MV_DEV_CS_INFO *pDevCsInfo;
	MV_U8 numBoardTwsiDev;
	MV_BOARD_TWSI_INFO *pBoardTwsiDev;
	MV_U8 numBoardMacInfo;
	MV_BOARD_MAC_INFO *pBoardMacInfo;
	MV_U8 numBoardGppInfo;
	MV_BOARD_GPP_INFO *pBoardGppInfo;
	MV_U8 activeLedsNumber;
	MV_U8 *pLedGppPin;
	MV_U8 ledsPolarity;	/* '0' or '1' to turn on led */

	/* GPP values */
	MV_U32 gppOutEnValLow;
	MV_U32 gppOutEnValMid;
	MV_U32 gppOutEnValHigh;
	MV_U32 gppOutValLow;
	MV_U32 gppOutValMid;
	MV_U32 gppOutValHigh;
	MV_U32 gppPolarityValLow;
	MV_U32 gppPolarityValMid;
	MV_U32 gppPolarityValHigh;

	/* External Switch Configuration */
	MV_BOARD_SWITCH_INFO *pSwitchInfo;
	MV_U32 switchInfoNum;

	/* PON configuration. */
	MV_BOARD_PON_CONFIG ponConfigValue;

	/* TDM configuration */
	/* We hold a different configuration array for each possible slic that
	 ** can be connected to board.
	 ** When modules are scanned, then we select the index of the relevant
	 ** slic's information array.
	 ** For RD and Customers boards we only need to initialize a single
	 ** entry of the arrays below, and set the boardTdmInfoIndex to 0.
	 */
	MV_U8 numBoardTdmInfo[BOARD_TDM_SLIC_COUNT];
	MV_BOARD_TDM_INFO *pBoardTdmInt2CsInfo[BOARD_TDM_SLIC_COUNT];
	MV_8 boardTdmInfoIndex;

	/* Board specific initialization. Performed before initializing the
	** SoC. */
	MV_BOARD_SPEC_INIT	*pBoardSpecInit;

	/* Deep-Idle power up delay */
	MV_U32 deepIdlePwrUpDelay;

	/* NAND init params */
	MV_U32 nandFlashReadParams;
	MV_U32 nandFlashWriteParams;
	MV_U32 nandFlashControl;
	MV_BOARD_TDM_SPI_INFO *pBoardTdmSpiInfo;

	/* Indicates if auto-detection of modules is enabled on this board. */
	/* Set to MV_FALSE for any board that is not a DB. */
	MV_BOOL	moduleAutoDetect;
} MV_BOARD_INFO;

/* For backward compatability with Legacy mode */
#define mvBoardIsSwitchConnected(port)  (mvBoardSwitchConnectedPortGet(port) != -1)
#define mvBoardLinkStatusIrqGet(port)   mvBoardSwitchIrqGet()

MV_VOID mvBoardEnvInit(MV_VOID);
MV_U16 mvBoardModelGet(MV_VOID);
MV_U16 mvBoardRevGet(MV_VOID);
MV_STATUS mvBoardNameGet(char *pNameBuff);
MV_BOARD_SPEC_INIT *mvBoardSpecInitGet(MV_VOID);
MV_U32 mvBoardPwrUpDelayGet(MV_VOID);
MV_BOOL mvBoardIsPortInSgmii(MV_U32 ethPortNum);
MV_BOOL mvBoardIsPortInRgmii(MV_U32 ethPortNum);
MV_U32 mvBoardEthPortsModeGet(void);
MV_32 mvBoardPhyAddrGet(MV_U32 ethPortNum);
MV_STATUS mvBoardPhyAddrSet(MV_U32 ethPortNum, MV_32 phyAddr);

MV_BOOL mvBoardSwitchMltAddModeGet(MV_VOID);
MV_STATUS mvBoardSwitchMltAddModeSet(MV_BOOL enable);
MV_32 mvBoardSwitchIrqGet(MV_VOID);
MV_32 mvBoardSwitchConnectedPortGet(MV_U32 ethPortNum);
/* Map front panel connector number to switch port number */
MV_32 mvBoardSwitchPortGet(MV_U32 switchIdx, MV_U32 boardPortNum);
MV_STATUS mvBoardSwitchInfoUpdate(MV_VOID);
/* Map front panel connector number to switch port number */
MV_32 mvBoardSwitchPortMap(MV_U32 switchIdx, MV_U32 switchPortNum);
MV_32 mvBoardSwitchCpuPortGet(MV_U32 switchIdx);
MV_U32 mvBoardSwitchPortForceLinkGet(MV_U32 switchIdx);
MV_32 mvBoardSmiScanModeGet(MV_U32 switchIdx);
MV_32 mvBoardQuadPhyAddrGet(MV_U32 switchIdx);
MV_32 mvBoardSwitchNumPortsGet(MV_VOID);
MV_BOOL mvBoardIsQsgmiiModuleConnected(MV_VOID);
MV_32 mvBoardGePhySwitchPortGet(MV_VOID);
MV_32 mvBoardRgmiiASwitchPortGet(MV_VOID);
MV_BOOL mvBoardPhySpecInitGet(MV_U32 *regOff, MV_U32 *data);
MV_U32 mvBoardTclkGet(MV_VOID);
MV_U32 mvBoardSysClkGet(MV_VOID);
MV_U32 mvBoardDebugLedNumGet(MV_U32 boardId);
MV_VOID mvBoardDebugLed(MV_U32 hexNum);
MV_32 mvBoarGpioPinNumGet(MV_BOARD_GPP_CLASS class, MV_U32 index);
MV_VOID mvBoardReset(MV_VOID);
MV_32 mvBoardResetGpioPinGet(MV_VOID);
MV_32 mvBoardSDIOGpioPinGet(MV_BOARD_GPP_CLASS type);
MV_32 mvBoardUSBVbusGpioPinGet(MV_32 devId);
MV_32 mvBoardUSBVbusEnGpioPinGet(MV_32 devId);
MV_U32 mvBoardGpioIntMaskGet(MV_U32 gppGrp);
MV_32 mvBoardMppGet(MV_U32 mppGroupNum);
MV_U32 mvBoardEthComplexConfigGet(MV_VOID);
MV_VOID mvBoardEthComplexConfigSet(MV_U32 ethConfig);
MV_U32 mvBoardPonConfigGet(MV_VOID);
MV_VOID mvBoardPonConfigSet(MV_U32 ponConfig);
MV_U32 mvBoardGppConfigGet(MV_VOID);
MV_VOID mvBoardModuleConfigSet(MV_U32 modConfig);
MV_VOID mvBoardModuleConfigGet(MV_U32 *modConfig);
MV_VOID mvBoardMppIdUpdate(MV_VOID);
MV_32 mvBoardTdmSpiModeGet(MV_VOID);
MV_U8 mvBoardTdmDevicesCountGet(MV_VOID);
MV_U8 mvBoardTdmSpiCsGet(MV_U8 devId);
MV_U8 mvBoardTdmSpiIdGet(MV_VOID);
MV_VOID mvBoardMppModuleTypePrint(MV_VOID);
MV_BOOL mvBoardIsGbEPortConnected(MV_U32 ethPortNum);
MV_32 mvBoardGetDevicesNumber(MV_BOARD_DEV_CLASS devClass);
MV_32 mvBoardGetDeviceBaseAddr(MV_32 devNum, MV_BOARD_DEV_CLASS devClass);
MV_32 mvBoardGetDeviceBusWidth(MV_32 devNum, MV_BOARD_DEV_CLASS devClass);
MV_32 mvBoardGetDeviceWidth(MV_32 devNum, MV_BOARD_DEV_CLASS devClass);
MV_32 mvBoardGetDeviceWinSize(MV_32 devNum, MV_BOARD_DEV_CLASS devClass);
MV_U32 boardGetDevCSNum(MV_32 devNum, MV_BOARD_DEV_CLASS devClass);
MV_U8 mvBoardTwsiAddrTypeGet(MV_BOARD_TWSI_CLASS twsiClass, MV_U32 index);
MV_U8 mvBoardTwsiAddrGet(MV_BOARD_TWSI_CLASS twsiClass, MV_U32 index);
MV_32 mvBoardNandWidthGet(MV_VOID);
MV_U32 mvBoardIdGet(MV_VOID);

MV_U8 mvBoardTwsiSatRGet(MV_U8 devNum, MV_U8 regNum);
MV_STATUS mvBoardTwsiSatRSet(MV_U8 devNum, MV_U8 regNum, MV_U8 regVal);
MV_U8 mvBoardFreqGet(MV_VOID);
MV_STATUS mvBoardFreqSet(MV_U8 freqVal);
MV_U8 mvBoardSSCGGet(MV_VOID);
MV_STATUS mvBoardSSCGSet(MV_U8 val);
MV_U8 mvBoardTClkGet(MV_VOID);
MV_STATUS mvBoardTClkSet(MV_U8 val);
MV_U8 mvBoardPexClkGet(MV_U8 pexIf);
MV_STATUS mvBoardPexClkSet(MV_U8 pexIf, MV_U8 val);
MV_U8 mvBoardSaRL2ExistGet(MV_VOID);
MV_U8 mvBoardSaRL2ExistSet(MV_U8 val);
MV_U8 mvBoardPonGet(MV_VOID);
MV_STATUS mvBoardPonSet(MV_U8 val);

MV_STATUS mvBoardEthSataModulesScan(MV_U32 *modules, MV_ETH_COMPLEX_IF_SOURCES *ethSrcCfg);
MV_STATUS mvBoardIsSdioEnabled(MV_VOID);
MV_STATUS mvBoardTdmModulesScan(MV_VOID);
MV_STATUS mvBoardPonModulesScan(MV_U32 *modules);
MV_STATUS mvBoardTwsiMuxChannelSet(MV_U8 muxChNum);
MV_STATUS mvBoardTwsiReadByteThruMux(MV_U8 muxChNum, MV_U8 chNum, MV_TWSI_SLAVE *pTwsiSlave, MV_U8 *data);
MV_BOARD_MAC_SPEED mvBoardMacSpeedGet(MV_U32 ethPortNum);
MV_STATUS mvBoardMacSpeedSet(MV_U32 ethPortNum, MV_BOARD_MAC_SPEED speed);
MV_32 mvBoardIsInternalSwitchConnected(MV_U32 ethPortNum);
MV_BOARD_MPP_TYPE_CLASS mvBoardMppGroupTypeGet(MV_BOARD_MPP_GROUP_CLASS mppGroupClass);
MV_BOOL mvBoardModuleAutoDetectEnabled(void);
#endif /* __INCmvBoardEnvLibh */

Re: Debian on Action Tech SG200
February 23, 2019 03:12PM
veriqster,

You should not have posted the whole source file here :) the link would have been adequate!

No, that source is very old. It was back in the days before Flatten Device Tree (FDT) exists. So even though the info are there, somebody must create a DTS and incorporate all the hardware info into the DTS file.

So search for the DTS, if it exists then you're all good. If it does not, then it'll be some non-trivial works that somebody must do, before you can use the DTS to boot the box successfully.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: Debian on Action Tech SG200
February 23, 2019 03:35PM
Looked around and the most recent kernel that is confirmed to have been running on this processor is 3.
would that have required a DTS file in order to build?
Re: Debian on Action Tech SG200
February 23, 2019 03:37PM
Sorry for posting the source file, no harm intended, I thought to just spare someone who actually knows what they are doing the time to download and uncompress the sources.
Re: Debian on Action Tech SG200
February 23, 2019 03:46PM
veriqster Wrote:
-------------------------------------------------------
> Looked around and the most recent kernel that is
> confirmed to have been running on this processor
> is 3.
> would that have required a DTS file in order to
> build?

Early Linux 3.x versions were not FDT, but later 3.x versions were FDT.

Assuming the exisisting GPL kernel source for this box can be downloaded somewhere. Then yes, you could compile that. If that GPL has later 3.x with FDT, then there should be a DTS somewhere in the GPL (that would be "most" of what you need to run with latest kernel).

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: Debian on Action Tech SG200
February 23, 2019 06:06PM
The only available source for the board has all the sources for all the software on it, including a bunch of verizon crap but it comes with a 2.6 kernel

The latest kernel that I could find online is 3.14.32. It is for a different actiontec board that incorporated the same processor but is definitely different component wise though.

Is there a guide somewhere on how to build a DTS file based on the configuration of the 2.6 kernel? Assuming it's not rocket science I could take a crack at it.
Re: Debian on Action Tech SG200
February 23, 2019 07:41PM
veriqster,

> Is there a guide somewhere on how to build a DTS
> file based on the configuration of the 2.6 kernel?
> Assuming it's not rocket science I could take a
> crack at it.

Yes, in the kernel Documentation source tree.

https://github.com/torvalds/linux/tree/master/Documentation/devicetree

Well, if it is the first time you are doing it, then it will be like rocket science :) We old timers used to call the kernel transition from non-FDT to FDT "The FDT apocalypse (is upon us)" :)).

I wished they had chosen JSON. But there was some historical precedence to it was what it is now. I wrote a lot of DTS, but I still hate it!

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: Debian on Action Tech SG200
February 23, 2019 08:23PM
trying to think out of the box in here and find a dirty but easy way out, ....

From what I read, it is possible to compile a newer kernel with an older config by doing an oldconfig on the new sources which would prompt for configuring the differences.
Assuming my understanding of that is correct, can I unpack the sources published by verizon and compile them, then start updating the kernel sources to newer and newer and see how far i can go without major issues?
If that is the case, I assume I could create a usb drive with the rootfs compiled out of the published sources.

In order to boot that, do you think the uboot commands in the "dell appliance" thread would work for booting off the usb drive?

How long do you think this compiling will take on a core I7-6700HQ laptop processor? hours? days?

I've compiled stuff before, a kernel use to take a couple of hours on some machines, is that still the case with all the changes in code volume and processing power?

Wife will kill me if she come home and sees lines of code running across the screen again, ...... though she likes having her internet through the vpn, the files backing up automatically and all the rest, ....
Re: Debian on Action Tech SG200
February 23, 2019 08:41PM
veriqster ,

>
> From what I read, it is possible to compile a
> newer kernel with an older config by doing an
> oldconfig on the new sources which would prompt
> for configuring the differences.

That's correct if you stay within a boundary of non-FDT and FTD. Meaning the old code that make a board file in older (non-FDT) kernel circa 3.x. To compile a newer kernel 3.x or later that use FDT, then the old code will not apply.

So the bottom line is if you use Verizon patched kernel source, you need to stay with 3.x which is earlier than FDT 3.x.

To go further and compile a FDT kernel, a DTS is needed.


> How long do you think this compiling will take on
> a core I7-6700HQ laptop processor? hours? days?

It will take about 2 hours or less to compile the kernel on a dual-core i7 with 2GB RAM, depending how many modules you have configured in.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: Debian on Action Tech SG200
February 23, 2019 10:32PM
I started compiling it, had to install a bunch of stuff I've never thought I'll ever use again, like the GCC, older version and all kind of libs necessary to compile for a different architecture.
Hoping it finishes before the morning. This thing has been compiling av codecs for the last 45 minutes, one would think it's a NASA image processing server, ....

Thank you!

I'll keep you updated if it compiles or errors out.
Re: Debian on Action Tech SG200
February 23, 2019 10:54PM
Compile finished successfully.
Can you please provide instructions on how to copy the files to usb stick and boot it up?
I basically have a rootfs folder that is supposed to contain a Lenny.
Thank you!

P.S. supposedly Marvell did not bother with this chip too much - there's not much public information on it and sources are limited most probably this Verizon release - I could not find anything else

https://github.com/opennetworklinux/linux-3.8.13/tree/master/Documentation/arm/Marvell
Re: Debian on Action Tech SG200
February 23, 2019 11:09PM
Despite of finishing to compile in a orderly manner the created rootfs does not include a uInitrd, just uImage
Re: Debian on Action Tech SG200
February 23, 2019 11:29PM
so I resorted to basic script kid techniques but those fail as well.
I tried to pass some arguments to the kernel via the setenv but regardless of what I do, if I run the boot command it still shows
Kernel command line: console=ttyS0,115200 rootfstype=ubifs ubi.mtd=ubi ro noswap mtdparts=nand_mtd:2m(uboot),-(ubi) root=ubi0:active mv_net_config=1,(00:26:B8:71:C1:FC,0:1:2:3),mtu=1500 bootmode=pwron

basically trying to get it to boot so it uses the kernel files it already has but the usb disk as rootfs

Time to go to sleep before I go crazy.
Re: Debian on Action Tech SG200
February 24, 2019 03:26AM
veriqster,

> Despite of finishing to compile in a orderly
> manner the created rootfs does not include a
> uInitrd, just uImage

That's OK. It just mean that this kernel source configure all the necessary modules in uImage. That can be taken care of after you have booted the uImage successfully. uInitrd is needed to boot in a multi-partition multi-drive setup.

The boot envs will be sighlty different in this case with only uImage.

I will look at the current envs and show you (tomorrow) what to change in serial console to boot with a /boot/uImage on USB stick.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: Debian on Action Tech SG200
February 24, 2019 03:44PM
Looks like you've done the setup above:

https://forum.doozan.com/read.php?2,78499,78574#msg-78574


Marvell>>    usb start
(Re)start USB...
USB:   Register 10011 NbrPorts 1
USB EHCI 1.00
scanning bus for devices... 3 USB Device(s) found
       scanning bus for storage devices... 1 Storage Device(s) found
Marvell>> ext2load usb 0:1 0x800000 /boot/uImage
Loading file "/boot/uImage" from usb device 0:1 (usbda1)
3843985 bytes read
Marvell>> ext2load usb 0:1 0x02100000 /boot/uInitrd
Loading file "/boot/uInitrd" from usb device 0:1 (usbda1)
7245696 bytes read
Marvell>> setenv set_bootargs_usb 'setenv bootargs console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 $(mtdparts) earlyprintk=serial'
Marvell>> run set_bootargs_usb
Marvell>> bootm 0x800000 0x02100000
## Booting kernel from Legacy Image at 00800000 ...

=======


This time, with your compiled kernel, don't load uInitrd. Remove the load command below from your commands:
ext2load usb 0:1 0x02100000 /boot/uInitrd

and then boot with uImage only

bootm 0x800000

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: Debian on Action Tech SG200
February 24, 2019 05:53PM
tried booting both with root=LABEL=rootfs and with root=/dev/sda1, also tried addint rootfstype=ext2, still gets stuck at trying to find the rootfs

code with all 3 attempts attached

ootROM 1.34
Booting from NAND flash
BootROM: Image checksum verification PASSED

 __   __                      _ _
|  \/  | __ _ _ ____   _____| | |
| |\/| |/ _` | '__\ \ / / _ \ | |
| |  | | (_| | |   \ V /  __/ | |
|_|  |_|\__,_|_|    \_/ \___|_|_|
         _   _     ____              _
        | | | |   | __ )  ___   ___ | |_
        | | | |___|  _ \ / _ \ / _ \| __|
        | |_| |___| |_) | (_) | (_) | |_
         \___/    |____/ \___/ \___/ \__|
 ** LOADER **


U-Boot 2009.08 (May 09 2011 - 18:11:51) Marvell version: 2.1.6_NQ

Board: SG200
SoC:   MV88F6560 Rev 2
CPU:   Marvell Feroceon (Rev 1) - LE
       CPU @ 1200Mhz, L2 @ 480Mhz
       DDR3 @ 400Mhz, TClock @ 200Mhz
PEX 0: Root Complex Interface, Detected Link X1
PEX 1: Detected No Link.
DRAM:  512 MB
       CS 0: base 0x00000000 size 512 MB
       Addresses 10M - 0M are saved for the U-Boot usage.
NAND:  1bit HM ECC, Size: 512 MiB
USB 0: Host Mode
Shutting down unused interfaces:
       PON
       SATA
       Switch
       3xFE-PHY
Modules Detected:
       No PON module.
       GE-PHY on MAC1.
Net:   egiga0, egiga1 [PRIME]
Hit any key to stop autoboot:  0
Marvell>>   setenv mtdparts 'mtdparts=spi0.0:0x7f000@0(uboot),0x1000@0x7f000(u-b                                                                        oot-env)'
Marvell>> setenv set_bootargs_usb 'setenv bootargs console=ttyS0,115200 root=LAB                                                                        EL=rootfs rootdelay=10 $(mtdparts) earlyprintk=serial'
Marvell>> usb start
(Re)start USB...
USB:   Register 10011 NbrPorts 1
USB EHCI 1.00
scanning bus for devices... 3 USB Device(s) found
       scanning bus for storage devices... 1 Storage Device(s) found
Marvell>> ext2load usb 0:1 0x800000 /boot/uImage
Loading file "/boot/uImage" from usb device 0:1 (usbda1)
3190544 bytes read
Marvell>> run set_bootargs_usb
Marvell>> bootm 0x800000
## Booting kernel from Legacy Image at 00800000 ...
   Image Name:   Linux-2.6.32.11AEI-1.0.1
   Created:      2019-02-24   4:16:28 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3190480 Bytes =  3 MB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux.............................................................                                                                        ................................................................................                                                                        .................................................................... done, booti                                                                        ng the kernel.
Linux version 2.6.32.11AEI-1.0.1 (root@n3150) (gcc version 4.3.2 (sdk3.2rc1-ct-n                                                                        g-1.4.1) ) #37 Sat Feb 23 23:16:18 EST 2019
CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=00053977
CPU: VIVT data cache, VIVT instruction cache
Machine: Feroceon-KW2
Using UBoot passing parameters structure
Memory policy: ECC disabled, Data cache writeback
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048
Kernel command line: console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 mtdpart                                                                        s=spi0.0:0x7f000@0(uboot),0x1000@0x7f000(u-boot-env) earlyprintk=serial
PID hash table entries: 2048 (order: 1, 8192 bytes)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Memory: 512MB = 512MB total
Memory: 512896KB available (6132K code, 418K data, 136K init, 0K highmem)
Hierarchical RCU implementation.
NR_IRQS:192
Console: colour dummy device 80x30
Calibrating delay loop... 1196.03 BogoMIPS (lpj=5980160)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
Feroceon L2: Cache support initialised.

CPU Interface
-------------
SDRAM_CS0 ....base 00000000, size 512MB
SDRAM_CS1 ....no such
SDRAM_CS2 ....no such
SDRAM_CS3 ....no such
DEVICE_CS0 ....no such
DEVICE_CS1 ....no such
DEVICE_CS2 ....no such
DEVICE_CS3 ....no such
PEX0_MEM ....base f3000000, size  16MB
PEX0_IO ....base f2000000, size   1MB
PEX1_MEM ....base f4000000, size  16MB
PEX1_IO ....base f2100000, size   1MB
INTER_REGS ....base f1000000, size   1MB
NAND_NOR_CS ....base f8000000, size   2MB
SPI_CS0 ....base f0000000, size  16MB
SPI_CS1 ....no such
SPI_CS2 ....no such
SPI_CS3 ....no such
SPI_CS4 ....no such
SPI_CS5 ....no such
SPI_CS6 ....no such
SPI_CS7 ....no such
SPI_B_CS0 ....no such
BOOT_ROM_CS ....no such
DEV_BOOTCS ....no such
CRYPT1_ENG ....base f2200000, size   2MB
CRYPT2_ENG ....no such
PNC_BM ....base f5000000, size   1MB
ETH_CTRL ....base f5100000, size   1MB
PON_CTRL ....base f5200000, size   1MB
NFC_CTRL ....no such

  Marvell Development Board (LSP Version KW2_LSP_3.0.0_NQ)-- SG200  Soc: 88F6560                                                                         A0 LE

 Detected Tclk 200000000 and SysClk 400000000
Marvell USB EHCI Host controller #0: df83c680
PEX0 interface detected Link X1
PEX1 interface detected no Link.
pci 0000:00:01.0: PME# supported from D0 D1 D3hot
pci 0000:00:01.0: PME# disabled
PCI: bus0: Fast back to back transfers disabled
PCI: bus1: Fast back to back transfers enabled
bio: create slab <bio-0> at 0
vgaarb: loaded
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
cfg80211: Calling CRDA to update world regulatory domain
Switching to clocksource kw_clocksource
NET: Registered protocol family 2
IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
TCP established hash table entries: 16384 (order: 5, 131072 bytes)
TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
TCP: Hash tables configured (established 16384 bind 16384)
TCP reno registered
NET: Registered protocol family 1
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
RTC has been updated!!!
rtc mv_rtc: rtc core: registered kw-rtc as rtc0
RTC registered
NFP (fib) init 16384 entries, 65536 bytes
NFP (nat) init 16384 entries, 65536 bytes
NFP (pnc) init 472 entries, 13216 bytes
cesadev_init(c000da50)
mvCesaInit: channels=1, session=640, queue=64
NTFS driver 2.1.29 [Flags: R/W].
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
SGI XFS with security attributes, large block/inode numbers, no debug enabled
msgmni has been set to 1002
alg: No test for cipher_null (cipher_null-generic)
alg: No test for ecb(cipher_null) (ecb-cipher_null)
alg: No test for digest_null (digest_null-generic)
alg: No test for compress_null (compress_null-generic)
alg: No test for stdrng (krng)
io scheduler noop registered
io scheduler anticipatory registered (default)
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0xf1012000 (irq = 33) is a 16550A
console [ttyS0] enabled
serial8250.0: ttyS1 at MMIO 0xf1012100 (irq = 34) is a 16550A

Warning Sata is Powered Off
Using Hamming 1-bit ECC for NAND device
NAND device: Manufacturer ID: 0x20, Chip ID: 0xdc (ST Micro NAND 512MiB 3,3V 8-b                                                                        it)
Scanning device for bad blocks
Using static partition definition
Creating 3 MTD partitions on "nand_mtd":
0x000000000000-0x000000200000 : "u-boot"
0x000000200000-0x000000600000 : "uImage"
0x000000600000-0x000020000000 : "root"
0 - Base 0x00000000 , Size = 0x20000000.
8 - Base 0xf3000000 , Size = 0x01000000.
9 - Base 0xf2000000 , Size = 0x00100000.
10 - Base 0xf4000000 , Size = 0x01000000.
11 - Base 0xf2100000 , Size = 0x00100000.
12 - Base 0xf1000000 , Size = 0x00100000.
13 - Base 0xf8000000 , Size = 0x00200000.
14 - Base 0xf0000000 , Size = 0x01000000.
25 - Base 0xf2200000 , Size = 0x00200000.
27 - Base 0xf5000000 , Size = 0x00100000.
28 - Base 0xf5100000 , Size = 0x00100000.
29 - Base 0xf5200000 , Size = 0x00100000.
mvPncVirtBase = 0xe0c00000
  o 2 Giga ports supported
  o Giga PON port is #2: - 8 TCONTs supported
  o SKB recycle supported (Enabled)
  o NETA acceleration mode 4
  o BM supported: short buffer size is 256 bytes
  o PnC supported
  o HWF supported
  o PMT supported
  o RX Queue support: 8 Queues * 128 Descriptors
  o TX Queue support: 8 Queues * 512 Descriptors
  o GSO supported
  o GRO supported
  o Receive checksum offload supported
  o Transmit checksum offload supported
  o Network Fast Processing (Routing) supported
  o Network Fast Processing (NAT) supported
  o Driver ERROR statistics enabled
  o Driver INFO statistics enabled
  o Proc tool API enabled
  o Switch support enabled
     o IGMP special processing support

  o Loading Switch QuarterDeck driver
qdLoadDriver failed

Warning: Switch load failed
  o Loading network interface(s)

  o Warning: GbE port 0 is not connected to PHY/RGMII/Switch, skip initializatio                                                                        n


  o Port 1 is connected to Linux netdevice
        giga p=1: mtu=1500, mac=df823e7a
link down
    o eth0, ifindex = 2, GbE port = 1

Intel(R) PRO/1000 Network Driver - version 7.3.21-k5-NAPI
Copyright (c) 1999-2006 Intel Corporation.
e1000e: Intel(R) PRO/1000 Network Driver - 1.0.2-k2
e1000e: Copyright (c) 1999-2008 Intel Corporation.
e100: Intel(R) PRO/100 Network Driver, 3.5.24-k2-NAPI
e100: Copyright(c) 1999-2006 Intel Corporation
cfg80211: Calling CRDA for country: US
Registered led device: ath9k-phy0::radio
Registered led device: ath9k-phy0::assoc
Registered led device: ath9k-phy0::tx
Registered led device: ath9k-phy0::rx
phy0: Atheros AR9287 MAC/BB Rev:2 AR5133 RF Rev:ff: mem=0xe08c0000, irq=25
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci_marvell ehci_marvell.70059: Marvell Orion EHCI
ehci_marvell ehci_marvell.70059: new USB bus registered, assigned bus number 1
ehci_marvell ehci_marvell.70059: irq 23, io base 0xf1050100
ehci_marvell ehci_marvell.70059: USB 2.0 started, EHCI 1.00
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
uhci_hcd: USB Universal Host Controller Interface driver
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usbcore: registered new interface driver ums-datafab
usbcore: registered new interface driver ums-freecom
usbcore: registered new interface driver ums-isd200
usbcore: registered new interface driver ums-jumpshot
usbcore: registered new interface driver ums-sddr09
usbcore: registered new interface driver ums-sddr55
usbcore: registered new interface driver ums-usbat
usbcore: registered new interface driver usbserial
USB Serial support registered for generic
usbcore: registered new interface driver usbserial_generic
usbserial: USB Serial Driver core
USB Serial support registered for cp210x
usbcore: registered new interface driver cp210x
cp210x: v0.09:Silicon Labs CP210x RS232 serial adaptor driver
USB Serial support registered for FTDI USB Serial Device
usbcore: registered new interface driver ftdi_sio
ftdi_sio: v1.5.0:USB FTDI Serial Converters Driver
mice: PS/2 mouse device common for all mice
input: gpio-keys as /class/input/input0
input: gpio-keys as /class/input/input1
input: gpio-keys as /class/input/input2
i2c /dev entries driver
Feroceon Watchdog Timer: Initial timeout 21 sec
Registered led device: status
Registered led device: zwave
Registered led device: power
Registered led device: wifi
Registered led device: statusR
Registered led device: zwaveR
Registered led device: powerR
Registered led device: wifiR
Registered led device: usb1
Registered led device: usb2
Registered led device: usb3
Registered led device: usb4
Netfilter messages via NETLINK v0.30.
nf_conntrack version 0.5.0 (8016 buckets, 32064 max)
ip_tables: (C) 2000-2006 Netfilter Core Team
TCP cubic registered
NET: Registered protocol family 10
NET: Registered protocol family 17
802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com>
All bugs added by David S. Miller <davem@redhat.com>
rtc mv_rtc: setting system clock to 2000-01-01 00:00:00 UTC (946684800)
Waiting 10sec before mounting root device...
usb 1-1: new high speed USB device using ehci_marvell and address 2
usb 1-1: configuration #1 chosen from 1 choice
hub 1-1:1.0: USB hub found
hub 1-1:1.0: 4 ports detected
usb 1-1.2: new high speed USB device using ehci_marvell and address 3
usb 1-1.2: configuration #1 chosen from 1 choice
scsi0 : SCSI emulation for USB Mass Storage devices
scsi 0:0:0:0: Direct-Access     SanDisk  Ultra            1.00 PQ: 0 ANSI: 6
sd 0:0:0:0: Attached scsi generic sg0 type 0
sd 0:0:0:0: [sda] 60063744 512-byte logical blocks: (30.7 GB/28.6 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Assuming drive cache: write through
 sda: sda1
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Attached SCSI removable disk
Root-NFS: No NFS server available, giving up.
VFS: Unable to mount root fs via NFS, trying floppy.
VFS: Cannot open root device "LABEL=rootfs" or unknown-block(2,0)
Please append a correct "root=" boot option; here are the available partitions:
1f00            2048 mtdblock0 (driver?)
1f01            4096 mtdblock1 (driver?)
1f02          518144 mtdblock2 (driver?)
0800        30031872 sda driver: sd
  0801        30030848 sda1
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
Backtrace:
[<c002eea8>] (dump_backtrace+0x0/0x114) from [<c04d4f88>] (dump_stack+0x18/0x1c)
 r7:00008000 r6:df8ab000 r5:c0026808 r4:c0675ef0
[<c04d4f70>] (dump_stack+0x0/0x1c) from [<c04d4fd8>] (panic+0x4c/0x11c)
[<c04d4f8c>] (panic+0x0/0x11c) from [<c0008ea8>] (mount_block_root+0x1e0/0x220)
 r3:00000000 r2:20000013 r1:df823f60 r0:c059e22f
[<c0008cc8>] (mount_block_root+0x0/0x220) from [<c0008fac>] (mount_root+0xc4/0xf                                                                        c)
 r8:00000000 r7:00000000 r6:00000000 r5:00000000 r4:00200000
[<c0008ee8>] (mount_root+0x0/0xfc) from [<c000911c>] (prepare_namespace+0x138/0x                                                                        190)
 r5:c0026808 r4:c0026818
[<c0008fe4>] (prepare_namespace+0x0/0x190) from [<c00084b8>] (kernel_init+0xe0/0                                                                        x114)
 r5:00000000 r4:c0671100
[<c00083d8>] (kernel_init+0x0/0x114) from [<c008fc50>] (do_exit+0x0/0x5cc)
 r5:00000000 r4:00000000

BootROM 1.34
Booting from NAND flash
BootROM: Image checksum verification PASSED
l
 __   __                      _ _
|  \/  | __ _ _ ____   _____| | |
| |\/| |/ _` | '__\ \ / / _ \ | |
| |  | | (_| | |   \ V /  __/ | |
|_|  |_|\__,_|_|    \_/ \___|_|_|
         _   _     ____              _
        | | | |   | __ )  ___   ___ | |_
        | | | |___|  _ \ / _ \ / _ \| __|
        | |_| |___| |_) | (_) | (_) | |_
         \___/    |____/ \___/ \___/ \__|
 ** LOADER **


U-Boot 2009.08 (May 09 2011 - 18:11:51) Marvell version: 2.1.6_NQ

Board: SG200
SoC:   MV88F6560 Rev 2
CPU:   Marvell Feroceon (Rev 1) - LE
       CPU @ 1200Mhz, L2 @ 480Mhz
       DDR3 @ 400Mhz, TClock @ 200Mhz
PEX 0: Root Complex Interface, Detected Link X1
PEX 1: Detected No Link.
DRAM:  512 MB
       CS 0: base 0x00000000 size 512 MB
       Addresses 10M - 0M are saved for the U-Boot usage.
NAND:  1bit HM ECC, Size: 512 MiB
USB 0: Host Mode
Shutting down unused interfaces:
       PON
       SATA
       Switch
       3xFE-PHY
Modules Detected:
       No PON module.
       GE-PHY on MAC1.
Net:   egiga0, egiga1 [PRIME]
Hit any key to stop autoboot:  0
Marvell>>  printenv
bootcmd=aei_boot
baudrate=115200
loads_echo=0
ipaddr=10.4.50.165
serverip=10.4.50.5
rootpath=/mnt/ARM_FS/
netmask=255.255.255.0
mtdids=nand0=nand
sgd_magic=0xc00010
mtdparts=mtdparts=nand:2m(uboot),-(ubi)
nandparts=mtdparts=nand_mtd:2m(uboot),-(ubi)
sgd_type=AEIServiceGateway
sgd_model=SG200
sgd_fw=1.0.7
console=console=ttyS0,115200
CASset=min
MALLOC_len=3
bootargs_root=root=/dev/nfs rw
bootargs_end=:::DB88FXX81:eth0:none
image_name=uImage
standalone=fsload 0x2000000 $(image_name);setenv bootargs $(console) root=/dev/m                                                                        tdblock0 rw ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvPhoneConfig); bootm 0x20                                                                        00000;
ethmtu=1500
eth1mtu=1500
usb0Mode=host
nandEcc=1bit
netretry=no
rcvrip=169.254.100.100
loadaddr=0x02000000
autoload=no
eeeEnable=no
sgd_revision=3B
sgd_serial=CSGA1471002700
zhomeid=E8:C6:DC:29
ethaddr=00:26:B8:71:C1:FC
eth1addr=00:26:B8:71:C1:FC
wlanaddr=00:26:B8:71:C1:FD
ubi_root=active
stdin=serial
stdout=serial
stderr=serial
enaMonExt=no
enaCpuStream=no
enaWrAllo=no
pexMode=RC
disL2Cache=no
setL2CacheWT=yes
disL2Prefetch=yes
enaICPref=yes
enaDCPref=yes
sata_dma_mode=yes
netbsd_en=no
vxworks_en=no
bootdelay=0
disaMvPnp=no
enaAutoRecovery=yes
ethprime=egiga1
pcieTune=no
ethact=egiga1

Environment size: 1204/4092 bytes
Marvell>> setenv set_bootargs_usb 'setenv bootargs console=ttyS0,115200 root=LAB                                                                        EL=rootfs rootdelay=10 $(mtdparts) earlyprintk=serial'
Marvell>> setenv set_bootargs_usb 'setenv bootargs console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 $(mtdparts) earlyprintk=serial                    rootfstype=ext2'
Marvell>> setenv mtdparts 'mtdparts=spi0.0:0x7f000@0(uboot),0x1000@0x7f000(u-boot-env)'
Marvell>> usb start
(Re)start USB...
USB:   Register 10011 NbrPorts 1
USB EHCI 1.00
scanning bus for devices... 3 USB Device(s) found
       scanning bus for storage devices... 1 Storage Device(s) found
Marvell>> ext2load usb 0:1 0x800000 /boot/uImage
Loading file "/boot/uImage" from usb device 0:1 (usbda1)
3190544 bytes read
Marvell>> run set_bootargs_usb
Marvell>> bootm 0x800000
## Booting kernel from Legacy Image at 00800000 ...
   Image Name:   Linux-2.6.32.11AEI-1.0.1
   Created:      2019-02-24   4:16:28 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3190480 Bytes =  3 MB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux..................................................................................................................                   ............................................................................................... done, booting the kernel.
Linux version 2.6.32.11AEI-1.0.1 (root@n3150) (gcc version 4.3.2 (sdk3.2rc1-ct-ng-1.4.1) ) #37 Sat Feb 23 23:16:18 EST 2019
CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=00053977
CPU: VIVT data cache, VIVT instruction cache
Machine: Feroceon-KW2
Using UBoot passing parameters structure
Memory policy: ECC disabled, Data cache writeback
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048
Kernel command line: console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 mtdparts=spi0.0:0x7f000@0(uboot),0x1000@0x7f000(u-boot-env)                    earlyprintk=serial rootfstype=ext2
PID hash table entries: 2048 (order: 1, 8192 bytes)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Memory: 512MB = 512MB total
Memory: 512896KB available (6132K code, 418K data, 136K init, 0K highmem)
Hierarchical RCU implementation.
NR_IRQS:192
Console: colour dummy device 80x30
Calibrating delay loop... 2.88 BogoMIPS (lpj=14400)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
Feroceon L2: Cache support initialised.

CPU Interface
-------------
SDRAM_CS0 ....base 00000000, size 512MB
SDRAM_CS1 ....no such
SDRAM_CS2 ....no such
SDRAM_CS3 ....no such
DEVICE_CS0 ....no such
DEVICE_CS1 ....no such
DEVICE_CS2 ....no such
DEVICE_CS3 ....no such
PEX0_MEM ....base f3000000, size  16MB
PEX0_IO ....base f2000000, size   1MB
PEX1_MEM ....base f4000000, size  16MB
PEX1_IO ....base f2100000, size   1MB
INTER_REGS ....base f1000000, size   1MB
NAND_NOR_CS ....base f8000000, size   2MB
SPI_CS0 ....base f0000000, size  16MB
SPI_CS1 ....no such
SPI_CS2 ....no such
SPI_CS3 ....no such
SPI_CS4 ....no such
SPI_CS5 ....no such
SPI_CS6 ....no such
SPI_CS7 ....no such
SPI_B_CS0 ....no such
BOOT_ROM_CS ....no such
DEV_BOOTCS ....no such
CRYPT1_ENG ....base f2200000, size   2MB
CRYPT2_ENG ....no such
PNC_BM ....base f5000000, size   1MB
ETH_CTRL ....base f5100000, size   1MB
PON_CTRL ....base f5200000, size   1MB
NFC_CTRL ....no such

  Marvell Development Board (LSP Version KW2_LSP_3.0.0_NQ)-- SG200  Soc: 88F6560 A0 LE

 Detected Tclk 200000000 and SysClk 400000000
Marvell USB EHCI Host controller #0: df83c680
PEX0 interface detected Link X1
PEX1 interface detected no Link.
pci 0000:00:01.0: PME# supported from D0 D1 D3hot
pci 0000:00:01.0: PME# disabled
PCI: bus0: Fast back to back transfers disabled
PCI: bus1: Fast back to back transfers enabled
bio: create slab <bio-0> at 0
vgaarb: loaded
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
cfg80211: Calling CRDA to update world regulatory domain
Switching to clocksource kw_clocksource
NET: Registered protocol family 2
IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
TCP established hash table entries: 16384 (order: 5, 131072 bytes)
TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
TCP: Hash tables configured (established 16384 bind 16384)
TCP reno registered
NET: Registered protocol family 1
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
RTC has been updated!!!
rtc mv_rtc: rtc core: registered kw-rtc as rtc0
RTC registered
NFP (fib) init 16384 entries, 65536 bytes
NFP (nat) init 16384 entries, 65536 bytes
NFP (pnc) init 472 entries, 13216 bytes
cesadev_init(c000da50)
mvCesaInit: channels=1, session=640, queue=64
NTFS driver 2.1.29 [Flags: R/W].
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
SGI XFS with security attributes, large block/inode numbers, no debug enabled
msgmni has been set to 1002
alg: No test for cipher_null (cipher_null-generic)
alg: No test for ecb(cipher_null) (ecb-cipher_null)
alg: No test for digest_null (digest_null-generic)
alg: No test for compress_null (compress_null-generic)
alg: No test for stdrng (krng)
io scheduler noop registered
io scheduler anticipatory registered (default)
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0xf1012000 (irq = 33) is a 16550A
console [ttyS0] enabled
serial8250.0: ttyS1 at MMIO 0xf1012100 (irq = 34) is a 16550A

Warning Sata is Powered Off
Using Hamming 1-bit ECC for NAND device
NAND device: Manufacturer ID: 0x20, Chip ID: 0xdc (ST Micro NAND 512MiB 3,3V 8-bit)
Scanning device for bad blocks
Using static partition definition
Creating 3 MTD partitions on "nand_mtd":
0x000000000000-0x000000200000 : "u-boot"
0x000000200000-0x000000600000 : "uImage"
0x000000600000-0x000020000000 : "root"
0 - Base 0x00000000 , Size = 0x20000000.
8 - Base 0xf3000000 , Size = 0x01000000.
9 - Base 0xf2000000 , Size = 0x00100000.
10 - Base 0xf4000000 , Size = 0x01000000.
11 - Base 0xf2100000 , Size = 0x00100000.
12 - Base 0xf1000000 , Size = 0x00100000.
13 - Base 0xf8000000 , Size = 0x00200000.
14 - Base 0xf0000000 , Size = 0x01000000.
25 - Base 0xf2200000 , Size = 0x00200000.
27 - Base 0xf5000000 , Size = 0x00100000.
28 - Base 0xf5100000 , Size = 0x00100000.
29 - Base 0xf5200000 , Size = 0x00100000.
mvPncVirtBase = 0xe0c00000
  o 2 Giga ports supported
  o Giga PON port is #2: - 8 TCONTs supported
  o SKB recycle supported (Enabled)
  o NETA acceleration mode 4
  o BM supported: short buffer size is 256 bytes
  o PnC supported
  o HWF supported
  o PMT supported
  o RX Queue support: 8 Queues * 128 Descriptors
  o TX Queue support: 8 Queues * 512 Descriptors
  o GSO supported
  o GRO supported
  o Receive checksum offload supported
  o Transmit checksum offload supported
  o Network Fast Processing (Routing) supported
  o Network Fast Processing (NAT) supported
  o Driver ERROR statistics enabled
  o Driver INFO statistics enabled
  o Proc tool API enabled
  o Switch support enabled
     o IGMP special processing support

  o Loading Switch QuarterDeck driver
qdLoadDriver failed

Warning: Switch load failed
  o Loading network interface(s)

  o Warning: GbE port 0 is not connected to PHY/RGMII/Switch, skip initialization


  o Port 1 is connected to Linux netdevice
        giga p=1: mtu=1500, mac=df823e7a
link down
    o eth0, ifindex = 2, GbE port = 1

Intel(R) PRO/1000 Network Driver - version 7.3.21-k5-NAPI
Copyright (c) 1999-2006 Intel Corporation.
e1000e: Intel(R) PRO/1000 Network Driver - 1.0.2-k2
e1000e: Copyright (c) 1999-2008 Intel Corporation.
e100: Intel(R) PRO/100 Network Driver, 3.5.24-k2-NAPI
e100: Copyright(c) 1999-2006 Intel Corporation
cfg80211: Calling CRDA for country: US
Registered led device: ath9k-phy0::radio
Registered led device: ath9k-phy0::assoc
Registered led device: ath9k-phy0::tx
Registered led device: ath9k-phy0::rx
phy0: Atheros AR9287 MAC/BB Rev:2 AR5133 RF Rev:beef: mem=0xe08c0000, irq=25
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci_marvell ehci_marvell.70059: Marvell Orion EHCI
ehci_marvell ehci_marvell.70059: new USB bus registered, assigned bus number 1
ehci_marvell ehci_marvell.70059: irq 23, io base 0xf1050100
ehci_marvell ehci_marvell.70059: USB 2.0 started, EHCI 1.00
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
uhci_hcd: USB Universal Host Controller Interface driver
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usbcore: registered new interface driver ums-datafab
usbcore: registered new interface driver ums-freecom
usbcore: registered new interface driver ums-isd200
usbcore: registered new interface driver ums-jumpshot
usbcore: registered new interface driver ums-sddr09
usbcore: registered new interface driver ums-sddr55
usbcore: registered new interface driver ums-usbat
usbcore: registered new interface driver usbserial
USB Serial support registered for generic
usbcore: registered new interface driver usbserial_generic
usbserial: USB Serial Driver core
USB Serial support registered for cp210x
usbcore: registered new interface driver cp210x
cp210x: v0.09:Silicon Labs CP210x RS232 serial adaptor driver
USB Serial support registered for FTDI USB Serial Device
usbcore: registered new interface driver ftdi_sio
ftdi_sio: v1.5.0:USB FTDI Serial Converters Driver
mice: PS/2 mouse device common for all mice
input: gpio-keys as /class/input/input0
input: gpio-keys as /class/input/input1
input: gpio-keys as /class/input/input2
i2c /dev entries driver
Feroceon Watchdog Timer: Initial timeout 21 sec
Registered led device: status
Registered led device: zwave
Registered led device: power
Registered led device: wifi
Registered led device: statusR
Registered led device: zwaveR
Registered led device: powerR
Registered led device: wifiR
Registered led device: usb1
Registered led device: usb2
Registered led device: usb3
Registered led device: usb4
Netfilter messages via NETLINK v0.30.
nf_conntrack version 0.5.0 (8016 buckets, 32064 max)
ip_tables: (C) 2000-2006 Netfilter Core Team
TCP cubic registered
NET: Registered protocol family 10
NET: Registered protocol family 17
802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com>
All bugs added by David S. Miller <davem@redhat.com>
rtc mv_rtc: setting system clock to 2000-01-01 00:00:00 UTC (946684800)
Waiting 10sec before mounting root device...
usb 1-1: new high speed USB device using ehci_marvell and address 2
ehci_marvell ehci_marvell.70059: port 1 reset error -110
hub 1-0:1.0: hub_port_status failed (err = -32)
usb 1-1: configuration #1 chosen from 1 choice
hub 1-1:1.0: USB hub found
hub 1-1:1.0: 4 ports detected
usb 1-1.2: new high speed USB device using ehci_marvell and address 3
usb 1-1.2: configuration #1 chosen from 1 choice
scsi0 : SCSI emulation for USB Mass Storage devices
scsi 0:0:0:0: Direct-Access     SanDisk  Ultra            1.00 PQ: 0 ANSI: 6
sd 0:0:0:0: Attached scsi generic sg0 type 0
sd 0:0:0:0: [sda] 60063744 512-byte logical blocks: (30.7 GB/28.6 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Assuming drive cache: write through
 sda: sda1
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Attached SCSI removable disk
Root-NFS: No NFS server available, giving up.
VFS: Unable to mount root fs via NFS, trying floppy.
VFS: Cannot open root device "LABEL=rootfs" or unknown-block(2,0)
Please append a correct "root=" boot option; here are the available partitions:
1f00            2048 mtdblock0 (driver?)
1f01            4096 mtdblock1 (driver?)
1f02          518144 mtdblock2 (driver?)
0800        30031872 sda driver: sd
  0801        30030848 sda1
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
Backtrace:
[<c002eea8>] (dump_backtrace+0x0/0x114) from [<c04d4f88>] (dump_stack+0x18/0x1c)
 r7:00008000 r6:dfbc1000 r5:c0026808 r4:c0675ef0
[<c04d4f70>] (dump_stack+0x0/0x1c) from [<c04d4fd8>] (panic+0x4c/0x11c)
[<c04d4f8c>] (panic+0x0/0x11c) from [<c0008ea8>] (mount_block_root+0x1e0/0x220)
 r3:00000000 r2:20000013 r1:df823f60 r0:c059e22f
[<c0008cc8>] (mount_block_root+0x0/0x220) from [<c0008fac>] (mount_root+0xc4/0xfc)
 r8:00000000 r7:00000000 r6:00000000 r5:00000000 r4:00200000
[<c0008ee8>] (mount_root+0x0/0xfc) from [<c000911c>] (prepare_namespace+0x138/0x190)
 r5:c0026808 r4:c0026818
[<c0008fe4>] (prepare_namespace+0x0/0x190) from [<c00084b8>] (kernel_init+0xe0/0x114)
 r5:00000000 r4:c0671100
[<c00083d8>] (kernel_init+0x0/0x114) from [<c008fc50>] (do_exit+0x0/0x5cc)
 r5:00000000 r4:00000000

BootROM 1.34
Booting from NAND flash
BootROM: Image checksum verification PASSED

 __   __                      _ _
|  \/  | __ _ _ ____   _____| | |
| |\/| |/ _` | '__\ \ / / _ \ | |
| |  | | (_| | |   \ V /  __/ | |
|_|  |_|\__,_|_|    \_/ \___|_|_|
         _   _     ____              _
        | | | |   | __ )  ___   ___ | |_
        | | | |___|  _ \ / _ \ / _ \| __|
        | |_| |___| |_) | (_) | (_) | |_
         \___/    |____/ \___/ \___/ \__|
 ** LOADER **


U-Boot 2009.08 (May 09 2011 - 18:11:51) Marvell version: 2.1.6_NQ

Board: SG200
SoC:   MV88F6560 Rev 2
CPU:   Marvell Feroceon (Rev 1) - LE
       CPU @ 1200Mhz, L2 @ 480Mhz
       DDR3 @ 400Mhz, TClock @ 200Mhz
PEX 0: Root Complex Interface, Detected Link X1
PEX 1: Detected No Link.
DRAM:  512 MB
       CS 0: base 0x00000000 size 512 MB
       Addresses 10M - 0M are saved for the U-Boot usage.
NAND:  1bit HM ECC, Size: 512 MiB
USB 0: Host Mode
Shutting down unused interfaces:
       PON
       SATA
       Switch
       3xFE-PHY
Modules Detected:
       No PON module.
       GE-PHY on MAC1.
Net:   egiga0, egiga1 [PRIME]
Hit any key to stop autoboot:  0
Marvell>>   setenv set_bootargs_usb 'setenv bootargs console=ttyS0,115200 root=/dev/sda1    rootdelay=10 $(mtdparts) earlyprintk=seri                   Marvell>> printenv'
bootcmd=aei_boot
baudrate=115200
loads_echo=0
ipaddr=10.4.50.165
serverip=10.4.50.5
rootpath=/mnt/ARM_FS/
netmask=255.255.255.0
mtdids=nand0=nand
sgd_magic=0xc00010
mtdparts=mtdparts=nand:2m(uboot),-(ubi)
nandparts=mtdparts=nand_mtd:2m(uboot),-(ubi)
sgd_type=AEIServiceGateway
sgd_model=SG200
sgd_fw=1.0.7
console=console=ttyS0,115200
CASset=min
MALLOC_len=3
bootargs_root=root=/dev/nfs rw
bootargs_end=:::DB88FXX81:eth0:none
image_name=uImage
standalone=fsload 0x2000000 $(image_name);setenv bootargs $(console) root=/dev/mtdblock0 rw ip=$(ipaddr):$(serverip)$(bootargs_end) $                   (mvPhoneConfig); bootm 0x2000000;
ethmtu=1500
eth1mtu=1500
usb0Mode=host
nandEcc=1bit
netretry=no
rcvrip=169.254.100.100
loadaddr=0x02000000
autoload=no
eeeEnable=no
sgd_revision=3B
sgd_serial=CSGA1471002700
zhomeid=E8:C6:DC:29
ethaddr=00:26:B8:71:C1:FC
eth1addr=00:26:B8:71:C1:FC
wlanaddr=00:26:B8:71:C1:FD
ubi_root=active
stdin=serial
stdout=serial
stderr=serial
enaMonExt=no
enaCpuStream=no
enaWrAllo=no
pexMode=RC
disL2Cache=no
setL2CacheWT=yes
disL2Prefetch=yes
enaICPref=yes
enaDCPref=yes
sata_dma_mode=yes
netbsd_en=no
vxworks_en=no
bootdelay=0
disaMvPnp=no
enaAutoRecovery=yes
ethprime=egiga1
pcieTune=no
ethact=egiga1                                                                                                                       /                   dev/sda1args_usb=setenv bootargs console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 $(mtdparts) earlyprintk=serial rootfstype=ext2

Environment size: 1552/4092 bytes
Marvell>> setenv set_bootargs_usb 'setenv bootargs console=ttyS0,115200 root=/dev/sda1 $(mtdparts) earlyprintk=serial rootfstype=ext2'                  Marvell>> printenv
bootcmd=aei_boot
baudrate=115200
loads_echo=0
ipaddr=10.4.50.165
serverip=10.4.50.5
rootpath=/mnt/ARM_FS/
netmask=255.255.255.0
mtdids=nand0=nand
sgd_magic=0xc00010
mtdparts=mtdparts=nand:2m(uboot),-(ubi)
nandparts=mtdparts=nand_mtd:2m(uboot),-(ubi)
sgd_type=AEIServiceGateway
sgd_model=SG200
sgd_fw=1.0.7
console=console=ttyS0,115200
CASset=min
MALLOC_len=3
bootargs_root=root=/dev/nfs rw
bootargs_end=:::DB88FXX81:eth0:none
image_name=uImage
standalone=fsload 0x2000000 $(image_name);setenv bootargs $(console) root=/dev/mtdblock0 rw ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvPhoneConfig)    ; bootm 0x2000000;
ethmtu=1500
eth1mtu=1500
usb0Mode=host
nandEcc=1bit
netretry=no
rcvrip=169.254.100.100
loadaddr=0x02000000
autoload=no
eeeEnable=no
sgd_revision=3B
sgd_serial=CSGA1471002700
zhomeid=E8:C6:DC:29
ethaddr=00:26:B8:71:C1:FC
eth1addr=00:26:B8:71:C1:FC
wlanaddr=00:26:B8:71:C1:FD
ubi_root=active
stdin=serial
stdout=serial
stderr=serial
enaMonExt=no
enaCpuStream=no
enaWrAllo=no
pexMode=RC
disL2Cache=no
setL2CacheWT=yes
disL2Prefetch=yes
enaICPref=yes
enaDCPref=yes
sata_dma_mode=yes
netbsd_en=no
vxworks_en=no
bootdelay=0
disaMvPnp=no
enaAutoRecovery=yes
ethprime=egiga1
pcieTune=no
ethact=egiga1
set_bootargs_usb=setenv bootargs console=ttyS0,115200 root=/dev/sda1 $(mtdparts) earlyprintk=serial rootfstype=ext2

Environment size: 1320/4092 bytes
Marvell>> setenv mtdparts 'mtdparts=spi0.0:0x7f000@0(uboot),0x1000@0x7f000(u-boot-env)'
Marvell>> usb start
(Re)start USB...
USB:   Register 10011 NbrPorts 1
USB EHCI 1.00
scanning bus for devices... 3 USB Device(s) found
       scanning bus for storage devices... 1 Storage Device(s) found
Marvell>> ext2load usb 0:1 0x800000 /boot/uImage
Loading file "/boot/uImage" from usb device 0:1 (usbda1)
3190544 bytes read
Marvell>> run set_bootargs_usb
Marvell>> bootm 0x800000
## Booting kernel from Legacy Image at 00800000 ...
   Image Name:   Linux-2.6.32.11AEI-1.0.1
   Created:      2019-02-24   4:16:28 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3190480 Bytes =  3 MB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux.................................................................................................................................    ................................................................................ done, booting the kernel.
Linux version 2.6.32.11AEI-1.0.1 (root@n3150) (gcc version 4.3.2 (sdk3.2rc1-ct-ng-1.4.1) ) #37 Sat Feb 23 23:16:18 EST 2019
CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=00053977
CPU: VIVT data cache, VIVT instruction cache
Machine: Feroceon-KW2
Using UBoot passing parameters structure
Memory policy: ECC disabled, Data cache writeback
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048
Kernel command line: console=ttyS0,115200 root=/dev/sda1 mtdparts=spi0.0:0x7f000@0(uboot),0x1000@0x7f000(u-boot-env) earlyprintk=serial rootfstype=e    xt2
PID hash table entries: 2048 (order: 1, 8192 bytes)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Memory: 512MB = 512MB total
Memory: 512896KB available (6132K code, 418K data, 136K init, 0K highmem)
Hierarchical RCU implementation.
NR_IRQS:192
Console: colour dummy device 80x30
Calibrating delay loop... 1196.03 BogoMIPS (lpj=5980160)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
Feroceon L2: Cache support initialised.

CPU Interface
-------------
SDRAM_CS0 ....base 00000000, size 512MB
SDRAM_CS1 ....no such
SDRAM_CS2 ....no such
SDRAM_CS3 ....no such
DEVICE_CS0 ....no such
DEVICE_CS1 ....no such
DEVICE_CS2 ....no such
DEVICE_CS3 ....no such
PEX0_MEM ....base f3000000, size  16MB
PEX0_IO ....base f2000000, size   1MB
PEX1_MEM ....base f4000000, size  16MB
PEX1_IO ....base f2100000, size   1MB
INTER_REGS ....base f1000000, size   1MB
NAND_NOR_CS ....base f8000000, size   2MB
SPI_CS0 ....base f0000000, size  16MB
SPI_CS1 ....no such
SPI_CS2 ....no such
SPI_CS3 ....no such
SPI_CS4 ....no such
SPI_CS5 ....no such
SPI_CS6 ....no such
SPI_CS7 ....no such
SPI_B_CS0 ....no such
BOOT_ROM_CS ....no such
DEV_BOOTCS ....no such
CRYPT1_ENG ....base f2200000, size   2MB
CRYPT2_ENG ....no such
PNC_BM ....base f5000000, size   1MB
ETH_CTRL ....base f5100000, size   1MB
PON_CTRL ....base f5200000, size   1MB
NFC_CTRL ....no such

  Marvell Development Board (LSP Version KW2_LSP_3.0.0_NQ)-- SG200  Soc: 88F6560 A0 LE

 Detected Tclk 200000000 and SysClk 400000000
Marvell USB EHCI Host controller #0: df83c680
PEX0 interface detected Link X1
PEX1 interface detected no Link.
pci 0000:00:01.0: PME# supported from D0 D1 D3hot
pci 0000:00:01.0: PME# disabled
PCI: bus0: Fast back to back transfers disabled
PCI: bus1: Fast back to back transfers enabled
bio: create slab <bio-0> at 0
vgaarb: loaded
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
cfg80211: Calling CRDA to update world regulatory domain
Switching to clocksource kw_clocksource
NET: Registered protocol family 2
IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
TCP established hash table entries: 16384 (order: 5, 131072 bytes)
TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
TCP: Hash tables configured (established 16384 bind 16384)
TCP reno registered
NET: Registered protocol family 1
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
RTC has been updated!!!
rtc mv_rtc: rtc core: registered kw-rtc as rtc0
RTC registered
NFP (fib) init 16384 entries, 65536 bytes
NFP (nat) init 16384 entries, 65536 bytes
NFP (pnc) init 472 entries, 13216 bytes
cesadev_init(c000da50)
mvCesaInit: channels=1, session=640, queue=64
NTFS driver 2.1.29 [Flags: R/W].
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
SGI XFS with security attributes, large block/inode numbers, no debug enabled
msgmni has been set to 1002
alg: No test for cipher_null (cipher_null-generic)
alg: No test for ecb(cipher_null) (ecb-cipher_null)
alg: No test for digest_null (digest_null-generic)
alg: No test for compress_null (compress_null-generic)
alg: No test for stdrng (krng)
io scheduler noop registered
io scheduler anticipatory registered (default)
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0xf1012000 (irq = 33) is a 16550A
console [ttyS0] enabled
serial8250.0: ttyS1 at MMIO 0xf1012100 (irq = 34) is a 16550A

Warning Sata is Powered Off
Using Hamming 1-bit ECC for NAND device
NAND device: Manufacturer ID: 0x20, Chip ID: 0xdc (ST Micro NAND 512MiB 3,3V 8-bit)
Scanning device for bad blocks
Using static partition definition
Creating 3 MTD partitions on "nand_mtd":
0x000000000000-0x000000200000 : "u-boot"
0x000000200000-0x000000600000 : "uImage"
0x000000600000-0x000020000000 : "root"
0 - Base 0x00000000 , Size = 0x20000000.
8 - Base 0xf3000000 , Size = 0x01000000.
9 - Base 0xf2000000 , Size = 0x00100000.
10 - Base 0xf4000000 , Size = 0x01000000.
11 - Base 0xf2100000 , Size = 0x00100000.
12 - Base 0xf1000000 , Size = 0x00100000.
13 - Base 0xf8000000 , Size = 0x00200000.
14 - Base 0xf0000000 , Size = 0x01000000.
25 - Base 0xf2200000 , Size = 0x00200000.
27 - Base 0xf5000000 , Size = 0x00100000.
28 - Base 0xf5100000 , Size = 0x00100000.
29 - Base 0xf5200000 , Size = 0x00100000.
mvPncVirtBase = 0xe0c00000
  o 2 Giga ports supported
  o Giga PON port is #2: - 8 TCONTs supported
  o SKB recycle supported (Enabled)
  o NETA acceleration mode 4
  o BM supported: short buffer size is 256 bytes
  o PnC supported
  o HWF supported
  o PMT supported
  o RX Queue support: 8 Queues * 128 Descriptors
  o TX Queue support: 8 Queues * 512 Descriptors
  o GSO supported
  o GRO supported
  o Receive checksum offload supported
  o Transmit checksum offload supported
  o Network Fast Processing (Routing) supported
  o Network Fast Processing (NAT) supported
  o Driver ERROR statistics enabled
  o Driver INFO statistics enabled
  o Proc tool API enabled
  o Switch support enabled
     o IGMP special processing support

  o Loading Switch QuarterDeck driver
qdLoadDriver failed

Warning: Switch load failed
  o Loading network interface(s)

  o Warning: GbE port 0 is not connected to PHY/RGMII/Switch, skip initialization


  o Port 1 is connected to Linux netdevice
        giga p=1: mtu=1500, mac=df823e7a
link down
    o eth0, ifindex = 2, GbE port = 1

Intel(R) PRO/1000 Network Driver - version 7.3.21-k5-NAPI
Copyright (c) 1999-2006 Intel Corporation.
e1000e: Intel(R) PRO/1000 Network Driver - 1.0.2-k2
e1000e: Copyright (c) 1999-2008 Intel Corporation.
e100: Intel(R) PRO/100 Network Driver, 3.5.24-k2-NAPI
e100: Copyright(c) 1999-2006 Intel Corporation
cfg80211: Calling CRDA for country: US
Registered led device: ath9k-phy0::radio
Registered led device: ath9k-phy0::assoc
Registered led device: ath9k-phy0::tx
Registered led device: ath9k-phy0::rx
phy0: Atheros AR9287 MAC/BB Rev:2 AR5133 RF Rev:ff: mem=0xe08c0000, irq=25
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci_marvell ehci_marvell.70059: Marvell Orion EHCI
ehci_marvell ehci_marvell.70059: new USB bus registered, assigned bus number 1
ehci_marvell ehci_marvell.70059: irq 23, io base 0xf1050100
ehci_marvell ehci_marvell.70059: USB 2.0 started, EHCI 1.00
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
uhci_hcd: USB Universal Host Controller Interface driver
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usbcore: registered new interface driver ums-datafab
usbcore: registered new interface driver ums-freecom
usbcore: registered new interface driver ums-isd200
usbcore: registered new interface driver ums-jumpshot
usbcore: registered new interface driver ums-sddr09
usbcore: registered new interface driver ums-sddr55
usbcore: registered new interface driver ums-usbat
usbcore: registered new interface driver usbserial
USB Serial support registered for generic
usbcore: registered new interface driver usbserial_generic
usbserial: USB Serial Driver core
USB Serial support registered for cp210x
usbcore: registered new interface driver cp210x
cp210x: v0.09:Silicon Labs CP210x RS232 serial adaptor driver
USB Serial support registered for FTDI USB Serial Device
usbcore: registered new interface driver ftdi_sio
ftdi_sio: v1.5.0:USB FTDI Serial Converters Driver
mice: PS/2 mouse device common for all mice
input: gpio-keys as /class/input/input0
input: gpio-keys as /class/input/input1
input: gpio-keys as /class/input/input2
i2c /dev entries driver
Feroceon Watchdog Timer: Initial timeout 21 sec
Registered led device: status
Registered led device: zwave
Registered led device: power
Registered led device: wifi
Registered led device: statusR
Registered led device: zwaveR
Registered led device: powerR
Registered led device: wifiR
Registered led device: usb1
Registered led device: usb2
Registered led device: usb3
Registered led device: usb4
Netfilter messages via NETLINK v0.30.
nf_conntrack version 0.5.0 (8016 buckets, 32064 max)
ip_tables: (C) 2000-2006 Netfilter Core Team
TCP cubic registered
NET: Registered protocol family 10
NET: Registered protocol family 17
802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com>
All bugs added by David S. Miller <davem@redhat.com>
rtc mv_rtc: setting system clock to 2000-01-01 00:00:00 UTC (946684800)
Root-NFS: No NFS server available, giving up.
VFS: Unable to mount root fs via NFS, trying floppy.
VFS: Cannot open root device "sda1" or unknown-block(2,0)
Please append a correct "root=" boot option; here are the available partitions:
1f00            2048 mtdblock0 (driver?)
1f01            4096 mtdblock1 (driver?)
1f02          518144 mtdblock2 (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
Backtrace:
[<c002eea8>] (dump_backtrace+0x0/0x114) from [<c04d4f88>] (dump_stack+0x18/0x1c)
 r7:00008000 r6:df97c000 r5:c0026808 r4:c0675ef0
[<c04d4f70>] (dump_stack+0x0/0x1c) from [<c04d4fd8>] (panic+0x4c/0x11c)
[<c04d4f8c>] (panic+0x0/0x11c) from [<c0008ea8>] (mount_block_root+0x1e0/0x220)
 r3:00000000 r2:20000013 r1:df823f60 r0:c059e22f
[<c0008cc8>] (mount_block_root+0x0/0x220) from [<c0008fac>] (mount_root+0xc4/0xfc)
 r8:00000000 r7:00000000 r6:00000000 r5:00000000 r4:00200000
[<c0008ee8>] (mount_root+0x0/0xfc) from [<c000911c>] (prepare_namespace+0x138/0x190)
 r5:c0026808 r4:c0026818
[<c0008fe4>] (prepare_namespace+0x0/0x190) from [<c00084b8>] (kernel_init+0xe0/0x114)
 r5:00000000 r4:c0671100
[<c00083d8>] (kernel_init+0x0/0x114) from [<c008fc50>] (do_exit+0x0/0x5cc)
 r5:00000000 r4:00000000


Re: Debian on Action Tech SG200
February 24, 2019 06:02PM
Right! Without uInitrd, the Label is not going to work.

Change your bootargs to have

root=/dev/sda1

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: Debian on Action Tech SG200
February 24, 2019 06:04PM
This kernel is too old! I am afraid you are wasting time trying to rebuild it!

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: Debian on Action Tech SG200
February 24, 2019 06:06PM
if I set the environment to this
setenv set_bootargs_usb 'setenv bootargs console=ttyS0,115200 root=/dev/sda1 rootdelay=20 $(mtdparts) earlyprintk=serial'
I am able to get this far
BootROM 1.34
Booting from NAND flash
BootROM: Image checksum verification PASSED

 __   __                      _ _
|  \/  | __ _ _ ____   _____| | |
| |\/| |/ _` | '__\ \ / / _ \ | |
| |  | | (_| | |   \ V /  __/ | |
|_|  |_|\__,_|_|    \_/ \___|_|_|
         _   _     ____              _
        | | | |   | __ )  ___   ___ | |_
        | | | |___|  _ \ / _ \ / _ \| __|
        | |_| |___| |_) | (_) | (_) | |_
         \___/    |____/ \___/ \___/ \__|
 ** LOADER **


U-Boot 2009.08 (May 09 2011 - 18:11:51) Marvell version: 2.1.6_NQ

Board: SG200
SoC:   MV88F6560 Rev 2
CPU:   Marvell Feroceon (Rev 1) - LE
       CPU @ 1200Mhz, L2 @ 480Mhz
       DDR3 @ 400Mhz, TClock @ 200Mhz
PEX 0: Root Complex Interface, Detected Link X1
PEX 1: Detected No Link.
DRAM:  512 MB
       CS 0: base 0x00000000 size 512 MB
       Addresses 10M - 0M are saved for the U-Boot usage.
NAND:  1bit HM ECC, Size: 512 MiB
USB 0: Host Mode
Shutting down unused interfaces:
       PON
       SATA
       Switch
       3xFE-PHY
Modules Detected:
       No PON module.
       GE-PHY on MAC1.
Net:   egiga0, egiga1 [PRIME]
Hit any key to stop autoboot:  0
Marvell>>  setenv set_bootargs_usb 'setenv bootargs console=ttyS0,115200 root=/dev/sda1 rootdelay=20 $(mtdparts) earlyprintk=serial'
Marvell>> usb start
(Re)start USB...
USB:   Register 10011 NbrPorts 1
USB EHCI 1.00
scanning bus for devices... 3 USB Device(s) found
       scanning bus for storage devices... 1 Storage Device(s) found
Marvell>> ext2load usb 0:1 0x800000 /boot/uImage
Loading file "/boot/uImage" from usb device 0:1 (usbda1)
3190544 bytes read
Marvell>> run set_bootargs_usb
Marvell>> bootm 0x800000
## Booting kernel from Legacy Image at 00800000 ...
   Image Name:   Linux-2.6.32.11AEI-1.0.1
   Created:      2019-02-24   4:16:28 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3190480 Bytes =  3 MB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux................................................................................................................................................................................................................. done, booting the kernel.
Linux version 2.6.32.11AEI-1.0.1 (root@n3150) (gcc version 4.3.2 (sdk3.2rc1-ct-ng-1.4.1) ) #37 Sat Feb 23 23:16:18 EST 2019
CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=00053977
CPU: VIVT data cache, VIVT instruction cache
Machine: Feroceon-KW2
Using UBoot passing parameters structure
Memory policy: ECC disabled, Data cache writeback
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048
Kernel command line: console=ttyS0,115200 root=/dev/sda1 rootdelay=20 mtdparts=nand:2m(uboot),-(ubi) earlyprintk=serial
PID hash table entries: 2048 (order: 1, 8192 bytes)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Memory: 512MB = 512MB total
Memory: 512896KB available (6132K code, 418K data, 136K init, 0K highmem)
Hierarchical RCU implementation.
NR_IRQS:192
Console: colour dummy device 80x30
Calibrating delay loop... 1196.03 BogoMIPS (lpj=5980160)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
Feroceon L2: Cache support initialised.

CPU Interface
-------------
SDRAM_CS0 ....base 00000000, size 512MB
SDRAM_CS1 ....no such
SDRAM_CS2 ....no such
SDRAM_CS3 ....no such
DEVICE_CS0 ....no such
DEVICE_CS1 ....no such
DEVICE_CS2 ....no such
DEVICE_CS3 ....no such
PEX0_MEM ....base f3000000, size  16MB
PEX0_IO ....base f2000000, size   1MB
PEX1_MEM ....base f4000000, size  16MB
PEX1_IO ....base f2100000, size   1MB
INTER_REGS ....base f1000000, size   1MB
NAND_NOR_CS ....base f8000000, size   2MB
SPI_CS0 ....base f0000000, size  16MB
SPI_CS1 ....no such
SPI_CS2 ....no such
SPI_CS3 ....no such
SPI_CS4 ....no such
SPI_CS5 ....no such
SPI_CS6 ....no such
SPI_CS7 ....no such
SPI_B_CS0 ....no such
BOOT_ROM_CS ....no such
DEV_BOOTCS ....no such
CRYPT1_ENG ....base f2200000, size   2MB
CRYPT2_ENG ....no such
PNC_BM ....base f5000000, size   1MB
ETH_CTRL ....base f5100000, size   1MB
PON_CTRL ....base f5200000, size   1MB
NFC_CTRL ....no such

  Marvell Development Board (LSP Version KW2_LSP_3.0.0_NQ)-- SG200  Soc: 88F6560 A0 LE

 Detected Tclk 200000000 and SysClk 400000000
Marvell USB EHCI Host controller #0: df83c680
PEX0 interface detected Link X1
PEX1 interface detected no Link.
pci 0000:00:01.0: PME# supported from D0 D1 D3hot
pci 0000:00:01.0: PME# disabled
PCI: bus0: Fast back to back transfers disabled
PCI: bus1: Fast back to back transfers enabled
bio: create slab <bio-0> at 0
vgaarb: loaded
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
cfg80211: Calling CRDA to update world regulatory domain
Switching to clocksource kw_clocksource
NET: Registered protocol family 2
IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
TCP established hash table entries: 16384 (order: 5, 131072 bytes)
TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
TCP: Hash tables configured (established 16384 bind 16384)
TCP reno registered
NET: Registered protocol family 1
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
RTC has been updated!!!
rtc mv_rtc: rtc core: registered kw-rtc as rtc0
RTC registered
NFP (fib) init 16384 entries, 65536 bytes
NFP (nat) init 16384 entries, 65536 bytes
NFP (pnc) init 472 entries, 13216 bytes
cesadev_init(c000da50)
mvCesaInit: channels=1, session=640, queue=64
NTFS driver 2.1.29 [Flags: R/W].
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
SGI XFS with security attributes, large block/inode numbers, no debug enabled
msgmni has been set to 1002
alg: No test for cipher_null (cipher_null-generic)
alg: No test for ecb(cipher_null) (ecb-cipher_null)
alg: No test for digest_null (digest_null-generic)
alg: No test for compress_null (compress_null-generic)
alg: No test for stdrng (krng)
io scheduler noop registered
io scheduler anticipatory registered (default)
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0xf1012000 (irq = 33) is a 16550A
console [ttyS0] enabled
serial8250.0: ttyS1 at MMIO 0xf1012100 (irq = 34) is a 16550A

Warning Sata is Powered Off
Using Hamming 1-bit ECC for NAND device
NAND device: Manufacturer ID: 0x20, Chip ID: 0xdc (ST Micro NAND 512MiB 3,3V 8-bit)
Scanning device for bad blocks
Using static partition definition
Creating 3 MTD partitions on "nand_mtd":
0x000000000000-0x000000200000 : "u-boot"
0x000000200000-0x000000600000 : "uImage"
0x000000600000-0x000020000000 : "root"
0 - Base 0x00000000 , Size = 0x20000000.
8 - Base 0xf3000000 , Size = 0x01000000.
9 - Base 0xf2000000 , Size = 0x00100000.
10 - Base 0xf4000000 , Size = 0x01000000.
11 - Base 0xf2100000 , Size = 0x00100000.
12 - Base 0xf1000000 , Size = 0x00100000.
13 - Base 0xf8000000 , Size = 0x00200000.
14 - Base 0xf0000000 , Size = 0x01000000.
25 - Base 0xf2200000 , Size = 0x00200000.
27 - Base 0xf5000000 , Size = 0x00100000.
28 - Base 0xf5100000 , Size = 0x00100000.
29 - Base 0xf5200000 , Size = 0x00100000.
mvPncVirtBase = 0xe0c00000
  o 2 Giga ports supported
  o Giga PON port is #2: - 8 TCONTs supported
  o SKB recycle supported (Enabled)
  o NETA acceleration mode 4
  o BM supported: short buffer size is 256 bytes
  o PnC supported
  o HWF supported
  o PMT supported
  o RX Queue support: 8 Queues * 128 Descriptors
  o TX Queue support: 8 Queues * 512 Descriptors
  o GSO supported
  o GRO supported
  o Receive checksum offload supported
  o Transmit checksum offload supported
  o Network Fast Processing (Routing) supported
  o Network Fast Processing (NAT) supported
  o Driver ERROR statistics enabled
  o Driver INFO statistics enabled
  o Proc tool API enabled
  o Switch support enabled
     o IGMP special processing support

  o Loading Switch QuarterDeck driver
qdLoadDriver failed

Warning: Switch load failed
  o Loading network interface(s)

  o Warning: GbE port 0 is not connected to PHY/RGMII/Switch, skip initialization


  o Port 1 is connected to Linux netdevice
        giga p=1: mtu=1500, mac=df823e7a
link down
    o eth0, ifindex = 2, GbE port = 1

Intel(R) PRO/1000 Network Driver - version 7.3.21-k5-NAPI
Copyright (c) 1999-2006 Intel Corporation.
e1000e: Intel(R) PRO/1000 Network Driver - 1.0.2-k2
e1000e: Copyright (c) 1999-2008 Intel Corporation.
e100: Intel(R) PRO/100 Network Driver, 3.5.24-k2-NAPI
e100: Copyright(c) 1999-2006 Intel Corporation
cfg80211: Calling CRDA for country: US
Registered led device: ath9k-phy0::radio
Registered led device: ath9k-phy0::assoc
Registered led device: ath9k-phy0::tx
Registered led device: ath9k-phy0::rx
phy0: Atheros AR9287 MAC/BB Rev:2 AR5133 RF Rev:ff: mem=0xe08c0000, irq=25
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci_marvell ehci_marvell.70059: Marvell Orion EHCI
ehci_marvell ehci_marvell.70059: new USB bus registered, assigned bus number 1
ehci_marvell ehci_marvell.70059: irq 23, io base 0xf1050100
ehci_marvell ehci_marvell.70059: USB 2.0 started, EHCI 1.00
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
uhci_hcd: USB Universal Host Controller Interface driver
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usbcore: registered new interface driver ums-datafab
usbcore: registered new interface driver ums-freecom
usbcore: registered new interface driver ums-isd200
usbcore: registered new interface driver ums-jumpshot
usbcore: registered new interface driver ums-sddr09
usbcore: registered new interface driver ums-sddr55
usbcore: registered new interface driver ums-usbat
usbcore: registered new interface driver usbserial
USB Serial support registered for generic
usbcore: registered new interface driver usbserial_generic
usbserial: USB Serial Driver core
USB Serial support registered for cp210x
usbcore: registered new interface driver cp210x
cp210x: v0.09:Silicon Labs CP210x RS232 serial adaptor driver
USB Serial support registered for FTDI USB Serial Device
usbcore: registered new interface driver ftdi_sio
ftdi_sio: v1.5.0:USB FTDI Serial Converters Driver
mice: PS/2 mouse device common for all mice
input: gpio-keys as /class/input/input0
input: gpio-keys as /class/input/input1
input: gpio-keys as /class/input/input2
i2c /dev entries driver
Feroceon Watchdog Timer: Initial timeout 21 sec
Registered led device: status
Registered led device: zwave
Registered led device: power
Registered led device: wifi
Registered led device: statusR
Registered led device: zwaveR
Registered led device: powerR
Registered led device: wifiR
Registered led device: usb1
Registered led device: usb2
Registered led device: usb3
Registered led device: usb4
Netfilter messages via NETLINK v0.30.
nf_conntrack version 0.5.0 (8016 buckets, 32064 max)
ip_tables: (C) 2000-2006 Netfilter Core Team
TCP cubic registered
NET: Registered protocol family 10
NET: Registered protocol family 17
802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com>
All bugs added by David S. Miller <davem@redhat.com>
rtc mv_rtc: setting system clock to 2000-01-01 00:00:00 UTC (946684800)
Waiting 20sec before mounting root device...
usb 1-1: new high speed USB device using ehci_marvell and address 2
usb 1-1: configuration #1 chosen from 1 choice
hub 1-1:1.0: USB hub found
hub 1-1:1.0: 4 ports detected
usb 1-1.2: new high speed USB device using ehci_marvell and address 3
usb 1-1.2: configuration #1 chosen from 1 choice
scsi0 : SCSI emulation for USB Mass Storage devices
scsi 0:0:0:0: Direct-Access     SanDisk  Ultra            1.00 PQ: 0 ANSI: 6
sd 0:0:0:0: Attached scsi generic sg0 type 0
sd 0:0:0:0: [sda] 60063744 512-byte logical blocks: (30.7 GB/28.6 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Assuming drive cache: write through
 sda: sda1
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Attached SCSI removable disk
EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended
VFS: Mounted root (ext2 filesystem) on device 8:1.
Freeing init memory: 136K
INIT: version 2.86 booting
INIT: No inittab file found

Enter runlevel:
but upon entering 1 or 2 for runlevel it tells me
INIT: no more processes left in this runlevel


Definitely some progress but I'm not sure how significant this is
Re: Debian on Action Tech SG200
February 24, 2019 06:11PM
bodhi Wrote:
-------------------------------------------------------
> This kernel is too old! I am afraid you are
> wasting time trying to rebuild it!

As I said. This is not going to give you a latest system. Basically you are running Debian Squeeze at this point.

What you should really be doing is to create a DTS and run it with Debian-4.12.1-kirkwood-tld-1-rootfs-bodhi.tar.bz2 in my release thread:

https://forum.doozan.com/read.php?2,12096

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Author:

Subject:


Spam prevention:
Please, enter the code that you see below in the input field. This is for blocking bots that try to post this form automatically. If the code is hard to read, then just try to guess it right. If you enter the wrong code, a new image is created and you get another chance to enter it right.
Message: