Commit Graph

2722 Commits

Author SHA1 Message Date
loos
3af2305e23 Adds the ADC driver for TI AM3xxx SoC family.
The ADC has a 12bit resolution and its raw output can be read via sysctl(8)
interface.

The driver allows the setup of ADC clock, samples average and open delay
(the number of clock cycles to wait before start the conversion).

The TSC_ADC module is set in the general purpose mode (no touchscreen
support).

Tested on Beaglebone-black.

Written based on AM335x TRM.

Reviewed by:	rpaulo
Approved by:	adrian (mentor)
Tested by:	me, Brian J. McGovern, Sulev-Madis Silber (ketas)
2014-03-24 20:06:27 +00:00
bz
6c25bbf931 For the moment also disable interrupts on the altera-jtag-uart imitation
and force polling mode.
2014-03-23 20:35:58 +00:00
bz
260ba47599 For BERI on NetFPGA assume HZ=100 by default.
Remove the uart support in favour of a "jtag-uart" interface imitation
providing a much simpler interface, directly exported to the host,
allowing the toolchain to be shared with BERI on Altera. [1]

Submitted by:	Jong Hun HAN (jong.han cl.cam.ac.uk) [1]
MFC after:	2 weeks
2014-03-22 13:06:32 +00:00
ae
5c8976a1c1 When loader(8) inspects MBR, it chooses GPT as main partition table,
when MBR contains only PMBR entry or it is bootcamp-compatible.
If MBR has PMBR entry and some other, the loader rejects it.

Make these checks to be less strict. If loader decided that PMBR
isn't suitable for GPT, it will use MBR.

Reported by:	Paul Thornton
Tested by:	Paul Thornton
MFC after:	1 week
2014-03-21 09:29:01 +00:00
br
8708435e96 Add support for Samsung Chromebook (ARM Cortex A15 machine). 2014-03-20 17:10:01 +00:00
br
ef1ba07d1c - Add display-related and clk devices to the tree
- Prevent resources intersection with EHCI driver
2014-03-20 17:03:44 +00:00
ian
dcb2ac3517 Cosmetic changes to printed output, mostly related to probing devices...
- Display slice and partition as <auto> instead of 0 or -1 when they're
   not set to specific values (the paritition=-1 was confusing folks).
 - When loaderdev isn't set in the u-boot environment, say so rather
   than displaying unknown device ''.
 - Print the loader(8) ident/version info earlier, so that all device-
   related info appears together afterwards.

The one change here that isn't purely cosmetic is to call setheap()
earlier.  The comment says "Initialise heap as early as possible", now
that's more accurate.  It shouldn't make any functional difference, but
may be safer if future changes lead to trying to allocate memory earlier.
2014-03-17 16:10:42 +00:00
ian
f5f6c3f801 Fix the paren nesting so that the network device is probed if the load
device type is either network or wildcard.
2014-03-17 13:54:53 +00:00
ian
7db44467a1 Fix an uninitialized variable error I perpetrated when splitting some
code into a separate function.  Pass the missing value from main() to
the probe_disks() function.
2014-03-14 00:49:02 +00:00
emaste
017a2624cb Connect 64-bit boot ficl to the build
It is not yet used, but this will ensure it doesn't get broken.

Sponsored by:	The FreeBSD Foundation
2014-03-13 19:26:23 +00:00
emaste
d18857b4ce Add amd64 EFI headers
Sponsored by:	The FreeBSD Foundation
2014-03-13 18:17:18 +00:00
ian
b434f4f57d Enhance the mechanism that lets you configure the ubldr boot device by
setting the u-boot environment variable loaderdev=.  It used to accept only
'disk' or 'net'.  Now it allows specification of unit, slice, and partition
as well.  In addition to the generic 'disk' it also accepts specific
storage device types such as 'mmc' or 'sata'.

If there isn't a loaderdev env var, the historical behavior is maintained.
It will use the first storage device it finds, or a network device if
no working storage device exists.

99% of the work on this was done by Patrick Kelsey, but I made some
changes, so if anything goes wrong, blame me.

