Author: wmb Date: 2009-02-02 07:58:07 +0100 (Mon, 02 Feb 2009) New Revision: 1097
Modified: cpu/x86/pc/biosints.fth cpu/x86/pc/olpc/biosresume.fth dev/usb2/device/wlan/wlan.fth Log: OLPC trac 9227 - reset wlan when starting Windows because the Windows driver fails if the wlan firmware has already been loaded.
Modified: cpu/x86/pc/biosints.fth =================================================================== --- cpu/x86/pc/biosints.fth 2009-02-02 06:47:25 UTC (rev 1096) +++ cpu/x86/pc/biosints.fth 2009-02-02 06:58:07 UTC (rev 1097) @@ -1078,6 +1078,7 @@ ; : get-one-sector ( dev$ -- error? ) open-dev to bios-ih + bios-ih 0= if true exit then load-base 0 1 (bios-read-sectors) ( #read ) close-bios-ih ( #read ) 1 <> ( error? ) @@ -1104,7 +1105,6 @@ : open " sd:1" ntfs? if " sd:0" set-hd-boot - dcon-unfreeze unfreeze true exit then false
Modified: cpu/x86/pc/olpc/biosresume.fth =================================================================== --- cpu/x86/pc/olpc/biosresume.fth 2009-02-02 06:47:25 UTC (rev 1096) +++ cpu/x86/pc/olpc/biosresume.fth 2009-02-02 06:58:07 UTC (rev 1097) @@ -69,7 +69,13 @@ h# 5120.000b msr@ 2 invert and h# 5120.000b msr! h# 5101.0020 p2d-bm-off ; -' disable-uoc to more-platform-fixup +: xo-platform-fixup ( -- ) + disable-uoc + dcon-unfreeze unfreeze + wlan-reset +; +' xo-platform-fixup to more-platform-fixup + : video-refresh-off ( -- ) h# 1000.002a msr@ drop d# 12 lshift ( dc-base ) h# 4758 over l! 0 swap 4 + l!
Modified: dev/usb2/device/wlan/wlan.fth =================================================================== --- dev/usb2/device/wlan/wlan.fth 2009-02-02 06:47:25 UTC (rev 1096) +++ dev/usb2/device/wlan/wlan.fth 2009-02-02 06:58:07 UTC (rev 1097) @@ -84,17 +84,20 @@ my-args " supplicant" $open-package to supplicant-ih supplicant-ih 0= if end-bulk-in end-out-ring free-buf false exit then nonce-cmd - force-open? if true exit then - link-up? 0= if - ['] 2drop to ?process-eapol - do-associate 0= if free-buf false exit then - ds-disconnected reset-driver-state - ds-associated set-driver-state - ['] do-process-eapol to ?process-eapol + force-open? 0= if + link-up? 0= if + ['] 2drop to ?process-eapol + do-associate 0= if free-buf false exit then + ds-disconnected reset-driver-state + ds-associated set-driver-state + ['] do-process-eapol to ?process-eapol + then + start-nic then - start-nic then - use-promiscuous? if enable-promiscuous else disable-promiscuous then + force-open? 0= if + use-promiscuous? if enable-promiscuous else disable-promiscuous then + then opencount @ 1+ opencount ! true ;