OpenBIOS
Threads by month
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2000 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1999 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1998 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1997 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1996 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1995 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1994 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1993 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1992 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1991 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1990 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1989 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1988 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1987 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1986 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1985 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1984 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1983 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1982 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1981 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1980 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1979 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1978 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1977 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1976 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1975 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1974 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1973 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1972 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1971 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1970 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1969 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1968 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1967 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1966 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1965 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1964 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1963 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1962 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1961 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1960 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1959 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1958 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1957 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1956 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1955 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1954 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1953 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1952 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1951 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1950 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1949 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1948 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1947 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1946 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1945 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1944 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1943 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1942 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1941 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1940 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1939 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1938 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1937 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1936 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1935 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1934 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1933 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1932 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1931 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1930 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1929 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1928 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1927 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1926 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1925 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1924 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1923 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1922 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1921 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1920 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1919 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1918 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1917 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1916 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1915 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1914 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1913 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1912 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1911 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1910 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1909 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1908 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1907 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1906 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1905 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1904 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
December 2016
- 2 participants
- 5 discussions
[PATCH] libopenbios/bootinfo_load.c: Implement Mac OS 9.2 boot script support
by Programmingkid Dec. 25, 2017
by Programmingkid Dec. 25, 2017
Dec. 25, 2017
This patch makes booting Mac OS 9.2 possible. It replaces all occurrences of
>r and r> with sub_>r and sub_r>. This allows for the return stack to be left
alone. This patch also makes it so that the boot script is executed one line at a time.
Signed-off-by: John Arbuckle <programmingkidx(a)gmail.com>
Note: this patch depends on the strstr() and return stack substitution patches.
Index: libopenbios/bootinfo_load.c
===================================================================
--- libopenbios/bootinfo_load.c (revision 1395)
+++ libopenbios/bootinfo_load.c (working copy)
@@ -19,6 +19,7 @@
#include "libopenbios/bootinfo_load.h"
#include "libopenbios/ofmem.h"
#include "libc/vsprintf.h"
+#include "libc/string.h"
//#define DEBUG_BOOTINFO
@@ -116,6 +117,75 @@
return LOADER_NOT_SUPPORT;
}
+// Replace all occurrences of orig_str in buffer with replace_str
+static void replace_string(char *buffer, const char *orig_str, const char *replace_str)
+{
+ char *ptr;
+ int index, new_buf_index = 0;
+ const int max_size = 5000;
+ char *new_buffer = malloc(max_size * sizeof(char));
+
+ for (index = 0; index < strlen(buffer); index++) {
+ if (buffer[index] == orig_str[0]) {
+ ptr = strstr(buffer + index, orig_str);
+
+ // if we encountered an orig_str in the buffer
+ if (index == (ptr - buffer)) {
+ sprintf(new_buffer + new_buf_index, "%s ", replace_str);
+ new_buf_index += strlen(replace_str) + 1;
+ index += strlen(orig_str);
+ continue;
+ }
+ }
+ new_buffer[new_buf_index++] = buffer[index];
+ }
+
+ // copy new_buffer into buffer
+ for (index = 0; index < strlen(new_buffer); index++) {
+ buffer[index] = new_buffer[index];
+ }
+ buffer[index+1] = '\0';
+}
+
+/* Replace >r and r> with sub_>r and sub_r> */
+static void replace_return_stack_words(char *bootscript)
+{
+ const char *find_str1 = ">r";
+ const char *replace_str1 = "sub_>r";
+ const char *find_str2 = "r>";
+ const char *replace_str2 = "sub_r>";
+
+ replace_string(bootscript, find_str1, replace_str1);
+ replace_string(bootscript, find_str2, replace_str2);
+}
+
+/* Runs the bootscript one line at a time */
+void run_script(char *bootscript)
+{
+ int index = 0, buf_index = 0;
+ char c;
+ char *buffer = malloc(1000 * sizeof(char));
+
+ while (1) {
+ c = bootscript[index];
+
+ // fill up buffer
+ while (c != '\n' && c != '\r' && c != '\0') {
+ buffer[buf_index++] = c;
+ c = bootscript[++index];
+ }
+ buffer[buf_index] = '\0';
+ buf_index = 0;
+ index++;
+ DPRINTF("%s\n", buffer);
+ feval(buffer);
+ if (c == '\0') {
+ break;
+ }
+ }
+ free(buffer);
+}
+
/*
Parse SGML structure like:
<chrp-boot>
@@ -209,9 +279,6 @@
script = 0;
bootscript[scriptlen] = '\0';
- DPRINTF("got bootscript %s\n",
- bootscript);
-
scriptvalid = -1;
break;
@@ -261,8 +328,8 @@
/* If the payload is bootinfo then we execute it immediately */
if (scriptvalid) {
- DPRINTF("bootscript: %s\n", bootscript);
- feval(bootscript);
+ replace_return_stack_words(bootscript);
+ run_script(bootscript);
}
else
DPRINTF("Unable to parse bootinfo bootscript\n");
4
9
Hello Zoltan, hey list,
On Mon, Nov 21, 2016 at 07:15:21PM +0100, BALATON Zoltan wrote:
> ...
> For forth commands I've found this page useful (not sure if this is linked
> from somewhere):
> http://www.firmworks.com/QuickRef.html
Thank you, I found this (and more) last week. The OLPC sites are the
best for me:
1: http://wiki.laptop.org/go/Open_Firmware
2: http://wiki.laptop.org/go/Forth_Lessons
3: http://wiki.laptop.org/go/Cross_Compiling_Open_Firmware
> ...
> This is a bit confusing. There are multiple implementations of the IEEE
> standard (commonly referred to as Open Firmware) and one of these is also
> called Open Firmware. These are listed under Implementations on the left of
> the page at www.openfirmware.info. Another implementation used by QEMU for
Yes and I looked at them. But they are either very old or not usable for
ppc (too much work to implement a new arch).
> ...
> talking about Open Firmware: the standard or the implementation with the
> same name.
One thing is left which confuses me: In wikipedia and you say, that you
use the name "Open Firmware" (also, besides as name for a standard) for
an implementation. OK.
But the website gives the impression (and G 3 says), that the implementation
has the name "OpenBIOS"...
So I have two statements which don't fit well. Please remember that I am
new to this and did not live through the history.
> ...
> Actually running OpenBIOS on real hardware is not something that is well
> tested (I'm not sure if it was ever tried but I think it wasn't done
> recently) so if you try to do that be prepared for likely needing some
The OLPC project did it, e.g.
> fixing. This is true for any implementation that does not support the
> hardware you want to run it on, then you likely need to port it.
That there will be the need for porting was clear.
> ...
> it's enough to have the basics in there. Not sure how much up to date is
> this but this is discussed in the kernel documentation here:
> https://www.kernel.org/doc/Documentation/devicetree/booting-without-of.txt
>
Thank you, I missed this source.
> As for giving the device tree to OpenBIOS I think it should just know it or
> construct it from discovering the hardware as the point of the device tree
> is to describe the hardware for the operating system so the firmware should
> know the hardware and provide the device tree. It does not get it from
The "firmware" is our handmade init-assemblercode. It has to enable the
machine (beginning from Adam...) to run C-code in its RAM.
If there is no software-interface, then we provide the device-tree maybe in
forth or in a blob. Just thinking loudly.
> ...
> In fact OpenBIOS does not have that many drivers but maybe the basics are
> there, only the platform specific init code might need to be adapted for a
That would be very nice. We give it a try. Maybe with help from you / the
list.
> new board. For ppc these would be in arch/ppc. Running on QEMU is quite a
> bit simpler as we can skip a lot of init code (such as memory controller or
> other hardware) so maybe these are not well implemented or buggy as they
> were not tested with real hardware for a while.
> ...
Did you use OpenBIOS in a recent qemu and have you been able to remote-debug
it there? I was able to load and run the old OpenBIOS code (from svn repo)
on "qemu-system-ppc".
Thank you for your time and suggestions, greetings,
Michael
7
10
[PATCH 3/4] arch/ppc/qemu: Add a node for the other (empty) PCI bus to the device tree
by BALATON Zoltan Jan. 2, 2017
by BALATON Zoltan Jan. 2, 2017
Jan. 2, 2017
QEMU emulates two of the three PCI buses found on real hardware because
some clients seem to need both and fail with only one present, but
OpenBIOS only handles a single PCI bus and initialises and puts in the
device tree only one of these: the second one which is where devices are
connected and also marks it bus 0. However, clients getting info from the
device tree may not know about this and thinking there is only one PCI
bus they erroneously use the address of the first bus to access PCI
config registers for devices on the second bus which silently fails as
these requests will go to the other empty bus emulated and return invalid
values. Devices mapped via MMIO still appear to work but they may not be
correctly initialised and some cards are not detected because of this.
Until support for multiple PCI buses is implemented add an empty node in
the device tree for the uninitialised bus to let clients know about it.
This is still not entirely correct as bus-range property does not match
real hardware but this fixes detecting PCI devices (such as USB) under
MorphOS and may also fix enabling the bus master bit needed with some
network cards and allow the workarund for this to be reverted.
Signed-off-by: BALATON Zoltan <balaton(a)eik.bme.hu>
---
arch/ppc/qemu/tree.fs | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/arch/ppc/qemu/tree.fs b/arch/ppc/qemu/tree.fs
index 5b6bbc6..e1708de 100644
--- a/arch/ppc/qemu/tree.fs
+++ b/arch/ppc/qemu/tree.fs
@@ -50,6 +50,18 @@ new-device
h# ff800000 encode-int encode+ " ranges" property
finish-device
+\ Add empty node for first pci bus
+\ Remove this when pci driver is fixed to handle multiple buses
+new-device
+ " pci" device-name
+ " pci" device-type
+ h# f0000000 encode-int 02000000 encode-int encode+ " reg" property
+ 3 encode-int " #address-cells" property
+ 2 encode-int " #size-cells" property
+ 1 encode-int " #interrupt-cells" property
+ 0 encode-int 0 encode-int encode+ " bus-range" property
+finish-device
+
\ -------------------------------------------------------------
\ /packages
\ -------------------------------------------------------------
--
2.7.4
2
4
Trying to build /arm/mmp2 on Fedora 23 64 bit and getting just errors.
by madscientist Dec. 31, 2016
by madscientist Dec. 31, 2016
Dec. 31, 2016
I am trying to build openfirmware for an Allwinner A13 board so it can
have a means to call an OS.
I had follow the instructions on the Wiki on my Fedora 23 x64 KDE
machine, while i think i have the
gnu toolchain properly installed, i just get a massive ammount of errors.
That's what i get after make -i...
[madscientist@localhost arm]$ cd mmp2
[madscientist@localhost mmp2]$ ls
addrs.fth config.fth fw.bth make-sdkit.sh physaddr.fth sdkit.fth timer.fth
apbc.fth ddr_elpida_512m.fth galcore.fth mdma.fth pmua.fth sdkit.sh twsi.fth
boardgpio.fth devices.fth gpio.fth mfpr.fth probemem.fth sdregs.fth
twsi-node.fth
boardtwsi.fth dma.fth hash.fth mmp2.bth random.fth showirqs.fth
twsi-package.fth
boot.fth draminit.fth hwaddrs.fth mmuon.fth rawboot.fth soc-config.fth
uart.fth
build dramrecal.fth initmmu.fth
ntim_mmp2_nand_cforth_ddr_elpida_512m.fth rootnode.fth socregs.fth
ulpiphy.fth
cforth.bth dsi.fth irq.fth ntim_mmp2_nand_ofw_ddr_elpida_512m.fth
rtc.fth sp.bth virtaddr.fth
clocks-complex.fth fast-scroll.patch keypad.fth
ntim_mmp2_nand_ofwonly_ddr_elpida_512m.fth sdhcimmp2.fth spimaster.fth
wakeups.fth
clockset.fth fuse.fth lcdcfg.fth
ntim_mmp2_nand_uboot_ddr_elpida_512m.fth sdkit-arm sspspi.fth watchdog.fth
clocks.fth fusepgm.fth lcd.fth ofw.bth sdkit-arm.tgz thermal.fth
[madscientist@localhost mmp2]$ cd build
[madscientist@localhost build]$ make
make[1]: Entering directory
'/home/madscientist/Desktop/openfirmware/cpu/x86/Linux'
cc -c -O -g -m32 -DTARGET_X86 ../../../forth/wrapper/wrapper.c -o wrapper.o
In file included from /usr/include/features.h:389:0,
from /usr/include/stdio.h:27,
from ../../../forth/wrapper/wrapper.c:55:
/usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file
or directory
compilation terminated.
Makefile:56: recipe for target 'wrapper.o' failed
make[1]: *** [wrapper.o] Error 1
make[1]: Leaving directory
'/home/madscientist/Desktop/openfirmware/cpu/x86/Linux'
Makefile:25: recipe for target '../../../x86/Linux/forth' failed
make: *** [../../../x86/Linux/forth] Error 2
[madscientist@localhost build]$ make -i
make[1]: Entering directory
'/home/madscientist/Desktop/openfirmware/cpu/x86/Linux'
cc -c -O -g -m32 -DTARGET_X86 ../../../forth/wrapper/wrapper.c -o wrapper.o
In file included from /usr/include/features.h:389:0,
from /usr/include/stdio.h:27,
from ../../../forth/wrapper/wrapper.c:55:
/usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file
or directory
compilation terminated.
Makefile:56: recipe for target 'wrapper.o' failed
make[1]: [wrapper.o] Error 1 (ignored)
cc -c -O -g -m32 -DTARGET_X86 ../../../forth/wrapper/logger.c -o logger.o
In file included from /usr/include/features.h:389:0,
from /usr/include/stdio.h:27,
from ../../../forth/wrapper/logger.c:16:
/usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file
or directory
compilation terminated.
Makefile:56: recipe for target 'logger.o' failed
make[1]: [logger.o] Error 1 (ignored)
cc -c -O -g -m32 -DTARGET_X86 -I../../../forth/wrapper/zip
../../../forth/wrapper/zip/adler32.c -o adler32.o
In file included from /usr/include/features.h:389:0,
from /usr/include/sys/types.h:25,
from ../../../forth/wrapper/zip/zconf.h:364,
from ../../../forth/wrapper/zip/zlib.h:34,
from ../../../forth/wrapper/zip/zutil.h:22,
from ../../../forth/wrapper/zip/adler32.c:8:
/usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file
or directory
compilation terminated.
Makefile:59: recipe for target 'adler32.o' failed
make[1]: [adler32.o] Error 1 (ignored)
cc -c -O -g -m32 -DTARGET_X86 -I../../../forth/wrapper/zip
../../../forth/wrapper/zip/compress.c -o compress.o
In file included from /usr/include/features.h:389:0,
from /usr/include/sys/types.h:25,
from ../../../forth/wrapper/zip/zconf.h:364,
from ../../../forth/wrapper/zip/zlib.h:34,
from ../../../forth/wrapper/zip/compress.c:9:
/usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file
or directory
compilation terminated.
Makefile:59: recipe for target 'compress.o' failed
make[1]: [compress.o] Error 1 (ignored)
cc -c -O -g -m32 -DTARGET_X86 -I../../../forth/wrapper/zip
../../../forth/wrapper/zip/crc32.c -o crc32.o
In file included from /usr/include/features.h:389:0,
from /usr/include/sys/types.h:25,
from ../../../forth/wrapper/zip/zconf.h:364,
from ../../../forth/wrapper/zip/zlib.h:34,
from ../../../forth/wrapper/zip/zutil.h:22,
from ../../../forth/wrapper/zip/crc32.c:29:
/usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file
or directory
compilation terminated.
Makefile:59: recipe for target 'crc32.o' failed
make[1]: [crc32.o] Error 1 (ignored)
cc -c -O -g -m32 -DTARGET_X86 -I../../../forth/wrapper/zip
../../../forth/wrapper/zip/deflate.c -o deflate.o
In file included from /usr/include/features.h:389:0,
from /usr/include/sys/types.h:25,
from ../../../forth/wrapper/zip/zconf.h:364,
from ../../../forth/wrapper/zip/zlib.h:34,
from ../../../forth/wrapper/zip/zutil.h:22,
from ../../../forth/wrapper/zip/deflate.h:16,
from ../../../forth/wrapper/zip/deflate.c:52:
/usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file
or directory
compilation terminated.
Makefile:59: recipe for target 'deflate.o' failed
make[1]: [deflate.o] Error 1 (ignored)
cc -c -O -g -m32 -DTARGET_X86 -I../../../forth/wrapper/zip
../../../forth/wrapper/zip/trees.c -o trees.o
In file included from /usr/include/features.h:389:0,
from /usr/include/sys/types.h:25,
from ../../../forth/wrapper/zip/zconf.h:364,
from ../../../forth/wrapper/zip/zlib.h:34,
from ../../../forth/wrapper/zip/zutil.h:22,
from ../../../forth/wrapper/zip/deflate.h:16,
from ../../../forth/wrapper/zip/trees.c:37:
/usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file
or directory
compilation terminated.
Makefile:59: recipe for target 'trees.o' failed
make[1]: [trees.o] Error 1 (ignored)
cc -c -O -g -m32 -DTARGET_X86 -I../../../forth/wrapper/zip
../../../forth/wrapper/zip/zutil.c -o zutil.o
In file included from /usr/include/features.h:389:0,
from /usr/include/sys/types.h:25,
from ../../../forth/wrapper/zip/zconf.h:364,
from ../../../forth/wrapper/zip/zlib.h:34,
from ../../../forth/wrapper/zip/zutil.h:22,
from ../../../forth/wrapper/zip/zutil.c:8:
/usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file
or directory
compilation terminated.
Makefile:59: recipe for target 'zutil.o' failed
make[1]: [zutil.o] Error 1 (ignored)
cc -m32 -o forth wrapper.o logger.o adler32.o compress.o crc32.o
deflate.o inflate.o trees.o zutil.o
cc: error: wrapper.o: No such file or directory
cc: error: logger.o: No such file or directory
cc: error: adler32.o: No such file or directory
cc: error: compress.o: No such file or directory
cc: error: crc32.o: No such file or directory
cc: error: deflate.o: No such file or directory
cc: error: trees.o: No such file or directory
cc: error: zutil.o: No such file or directory
Makefile:43: recipe for target 'forth' failed
make[1]: [forth] Error 1 (ignored)
make[1]: Leaving directory
'/home/madscientist/Desktop/openfirmware/cpu/x86/Linux'
./build ofw.rom
./build: line 85:
/home/madscientist/Desktop/openfirmware/cpu/x86/Linux/forth: No such
file or directory
Makefile:22: recipe for target 'ofw.rom' failed
make: [ofw.rom] Error 127 (ignored)
sed: can't read ../../build/*.tag: No such file or directory
sed: can't read *.tag: No such file or directory
[madscientist@localhost
build]$https://www.openfirmware.info/Building_OFW_for_ARM
Is something else i can do on my system looking towards building the
binary? Do i have to install x86 32bit libraries or something else?
Respect the Allwinner A13, is is the best choice for using this firmware
or should i try something else?
2
1
Only the first CPU should clear the RAM
Signed-off-by: Olivier Danet <odanet(a)caramail.com>
--------------------
diff --git a/arch/sparc32/entry.S b/arch/sparc32/entry.S
index 82aa88e..0374f0c 100644
--- a/arch/sparc32/entry.S
+++ b/arch/sparc32/entry.S
@@ -125,6 +125,17 @@ entry:
sll %g3, 24, %g3
or %g3, %g4, %g1
! %g1 contains end of memory
+
+ ! Get CPU number
+ ! XXX: not all CPUs should have MXCC
+ set 0x1c00f00, %g2
+ ldda [%g2] ASI_CONTROL, %g2
+ srl %g3, 24, %g7
+ subcc %g7, 8, %g7
+
+ ! Only the first CPU clears memory
+ bnz clear_done
+ nop
! Get kernel address from configuration device
! NB: little endian format
@@ -146,6 +157,9 @@ entry:
sll %g3, 24, %g3
or %g3, %g4, %g4
+ mov 0,%l0
+ mov 0,%l1
+
! If kernel address is set, don't clear from base of RAM in order to
! leave the kernel image intact
mov 0, %g6
@@ -157,8 +171,8 @@ entry:
set 0x1000000, %g6
clear_mem:
- sta %g0, [%g6] ASI_M_BYPASS
- add %g6, 0x4, %g6
+ stda %l0, [%g6] ASI_M_BYPASS
+ add %g6, 0x8, %g6
cmp %g6, %g1
bl clear_mem
nop
@@ -168,23 +182,6 @@ clear_done:
set 0x2000, %g3
sub %g1, %g3, %g6
- ! Check if this is the boot CPU and skip SMP table check if yes
- ! XXX: not all CPUs should have MXCC
- set 0x1c00f00, %g2
- ldda [%g2] ASI_CONTROL, %g2
- srl %g3, 24, %g7
- sub %g7, 8, %g7
- tst %g7
- bz skip_table
- nop
-
- ! Calculate SMP table location
- set 0x1f0c, %g2
- add %g6, %g2, %g2 ! valid?
- lda [%g2] ASI_M_BYPASS, %g7
- sta %g0, [%g2] ASI_M_BYPASS
-
-skip_table:
! Get machine ID from configuration device
mov FW_CFG_MACHINE_ID, %g2
sub %g5, 2, %g5
@@ -205,36 +202,39 @@ skip_table:
blu ss2
nop
- ! Ok, this is SS-5
+ ! Ok, this is SS-5, uniprocessor
+ ba first_cpu
+ nop
+ss10:
+ ! Ok, this is SS-10/20 or SS-600MP
tst %g7
bz first_cpu
nop
- ! Clear softints used for SMP CPU startup
- set PHYS_JJ_INTR0 + 0x04, %g1
- sll %g2, 12, %g2
+ ! SMP init, clear softints, which are used for starting non-boot CPUs
+ set PHYS_SS10_INTR0 + 0x04, %g1
+ sll %g7, 12, %g2
add %g1, %g2, %g2
set 0xffffffff, %g1
- sta %g1, [%g2] ASI_M_BYPASS ! clear softints
+ sta %g1, [%g2] ASI_M_CTL ! clear softints
add %g2, 4, %g2
- sta %g0, [%g2] ASI_M_BYPASS ! clear softints
+ sta %g0, [%g2] ASI_M_CTL ! clear softints
-load_ctx:
! SMP init, jump to user specified address
- set 0x1f04, %g5
+ set 0x1f04, %g5
add %g6, %g5, %g5 ! ctxtbl
lda [%g5] ASI_M_BYPASS, %g2
sta %g0, [%g5] ASI_M_BYPASS
set AC_M_CTPR, %g1
sta %g2, [%g1] ASI_M_MMUREGS ! set ctx table ptr
- set 0x1f00, %g5
+ set 0x1f00, %g5
add %g6, %g5, %g5 ! ctx
lda [%g5] ASI_M_BYPASS, %g2
sta %g0, [%g5] ASI_M_BYPASS
set AC_M_CXR, %g1
sta %g2, [%g1] ASI_M_MMUREGS ! set context
- set 0x1f08, %g5
+ set 0x1f08, %g5
add %g6, %g5, %g5 ! entry
lda [%g5] ASI_M_BYPASS, %g2
sta %g0, [%g5] ASI_M_BYPASS
@@ -242,22 +242,6 @@ load_ctx:
jmp %g2 ! jump to kernel
sta %g1, [%g0] ASI_M_MMUREGS ! enable mmu
-ss10:
- ! Ok, this is SS-10 or SS-600MP
- tst %g7
- bz first_cpu
- nop
-
- ! Clear softints used for SMP CPU startup
- set PHYS_SS10_INTR0 + 0x04, %g1
- sll %g2, 12, %g2
- add %g1, %g2, %g2
- set 0xffffffff, %g1
- sta %g1, [%g2] ASI_M_CTL ! clear softints
- add %g2, 4, %g2
- b load_ctx
- sta %g0, [%g2] ASI_M_CTL ! clear softints
-
ss2:
! Ok, this is SS-2
set ss2_error, %o2
2
1