BIOS + Bootloader for Marvell 6820-db51e
This is the modified version of the Marvell 6820 board bring-up package (boot only). The targeted development board has 2 Gigabits Ethernet PHYs, 1 Gigabits Switch (5/7-port), 1 30G SSD (local-config:log) with 1 128M SPI-Flash (3B mode ROM boot, 4B mode R/W, header:u-boot:env:os1:os2:default-config) and 1 Dual-Band Wireless Radio (802.11bgn)
Things supported so far
- 2 x PHYs (eth1, eth2)
- 1 x Switch (eth0 and switch ports 1-5)
- 1 x SSD
- 1 x SPI-Flash
- 1 x Wifi
Things needs soft reset
- SPI-Flash, back to 3B before u-boot
reset
(not yet) and osreboot
(done); - Wifi, pci-E reset in board header before u-boot init; (not yet)
- PHYs and Switch, reset in u-boot init (done);
Note that, if you unplug the power cord, it is a hard reset. You don't need the above resets.
Hack it open
- Invalid bit 0-8 on the SPI-Flash (ROM hard wired to read this as valid boot device record)
- Trigger rescue boot-squence (see
/tools/marvell/doimage_mv/pattern.py
) - Use modified xmodem over serial port to upload boot firmware (header:u-boot:env).
- Use
dnsmasq
with TFTP for uploading os(kernel), devicetree and initramfs.
Develop
/tools/marvell/bin_hdr/src_phy/
-- board SERDES Lanes topology (header:)/board/mv_ebu/a38x/armada_38x_family/boardEnv/
-- board init hooks implementation (:u-boot:)/drivers/mtd/spi/
-- SPI-Flash 4B mode support (for upgrading this header:u-boot:)
###Extra you need
- defconfig for buildroot (userland daemon and utils)
- defconfig for kernel (drivers)
- .dts device tree definition for kernel (dtb)
- local.mk for buildroot to use customized kernel, this u-boot package and more userland daemon/utils
Note: the only place you have to modify in the kernel is descripted in the .dts (SPI-Flash 4B to 3B reset upon reboot)
Debug
###Console
sudo minicom -D /dev/ttyS0 -b 115200
sudo minicom -D /dev/ttyUSB0 -b 115200
License
Copyright 2016 Tim Lauv. Under the GPL v2 License.