Commit Graph

83 Commits

Author SHA1 Message Date
Jessica Hamilton
1f96a3cbde system/boot: Add support for multiple bootloaders 2018-10-17 14:47:46 -05:00
Alexander von Gluck IV
7e2d856556 dts: Rename bbb to boneblack to match u-boot 2017-10-20 13:12:14 -05:00
Alexander von Gluck IV
855fc5a0d3 platform/u-boot: Build all fdt's and include in u-boot mmc
* Eventually BoardSetups and target boards will go away.
* Include all known fdt's in the mmc image
* This gets us closer to target board-less arm
* Changing hardware is as simple as plugging a new fdt
  into u-boot's startup script.
* Drop my original rpi1 work.  We're targetting ARMv7
  minimum.
2017-07-09 22:19:51 -05:00
Alexander von Gluck IV
f4f6b874bf arm: Use new firmware repo for u-boot 2016-10-20 21:45:34 -05:00
Alexander von Gluck IV
b2bdabc797 arm: Add beaglebone target, rename beagle
* beaglebone vs beagleboard
* While the boards are almost the same, they have
  diff. FDT's now (more memory, different layout etc)
* Make u-boot script more rpi-like
  (depend on u-boot for initial addresses)
* Wasn't working, still doesn't.
2016-10-20 11:05:46 -05:00
Jonathan Schleifer
bfe60c1e5a
Don't define __ARM*__ for Clang
I have a patch for Clang ready that I will upstream instead.
2015-11-08 16:38:57 +01:00
Jonathan Schleifer
96474f3de2
Define __ARM_ARCH__=7 for RPi2 when using Clang 2015-11-07 18:30:07 +01:00
Jonathan Schleifer
5213914cec
Fix flags for RPi2
There's no point in tuning for the RPi1 CPU.
2015-11-07 18:07:45 +01:00
François Revol
a2ddc1c06e Fix CompileDTS rule to locate the device tree blob properly
This avoids having to call it from the BoardSetup files.
2015-04-24 02:27:55 +02:00
Alexander von Gluck IV
d3d976b08c cubieboard4: Add 32k alignment fix
* haiku_loader now starts on the cubieboard4
  with a working uart!
2015-04-18 10:38:02 -05:00
Alexander von Gluck IV
c0af54cc3b cubieboard4: Update SPL bin url to official source
* Our pull request was accepted
2015-04-13 09:15:38 -05:00
Alexander von Gluck IV
9c5e234cb3 arm: Initial Cubieboard4 work
* SD cards are "blessed" with a boot0 spl and boot1 u-boot
  at fixed locations.
* Allwinner's u-boot is lacking a lot.
* Upstream u-boot should be better at some point. WIP:
  http://lists.denx.de/pipermail/u-boot/2015-January/201537.html
2015-04-11 16:53:04 -05:00
Adrien Destugues
cb6de5e19b BeagleBoard: fix compilation of dtb.
* Copy from rpi2, but this should probably be shared somewhere.
2015-04-08 21:23:33 +02:00
Alexander von Gluck IV
3d02d66b03 rpi2: Begin using internal FDT 2015-03-28 14:33:58 -05:00
Alexander von Gluck IV
b8dff21b5a rpi2: Add mmc code to generate SD card images
* jam -q haiku-mmc-image
* sudo dd if=haiku-rpi2.mmc of=/dev/...
2015-03-07 20:42:51 -06:00
François Revol
1bd23f7213 rpi1/rpi2: fix linux bootloader entry point
Looks like bad copy-paste :P
2015-03-08 00:14:56 +01:00
Alexander von Gluck IV
ed9321d9f7 rpi2: Change BoardConfig to armv7 2015-03-07 16:07:24 -06:00
Alexander von Gluck IV
db24244df1 rpi1/rpi2: More sane board loader bases 2015-03-07 13:00:56 -06:00
Alexander von Gluck IV
427d40adb5 arm/targets: Add rpi2, rename raspberry_pi to rpi1
* The Raspberry pi 2 uses a new SoC which differs slightly
  from the Raspberry Pi 1.
* Someday these two board targets could go away when we get
  FDT support.
