Commit Graph

37 Commits

Author SHA1 Message Date
Ithamar R. Adema
36fa904ede Fix aligment of data segment, by moving our ARM ldscript closer to the X86 one. This restores
the state of the ARM port to booting all the way up to the idle thread again.

However, will still need to investigate why we need the PHDRS magic, likely due to improper
setup of the ARM toolchain. If anyone has ideas, please let me know!



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40937 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-03-13 23:17:29 +00:00
François Revol
788565c49a Copy the Atari bootloader ldscript.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38930 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-10 14:10:49 +00:00
Stephan Aßmus
5d80127809 Patch by Andreas Faerber:
* Fix a typo in the comments: unintialized -> uninitialized.

Thanks a lot!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34857 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-02 10:21:09 +00:00
Stephan Aßmus
745b2d9db7 Patch by Andreas Faerber:
* Fix duplicate assignment which is probably a merging artifact.

This patch was also a requirement for a working PPC KDL prompt. I didn't
apply the patches in order... Thanks a lot!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34856 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-02 10:19:05 +00:00
Jonas Sundström
8e8130d1f0 Adding routerboard_mipsel platform stubs and linker script.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32594 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-22 01:48:18 +00:00
François Revol
639b8a4905 [GSoC] [ARM] Patch by Johannes Wischert.
This seems to work around the dynamic segment having a huge file size in headers, it must also be in the data segment...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32404 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-15 01:15:18 +00:00
François Revol
3f366cdc39 [ARM]
Don't forget the ELF header else we end up loading at 0x7fff8000...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32341 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-14 01:10:19 +00:00
François Revol
d9c434dc91 [ARM]
Use the same trick as for m68k (r26536) to get separate text & data segments for the kernel, though this should really not be needed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32340 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-14 00:18:25 +00:00
François Revol
79cf966c2c [ARM]
Add unwind symbols to the kernel too... not sure it goes here though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32325 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-13 17:36:42 +00:00
François Revol
0e20032995 [ARM]
Move the unwind data out of the bss section, it broke bss init which ended up erasing real data and making dprintf do weird things...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32308 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-13 12:48:33 +00:00
François Revol
e4b608db5b [ARM]
Missed this one in previous commit: remove board.ld include as we now give LD the address directly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32285 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-12 16:25:02 +00:00
François Revol
feb750d331 [ARM]
- consolidate board specific definitions into build/jam/board/*/BoardSetup to avoid duplicating address values everywhere,
	- add various addresses, boot script, custom C/C++ flags and SD card definition,
	- not sure BoardSetup is included at the best place though,
	- replaced board-specific ldscript with passing the loader address directly to LD from BoardSetup,
- added haiku.mmc target which generates an mmc/SD card image with a FAT partition with the files needed to boot for the board, should later be integrated with haiku.image with the BFS partition offset passed to bfs_shell, requires apt:sfdisk,mtools on GNU/Linux,
- added some more rules, one to build a script for the SD image,
- fake a NetBSD loader for now, U-Boot doesn't know haiku, and we'll need a way to pass the tgz image and RAM size, we'll either use standlone way (usual C argv[]) or the NetBSD args,
- style fixes,
- 80 cols, /me pets Ingo.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32284 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-12 16:12:35 +00:00
François Revol
e3db8e35e3 [ARM]
Temporary (?) solution to linking the loader: generate symbols needed by the unwinding code, which should actually not be used since we disable exceptions...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32239 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-11 03:21:29 +00:00
François Revol
71c5ee196b [ARM]
Remove debug leftover.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32208 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-08 16:12:02 +00:00
François Revol
e60a2810f6 [ARM]
Include board-specific file from the u-boot ldscript, to allow linking to different load addresses.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32207 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-08 16:02:34 +00:00
François Revol
1f4fe94583 [GSoC] [ARM] Patch by Johannes Wischert.
LD scripts for u-boot based bootloader and the kernel.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31819 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-27 16:21:20 +00:00
François Revol
f080e026b9 Merge in all .text.Z* sections back to .text...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28619 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-12 00:14:07 +00:00
François Revol
9f8e918d80 The .dynamic section should be both part of the data and dynamic segments!
This makes the kernel loadable by the bootloader, which does load it, and all the modules \o/


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26558 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-22 00:46:07 +00:00
François Revol
3c5029f112 Turned out the generated kernel_m68k had a single PT_LOAD segment (RWE) instead of separate text and data like every other single binary, and everything on other platforms. This works around it by forcing sections to separate headers. It's still beyong me why I have to do this here, ld should do it on its own. Anyone has a clue ?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26536 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-21 00:36:31 +00:00
François Revol
b45b3d7dcb - move prg ldscript where it belongs.
- added rule for boot .prg, no need to do it by hand :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26099 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 13:32:28 +00:00
François Revol
a85b351d4e Use the x86 kernel.ld as model instead of ppc. Thsi makes kernel_m68k link \o/
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26098 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 11:01:46 +00:00
François Revol
ea788fff0c Our ld script is actually closer to the x86 one... this should work.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23530 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-15 15:00:00 +00:00
François Revol
9b6eca61e0 The correct platform is "atari_m68k".
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23524 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-14 21:55:29 +00:00
François Revol
56b8edd4e3 ld scripts for m68k.
Actually mostly untouched ppc from r22648.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22651 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-22 00:00:32 +00:00
Marcus Overhagen
a1939ee423 Modified the pxe_ia32 stage 1 loader to load stage 2 at the same address as bios_ia32 stage 1 does.
This allowes to actually execute the boot loader now. 
Need to use Ingo's remote_disk_server now for booting.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19113 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-24 20:53:30 +00:00
Marcus Overhagen
c6bbe85233 make boot loader platform dependant
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18925 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-25 15:52:46 +00:00
Marcus Overhagen
bf905142eb make boot loader platform dependant
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18923 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-25 15:50:41 +00:00
Marcus Overhagen
97de040e29 make boot loader platform dependant
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18922 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-25 15:49:10 +00:00
Marcus Overhagen
88dde23969 just start a little higher
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18921 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-25 14:48:37 +00:00
Marcus Overhagen
931460f676 copied from boot_loader.ld
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18920 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-25 14:32:16 +00:00
Axel Dörfler
2ed4099289 Renamed the linker script to runtime_loader.ld to match the rest.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16937 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-30 18:10:59 +00:00
Stephan Aßmus
34a9556215 Made our glue code compatible to BeOS again. IOW executables compiled for Haiku will
now run under BeOS as well (as long as they don't use any functions that are not
available under R5).
The solution is a bit messy, but we have to live with it :-)
The runtime loader now patches the __gRuntimeLoader symbol in libroot.so to point
to its exported structure instead of passing it to the init functions as an
argument.
(Hax0red by axeld and bonefish on stippi's assimilated machine -- resistence is futile)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15848 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-06 03:48:11 +00:00
Ingo Weinhold
ee4bf34dd0 Forgot to commit. Added symbol marking the begin of the boot loader.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15781 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-02 02:03:37 +00:00
Ingo Weinhold
b566a43ec8 Reworked the PPC kernel linker script. Changed data segment alignment
in the boot loader script.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15707 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-29 01:24:02 +00:00
Ingo Weinhold
ccf56c61be Fixed PPC boot loader linker script.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15577 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-18 14:37:34 +00:00
Ingo Weinhold
22671ef7cf Apparently gcc 4 aligns the input .ctors sections on 4 byte boundaries,
which could cause the __ctor_list pointer to be off.

PS: We can get rid of most of the ld scripts. ATM only kernel.ld,
boot_loader.ld, and add-on.ld are still in use. The latter one probably
unnecessarily.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14905 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-13 21:08:15 +00:00
Axel Dörfler
5af32e7526 Renamed src/kernel to src/system.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12359 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-13 13:06:35 +00:00