Commit Graph

63 Commits

Author SHA1 Message Date
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
François Revol
b8ded2f897 Merge branch 'master' into sam460ex 2013-05-27 17:45:55 +02:00
Alexander von Gluck IV
107ab75ea6 docs: Clean up RaspberryPi Documentation; move
* Convert the RaspberryPi documentation to markdown
* Move into the proper arm port docs location
2013-04-28 12:37:36 -05:00
François Revol
80859e45b4 PPC: Comment out cpu-specific compile flags for Sam460ex
Userland and even kernel shouldn't require this anyway,
cpu-specific code can still be compiled with those flags separately.
2013-03-09 03:20:12 +01:00
Alexander von Gluck IV
f125673c3f Rpi: Update instructions based on mmlr's recent work 2012-11-28 14:09:51 -06:00
Michael Lotz
046e01014d Add boot archive base and size and map the boot archive.
An archive (ramfs) to be loaded can be specified in the raspberry pi
config.txt with a certain base address. We can use this to put our
floppy boot archive into memory on startup.

During the start procedure we now map that archive so we can later
load the kernel from it.
2012-11-28 02:00:00 +01:00
Alexander von Gluck IV
1946d374f2 rPi: Update boot process for later Pi firmwares
* The bootprocess is better documented now.
  Put technical info in linker script, user info
  into info.txt
2012-09-09 21:10:16 -05:00
François Revol
68a593ba2a Sam460ex: Change load address for debugging
* Change haiku_loader load address to leave U-Boot's exceptions vector for easier debugging.
2012-06-02 01:21:59 +02:00
François Revol
264aaaeeb5 Sam460ex: force using hardware floating point
* our current gcc can't be built with multilib for ppc anyway,
* this allows going further on real hardware, though dprintf() sends wrong data to the serial port.
2012-05-31 01:04:09 +02:00
Alexander von Gluck IV
8b99a08215 rPi: Fix Raspberry Pi binaries
* Since mmu_man fixed these vars to actually be used,
  we now know these floating point flags cause issues
  on the Raspberry Pi currently.
2012-05-18 04:05:33 -05:00
François Revol
55cf6de91b Fix passing flags from BoardSetup
* since we include BoardSetup earlier now, the TARGET_* flags were discarded. Use HAIKU_* instead.
* Add variables to hold the default entry point and the desired uimage OS emulation.
2012-05-18 01:22:50 +02:00
François Revol
693b3532c7 Sam460ex: Add a Linux-type kernel entry point
* the onboard U-Booot and 2nd-stage loader only know a few OS types,
we'll try faking Linux there.
2012-05-17 17:36:19 +02:00
Alexander von Gluck IV
08a1406831 rpi: Remove firmware blobs
* Pi firmware was updated to note that Broadcom
  had to be included with firmware blobs.
* While we have permission from Eben to have the
  blobs in-tree, they are now offically on github
  in a fixed location removing the need to have
  these in-tree.
* Clean up BoardConfig, note firmware URL and
  files needed
* Update info.txt with how Haiku boot process works
2012-05-16 08:03:35 -05:00
Alexander von Gluck IV
56b0f60189 rpi: Add new beta loader
* Sets uart up for us
* Enhanced non-linux os loading
* Supports device trees
* Add config.txt example with sample settings
2012-05-16 03:55:32 -05:00
François Revol
93a13fb071 No need to force TARGET_BOOT_PLATFORM now. 2012-05-11 18:23:15 +02:00
François Revol
935a9b24cf Add board definition for ACube Sam460ex
* It's a PowerPC embedded board that uses U-Boot.
* We don't want an SD image (yet?)
* tune for the ppc440 with soft-float for now.
2012-05-11 02:29:46 +02:00
François Revol
730a376b32 Hardcode the boot platform for the Raspberry Pi
* for now at least the board uses a custom boot platform.
This way one only has to define HAIKU_BOOT_BOARD now.
2012-05-11 02:17:38 +02:00
Alexander von Gluck IV
19b42424c6 rpi: Remove need for first32k.bin
* Thanks go out to Simon Arlott for replacing
  the first32k.bin blob with assembly removing
  the need for first32k.bin hack.
* This assembly is a modified version removing
  the Linux kernel boot args.
* haiku_loader renamed to kernel.img will boot
  on Raspberry Pi directly.
2012-05-06 12:06:17 -05:00