Plan 9 from Bell Labs’s /usr/web/sources/contrib/stallion/u-boot/arndale/README

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


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

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to webmaster@9p.io.