Commit Graph

488 Commits

Author SHA1 Message Date
Blue Swirl
7948face2b Display more information when ?fcode-verbose enabled (Mark Cave-Ayland)
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@484 f158a5a8-5612-0410-a976-696ce0be7e32
2009-04-13 17:05:41 +00:00
Blue Swirl
604f68deaf Correct b?branch for negative offset branches (Mark Cave-Ayland)
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@483 f158a5a8-5612-0410-a976-696ce0be7e32
2009-04-12 18:53:37 +00:00
Blue Swirl
a0c398f24b Delete some unused macros detected with -Wp,-Wunused-macros use
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@482 f158a5a8-5612-0410-a976-696ce0be7e32
2009-03-28 14:28:16 +00:00
Blue Swirl
e44d994605 Fix PPC nographic mode
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@481 f158a5a8-5612-0410-a976-696ce0be7e32
2009-03-22 16:49:34 +00:00
Blue Swirl
4ac211438c Fix build error log problem, spotted by Rob Landley
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@480 f158a5a8-5612-0410-a976-696ce0be7e32
2009-03-19 17:51:02 +00:00
Blue Swirl
b098842b5b Use firmware configuration instead of NVRAM (initial patch by Aurelien Jarno)
Use firmware configuration device for boot device, kernel, initrd and
kernel command line parameters on PPC, Sparc32 and Sparc64.


git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@479 f158a5a8-5612-0410-a976-696ce0be7e32
2009-03-08 09:45:25 +00:00
Aurelien Jarno
b73bf5229a Add new entries to firmware configuration device
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>


git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@478 f158a5a8-5612-0410-a976-696ce0be7e32
2009-03-08 09:39:53 +00:00
Blue Swirl
bac77c47d6 Move openbios-devel under /trunk
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@470 f158a5a8-5612-0410-a976-696ce0be7e32
2009-03-08 07:51:18 +00:00
Alexander Graf
4702c219f3 Author: Alexander Graf <alex@csgraf.de>
Expose PCI controller information

Linux tries to detect which PCI controller it's supposed to work with.
On PPC32 there is fallback code that doesn't get compiled with
CONFIG_PPC64, so we really have to expose a controller or we don't have
pci config space accessor functions.

Let's expose a un3-agp if we have a mac99 model, as that's what is
supposed to be in there anyways.

Signed-off-by: Alexander Graf <alex@csgraf.de>
Signed-off-by: Laurent Vivier <Laurent@vivier.eu>



git-svn-id: svn://coreboot.org/openbios/openbios-devel@466 f158a5a8-5612-0410-a976-696ce0be7e32
2009-03-08 01:06:56 +00:00
Alexander Graf
4578c8ae20 Author: Alexander Graf <alex@csgraf.de>
Expose NVRAM compatibility

Linux requires the NVRAM to expose a 'nvram,flash' compatibility
in the device tree. Let's expose it so it's happy.

v2 adds a NEWWORLD macro to protect nvram,flash getting exposed in
oldworld macs.

Signed-off-by: Alexander Graf <alex@csgraf.de>
Signed-off-by: Laurent Vivier <Laurent@vivier.eu>



git-svn-id: svn://coreboot.org/openbios/openbios-devel@465 f158a5a8-5612-0410-a976-696ce0be7e32
2009-03-08 01:03:17 +00:00
Alexander Graf
5973871ed2 Author: Alexander Graf <alex@csgraf.de>
PPC64: Switch to 32-bit mode in interrupts

All the code in OpenBIOS runs in 32 bits, which is fine. Now, when
an interrupt arrives, the 970 CPU automatically sets the MSR_SF bit,
making us run in 64 bit mode.

That breaks address calculation, because 'lis' and 'ba' get sign
extended.

In order to circumvent that mess, let's just go back to 32 bit mode
whenever we get an interrupt.

Signed-off-by: Alexander Graf <alex@csgraf.de>
Signed-off-by: Laurent Vivier <Laurent@vivier.eu>



git-svn-id: svn://coreboot.org/openbios/openbios-devel@464 f158a5a8-5612-0410-a976-696ce0be7e32
2009-03-08 00:54:06 +00:00
Blue Swirl
2da21531b5 Version 1.0
git-svn-id: svn://coreboot.org/openbios/openbios-devel@463 f158a5a8-5612-0410-a976-696ce0be7e32
2009-03-01 20:07:47 +00:00
Alexander Graf
d257db6033 Make OpenBIOS interrupt handlers 64bit aware v2
While booting a 64bit kernel, there is a small timeframe where OF and the kernel communicate with each other. Within that timeframe, DSI/ISI interrupts may occur, because some memory is not mapped yet.

