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 git@quuxotic.net: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
|