| 
The binary pre-loader for Arndale (arndale-bl1.bin) was obtained from
the 12.12 Linaro relase: https://releases.linaro.org/archive/12.12/components/kernel/arndale-bl1/
and copied to /cfg/$sysname/data.
Das U-Boot (u-boot.bin and smdk5250-spl.bin) was built from source
using the final release for Arndale from the Samsung working team at
Linaro (samsung-lt-2013.07); see: http://git.linaro.org/landing-teams/working/samsung/u-boot.git/.
This version of U-Boot is quite old and is missing support for Plan 9
kernel images, which were merged to master after this release was
made.  The following commits should be cherry picked from the main
U-Boot git repository in order to add support for Plan 9 kernels:
	$ git add remote tracking https://gitlab.denx.de/u-boot/u-boot.git
	$ git fetch tracking
	$ git cherry-pick 04d414090c71f986b54838f791430fabaa57ca7c
	$ git cherry-pick eeaef5e4305497537bd47308724de39c7d6cbf19
These patches will need to be modified to account for changes in argc
and argv handling in cmd_bootm.c that were not yet made in the Samsung
repository.  To simplify building from source, a tracking repository
was created to track changes needed to boot Plan 9 on Arndale.
Due to the age of the release, an older version of GCC is required,
which can be obtained from: https://launchpad.net/gcc-arm-embedded/4.support9/4.9-2015-q3-update
and should be added to PATH.
Newer versions of Das U-Boot contain support for Arndale, however USB
ethernet appears to be broken.  I have not yet had the time to
investigate the issue further.
It should also be noted that the Samsung release does not define
loadaddr by default; this appears to be a bug given that it was
defined in previous releases.  This should be set to 0x42000000 in the
U-Boot environment prior to booting a kernel image; failure to do so
will result in a crash that is difficult to diagnose.
To build u-boot.bin and smdk5250-spl.bin from source, issue:
	$ git clone -b stallion/plan9-arndale --depth 1 [email protected]:tracking/u-boot-samsung-lt-2013.07.git && cd ...
	$ CROSS_COMPILE=arm-none-eabi- make -j8 arndale5250
Once finished, u-boot.bin and spl/smdk5250-spl.bin may then be copied
to /cfg/$sysname/data.
On first boot, autoboot should be interrupted and the following
commands issued to initialize the U-Boot environment:
	> env default -a
	> setenv confaddr 0x80000000
	> setenv loadaddr 0x42000000
	> setenv bootargs "console=2 b115200
	..."
	> setenv bootcmd "bootp; bootm"
	> saveenv
If loading configuration via TFTP (cf. /cfg/pxe) rather than bootargs
is desired, bootargs should remain unset and bootcmd adjusted as
follows:
	> setenv bootargs
	> setenv bootcmd "tftp $confaddr %C; bootp; bootm"
	> saveenv
If loading configuration via the FAT filesystem rather than bootargs
is desired, bootargs should remain unset and bootcmd adjusted as
follows:
	> setenv bootargs
	> setenv bootcmd "fatload mmc 0 $confaddr plan9.ini; bootp; bootm"
	> saveenv
Ater the environment has been saved, the system may then be booted
using the boot command or reset if autoboot is desired.
Steven Stallion
December 2019
 |