HCL:OptimusBoard
Merrii 的 Allwinner Optimus Board 是一款单板计算机。
技术细节
- Allwinner A80 SoC
- 4x ARM Cortex-A15 CPU
- 4x ARM Cortex-A7 CPU
- 以太网
- HDMI
- USB
- UART
手动安装
从 SD 卡启动 boot0 似乎不起作用,而且 flash 中的 U-Boot 无法识别 SD 卡,也不支持 USB 或网络。作为替代方案,FEL 模式 允许现在通过 USB 加载 boot0、U-Boot 和内核。您需要在每次启动时传输它们。
进入 FEL 模式
在启动/重置设备时,按 2 键进入串口控制台,直到显示“eraly jump fel”,或者按任意键进入 U-Boot 提示符,并输入 efex 以达到相同的效果
sunxi# efex ## jump to efex ... set next system status de top clk 18 is already close de top clk 30 is already close de top clk 19 is already close de top clk 30 is already close de top clk 35 is already close mod 40 is already disable de top clk 16 is already close mod 40 is already disable mod 40 is already disable de top clk 34 is already close mod 40 is already disable lcd 2 is not register sunxi_board_close_source reset cpu HELLO! BOOT0 is starting! boot0 version : 3.1.0 rtc 1 value 0x0001005a rtc 2 value 0x00020000 rtc 3 value 0x00030000 eraly jump fel
将 USB 3.0 Micro USB 接口连接到您的计算机。
通过 FEL 启动 BOOT0
由于上游 U-Boot 尚未支持 SPL,您需要从 Allwinner SDK 生成的 fes1.fex。(待定)
# fel write 0x12000 fes1.fex # fel execute 0x12000
这将加载并在 SRAM 中执行 Allwinner 的 BOOT0 引导加载程序
begin init dram INFO: dram code V2.2 dram clk=672 dram_zq = 0x0x003f3fdd!! DDR3 used!! dram channle 2 0x0x00100001 0x0x00100001 pmu id=0x00000062 VTC Disabled!! Channel 0 OK! VTC Disabled!! Channel 1 OK! dram size=2048MBytes! init dram ok
接下来您需要主引导加载程序。
通过 FEL 加载内核
假设您有一个带有内置驱动程序的自行编译的内核,您可以按如下方式传输它
# fel write 0x22000000 zImage # fel write 0x23000000 sun9i-a80-optimus.dtb
请注意,传输大型 initrd 文件(例如从我们的 kernel-lpae 使用 dracut -N 生成的)已知会失败,您可能需要将其分成多个较小的部分传输,例如,最大 8 MB。指定的 initrd 地址为 0x23300000。
通过 FEL 加载 U-Boot
下载 u-boot-merriia80optimus RPM 并提取 usr/bin/u-boot.bin(这对应于 u-boot-dtb.bin)。
# fel write 0x2a000000 u-boot.bin # fel execute 0x2a000000
这将加载并在 SDRAM 中执行我们的 U-Boot。
截至 v2015.07,U-Boot 似乎无法识别 SD 卡,并且缺乏对 USB 或网络的支持。您可以按如下方式执行先前通过 FEL 加载的内核
sunxi# setenv bootargs 'root=...' sunxi# bootz 0x22000000 - 0x23000000
生成可启动的 initrd
截至 U-Boot v2016.01-rc1 和 kernel-lpae 4.4.0-rc5,SD 卡似乎仍然无法工作。
要从 USB 启动 rootfs(root=/dev/sda1 rw rootwait),请在设备上添加一个配置文件,例如 /etc/dracut.conf.d/90-optimus.conf
add_drivers+=" phy-sun9i-usb sunxi"
下次生成 initrd 时(例如,zypper install -f kernel-lpae),它将包含这些驱动程序。