Re: UART Boot DNS-320 B1 with broken NAND November 22, 2018 05:32PM |
Admin Registered: 13 years ago Posts: 19,010 |
Re: UART Boot DNS-320 B1 with broken NAND November 23, 2018 03:40PM |
Registered: 6 years ago Posts: 77 |
Re: UART Boot DNS-320 B1 with broken NAND November 23, 2018 04:49PM |
Admin Registered: 13 years ago Posts: 19,010 |
Re: UART Boot DNS-320 B1 with broken NAND November 24, 2018 05:13PM |
Registered: 6 years ago Posts: 77 |
Re: UART Boot DNS-320 B1 with broken NAND November 24, 2018 05:38PM |
Admin Registered: 13 years ago Posts: 19,010 |
Re: UART Boot DNS-320 B1 with broken NAND November 25, 2018 03:02AM |
Registered: 6 years ago Posts: 77 |
Re: UART Boot DNS-320 B1 with broken NAND November 25, 2018 03:29AM |
Admin Registered: 13 years ago Posts: 19,010 |
Quote
Backup and Restore NAND mtds - Pogoplug V4 original MTD partitions
https://forum.doozan.com/read.php?3,16789,16789#msg-16789
Quote
B. How to restore NAND in Serial Console:
==================================
Here is what to do if you've decided that you need to restore NAND mtd0 in serial console to go back to stock OS. Assuming only mtd0 was messed up (that's how it usually happens). If the entire NAND was messed up, then use this procedure to restore mtd0 and then calculate the offset and size of the rest of the other mtds. If you're not sure, pls post questions in this thread.
Caveats: This is something I would not recommend doing, unless you can no loger boot into Debian or Arch. Because If you can use kwboot to boot the box, then you can boot Debian or Arch quite easily, without doing this procedure. See the Debian kernel/rootfs thread for how to create the Debian 4.4 rootfs to use with this box.
The procedure below has a lot more risk of errors occurred than flashing NAND mtd0 from Linux command line (section A).
Prerequisites
r1. This procedure requires a working serial console connected to the Pogo V4. And knowledge how to use kwboot to boot the latest version of u-boot.
r2. Download the latest u-boot, and kwboot binary as described in the u-boot thread to the serial console server (where you run kwboot). Create a single partition, type Ext3, USB thumbdrive. Copy your backup mtd0 to this USB drive root folder. Plug this USB drive into the Pogo V4 top USB port.
Restore NAND mtd0
1. Connect serial console and use kwboot to boot the Pogo V4. See davygravy instruction for more details. I'm assume that you already know how to use kwboot.
Run kwboot and interrupt serial console when you see the countdown:
./kwboot -t -B 115200 /dev/ttyUSB0 -b uboot.2016.05-tld-1.pogo_v4.mtd0.kwb -p
Expected output
Sending boot message. Please reboot the target...-
Sending boot image...
0 % [......................................................................]
<snip>
95 % [......................................................................]
97 % [......................................................................]
99 % [....................................]
[Type Ctrl-\ + c to quit]
U-Boot 2016.05-tld-1 (Jun 12 2016 - 13:41:47 -0700)
Pogoplug V4
SoC: Kirkwood 88F6192_A1
DRAM: 128 MiB
WARNING: Caches not enabled
NAND: 128 MiB
MMC: kwsdio: 0
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Net: egiga0
Hit any key to stop autoboot: 0
2. Verify the mtdparts is correct for Pogo V4
mtdparts
Expected output
device nand0 <orion_nand>, # parts = 5
#: name size offset mask_flags
0: u-boot 0x00200000 0x00000000 0
1: uImage 0x00300000 0x00200000 0
2: uImage2 0x00300000 0x00500000 0
3: failsafe 0x00800000 0x00800000 0
4: root 0x07000000 0x01000000 0
active partition: nand0,2 - (uImage2) 0x00300000 @ 0x00500000
defaults:
mtdids : none
mtdparts: none
3. Start the USB drive
usb start
Expected output
starting USB...
USB0: USB EHCI 1.00
scanning bus 0 for devices... 2 USB Device(s) found
scanning usb for storage devices... 1 Storage Device(s) found
4. Load the backup mtd0. Here the stock mtd0 backup file name was mtd0.pogo_v4
ext2load usb 0:1 0x800000 /mtd0.pogo_v4
Expected output
2097152 bytes read in 1318 ms (1.5 MiB/s)
5. Erase mtd0
nand erase 0x0 0x200000
Expected output
NAND erase: device 0 offset 0x0, size 0x200000
Erasing at 0x1e0000 -- 100% complete.
OK
6. Flash mtd0.pogo_v4 to NAND mtd0
nand write 0x800000 0x0 0x200000
Expected output
NAND write: device 0 offset 0x0, size 0x200000
2097152 bytes written: OK
7. Reset the box to boot with stock u-boot
reset
Expected output:
The stock u-boot banner and other info. And then it will proceeed to boot stock OS.
DONE.
Re: UART Boot DNS-320 B1 with broken NAND November 25, 2018 12:36PM |
Registered: 6 years ago Posts: 77 |
Re: UART Boot DNS-320 B1 with broken NAND November 25, 2018 01:27PM |
Admin Registered: 13 years ago Posts: 19,010 |
help
Re: UART Boot DNS-320 B1 with broken NAND November 25, 2018 02:38PM |
Registered: 6 years ago Posts: 77 |
Marvell>> mtdparts mtdids not defined, no default present
Marvell>> help ? - alias for 'help' SatR - sample at reset sub-system, relevent for DB only base - print or set address offset boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' 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 - Burn an image on the Boot Nand Flash. chpart - change active partition cmp - memory compare cmpm - Compare Memory cp - memory copy cpumap - Display CPU memory mapping settings. crc32 - checksum calculation date - get/set/reset date & time dclk - Display the MV device CLKs. dhcp - invoke DHCP client to obtain IP/boot params diskboot- boot from IDE device echo - echo args to console eeprom - EEPROM sub-system erase - erase FLASH memory 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 - Find value in the memory. flinfo - print FLASH memory information fsinfo - print information about filesystems fsload - load binary file from a filesystem image g - start application at cached address 'addr'(default addr 0x40000) go - start application at address 'addr' help - print online help icrc32 - checksum calculation ide - IDE sub-system iloop - infinite loop on address range imd - i2c memory display iminfo - print header information for application image imm[.b, .s, .w, .l] - i2c memory modify (auto-incrementing) imw - memory write (fill) inm - memory modify (constant address) iprobe - probe to discover valid I2C chip addresses ir - reading and changing MV internal register values. loop - infinite loop on address range ls - list files in a directory (default /) map - Diasplay address decode windows md - memory display me - PCI master enable mm - memory modify (auto-incrementing) mmcinit - init mmc card mp - map PCI BAR mtdparts- define flash/nand partitions mtest - simple RAM test mw - memory write (fill) nand - NAND sub-system nboot - boot from NAND device nbubt - Burn a boot loader image on the Boot Nand Flash. nm - memory modify (constant address) pci - list and access PCI Configuration Space phyRead - Read PCI-E Phy register pciePhyWrite - Write PCI-E Phy register phyRead - Read Phy register phyWrite - Write Phy register ping - send ICMP ECHO_REQUEST to network host printenv- print environment variables protect - enable or disable FLASH write protection rarpboot- boot image via network using RARP/TFTP protocol rcvr - Satrt recovery process (Distress Beacon with TFTP server) reset - Perform RESET of the CPU resetenv - Return all environment variable to default. run - run commands in an environment variable saveenv - save environment variables to persistent storage se - PCI Slave enable setenv - set environment variables sflash - read, write or erase the external SPI Flash. sg - scanning the PHYs status sp - Scan PCI bus. switchRegRead - Read switch register switchRegWrite - Write switch register Temp - read chip Tj temp tftpboot- boot image via network using TFTP protocol usb - USB sub-system usbboot - boot from USB device version - print monitor version Marvell>>
Re: UART Boot DNS-320 B1 with broken NAND November 25, 2018 03:41PM |
Admin Registered: 13 years ago Posts: 19,010 |
Re: UART Boot DNS-320 B1 with broken NAND November 26, 2018 06:46AM |
Registered: 6 years ago Posts: 77 |
Marvell>> printenv bootargs=root=/dev/ram console=ttyS0,115200 :::DB88FXX81:egiga0:none bootcmd=nand read.e 0xa00000 0x100000 0x300000;nand read.e 0xf00000 0x600000 0x300000;bootm 0xa00000 0xf00000 baudrate=115200 loads_echo=0 ipaddr=2.66.66.201 serverip=2.66.66.32 rootpath=/srv/ubuntu netmask=255.255.255.0 run_diag=yes stdin=serial stdout=serial stderr=serial console=console=ttyS0,115200 mtdparts=nand_mtd:0xc0000@0(uboot)ro,0x7f00000@0x100000(root) mainlineLinux=no enaMonExt=no enaCpuStream=no enaWrAllo=no pexMode=RC disL2Cache=no setL2CacheWT=yes disL2Prefetch=yes enaICPref=yes enaDCPref=yes sata_dma_mode=yes MALLOC_len=1 ethprime=egiga0 netbsd_en=no vxworks_en=no 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; bootdelay=1 disaMvPnp=no ethaddr=00:50:43:00:02:02 ethmtu=1500 mvPhoneConfig=mv_phone_config=dev[0]:fxs,dev[1]:fxo mvNetConfig=mv_net_config=(00:11:88:0f:62:81,0:1:2:3),mtu=1500 usb0Mode=host yuk_ethaddr=00:00:00:EE:51:81 nandEcc=1bit netretry=no rcvrip=169.254.100.100 loadaddr=0x02000000 autoload=no image_multi=yes enaAutoRecovery=yes pcieTune=no ethact=egiga0 Environment size: 1272/131068 bytes Marvell>>
Re: UART Boot DNS-320 B1 with broken NAND November 26, 2018 05:44PM |
Admin Registered: 13 years ago Posts: 19,010 |
bootcmd=nand read.e 0xa00000 0x100000 0x300000;nand read.e 0xf00000 0x600000 0x300000;bootm 0xa00000 0xf00000 console=console=ttyS0,115200 mtdparts=nand_mtd:0xc0000@0(uboot)ro,0x7f00000@0x100000(root)
setenv mtdids 'nand0=nand_mtd' setenv mtdparts 'mtdparts=nand_mtd:0xc0000@0(uboot)ro,0x7f00000@0x100000(root)'
mtdparts
Re: UART Boot DNS-320 B1 with broken NAND November 27, 2018 06:56AM |
Registered: 6 years ago Posts: 77 |
setenv........
Marvell>> mtdparts device nand0 <nand_mtd>, # parts = 2 #: name size offset mask_flags 0: uboot 0x000c0000 0x00000000 1 1: root 0x07f00000 0x00100000 0 active partition: nand0,0 - (uboot) 0x000c0000 @ 0x00000000 defaults: mtdids : <NULL> mtdparts: <NULL>
usb start ...... fatload usb 0:1 0x800000 /mtd0.dns-320 ...... nand erase 0x0 0x100000 ( 1MB U-Boot File ) ...... nand write 0x800000 0x0 0x100000
setenv mtdparts 'mtdparts=nand_mtd:0xc0000@0(uboot)ro,0x7f00000@0x100000(root)'to
setenv mtdparts 'mtdparts=nand_mtd:0x100000@0(uboot)ro,0x7f00000@0x100000(root)'
??
Re: UART Boot DNS-320 B1 with broken NAND November 27, 2018 02:07PM |
Admin Registered: 13 years ago Posts: 19,010 |
> setenv mtdparts > 'mtdparts=nand_mtd:0xc0000@0(uboot)ro,0x7f00000@0x100000(root)' >> to
> setenv mtdparts
> 'mtdparts=nand_mtd:0x100000@0(uboot)ro,0x7f00000@0x100000(root)'
>
setenv mtdparts 'mtdparts=nand_mtd:0xc0000@0(uboot)ro,0x7f00000@0x100000(root)'
Re: UART Boot DNS-320 B1 with broken NAND November 27, 2018 02:21PM |
Registered: 6 years ago Posts: 77 |
Re: UART Boot DNS-320 B1 with broken NAND November 27, 2018 09:38PM |
Admin Registered: 13 years ago Posts: 19,010 |
Re: UART Boot DNS-320 B1 with broken NAND November 28, 2018 06:36AM |
Registered: 6 years ago Posts: 77 |
Marvell>> setenv mtdids 'nand0=nand_mtd' Marvell>> setenv mtdparts 'mtdparts=nand_mtd:0xc0000@0(uboot)ro,0x7f00000@0x100000(root)' Marvell>> mtdparts device nand0 <nand_mtd>, # parts = 2 #: name size offset mask_flags 0: uboot 0x000c0000 0x00000000 1 1: root 0x07f00000 0x00100000 0 active partition: nand0,0 - (uboot) 0x000c0000 @ 0x00000000 defaults: mtdids : <NULL> mtdparts: <NULL> Marvell>> usb start (Re)start USB... USB: scanning bus for devices... 2 USB Device(s) found Waiting for storage device(s) to settle before scanning... 1 Storage Device(s) found Marvell>> fatload usb 0:1 0x800000 /mtd0.dns-320 reading /mtd0.dns-320 ...................................................................................................... 1048576 bytes read Marvell>> nand erase 0x0 0x100000 NAND erase: device 0 offset 0x0, size 0x100000 Erasing at 0xe0000 -- 100% complete. OK Marvell>> nand write 0x800000 0x0 0x100000 NAND write: device 0 offset 0x0, size 0x100000 load addr .... =800000 1048576 bytes written: OK
Re: UART Boot DNS-320 B1 with broken NAND November 28, 2018 05:04PM |
Admin Registered: 13 years ago Posts: 19,010 |
> Marvell>> fatload usb 0:1 0x800000 /mtd0.dns-320
ver help printenv setenv mtdids 'nand0=nand_mtd' setenv mtdparts 'mtdparts=nand_mtd:0xc0000@0(uboot)ro,0x7f00000@0x100000(root)' mtdparts
Re: UART Boot DNS-320 B1 with broken NAND November 29, 2018 03:41AM |
Registered: 6 years ago Posts: 77 |
root@debian:/u-boot# ./tools/kwboot -t -B 115200 /dev/ttyUSB0 -b mtd0.dns-320 -p Sending boot message. Please reboot the target.../ Sending boot image... 0 % [......................................................................] 0 % [......................................................................] 1 % [......................................................................] 2 % [......................................................................] ..... 98 % [......................................................................] 99 % [......................................................................] 99 % [..] [Type Ctrl-\ + c to quit] ** MARVELL BOARD: DB-88F6702A-BP LE U-Boot 1.1.4 (Apr 19 2012 - 11:21:19) Marvell version: 3.6.0.DNS-320B.01 U-Boot code: 00600000 -> 0067FFF0 BSS: -> 006CFB00 Soc: 88F6702 A1 CPU running @ 1000Mhz L2 running @ 500Mhz SysClock = 400Mhz , TClock = 166Mhz DRAM (DDR2) CAS Latency = 5 tRP = 5 tRAS = 18 tRCD=6 DRAM CS[0] base 0x00000000 size 128MB DRAM Total size 128MB 16bit width Addresses 8M - 0M are saved for the U-Boot usage. Mem malloc Initialization (8M - 7M): Done NAND:128 MB Flash: 0 kB CPU : Marvell Feroceon (Rev 1) Streaming disabled Write allocate disabled USB 0: host mode PEX 0: interface detected no Link. Net: egiga0 [PRIME] Hit any key to stop autoboot: 0 Marvell>> ver U-Boot 1.1.4 (Apr 19 2012 - 11:21:19) Marvell version: 3.6.0.DNS-320B.01 Marvell>> help ? - alias for 'help' SatR - sample at reset sub-system, relevent for DB only base - print or set address offset boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' 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 - Burn an image on the Boot Nand Flash. chpart - change active partition cmp - memory compare cmpm - Compare Memory cp - memory copy cpumap - Display CPU memory mapping settings. crc32 - checksum calculation date - get/set/reset date & time dclk - Display the MV device CLKs. dhcp - invoke DHCP client to obtain IP/boot params diskboot- boot from IDE device echo - echo args to console eeprom - EEPROM sub-system erase - erase FLASH memory 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 - Find value in the memory. flinfo - print FLASH memory information fsinfo - print information about filesystems fsload - load binary file from a filesystem image g - start application at cached address 'addr'(default addr 0x40000) go - start application at address 'addr' help - print online help icrc32 - checksum calculation ide - IDE sub-system iloop - infinite loop on address range imd - i2c memory display iminfo - print header information for application image imm[.b, .s, .w, .l] - i2c memory modify (auto-incrementing) imw - memory write (fill) inm - memory modify (constant address) iprobe - probe to discover valid I2C chip addresses ir - reading and changing MV internal register values. loop - infinite loop on address range ls - list files in a directory (default /) map - Diasplay address decode windows md - memory display me - PCI master enable mm - memory modify (auto-incrementing) mmcinit - init mmc card mp - map PCI BAR mtdparts- define flash/nand partitions mtest - simple RAM test mw - memory write (fill) nand - NAND sub-system nboot - boot from NAND device nbubt - Burn a boot loader image on the Boot Nand Flash. nm - memory modify (constant address) pci - list and access PCI Configuration Space phyRead - Read PCI-E Phy register pciePhyWrite - Write PCI-E Phy register phyRead - Read Phy register phyWrite - Write Phy register ping - send ICMP ECHO_REQUEST to network host printenv- print environment variables protect - enable or disable FLASH write protection rarpboot- boot image via network using RARP/TFTP protocol rcvr - Satrt recovery process (Distress Beacon with TFTP server) reset - Perform RESET of the CPU resetenv - Return all environment variable to default. run - run commands in an environment variable saveenv - save environment variables to persistent storage se - PCI Slave enable setenv - set environment variables sflash - read, write or erase the external SPI Flash. sg - scanning the PHYs status sp - Scan PCI bus. switchRegRead - Read switch register switchRegWrite - Write switch register Temp - read chip Tj temp tftpboot- boot image via network using TFTP protocol usb - USB sub-system usbboot - boot from USB device version - print monitor version Marvell>> printenv bootargs=root=/dev/ram console=ttyS0,115200 :::DB88FXX81:egiga0:none bootcmd=nand read.e 0xa00000 0x100000 0x300000;nand read.e 0xf00000 0x600000 0x300000;bootm 0xa00000 0xf00000 baudrate=115200 loads_echo=0 ipaddr=2.66.66.201 serverip=2.66.66.32 rootpath=/srv/ubuntu netmask=255.255.255.0 run_diag=yes stdin=serial stdout=serial stderr=serial console=console=ttyS0,115200 mtdparts=nand_mtd:0xc0000@0(uboot)ro,0x7f00000@0x100000(root) mainlineLinux=no enaMonExt=no enaCpuStream=no enaWrAllo=no pexMode=RC disL2Cache=no setL2CacheWT=yes disL2Prefetch=yes enaICPref=yes enaDCPref=yes sata_dma_mode=yes MALLOC_len=1 ethprime=egiga0 netbsd_en=no vxworks_en=no 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; bootdelay=1 disaMvPnp=no ethaddr=00:50:43:00:02:02 ethmtu=1500 mvPhoneConfig=mv_phone_config=dev[0]:fxs,dev[1]:fxo mvNetConfig=mv_net_config=(00:11:88:0f:62:81,0:1:2:3),mtu=1500 usb0Mode=host yuk_ethaddr=00:00:00:EE:51:81 nandEcc=1bit netretry=no rcvrip=169.254.100.100 loadaddr=0x02000000 autoload=no image_multi=yes enaAutoRecovery=yes pcieTune=no ethact=egiga0 Environment size: 1272/131068 bytes Marvell>> setenv mtdids 'nand0=nand_mtd' Marvell>> setenv mtdparts 'mtdparts=nand_mtd:0xc0000@0(uboot)ro,0x7f00000@0x100000(root)' Marvell>> mtdparts device nand0 <nand_mtd>, # parts = 2 #: name size offset mask_flags 0: uboot 0x000c0000 0x00000000 1 1: root 0x07f00000 0x00100000 0 active partition: nand0,0 - (uboot) 0x000c0000 @ 0x00000000 defaults: mtdids : <NULL> mtdparts: <NULL> Marvell>>
Re: UART Boot DNS-320 B1 with broken NAND November 29, 2018 06:57AM |
Admin Registered: 13 years ago Posts: 19,010 |
Re: UART Boot DNS-320 B1 with broken NAND November 29, 2018 07:16AM |
Registered: 6 years ago Posts: 77 |
Re: UART Boot DNS-320 B1 with broken NAND November 29, 2018 05:25PM |
Admin Registered: 13 years ago Posts: 19,010 |
Quote
Latest released rootfs: Debian-4.12.1-kirkwood-tld-1-rootfs-bodhi.tar.bz2 (24 Jul 2017)
Re: UART Boot DNS-320 B1 with broken NAND November 29, 2018 07:57PM |
Admin Registered: 13 years ago Posts: 19,010 |
dts/kirkwood-dns320.dtb
Quote
Updated 24 Jul 2017:
Basic Debian stretch Kirkwood rootfs for most Kirwood plugs:
- tarball size: 188M
- install size: 488M
- The init system used in this rootfs is sysvinit . To boot with systemd, see note 2 below.
- Installed packages: nano, avahi, ntp, busybox-syslogd (log to RAM), htop, isc-dhcp-client, dialog, bzip2, nfs server/client, iperf, ethtool, sysvinit-core, sysvinit, and sysvinit-utils.
- see LED controls in /etc/rc.local, and /etc/init.d/halt
- see some useful aliases in /root/.profile
- root password: root
Download at Dropbox:
Debian-4.12.1-kirkwood-tld-1-rootfs-bodhi.tar.bz2
md5:
bf3d29569943875df348fb5ca03b348c
sha256:
4ed5714fdb123cdb40e973f3d0754e91cd199b75a9874018f2b5dc9cfa8ae8bb
And remember to check the hash of what you download, as always.
Installation:
Installation can be done on any Linux box, with a fresh USB drive (SD card or HDD would work fine too).
Note: all steps below must be done while logging in as root user (not sudo). If you are not the root user then don't continue, because the rootfs will not work.
1. Format a new USB drive with a single Ext3 partition, and label it rootfs. If you are running the latest U-Boot for Kirkwood then you can use Ext4.
2. Mount the drive on a Linux box. cd to top level directory and extract it. It is assuming the USB drive is mounted at /media/sdb1
cd /media/sdb1
tar -xjf Debian-4.12.1-kirkwood-tld-1-rootfs-bodhi.tar.bz2
3. Adjust fstab (optional).
Edit /media/sdb1/etc/fstab entry for root device to match the rootfstype of your rootfstype if you use Ext4 or Ext2. However, you can keep it as is without problem in booting since the kernel will figure out which file system the rootfs was formatted.
LABEL=rootfs / ext3 noatime,errors=remount-ro 0 1
4. Create uImage with embedded DTB for booting with older u-boots (2012 or earlier). Skip this step if you have installed the latest U-Boot for Kirkwood (or are installing this u-boot at the same time).
Please replace kirkwood-goflexnet.dtb below with the correct DTB name for your box (see the folder /media/sdb1/boot/dts for the exact spelling of your Kirkwood box name).
Generate the uImage with DTB embedded inside:
cd /media/sdb1/boot
cp -a zImage-4.12.1-kirkwood-tld-1 zImage.fdt
cat dts/kirkwood-dns320.dtb >> zImage.fdt
mv uImage uImage.orig
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n Linux-4.12.1-kirkwood-tld-1 -d zImage.fdt uImage
sync
If your Linux box does not have mkimage, then install it
apt-get install u-boot-tools
5. Done. Take this USB rootfs to your plug and cold start. After booted into Debian, see Note1 and Note2 below. It is very important that you do Note1 steps to secure your box.
Re: UART Boot DNS-320 B1 with broken NAND November 30, 2018 03:48AM |
Registered: 6 years ago Posts: 77 |
root@debian:/u-boot# ./tools/kwboot -t -B 115200 /dev/ttyUSB0 -b mtd0.dns-320 -p Sending boot message. Please reboot the target.../ Sending boot image... 0 % [......................................................................] 0 % [......................................................................] 1 % [......................................................................] 2 % [......................................................................] ....... 98 % [......................................................................] 99 % [......................................................................] 99 % [..] [Type Ctrl-\ + c to quit] ** MARVELL BOARD: DB-88F6702A-BP LE U-Boot 1.1.4 (Apr 19 2012 - 11:21:19) Marvell version: 3.6.0.DNS-320B.01 U-Boot code: 00600000 -> 0067FFF0 BSS: -> 006CFB00 Soc: 88F6702 A1 CPU running @ 1000Mhz L2 running @ 500Mhz SysClock = 400Mhz , TClock = 166Mhz DRAM (DDR2) CAS Latency = 5 tRP = 5 tRAS = 18 tRCD=6 DRAM CS[0] base 0x00000000 size 128MB DRAM Total size 128MB 16bit width Addresses 8M - 0M are saved for the U-Boot usage. Mem malloc Initialization (8M - 7M): Done NAND:128 MB Flash: 0 kB CPU : Marvell Feroceon (Rev 1) Streaming disabled Write allocate disabled USB 0: host mode PEX 0: interface detected no Link. Net: egiga0 [PRIME] Hit any key to stop autoboot: 0 Marvell>> setenv ethaddr AC:F1:DF:12:DF:9A Marvell>> setenv ipaddr 192.168.1.103 Marvell>> setenv bootargs console=ttyS0,115200 root=/dev/sda1 usb-storage.delay_use=0 rootdelay=1 rw Marvell>> usb reset ; ext2load usb 0:1 0xa00000 /boot/uImage ; ext2load usb 0:1 0xf00000 /boot/uInitrd (Re)start USB... USB: scanning bus for devices... 2 USB Device(s) found Waiting for storage device(s) to settle before scanning... 1 Storage Device(s) found .... ................................................................................................................................................................................................................................................................................................................................................................................. 3835017 bytes read .... ......................................................................................................................................................................................................................................................................................................................................................................................................................... ..................................................................................................................................................................................................................................................................................................... 7245696 bytes read Marvell>> bootm 0xa00000 0xf00000 ## Booting image at 00a00000 ... Image Name: Linux-4.12.1-kirkwood-tld-1 Created: 2018-11-30 9:27:17 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 3834953 Bytes = 3.7 MB Load Address: 00008000 Entry Point: 00008000 Verifying Checksum ... OK OK ## Loading Ramdisk Image at 00f00000 ... 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 Starting kernel ... Uncompressing Linux... done, booting the kernel.
Re: UART Boot DNS-320 B1 with broken NAND November 30, 2018 04:14AM |
Admin Registered: 13 years ago Posts: 19,010 |
setenv ethaddr AC:F1:DF:12:DF:9A setenv ipaddr 192.168.1.103 setenv bootargs console=ttyS0,115200 root=/dev/sda1 usb-storage.delay_use=0 rootdelay=1 rw earlyprintk=serial usb reset ; ext2load usb 0:1 0x800000 /boot/uImage ; ext2load usb 0:1 0x2100000 /boot/uInitrd bootm 0x800000 0x2100000
Re: UART Boot DNS-320 B1 with broken NAND November 30, 2018 04:24AM |
Registered: 6 years ago Posts: 77 |
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: D-Link DNS-320 NAS (Rev A1) [ 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: 32512 [ 0.000000] Kernel command line: console=ttyS0,115200 root=/dev/sda1 usb-storage.delay_use=0 rootdelay=1 rw earlyprintk=serial [ 0.000000] PID hash table entries: 512 (order: -1, 2048 bytes) [ 0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) [ 0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) [ 0.000000] Memory: 109416K/131072K available (8192K kernel code, 716K rwdata, 1972K rodata, 1024K init, 288K bss, 21656K 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 : 0xc8800000 - 0xff800000 ( 880 MB) [ 0.000000] lowmem : 0xc0000000 - 0xc8000000 ( 128 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: 11467562657 ns [ 0.000009] sched_clock: 32 bits at 166MHz, resolution 6ns, wraps every 12884901885ns [ 0.007915] Switching to timer-based delay loop, resolution 6ns [ 0.014390] Console: colour dummy device 80x30 [ 0.018977] Calibrating delay loop (skipped), value calculated using timer frequency.. 333.33 BogoMIPS (lpj=1666666) [ 0.029590] pid_max: default: 32768 minimum: 301 [ 0.034489] Security Framework initialized [ 0.038829] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.045507] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.053570] CPU: Testing write buffer coherency: ok [ 0.059607] Setting up static identity map for 0x100000 - 0x100058 [ 0.066139] mvebu-soc-id: MVEBU SoC ID=0x6702, Rev=0x3 [ 0.074980] devtmpfs: initialized [ 0.083976] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [ 0.093947] futex hash table entries: 256 (order: -1, 3072 bytes) [ 0.100567] prandom: seed boundary self test passed [ 0.110026] prandom: 100 self tests passed [ 0.114191] pinctrl core: initialized pinctrl subsystem [ 0.120756] NET: Registered protocol family 16 [ 0.125780] DMA: preallocated 256 KiB pool for atomic coherent allocations [ 0.134508] cpuidle: using governor ladder [ 0.138802] cpuidle: using governor menu [ 0.143329] Feroceon L2: Enabling L2 [ 0.147005] Feroceon L2: Cache support initialised. [ 0.152376] [Firmware Info]: /ocp@f1000000/ethernet-controller@72000/ethernet0-port@0: local-mac-address is not set [ 0.169129] No ATAGs? [ 0.179924] vgaarb: loaded [ 0.185393] SCSI subsystem initialized [ 0.189796] usbcore: registered new interface driver usbfs [ 0.195421] usbcore: registered new interface driver hub [ 0.200928] usbcore: registered new device driver usb [ 0.207219] clocksource: Switched to clocksource orion_clocksource [ 0.316436] VFS: Disk quotas dquot_6.6.0 [ 0.320582] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) [ 0.339315] NET: Registered protocol family 2 [ 0.344564] TCP established hash table entries: 1024 (order: 0, 4096 bytes) [ 0.351645] TCP bind hash table entries: 1024 (order: 0, 4096 bytes) [ 0.358087] TCP: Hash tables configured (established 1024 bind 1024) [ 0.364580] UDP hash table entries: 256 (order: 0, 4096 bytes) [ 0.370510] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) [ 0.377016] NET: Registered protocol family 1 [ 0.381918] RPC: Registered named UNIX socket transport module. [ 0.387972] RPC: Registered udp transport module. [ 0.392742] RPC: Registered tcp transport module. [ 0.397546] RPC: Registered tcp NFSv4.1 backchannel transport module. [ 0.404295] Unpacking initramfs... [ 1.156623] Freeing initrd memory: 7076K [ 1.160903] NetWinder Floating Point Emulator V0.97 (double precision) [ 1.168502] audit: initializing netlink subsys (disabled) [ 1.174425] Initialise system trusted keyrings [ 1.179000] audit: type=2000 audit(1.156:1): state=initialized audit_enabled=0 res=1 [ 1.186857] Key type blacklist registered [ 1.191135] workingset: timestamp_bits=30 max_order=15 bucket_order=0 [ 1.197765] zbud: loaded [ 1.201451] NFS: Registering the id_resolver key type [ 1.206591] Key type id_resolver registered [ 1.210918] Key type id_legacy registered [ 1.215014] nfs4filelayout_init: NFSv4 File Layout Driver Registering... [ 1.221806] Installing knfsd (copyright (C) 1996 okir@monad.swb.de). [ 1.228439] jffs2: version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc. [ 1.235743] fuse init (API version 7.26) [ 1.240120] orangefs_debugfs_init: called with debug mask: :none: :0: [ 1.246848] orangefs_init: module version upstream loaded [ 1.252342] SGI XFS with ACLs, security attributes, realtime, no debug enabled [ 2.567226] random: fast init done [ 8.273679] Key type asymmetric registered [ 8.278134] Asymmetric key parser 'x509' registered [ 8.283135] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249) [ 8.290727] io scheduler noop registered [ 8.294714] io scheduler deadline registered [ 8.299189] io scheduler cfq registered (default) [ 8.305451] kirkwood-pinctrl f1010000.pin-controller: registered pinctrl driver [ 8.314962] mv_xor f1060800.xor: Marvell shared XOR driver [ 8.378088] mv_xor f1060800.xor: Marvell XOR (Registers Mode): ( xor cpy sg intr ) [ 8.385952] mv_xor f1060900.xor: Marvell shared XOR driver [ 8.448096] mv_xor f1060900.xor: Marvell XOR (Registers Mode): ( xor cpy sg intr ) [ 8.456213] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled [ 8.464102] console [ttyS0] disabled [ 8.467875] f1012000.serial: ttyS0 at MMIO 0xf1012000 (irq = 25, base_baud = 10416666) is a 16550A [ 8.476919] console [ttyS0] enabled [ 8.476919] console [ttyS0] enabled [ 8.484002] bootconsole [earlycon0] disabled [ 8.484002] bootconsole [earlycon0] disabled [ 8.493365] f1012100.serial: ttyS1 at MMIO 0xf1012100 (irq = 26, base_baud = 10416666) is a 16550A [ 8.511815] loop: module loaded [ 8.515627] sata_mv f1080000.sata: slots 32 ports 2 [ 8.523612] scsi host0: sata_mv [ 8.527271] scsi host1: sata_mv [ 8.530676] ata1: SATA max UDMA/133 irq 33 [ 8.534754] ata2: SATA max UDMA/133 irq 33 [ 8.540103] nand: Could not find valid ONFI parameter page; aborting [ 8.546441] nand: device found, Manufacturer ID: 0xad, Chip ID: 0xf1 [ 8.552844] nand: Hynix NAND 128MiB 3,3V 8-bit [ 8.557293] nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64 [ 8.564834] Scanning device for bad blocks [ 8.673065] 6 ofpart partitions found on MTD device orion_nand [ 8.678898] Creating 6 MTD partitions on "orion_nand": [ 8.684021] 0x000000000000-0x000000100000 : "u-boot" [ 8.690454] 0x000000100000-0x000000600000 : "uImage" [ 8.696881] 0x000000600000-0x000000b00000 : "ramdisk" [ 8.703475] 0x000000b00000-0x000007100000 : "image" [ 8.710565] 0x000007100000-0x000007b00000 : "mini firmware" [ 8.717458] 0x000007b00000-0x000008000000 : "config" [ 8.724976] libphy: Fixed MDIO Bus: probed [ 8.730021] libphy: orion_mdio_bus: probed [ 8.734510] mv643xx_eth: MV-643xx 10/100/1000 ethernet driver version 1.4 [ 8.741982] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 8.748591] ehci-pci: EHCI PCI platform driver [ 8.753084] ehci-orion: EHCI orion driver [ 8.757366] orion-ehci f1050000.ehci: EHCI Host Controller [ 8.762894] orion-ehci f1050000.ehci: new USB bus registered, assigned bus number 1 [ 8.770822] orion-ehci f1050000.ehci: irq 30, io mem 0xf1050000 [ 8.797248] orion-ehci f1050000.ehci: USB 2.0 started, EHCI 1.00 [ 8.803524] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 [ 8.810336] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 8.817566] usb usb1: Product: EHCI Host Controller [ 8.822424] usb usb1: Manufacturer: Linux 4.12.1-kirkwood-tld-1 ehci_hcd [ 8.829133] usb usb1: SerialNumber: f1050000.ehci [ 8.834627] hub 1-0:1.0: USB hub found [ 8.838464] hub 1-0:1.0: 1 port detected [ 8.843121] usbcore: registered new interface driver usb-storage [ 8.849566] mousedev: PS/2 mouse device common for all mice [ 8.870355] ata1: SATA link down (SStatus 0 SControl F300) [ 9.197248] usb 1-1: new high-speed USB device number 2 using orion-ehci [ 9.209025] ata2: SATA link down (SStatus 0 SControl F300) [ 9.389833] usb 1-1: New USB device found, idVendor=058f, idProduct=6387 [ 9.396523] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 9.403666] usb 1-1: Product: Mass Storage Device [ 9.408374] usb 1-1: Manufacturer: JetFlash [ 9.412543] usb 1-1: SerialNumber: F1V4T9I4 [ 9.417691] usb-storage 1-1:1.0: USB Mass Storage device detected [ 9.424117] scsi host2: usb-storage 1-1:1.0 [ 9.430307] scsi 2:0:0:0: Direct-Access JetFlash Transcend 1GB 8.07 PQ: 0 ANSI: 2 [ 9.440872] sd 2:0:0:0: [sda] 1972224 512-byte logical blocks: (1.01 GB/963 MiB) [ 9.448738] sd 2:0:0:0: [sda] Write Protect is off [ 9.453985] sd 2:0:0:0: [sda] No Caching mode page found [ 9.459349] sd 2:0:0:0: [sda] Assuming drive cache: write through [ 9.489479] sda: sda1 [ 9.494240] sd 2:0:0:0: [sda] Attached SCSI removable disk [ 9.937250] rtc-mv f1010300.rtc: internal RTC not ticking [ 9.942828] i2c /dev entries driver [ 9.948393] hidraw: raw HID events driver (C) Jiri Kosina [ 9.954159] drop_monitor: Initializing network drop monitor service [ 9.960699] NET: Registered protocol family 17 [ 9.965223] Key type dns_resolver registered [ 9.970382] registered taskstats version 1 [ 9.974460] Loading compiled-in X.509 certificates [ 9.979324] zswap: loaded using pool lzo/zbud [ 9.994596] Key type big_key registered [ 10.008742] Key type encrypted registered [ 10.014398] hctosys: unable to open rtc device (rtc0) [ 10.022901] Freeing unused kernel memory: 1024K Loading, please wait... starting version 232 [ 10.520638] usbcore: registered new interface driver uas Begin: Loading essential drivers ... done. Begin: Running /scripts/init-premount ... done. Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done. Begin: Running /scripts/local-premount ... done. Warning: fsck not present, so skipping root file system done. Begin: Running /scripts/local-bottom ... done. Begin: Running /scripts/init-bottom ... done. INIT: version 2.88 booting [info] Using makefile-style concurrent boot in runlevel S. [ ok ] Setting hostname to 'debian'...done. [....] Starting the hotplug events dispatcher: systemd-udevdstarting version 232 . ok [ ok ] Synthesizing the initial hotplug events...[ 14.173285] input: gpio_keys as /devices/platform/gpio_keys/input/input0 done. [....] Waiting for /dev to be fully populated...[ 14.479281] orion_wdt: Initial timeout 25 sec [ 14.589399] marvell-cesa f1030000.crypto: CESA device successfully registered [ 14.628629] sd 2:0:0:0: Attached scsi generic sg0 type 0 done. [ ok ] Activating swap:. [....] Will now check root file system:fsck from util-linux 2.29.2 [/sbin/fsck.ext2 (1) -- /] fsck.ext2 -y -C0 /dev/sda1 e2fsck 1.43.4 (31-Jan-2017) rootfs: clean, 14456/61568 files, 174420/246272 blocks . ok [ 17.322662] random: crng init done [ ok ] Will now activate lvm and md swap:done. [info] Will now check all file systems. fsck from util-linux 2.29.2 Checking all file systems. LABEL=rootfs is mounted [....] Done checking file systems. A log is being saved in /var/log/fsck/checkfs if that location is wri[ ok .. [ ok ] Cleaning up temporary files...[....] Cleaning /tmp...done. [ ok . [ ok ] Will now mount local filesystems:. [ ok ] Will now activate swapfile swap:done. [ ok ] Checking minimum space in /tmp...done. [ ok ] Cleaning up temporary files.... [ ok ] Setting kernel variables...done. [ ok ] Initializing random number generator...done. [....] Configuring network interfaces...Internet Systems Consortium DHCP Client 4.3.5 Copyright 2004-2016 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Cannot find device "eth0" Failed to get interface index: No such device If you think you have received this message due to a bug rather than a configuration issue please read the section on submitting bugs on either our web page at www.isc.org or in the README file before submitting a bug. These pages explain the proper process and the information we find helpful for debugging.. exiting. ifup: failed to bring up eth0 failed. [ 20.587552] NET: Registered protocol family 10 [ 20.595040] Segment Routing with IPv6 [ ok ] Starting RPC port mapper daemon: rpcbind. [ ok ] Starting NFS common utilities: statd idmapd. [ ok ] Cleaning up temporary files.... INIT: Entering runlevel: 2 [info] Using makefile-style concurrent boot in runlevel 2. [....] Starting busybox' syslogd implementation : syslogdStarting /sbin/syslogd... 1267 (syslogd) . ok [ ok ] Starting NFS common utilities: statd idmapd. [ ok ] Starting system message bus: dbus. [ ok ] Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon. [warn] Not starting NFS kernel daemon: no exports. ... (warning). [ ok ] Starting NTP server: ntpd. [ ok ] Starting OpenBSD Secure Shell server: sshd. [....] Starting busybox' klogd implementation : klogdStarting /sbin/klogd... 1266 (klogd) . ok [ ok ] Running local boot scripts (/etc/rc.local). Debian GNU/Linux 9 debian ttyS0 debian login:
Re: UART Boot DNS-320 B1 with broken NAND November 30, 2018 06:19PM |
Admin Registered: 13 years ago Posts: 19,010 |
Re: UART Boot DNS-320 B1 with broken NAND November 30, 2018 06:57PM |
Admin Registered: 13 years ago Posts: 19,010 |
Re: UART Boot DNS-320 B1 with broken NAND December 01, 2018 03:07AM |
Registered: 6 years ago Posts: 77 |