Age | Commit message (Collapse) | Author | Files | Lines |
|
automatically during initialisation.
This is because the work needs to be done by the "is-install" word as per the
IEEE1275 specification.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1143 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
libopenbios/video_common.c.
Remove several more low-level graphic primitives from packages/video.c into
libopenbios/video_common.c.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1142 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Start by moving the get_color() and set_color() functions into the library.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1141 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1140 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Fix cursor position when a linefeed is entered on the bottom line.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1139 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
This enables us to provide a basic scrolling console terminal.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1138 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
This enables us to execute "default-font set-font" as per the the IEEE1275
specification.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1137 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1135 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
The OpenBIOS IDE driver calls udelay() in order to wait for IDE transfers
to complete. Without an implementation of udelay(), the IDE timeout is too
low causing sporadic errors during periods of high I/O activity. As reported
by Artyom Tarasenko.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1134 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
The name 'virtio-scsi' is misleading, since there is another device
called 'virtio-scsi' in QEMU. Use the name 'virtio-blk' instead.
Signed-off-by: Artyom Tarasenko <atar4qemu@gmail.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1133 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Forcing the "interrupts" property to the value of zero is not
necessary, and is incompatible with the IRQ mapping schema
introduced in the previous commit
Signed-off-by: Artyom Tarasenko <atar4qemu@gmail.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1132 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Every PCI Slot in PBM has 4 directly mapped IRQ lines.
Use the IRQ routing schema 0bssnn (Bus, Slot, interrupt Number)
described in Section 19.3.3 of UltraSPARC™-IIi User's Manual.
Please note that this patch requires the QEMU counterpart patch.
Signed-off-by: Artyom Tarasenko <atar4qemu@gmail.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1131 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
The high memory virtual memory reservation introduced in r1114 was a mistake.
We need to leave this area as available for clients but simply not allocate
from it so that the 0xffc00000 area is free for kadb on older versions of
SunOS. Since this part is already handled by the introduction of OFMEM_VIRT_TOP
in the same commit then the behaviour is already correct. As reported by Artyom
Tarasenko.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1130 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Further tests show that the Sun ESCC serial driver routines are also used for
the keyboard device. Hence we also need to update the escc_keyboard bindings
declaration to use ucell instead of phys_addr_t.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1129 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
When binding C functions to Forth words using NODE_METHODs for the SPARC ESCC
serial driver, the C instance parameter pointer was set to be a pointer to a
phys_addr_t.
This is incorrect in the case where sizeof(phys_addr_t) != sizeof(cell) such
as on SPARC32, as the address allocated from the Forth machine would be aligned
to sizeof(cell); hence an alignment exception could be generated on random
occasions on SPARC32 when the allocated address generated by Forth when opening
the device was aligned to just 4 bytes (and not also 8 bytes) when dereferencing
the instance parameter pointer.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1128 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
If open-dev is called on a raw block device such as cdrom, the current code
will always attempt to interpose a partition handler for the first valid
partition table type it finds.
This is incorrect when opening a raw block device directly as it means we
"fall into" the first valid partition that can be found, rather than using
the full raw device. Fix this by only attempting to interpose a partition
handler if the package arguments are not empty.
This fixes the NetBSD SPARC64 bootloader as reported by
Martin Husemann in https://bugs.launchpad.net/qemu/+bug/1169856.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1127 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
buffer
Instead use malloc() so that we can dynamically allocate the string ourselves. As
reported by Rob Landley <rob@landley.net>.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1126 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
buffer
Instead use strdup() so that we can dynamically allocate the string ourselves. As
reported by Rob Landley <rob@landley.net>.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1125 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
dereferences
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1124 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
pointer dereferences
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Acked-by: Artyom Tarasenko <atar4qemu@gmail.com>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1123 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
malloc() functions
Since the handling of bad alignments is now internal to OFMEM, there is no need for
the SPARC32 malloc() functions to have to do this any more.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1122 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
If a memory claim is made with an alignment that is not an exact power of
2, round up to the nearest power of 2 as per the IEEE1275 specification
rather than switching to a 4K default.
Also we make sure that the minimum alignment is equivalent to PAGE_SIZE.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1121 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Similar to the earlier commit for "mmu", do the same for /chosen "memory"
property. Hence all architectures that want the "pretty" memory properties
can provide suitable ihandles if required, and those that don't will not
fail with a NULL pointer dereference from a zero ihandle.
While we're here, correct the SPARC32 initialiser to point to the correct
/virtual-memory node for "mmu" so that once again we can get "pretty"
memory properties on SPARC32.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1120 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
freelist.
The existing code would incorrectly allow freelist memory to be reused if the
requested size were 0x1000 greater than the freelist item size, rather than the
freelist item size being 0x1000 greater than the requested size.
Since internal memory allocations could be smaller than requested, it would be
possible for a caller to clobber over the internal memory heap causing a crash or
internal memory corruption.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1119 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
obp_dumb_memalloc() functions.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1118 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Not all architectures have an "mmu" property in /chosen, and having a NULL
value causes the internal property formatting nodes to invoke a NULL ihandle
reference. The architectures that require it already add it into the device
tree as required during initialisation, so there should be no change in
behaviour. As reported by Artyom Tarasenko.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1117 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
This reverts commit 0bfdafe64f0e7e0a3a692292c82ed22df4d2188b as it accidentally
contained parts of a subsequent patch.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1116 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Not all architectures have an "mmu" property in /chosen, and having a NULL
value causes the internal property formatting nodes to invoke a NULL ihandle
reference. The architectures that require it already add it into the device
tree as required during initialisation, so there should be no change in
behaviour. As reported by Artyom Tarasenko.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1115 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Instead of using the automatic allocator to determine the location of the
Forth dictionary, allocate it at a fixed location just underneath the ROM
itself at 0xffd00000.
This patch also prevents corruption within the RAM of the Forth machine
by ensuring that we allocate virtual memory outside of OpenBIOS itself,
plus reduces the size of the Forth dictionary to 128K so that it meets
the memory constraints required to boot Linux and also kadb from older
versions of SunOS (as reported by Artyom Tarasenko).
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1114 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
translations property.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1113 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Signed-off-by: Artyom Tarasenko <atar4qemu@gmail.com>
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1112 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
openpic_init is only called on newworld machines.
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1111 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1110 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Based on patch from Andreas Tobler.
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
CC: Andreas Tobler <andreast@fgznet.ch>
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1109 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
interrupts and #interrupt-cells are newworld properties.
Also oldworld interrupts were not properly set, i.e. second one was always
set to 0 instead of correct value.
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1108 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
crossdev on gentoo builds crosscompiler with powerpc-unknown-linux-gnu-
prefix.
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1107 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
By adding the bootcode device to the bootdevice list as processed by load,
we automatically attempt to invoke the bootcode loader as required.
As a consequence of this, we can now remove the separate C codepath used
in order to facilitate an old-world boot.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
CC: Alexander Graf <agraf@suse.de>
CC: Andreas Färber <afaerber@suse.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1106 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
One of the primary reasons that issues with the quik bootloader were not
detected earlier was because arch/ppc/qemu/main.c has a separate code path
for forcing an old-world boot when -boot c is passed to QEMU.
This commit implements the bootcode loader as a core OpenBIOS loader which
enables old-world payloads such as quik to be executed using:
load hd:,%BOOT
go
Note that we also fix a bug in mac-parts.c to ensure that we don't try and
interpose a filesystem package when %BOOT is passed as a filename.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
CC: Alexander Graf <agraf@suse.de>
CC: Andreas Färber <afaerber@suse.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1105 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
It was returning true for ARCH_PREP although not an Apple device.
Limit it to Old World and New World Macs.
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1104 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Commit r1100 fixed the quik bootloader but broke automatic partition selection
for the dir word.
Differentiate between the package having no arguments (argstr == NULL) and
the package having empty arguments (argstr == ""), and alter the dir word
to use the latter version to invoke the automatic partition selection code
when required.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
CC: Alexander Graf <agraf@suse.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1103 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
When running on ppc64, we have to disable MSR_SF before we issue a
lis instruction. All exceptions were doing this, except for the error
trap.
This isn't crucial, because when we got there we're already screwed up,
but let's not confuse users by jumping to invalid addresses.
Signed-off-by: Alexander Graf <agraf@suse.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1102 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Use subdirectory build rules from QEMU. They allow a parallel build of
all available subdirectory targets.
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1101 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Commit r1072 removed a couple of NULL pointer checks for package arguments,
however if the arguments are empty in Forth then they are converted back to a
NULL pointer which causes an exception when dereferenced.
Add the checks back in which fixes boot of the debian_lenny_powerpc_small.qcow2
test image with quik once again. Based upon an earlier patch by Alexander Graf
<agraf@suse.de>.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
CC: Alexander Graf <agraf@suse.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1100 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Support building in any directory, not just in-tree build.
Use VPATH for non-Forth files.
Forth compiler does not support explicit paths, so drop source path
prefixes added by XML and rely on directories passed with -I flag.
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1099 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
For the microSPARC-II = Fujitsu MB86904 = Sun STP1012PGA,
PSR.IMPL=0 and PSR.VERS=4.
This CPU model is used as default by QEMU when emulating
a SparcStation-4 or SparcStation-5.
Signed-off-by: Olivier DANET <odanet@caramail.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1098 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
There are two nvram entries on newworld (for example qemu -M mac99)
The first one (nvram@fff04000) has initialized .properties while the
other one has words.
0 > dev / ls
...
fff75e24 pci@f2000000
fff77848 nvram@fff04000
fff778e0 nvram
ok
0 > dev /nvram@fff04000 ok
0 > words
ok
0 > .properties
name "nvram"
reg fff04000 00004000
device_type "nvram"
compatible "nvram,flash"
ok
0 > dev /nvram@0 ok
0 > words close open seek write read size
ok
0 > .properties
name "nvram"
ok
This patch fixes initialization, so only one node is created
containing both .properties and words.
0 > dev / ls
...
fff75e24 pci@f2000000
fff77868 nvram@fff04000
ok
0 > dev /nvram@fff04000 ok
0 > words close open seek write read size
ok
0 > .properties
name "nvram"
reg fff04000 00004000
device_type "nvram"
compatible "nvram,flash"
ok
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1097 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
The SparcV8 standard states, page 134:
"If any of the three instructions after a write state register
instruction reads any field that was changed by the original
write state register instruction, the contents of that
field read by that instruction are undefined."
The restore instruction depends on the %WIM register,
three NOPs must be inserted.
Signed-off-by: Olivier DANET <odanet@caramail.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1096 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
The Frame Pointer register is used in "__switch_context_nosave"
(switch.S) which is called at the end of the startup sequence
(entry.S). This register should be initialized before use.
(The SparcV8 standard states, page 75: "Supervisor software may
not assume that any particular processor or memory state, except
for the PSR's ET and S bits, has been initialized after a reset trap."
Signed-off-by: Olivier DANET <odanet@caramail.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1095 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
The SCSI command code is at position 1, the first byte is the message_out
byte (=0x80, constant).
Signed-off-by: Olivier DANET <odanet@caramail.com>
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1094 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
"TEST UNIT READY" is a 6 bytes SCSI command
(00h/LUN/reserved/reserved/reserved/Control) and it is preceded by a IDENTIFY
(0x80) message_out byte. The ESP transfer size is therefore 7 bytes.
Signed-off-by: Olivier DANET <odanet@caramail.com>
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@1093 f158a5a8-5612-0410-a976-696ce0be7e32
|