Commit Graph

80 Commits

Author SHA1 Message Date
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
Ingo Weinhold 81291304ad Merge remote-tracking branch 'haiku/master' into package-management
Conflicts:
	build/jam/BuildSetup
	build/jam/HaikuImage
	build/jam/board/sam460ex/BoardSetup
	build/jam/board/verdex/BoardSetup
	data/catalogs/apps/icon-o-matic/fr.catkeys
	src/add-ons/kernel/drivers/audio/hda/hda_codec.cpp
	src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp
	src/apps/debugger/files/FileManager.cpp
	src/apps/debugger/files/FileManager.h
	src/apps/debugger/user_interface/gui/inspector_window/MemoryView.cpp
	src/apps/haiku-depot/MainWindow.cpp
	src/apps/haiku-depot/MainWindow.h
	src/apps/haiku-depot/Model.cpp
	src/apps/haiku-depot/PackageInfo.h
	src/apps/haiku-depot/PackageInfoListener.h
	src/apps/haiku-depot/PackageInfoView.cpp
	src/apps/haiku-depot/PackageInfoView.h
	src/apps/haiku-depot/PackageListView.cpp
	src/apps/haiku-depot/PackageListView.h
	src/system/kernel/arch/arm/arch_timer.cpp
	src/system/libroot/os/arch/arm/atomic.S
	src/tools/translation/bitsinfo/Jamfile
	src/tools/translation/bmpinfo/Jamfile
	src/tools/translation/tgainfo/Jamfile
2013-09-27 01:55:45 +02:00
Ithamar R. Adema 7416b5878f ARM: verdex: Make sure __XSCALE__ is defined when compiling.
This is especially important for the assembler code in the kernel,
since it enables workarounds for some critical errata related to
exception handling.
2013-09-18 06:34:40 +02:00
Ingo Weinhold b0944c78b0 More work towards hybrid support
* All packaging architecture dependent variables do now have a
  respective suffix and are set up for each configured packaging
  architecture, save for the kernel and boot loader variables, which
  are still only set up for the primary architecture.
  For convenience TARGET_PACKAGING_ARCH, TARGET_ARCH, TARGET_LIBSUPC++,
  and TARGET_LIBSTDC++ are set to the respective values for the primary
  packaging architecture by default.
* Introduce a set of MultiArch* rules to help with building targets for
  multiple packaging architectures. Generally the respective targets are
  (additionally) gristed with the packaging architecture. For libraries
  the additional grist is usually omitted for the primary architecture
  (e.g. libroot.so and <x86>libroot.so for x86_gcc2/x86 hybrid), so that
  Jamfiles for targets built only for the primary architecture don't
  need to be changed.
* Add multi-arch build support for all targets needed for the stage 1
  cross devel package as well as for libbe (untested).
2013-08-01 08:54:06 +02:00