Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src Add installboot(8) support for evbarm (and, in the future, o...
details: https://anonhg.NetBSD.org/src/rev/3ab5c47e6db2
branches: trunk
changeset: 456404:3ab5c47e6db2
user: thorpej <thorpej%NetBSD.org@localhost>
date: Tue May 07 05:02:41 2019 +0000
description:
Add installboot(8) support for evbarm (and, in the future, other evb*)
boards that use u-boot. A known board database lists boards and their
respective u-boot packages. u-boot packages are discovered at run-time
(in /usr/pkg/share/u-boot, by default). These packages contain board
database overlays that describe u-boot installation procedure that's
specific for that board.
Support this as a native tool and as a host tool. The native tool
will attempt to determine the running board type using OpenFirmware
calls. Host tool and native tool alike may also specify a board type
directly using the "-o board=xxx option" or have installboot(8) determine
the board type from a device tree blob using "-o dtb=/path/to/board.dtb".
A "-o media=xxx" option is provided for boards that have different u-boot
binaries and/or installation procedures for different media types (e.g.
SDMMC, eMMC, or USB).
This is trivial to extend to other evb* platforms that use u-boot, even if
they don't use FDT for autoconfiguration.
diffstat:
distrib/sets/lists/base/mi | 5 +-
etc/mtree/NetBSD.dist.base | 4 +-
share/Makefile | 4 +-
share/installboot/Makefile | 9 +
share/installboot/evbarm/Makefile | 12 +
share/installboot/evbarm/boards.plist | 337 ++++++
tools/installboot/Makefile | 31 +-
usr.sbin/installboot/Makefile | 45 +-
usr.sbin/installboot/arch/evbarm.c | 119 ++
usr.sbin/installboot/evboards.c | 1655 +++++++++++++++++++++++++++++++++
usr.sbin/installboot/evboards.h | 65 +
usr.sbin/installboot/installboot.8 | 120 ++-
usr.sbin/installboot/installboot.c | 56 +-
usr.sbin/installboot/installboot.h | 22 +-
usr.sbin/installboot/machines.c | 6 +-
15 files changed, 2463 insertions(+), 27 deletions(-)
diffs (truncated from 2806 to 300 lines):
diff -r 877440a74863 -r 3ab5c47e6db2 distrib/sets/lists/base/mi
--- a/distrib/sets/lists/base/mi Tue May 07 04:35:31 2019 +0000
+++ b/distrib/sets/lists/base/mi Tue May 07 05:02:41 2019 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.1203 2019/04/18 03:50:12 rin Exp $
+# $NetBSD: mi,v 1.1204 2019/05/07 05:02:41 thorpej Exp $
#
# Note: Don't delete entries from here - mark them as "obsolete" instead,
# unless otherwise stated below.
@@ -3054,6 +3054,9 @@
./usr/share/i18n/iconv base-sysutil-share
./usr/share/i18n/iconv/iconv.dir base-sysutil-share nls
./usr/share/info base-texinfo-share
+./usr/share/installboot base-sysutil-share
+./usr/share/installboot/evbarm base-sysutil-share
+./usr/share/installboot/evbarm/boards.plist base-sysutil-share
./usr/share/keymaps base-sys-share
./usr/share/keymaps/amiga base-sys-share
./usr/share/keymaps/atari base-sys-share
diff -r 877440a74863 -r 3ab5c47e6db2 etc/mtree/NetBSD.dist.base
--- a/etc/mtree/NetBSD.dist.base Tue May 07 04:35:31 2019 +0000
+++ b/etc/mtree/NetBSD.dist.base Tue May 07 05:02:41 2019 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: NetBSD.dist.base,v 1.196 2019/04/18 03:50:12 rin Exp $
+# $NetBSD: NetBSD.dist.base,v 1.197 2019/05/07 05:02:42 thorpej Exp $
# @(#)4.4BSD.dist 8.1 (Berkeley) 6/13/93
# Do not customize this file as it may be overwritten on upgrades.
@@ -472,6 +472,8 @@
./usr/share/i18n/esdb/UTF
./usr/share/i18n/iconv
./usr/share/info
+./usr/share/installboot
+./usr/share/installboot/evbarm
./usr/share/keymaps
./usr/share/keymaps/amiga
./usr/share/keymaps/atari
diff -r 877440a74863 -r 3ab5c47e6db2 share/Makefile
--- a/share/Makefile Tue May 07 04:35:31 2019 +0000
+++ b/share/Makefile Tue May 07 05:02:41 2019 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.35 2018/06/10 17:55:11 christos Exp $
+# $NetBSD: Makefile,v 1.36 2019/05/07 05:02:42 thorpej Exp $
# from @(#)Makefile 8.1 (Berkeley) 6/5/93
# Missing: ms
@@ -7,7 +7,7 @@
.if ${MKSHARE} != "no" || \
make(clean) || make(cleandir) || make(distclean) || make(obj)
-SUBDIR= dict examples legal man me misc mk \
+SUBDIR= dict examples installboot legal man me misc mk \
tabset terminfo tmac wscons xml
.if ${MKGROFF} != "no"
diff -r 877440a74863 -r 3ab5c47e6db2 share/installboot/Makefile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/installboot/Makefile Tue May 07 05:02:41 2019 +0000
@@ -0,0 +1,9 @@
+# $NetBSD: Makefile,v 1.1 2019/05/07 05:02:42 thorpej Exp $
+
+.include <bsd.own.mk>
+
+.if ${MKSHARE} != "no"
+SUBDIR= evbarm
+.endif
+
+.include <bsd.subdir.mk>
diff -r 877440a74863 -r 3ab5c47e6db2 share/installboot/evbarm/Makefile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/installboot/evbarm/Makefile Tue May 07 05:02:41 2019 +0000
@@ -0,0 +1,12 @@
+# $NetBSD: Makefile,v 1.1 2019/05/07 05:02:42 thorpej Exp $
+
+NOOBJ= # defined
+
+.include <bsd.own.mk>
+
+.if ${MKSHARE} != "no"
+FILES= boards.plist
+FILESDIR= /usr/share/installboot/evbarm
+.endif
+
+.include <bsd.prog.mk>
diff -r 877440a74863 -r 3ab5c47e6db2 share/installboot/evbarm/boards.plist
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/installboot/evbarm/boards.plist Tue May 07 05:02:41 2019 +0000
@@ -0,0 +1,337 @@
+<!-- $NetBSD: boards.plist,v 1.1 2019/05/07 05:02:42 thorpej Exp $ -->
+<!--
+ Copyright (c) 2019 The NetBSD Foundation, Inc.
+ All rights reserved.
+
+ This code is derived from software contributed to The NetBSD Foundation
+ by Jason R. Thorpe.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+-->
+<plist>
+<dict>
+ <!--
+ -- amlogic boards
+ -->
+ <key>hardkernel,odroid-c2</key>
+ <dict>
+ <key>description</key>
+ <string>Hardkernel ODROID-C2</string>
+ <key>u-boot-pkg</key>
+ <string>odroid-c2</string>
+ </dict>
+ <key>libretech,cc</key>
+ <dict>
+ <key>description</key>
+ <string>Libre Computer Board AML-S905X-CC</string>
+ <key>u-boot-pkg</key>
+ <string>libretech-cc</string>
+ </dict>
+
+ <!--
+ -- exynos boards
+ -->
+ <key>hardkernel,odroid-xu3</key>
+ <dict>
+ <key>description</key>
+ <string>Hardkernel Odroid XU3</string>
+ <key>u-boot-pkg</key>
+ <string>odroid-xu3</string>
+ </dict>
+
+ <!--
+ -- rockchip boards
+ -->
+ <key>pine64,rockpro64</key>
+ <dict>
+ <key>description</key>
+ <string>Pine64 RockPro64</string>
+ <key>u-boot-pkg</key>
+ <string>rockpro64</string>
+ </dict>
+
+ <!--
+ -- mediatek boards
+ -->
+ <key>bananapi,bpi-r2</key>
+ <dict>
+ <key>description</key>
+ <string>Bananapi BPI-R2</string>
+ <key>u-boot-pkg</key>
+ <string>bananapi-r2</string>
+ </dict>
+
+ <!--
+ -- nvidia boards
+ -->
+ <key>nvidia,jetson-tk1</key>
+ <dict>
+ <key>description</key>
+ <string>NVIDIA Tegra124 Jetson TK1</string>
+ <key>u-boot-pkg</key>
+ <string>jetson-tk1</string>
+ </dict>
+ <key>nvidia,p2371-2180</key>
+ <dict>
+ <key>description</key>
+ <string>NVIDIA Jetson TX1 Developer Kit</string>
+ <key>u-boot-pkg</key>
+ <string>jetson-tx1</string>
+ </dict>
+ <key>nvidia,p2771-0000</key>
+ <dict>
+ <key>description</key>
+ <string>NVIDIA Tegra186 P2771-0000 Development Board</string>
+ <key>u-boot-pkg</key>
+ <string>jetson-tx2</string>
+ </dict>
+
+ <!--
+ -- omap boards
+ -->
+ <key>ti,omap3-beagle</key>
+ <dict>
+ <key>description</key>
+ <string>TI OMAP3 BeagleBoard</string>
+ <key>u-boot-pkg</key>
+ <string>beagleboard</string>
+ </dict>
+ <key>ti,am335x-bone</key>
+ <dict>
+ <key>description</key>
+ <string>TI AM335x BeagleBone</string>
+ <key>u-boot-pkg</key>
+ <string>beaglebonewhite</string>
+ </dict>
+ <key>ti,am335x-bone-black</key>
+ <dict>
+ <key>description</key>
+ <string>TI AM335x BeagleBone Black</string>
+ <key>u-boot-pkg</key>
+ <string>beagleboneblack</string>
+ </dict>
+
+ <!--
+ -- sunxi boards
+ -->
+ <!-- Banana Pi-branded board "compatible" strings are a mess.
+ We will just keep them all together here. -->
+ <key>lemaker,bananapi</key>
+ <dict>
+ <key>description</key>
+ <string>LeMaker Banana Pi</string>
+ <key>u-boot-pkg</key>
+ <string>bananapi</string>
+ </dict>
+ <key>sinovoip,bpi-m3</key>
+ <dict>
+ <key>description</key>
+ <string>Banana Pi BPI-M3</string>
+ <key>u-boot-pkg</key>
+ <string>bananapi-m3</string>
+ </dict>
+
+ <key>cubietech,cubieboard2</key>
+ <dict>
+ <key>description</key>
+ <string>Cubietech Cubieboard2</string>
+ <key>u-boot-pkg</key>
+ <string>cubieboard2</string>
+ </dict>
+ <key>cubietech,a80-cubieboard4</key>
+ <dict>
+ <key>description</key>
+ <string>Cubietech Cubieboard4</string>
+ <key>u-boot-pkg</key>
+ <string>cubieboard4</string>
+ </dict>
+ <key>cubietech,cubietruck</key>
+ <dict>
+ <key>description</key>
+ <string>Cubietech Cubietruck</string>
+ <key>u-boot-pkg</key>
+ <string>cubietruck</string>
+ </dict>
+ <key>cubietech,cubietruck-plus</key>
+ <dict>
+ <key>description</key>
+ <string>Cubietech Cubietruck Plus</string>
+ <key>u-boot-pkg</key>
+ <string>cubietruck_plus</string>
+ </dict>
+
+ <key>friendlyarm,nanopi-m1</key>
+ <dict>
+ <key>description</key>
+ <string>FriendlyArm NanoPi M1</string>
+ <key>u-boot-pkg</key>
+ <string>nanopi-m1</string>
+ </dict>
+ <key>friendlyarm,nanopi-neo</key>
+ <dict>
+ <key>description</key>
+ <string>FriendlyARM NanoPi NEO</string>
+ <key>u-boot-pkg</key>
+ <string>nanopi-neo</string>
+ </dict>
+ <key>friendlyarm,nanopi-neo-plus2</key>
+ <dict>
+ <key>description</key>
+ <string>FriendlyARM NanoPi NEO Plus2</string>
+ <key>u-boot-pkg</key>
+ <string>nanopi-neo-plus2</string>
+ </dict>
+ <key>friendlyarm,nanopi-neo2</key>
+ <dict>
+ <key>description</key>
+ <string>FriendlyARM NanoPi NEO 2</string>
+ <key>u-boot-pkg</key>
+ <string>nanopi-neo2</string>
+ </dict>
+
+ <key>merrii,a31-hummingbird</key>
+ <dict>
Home |
Main Index |
Thread Index |
Old Index