Submitted by:	Patrick Kelsey <kelsey@ieee.org>
2014-03-11 22:02:49 +00:00
royger
b13d7383ff howto_names: unify declaration
Approved by: gibbs
Sponsored by: Citrix Systems R&D

boot/i386/efi/bootinfo.c:
boot/i386/libi386/bootinfo.c:
boot/ia64/common/bootinfo.c:
boot/powerpc/ofw/metadata.c:
boot/powerpc/ps3/metadata.c:
boot/sparc64/loader/metadata.c:
boot/uboot/common/metadata.c:
boot/userboot/userboot/bootinfo.c:
i386/xen/xen_machdep.c:
 - Include sys/boot.h
 - Remove custom definition of howto_names.

sys/boot.h:
 - Define howto_names.

x86/xen/pv.c:
 - Include sys/boot.h
2014-03-11 10:13:06 +00:00
imp
1073210fd1 Initial cut for DTS on the hl201 board. 2014-03-08 03:22:20 +00:00
br
003e2c25e4 - Export panel info to DTS
- Reset all the layers before setup first one
- Enable display
2014-03-07 16:14:51 +00:00
br
37a7c0392e Add driver for Port control and interrupts (PORT).
PORT is responsible for external interrupts management,
so move IRQ lines from GPIO driver.
2014-03-07 07:06:36 +00:00
ian
1063f88d21 Use an empty ranges statement for the bus, because all the children on the
bus have their register properties declared as full physical addresses,
not offsets from a base range for the bus.
2014-03-04 14:19:15 +00:00
imp
2647414ded Fix syntax errors and warnings emitted by the GPL dtc. 2014-03-04 03:19:26 +00:00
ian
d807fa6684 Add a missing semicolong, noticed by the gnu dt compiler. 2014-03-03 16:00:11 +00:00
ganbold
8c95c97c2c Add EMAC and SRAM controller entries to FDT.
Add EMAC device to kernel config files and
enable EMAC, SRAM drivers for build.

Approved by:	stas (mentor)
2014-03-03 11:36:39 +00:00
ian
934db1dbcf Include needed header. I don't know why clang didn't complain about this
but gcc sure did.
2014-03-02 17:19:19 +00:00
gonzo
5c1bbe0773 - Fix BBB's dts compilation with GNU dtc 2014-03-02 06:36:49 +00:00
ian
e6899fc0bf If we can't find the u-boot api signature, exit with an error status that
includes "badab1"; u-boot displays the status in hex, so this may help
give some clue about why ubldr isn't working (more than -1 does anyway).
2014-03-01 19:25:23 +00:00
ian
3cccc93a26 Prevent fdt data loaded from a file from overwriting the kernel environment,
by having uboot_autoload() do the fdt setup (which may load a file) rather
than waiting until we're actually in the process of launching the kernel.

As part of making this happen...
 - Define LOADER_FDT_SUPPORT on the uboot/lib compile command line when
   MK_FDT is set.
 - Make fdt_setup_fdtb() public.
 - Declare public fdt_whatever() functions in a header instead of using
   scattered extern decls in .c files.
2014-03-01 19:02:00 +00:00
imp
7c9fd58141 Fix syntax errors (missing ;) that bsdl dtc was tolerant of, but gpl
dtc isn't.
2014-02-28 22:37:40 +00:00
imp
7c37cf4f64 Integrate device-tree upstream files into the build process:
(1) Invoke cpp to bring in files via #include (although the old
    /include/ stuff is supported still).
(2) bring in files from either vendor tree or freebsd-custom files
    when building.
(3) move all dts* files from sys/boot/fdt/dts to
    sys/boot/fdt/dts/${MACHINE} as appropriate.
(4) encode all the magic to do the build in sys/tools/fdt/make_dtb.sh
    so that the different places in the tree use the exact same logic.
(5) switch back to gpl dtc by default. the bsdl one in the tree has
    significant issues not easily addressed by those unfamiliar with
    the code.
2014-02-28 18:29:09 +00:00
dim
ec11adae82 Merge from head up to r262611. 2014-02-28 17:46:56 +00:00
loos
4b7832497a Add geom_uncompress to the list of available geom modules on loader.conf.
Approved by:	adrian (mentor)
2014-02-27 13:31:54 +00:00
dim
09b56e694e Merge from head up to r262536. 2014-02-26 22:26:40 +00:00
grehan
26906dd4c6 Change the MK_ZFS != "no" case slightly to avoid a name
clash with LIBZFS in bsd.lib.mk

