143 Commits

Author SHA1 Message Date
gnn
4f63d6859d Summary: Update CPU identification call to recent version. 2015-02-11 12:08:40 +00:00
ian
6f10ad7da9 Create a custom /boot/defaults/loader.conf for ARM. This differs from the
standard file in the following ways:

 - modules_path includes /boot/dtb
 - It doesn't contain 533 lines, of which 500 are either commented out,
   empty, or something_which_doesnt_work_on_arm_anyway=NO

The standard defaults file takes 40+ seconds to process on an arm beaglebone
board.  This one takes just a couple seconds.

This gets installed instead of the original because of the .PATH magic in
the makefile.
2015-01-03 19:38:37 +00:00
ian
7034229ae2 Convert a couple lingering NO_FORTH conditionals to test MK_FORTH. 2014-12-23 15:42:34 +00:00
andrew
2b36711b78 Start to allow platforms other than U-Boot to use the FDT code in loader by
moving U-Boot specific code from libfdt.a to a new libuboot_fdt.a. This
needs to be a new library for linking to work correctly.

Differential Revision:	https://reviews.freebsd.org/D1054
Reviewed by:	ian, rpaulo (earlier version)
MFC after:	1 week
2014-11-01 17:12:44 +00:00
andrew
d588d5723d Remove MK_ARM_EABI, the armeb issues have been fixed. The code to support
the oabi is still in the tree, but it is expected this will be removed
as developers work on surrounding code.

With this commit the ARM EABI is the only supported supported ABI by
FreeBSD on ARMa 32-bit processors.

X-MFC after:	never
Relnotes:	yes
Differential Revision: https://reviews.freebsd.org/D876
2014-10-01 08:26:51 +00:00
ian
6a8688d5d7 Add a 'ubenv import' command to import environment variables from the
u-boot env into the loader(8) env (which also gets them into the kernel
env).  You can import selected variables or the whole environment.  Each
u-boot var=value becomes uboot.var=value in the loader env.  You can also
use 'ubenv show' to display uboot vars without importing them.
2014-09-08 19:19:10 +00:00
ian
6005c78d7e Enable at91 systems to boot from high capacity SD cards.
This also fixes a few minor violations of the SD protocol, such as running
the bus at high speed during the card identification sequence.

The sdcard_init() routine now probes for SDHC cards so that later read
requests can make needed adjustments between block and byte offsets based
on card type.

There is a new MCI_readblocks() function that takes block number and block
count parameters instead of byte-offset values.  Using this routine, boot
loader code can load a kernel from any location on an SDHC or standard SD.

The old MCI_read() interface remains unchanged so that existing customized
boot loader code will still keep working without changes.  Using this
routine, boot loaders can load a kernel from anywhere in the first 4GB of
an SDHC card (or of course any location on a standard SD card).

A new sdcard_use4wire() routine allows boot loaders to request 4-bit
transfers; it should be called after sdcard_init().  The sdcard_init()
routine no longer assumes the hardware is 4-wire capable and by default
sets things up for 1-bit transfers.  (4-wire mode is unreliable on
at91rm9200, works on later SoCs.)

PR:		155894
Submitted by:	me.  years ago.
2014-07-26 04:16:04 +00:00
ian
f85cf0d80f The 'flags' variable is conflicting with some inline code in a header file
("variable flags shadows a global..."), just rename this variable to
wish away the problem.
2014-07-26 04:09:43 +00:00
ian
f6430fb275 Eliminate "no previous prototype for main" warnings. 2014-07-26 03:33:19 +00:00
ian
6a2c0ed123 Silence a clang warning about a while loop with an empty body. 2014-07-26 03:19:13 +00:00
imp
2118f42afd Use src.opts.mk in preference to bsd.own.mk except where we need stuff
from the latter.
2014-05-06 04:22:01 +00:00
imp
c39e6fc2c9 NO_MAN= has been deprecated in favor of MAN= for some time, go ahead
and finish the job. ncurses is now the only Makefile in the tree that
uses it since it wasn't a simple mechanical change, and will be
addressed in a future commit.
2014-04-13 05:21:56 +00:00
eadler
44c01df173 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
85b1d13bec 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
565b400ff2 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
f093c57980 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
kientzle
23ae153295 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
960738a3a8 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
f370876f88 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
kientzle
5eaca6e3c2 Provide verbose help for fdt commands on platforms that use it. 2013-02-11 02:15:26 +00:00
andrew
18658720df * 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
000e41994b Link against compiler-rt to pull in the required __aeabi_* functions 2013-01-19 22:12:57 +00:00
andrew
856bcc6178 Ignore a warning in ubldr where clang doesn't understand the %D printf
specifier from libstand.
2012-12-15 21:47:05 +00:00
ae
509888181a Handle LOADER_NO_DISK_SUPPORT knob in the arm and powerpc ubldr. 2012-09-09 11:40:37 +00:00
imp
73bbe8c584 Use the pin number rather than the hybrid pin number + name. 2012-07-15 05:35:14 +00:00
imp
16d0ba7941 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
imp
cb5c5cb359 Allow other SOCs to be compiled in, first step. 2012-07-07 04:51:59 +00:00
imp
0839518e33 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
kientzle
290c33a04a 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
2dc26af444 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
gber
6f7c735300 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
imp
4f44deacc1 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
imp
2aac3bff63 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
kientzle
2628ca3b8f Remove some redundant register loads.
Discussed on:		arm@
2012-05-02 05:49:58 +00:00
ed
8f4291328f 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
des
6bf8732384 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
thompsa
4570b00aad Allow ixp425 boot2 to compile after r219452 2011-10-04 00:15:40 +00:00
imp
a7436d1ca9 No need to list an obsolete arm compiler here. 2011-01-20 22:58:10 +00:00
imp
6d8a904d49 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
imp
a1764a48d9 We no longer need the OUTPUT_FORMAT line, so fix the build by removing it. 2010-11-15 19:05:09 +00:00
brucec
696c4e1f9b Fix typos.
PR:	bin/148894
Submitted by:	olgeni
2010-11-09 10:59:09 +00:00
imp
c3a399c4ba 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
imp
b0b888fbfe It turns out that the OUTPUT_FORMAT should do the right thing for both endians... 2010-08-23 01:37:55 +00:00
imp
93cda2aeda MF tbemd: differentiate between arm and armeb 2010-08-23 01:33:27 +00:00
raj
ac8e9a3b12 Fix conditional FDT support in loader(8). 2010-06-13 12:46:32 +00:00
raj
4dbde3c9b9 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
ticso
abd91545cc BWCT boards can have 128MB SDRAM. 2010-03-09 00:50:58 +00:00
ticso
b9434327f4 fix signed warning 2010-03-09 00:48:06 +00:00
sam
11d6f4bc0e 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
9b4882f3e4 merge WIP multi-board support; tested on Avila and Cambria, still
needs Proghorn testing
2008-12-13 02:56:08 +00:00