Author: wmb
Date: Wed Mar 10 10:29:14 2010
New Revision: 1768
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/1768
Log:
OLPC XO-1.5 - let the DMA area grow much larger, for NANDblaster.
Modified:
cpu/x86/pc/olpc/via/addrs.fth
Modified: cpu/x86/pc/olpc/via/addrs.fth
==============================================================================
--- cpu/x86/pc/olpc/via/addrs.fth Wed Mar 10 10:28:16 2010 (r1767)
+++ cpu/x86/pc/olpc/via/addrs.fth Wed Mar 10 10:29:14 2010 (r1768)
@@ -37,7 +37,8 @@
h# 18.0000 constant heap-size
-h# 40.0000 constant /dma-extra \ In case the firmware region isn't enough
+\ h# 40.0000 constant /dma-extra \ In case the firmware region isn't enough
+h# 1000.0000 constant /dma-extra \ In case the firmware region isn't enough
/fw-ram /dma-extra + constant dma-size \ We let the DMA area overlap the FW area
\ fw-pa /dma-extra - constant dma-base
0 value dma-base \ Set in probemem.fth
Author: wmb
Date: Wed Mar 10 10:27:21 2010
New Revision: 1766
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/1766
Log:
Fast code implementations of interrupt controller handling words.
Modified:
dev/i8259.fth
Modified: dev/i8259.fth
==============================================================================
--- dev/i8259.fth Wed Mar 10 10:26:00 2010 (r1765)
+++ dev/i8259.fth Wed Mar 10 10:27:21 2010 (r1766)
@@ -72,17 +72,53 @@
h# b h# 20 ocw3@ dup 4 and if h# b h# a0 ocw3@ bwjoin then
;
-: eoi ( -- )
- h# b h# 20 ocw3@ 4 and ( slave? )
- h# 20 h# 20 pc! ( slave? ) \ EOI to master
- if h# 20 h# a0 pc! then ( ) \ EOI to slave
-;
-
\ This is only needed when operating in rotating priority mode
\ : iack# ( irq# -- )
\ dup 7 and h# 60 or swap 8 and if h# a0 else h# 20 then pc!
\ ;
+[ifdef] 386-assembler
+code this-interrupt
+ ax ax xor
+ h# f # al mov
+ al h# 20 # out
+ h# 20 # in
+ h# 80 # al test 0= if
+ ax ax xor
+ ax push
+ next
+ then
+ h# 7 # al and
+ h# 2 # al cmp <> if \ Not cascaded
+ ax push
+ ax ax xor ax dec ax push
+ next
+ then
+ h# f # al mov
+ al h# a0 # out
+ h# a0 # in
+ h# 80 # al test 0= if
+ ax ax xor ax push
+ next
+ then
+ h# 7 # al and
+ h# 8 # al add
+ ax push
+ ax ax xor ax dec ax push
+c;
+code eoi
+ h# b # al mov
+ al h# 20 # out
+ h# 20 # in
+ h# 04 # al test \ Test slave bit
+ h# 20 # al mov
+ al h# 20 # out \ EOI to master
+ 0<> if
+ al h# a0 # out \ EOI to cascaded slave
+ then
+c;
+alias interrupt-done eoi
+[else]
: this-interrupt ( -- false | level true )
h# f h# 20 ocw3@ dup h# 80 and if ( low-code )
7 and dup 2 = if ( low-level )
@@ -102,6 +138,12 @@
then ( false | level true )
;
: interrupt-done ( -- ) eoi ;
+: eoi ( -- )
+ h# b h# 20 ocw3@ 4 and ( slave? )
+ h# 20 h# 20 pc! ( slave? ) \ EOI to master
+ if h# 20 h# a0 pc! then ( ) \ EOI to slave
+;
+[then]
\ XXX we really should map the registers
: open ( -- flag? ) true ;
Author: wmb
Date: Mon Mar 1 06:25:09 2010
New Revision: 1760
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/1760
Log:
OLPC trac 10047 - XO-1.5 - Conexant chip needs ID in node 1. This revision also fixes a problem where the CODEC init table was not being processed properly, due to a table address relocation error.
Modified:
dev/hdaudio/start-cx2058x.fth
Modified: dev/hdaudio/start-cx2058x.fth
==============================================================================
--- dev/hdaudio/start-cx2058x.fth Thu Feb 25 23:16:34 2010 (r1759)
+++ dev/hdaudio/start-cx2058x.fth Mon Mar 1 06:25:09 2010 (r1760)
@@ -117,6 +117,10 @@
71E00 place-verb \ Undocumented register
71F00 place-verb \ disable software GSMark protection
71F00 place-verb \ disable software GSMark protection - repeat in case of end condition issues
+ 72033 place-verb \ Low byte of product ID
+ 72108 place-verb \ High byte of product ID
+ 7222d place-verb \ Low byte of vendor ID
+ 72315 place-verb \ High byte of vendor ID
end-verb-table
\ Subroutine to turn on the HD Audio controller, push the verb table to the codec,
@@ -180,7 +184,7 @@
\ Copy the verb table to the CORB DMA area
#verbs # cx mov
- verb-table # si mov
+ verb-table asm-base - asm-origin + # si mov
corb # di mov
rep movs
Author: wmb
Date: Thu Feb 25 23:16:34 2010
New Revision: 1759
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/1759
Log:
OLPC trac 10022 - Power wait must happen before turning off the EC, otherwise you can't read the AC and battery state.
Modified:
cpu/x86/pc/olpc/keyject.fth
Modified: cpu/x86/pc/olpc/keyject.fth
==============================================================================
--- cpu/x86/pc/olpc/keyject.fth Thu Feb 25 01:54:44 2010 (r1758)
+++ cpu/x86/pc/olpc/keyject.fth Thu Feb 25 23:16:34 2010 (r1759)
@@ -168,7 +168,6 @@
\ Firmware is in flash-buf
: update-firmware ( -- )
- wait-enough-power
write-firmware
['] verify-firmware catch if
@@ -185,6 +184,7 @@
\ Get the new firmware first, so any security checks use the old keys
get-new-firmware
do-keyject? if
+ wait-enough-power
flash-write-enable
inject-keys
new-firmware? if update-firmware then
@@ -194,6 +194,7 @@
\ we get into an infinite reboot cycle.
new-firmware? if
." Updating firmware ..." cr
+ wait-enough-power
flash-write-enable
update-firmware
flash-write-disable \ Should reboot