2015-03-07 12:31:12 -06:00
Alexander von Gluck IV
523c77e052 arm: Rename BCM2835 SoC header to bcm283X.h
* Fix a few typos in hrev48873
2015-03-07 11:11:53 -06:00
Alexander von Gluck IV
f8e19d47fb arm: Rename BCM2708 to BCM2805
* To while there was some compatibility between
  BCM2708 and BCM2805, it makes the BCM2806 changes
  more confusing. We don't have any valueable BCM2708
  targets.
2015-03-07 11:03:01 -06:00
Alexander von Gluck IV
b8e37b7ba3 board/raspberry_pi: Add missing loader entry addresses 2015-03-06 14:58:46 -06:00
Paweł Dziepak
1592beeabd build/raspberry_pi: tell gcc to generate code for armv6
Signed-off-by: Paweł Dziepak <pdziepak@quarnos.org>
2015-03-06 19:03:59 +01:00
Alexander von Gluck IV
c798e80b79 raspberry_pi: Move over to u-boot.
* The raspberry_pi loader wasn't in great shape anyway,
  but could still contain some valueable code.
2015-03-05 22:41:47 -06:00
François Revol
b56dad50b4 ARM: overo: use same load address as beagle xm
And leave 8M for the kernel.
2014-11-03 18:44:56 +01:00
François Revol
67555ed829 ARM: beagle: Also use the linux entry point
This way U-Boot is able to patch the FDT with the correct RAM size
before we get to read it.
2014-11-01 20:34:38 +01:00
François Revol
564a073b01 ARM: move uEnv.txt content to BoardSetup file
That's really where it belongs. Not all boards will need it,
but for now it's always created.
2014-11-01 19:57:48 +01:00
François Revol
49bb4c467c ARM: overo: Use the linux entry point version of the loader
And load the boot tgz and FDT separately from the SD card.

Hopefully U-Boot will now report available RAM size.
2014-11-01 17:11:39 +01:00
François Revol
2ea30bc6fc ARM: overo: use the correct bootloader, with a NetBSD entry point 2014-11-01 06:27:59 +01:00
François Revol
c424d9e833 ARM: overo: fix bootscript
We actually now get our boot menu!
2014-11-01 05:42:47 +01:00
François Revol
8874b947cc ARM: overo: fix flash and SD content 2014-11-01 05:38:44 +01:00
François Revol
10255f396b ARM: verdex: keep notes about flash content 2014-11-01 05:37:32 +01:00
François Revol
b1d21fa3e8 ARM: Add URLs for MLO and U-Boot binaries
taken from http://gumstix.org/how-to/70-writing-images-to-flash.html
2014-11-01 02:27:57 +01:00
François Revol
ce8bde949d ARM: set the FDT file to use for Overo 2014-11-01 02:06:06 +01:00
François Revol
48c3ab96bb ARM: overo has an OMAP3 which supports VFP3...
Also switch the fpu abi to hard since it's the only thing we can use
until we get proper multilib support. It builds but misses an FDT.
2014-11-01 01:18:40 +01:00
Ithamar R. Adema
c83fab8587 ARM: beagle: specify Beagle-XM DTS file 2014-10-31 10:59:58 +01:00
Ithamar R. Adema
e3020a5039 ARM: remove initrd handling from mmu code
Let the platform mmu_map_physical_memory the initrd region, and
reserve it before calling mmu_init. This removes another hardcoded
address, since e.g. U-Boot gets the address from the uImage file.
2014-09-07 20:56:14 +02:00
Ithamar R. Adema
0a163b65c7 ARM: define bootloader stack in linker script
This removes the need for the whole HAIKU_BOARD_LOADER_STACK_BASE
sing and dance, since it is always included in the bootloader binary
itself.
2014-09-07 20:56:14 +02:00
Adrien Destugues
f66aa8595c Enable C++11 for all ARM targets, not just beagle.
* Also clean up the flags definitions in the beagle target to avoid
repeating the flags 3 times.
2014-08-18 09:00:50 +02:00
Arvind S Raj
7a402b996e Reimplemented atomic_get_and_set in C++.
Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

* C++ code written by pdziepak.
2014-08-18 08:45:40 +02:00
Ithamar R. Adema
21af7e541f ARM: remove all references to sfdisk
sfdisk is no longer used by the ARM build, since we can handle
everything with mtools (using mpartition instead of sfdisk).
2014-08-17 14:34:25 +02:00
Arvind S Raj
82d287ddcb Reserve 8MB space for kernel before RAM_loader
...so that kernel does not overwrite the loader.

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

