forked from sonic-net/sonic-buildimage
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Platform] ARM64 support for Marvell ARM platform (sonic-net#4043)
[Makefile] Fix for multi docker issue on 19 version above Signed-off-by: Antony Rheneus <[email protected]>
- Loading branch information
1 parent
70e8c5e
commit fd6df31
Showing
15 changed files
with
395 additions
and
56 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,18 @@ | ||
#!/bin/sh | ||
|
||
# Copyright (C) 2014,2015 Curt Brune <[email protected]> | ||
# Copyright (C) 2015 david_yang <[email protected]> | ||
# Copyright (C) Marvell Inc | ||
# | ||
# SPDX-License-Identifier: GPL-2.0 | ||
|
||
_trap_push() { | ||
local next="$1" | ||
eval "trap_push() { | ||
local oldcmd='$(echo "$next" | sed -e s/\'/\'\\\\\'\'/g)' | ||
local newcmd=\"\$1; \$oldcmd\" | ||
trap -- \"\$newcmd\" EXIT INT TERM HUP | ||
_trap_push \"\$newcmd\" | ||
}" | ||
} | ||
_trap_push true | ||
|
||
set -e | ||
|
||
|
@@ -28,35 +37,124 @@ if [ -r ./onie-image-arm64.conf ]; then | |
. ./onie-image-arm64.conf | ||
fi | ||
|
||
echo "ONIE Installer: platform: $platform" | ||
|
||
echo "Installer: platform: $platform" | ||
# Make sure run as root or under 'sudo' | ||
if [ $(id -u) -ne 0 ] | ||
then echo "Please run as root" | ||
exit 1 | ||
fi | ||
|
||
install_uimage() { | ||
echo "Copying uImage to NOR flash:" | ||
flashcp -v demo-${platform}.itb $mtd_dev | ||
} | ||
if [ -r /etc/machine.conf ]; then | ||
. /etc/machine.conf | ||
elif [ -r /host/machine.conf ]; then | ||
. /host/machine.conf | ||
elif [ "$install_env" != "build" ]; then | ||
echo "cannot find machine.conf" | ||
exit 1 | ||
fi | ||
|
||
echo "onie_platform: $onie_platform" | ||
|
||
# Get platform specific linux kernel command line arguments | ||
ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="" | ||
|
||
# Default var/log device size in MB | ||
VAR_LOG_SIZE=4096 | ||
|
||
[ -r platforms/$onie_platform ] && . platforms/$onie_platform | ||
|
||
|
||
# If running in ONIE | ||
if [ "$install_env" = "onie" ]; then | ||
# The onie bin tool prefix | ||
onie_bin= | ||
# The persistent ONIE directory location | ||
onie_root_dir=/mnt/onie-boot/onie | ||
# The onie file system root | ||
onie_initrd_tmp=/ | ||
fi | ||
|
||
# The build system prepares this script by replacing %%DEMO-TYPE%% | ||
# with "OS" or "DIAG". | ||
demo_type="%%DEMO_TYPE%%" | ||
|
||
# The build system prepares this script by replacing %%IMAGE_VERSION%% | ||
# with git revision hash as a version identifier | ||
image_version="%%IMAGE_VERSION%%" | ||
timestamp="$(date -u +%Y%m%d)" | ||
|
||
demo_volume_label="SONiC-${demo_type}" | ||
demo_volume_revision_label="SONiC-${demo_type}-${image_version}" | ||
|
||
hw_load() { | ||
echo "cp.b $img_start \$loadaddr $img_sz" | ||
} | ||
|
||
. ./platform.conf | ||
|
||
install_uimage | ||
image_dir="image-$image_version" | ||
|
||
if [ "$install_env" = "onie" ]; then | ||
# Create/format the flash | ||
create_partition | ||
mount_partition | ||
elif [ "$install_env" = "sonic" ]; then | ||
demo_mnt="/host" | ||
eval running_sonic_revision=$(cat /etc/sonic/sonic_version.yml | grep build_version | cut -f2 -d" ") | ||
# Prevent installing existing SONiC if it is running | ||
if [ "$image_dir" = "image-$running_sonic_revision" ]; then | ||
echo "Not installing SONiC version $running_sonic_revision, as current running SONiC has the same version" | ||
exit 0 | ||
fi | ||
# Remove extra SONiC images if any | ||
for f in $demo_mnt/image-* ; do | ||
if [ -d $f ] && [ "$f" != "$demo_mnt/image-$running_sonic_revision" ] && [ "$f" != "$demo_mnt/$image_dir" ]; then | ||
echo "Removing old SONiC installation $f" | ||
rm -rf $f | ||
fi | ||
done | ||
fi | ||
|
||
hw_load_str="$(hw_load)" | ||
# Create target directory or clean it up if exists | ||
if [ -d $demo_mnt/$image_dir ]; then | ||
echo "Directory $demo_mnt/$image_dir/ already exists. Cleaning up..." | ||
rm -rf $demo_mnt/$image_dir/* | ||
else | ||
mkdir $demo_mnt/$image_dir || { | ||
echo "Error: Unable to create SONiC directory" | ||
exit 1 | ||
} | ||
fi | ||
|
||
echo "Updating U-Boot environment variables" | ||
(cat <<EOF | ||
hw_load $hw_load_str | ||
copy_img echo "Loading Demo $platform image..." && run hw_load | ||
nos_bootcmd run copy_img && setenv bootargs quiet console=\$consoledev,\$baudrate && bootm \$loadaddr | ||
EOF | ||
) > /tmp/env.txt | ||
# Decompress the file for the file system directly to the partition | ||
if [ x"$docker_inram" = x"on" ]; then | ||
# when disk is small, keep dockerfs.tar.gz in disk, expand it into ramfs during initrd | ||
unzip -o $ONIE_INSTALLER_PAYLOAD -d $demo_mnt/$image_dir | ||
else | ||
unzip -o $ONIE_INSTALLER_PAYLOAD -x "$FILESYSTEM_DOCKERFS" -d $demo_mnt/$image_dir | ||
|
||
if [ "$install_env" = "onie" ]; then | ||
TAR_EXTRA_OPTION="--numeric-owner" | ||
else | ||
TAR_EXTRA_OPTION="--numeric-owner --warning=no-timestamp" | ||
fi | ||
mkdir -p $demo_mnt/$image_dir/$DOCKERFS_DIR | ||
unzip -op $ONIE_INSTALLER_PAYLOAD "$FILESYSTEM_DOCKERFS" | tar xz $TAR_EXTRA_OPTION -f - -C $demo_mnt/$image_dir/$DOCKERFS_DIR | ||
fi | ||
|
||
fw_setenv -f -s /tmp/env.txt | ||
|
||
cd / | ||
if [ "$install_env" = "onie" ]; then | ||
# Store machine description in target file system | ||
if [ -f /etc/machine-build.conf ]; then | ||
# onie_ variable are generate at runtime. | ||
# they are no longer hardcoded in /etc/machine.conf | ||
# also remove single quotes around the value | ||
set | grep ^onie | sed -e "s/='/=/" -e "s/'$//" > $demo_mnt/machine.conf | ||
else | ||
cp /etc/machine.conf $demo_mnt | ||
fi | ||
fi | ||
|
||
# Update Bootloader Menu with installed image | ||
bootloader_menu_config | ||
|
||
# Set NOS mode if available. For manufacturing diag installers, you | ||
# probably want to skip this step so that the system remains in ONIE | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,7 @@ | ||
# linux kernel package for marvell arm64 | ||
|
||
KVERSION = 4.9.168 | ||
|
||
|
||
LINUX_KERNEL = linux-image-4.9.168-arm64.deb | ||
export LINUX_KERNEL | ||
|
||
$(LINUX_KERNEL)_SRC_PATH = $(PLATFORM_PATH)/linux | ||
SONIC_MAKE_DEBS += $(LINUX_KERNEL) | ||
# Add platform specific DTB | ||
LINUX_KERNEL_DTB = linux-image-4.9.168-arm64.deb | ||
$(LINUX_KERNEL_DTB)_URL = https://github.com/Marvell-switching/sonic-marvell-binaries/raw/master/arm64/kernel/$(LINUX_KERNEL_DTB) | ||
SONIC_ONLINE_DEBS += $(LINUX_KERNEL_DTB) | ||
SONIC_STRETCH_DEBS += $(LINUX_KERNEL_DTB) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.