Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:13.1:Ports
JeOS-beagle
uboot-image-vexpress-setup
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File uboot-image-vexpress-setup of Package JeOS-beagle
#!/bin/bash set -x flavor=vexpress target=firstboot kerneladdr= ramdiskaddr= case $target in firstboot) conf=boot/boot.script binconf=boot/boot.scr kernel=boot/linux.vmx initrd=boot/initrd.uboot # the kernel command line is already prepopulated bootargs= ;; boot) hookName=$1 # name of hook script calling this code mountPrefix=$2 # mount path of the image destsPrefix=$3 # base dir for the config files unum=$4 # boot partition ID rdev=$5 # root partition ufix=$6 # title postfix swap=$7 # optional swap partition conf=$destsPrefix/boot/boot.script binconf=$destsPrefix/boot/boot.script #====================================== # make sure conf dir exists #-------------------------------------- mkdir -p $destsPrefix/boot #====================================== # check for device by ID #-------------------------------------- local diskByID=`getDiskID $rdev` local swapByID=`getDiskID $swap swap` #====================================== # check for system image .profile #-------------------------------------- if [ -f $mountPrefix/image/.profile ];then importFile < $mountPrefix/image/.profile fi #====================================== # check for kernel options #-------------------------------------- if [ ! -z "$kiwi_cmdline" ];then KIWI_KERNEL_OPTIONS="$KIWI_KERNEL_OPTIONS $kiwi_cmdline" fi # /.../ # On other systems which supports a boot menu we add # the linux kernel and initrd with its file names # like this: # # kernel=`echo $i | cut -f1 -d:` # initrd=`echo $i | cut -f2 -d:` # # But on arm systems there can only be one kernel because # uboot doesn't support a menu. Thus perl-bootloader also # doesn't support updating the uboot configuration and # that's the reason why we use the links created by # mkinitrd to point to the kernel and initrd in order # to support kernel updates # ---- kernel=uImage initrd=initrd # gather kernel command line bootargs="root=$diskByID loader=$loader" if [ "$imageDiskDevice" ];then bootargs="$bootargs disk=$(getDiskID $imageDiskDevice)" fi if [ "$swap" ];then bootargs="$bootargs resume=$swapByID" fi if [ "$haveLVM" = "yes" ];then bootargs="$bootargs VGROUP=$VGROUP" fi bootargs="$bootargs $KIWI_INITRD_PARAMS" bootargs="$bootargs $KIWI_KERNEL_OPTIONS" # start with a fresh config true > $conf ;; *) echo "Unknown target $target" >&2 exit 1 ;; esac bootdevs=mmc units="0" bootparts='${unit}:1' boottype=bootz setdev='mmc dev ${unit}' sizeprefix=0x case $flavor in beagle) # TODO: update u-boot to be able to use DT for beagle and check if nothing is missing kerneladdr=0x80200000 ramdiskaddr=0x81000000 # fdtaddr=0x80F80000 # should_use_fdt=1 # should_load_fdt=1 # fdtfile=call_findfdt ;; beaglebone) kerneladdr=0x80200000 ramdiskaddr=0x81000000 fdtaddr=0x80F80000 should_use_fdt=1 should_load_fdt=1 fdtfile=call_findfdt ;; panda) should_use_fdt=1 should_load_fdt=1 kerneladdr=0x80000000 ramdiskaddr=0x82000000 fdtaddr=0x80F80000 fdtfile=call_findfdt ;; highbank|midway) bootdevs=scsi should_use_fdt=1 setdev=1 # Highbank's u-boot already prepends 0x to the file size sizeprefix= # And calls the variable $fdt_addr rather than $fdtaddr use_fdt_addr=1 ;; cubox) boottype=bootm kerneladdr=0x2000000 ramdiskaddr=0x5000000 ;; melea1000|cubieboard) boottype=bootm kerneladdr=0x48000000 ramdiskaddr=0x43100000 should_load_fdt=1 fdtfile=$flavor.bin fdtaddr=0x43000000 ;; loco) kerneladdr=0x70800000 ramdiskaddr=0x7e000000 fdtaddr=0x7d800000 should_use_fdt=1 should_load_fdt=1 units="0 1" fdtfile=dtb/imx53-qsb.dtb ;; arndale) kerneladdr=0x40007000 ramdiskaddr=0x44000000 fdtaddr=0x42000000 boottype=bootm units="0 1" # 0: is internal memory or USB stick - 1: is SD card should_use_fdt=1 should_load_fdt=1 fdtfile=dtb/exynos5250-arndale.dtb ;; chromebook) kerneladdr=0x40007000 ramdiskaddr=0x44000000 fdtaddr=0x42000000 boottype=bootm bootdevs="mmc usb" units="0 1" # 0: is internal memory or USB stick - 1: is SD card bootparts='${unit}:2' should_use_fdt=1 should_load_fdt=1 fdtfile=dtb/exynos5250-snow.dtb ;; sabrelite) kerneladdr=0x10008000 ramdiskaddr=0x14000000 fdtaddr=0x12000000 bootdevs="mmc usb" units="0 1" # 0: is SD3 (bottom) slot - 1: is uSD4 (top) slot should_use_fdt=1 should_load_fdt=1 fdtfile=dtb/imx6q-sabrelite.dtb ;; esac # override zImage file names if [ $boottype = bootz -a $target = boot ]; then kernel=zImage fi initrd_high=0xffffffff fdt_high=0xffffffff # copy bash variables into boot script for variable in kernel initrd fdtfile flavor target bootargs bootdevs bootparts \ initrd_high fdt_high boottype kerneladdr ramdiskaddr should_use_fdt \ should_load_fdt fdtaddr setdev units sizeprefix use_fdt_addr; do value=$(eval "echo $(echo \$$variable)") # only set variables that contain data, leave the others alone if [ "$value" ]; then echo "setenv $variable '$value'" >> $conf fi done cat >> $conf <<-"EOF" printenv kerneladdr || setenv kerneladdr ${kernel_addr_r} printenv ramdiskaddr|| setenv ramdiskaddr ${ramdisk_addr_r} setenv load_kernel 'ext2load ${bootdev} ${bootpart} ${kerneladdr} ${kernel}' setenv load_initrd 'ext2load ${bootdev} ${bootpart} ${ramdiskaddr} ${initrd}; setenv rd_filesize ${sizeprefix}${filesize}' if itest 1${should_load_fdt} == 11; then if test 0${fdtfile} = 0call_findfdt; then run findfdt setenv fdtfile dtb/${fdtfile} fi setenv loadfdt 'ext2load ${bootdev} ${bootpart} ${fdtaddr} ${fdtfile}' else setenv loadfdt '' fi if itest 1${use_fdt_addr} == 11; then # Calxeda systems use $fdt_addr rather than $fdtaddr setenv fdtaddr $fdt_addr fi if itest 1${should_use_fdt} == 11; then setenv boot_kernel '${boottype} ${kerneladdr} ${ramdiskaddr}:${rd_filesize} ${fdtaddr}' else setenv boot_kernel '${boottype} ${kerneladdr} ${ramdiskaddr}:${rd_filesize}' fi setenv doit 'if run load_kernel; then; run load_initrd; run loadfdt; run boot_kernel; fi' setenv bootcmd 'for bootdev in ${bootdevs}; do for unit in ${units}; do setenv bootpart; for bootpart in ${bootparts}; do setenv fix_bootpart "setenv bootpart $bootpart"; run fix_bootpart; run setdev; run doit; done; done; done' boot EOF #========================================== # Create machine readable uboot format # (only during image creation) #------------------------------------------ if [ -x /usr/bin/mkimage -a "$target" = firstboot ];then mkopts="-A arm -O linux -a 0 -e 0 -T script -C none"; if ! mkimage $mkopts -n 'Boot-Script' -d $conf $binconf;then echo "Failed to create uboot script image" exit 1 fi fi #========================================== # install Cubieboard script.bin #------------------------------------------ if [ "$flavor" = "cubieboard" ]; then echo "installing Cubieboard bin" install -m 0644 /usr/share/sunxi-boards/a10/cubieboard.bin boot/cubieboard.bin fi set +x
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor