OpenBIOS
Threads by month
- ----- 2025 -----
- 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
May 2007
- 5 participants
- 108 discussions

May 4, 2007
Author: wmb
Date: 2007-05-04 11:00:05 +0200 (Fri, 04 May 2007)
New Revision: 355
Added:
cpu/x86/adpcm.fth
cpu/x86/k6cputest.fth
Modified:
cpu/x86/pc/olpc/devices.fth
cpu/x86/pc/olpc/disptest.fth
cpu/x86/pc/olpc/olpc.bth
dev/geode/ac97/ac97.fth
dev/geode/ac97/selftest.fth
dev/olpc/cafenand/methods.fth
dev/olpc/cafenand/selftest.fth
Log:
OLPC - Added a bunch of selftests from Lilian.
Added: cpu/x86/adpcm.fth
===================================================================
--- cpu/x86/adpcm.fth (rev 0)
+++ cpu/x86/adpcm.fth 2007-05-04 09:00:05 UTC (rev 355)
@@ -0,0 +1,223 @@
+\ See license at end of file
+purpose: decode IMA/DVI ADPCM .wav file
+
+\ Uncompressed data format:
+\ 16-bit Left, 16-bit Right, ...
+\
+\ Compressed data format:
+\ nibbles 0.hi 0.lo 1.hi 1.lo 2.hi 2.lo 3.hi 3.lo 4.hi 4.lo 5.hi 5.lo ...
+\ L1 L0 L3 L2 L5 L4 L7 L6 R1 R0 R3 R2 ...
+
+\ Work on one channel at a time.
+
+0 value val-pred \ predicted value
+0 value index \ current step change index
+0 value in-val \ place to keep (encoded) input value
+0 value in-skip \ # bytes to skip on channel input
+0 value out-skip \ # bytes to skip on channel output
+0 value buf-skip \ toggle flag for writing values
+
+0 value #ch \ # channels
+0 value blk-size \ # bytes per compressed block
+0 value #sample/blk \ (blk-size-(#ch*4)) + 1
+
+decimal
+create index-table -1 , -1 , -1 , -1 , 2 , 4 , 6 , 8 ,
+ -1 , -1 , -1 , -1 , 2 , 4 , 6 , 8 ,
+
+create stepsize-table \ 89 entries
+ 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 16 , 17 ,
+ 19 , 21 , 23 , 25 , 28 , 31 , 34 , 37 , 41 , 45 ,
+ 50 , 55 , 60 , 66 , 73 , 80 , 88 , 97 , 107 , 118 ,
+ 130 , 143 , 157 , 173 , 190 , 209 , 230 , 253 , 279 , 307 ,
+ 337 , 371 , 408 , 449 , 494 , 544 , 598 , 658 , 724 , 796 ,
+ 876 , 963 , 1060 , 1166 , 1282 , 1411 , 1552 , 1707 , 1878 , 2066 ,
+ 2272 , 2499 , 2749 , 3024 , 3327 , 3660 , 4026 , 4428 , 4871 , 5358 ,
+ 5894 , 6484 , 7132 , 7845 , 8630 , 9493 , 10442 , 11487 , 12635 , 13899 ,
+ 15289 , 16818 , 18500 , 20350 , 22385 , 24623 , 27086 , 29794 , 32767 ,
+hex
+
+0 value 'index-table
+0 value 'stepsize-table
+
+: init-ch-vars ( in out -- in' out' )
+ over <w@ dup to val-pred \ The first entry is the initial value
+ over w!
+ over 2 + c@ to index \ And the initial index
+ out-skip +
+ swap in-skip + swap
+;
+
+code adpcm-decode-sample ( in out sample# -- in' out' )
+ \ Get the delta value
+ eax pop ( in out )
+ 7 # eax and 0= if
+ 4 [esp] ecx mov \ Read the next 4 bytes
+ 0 [ecx] ebx mov
+ 'user in-skip ecx mov \ Increment in to the next data for the channel
+ ecx 4 [esp] add
+ else
+ 'user in-val ebx mov
+ ebx 4 # shr
+ then
+ ebx 'user in-val mov \ Save the input data
+ h# f # ebx and \ delta
+
+ \ Compute difference and new predicated value
+ \ Computes 'vpdiff = (delta+0.5)*step/4', but see comment in adpcm-coder.
+ 'user index eax mov \ index
+ 'user 'stepsize-table ecx mov \ address of stepsize-table
+ 0 [ecx] [eax] *4 ecx mov \ step = stepsize-table[index]
+
+ ecx eax mov eax 3 # shr \ vpdiff
+
+ 4 # bl test 0<> if ecx eax add then
+ 2 # bl test 0<> if ecx edx mov edx 1 # shr edx eax add then
+ 1 # bl test 0<> if ecx edx mov edx 2 # shr edx eax add then
+
+ \ Clamp down output value
+ 'user val-pred edx mov
+ 8 # ebx test 0= if
+ eax edx add
+ else
+ eax edx sub
+ then
+ d# 32767 # edx cmp > if d# 32767 # edx mov then
+ d# -32768 # edx cmp < if d# -32768 # edx mov then
+ edx 'user val-pred mov \ Update valpred
+ 0 [esp] eax mov \ out
+ op: dx 0 [eax] mov \ [out] = valpred
+ 'user out-skip eax mov
+ eax 0 [esp] add \ Advance out pointer
+
+ \ Update index value
+ 'user 'index-table eax mov \ address of index-table
+ 0 [eax] [ebx] *4 eax mov \ index-table[delta]
+
+ 'user index eax add \ index+index-table[delta]
+ 0 # eax cmp < if eax eax xor then
+ d# 88 # eax cmp > if d# 88 # eax mov then
+ eax 'user index mov \ Update index
+c;
+
+: adpcm-decode-ch ( in out #sample -- )
+ 0 ?do
+ i adpcm-decode-sample ( in' out' )
+ loop 2drop
+;
+
+: adpcm-decode-blk ( in out #sample -- )
+ #ch 0 ?do ( in out #sample )
+ 2 pick i /l * + ( in out #sample in' )
+ 2 pick i /w * + ( in out #sample in out' )
+ init-ch-vars ( in out #sample in' out' )
+ 2 pick 1- ( in out #sample in out #sample-1 )
+ adpcm-decode-ch ( in out #sample )
+ loop 3drop ( )
+;
+
+: adpcm-decoder ( in out #sample #ch blk-size -- )
+ index-table to 'index-table
+ stepsize-table to 'stepsize-table
+
+ dup to blk-size ( in out #sample #ch blk-size )
+ over 4 * - 1+ to #sample/blk ( in out #sample #ch )
+ dup to #ch ( in out #sample #ch )
+ dup /l * to in-skip ( in out #sample #ch )
+ /w * to out-skip ( in out #sample )
+
+ begin dup 0> while ( in out #sample )
+ 3dup #sample/blk min adpcm-decode-blk
+ rot blk-size + ( out #sample in' )
+ rot #sample/blk #ch * wa+ ( #sample in out' )
+ rot #sample/blk - ( in out #sample' )
+ repeat 3drop
+;
+
+\ Decode an .wav file
+\
+\ .wav file format:
+\ "RIFF" L<len of file> "WAVE"
+\ "fmt " L<len of fmt data> W<compression code> W<#channels> L<sample rate>
+\ L<bytes/second>] W<block align> W<bits/sample> W<extra bytes>
+\ W<#samples/block>]
+\ "fact" L<len of fact> L<#samples>
+\ "data" L<len of data> <blocks of data>
+\
+\ Each <block of data> contains:
+\ W<sample> B<index> B<0> per channel
+\ (block size - 1) samples of compressed data
+
+: find-wav-chunk? ( in chunk$ -- in' true | false )
+ rot dup 4 + le-l@ over + swap h# c + ( chunk$ in-end in' )
+ begin 2dup u> while ( chunk$ in-end in )
+ dup 4 pick 4 pick comp 0= if ( chunk$ in-end in )
+ nip nip nip true exit ( in true )
+ then
+ 4 + dup le-l@ + 4 + ( chunk$ in-end in' )
+ repeat 4drop
+ false
+;
+
+: wav-ok? ( in -- ok? )
+ dup " RIFF" comp swap 8 + " WAVE" comp or 0=
+;
+
+: fmt-ok? ( in -- #ch blk-size true | false )
+ " fmt " find-wav-chunk? 0= if false exit then ( in' )
+ dup 8 + le-w@ h# 11 = \ compression code: DVI_ADPCM
+ over h# 16 + le-w@ 4 = and if \ bits/sample
+ dup h# a + le-w@ ( #ch )
+ swap h# 14 + le-w@ true ( #ch blk-size true )
+ else
+ drop false ( false )
+ then
+;
+
+: fact-ok? ( in -- #sample true | false )
+ " fact" find-wav-chunk? dup if swap 8 + le-l@ swap then
+;
+
+: data-ok? ( in -- in' true | false )
+ " data" find-wav-chunk? dup if swap 8 + swap then
+;
+
+: adpcm-decode ( in out -- actual )
+ over wav-ok? not if 2drop 0 exit then ( in out )
+ swap dup data-ok? not if 2drop 0 exit then ( out in in' )
+ -rot dup fact-ok? not if 3drop 0 exit then ( in' out in #sample )
+ swap fmt-ok? not if 3drop 0 exit then ( in' out #sample #ch blk-size )
+ 2 pick 2 pick /w * * >r ( in' out #sample #ch blk-size ) ( R: actual )
+ adpcm-decoder r> ( actual )
+;
+
+: adpcm-size ( in -- actual )
+ dup wav-ok? not if drop 0 exit then ( in )
+ dup fact-ok? not if drop 0 exit then ( in #sample )
+ swap fmt-ok? not if drop 0 exit then ( #sample #ch blk-size )
+ drop /w * * ( actual )
+;
+
+\ LICENSE_BEGIN
+\ Copyright (c) 2007 FirmWorks
+\
+\ Permission is hereby granted, free of charge, to any person obtaining
+\ a copy of this software and associated documentation files (the
+\ "Software"), to deal in the Software without restriction, including
+\ without limitation the rights to use, copy, modify, merge, publish,
+\ distribute, sublicense, and/or sell copies of the Software, and to
+\ permit persons to whom the Software is furnished to do so, subject to
+\ the following conditions:
+\
+\ The above copyright notice and this permission notice shall be
+\ included in all copies or substantial portions of the Software.
+\
+\ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+\ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+\ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+\ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+\ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+\ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+\ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+\
+\ LICENSE_END
Property changes on: cpu/x86/adpcm.fth
___________________________________________________________________
Name: svn:executable
+ *
Added: cpu/x86/k6cputest.fth
===================================================================
--- cpu/x86/k6cputest.fth (rev 0)
+++ cpu/x86/k6cputest.fth 2007-05-04 09:00:05 UTC (rev 355)
@@ -0,0 +1,116 @@
+purpose: Burnin diagnostic for AMD K6 and similar CPUs
+\ See license at end of file
+
+hex
+
+also assembler definitions
+: finit ( -- ) 9b asm8, db asm8, e3 asm8, ;
+: fldpi ( -- ) d9 asm8, eb asm8, ;
+: fldl ( disp mr rmid -- ) dd asm8, 0 mem, ;
+: fmull ( disp mr rmid -- ) dc asm8, 1 mem, ;
+: faddp ( -- ) de asm8, c1 asm8, ;
+: fsubp ( -- ) de asm8, e1 asm8, ;
+: fcompp ( -- ) de asm8, d9 asm8, ;
+: fstswax ( -- ) 9b asm8, df asm8, e0 asm8, ;
+
+\ Returns an addressing mode that refers to the end of the datum
+: 'user+8 ( -- offset reg ) 'user swap 8 + swap ;
+
+previous definitions
+
+
+dev /cpu
+
+d# 60 constant default#passes
+d# 10,000,000 constant spins/pass
+0 value #cnt
+7fff.ffff value #half
+0000.0000 value #half2
+ffff.ffff 3fdf.ffff 2value #e
+ffff.ffff 3fef.ffff 2value #rt
+
+code burnK6 ( count -- error? )
+ ecx pop \ Loop count
+
+ finit
+ esi push
+
+ 'user #half edx mov \ DX: '#half
+ eax eax xor \ AX: 0
+ eax ebx mov \ BX: 0
+ -1 [eax] esi lea \ Index = -1
+ fldpi
+ nop nop
+
+ begin
+ 'user+8 #rt [esi] *8 fldl \ Account for -1 index
+ 'user+8 #e [esi] *8 fmull
+ 'user+8 #half [esi] *8 edx add
+ 75 c, 0 c, \ jnz .+2
+ faddp
+ 'user+8 #rt [esi] *8 fldl
+ ebx dec
+ 'user+8 #half [esi] *8 edx sub
+ eb c, 0 c, \ jmp .+2
+ 'user+8 #e [esi] *8 fmull
+ ebx inc
+ 'user+8 #cnt [esi] *8 dec
+ fsubp
+ loopa
+
+ esi pop
+
+ ebx ebx test 0<> if 1 # ebx mov then
+ 'user #half edx cmp <> if 2 # ebx or then
+ fldpi
+ fcompp \ compare ST(0) and ST(1) and pop them
+ fstswax
+ sahf 0<> if 4 # ebx or then
+
+ ebx push
+c;
+
+: selftest ( -- error? )
+ my-args dup if
+ push-decimal
+ $number abort" Argument to /cpu selftest must be a decimal number"
+ pop-base
+ else
+ 2drop
+ default#passes
+ then
+
+ dup .d ." passes of CPU Burnin. Press a key to abort." cr
+ 0 ?do
+ (cr ." Pass " i .d
+ spins/pass burnk6 if true exit then
+ key? if key drop cr leave then
+ loop
+ false
+;
+
+device-end
+
+\ LICENSE_BEGIN
+\ Copyright (c) 2007 FirmWorks
+\
+\ Permission is hereby granted, free of charge, to any person obtaining
+\ a copy of this software and associated documentation files (the
+\ "Software"), to deal in the Software without restriction, including
+\ without limitation the rights to use, copy, modify, merge, publish,
+\ distribute, sublicense, and/or sell copies of the Software, and to
+\ permit persons to whom the Software is furnished to do so, subject to
+\ the following conditions:
+\
+\ The above copyright notice and this permission notice shall be
+\ included in all copies or substantial portions of the Software.
+\
+\ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+\ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+\ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+\ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+\ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+\ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+\ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+\
+\ LICENSE_END
Property changes on: cpu/x86/k6cputest.fth
___________________________________________________________________
Name: svn:executable
+ *
Modified: cpu/x86/pc/olpc/devices.fth
===================================================================
--- cpu/x86/pc/olpc/devices.fth 2007-05-04 07:29:47 UTC (rev 354)
+++ cpu/x86/pc/olpc/devices.fth 2007-05-04 09:00:05 UTC (rev 355)
@@ -123,6 +123,7 @@
;
fload ${BP}/cpu/x86/pc/cpunode.fth
+fload ${BP}/cpu/x86/k6cputest.fth \ Burnin test for K6 CPU
0 [if]
fload ${BP}/ofw/console/bailout.fth
@@ -306,6 +307,8 @@
fload ${BP}/dev/geode/acpi.fth \ Power management
+fload ${BP}/cpu/x86/adpcm.fth \ ADPCM decoding
+
[ifdef] notdef-olpc
\ fload ${BP}/dev/olpc/plccflash.fth \ PLCC LPC debug FLASH
Modified: cpu/x86/pc/olpc/disptest.fth
===================================================================
--- cpu/x86/pc/olpc/disptest.fth 2007-05-04 07:29:47 UTC (rev 354)
+++ cpu/x86/pc/olpc/disptest.fth 2007-05-04 09:00:05 UTC (rev 355)
@@ -1,3 +1,6 @@
+purpose: Display test
+\ See license at end of file
+
dev /display
d# 100 constant bar-int
@@ -21,14 +24,80 @@
i test-color16 i 0 bar-int 4 pick " fill-rectangle" $call-screen
bar-int +loop drop
;
+
+instance variable rn \ Random number
+d# 60,000 constant burnin-time \ 1 minute
+
+: random ( -- n )
+ rn @ d# 1103515245 * d# 12345 + h# 7FFFFFFF and dup rn !
+;
+
+: randomize-color ( -- c )
+ random h# 1f and d# 11 <<
+ random h# 3f and d# 5 << or
+ random h# 1f and or
+;
+: randomize-xy ( -- x y )
+ dimensions ( width height )
+ random 3ff and min swap ( y width )
+ random 7ff and min swap ( x y )
+;
+: randomize-wh ( x y -- w h )
+ dimensions ( x y width height )
+ rot - -rot ( max-h x width )
+ swap - swap ( max-w max-h )
+ randomize-xy ( max-w max-h w h )
+ rot min -rot min swap ( w' h' )
+;
+: .random-rect ( -- )
+ randomize-color ( c )
+ randomize-xy ( c x y )
+ 2dup randomize-wh ( c x y w h )
+ " fill-rectangle" $call-screen ( )
+;
+
+: random-selftest ( -- error? )
+ get-msecs rn !
+ get-msecs burnin-time +
+ begin get-msecs over u< key? not and while
+ .random-rect
+ repeat
+;
+
: selftest ( -- error? )
bytes/pixel 2 <> if false exit then
.horizontal-bars16
d# 2000 ms
.vertical-bars16
d# 2000 ms
+ ." Press a key to abort." cr
+ d# 1000 ms
+ random-selftest
false
;
device-end
+\ LICENSE_BEGIN
+\ Copyright (c) 2007 FirmWorks
+\
+\ Permission is hereby granted, free of charge, to any person obtaining
+\ a copy of this software and associated documentation files (the
+\ "Software"), to deal in the Software without restriction, including
+\ without limitation the rights to use, copy, modify, merge, publish,
+\ distribute, sublicense, and/or sell copies of the Software, and to
+\ permit persons to whom the Software is furnished to do so, subject to
+\ the following conditions:
+\
+\ The above copyright notice and this permission notice shall be
+\ included in all copies or substantial portions of the Software.
+\
+\ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+\ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+\ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+\ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+\ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+\ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+\ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+\
+\ LICENSE_END
Modified: cpu/x86/pc/olpc/olpc.bth
===================================================================
--- cpu/x86/pc/olpc/olpc.bth 2007-05-04 07:29:47 UTC (rev 354)
+++ cpu/x86/pc/olpc/olpc.bth 2007-05-04 09:00:05 UTC (rev 355)
@@ -72,7 +72,8 @@
" sourceurl" " sourceurl" $add-dropin
[ifndef] lx-devel
- " ${BP}/clients/memtest86/memtest" " memtest" $add-deflated-dropin
+ " ${BP}/clients/memtest86/memtest" " memtest" $add-deflated-dropin
+ " ${BP}/cpu/x86/pc/olpc/images/olpc-t0.wav" " splash" $add-deflated-dropin
[then]
[ifdef] lx-devel
" ${BP}/dev/pci/build/pcibridg.fc" " class060400" $add-deflated-dropin
Modified: dev/geode/ac97/ac97.fth
===================================================================
--- dev/geode/ac97/ac97.fth 2007-05-04 07:29:47 UTC (rev 354)
+++ dev/geode/ac97/ac97.fth 2007-05-04 09:00:05 UTC (rev 355)
@@ -295,8 +295,9 @@
prd-out-phys false out-channel start-dma ( len )
;
+: open-args ( -- arg$ ) my-args ascii : left-parse-string 2swap 2drop ;
: parse-args ( -- flag )
- my-args begin dup while \ Execute mode modifiers
+ open-args begin dup while \ Execute mode modifiers
ascii , left-parse-string ( rem$ first$ )
my-self ['] $call-method catch if ( rem$ x x x )
." Unknown argument" cr
Modified: dev/geode/ac97/selftest.fth
===================================================================
--- dev/geode/ac97/selftest.fth 2007-05-04 07:29:47 UTC (rev 354)
+++ dev/geode/ac97/selftest.fth 2007-05-04 09:00:05 UTC (rev 355)
@@ -35,7 +35,6 @@
negate 1+ 2* 3 / dup bwjoin to glevel
;
-
: play ( -- )
open-out plevel set-pcm-gain glevel h# 38 codec!
record-base record-len audio-out drop write-done
@@ -93,30 +92,70 @@
;
: make-wave ( -- )
- record-base record-len 2/ bounds ( endadr startadr )
- begin 2dup u> while cycle repeat ( endadr startadr )
- 2drop
+ record-base record-len 2/ bounds ( endadr startadr )
+ begin 2dup u> while cycle repeat ( endadr startadr )
+ 2drop
- record-base record-len bounds ( endadr startadr )
- record-len 2/ + wa1+
- begin 2dup u> while cycle repeat ( endadr startadr )
- 2drop
+ record-base record-len bounds ( endadr startadr )
+ record-len 2/ + wa1+
+ begin 2dup u> while cycle repeat ( endadr startadr )
+ 2drop
;
+
+0 value raw-buf
+0 value /raw-buf
+
+: selftest-args ( -- arg$ ) my-args ascii : left-parse-string 2drop ;
+
+: ?play-wav-file ( -- )
+ selftest-args dup 0= if drop exit then
+
+ \ Read the .wav file
+ 2dup ." Play " type cr
+ " boot-read" evaluate
+
+ \ Allocate raw audio buffer
+ " loaded" evaluate 0= if drop exit then \ No data loaded
+ " adpcm-size" evaluate ( /raw-buf )
+ ?dup 0= if exit then \ Not an IMA ADPCM .wav file
+ dup to /raw-buf alloc-mem to raw-buf ( )
+
+ \ Decode the .wav file
+ " load-base" evaluate ( in )
+ raw-buf " adpcm-decode" evaluate ( /raw-buf ) ( R: len wav-buf )
+ ?dup 0= if exit then \ Not an IMA ADPCM .wav file
+
+ \ Play the raw audio data
+ ." Press a key to abort" cr
+ open-out plevel set-pcm-gain glevel h# 38 codec!
+ begin
+ raw-buf /raw-buf audio-out drop
+ key? until write-done
+ key drop
+
+ \ Release the raw audio buffer
+ raw-buf /raw-buf free-mem 0 to raw-buf 0 to /raw-buf
+;
+
: selftest ( -- error? )
open 0= if ." Failed to open /audio" cr true exit then
+ 0 set-plevel 0 set-glevel
+ ?play-wav-file
record-len alloc-mem to record-base
." Play tone" cr
0 set-plevel d# -12 set-glevel
make-wave play
- ." Record and playback" cr
+ ." Recording ..." cr
0 set-plevel 0 set-glevel
- record play
+ record
+ ." Playing ..." cr
+ play
record-base record-len free-mem
close false
;
\ LICENSE_BEGIN
-\ Copyright (c) 2006 FirmWorks
+\ Copyright (c) 2007 FirmWorks
\
\ Permission is hereby granted, free of charge, to any person obtaining
\ a copy of this software and associated documentation files (the
Modified: dev/olpc/cafenand/methods.fth
===================================================================
--- dev/olpc/cafenand/methods.fth 2007-05-04 07:29:47 UTC (rev 354)
+++ dev/olpc/cafenand/methods.fth 2007-05-04 09:00:05 UTC (rev 355)
@@ -24,6 +24,8 @@
total-pages 0= \ Error if there are no chips
;
+: open-args ( -- arg$ ) my-args ascii : left-parse-string 2swap 2drop ;
+
external
: dma-alloc ( len -- adr ) " dma-alloc" $call-parent ;
@@ -62,7 +64,7 @@
get-bbt
- my-args dup if ( arg$ )
+ open-args dup if ( arg$ )
ascii , left-parse-string ( arg2$ arg1$ )
2dup " zip" $= if ( arg2$ arg1$ )
2drop ( arg2$ )
Modified: dev/olpc/cafenand/selftest.fth
===================================================================
--- dev/olpc/cafenand/selftest.fth 2007-05-04 07:29:47 UTC (rev 354)
+++ dev/olpc/cafenand/selftest.fth 2007-05-04 09:00:05 UTC (rev 355)
@@ -1,11 +1,18 @@
\ See license at end of file
purpose: Selftest for NAND FLASH section of the OLPC CaFe chip
-0 value test-block#
-0 value sbuf \ Original content of block
-0 value obuf \ Block data written
-0 value ibuf \ Block data read
-: test-page# ( -- n ) test-block# pages/eblock * ;
+instance variable rn \ Random number
+
+: random ( -- n )
+ rn @ d# 1103515245 * d# 12345 + h# 7FFFFFFF and dup rn !
+;
+
+false value selftest-err?
+: record-err ( error? -- ) if true to selftest-err? then ;
+
+0 value sbuf \ Original content of block
+0 value obuf \ Block data written
+0 value ibuf \ Block data read
: alloc-test-bufs ( -- )
sbuf 0= if
erase-size alloc-mem to sbuf
@@ -20,40 +27,164 @@
ibuf erase-size free-mem 0 to ibuf
then
;
-: determine-test-block# ( -- error? )
- -1 to test-block#
- size erase-size um/mod nip 1- ( block# )
- begin dup 0> test-block# -1 = and while
- dup pages/eblock * block-bad? not if dup to test-block# then
- 1- ( block#' )
- repeat drop
- test-block# -1 =
+: read-eblock ( adr page# -- error? )
+ pages/eblock read-blocks pages/eblock <>
;
-: read-eblock ( adr -- error? )
- test-page# pages/eblock read-blocks pages/eblock <>
+: write-eblock ( adr page# -- error? )
+ dup erase-block
+ pages/eblock write-blocks pages/eblock <>
;
-: write-eblock ( adr -- error? )
- test-page# erase-block
- test-page# pages/eblock write-blocks pages/eblock <>
-;
-: test-eblock ( pattern -- error? )
- obuf erase-size 2 pick fill obuf write-eblock if true exit then
- ibuf erase-size rot invert fill ibuf read-eblock if true exit then
+: test-eblock ( page# pattern -- error? )
+ obuf erase-size 2 pick fill
+ ibuf erase-size rot invert fill
+ obuf over write-eblock if true exit then
+ ibuf swap read-eblock if true exit then
ibuf obuf erase-size comp
;
-: write-test ( -- error? )
- determine-test-block# if true exit then
+
+\ Destroy content of flash. No argument.
+: erase ( subarg$ -- ) 2drop ." Erasing..." cr wipe ;
+
+\ Destroy content of flash. Argument is hex byte pattern value.
+: .skip-bad ( page# -- ) cr ." Skipping bad block" .page-byte cr ;
+: fill ( subarg$ -- )
+ $number if 0 else 0 max h# ff min then
+ ." Fill nandflash with h# " dup u. cr
+
+ usable-page-limit 0 ?do
+ i block-bad? if
+ i .skip-bad
+ else
+ (cr i . i over test-eblock record-err
+ then
+ pages/eblock +loop drop
+;
+
+\ Non-destructive. Argument is number of blocks to test.
+: random-page ( -- n ) random total-pages 1- and usable-page-limit min ;
+: fast ( subarg$ -- )
+ $number if d# 10 else 0 max usable-page-limit pages/eblock / min then
+ ." Fill " dup .d ." random blocks with h# 55, h# aa and h# ff" cr
+
+ 0 ?do
+ i 1 > if random-page else i 0<> if usable-page-limit 1- else 0 then then
+ pages/eblock 1- invert and
+
+ dup block-bad? not if
+ (cr dup .
+ sbuf over read-eblock dup record-err 0= if
+ dup h# 55 test-eblock record-err
+ dup h# aa test-eblock record-err
+ dup h# ff test-eblock record-err
+ then
+ sbuf swap write-eblock record-err
+ then
+ loop
+;
+
+\ Non-destructive. Argument is <#blk>,<blk#>
+\ <#blk>+1 is number of blocks as a test unit
+\ If <#blk> is absent, all blocks are tested.
+\ <blk#> is the block to test in the test unit, in range of 0..<#blk>
+\ If <blk#> is absent, 0 is assumed.
+\ For example: test /nandflash::full test all blocks
+\ test /nandflash::full,1,0 test even blocks
+\ test /nandflash::full,1,1 test odd blocks
+\ test /nandflash::full,2,<0-2> test 33%
+\ test /nandflash::full,3,<0-3> test 25%
+\ test /nandflash::full,4,<0-4> test 20%
+\ test /nandflash::full,9,<0-9> test 10%
+: parse-full-args ( subarg$ -- #blk blk# )
+ ?dup 0= if drop 0 0 exit then
+ ascii , left-parse-string ( blk#$ #blk$ )
+ $number if 2drop 0 0 exit then ( blk#$ #blk )
+ 0 max usable-page-limit pages/eblock 1- / min
+ -rot $number if 0 else 0 max over min then ( #blk blk# )
+;
+: .full-arg ( #blk blk# -- )
+ ." Test "
+ over 0= if 2drop ." every block" cr exit then
+ ." block " u. ." every " 1+ u. ." blocks" cr
+;
+: full ( subarg$ -- )
+ parse-full-args ( #blk blk# )
+ 2dup .full-arg ( #blk blk# )
+
+ pages/eblock * swap 1+ pages/eblock * ( page# #page )
+ usable-page-limit rot ?do ( #blk+1 )
+ i block-bad? not if
+ (cr i .
+ sbuf i read-eblock dup record-err 0= if
+ i h# 55 test-eblock record-err
+ i h# aa test-eblock record-err
+ then
+ sbuf i write-eblock record-err
+ then
+ dup +loop drop
+;
+
+: none ( subarg$ -- ) 2drop exit ;
+
+: help ( subarg$ -- )
+ 2drop
+ ." Usage:" cr
+ ." test /nandflash[::<arg>[;<arg>[;<arg>...]]]" cr
+ cr
+ ." If no <arg> is present, the fast test is performed." cr
+ cr
+ ." <arg> can be one of the following:" cr
+ ." none to do nothing" cr
+ ." help to get this usage guide" cr
+ ." erase to erase the flash (destructive)" cr
+ ." fill[,<data>] to fill the flash with hex byte pattern <data> (destructive)" cr
+ ." Default <data> is 00" cr
+ ." fast[,<#blk>] to non-destructively test the specified <#blk> of flash" cr
+ ." Default <#blk> is decimal 10" cr
+ ." full[,<#blk>[,<blk#>]" cr
+ ." to non-destructively test the specified <blk#> every" cr
+ ." <#blk>+1 number of blocks" cr
+ ." Default <#blk> and <blk#> are 0" cr
+ ." E.g., full,1,0 test even blocks" cr
+ ." full,1,1 test odd blocks" cr
+ ." full,2,0 test 33% of the flash" cr
+ cr
+;
+
+: parse-selftest-args ( arg$ -- )
+ begin ( arg$ )
+ ascii ; left-parse-string ?dup if ( rem$ arg$' )
+ ascii , left-parse-string ( rem$ subarg$ method$ )
+ my-self ['] $call-method catch if ( rem$ x x x x x )
+ ." Unknown argument" cr
+ 3drop 2drop 2drop
+ true to selftest-err?
+ exit
+ then ( rem$ )
+ else
+ drop ( rem$ )
+ then
+ ?dup 0= until drop ( )
+;
+: selftest-args ( -- arg$ ) my-args ascii : left-parse-string 2drop ;
+
+: (selftest) ( -- error? )
+ false to selftest-err?
alloc-test-bufs
- sbuf read-eblock if free-test-bufs true exit then
- h# 5a test-eblock if free-test-bufs true exit then
- h# a5 test-eblock if free-test-bufs true exit then
- sbuf write-eblock \ Restore original content
+ selftest-args ?dup if
+ parse-selftest-args
+ else
+ drop " " fast
+ then
free-test-bufs
+ selftest-err?
;
+
: selftest ( -- error? )
open 0= if true exit then
- show-bbt
- write-test
+ get-msecs rn !
+ read-id 1+ c@ h# dc <> if close true exit then
+ show-bbt cr
+ (selftest)
close
;
1
0
Author: wmb
Date: 2007-05-04 09:29:47 +0200 (Fri, 04 May 2007)
New Revision: 354
Modified:
cpu/x86/ioports.fth
Log:
Added MSR support to Linux-hosted I/O port access wordset.
Modified: cpu/x86/ioports.fth
===================================================================
--- cpu/x86/ioports.fth 2007-05-04 07:28:03 UTC (rev 353)
+++ cpu/x86/ioports.fth 2007-05-04 07:29:47 UTC (rev 354)
@@ -64,6 +64,34 @@
dup -1 = abort" mmap failed"
;
: munmap ( virt len -- ) mem-fd d# 384 syscall 2drop ;
+
+-1 value msr-fd
+: ?open-msr ( -- )
+ msr-fd 0< if
+ 2 " /dev/cpu/0/msr" $cstr 8 syscall 2drop retval to msr-fd
+ then
+ msr-fd 0< abort" Can't open /dev/cpu/0/msr"
+;
+8 buffer: msr-data
+: msr-seek ( msr# -- ) ?open-msr msr-fd _fseek ;
+
+: msr@ ( msr# -- d )
+ msr-seek
+ msr-data 8 msr-fd _fread 8 <> abort" Can't read MSR"
+ msr-data d@
+;
+: msr! ( d msr# -- )
+ msr-seek
+ msr-data d!
+ msr-data 8 msr-fd _fwrite 8 <> abort" Can't write MSR"
+;
+: .msr ( msr# -- )
+ msr@ ( d )
+ push-hex ( d )
+ <# [char] . hold # # # # # # # # [char] . hold # # # # # # # # #> type ( )
+ pop-base
+;
+
\ LICENSE_BEGIN
\ Copyright (c) 2006 FirmWorks
\
1
0
Author: wmb
Date: 2007-05-04 09:28:03 +0200 (Fri, 04 May 2007)
New Revision: 353
Added:
ofw/termemu/difont.fth
Modified:
cpu/x86/basefw.bth
cpu/x86/pc/olpc/loaddropins.fth
ofw/termemu/font.fth
Log:
Load the screen font from a dropin module so it's easy to change,
and also support .psf font format.
Modified: cpu/x86/basefw.bth
===================================================================
--- cpu/x86/basefw.bth 2007-05-04 07:01:20 UTC (rev 352)
+++ cpu/x86/basefw.bth 2007-05-04 07:28:03 UTC (rev 353)
@@ -59,7 +59,7 @@
fload ${BP}/ofw/termemu/loadfb.fth \ S Frame buffer support
\ fload ${BP}/ofw/termemu/cp881-16.fth \ ISO-Latin1 Font
-fload ${BP}/ofw/termemu/gallant2.fth \ Sun font, tip o' the hat to Vaughn Pratt
+fload ${BP}/ofw/termemu/difont.fth \ Get font from a dropin module
fload ${BP}/ofw/gui/alert.fth \ Basic dialogs and alerts
fload ${BP}/dev/stringio.fth \ Output diversion
Modified: cpu/x86/pc/olpc/loaddropins.fth
===================================================================
--- cpu/x86/pc/olpc/loaddropins.fth 2007-05-04 07:01:20 UTC (rev 352)
+++ cpu/x86/pc/olpc/loaddropins.fth 2007-05-04 07:28:03 UTC (rev 353)
@@ -37,3 +37,5 @@
" ${BP}/cpu/x86/pc/olpc/images/usbkey.565" " disk.565" $add-deflated-dropin
" ${BP}/cpu/x86/pc/olpc/images/wireless.565" " wireless.565" $add-deflated-dropin
" ${BP}/cpu/x86/pc/olpc/images/xo.565" " xo.565" $add-deflated-dropin
+
+ " ${BP}/ofw/termemu/gallant.obf" " font" $add-deflated-dropin
Added: ofw/termemu/difont.fth
===================================================================
--- ofw/termemu/difont.fth (rev 0)
+++ ofw/termemu/difont.fth 2007-05-04 07:28:03 UTC (rev 353)
@@ -0,0 +1,10 @@
+purpose: Incorporate font into dictionary from dropin module
+
+0 value 'di-font
+
+: di-font ( -- adr )
+ 'di-font ?dup if exit then
+ " font" find-drop-in if drop to 'di-font 'di-font exit then
+ 0
+;
+' di-font to romfont
Modified: ofw/termemu/font.fth
===================================================================
--- ofw/termemu/font.fth 2007-05-04 07:01:20 UTC (rev 352)
+++ ofw/termemu/font.fth 2007-05-04 07:28:03 UTC (rev 353)
@@ -61,11 +61,28 @@
headerless
: decode-font ( hdr-adr -- bits-adr width height advance min-char #glyphs )
- dup d# 24 + swap ( bits-adr hdr-adr )
- d# 24 ( bits-adr hdr-adr hdr-len )
- 4 decode-bytes " font" $= 0= abort" Not a font" ( bits-adr str )
- 5 0 do decode-int -rot loop ( bits-adr width height advance min #gl str )
- 2drop ( bits-adr width height advance min-char #glyphs )
+ dup " font" comp 0= if ( hdr-adr ) \ OBF font format
+ dup d# 24 + swap ( bit-adr hdr-adr )
+ 4 + d# 20 ( bit-adr hdr-adr' hdr-len )
+ 5 0 do decode-int -rot loop ( bits-adr width height advance min #gl str )
+ 2drop ( bits-adr width height advance min-char #glyphs )
+ exit
+ then ( hdr-adr )
+
+ \ http://www.win.tue.nl/~aeb/linux/kbd/font-formats-1.html
+ dup le-l@ h# 864ab572 = if ( hdr-adr ) \ PSF2 format, little endian
+ >r ( r: hdr-adr )
+ r@ r@ 8 + le-l@ + ( bits-adr r: hdr-adr )
+ r@ h# 1c + le-l@ ( bits-adr width r: hdr-adr )
+ r@ h# 18 + le-l@ negate ( bits-adr width height r: hdr-adr )
+ over 7 + 8 / ( bits-adr width height advance r: hdr-adr )
+ 0 ( bits-adr width height advance min r: hdr-adr )
+ r@ h# 10 + le-l@ ( bits-adr width height advance #glyphs r: hdr-adr )
+ r> drop ( bits-adr width height advance #glyphs )
+ exit
+ then ( hdr-adr )
+
+ true abort" Not a font"
;
headers
also forth definitions
1
0
Author: wmb
Date: 2007-05-04 09:01:20 +0200 (Fri, 04 May 2007)
New Revision: 352
Modified:
cpu/x86/pc/olpc/olpc.bth
Log:
OLPC - don't include memtest in the ROM for the LX devel board.
Modified: cpu/x86/pc/olpc/olpc.bth
===================================================================
--- cpu/x86/pc/olpc/olpc.bth 2007-05-04 07:00:17 UTC (rev 351)
+++ cpu/x86/pc/olpc/olpc.bth 2007-05-04 07:01:20 UTC (rev 352)
@@ -71,7 +71,9 @@
fload ${BP}/cpu/x86/pc/olpc/loaddropins.fth
" sourceurl" " sourceurl" $add-dropin
+[ifndef] lx-devel
" ${BP}/clients/memtest86/memtest" " memtest" $add-deflated-dropin
+[then]
[ifdef] lx-devel
" ${BP}/dev/pci/build/pcibridg.fc" " class060400" $add-deflated-dropin
[then]
1
0
Author: wmb
Date: 2007-05-04 09:00:17 +0200 (Fri, 04 May 2007)
New Revision: 351
Modified:
cpu/x86/pc/olpc/chipinit.fth
cpu/x86/pc/olpc/romreset.bth
cpu/x86/pc/olpc/vsapci.fth
Log:
OLPC - (a) Changed frame buffer size to 16M (b) fixed some MSR and PCI
header values based on a comparison with LinuxBIOS for LX.
Modified: cpu/x86/pc/olpc/chipinit.fth
===================================================================
--- cpu/x86/pc/olpc/chipinit.fth 2007-05-04 06:56:57 UTC (rev 350)
+++ cpu/x86/pc/olpc/chipinit.fth 2007-05-04 07:00:17 UTC (rev 351)
@@ -339,7 +339,11 @@
msr: 0000.1210 00000000.00000003. \ Suspend on halt and pause
msr: 0000.1900 00000000.02001131. \ Pausedly 16 clocks, SUSP + TSC_SUSP
msr: 0000.1920 00000000.0000000f. \ Enable L2 cache
- msr: 0000.1a00 00000000.00000001. \ GX p 178 Imprecise exceptions
+ msr: 0000.1930 00000000.00070303. \ MSR_PMODE
+ msr: 0000.1981 00000000.2814d352. \ MSS_ARRAY_CTL0 - cache timings - value from PRS
+ msr: 0000.1982 00000000.1068334d. \ MSS_ARRAY_CTL1 - cache timings - value from PRS
+ msr: 0000.1983 00000106.83104104. \ MSS_ARRAY_CTL2 - cache timings - value from PRS
+ msr: 0000.1a00 00000000.00000001. \ Imprecise exceptions
\ northbridgeinit: GLIUS
\ msr: 1000.0020 20000000.000fff80. \ 0 - 7.ffff low RAM Early startup
@@ -351,13 +355,13 @@
\ msr: 1000.0026 000000ff.fff00000. \ Unmapped - default
\ Graphics
-\ msr: 1000.0029 20a7e0fd.7fffd000. \ fd00.0000 - fd7f.ffff mapped to 77e.0000 Memsize dependent (Frame Buffer)
+\ msr: 1000.0029 20a7e0fd.ffffd000. \ fd00.0000 - fdff.ffff mapped to f00.0000 Memsize dependent, fbsize dependent
msr: 1000.002a 801ffcfe.007fe004. \ fe00.4000 - fe00.7fff mapped to 0 in DC space
\ msr: 1000.002b 00000000.000fffff. \ Unmapped - default
\ msr: 1000.002c 00000000.00000000. \ Unmapped - default (Swiss Cheese)
- msr: 1000.0080 00000000.00000003. \ Coherency
+ msr: 1000.0080 00000000.00000003. \ Coherency - route snoops to CPU
msr: 1000.0082 80000000.00000000. \ Arbitration
msr: 1000.0083 00000000.0000ff00. \ Disable SMIs
msr: 1000.0084 00000000.0000ff00. \ Disable Async errors
@@ -376,11 +380,11 @@
\ msr: 4000.0023 000000ff.fff00000. \ Unmapped - default
msr: 4000.0024 200000fe.004ffffc. \ fe00.4000 - fe00.7fff DC, route to GLIU0
msr: 4000.0025 400000fe.008ffffc. \ fe00.8000 - fe00.bfff VP, route to VP in GLIU1
- msr: 4000.0026 a00000fe.00cffffc. \ fe00.c000 - fe00.ffff VIP, route to VP in GLIU1
+ msr: 4000.0026 a00000fe.00cffffc. \ fe00.c000 - fe00.ffff VIP, route to VIP in GLIU1
\ msr: 4000.0027 000000ff.fff00000. \ Unmapped - default
\ msr: 4000.0028 000000ff.fff00000. \ Unmapped - default
\ msr: 4000.0029 000000ff.fff00000. \ Unmapped - default
- msr: 4000.002a 200000fd.7fffd000. \ frame buffer - fd00.0000 .. fd7f.ffff, route to GLIU0
+ msr: 4000.002a 200000fd.ffffd000. \ frame buffer - fd00.0000 .. fdff.ffff, route to GLIU0, fbsize
msr: 4000.002b c00000fe.013fe010. \ Security Block - fe01.0000 .. fe01.3fff
\ msr: 4000.002c 20000007.7ff00100. \ 10.0000 - 0f7f.ffff High RAM - Memsize dependent
\ msr: 4000.002d 00000000.000fffff. \ Unmapped - default
@@ -402,7 +406,7 @@
msr: 0000.2001 00000000.00000220.
msr: 4c00.2001 00000000.00000001.
msr: 5000.2001 00000000.00000027.
- msr: 5800.2001 00000000.00000000.
+ msr: 5800.2001 00000000.00000013.
msr: 8000.2001 00000000.00000320.
msr: 0000.1700 00000000.00000400. \ Evict clean lines - necessary for L2
@@ -418,8 +422,8 @@
msr: 0000.180d 00000000.00000000. \ Cache e0000-fffff
\ msr: 0000.180e 00000001.00000001. \ SMM off - default
\ msr: 0000.180f 00000001.00000001. \ DMM off - default
- msr: 0000.1810 fd7ff000.fd000111. \ Video (write through)
- msr: 0000.1811 fe00f000.fe000101. \ GP + DC + VP + VIP registers non-cacheable
+ msr: 0000.1810 fdfff000.fd000111. \ Video (write through), fbsize
+ msr: 0000.1811 fe013000.fe000101. \ GP + DC + VP + VIP + AES registers non-cacheable
\ msr: 0000.1812 00000000.00000000. \ Disabled - default
\ msr: 0000.1813 00000000.00000000. \ Disabled - default
\ msr: 0000.1814 00000000.00000000. \ Disabled - default
@@ -428,32 +432,38 @@
\ msr: 0000.1817 00000000.00000000. \ Disabled - default
\ PCI
-\ msr: 5000.2000 00000000.00105001. \ RO
+\ msr: 5000.2000 00000000.00105400. \ RO
msr: 5000.2001 00000000.00000017. \ Priority 1, domain 7
msr: 5000.2002 00000000.003f003f. \ No SMIs
msr: 5000.2003 00000000.00370037. \ No ERRs
msr: 5000.2004 00000000.00000015. \ Clock gating for 3 clocks
msr: 5000.2005 00000000.00000000. \ Enable some PCI errors
- msr: 5000.2010 fff01120.001a021d. \ PCI timings
+ msr: 5000.2010 fff01120.001a021d. \ PCI timings - LB has the latency timer at max
msr: 5000.2011 04000300.00800f01. \ GLPCI_ARB - LX page 581
- msr: 5000.2014 00000000.00f000ff.
- msr: 5000.2015 30303030.30303030. \ Cache, prefetch, write combine a0000 - bffff
- msr: 5000.2016 30303030.30303030. \ Cache, prefetch, write combine c0000 - dffff
- msr: 5000.2017 34343434.30303030. \ Cache, prefetch, write combine e0000 - fffff, write protect f0000 - fffff
+
+\ I don't think we need to do anything special for the DOS hole from PCI
+\ msr: 5000.2014 00000000.00f000ff. \ Fixed region enables - f, b, and a
+\ msr: 5000.2015 30303030.30303030. \ Cache, prefetch, write combine a0000 - bffff
+\ msr: 5000.2016 30303030.30303030. \ Cache, prefetch, write combine c0000 - dffff
+\ msr: 5000.2017 34343434.30303030. \ Cache, prefetch, write combine e0000 - fffff, write protect f0000 - fffff
+
msr: 5000.2018 000ff000.00000130. \ Cache PCI DMA to low memory 0 .. fffff
\ msr: 5000.2019 0f7ff000.00100130. \ Cache PCI DMA to high memory - Memsize dependent
\ msr: 5000.201a 4041f000.40400120.
\ msr: 5000.201a 00000000.00000000. \ Off - default
msr: 5000.201b 00000000.00000000.
msr: 5000.201c 00000000.00000000.
- msr: 5000.201e 00000000.00000f00.
+ msr: 5000.201e 00000000.00000f00. \ PCI function number for MSR accesses to VP port
msr: 5000.201f 00000000.0000004b.
\ We don't need posted I/O writes to IDE, as we have no IDE
-\ clockgating
-\ msr: 5400.2004 00000000.00000000. \ Clock gating - default
-\ msr: 5400.2004 00000000.00000003. \ Clock gating
+\ VIP
+\ msr: 5400.2004 00000000.00000005. \ Clock gating - default
+\ AES
+\ msr: 5800.2002 00000007.00000007. \ SMI mask - default is all off
+\ msr: 5800.2004 00000000.00000015. \ Clock gating - default
+
\ chipsetinit(nb);
\ Set the prefetch policy for various devices
@@ -472,23 +482,26 @@
\ setup_gx2();
\ Graphics init
- msr: a000.2001 00000000.0fd60000. \ CBASE field is FB addr + 6M
+ msr: a000.2001 00000000.0fde0000. \ CBASE field is FB addr + 14M, fbsize
msr: a000.2002 00000001.00000001. \ Disable GP SMI
msr: a000.2003 00000003.00000003. \ Disable GP ERR
msr: a000.2004 00000000.00000001. \ Clock gating
msr: 8000.2001 00000000.00000720. \ VG config (priority)
- msr: 8000.2002 00001fff.00001fff. \ Disable SMIs
+ msr: 8000.2002 1001ffff.1001ffff. \ Disable SMIs
msr: 8000.2003 0000003f.0000003f. \ Disable ERRs
\ msr: 8000.2004 00000000.00000000. \ Clock gating - default
\ msr: 8000.2004 00000000.00000055. \ Clock gating
- msr: 8000.2011 00000000.00000001. \ VG SPARE - VG fetch state machine hardware fix off
- msr: 8000.2012 00000000.06060202. \ VG DELAY
+ msr: 8000.2011 00000000.00000042. \ VG SPARE - VG fetch state machine hardware fix off
+ msr: 8000.2012 00000000.00000302. \ VG DELAY
\ msr: 4c00.0015 00000037.00000001. \ MCP DOTPLL reset; unnecessary because of later video init
\ More GLCP stuff
- msr: 4c00.000f f2f100ff.56960444. \ I/O buffer delay controls
- msr: 4c00.0016 00000000.00000000. \ Turn off debug clock
+ msr: 4c00.000f f2f100ff.56960444. \ I/O buffer delay controls - LB uses 82f1.00aa.5696.0444
+ \ Our value has lower drive for mem signals and more delay for BA, MA, CKE, CS, RAS, CAS, WE
+
+ msr: 4c00.0016 00000000.00000000. \ Turn off debug clock - LB has 2 (default, GLIU1 to debug logic)
+\ msr: 4c00.001e 00000000.0000603c. \ Processor throttle off delay - LB values
msr: 4c00.2004 00000000.00000015. \ Hardware clock gating for everything (Insyde uses 0x14)
msr: 5000.2014 00000000.00ffffff. \ Enables PCI access to low mem
@@ -642,7 +655,7 @@
h# fd00.0000 h# 84 dc-base + l! \ GLIU0 Memory offset
h# fd00.0000 h# 4c gp-base + l! \ GP base
- h# fd80.0000 h# 460 vp-base + l! \ Flat panel base
+ h# fd80.0000 h# 460 vp-base + l! \ Flat panel base (reserved on LX)
\ VGdata.hw_vga_base = h# fd7.c000
\ VGdata.hw_cursor_base = h# fd7.bc00
Modified: cpu/x86/pc/olpc/romreset.bth
===================================================================
--- cpu/x86/pc/olpc/romreset.bth 2007-05-04 06:56:57 UTC (rev 350)
+++ cpu/x86/pc/olpc/romreset.bth 2007-05-04 07:00:17 UTC (rev 351)
@@ -124,12 +124,12 @@
\ sdram_set_spdregisters(),auto.c
\ The LX devel board has only 512M ROM, but assigning 1M of address space is harmless
- 25fff002.10f00000. 1808 set-msr \ 1M ROM at fff0.0000, system RAM limit at 0f00.0000
- 2000000e.fff00100. 10000028 set-msr \ Top of memory at 0eff.ffff
- 212000fd.ffffd000. 10000029 set-msr \ Frame buffer at PA fd00.0000 maps to RAM at 0f00.0000
+ 25fff002.10f00000. 1808 set-msr \ 1M ROM at fff0.0000, system RAM limit at 0f00.0000, fbsize
+ 2000000e.fff00100. 10000028 set-msr \ Top of memory at 0eff.ffff, fbsize
+ 212000fd.ffffd000. 10000029 set-msr \ Frame buffer at PA fd00.0000 maps to RAM at 0f00.0000, fbsize
10076013.00005040. 20000018 set-msr \ DIMM1 empty, DIMM0 256 MB, 1 module bank, 8K pages
2000000e.fff00100. 4000002c set-msr \ DMA to memory from 1M to RAM limit at 0f00.0000
- 0efff000.00100130. 50002019 set-msr \ PCI DMA to memory from 1M to RAM limit at 0f00.0000
+ 0efff000.00100130. 50002019 set-msr \ PCI DMA to memory from 1M to RAM limit at 0f00.0000, fbsize
\ 20000019 rmsr \ SDRAM timing and mode program
00000000.2814d352. 00001981 set-msr \ Memory delay values
Modified: cpu/x86/pc/olpc/vsapci.fth
===================================================================
--- cpu/x86/pc/olpc/vsapci.fth 2007-05-04 06:56:57 UTC (rev 350)
+++ cpu/x86/pc/olpc/vsapci.fth 2007-05-04 07:00:17 UTC (rev 351)
@@ -34,7 +34,7 @@
ff800000 , fffff000 , fffff000 , fffff000 ,
0 , 0 , 0 , 0 ,
- 30100b , 2200003 , 3000000 , 0 ,
+ 30100b , 2200002 , 3000000 , 8 ,
fd000000 , fe000000 , fe004000 , fe008000 , \ FB, GP, VG, DF
0 , 0 , 0 , 30100b , \ VIP (LX only)
0 , 0 , 0 , 0 ,
@@ -58,13 +58,13 @@
ffffc000 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 ,
- 20281022 , 2a00006 , 10100000 , 8 ,
+ 20821022 , 2a00006 , 10100000 , 8 ,
fe010000 , 0 , 0 , 0 , \ I/O BAR - base of virtual registers
0 , 0 , 0 , 20821022 ,
+ 0 , 0 , 0 , 10e , \ INTA, IRQ 14
0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 ,
- 0 , 0 , 0 , 0 ,
0 [if] \ Turned off
create nand-hdr \ Doesn't appear as a PCI device, and kernel doesn't care
@@ -197,12 +197,14 @@
lx? if
\ Amend the fake PCI headers for the LX settings
- h# 281022 nb-hdr h# 20 + l! \ Vendor/device ID - AMD
+ h# 20801022 nb-hdr h# 20 + l! \ Vendor/device ID - AMD
+ h# 20801022 nb-hdr h# 4c + l! \ Vendor/device ID - AMD
- h# ff000000 gxfb-hdr h# 0 + l! \ BAR0 MASK - FB
+ h# ff000008 gxfb-hdr h# 0 + l! \ BAR0 MASK - FB
h# ffffc000 gxfb-hdr h# 10 + l! \ BAR4 MASK - VIP
h# 20811022 gxfb-hdr h# 20 + l! \ Vendor/device ID - AMD
h# fe00c000 gxfb-hdr h# 40 + l! \ BAR4 address - VIP
+ h# 20811022 gxfb-hdr h# 4c + l! \ Vendor/device ID - AMD
h# 10e gxfb-hdr h# 5c + w! \ Interrupt pin and line - INTA, IRQ 14
then
1
0
Author: wmb
Date: 2007-05-04 08:56:57 +0200 (Fri, 04 May 2007)
New Revision: 350
Modified:
cpu/x86/pc/olpc/fw.bth
Log:
OLPC - Removed debug message from game key sending code.
Modified: cpu/x86/pc/olpc/fw.bth
===================================================================
--- cpu/x86/pc/olpc/fw.bth 2007-05-03 08:30:22 UTC (rev 349)
+++ cpu/x86/pc/olpc/fw.bth 2007-05-04 06:56:57 UTC (rev 350)
@@ -426,8 +426,7 @@
: user-switch? ( -- flag )
[ifdef] lx-devel false exit [then]
-." Game key value is "
- game-key@ dup . cr 0<> dup if
+ game-key@ 0<> dup if
." Release the game key to continue" cr
begin d# 100 ms game-key@ 0= until
then
1
0

May 3, 2007
Hello!
I am interested in running Solaris 8/9 under qemu. According to the
thread below, it may be possible with more recent versions of OpenBIOS:
http://qemu-forum.ipi.fi/viewtopic.php?p=10243
So I attempt to investigate. However, I am unable to build the alpha
release of OpenBIOS from 20070427. I currently have qemu
(20070501-svn-snapshot) Here are the details of my machine setup, and
other variables, along with the output of the errors.
administrator@ubuntu-khermans-desk:/tmp/openbios-devel$ uname -a
Linux ubuntu-khermans-desk 2.6.20-15-generic #2 SMP Sun Apr 15 07:36:31
UTC 2007 i686 GNU/Linux
administrator@ubuntu-khermans-desk:/tmp/openbios-devel$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=7.04
DISTRIB_CODENAME=feisty
DISTRIB_DESCRIPTION="Ubuntu 7.04"
administrator@ubuntu-khermans-desk:/tmp/openbios-devel$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Pentium(R) 4 CPU 3.00GHz
stepping : 9
cpu MHz : 2992.671
cache size : 512 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 1
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe cid xtpr
bogomips : 5989.50
clflush size : 64
processor : 1
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Pentium(R) 4 CPU 3.00GHz
stepping : 9
cpu MHz : 2992.671
cache size : 512 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 1
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe cid xtpr
bogomips : 5985.43
clflush size : 64
administrator@ubuntu-khermans-desk:/tmp/openbios-devel$ ls -l /usr/bin/gcc*
lrwxrwxrwx 1 root root 7 2007-04-05 21:37 /usr/bin/gcc -> gcc-4.1
-rwxr-xr-x 1 root root 80916 2007-01-03 15:22 /usr/bin/gcc-3.3
-rwxr-xr-x 1 root root 85044 2007-01-02 12:03 /usr/bin/gcc-3.4
-rwxr-xr-x 1 root root 183904 2007-03-02 21:52 /usr/bin/gcc-4.1
lrwxrwxrwx 1 root root 10 2007-04-05 21:37 /usr/bin/gccbug -> gccbug-4.1
-rwxr-xr-x 1 root root 15970 2007-01-03 15:17 /usr/bin/gccbug-3.3
-rwxr-xr-x 1 root root 16090 2007-01-02 11:57 /usr/bin/gccbug-3.4
-rwxr-xr-x 1 root root 16266 2007-03-02 21:47 /usr/bin/gccbug-4.1
-rwxr-xr-x 1 root root 2018 2006-12-20 09:41 /usr/bin/gccmakedep
administrator@ubuntu-khermans-desk:/tmp/openbios-devel$
config/scripts/switch-arch cross-sparc64
administrator@ubuntu-khermans-desk:/tmp/openbios-devel$ make
/usr/bin/xsltproc
Building OpenBIOS on x86 for sparc64
Cleaning up... ok
Initializing build tree...ok.
Creating target Makefile...ok.
Creating config files...ok.
Building...error:
Compiling dictionary 1/2
Compiling dictionary 2/2
OpenBIOS dictionary:
version: 2
cellsize: 8
endianess: big
compression: no
relocation: yes
checksum: ad683c47
length: 00000000
last: 0
sparc64-linux-gcc $EXTRACFLAGS -Wa,-xarch=v9 -Wa,-64 -g -Os -Wall -W
-DNATIVE_BITWIDTH_EQUALS_HOST_BITWIDTH -USWAP_ENDIANNESS -g
-Wa,-xarch=v9 -Wa,-64 -m64 -mcpu=ultrasparc -mcmodel=medany -fno-builtin
-nostdlib -ffreestanding -Wredundant-decls -Wshadow -Wpointer-arith
-Wstrict-prototypes -Wmissing-declarations -Wundef -Wendif-labels
-Wstrict-aliasing -Iinclude -Ikernel/include
-Iobj-sparc64/target/include -c -o
obj-sparc64/target/arch/sparc64/entry.o arch/sparc64/entry.S
/bin/sh: sparc64-linux-gcc: not found
make[1]: *** [obj-sparc64/target/arch/sparc64/entry.o] Error 127
make[1]: Leaving directory `/tmp/openbios-devel'
So, I notice that the package egcs64 may provide sparc64-linux-gcc, but
I am unable to find such a package in debian/ubuntu or the sources to
compile it myself. However, the google searches I made turned up only
people on SPARC platforms running egcs64, so I am unsure what the
requirements are to get to my intended goal -- Solaris 8/9 under qemu.
Any help is greatly appreciated! Thanks :-)
--
Kristian Hermansen
2
3
Author: wmb
Date: 2007-05-03 10:30:22 +0200 (Thu, 03 May 2007)
New Revision: 349
Modified:
dev/olpc/cafecamera/cafecamera.fth
Log:
CaFe camera driver - Minor change in the ordering of the open routine, so the
first-time? flag doesn't get cleared if the open failed. This makes it easier
to debug failed opens because you can retry and the init process will be redone.
Modified: dev/olpc/cafecamera/cafecamera.fth
===================================================================
--- dev/olpc/cafecamera/cafecamera.fth 2007-05-03 08:28:56 UTC (rev 348)
+++ dev/olpc/cafecamera/cafecamera.fth 2007-05-03 08:30:22 UTC (rev 349)
@@ -458,8 +458,9 @@
: open ( -- flag )
map-regs
- first-open? if init false to first-open? then
+ first-open? if init then
ov7670-detected? 0= if unmap-regs false exit then
+ false to first-open?
alloc-dma-bufs
read-setup
true
1
0
Author: wmb
Date: 2007-05-03 10:28:56 +0200 (Thu, 03 May 2007)
New Revision: 348
Modified:
dev/mmc/sdhci/sdmmc.fth
Log:
SDMMC driver - Removed the "No SD card" message, which is too verbose
in the usual case of booting the system with no card in the SD slot.
Modified: dev/mmc/sdhci/sdmmc.fth
===================================================================
--- dev/mmc/sdhci/sdmmc.fth 2007-05-03 08:25:39 UTC (rev 347)
+++ dev/mmc/sdhci/sdmmc.fth 2007-05-03 08:28:56 UTC (rev 348)
@@ -33,10 +33,7 @@
: dma-free ( vadr size -- ) " dma-free" $call-parent ;
: open ( -- )
- " attach-card" $call-parent 0= if
- ." No SD card" cr
- false exit
- then
+ " attach-card" $call-parent 0= if false exit then
" " " deblocker" $open-package ?dup if
to deblocker
1
0
Author: wmb
Date: 2007-05-03 10:25:39 +0200 (Thu, 03 May 2007)
New Revision: 347
Modified:
dev/olpc/kb3700/ecio.fth
Log:
OLPC EC commands - Added a time delay to the polling loop for EC command
response data, so the system doesn't hang because the EC is being polled
too fast for it to make any progress.
Modified: dev/olpc/kb3700/ecio.fth
===================================================================
--- dev/olpc/kb3700/ecio.fth 2007-05-03 08:23:33 UTC (rev 346)
+++ dev/olpc/kb3700/ecio.fth 2007-05-03 08:25:39 UTC (rev 347)
@@ -42,8 +42,8 @@
: ec-release ( -- ) h# ff h# 6c pc! ;
: ec-cmd@ ( -- b ) h# 6c pc@ ;
-: ec-wait-wr ( -- ) begin ec-cmd@ 2 and 0= key? abort" wait wr" until ;
-: ec-wait-rd ( -- ) begin ec-cmd@ 1 and key? abort" wait rd" until ;
+: ec-wait-wr ( -- ) begin ec-cmd@ 2 and while key? abort" wait wr" 1 ms repeat ;
+: ec-wait-rd ( -- ) begin ec-cmd@ 1 and 0= while key? abort" wait rd" 1 ms repeat ;
: ec-cmd! ( b -- ) ec-wait-wr h# 6c pc! ec-wait-wr ;
: ec-dat@ ( -- b ) ec-wait-rd h# 68 pc@ ;
: ec-dat! ( b -- ) ec-wait-wr h# 68 pc! ;
1
0