sonic-buildimage/platform/marvell-arm64/platform.conf
Pavan-Nokia f10220d428
[Nokia-7215-A1][arm64]Update platform init files (#18266)
Why I did it
Update Nokia-7215-A1 platform to address UT and OC test failures.
Update platform init and build files

Microsoft ADO: 27111894

How I did it
Identify failed test cases from OC run on arm64-nokia_ixs7215_52xb-r0 (Nokia-7215-A1) platform and fix bugs

How to verify it
Build a Marvell-arm64 target for Nokia-7215-A1

Run this image on arm64-nokia_ixs7215_52xb-r0 and verify all dockers are up and test basic commands like:

show version
show platform summary
show platform syseeprom
show platform fan
show platform psustatus
show platform firmware status
show platform temperature
show platform ssdhealth
Verify ports are up using "show interface status" command

Run unit tests and OC test cases.
2024-03-08 08:53:46 -08:00

249 lines
8.6 KiB
Plaintext

# Copyright (C) Marvell Inc
# over ride default behaviour
echo "Preparing for installation ... "
# global defines
VAR_LOG=512
UBOOT_FW_DEFAULT=1
kernel_addr=0x1100000
kernel_version=6.1.0-11-2-arm64
kernel_fname="/boot/vmlinuz-$kernel_version"
initrd_fname="/boot/initrd.img-$kernel_version"
fit_fname="/boot/sonic_arm64.fit"
demo_volume_label=SONiC-OS
# global mount defines
demo_mnt=/tmp
if [ "$install_env" = "onie" ]; then
MACH_FILE="/etc/machine.conf"
else
MACH_FILE="/host/machine.conf"
fi
PLATFORM=`sed -n 's/^onie_platform=\(.*\)/\1/p' $MACH_FILE`
echo "Intalling SONiC from $install_env on Platform $PLATFORM"
PLATFORM_AC5X=0
PLATFORM_CN9131=0
case $PLATFORM in
arm64-nokia_ixs7215_52xb-r0) PLATFORM_7215_A1=1;
fdt_fname="/usr/lib/linux-image-${kernel_version}/marvell/7215-ixs-a1.dtb";
fit_conf_name="#conf_7215_a1";;
arm64-marvell_rd98DX35xx-r0) PLATFORM_AC5X=1;
fdt_fname="/usr/lib/linux-image-$kernel_version/marvell/ac5-98dx35xx-rd.dtb";
fit_conf_name="#conf_ac5x";;
arm64-marvell_rd98DX35xx_cn9131-r0) PLATFORM_CN9131=1;
fdt_fname="/boot/cn9131-db-comexpress.dtb";
fit_conf_name="#conf_cn9131";;
esac
if [ $PLATFORM_AC5X -eq 1 ]; then
fdt_addr=0x201000000
fit_addr=0x210000000
initrd_addr=0x206000000
FW_ENV_DEFAULT='/dev/mtd0 0x400000 0x10000 0x10000'
demo_part=2
mmc_bus="mmc0:0001"
elif [ $PLATFORM_7215_A1 -eq 1 ]; then
fit_addr=0x20000000
VAR_LOG=4096
FW_ENV_DEFAULT='/dev/mtd1 0x0 0x10000 0x10000'
demo_part=2
mmc_bus="mmc0:0001"
elif [ $PLATFORM_CN9131 -eq 1 ]; then
fdt_addr=0x1000000
fit_addr=0x8000000
initrd_addr=0x2000000
demo_part=2
FW_ENV_DEFAULT='/dev/mtd1 0x1F0000 0x10000 0x10000'
mmc_bus="mmc0:0001"
else
fdt_addr=0x1000000
fit_addr=0x8000000
initrd_addr=0x2000000
fdt_fname="/usr/lib/linux-image-$kernel_version/marvell/armada-7020-comexpress.dtb"
FW_ENV_DEFAULT='/dev/mtd1 0x0 0x10000 0x100000'
demo_part=1
mmc_bus="mmc0:aaaa"
fi
# Skip VID Header in UBIFS
LINUX_MISC_CMD='apparmor=1 security=apparmor usbcore.autosuspend=-1'
#Get block device
#Default block device is eMMC, if not look for usb storage
get_install_device()
{
for i in 0 1 2 ; do
if $(ls -l /sys/block/mmcblk$i/device 2>/dev/null | grep -q "$mmc_bus") ; then
echo "/dev/mmcblk$i"
blk_dev=/dev/mmcblk$i
echo "Selected mmc $blk_dev"
return 0
fi
done
echo "ERROR storage not found"
return 1
}
get_install_device
if [ $? -ne 0 ]; then
echo "Error: Unable to detect $blk_dev $demo_dev"
exit 1
fi
demo_dev=${blk_dev}p${demo_part}
remove_dev_partitions() {
echo "Remove all existing partitions starting partnum: ${demo_part} from ${blk_dev}"
local dev_to_install=${blk_dev}p
for p in $(seq ${demo_part} 9) ; do
if [[ -e ${dev_to_install}${p} ]]; then
echo "Removing partition ${dev_to_install}${p}"
sgdisk -d ${p} ${blk_dev} || true
fi
done
partprobe ${blk_dev}
}
create_demo_partition() {
# SD CARD
remove_dev_partitions
# Create sonic partition
sgdisk --new ${demo_part}:: \
--change-name=${demo_part}:${demo_volume_label} \
--typecode=${demo_part}:8300 -p ${blk_dev}
partprobe
}
create_partition() {
get_install_device
if [ $? -ne 0 ]; then
echo "Error: Unable to detect $blk_dev $demo_dev"
exit 1
fi
# Platform specific partition
create_demo_partition
}
mount_partition() {
# Make filesystem
echo "demo label: $demo_volume_label. $demo_dev..."
mkfs.ext4 -L $demo_volume_label $demo_dev
mount -t ext4 -o defaults,rw $demo_dev $demo_mnt || {
echo "Error: Unable to mount $demo_dev on $demo_mnt"
exit 1
}
}
prepare_boot_menu() {
echo "Sync up cache ..."
sync
echo "Setting up U-Boot environment..."
DTB_HAS_ENV_BLK=$(grep uboot-env /proc/mtd | sed -e 's/:.*$//')
if [ -c "/dev/$DTB_HAS_ENV_BLK" ]; then
PROC_ENV_FILE=$(find /proc/device-tree/ -name env_size)
if [ -n "$PROC_ENV_FILE" ]
then
UBOOT_ENV_SIZ="0x$(hd $PROC_ENV_FILE | awk 'FNR==1 {print $2 $3 $4 $5}')"
UBOOT_ENV_ERASE_SIZ="0x$(grep uboot-env /proc/mtd | awk '{print $3}')"
if [[ -n "$UBOOT_ENV_SIZ" && -n "$UBOOT_ENV_ERASE_SIZ" ]]
then
# Env info from DTB
FW_ENV_DTB="/dev/$DTB_HAS_ENV_BLK 0x00000000 $UBOOT_ENV_SIZ $UBOOT_ENV_ERASE_SIZ"
fi
fi
fi
if [ $UBOOT_FW_DEFAULT -eq 1 ]
then
echo $FW_ENV_DEFAULT > /etc/fw_env.config
echo "Using pre-configured uboot env"
fi
image_name=${image_dir}${kernel_fname}
initrd_name=${image_dir}${initrd_fname}
fdt_name=${image_dir}${fdt_fname}
fit_name=${image_dir}${fit_fname}
if [ "$install_env" = "onie" ]; then
FW_ARG="-f"
image_dir_old=""
image_name_old=""
initrd_name_old=""
fdt_name_old=""
fit_name_old=""
sonic_version_2="None"
else
image_dir_old=$(fw_printenv -n image_dir || true)
image_name_old=$(fw_printenv -n image_name || true)
initrd_name_old=$(fw_printenv -n initrd_name || true)
fdt_name_old=$(fw_printenv -n fdt_name || true)
fit_name_old=$(fw_printenv -n fit_name || true)
sonic_version_2=$(fw_printenv -n sonic_version_1 || true)
fi
# Set boot variables
fw_setenv ${FW_ARG} image_dir $image_dir > /dev/null
fw_setenv ${FW_ARG} image_name $image_name > /dev/null
fw_setenv ${FW_ARG} initrd_name $initrd_name > /dev/null
fw_setenv ${FW_ARG} fdt_name $fdt_name > /dev/null
fw_setenv ${FW_ARG} fit_name $fit_name > /dev/null
fw_setenv ${FW_ARG} sonic_version_1 $demo_volume_revision_label > /dev/null
fw_setenv ${FW_ARG} image_dir_old $image_dir_old > /dev/null
fw_setenv ${FW_ARG} image_name_old $image_name_old > /dev/null
fw_setenv ${FW_ARG} initrd_name_old $initrd_name_old > /dev/null
fw_setenv ${FW_ARG} fdt_name_old $fdt_name_old > /dev/null
fw_setenv ${FW_ARG} fit_name_old $fit_name_old > /dev/null
fw_setenv ${FW_ARG} sonic_version_2 $sonic_version_2 > /dev/null
BOOT1='echo " > Boot1: $sonic_version_1 - run sonic_image_1";echo;'
BOOT2='echo " > Boot2: $sonic_version_2 - run sonic_image_2";echo;'
BOOT3='echo " > Boot3: ONIE - run onie_boot";echo;'
BORDER='echo "---------------------------------------------------";echo;'
fw_setenv ${FW_ARG} print_menu $BORDER $BOOT1 $BOOT2 $BOOT3 $BORDER > /dev/null
fw_setenv ${FW_ARG} linuxargs "net.ifnames=0 loopfstype=squashfs loop=$image_dir/$FILESYSTEM_SQUASHFS systemd.unified_cgroup_hierarchy=0 varlog_size=$VAR_LOG ${ONIE_PLATFORM_EXTRA_CMDLINE_LINUX}" > /dev/null
fw_setenv ${FW_ARG} linuxargs_old "net.ifnames=0 loopfstype=squashfs loop=$image_dir_old/$FILESYSTEM_SQUASHFS systemd.unified_cgroup_hierarchy=0 varlog_size=$VAR_LOG ${ONIE_PLATFORM_EXTRA_CMDLINE_LINUX}" > /dev/null
sonic_bootargs_old='setenv bootargs root='$demo_dev' rw rootwait rootfstype=ext4 panic=1 console=ttyS0,${baudrate} ${othbootargs} ${mtdparts} ${linuxargs_old}'
fw_setenv ${FW_ARG} sonic_bootargs_old $sonic_bootargs_old > /dev/null || true
sonic_boot_load_old=$(fw_printenv -n sonic_boot_load || true)
old_str="_old"
fw_setenv ${FW_ARG} sonic_boot_load_old "$sonic_boot_load_old$old_str" > /dev/null || true
fw_setenv ${FW_ARG} kernel_addr $kernel_addr > /dev/null
fw_setenv ${FW_ARG} fdt_addr $fdt_addr > /dev/null
fw_setenv ${FW_ARG} fit_addr $fit_addr > /dev/null
fw_setenv ${FW_ARG} fit_conf_name $fit_conf_name > /dev/null
fw_setenv ${FW_ARG} initrd_addr $initrd_addr > /dev/null
MMC_LOAD='ext4load mmc 0:'$demo_part' $fit_addr $fit_name'
fw_setenv ${FW_ARG} sonic_boot_load "$MMC_LOAD" > /dev/null
SONIC_BOOT_CMD='run sonic_bootargs; run sonic_boot_load; bootm $fit_addr${fit_conf_name}'
SONIC_BOOT_CMD_OLD='run sonic_bootargs_old; run sonic_boot_load_old; bootm $fit_addr${fit_conf_name}'
BOOTARGS='setenv bootargs root='$demo_dev' rw rootwait rootfstype=ext4 panic=1 console=ttyS0,${baudrate} ${othbootargs} ${mtdparts} ${linuxargs}'
fw_setenv ${FW_ARG} sonic_bootargs $BOOTARGS > /dev/null
fw_setenv ${FW_ARG} sonic_bootcmd $SONIC_BOOT_CMD > /dev/null
fw_setenv ${FW_ARG} sonic_image_2 $SONIC_BOOT_CMD_OLD > /dev/null
fw_setenv ${FW_ARG} sonic_image_1 "$SONIC_BOOT_CMD" > /dev/null
fw_setenv ${FW_ARG} boot_next 'run sonic_image_1'> /dev/null
fw_setenv ${FW_ARG} bootcmd 'run print_menu; usb start; test -n "$boot_once" && run boot_once; run boot_next' > /dev/null
}
bootloader_menu_config() {
# Update uboot Environment
prepare_boot_menu
}