Right now in case that happens, we jump into the DSI/ISI interrupt handler which clobbers the high 32 bits of the kernel's registers. In order to circumvent that, let's save/restore all 64 bits of all kernel registers when we get a DSI/ISI interrupt.

This patch enables a PPC64 Linux kernel to boot up to the point where it tries to set up the SLB entries (slbmte), which is not yet implemented in qemu.

v2 implements handling for the HIOR register, bringing interrupt handlers to RAM.

Signed-off-by: Alexander Graf <alex@csgraf.de>


git-svn-id: svn://coreboot.org/openbios/openbios-devel@462 f158a5a8-5612-0410-a976-696ce0be7e32
2009-02-28 18:38:55 +00:00
Alexander Graf
189c9077a1 This patch enables OpenBIOS to initialize on PPC64, enabling support for -cpu 970fx.
It gets up to the boot prompt and works rather good so far, though I haven't been able to run a kernel yet.

For more recent PowerPC CPUs the PTE layout has changed, so we need to take that into account and create PTEs according to the new layout and at the new physical positions.

Signed-off-by: Alexander Graf <alex@csgraf.de>
Signed-off-by: Laurent Vivier <Laurent@vivier.eu>



git-svn-id: svn://coreboot.org/openbios/openbios-devel@461 f158a5a8-5612-0410-a976-696ce0be7e32
2009-02-27 22:13:34 +00:00
Blue Swirl
7563abe630 Fix fcode-offset sign extension problem (Mark Cave-Ayland)
git-svn-id: svn://coreboot.org/openbios/openbios-devel@460 f158a5a8-5612-0410-a976-696ce0be7e32
2009-02-27 21:04:01 +00:00
Blue Swirl
3e926b99ce Postpone serial console use until PCI probe, fixes reset
git-svn-id: svn://coreboot.org/openbios/openbios-devel@459 f158a5a8-5612-0410-a976-696ce0be7e32
2009-02-21 17:13:41 +00:00
Blue Swirl
ef41834dc2 Fix b?branch (Mark Cave-Ayland)
git-svn-id: svn://coreboot.org/openbios/openbios-devel@458 f158a5a8-5612-0410-a976-696ce0be7e32
2009-02-21 16:27:51 +00:00
Blue Swirl
0c9a399601 Clear TLBs on reset
git-svn-id: svn://coreboot.org/openbios/openbios-devel@457 f158a5a8-5612-0410-a976-696ce0be7e32
2009-02-21 11:11:56 +00:00
Laurent Vivier
21507bfb5b Extract "bootargs" from "boot" command line.
It is needed to boot Fedora-10 as we must specify the path to the yaboot.conf.

To boot Fedora:

boot cd: conf=cd:,\ppc\ppc32\yaboot.conf

so "bootpath" is "cd:", and "bootargs" is "conf=cd:,\ppc\ppc32\yaboot.conf"



git-svn-id: svn://coreboot.org/openbios/openbios-devel@456 f158a5a8-5612-0410-a976-696ce0be7e32
2009-02-18 13:58:35 +00:00
Laurent Vivier
d95cb61e29 remove unused function timer_calib_start
git-svn-id: svn://coreboot.org/openbios/openbios-devel@455 f158a5a8-5612-0410-a976-696ce0be7e32
2009-02-17 22:45:41 +00:00
Blue Swirl
aa0441b762 Fix gcc 4.3 warning
git-svn-id: svn://coreboot.org/openbios/openbios-devel@454 f158a5a8-5612-0410-a976-696ce0be7e32
2009-02-16 18:38:07 +00:00
Laurent Vivier
f0daea0151 In "<boot-script>", from bootinfo.txt, decode all bootinfo entities: device,
partition, directory, filename, full-path.

(as defined in "PowerPC Microprocessor CHRP binding r1.8", chapter 3.1.6.1.)



