Commit Graph

131 Commits

Author SHA1 Message Date
Eitan Adler
7a22215c53 Fix undefined behavior: (1 << 31) is not defined as 1 is an int and this
shifts into the sign bit.  Instead use (1U << 31) which gets the
expected result.

This fix is not ideal as it assumes a 32 bit int, but does fix the issue
for most cases.

A similar change was made in OpenBSD.

Discussed with:	-arch, rdivacky
Reviewed by:	cperciva
2013-11-30 22:17:27 +00:00
Andrew Turner
299f9dc1a6 Recent versions of U-Boot require us to also backup and restore r9 for API
calls to work.
2013-11-24 20:33:38 +00:00
Andrew Turner
81f305d283 Always build ubldr as a soft-float binary as there is no support for VFP
this early on in the boot process.
2013-10-27 14:27:11 +00:00
Andrew Turner
ca49624410 Fix ixp425 boot2 with ARM EABI:
- libkern is missing __aeabi_llsl, implement this by calling __ashldi3.
 - Because of how the asm entry macros are defined the boot2 code
   requires the unwind symbols to exist, include them in boot2.

Approved by:	re (marius)
2013-09-29 15:19:34 +00:00
Tim Kientzle
183abe44fa Install Forth infrastructure along with ubldr.
Note:  loader.rc is installed as loader.rc.sample
so that by default, none of this is actually used.
2013-07-27 18:18:46 +00:00
Tijl Coosemans
53089271a1 Convert old make variable modifiers :U and :L to bmake :tu and :tl.
Reviewed by:	sjg
2013-06-02 11:44:23 +00:00
Ian Lepore
6fb87f7371 When running on armv6, set alignment checking to modulo-4 mode rather
than modulo-8, because clang emits ldrd and strd instructions for
addresses that are only 4-byte aligned
2013-03-31 22:43:16 +00:00
Tim Kientzle
53d21f0bbe Provide verbose help for fdt commands on platforms that use it. 2013-02-11 02:15:26 +00:00
Andrew Turner
f892543501 * Add the integer div & mod functions and ARM EABI support functions to
libstand.
* Stop linking the ARM U-Boot loader against libgcc now libstand has the
  required symbols.
2013-02-05 20:03:58 +00:00
Andrew Turner
6c71f24345 Link against compiler-rt to pull in the required __aeabi_* functions 2013-01-19 22:12:57 +00:00
Andrew Turner
d39894842b Ignore a warning in ubldr where clang doesn't understand the %D printf
specifier from libstand.
2012-12-15 21:47:05 +00:00
Andrey V. Elsukov
da1d05228c Handle LOADER_NO_DISK_SUPPORT knob in the arm and powerpc ubldr. 2012-09-09 11:40:37 +00:00
Warner Losh
15fda8888a Use the pin number rather than the hybrid pin number + name. 2012-07-15 05:35:14 +00:00
Warner Losh
51763c6303 Generalize this for loading the loader into the SPI. Plus trim about
100 bytes from the binary with silly tricks.  Hope to get this small
enough to run on the models that have 4k SRAM.  We are close compiled
for the at91rm9200, but still need to trim for the target.
2012-07-07 04:55:42 +00:00
Warner Losh
1d4fae3825 Allow other SOCs to be compiled in, first step. 2012-07-07 04:51:59 +00:00
Warner Losh
c4a9bff135 Strip out the useless junk. All we really care about is the text,
data and bss sections.  All the rest is needed for normal binaries,
but boot loaders aren't normal.
2012-07-07 04:49:53 +00:00
Tim Kientzle
81174e7872 Allow the load address used by ARM ubldr to be set via Make argument.
In particular, this simplifies scripts that build system
images.
2012-05-27 16:27:04 +00:00
Gleb Kurtsou
491a40587d Use 32-bit ufs_ino_t instead of ino_t to keep boot2 small and prevent
unnecessary 64-bit math on 32-bit machines.