Submitted by:	Max N Boyarov   zotrix at bsd dot by
OK'd by:	sbruno
2014-02-26 04:49:09 +00:00
sbruno
91aa2538d5 Slightly better revision of teaching userboot how to respect MK_CDDL
Reviewed by:	grehan
2014-02-25 21:07:18 +00:00
sbruno
725aa10f4c Teach userboot to comply with WITHOUT_CDDL/WITHOUT_ZFS
Apparently, LIBZFS is set to a non-empty string when WITHOUT_CDDL/WITHOUT_ZFS
are set, I think this is a bug, but work around this feature for now.

Reviewed by:	grehan
2014-02-25 18:00:55 +00:00
br
ed49704845 - Pin configuration is a complete iomux register now and includes
drive strength, pull mode, mux mode, speed, etc.
- Add i2c devices to the tree
- Add IPG clock
2014-02-25 17:02:11 +00:00
dim
b6b1de44ba Merge from head up to r262472. 2014-02-25 07:40:37 +00:00
br
8a2388e536 Add support for Quartz Module.
Quartz is a tiny module utilized Freescale VF6xx
system-on-chip and development kit produced by
Device Solutions.

Quartz is available in a form of LGA (38x38x2mm)
or as a module with high-density connectors.

Sponsored by:	Device Solutions
2014-02-24 19:32:15 +00:00
rwatson
fc50d25224 Build FICL support into little-endian 64-bit MIPS boot-loader fragments;
while this won't actually be used for anything (yet), it doesn't hurt to
ensure it is exposed to the tinderbox.

Requested by:   imp, jmallett
MFC after:      3 weeks
2014-02-24 18:44:22 +00:00
rwatson
1317f8e796 Build 64-bit ELF support into little-endian 64-bit MIPS boot-loader
fragments; while this won't actually be used for anything (yet), it
doesn't hurt to ensure it is exposed to the tinderbox.

Requested by:	imp, jmallett
MFC after:	3 weeks
2014-02-24 18:44:03 +00:00
loos
1827a695c2 Enable the second and the third I2C controllers on Beaglebone-black.
The first I2C controller is only used to manage the on-board devices (PMIC
and HDMI framer) and its bus is not exposed on the expasion headers.

With this change the following pins on the P9 expansion headers are now
reserved as I2C pins:

 Pin 17 - I2C1 SCL
 Pin 18 - I2C1 SDA
 Pin 19 - I2C2 SCL
 Pin 20 - I2C2 SDA

The I2C2 is the bus that should be used to read the contents of cape
eeproms.

Approved by:	adrian (mentor, implicit)
2014-02-24 12:45:03 +00:00
dim
e42ec49846 Merge from head up to r262415. 2014-02-23 23:33:11 +00:00
rwatson
2fbd448d89 Build the BERI boot loader on 64-bit MIPS (but not 32-bit MIPS). While
these binaries aren't immediately useful on other MIPSes, still build them
as part of mips64 world in order to expose them to tinderbox.

MFC after:	3 weeks
Sponsored by:	DARPA, AFRL
2014-02-23 22:20:52 +00:00
rwatson
228d78af30 When building FDT on MIPS, use softfloat.
MFC after:	3 weeks
Sponsored by:	DARPA, AFRL
2014-02-23 22:12:25 +00:00
rwatson
5274b44976 On mips64, built 64-bit ELF support.
MFC after:	3 weeks
Sponsored by:	DARPA, AFRL
2014-02-23 22:11:26 +00:00
rwatson
fcb180b479 Give mips64 its own ficl configuration that sizes pointers/etc suitably for
a 64-bit architecture, rather than trying to share the 32-bit MIPS ficl
configuration.

When building ficl on MIPS, don't conflate 32-bit and 64-bit ISAs -- unlike
x86, we don't want a 32-bit loader on a 64-bit CPU.  Use quite conservative
code generation -- e.g., softfloat, no GOT, etc -- suitable for early boot.