git-svn-id: svn://coreboot.org/openbios/openbios-devel@453 f158a5a8-5612-0410-a976-696ce0be7e32
2009-02-15 20:20:55 +00:00
Blue Swirl
9020fb5fa1 Support for Qemu -nographic flag
git-svn-id: svn://coreboot.org/openbios/openbios-devel@452 f158a5a8-5612-0410-a976-696ce0be7e32
2009-02-14 09:44:55 +00:00
Blue Swirl
a837cf70f8 Increase Forth memory for FCode tables
git-svn-id: svn://coreboot.org/openbios/openbios-devel@451 f158a5a8-5612-0410-a976-696ce0be7e32
2009-02-12 19:39:47 +00:00
Blue Swirl
a72df592da Fix endianess bug in Rock Ridge extensions
git-svn-id: svn://coreboot.org/openbios/openbios-devel@450 f158a5a8-5612-0410-a976-696ce0be7e32
2009-02-08 15:45:15 +00:00
Blue Swirl
c6040cb8a0 Add basic Mac99 machine support
git-svn-id: svn://coreboot.org/openbios/openbios-devel@449 f158a5a8-5612-0410-a976-696ce0be7e32
2009-02-08 12:22:04 +00:00
Laurent Vivier
14e9b11e1f Set disk-label information when no partition map is used
git-svn-id: svn://coreboot.org/openbios/openbios-devel@448 f158a5a8-5612-0410-a976-696ce0be7e32
2009-02-05 21:37:26 +00:00
Laurent Vivier
21f5eb3c1a disk-label: retrieve block-size on open
git-svn-id: svn://coreboot.org/openbios/openbios-devel@447 f158a5a8-5612-0410-a976-696ce0be7e32
2009-02-05 21:33:23 +00:00
Laurent Vivier
0b01355058 Reset curfs to &dummy_fs on mount (fs_grubfs_open())
git-svn-id: svn://coreboot.org/openbios/openbios-devel@446 f158a5a8-5612-0410-a976-696ce0be7e32
2009-02-05 21:21:59 +00:00
Laurent Vivier
838e276b6a set blocksize when partition number is 0
git-svn-id: svn://coreboot.org/openbios/openbios-devel@445 f158a5a8-5612-0410-a976-696ce0be7e32
2009-02-05 20:19:50 +00:00
Laurent Vivier
ed13847398 ioglue: cleanup traces
git-svn-id: svn://coreboot.org/openbios/openbios-devel@444 f158a5a8-5612-0410-a976-696ce0be7e32
2009-02-05 20:16:28 +00:00
Laurent Vivier
15c56bea6f Allows to use disk (like CD-ROM) without partition map but with filesystem
on the full disk. We accept partition number 0 (which identifies the full
disk) and partition number 1 (we can see the disk as only one partition).

This is needed to boot openSUSE install CD which uses
"&device;:1,\suseboot\yaboot.ibm" as its boot path.

There is a Mac partition map on the CD, but
partition 1 is the partition map itself, and thus is not usable by a filesystem.
So we can guess, openFirmware must use ISO9660 instead of HFS and thus
to not use the Mac partition map, but the whole CD for the partition #1.

Disk openSUSE-ppc.iso: 135 MB, 135593984 bytes
4 heads, 32 sectors/track, 2069 cylinders
Units = cylinders of 128 * 512 = 65536 bytes

                                  Device Boot      Start         End      Blocks   Id  System 
openSUSE-ppc.iso1               1           1          48   Apple_partition_map
openSUSE-ppc.iso2               1        2066      132160   Apple_HFS



git-svn-id: svn://coreboot.org/openbios/openbios-devel@443 f158a5a8-5612-0410-a976-696ce0be7e32
2009-02-05 00:16:54 +00:00
Laurent Vivier
b47d10c5e2 Extract correctly "&device;" and "&partition;" from bootinfo.txt.
To keep compatibility with yaboot (tested with debian install CD), 
put in bootpath a fully qualified path (<device>:<partition>,<filename>)



git-svn-id: svn://coreboot.org/openbios/openbios-devel@442 f158a5a8-5612-0410-a976-696ce0be7e32
2009-02-05 00:05:58 +00:00
Laurent Vivier
ad3d1b5332 ide.c: cleanup traces
git-svn-id: svn://coreboot.org/openbios/openbios-devel@441 f158a5a8-5612-0410-a976-696ce0be7e32
2009-02-04 11:47:13 +00:00
Laurent Vivier
6e727d8f4b mac-parts: block-size returns value found in partition map
git-svn-id: svn://coreboot.org/openbios/openbios-devel@440 f158a5a8-5612-0410-a976-696ce0be7e32
2009-02-03 20:33:37 +00:00
Blue Swirl
7fbbf2d6eb Add #defines for PCI classes and subclasses
git-svn-id: svn://coreboot.org/openbios/openbios-devel@439 f158a5a8-5612-0410-a976-696ce0be7e32
2009-02-02 17:40:29 +00:00
Blue Swirl
d74b4e50cb Fix x86 PCI initialization
git-svn-id: svn://coreboot.org/openbios/openbios-devel@438 f158a5a8-5612-0410-a976-696ce0be7e32
2009-02-02 17:06:37 +00:00
Blue Swirl
c39ebf65f7 Add #defines for PCI vendor and device IDs for all devices, taken from Linux
and pciids.sourceforge.net.