Sponsored by:	Google Summer of Code 2011
2012-05-25 09:36:39 +00:00
Grzegorz Bernacki
7f725bcd5c Import work done under project/nand (@235533) into head.
The NAND Flash environment consists of several distinct components:
  - NAND framework (drivers harness for NAND controllers and NAND chips)
  - NAND simulator (NANDsim)
  - NAND file system (NAND FS)
  - Companion tools and utilities
  - Documentation (manual pages)

This work is still experimental. Please use with caution.

Obtained from: Semihalf
Supported by:  FreeBSD Foundation, Juniper Networks
2012-05-17 10:11:18 +00:00
Warner Losh
498131c705 Add support for passing in the board ID.
# This doesn't implement the full Linux boot ABI for arm yet.
# since there's no ATAGs list passed in for r2, and r0 has
# boot options rather than 0 as specified in the standard.
# Commited code to the tree won't touch any of this anyway, but
# future code may be able to use this.
2012-05-11 14:45:29 +00:00
Warner Losh
9434786e88 Hack to unbreak boot2 for at91rm9200 boot loader. When the at91sam
code came in, it moved things around which wound up breaking the
build.  We have to do this bit of a hack to avoid duplication of a lot
of #defines.
2012-05-11 14:40:25 +00:00
Tim Kientzle
e56440a696 Remove some redundant register loads.
Discussed on:		arm@
2012-05-02 05:49:58 +00:00
Ed Schouten
75da3c1a9b Replace inline static' by static inline'.
If I interpret the C standard correctly, the storage specifier should be
placed before the inline keyword. While at it, replace __inline by
inline in the files affected.
2011-12-13 14:06:01 +00:00
Dag-Erling Smørgrav
0f8284dd89 Look for /boot/config in addition to /boot.config, with the former taking
precedence over the latter if it exists.

MFC after:	3 weeks
2011-10-18 09:46:52 +00:00
Andrew Thompson
1ed7864a7d Allow ixp425 boot2 to compile after r219452 2011-10-04 00:15:40 +00:00
Warner Losh
87c44314f9 No need to list an obsolete arm compiler here. 2011-01-20 22:58:10 +00:00
Warner Losh
22236d5f21 Don't need __DYNAMIC here. it is commented out and a.out only -- these are all ELF. 2011-01-20 19:26:28 +00:00
Warner Losh
e793a7b7d2 We no longer need the OUTPUT_FORMAT line, so fix the build by removing it. 2010-11-15 19:05:09 +00:00
Rebecca Cran
b1ce21c6ef Fix typos.
PR:	bin/148894
Submitted by:	olgeni
2010-11-09 10:59:09 +00:00
Warner Losh
25faff346c MFtbemd:
Prefer MACHNE_CPUARCH to MACHINE_ARCH in most contexts where you want
to test of all the CPUs of a given family conform.
2010-08-23 22:24:11 +00:00
Warner Losh
e8120f3d4e It turns out that the OUTPUT_FORMAT should do the right thing for both endians... 2010-08-23 01:37:55 +00:00
Warner Losh
ee0b65d9d0 MF tbemd: differentiate between arm and armeb 2010-08-23 01:33:27 +00:00
Rafal Jaworowski
29d268b567 Fix conditional FDT support in loader(8). 2010-06-13 12:46:32 +00:00
Rafal Jaworowski
04cb90189b Initial loader(8) support for Flattened Device Tree.
o This is disabled by default for now, and can be enabled using WITH_FDT at
  build time.

o Tested with ARM and PowerPC.

Reviewed by:	imp
Sponsored by:	The FreeBSD Foundation
2010-05-25 15:21:39 +00:00
Bernd Walter
45c6af8938 BWCT boards can have 128MB SDRAM. 2010-03-09 00:50:58 +00:00
Bernd Walter
1dca0648c7 fix signed warning 2010-03-09 00:48:06 +00:00
Sam Leffler
656c23db6e add delays around 16-bit enable/disable a la the driver; w/o this
operation on my ixp435 Cambria board is unreliable
2008-12-19 00:56:47 +00:00
Sam Leffler
4173c22644 merge WIP multi-board support; tested on Avila and Cambria, still
needs Proghorn testing
2008-12-13 02:56:08 +00:00
Rafal Jaworowski
8504549387 Let ARM loader(8) build with the man page. 2008-11-27 16:53:01 +00:00
Rafal Jaworowski
11cdd0c0c2 Initial storage functionality for U-Boot support library.
- Only non-sliced bsdlabel style partitioning is currently supported (but provisions
  are made towards GPT support, which should follow soon)