MFC after:	3 weeks
Sponsored by:	DARPA, AFRL
2014-02-23 22:10:25 +00:00
ian
43dd7e1f06 Add a feature for automatically finding and loading a dtb file by name.
The name is taken from the u-boot env vars fdtfile or fdt_file.  If the
name isn't fully-qualified a search is done in module_path locations.

The search order for a usable dtb in fdt_setup_fdtp() is now

 - A dtb loaded with an explicit "load -t dtb" command.
 - A dtb already loaded into memory somehow[*] and pointed to by fdt_to_load.
 - A dtb in the memory pointed to by the u-boot env vars fdtaddr or fdt_addr.
 - A file named by the u-boot env vars fdtfile or fdt_file.
 - A static dtb compiled into the kernel.

* Presumably by some arch-specific command or code.
2014-02-22 22:18:20 +00:00
ian
f462797a7d Change file_loadraw() from static to public. Change the order of its
arguments from type,filename to filename,type to be consistant with other
public file_whatever() functions, and change it to return a pointer to
the preloaded_file struct describing the file.  Adjust existing callers.
2014-02-22 22:03:26 +00:00
ian
f9012da384 Change fdt_setup_fdtp() from "guess then fail" to more probe-like behavior.
The old code basically said it was going to use some particular blob
without knowing whether it could successfully do so, then it would invoke
the function to do that and return its status.  If it failed, you were
done, even if other blobs might be available.  Now the code attempts to use
some particular blob and if that succeeds it says so and returns success,
otherwise it moves on to try another potential blob.

One specific problem this solves is when u-boot sets an fdtaddr variable
to point to some memory address, then doesn't actually load a blob at
that address.  Now the header check will fail, and the code will move
on to the fallback dtb compiled into the kernel (if any).
2014-02-22 19:10:58 +00:00
ian
fa9fabc566 Allow the ubldr boot device to be choosen by a u-boot environment variable.
If a "loaderdev=<device>" env variable is set and the named device
exists, it is used.  If the device doesn't exist, fall back to the
historic "probe" loop that prefers disk devices over network devices.

If the env var is not set, preserve the historic behavior of using the
first working disk device provided by u-boot, or a network device if no
functional disk device is found and a network device exists.

The old probe loop is reworked so that it checks all bootable devices
provided by u-boot rather than taking an early-out on the first device
found.  This results in the cosmetic change of listing all potential boot
devices for the user, but the behavior of which device it chooses is the
same as it has always been.
2014-02-22 17:51:10 +00:00
grehan
10513a79ad ZFS boot support for bhyveload.
Modelled after the i386 zfsloader. However, with no
2nd stage zfsboot to search for a bootable dataset,
attempt a ZFS boot if there is more than one ZFS
dataset found during the disk probe.

sys/boot/userboot/zfs
 - build the ZFS boot library

sys/boot/userboot/userboot/
 conf.c
  - Add the ZFS pool and filesystem tables
 devicename.c
  - correctly format ZFS devices
 main.c
  - increase the size of the libstand malloc pool
  to account for the increased usage from ZFS buffers
  - probe for a ZFS dataset, and if one is
  found, attempt to boot from it.

usr.sbin/bhyveload/bhyveload.c
 - allow multiple invocations of the '-d' option
 to specify multiple disks e.g. a raidz set.
 Up to 32 disks are supported.

Tested with various combinations of GPT, MBR, single
and multiple disks, RAID-Z, mirrors.

Reviewed by:	neel
Discussed with:	avg
Tested by:	Michael Dexter and others
MFC after:	3 weeks
2014-02-22 07:18:06 +00:00
ian
f59db7212f Look for both fdtaddr and fdt_addr env var names. Grepping the u-boot
source shows that board vendors seem to be about evenly split on this.

This commit is a trivial change to note that while the previous change
was supposed to be whitespace only, this functional change also crept in.
The added lines were:

  /* Board vendors use both fdtaddr and fdt_addr names.  Grrrr. */

  if (s == NULL)
	s = ub_env_get("fdt_addr");
2014-02-22 03:36:45 +00:00
ian
0f01aae959 Fix the strange 2-space indentation that appears only in this one function. 2014-02-22 03:29:53 +00:00