Commit Graph

4815 Commits

Author SHA1 Message Date
François Revol
1348022133 PPC: Move asm helpers to U-Boot arch Jamfile
* the OpenFirmware arch/ppc/Jamfile already has it, so move it to avoid duplicated symbols.
2012-05-24 21:55:21 +02:00
Alexander von Gluck IV
93d5b79f06 rPi console: Implement console_wait_for_key 2012-05-24 08:53:32 -05:00
François Revol
037f252fd0 U-Boot: split cpu.cpp into arch-specific and common parts
* the common part should try to use the U-Boot API when found.
* the arch part can make use of cpu features (like timer register)
* the ppc code enables the FPU in the MSR, since it's used by vsnprintf(),
which at least saves one FP register in its prologue.
2012-05-24 21:27:37 +02:00
François Revol
3bd0ac4aa3 PPC: Add eioio as barrier for the UART class
* probably unneeded but it shouldn't harm.
2012-05-24 21:20:15 +02:00
François Revol
6ca4ac0978 PPC: Add some kernel asm helpers to the bootloader
* get/set_msr() will be useful for U-Boot.
2012-05-24 21:20:14 +02:00
François Revol
134ef79db0 U-Boot: add some sections to the ppc ldscript
* it seems ld creates most of them anyway, taken from the openfirmware script.
2012-05-24 21:20:14 +02:00
Alexander von Gluck IV
9b2efb1ad5 rPi Console: Fix console vt100 calls
* Use correct clear screen escape codes
* Use correct set cursor location escape codes
* Use correct set color escape codes
2012-05-24 06:39:43 -05:00
Alexander von Gluck IV
361ec26f10 rPi MMU: Cleanup, add gPeripheralBase
* gPeripheralBase keeps track of the device
  peripherals before and after mmu_init
* Add ability to disable mmu for troubleshooting
* Remove static FB_BASE, we actually don't know
  where the FB is yet. (depends on firmware used)
2012-05-24 06:39:43 -05:00
Alexander von Gluck IV
16307934fa rPi: Fix missing % 2012-05-24 06:39:42 -05:00
Pawel Dziepak
021ccbd18f Fix #8596: common_getgroups copies too little data
common_getgroups, when called from within the kernel, copies actualCount
bytes instead of actualCount * sizeof(gid_t) bytes.
2012-05-23 12:56:10 -04:00
Alexander von Gluck IV
4fd190af6e MMU: Add in section L1 MMU size
* Not used atm, but exists.
2012-05-22 09:07:29 -05:00
Alexander von Gluck IV
f0ba7f9400 MMU: Clean up arm L1 MMU types
* Include map for each page table type
* Reduce MMU_TYPE define name length
2012-05-22 08:30:52 -05:00
Alexander von Gluck IV
9c5e60f656 rPi MMU: Fixes to hrev44189
* I had the wrong addresses, 0x20 was the physical
  address not a mapped one.
* Attempt to map uart in mmu post mmu_init.
2012-05-22 08:30:52 -05:00
Alexander von Gluck IV
b8733e36c7 rPi MMU: Working towards mapped memory
* BCM2708 defines no longer assume 0x20 address
  We will be throwing away the blob memory mapping
  and using our own.
* Use existing blob mapping to turn GPIO led on pre mmu_init
* Remap MMU hardware addresses from 0x7E. We could map each device,
  however the kernel will throw away the mappings again anyway. For
  now we just map the whole range and use offsets.
* Serial uart no longer works, however at least
  we know why now :). Serial driver now needs to
  use mapped address.
2012-05-18 10:16:30 -05:00
Alexander von Gluck IV
e8aa6be532 rPi MMU: Enhance debugging
* TRACE calls no longer need double '('
* Added CALLED trace function
* Add better debugging output
2012-05-18 08:57:00 -05:00
Alexander von Gluck IV
249e5492c1 ARM MMU: Use MRC vs MCR for TTBR
* Verified to use MRC vs MCR multiple locations
* Small bit of style cleanup as well
* Better comment function usage
2012-05-18 08:57:00 -05:00
Alexander von Gluck IV
77591e9657 rPi: MMU Work
* Use U-Boot mmu code as base
* This will be factored out someday into common arch mmu
  code when we can read Flattened Device Trees
* Move mmu_init after serial_init.
  Temporary change as we will want serial_init to use
  memory mapped addresses... for debugging.
