Commit b72794e37e056f3ec18a6cadfe0376058a5c2f34
1 parent
f6eb68b978
Exists in
smarc_8mq_lf_v2020.04
and in
11 other branches
board: amlogic: add support for S400 board
The S400 board is the Amlogic AXG SoC reference board including : - Amlogic A113DX ARM Cortex-A53 quad-core SoC @ 1.2GHz - 1GB DDR4 SDRAM - 10/100 Ethernet - 2 x USB 2.0 Host - eMMC - Infrared receiver - SDIO WiFi Module - MIPI DSI Connector - Audio HAT Connector - PCI-E M.2 Connectors Signed-off-by: Jerome Brunet <jbrunet@baylibre.com> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Showing 6 changed files with 194 additions and 0 deletions Side-by-side Diff
arch/arm/mach-meson/Kconfig
board/amlogic/s400/MAINTAINERS
board/amlogic/s400/Makefile
board/amlogic/s400/README
1 | +U-Boot for Amlogic S400 | |
2 | +======================= | |
3 | + | |
4 | +S400 is a reference board manufactured by Amlogic with the following | |
5 | +specifications: | |
6 | + | |
7 | + - Amlogic A113DX ARM Cortex-A53 quad-core SoC @ 1.2GHz | |
8 | + - 1GB DDR4 SDRAM | |
9 | + - 10/100 Ethernet | |
10 | + - 2 x USB 2.0 Host | |
11 | + - eMMC | |
12 | + - Infrared receiver | |
13 | + - SDIO WiFi Module | |
14 | + - MIPI DSI Connector | |
15 | + - Audio HAT Connector | |
16 | + - PCI-E M.2 Connectors | |
17 | + | |
18 | +Schematics are available from Amlogic on demand. | |
19 | + | |
20 | +Currently the u-boot port supports the following devices: | |
21 | + - serial | |
22 | + - eMMC | |
23 | + - Ethernet | |
24 | + - I2C | |
25 | + - Regulators | |
26 | + - Reset controller | |
27 | + - Clock controller | |
28 | + - USB Host | |
29 | + - ADC | |
30 | + | |
31 | +u-boot compilation | |
32 | +================== | |
33 | + | |
34 | + > export ARCH=arm | |
35 | + > export CROSS_COMPILE=aarch64-none-elf- | |
36 | + > make s400_defconfig | |
37 | + > make | |
38 | + | |
39 | +Image creation | |
40 | +============== | |
41 | + | |
42 | +Amlogic doesn't provide sources for the firmware and for tools needed | |
43 | +to create the bootloader image, so it is necessary to obtain them from | |
44 | +the git tree published by the board vendor: | |
45 | + | |
46 | + > wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz | |
47 | + > wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz | |
48 | + > tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz | |
49 | + > tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz | |
50 | + > export PATH=$PWD/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin:$PWD/gcc-linaro-arm-none-eabi-4.8-2013.11_linux/bin:$PATH | |
51 | + > git clone https://github.com/BayLibre/u-boot.git -b n-amlogic-openlinux-20170606 amlogic-u-boot | |
52 | + > cd amlogic-u-boot | |
53 | + > make axg_s400_v1_defconfig | |
54 | + > make | |
55 | + > export FIPDIR=$PWD/fip | |
56 | + | |
57 | +Go back to mainline U-boot source tree then : | |
58 | + > mkdir fip | |
59 | + | |
60 | + > cp $FIPDIR/axg/bl2.bin fip/ | |
61 | + > cp $FIPDIR/axg/acs.bin fip/ | |
62 | + > cp $FIPDIR/axg/bl21.bin fip/ | |
63 | + > cp $FIPDIR/axg/bl30.bin fip/ | |
64 | + > cp $FIPDIR/axg/bl301.bin fip/ | |
65 | + > cp $FIPDIR/axg/bl31.img fip/ | |
66 | + > cp u-boot.bin fip/bl33.bin | |
67 | + | |
68 | + > $FIPDIR/blx_fix.sh \ | |
69 | + fip/bl30.bin \ | |
70 | + fip/zero_tmp \ | |
71 | + fip/bl30_zero.bin \ | |
72 | + fip/bl301.bin \ | |
73 | + fip/bl301_zero.bin \ | |
74 | + fip/bl30_new.bin \ | |
75 | + bl30 | |
76 | + | |
77 | + > $FIPDIR/acs_tool.pyc fip/bl2.bin fip/bl2_acs.bin fip/acs.bin 0 | |
78 | + | |
79 | + > $FIPDIR/blx_fix.sh \ | |
80 | + fip/bl2_acs.bin \ | |
81 | + fip/zero_tmp \ | |
82 | + fip/bl2_zero.bin \ | |
83 | + fip/bl21.bin \ | |
84 | + fip/bl21_zero.bin \ | |
85 | + fip/bl2_new.bin \ | |
86 | + bl2 | |
87 | + | |
88 | + > $FIPDIR/axg/aml_encrypt_axg --bl3sig --input fip/bl30_new.bin \ | |
89 | + --output fip/bl30_new.bin.enc \ | |
90 | + --level v3 --type bl30 | |
91 | + > $FIPDIR/axg/aml_encrypt_axg --bl3sig --input fip/bl31.img \ | |
92 | + --output fip/bl31.img.enc \ | |
93 | + --level v3 --type bl31 | |
94 | + > $FIPDIR/axg/aml_encrypt_axg --bl3sig --input fip/bl33.bin --compress lz4 \ | |
95 | + --output fip/bl33.bin.enc \ | |
96 | + --level v3 --type bl33 | |
97 | + > $FIPDIR/axg/aml_encrypt_axg --bl2sig --input fip/bl2_new.bin \ | |
98 | + --output fip/bl2.n.bin.sig | |
99 | + > $FIPDIR/axg/aml_encrypt_axg --bootmk \ | |
100 | + --output fip/u-boot.bin \ | |
101 | + --bl2 fip/bl2.n.bin.sig \ | |
102 | + --bl30 fip/bl30_new.bin.enc \ | |
103 | + --bl31 fip/bl31.img.enc \ | |
104 | + --bl33 fip/bl33.bin.enc --level v3 | |
105 | + | |
106 | +and then write the image to SD with: | |
107 | + | |
108 | + > DEV=/dev/your_sd_device | |
109 | + > dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1 | |
110 | + > dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444 |
board/amlogic/s400/s400.c
1 | +// SPDX-License-Identifier: GPL-2.0+ | |
2 | +/* | |
3 | + * Copyright (C) 2016 BayLibre, SAS | |
4 | + * Author: Neil Armstrong <narmstrong@baylibre.com> | |
5 | + */ | |
6 | + | |
7 | +#include <common.h> | |
8 | +#include <dm.h> | |
9 | +#include <environment.h> | |
10 | +#include <asm/io.h> | |
11 | +#include <asm/arch/axg.h> | |
12 | +#include <asm/arch/sm.h> | |
13 | +#include <asm/arch/eth.h> | |
14 | +#include <asm/arch/mem.h> | |
15 | + | |
16 | +int board_init(void) | |
17 | +{ | |
18 | + return 0; | |
19 | +} | |
20 | + | |
21 | +int misc_init_r(void) | |
22 | +{ | |
23 | + meson_eth_init(PHY_INTERFACE_MODE_RGMII, 0); | |
24 | + | |
25 | + return 0; | |
26 | +} | |
27 | + | |
28 | +int ft_board_setup(void *blob, bd_t *bd) | |
29 | +{ | |
30 | + meson_init_reserved_memory(blob); | |
31 | + | |
32 | + return 0; | |
33 | +} |
configs/s400_defconfig
1 | +CONFIG_ARM=y | |
2 | +CONFIG_ARCH_MESON=y | |
3 | +CONFIG_SYS_TEXT_BASE=0x01000000 | |
4 | +CONFIG_MESON_AXG=y | |
5 | +CONFIG_DEBUG_UART_BASE=0xff803000 | |
6 | +CONFIG_DEBUG_UART_CLOCK=24000000 | |
7 | +CONFIG_IDENT_STRING=" s400" | |
8 | +CONFIG_DEBUG_UART=y | |
9 | +CONFIG_NR_DRAM_BANKS=1 | |
10 | +CONFIG_OF_BOARD_SETUP=y | |
11 | +CONFIG_MISC_INIT_R=y | |
12 | +# CONFIG_DISPLAY_CPUINFO is not set | |
13 | +# CONFIG_DISPLAY_BOARDINFO is not set | |
14 | +# CONFIG_CMD_BDI is not set | |
15 | +# CONFIG_CMD_IMI is not set | |
16 | +CONFIG_CMD_GPIO=y | |
17 | +# CONFIG_CMD_LOADS is not set | |
18 | +CONFIG_CMD_MMC=y | |
19 | +# CONFIG_CMD_SETEXPR is not set | |
20 | +CONFIG_CMD_REGULATOR=y | |
21 | +CONFIG_OF_CONTROL=y | |
22 | +CONFIG_DEFAULT_DEVICE_TREE="meson-axg-s400" | |
23 | +CONFIG_NET_RANDOM_ETHADDR=y | |
24 | +CONFIG_DM_GPIO=y | |
25 | +CONFIG_DM_MMC=y | |
26 | +CONFIG_MMC_MESON_GX=y | |
27 | +CONFIG_DM_ETH=y | |
28 | +CONFIG_ETH_DESIGNWARE=y | |
29 | +CONFIG_PINCTRL=y | |
30 | +CONFIG_PINCTRL_MESON_AXG=y | |
31 | +CONFIG_DM_REGULATOR=y | |
32 | +CONFIG_DM_REGULATOR_FIXED=y | |
33 | +CONFIG_DM_RESET=y | |
34 | +CONFIG_DEBUG_UART_MESON=y | |
35 | +CONFIG_DEBUG_UART_ANNOUNCE=y | |
36 | +CONFIG_DEBUG_UART_SKIP_INIT=y | |
37 | +CONFIG_MESON_SERIAL=y | |
38 | +CONFIG_OF_LIBFDT_OVERLAY=y |