xref: /OK3568_Linux_fs/buildroot/board/globalscale/espressobin/readme.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunMarvell ESPRESSObin
2*4882a593Smuzhiyun===================
3*4882a593Smuzhiyun
4*4882a593SmuzhiyunThis default configuration allows you to quickly get up and running with
5*4882a593Smuzhiyunthe Marvell ESPRESSObin board by Globalscale Technologies Inc.
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunThe ESPRESSObin is based on the Marvell Armada 88F3720 SoC, coupled with
8*4882a593Smuzhiyuna Marvell 88E6341 switch core "Topaz", with three exposed gigabit ports.
9*4882a593Smuzhiyun
10*4882a593Smuzhiyun     _________________________
11*4882a593Smuzhiyun    |#  U     W   L  L    U  #|
12*4882a593Smuzhiyun    |#  S     A   A  A    S  #|
13*4882a593Smuzhiyun    |#  B     N   N  N    B  #|
14*4882a593Smuzhiyun    |#            0  1       #|
15*4882a593Smuzhiyun    |#      Mini             #|
16*4882a593Smuzhiyun    |#      -PCI             #|
17*4882a593Smuzhiyun    |#                       #|
18*4882a593Smuzhiyun    |#  5                    #|
19*4882a593Smuzhiyun    |#__V___usb_PWR_SATA__SW_#|
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun    Fig 1: Overview of board
22*4882a593Smuzhiyun
23*4882a593SmuzhiyunNotice difference in Ethernet port layout compared to the Globalscale
24*4882a593Smuzhiyundocs.  They order the ports; LAN2, LAN1, WAN (left to right in figure
25*4882a593Smuzhiyunabove).  For more information, see http://espressobin.net
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun
28*4882a593SmuzhiyunBuilding
29*4882a593Smuzhiyun--------
30*4882a593Smuzhiyun
31*4882a593Smuzhiyun    $ make globalscale_espressobin_defconfig
32*4882a593Smuzhiyun    $ make
33*4882a593Smuzhiyun
34*4882a593SmuzhiyunThis generates the kernel image, the devicetree binary, the rootfs as a
35*4882a593Smuzhiyuntar.gz, and a filesystem image containing everything.
36*4882a593Smuzhiyun
37*4882a593SmuzhiyunAll build artifacts are located in `output/images/`
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun
40*4882a593SmuzhiyunBooting
41*4882a593Smuzhiyun-------
42*4882a593Smuzhiyun
43*4882a593SmuzhiyunTo boot, you need a UART connection, using the on-board micro USB port
44*4882a593Smuzhiyunset to 115200 8N1.
45*4882a593Smuzhiyun
46*4882a593SmuzhiyunBy default, the ESPRESSObin comes with a pre-flashed U-Boot set up to
47*4882a593Smuzhiyunload the kernel, device-tree and rootfs from SPI NOR flash.  The board
48*4882a593Smuzhiyunjumpers can be changed to boot from different sources, see the quick
49*4882a593Smuzhiyunstart guide for each board revision for details:
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun- ftp://downloads.globalscaletechnologies.com/Downloads/Espressobin/ESPRESSObin%20V5/
52*4882a593Smuzhiyun- ftp://downloads.globalscaletechnologies.com/Downloads/Espressobin/ESPRESSObin%20V7/
53*4882a593Smuzhiyun
54*4882a593SmuzhiyunNote: the v5, and earlier, cannot boot from sdcard, so you have to set
55*4882a593Smuzhiyunup the factory U-Boot to boot into Buildroot:
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun1. Flash rootfs image to sdcard drive, your `of=` device may differ:
58*4882a593Smuzhiyun
59*4882a593Smuzhiyun        $ sudo dd if=output/images/sdcard.img of=/dev/mmcblk0 bs=1M
60*4882a593Smuzhiyun        $ sync
61*4882a593Smuzhiyun
62*4882a593Smuzhiyun2. Boot board from SPI NOR, interrupt boot by pressing any key ...
63*4882a593Smuzhiyun3. Check with `printenv` that the default setup is OK, otherwise ensure
64*4882a593Smuzhiyun   the following are set, and define `bootcmd` for automatic boot:
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun        > setenv kernel_addr 0x5000000
67*4882a593Smuzhiyun        > setenv fdt_addr 0x1800000
68*4882a593Smuzhiyun        > setenv fdt_name boot/armada-3720-espressobin.dtb
69*4882a593Smuzhiyun        > setenv console console=ttyMV0,115200 earlycon=ar3700_uart,0xd0012000
70*4882a593Smuzhiyun        > setenv bootcmd 'mmc dev 0; ext4load mmc 0:1 $kernel_addr $image_name;ext4load mmc 0:1 $fdt_addr $fdt_name;setenv bootargs $console root=/dev/mmcblk0p1 rw rootwait; booti $kernel_addr - $fdt_addr'
71*4882a593Smuzhiyun
72*4882a593Smuzhiyun4. Call the boot command, or `reset` the board to start:
73*4882a593Smuzhiyun
74*4882a593Smuzhiyun        > run bootcmd
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun
77*4882a593SmuzhiyunNetworking
78*4882a593Smuzhiyun----------
79*4882a593Smuzhiyun
80*4882a593SmuzhiyunTo enable Ethernet networking, load the `mv88e6xxx` kernel module, and
81*4882a593Smuzhiyunbring up each respective interface needed:
82*4882a593Smuzhiyun
83*4882a593Smuzhiyun    # modprobe mv88e6xxx
84*4882a593Smuzhiyun    # ifconfig wan up
85*4882a593Smuzhiyun
86*4882a593SmuzhiyunA more advanced scenario is setting up switching between the ports using
87*4882a593Smuzhiyunthe Linux bridge.  The kernel switchdev layer, and DSA driver, ensure
88*4882a593Smuzhiyunswitch functions are "offloaded" to the HW switch, i.e., all traffic
89*4882a593Smuzhiyunbetween LAN ports never reach the CPU.  For this you need the iproute2
90*4882a593Smuzhiyunsuite of tools.
91