- Enable storage support in loader on ARM

Obtained from:	Semihalf
2008-11-19 17:34:28 +00:00
Rafal Jaworowski
0ed948780c Initial support of loader(8) for ARM machines running U-Boot.
This uses the common U-Boot support lib (sys/boot/uboot, already used on
FreeBSD/powerpc), and assumes the underlying firmware has the modern API for
stand-alone apps enabled in the config (CONFIG_API).

Only netbooting is supported at the moment.

Obtained from:	Marvell, Semihalf
2008-10-14 10:11:14 +00:00
Warner Losh
63b90047fc More diff reductions against ixp425/boot2/boot2.c. This time, we
bring in FIXUP_BOOT_DRV functionality as an #ifdef.  This is not
enabled at this time, and the md5 remains constant with this change.
Apart from the 'accept any partitioning scheme on the device' changes,
this was the biggest delta...

# and yes, we'll merge these into one source file if we can do that in a
# way that makes sense.

Obtained from:	sys/boot/arm/ixp425/boot2/boot2.c
2008-10-07 17:44:04 +00:00
Warner Losh
d7798997d7 Diff reduction with boot/arm/at91/boot2/boot2.c: indent this statement
correctly.
2008-10-07 17:27:37 +00:00
Sam Leffler
6497012386 don't hardcode cc
Submitted by:	Andrey Eltsov
2008-10-07 16:39:17 +00:00
John Hay
563db8c39c Add a boot loader for ixp425 based boards like the Gateworks Avila
and ADI Pronghorn Metro with Redboot on them.
2008-10-06 19:38:10 +00:00
Warner Losh
8af5ac823c Bring in the trivial differences between this code and John Hay's new
code.  Added a copyright for the work I did to this file a couple of
years ago.  Add John's copyright too, since I'm sure I'll be pulling
more into this code.  This also implements a new -n option to not
allow breaking into the boot sequence which was original in the patch
John posted (not in the original i386 code I based this boot2.c on,
only the name is the same).  I haven't checked to see if he did that,
or if it was one of Sam's improvements.

Submitted by:	jhay@
2008-10-05 23:59:52 +00:00
Warner Losh
6f07042ef4 Remove XMODEM_DL support. It never was complete and only serves to
increase the diffs with other arm boot2 loaders.
2008-10-05 23:39:28 +00:00
Warner Losh
06afbca3c8 Indent with 8-space tabs. This reduces the diffs to the newer ixp425
boot2 and may make it easier to merge these files in the future...
2008-10-05 23:37:03 +00:00
Ruslan Ermilov
042df2e2da Enable GCC stack protection (aka Propolice) for userland:
- It is opt-out for now so as to give it maximum testing, but it may be
  turned opt-in for stable branches depending on the consensus.  You
  can turn it off with WITHOUT_SSP.
- WITHOUT_SSP was previously used to disable the build of GNU libssp.
  It is harmless to steal the knob as SSP symbols have been provided
  by libc for a long time, GNU libssp should not have been much used.
- SSP is disabled in a few corners such as system bootstrap programs
  (sys/boot), process bootstrap code (rtld, csu) and SSP symbols themselves.
- It should be safe to use -fstack-protector-all to build world, however
  libc will be automatically downgraded to -fstack-protector because it
  breaks rtld otherwise.
- This option is unavailable on ia64.

Enable GCC stack protection (aka Propolice) for kernel:
- It is opt-out for now so as to give it maximum testing.
- Do not compile your kernel with -fstack-protector-all, it won't work.

Submitted by:	Jeremie Le Hen <jeremie@le-hen.org>
2008-06-25 21:33:28 +00:00
Bernd Walter
36782b8ef3 - remove code from oroginal file, which is not required on BWCT boards
- Be more chatty on startup, since we have enough code space on
  AT91RM9200
- init DS1672 charging
- init USART GPIO
2007-12-23 14:57:35 +00:00