2012-05-18 06:36:53 -05:00
Alexander von Gluck IV
6d4270e3ce U-Boot mmu: Style cleanup, no functional change 2012-05-18 06:36:52 -05:00
François Revol
61d7e75709 U-Boot ppc: Add missing sections to ldscript
* it seems we missed some sections that exist on ppc, add them.
* resulting binary runs a little further in QEMU but still screws up.
2012-05-17 23:52:35 +02:00
François Revol
b011337e20 U-Boot: save passed FDT and call common code
* should work better this way :D
2012-05-17 20:46:46 +02:00
François Revol
de1c936185 U-Boot: include board name in uimage header
* for clarity, include the board in the uimage name field, it's long enough.
2012-05-17 19:55:27 +02:00
François Revol
7663f51c66 U-Boot: Fix ppc build
* we have an uimage for the Sam460 \o/
2012-05-17 19:41:19 +02:00
François Revol
e02218f140 Cleanup 2012-05-17 19:40:26 +02:00
François Revol
7e53f7bdc3 U-Boot: fix the guards
* mmu_init*() are used by cpu.cpp
2012-05-17 19:24:11 +02:00
François Revol
4ab5d2f998 U-Boot: Add a ppc ldscript
* mostly copied from the ARM one
2012-05-17 19:15:58 +02:00
François Revol
386671b4d0 U-Boot: Guard ARM-specific stuff
* those must be cleaned up and moved away
* allows building U-Boot loader for ppc
2012-05-17 19:10:10 +02:00
Alexander von Gluck IV
3d4f1347fe U-Boot: Re-disable MMU tracing 2012-05-17 06:05:06 -05:00
Alexander von Gluck IV
82e19983b4 u-boot mmu: Style cleanup, no functional change 2012-05-17 05:58:31 -05:00
François Revol
f5759f2e99 U-Boot: Add a Linux-type loader target
* those should be cleaned up. BoardSetup should tell which OS type to emulate.
2012-05-17 18:44:11 +02:00
François Revol
f4bd3cda32 U-Boot: Fix comments and ppc build
* those are not ARM-specific.
* this asm code doesn't build for ppc, and is not really useful for ARM either.
2012-05-17 18:27:49 +02:00
Alexander von Gluck IV
1f675a7fcb uart: Fix arm kernel build
* Make kernel use mmu_man's new UART code
* Remove no longer used uart.cpp / uart.h
2012-05-17 05:32:29 -05: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
François Revol
d86473dfb9 Cleanup U-Boot global data struct
* there are only a few members we can really rely on, the rest is compile-time dependant.
* don't use ARM-specific stuff.
2012-05-17 17:25:49 +02:00
Alexander von Gluck IV
eb93f2661d uart: Style Cleanup, no functional change 2012-05-17 03:31:02 -05:00
Alexander von Gluck IV
182643f763 uart: Remove due to mmu's new (better) UART code 2012-05-17 03:15:56 -05:00
François Revol
e9ec7a55dd Attempt to factor out serial stuff
* introduce a DebugUART baseclass,
* rework 8250 and PL011 implementations from kallisti5 to inherit DebutUART,
* each arch should override the IO methods to access registers.
* on ARM registers are 32bit-aligned.
* U-Boot still works for the verdex target.
* rPi still compiles, needs testing.
* Still some more consolidation needed to allow runtime choice of the UART type (as read from FDT blobs for ex.).
* serial.cpp should probably mostly be made generic as well.
* didn't touch x86 or ppc yet.
2012-05-17 04:09:05 +02:00
Alexander von Gluck IV
d0f5524676 rpi: Wait for keypress on panic
* Cleanup serial shutdown process
2012-05-16 06:25:13 -05:00
Alexander von Gluck IV
4747ee6ea8 pl011 uart: Complete function to get a character 2012-05-16 06:01:51 -05:00
Alexander von Gluck IV
ce077d96cb rpi: Flush serial on cleanup
* Wait for transmit fifo to empty on serial cleanup
* Serial cleanup on platform exit
2012-05-16 04:50:29 -05:00
Alexander von Gluck IV
91161d1d6f pl011 uart: Fix fifo states
* Lets wait for space *before* writing to the fifo
  instead of after.
* Flush functions now really flush the fifo waiting
  for them to enter an empty state.
* Simple memory barriers added (may need revised)
  We don't have access to the kernel barriers here.
2012-05-16 04:47:24 -05:00
Alexander von Gluck IV
a5453f6dd8 rpi: Clean up debug output 2012-05-16 04:19:01 -05:00
Alexander von Gluck IV
6e11d185ae rpi: Add console code
* Pretty much cleaned up 1:1 u-boot code
* Thanks to Johannes Wischert for the initial work here
2012-05-15 19:33:41 -05:00
Johannes Wischert
aeb2376cdd rpi: Add debug code from u-boot code
* Cleaned up a bit
* Add panic function
* Add printd function

Signed-off-by: Alexander von Gluck IV <kallisti5@unixzen.com>
2012-05-15 19:05:54 -05:00
François Revol
6f19b90aca Fix linking in static ctors
* It seems we also need to call them in the .init_array section.
2012-05-15 19:16:52 +02:00
Alexander von Gluck IV
e91f4b7230 pl011 uart: Remove Raspberry Pi hack
* Constructors now working
2012-05-15 12:09:59 -05:00
François Revol
565039c149 Fix serial output for U-Boot code
* use a static buffer for allocation, as the heap isn't yet working.
2012-05-15 19:04:31 +02:00
Alexander von Gluck IV
27d3324651 rpi: Rework linker script
* Add some missing stuff, be more exact with
  stack and fill with 0xBEBEBEBE
* Ensure .init_array is called with .ctors to ensure
  static constructors are called.
2012-05-15 10:33:12 -05:00
Alexander von Gluck IV
8d44fff34a rpi: Raise exception on loader return 2012-05-15 09:14:14 -05:00
Alexander von Gluck IV
ec3c24ab07 pl011 uart: Work around Rpi constructors not getting called
* Serial UART output on Raspberry Pi now functioning
  This is kind of a hack, however having serial output
  will enable easier debugging of loader. Not a perimant fix.
* With UART output, we can now turn to why the constructors
  are so messed up.
* Thanks to pfoetchen for his help and (lots!) of testing.
2012-05-14 23:25:14 -05:00
Alexander von Gluck IV
84882c0039 rpi serial: C++ constructors not getting called
* Make a global
* Thanks to pfoetchen + OmniMancer for figuring it out
2012-05-14 22:35:02 -05:00