Fixes #11067.
2014-08-08 17:39:33 +02:00
PulkoMandy
3d6edc43d9 Patch by dnivra (GSoC 2014, ARM suppport)
* Cleanup the SD card image building to allow jam -q @bootstrap-mmc to
work.

There are a few remaining tricks before you can safely build an image:
* This uses a non-POSIX du option, and is only tested with Linux du
only (Linux is the only supported system to run bootstrap builds,
anyway)
* The Python recipe in haikuports.cross is known to not build on
Debian/Ubuntu, but work fine on OpenSuse. There is a patch available in
haikuports bugtracker to allow the reverse.
* You need to populate the haikuports repo package list with some
packages (which don't exist yet) to make the build system happy. But our
git hook to generate the repositories is preventnig me to share this
hack.

Once built, the image currently crashes early in the kernel execution.
On to debug that!
2014-06-13 17:22:48 +02:00
Oliver Tappe
8c54af563c Whitespace cleanup in root and 'build' folder.
* Removed trailing whitespace and empty lines at top of files.
2014-05-01 12:55:41 +02:00
PulkoMandy
574dbabb00 Configure the ARM compiler to default to Cortex-A8
Ideally, we would only need to set this in build/jam/board/*, but the
flags set there are not passed to the build of packages. The default is
using some early ARM variant, for which gcc lacks some more atomic
operations and emits calls to helper functions we don't implement.

Setting the default architecture avoids this, as all packages will now
be built to target the Cortex-A8.

Also set the proper VFP version in BeagleBoard config file.

Note this breaks the Verdex and Pi builds, but ARMv7 is what we should
focus on for now. We can try to make older archs work after finishing
the m68k port.
2014-04-22 09:49:32 +02:00
PulkoMandy
b8058ea8ee Disable multilib for the ARM compiler build.
* This avoids mixup of the soft/hard float libs
* It also means we can use the hard-float libs for targets that supports
it
* Again, we could introduce an arm_softfp compiler for targets that
don't have floating point support, with a different gcc build.
2014-04-21 21:21:28 +02:00
Alexander von Gluck IV
d035469704 ARM: Name beagleboneblk back to beagle
* Pulkomandy pointed out that all Beagle hardware is
  very similar so we could likely get away with a single
  ARM target board.
2014-02-26 15:33:40 -06:00
Alexander von Gluck IV
6d3363214f ARM: Simplify board specification
* Don't assume verdex as it isn't clear this was
  occurring.
* Make an educated guess on HAIKU_BOOT_PLATFORM
  based on provided board (but still allow it to
  be overridden)
* Error out if user doesn't populate
  HAIKU_BOOT_PLATFORM or enters an unknown board
  name.
* You need to add "-sHAIKU_BOOT_BOARD=xxx" to
  your jam to build for the proper ARM device.
* Rename beagle to beagleboneblk as per the
  documentation.
2014-02-26 00:27:18 -06:00
Adrien Destugues
81e7f1e992 Fix definition and use of target ASFLAGS.
* ArchitectureRules define a variable named HAIKU_ASFLAGS, so other
Jamfiles can append to it.
* But, TARGET_ASFLAGS was used instead in the single place where we
tried to make use of this (the verdex BoardSetup), and in the As rule
* Moreover, the As rule used $(architecture) instead of
$(TARGET_PACKAGING_ARCH) (I suspect a bogus copypaste?). So, it never
actually made use of the flags

With this working, add the proper flags to the BeagleBoard BoardSetup,
so we implement atomic operations the ARMv7 way (no need to syscall).
This helps with compiling, as the As and Cc/Cpp rules now agree on the
defines and the atomic implementation to use.
2014-02-23 15:50:11 +01:00
Ithamar R. Adema
f5e19a38de board/arm: cleanup setting of ARM compiler options
The ones with ARCH extension are used for setting up the KERNEL
ones, so no need to try and set both.
Also, the verdex target was not setting the ARCH one, and therefore
never configured gcc for ARMv5.
2014-02-15 11:46:11 +01:00