Also fix a confusion between Sabre and Simba device IDs.


git-svn-id: svn://coreboot.org/openbios/openbios-devel@437 f158a5a8-5612-0410-a976-696ce0be7e32
2009-02-01 11:25:16 +00:00
Blue Swirl
a4a1319305 Fix Sparc64 cross compilation in 32 bit environment, closes #17
git-svn-id: svn://coreboot.org/openbios/openbios-devel@436 f158a5a8-5612-0410-a976-696ce0be7e32
2009-01-31 16:42:01 +00:00
Blue Swirl
c683b2e5bd Exit with nonzero status if there are errors
git-svn-id: svn://coreboot.org/openbios/openbios-devel@435 f158a5a8-5612-0410-a976-696ce0be7e32
2009-01-31 13:33:07 +00:00
Blue Swirl
cfe6134890 Really allow overriding HOSTARCH
git-svn-id: svn://coreboot.org/openbios/openbios-devel@434 f158a5a8-5612-0410-a976-696ce0be7e32
2009-01-31 13:31:29 +00:00
Blue Swirl
c135215b74 Allow overriding HOSTARCH
git-svn-id: svn://coreboot.org/openbios/openbios-devel@433 f158a5a8-5612-0410-a976-696ce0be7e32
2009-01-31 09:07:29 +00:00
Blue Swirl
36bab875b8 Refactor QEMU firmware confguration device handling (based on patch by
Aurelien Jarno)


git-svn-id: svn://coreboot.org/openbios/openbios-devel@432 f158a5a8-5612-0410-a976-696ce0be7e32
2009-01-31 08:49:16 +00:00
Laurent Vivier
d474d768b1 Add mac-io IDE driver
git-svn-id: svn://coreboot.org/openbios/openbios-devel@431 f158a5a8-5612-0410-a976-696ce0be7e32
2009-01-30 07:44:48 +00:00
Stefan Assmann
1a4b1e4f3d Fix fs->vol_name handling
This patch checks wether fs->vol_name exists and handles the
case where it doesn't exist. That fixes the lockup that occurs
when trying to run qemu-system-ppc -cdrom <iso> -boot d

Signed-off-by: Stefan Assmann <sassmann@suse.de>


git-svn-id: svn://coreboot.org/openbios/openbios-devel@430 f158a5a8-5612-0410-a976-696ce0be7e32
2009-01-29 19:56:41 +00:00
Stefan Assmann
bf6f68f96f Add an enhancement to deal with configurations in /ppc/bootinfo.txt like
<boot-script>boot &device;:1,\suseboot\yaboot.ibm</boot-script>.
This would evaluate to boot cd:0,1\suseboot\yaboot.ibm which results
in a file not found error (seen on many openSUSE ppc media).

With this patch the above will evaluate to boot cd:0,\suseboot\yaboot.ibm
and yaboot will load.

Signed-off-by: Stefan Assmann <sassmann@suse.de>



git-svn-id: svn://coreboot.org/openbios/openbios-devel@429 f158a5a8-5612-0410-a976-696ce0be7e32
2009-01-29 10:51:25 +00:00
Blue Swirl
18f34eca50 Fix native Sparc32 compile
git-svn-id: svn://coreboot.org/openbios/openbios-devel@428 f158a5a8-5612-0410-a976-696ce0be7e32
2009-01-26 17:09:21 +00:00
Blue Swirl
78ca85bba5 Fix console escape code problems with NetBSD 4.0 and Debian 3.1r1
git-svn-id: svn://coreboot.org/openbios/openbios-devel@427 f158a5a8-5612-0410-a976-696ce0be7e32
2009-01-25 20:37:01 +00:00
Blue Swirl
eea3589cb9 Use RAM for SMP init instead of NVRAM
git-svn-id: svn://coreboot.org/openbios/openbios-devel@426 f158a5a8-5612-0410-a976-696ce0be7e32
2009-01-25 12:20:12 +00:00
Blue Swirl
3fae06cd81 Add support for floppy boot on Sparc32
git-svn-id: svn://coreboot.org/openbios/openbios-devel@425 f158a5a8-5612-0410-a976-696ce0be7e32
2009-01-25 09:56:08 +00:00