aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2012-02-22Expose hv-logical-memop to forth codeBenjamin Herrenschmidt4-0/+31
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2012-02-22Move _FASTRMOVE implementation into headers & support new hcallBenjamin Herrenschmidt4-55/+115
This moves _FASTREMOVE to the cache.h header, 970 uses the existing code, p7 now uses the new memop hcall. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2012-02-22Add a proper compiler barrier between prim'sBenjamin Herrenschmidt1-1/+1
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2012-02-22Change RTAS checkpoint numbers to avoid overlapBenjamin Herrenschmidt1-6/+5
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2012-02-22Fix address masking for video cardsBenjamin Herrenschmidt2-2/+2
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2012-02-16Removed pci-setup.fsqemu-slof-20120217Thomas Huth2-38/+0
The file pci-setup.fs provided the basic PCI environment in the past when we did not do a full PCI scan yet. Now that we include the whole PCI scan functions via pci-scan.fs in tree.fs, the pci-setup.fs file is not needed anymore. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2012-02-14Fixed disk-label partition parsing to also work with single partition argumentsThomas Huth3-9/+26
The parse-partition function was not able to deal with arguments that only contained a partition number (without comma), e.g. "boot disk:1" failed. Also limited the size that we load from a PReP partition in case the hard disk is smaller than max-prep-partition-blocks. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2012-02-14Fixed debugger for functions with (doito)Thomas Huth2-0/+2
Functions that use the TO keyword with an instance variable need some special treatment, just like we did it with the TO for normal variables already (see the usage of <doto> in debugger.fs). Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2012-02-14Fixed $call-method to clean up the return stack in case of errors.Thomas Huth1-1/+5
There was a bug that occured when yaboot tried to load its configuration file via network. The net-snk tries to probe the device tree node for write and read methods (see ci_device.c), which triggers $call-method in the end. But when $call-method failed, it did not restore my-self and the return stack, which caused some bad crashes. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2012-02-14Added a possibility to debug the client interface callsThomas Huth1-10/+58
Set "debug-client-interface?" to TRUE to enable the debug messages. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2012-02-14Do not blindly scan all PCI bus IDsThomas Huth1-1/+1
We know that QEMU always starts with bus ID 0, so to speed up the boot process quite a bit, we do not have to scan all 255 bus IDs here. In full emulation mode, SLOF now boots ~20 seconds faster when there are no PCI devices attached. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2012-02-02New oco for JS20Thomas Huth1-0/+0
The old file did not work with new compilers anymore.
2012-01-19Add cirrus support under qemuBenjamin Herrenschmidt2-0/+337
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2012-01-19vga: Small fixesBenjamin Herrenschmidt1-4/+4
Properly clear screen and don't write to constants Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2012-01-19Add virtfs supportBenjamin Herrenschmidt14-4/+1210
Code originally written by Timothy Rule and reworked & bug fixed by myself Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2012-01-19Move virtio to a separate libraryBenjamin Herrenschmidt15-59/+135
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2012-01-13FCODE: Support for old-fashioned "local values" tokensThomas Huth2-0/+156
One of the old FCODE tokenizers uses the opcodes in the range of 0x407 to 0x41f for supporting Forth local values. To get these FCODE programs working, we have to support these opcodes, too. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2012-01-12Updated the documentationThomas Huth2-71/+143
Now the documentation reflect that we support KVM/QEMU, too. Also added a short section about the source code structure. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2012-01-12Fix ram-boot handling of 64-bit addressesqemu-slof-20120112Benjamin Herrenschmidt1-2/+2
Hex vs. decimal thinko Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2012-01-12usb-ohci: Avoid instance specific allocationsBenjamin Herrenschmidt1-10/+25
The USB stack did instance specific allocations for the various buffers, but would then assign them to package specific lists, and would generally get badly confused as soon as multiple instances of the driver got opened. This typically occurs when using a USB keyboard and booting from a USB disk. This makes everything node variables instead, with tracking of how many instances are open, with one allocation pass on the first open and one free pass on the last close. The result is a lot more reliable, I can boot with USB keyboard and a USB disk fine without hanging qemu. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2012-01-11Fixed problem in framebuffer code when erasing or inserting characters.Thomas Huth1-4/+10
When erasing characters or when inserting characters in the middle of a line, the framebuffer code did not correctly calculate the line width, since it was not taking the bit depth into account yet. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2012-01-11Support new-style PCI for qemu boardqemu-slof-20120111.1Benjamin Herrenschmidt7-28/+100
We now support populating the device-nodes ourselves when using a newer qemu which doesn't do it anymore. Note: I have removed the support for working with the existing device nodes, so qemu needs to be updated in sync with slof Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2012-01-11Fix virtio access sizeqemu-slof-20120111Benjamin Herrenschmidt1-5/+11
We don't support 8-bytes PIO Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2012-01-11Fix inline asm for ci_write_xxBenjamin Herrenschmidt1-19/+31
It was clobbering r4 and not marking it as such, causing problems among others in virtio-blk Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2012-01-11vga: support for 15bppBenjamin Herrenschmidt1-2/+3
This is the default in qemu now Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2012-01-11qemu: Allow qemu passing the boot kernel directlyBenjamin Herrenschmidt1-0/+38
We do that by replacing the word "boot-command" to return "(boot-ram)" (but we don't change the nvram env). Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2011-12-29Add support for instance specific "my-unit" settingsThomas Huth2-15/+82
According to IEEE 1275, the "my-unit" command shall return the unit address of the current _instance_, i.e. this unit address can be set differently for each instance, it is not bound to the physical unit address like "my-space" and "my-address". This behaviour is expected by the Citrine FCODE for example, which does not set a physical unit address for the "sd" (disk) nodes, but needs the unit address to be specified when opening the device tree node instead. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2011-12-28Enabled -Wmissing-prototypes and -Wstrict-prototypes CFLAGS and cleaned upThomas Huth11-92/+62
These two compiler flags for additional warnings help to improve the quality of the source code: Removed some unused code and fixed some obvious bugs. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2011-12-28Source code beautificationThomas Huth1-46/+91
Some functions in node.fs were formatted in a very bad way, using wrong indentation or mixing spaces and tabs for indentation. Cleaned this up now, without doing any functional changes. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2011-12-28Improved "tick", postpone and $FIND commandsThomas Huth2-16/+9
When the ' (tick) or postpone commands hit an unknown function, they simply printed out "undefined word" without telling which word was not defined. These problems were quite cumbersome to debug since it was quite hard to find the right spot in the source code where such problems happened. Now the tick and postpone command store the name of the undefined word, too, so that the code which catches the ABORT also prints this information. I also fixed the $FIND command to be standard compliant right from the start (so that it leaves the string parameters on the stack in case the word has not been found). Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2011-12-22Fixed yet another bug in open-nodeThomas Huth1-12/+22
When the "open" method of the target node failed, the open-node function did not correctly restore the previous value of "my-self" (it was using my-parent of the new node to restore the previous value, but that did not work when the new node could not be opened). Now the old value of "my-self" is saved on the return stack instead and then always correctly restored. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2011-12-21Enable 16 bit and 32 bit color depth support in QEMU VGA device driverThomas Huth1-8/+6
Now that our framebuffer code basically supports 16 and 32 bit color depths, we can also enable support for these resolutions in the QEMU VGA device driver. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2011-12-21Disable the debug message about FDT phandles that could not be replacedThomas Huth1-1/+3
The "Warning: Did not replace phandle in XYZ" messages could confuse the normal users, so they are now only printed when running in diagnostic-mode. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2011-12-20Improved framebuffer code to support more than only 8-bit resolutionsThomas Huth1-18/+46
With these changes, it should be possible to use screen depth of 16 bit and 32 bit as well. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2011-12-20Fixed assembler constraints for lwbrx and lhbrxThomas Huth1-2/+4
The biosemu on bimini had some problems with newer versions of GCC ... I saw on a couple of websites that for lwbrx and lhbrx, the assembler constraint "Z" should be used instead of "r". This seems to fix the hang.
2011-12-20Fixes for using the USB keyboard driver on QEMUThomas Huth1-9/+25
For some reasons, interrupt transfers do not work right on QEMU, so we use control transfers there instead. Also digest one key scancode at a time only to avoid the problem with phantom keypresses. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2011-12-20Do not override the "model" property of the root node.Thomas Huth1-6/+6
QEMU already provides a string for the "model" property of the root node. We should not change this to avoid incompatibilities with the kernel. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2011-12-20Source code beautificationThomas Huth1-110/+110
Cleaned up indentation and superfluous white spaces in usb-keyboard.fs Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2011-12-20Add support for qemu standard VGABenjamin Herrenschmidt4-14/+354
Simple framebuffer support for the standard VGA display provided by QEMU. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2011-12-20FCODE: Always include evaluator, move framebuffer token init to fbuffer.fsThomas Huth10-88/+159
Since the FCODE evaluator can be used for more than one PCI card now, the interpreter is now always included during boot. The framebuffer tokens are now only initialized when the code from fbuffer.fs is being used. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2011-12-20Added net-snk client-interface moduleThomas Huth4-3/+138
So far the net-snk could only use networking cards that had corresponding drivers in the ROM filesystem. NICs that come with their of FCODE drivers were not supported yet. For these NICs I added now a pseudo-module to the net-snk that is able to use the corresponding device tree nodes via the "read" and "write" functions of the client interface. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2011-12-20JS2x: Added oco files to be able to built board-js2xThomas Huth4-0/+0
These additional files are necessary to built board-js2x, see the following URL for details: http://www.ibm.com/developerworks/power/pa-slof-js20/
2011-12-20Two minor improvements for the device tree node codeThomas Huth1-3/+9
The "open-node" command always tried to execute the "open" method of the node that should be opened and used CATCH to determine whether the method is available or not (and assumed success if it is not available). That works fine as long as the "open" method does not ABORT due to any reason - in that case the "open" should be considered as failure instead. So the code is now using "find-method" instead to determine whether the "open" method is available or not. Second fix is about "my-unit". According to IEEE1275, this value should be initialized to the firt component of the "reg" property in case it has not been specified by other means. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2011-12-20Fixed get-inherited-propertyThomas Huth1-10/+13
The get-inherited-property function messed up the stack in case the property could not be found. Now it deals with this situation correctly. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2011-12-20Repeat TFTP read request in case the packet got lost.Thomas Huth1-1/+7
The TFTP downloads failed when the read request packet got lost. This problem is now fixed by retransmitting the read request after a while. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2011-12-20Fixed "map-in" to also allow access to the Option ROM BAR.Thomas Huth2-2/+2
Some FCODE programs try to access their ROM BAR, so map-in has got to support this BAR, too. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2011-12-20JS2x: Fixed config space access functions.Thomas Huth1-1/+8
According to the PCI bus binding to Open Firmware, the uppermost byte can contain some description bits when doing "config-l@" and the like. For accessing the config space via MMIO, we've got to mask them away. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2011-12-20Fixed the BEHAVIOR function to also work with INSTANCE DEFERsThomas Huth1-0/+8
The BEHAVIOR function only worked with normal DEFER variables so far. It was not aware of INSTANCE DEFERs yet. This problem has been fixed now. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2011-12-20Removed unused codeThomas Huth1-39/+0
In 1275.fs there were some functions that were apparently not used anymore. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2011-12-20FCODE: Support for fcode programs with 8-bit offsetsThomas Huth3-12/+21
IEEE1275 allows offset values to be either encoded with 8-bit values or 16-bit values. So far our FCODE engine only supported 16-bit offsets. Now 8-bit offsets are working, too. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>