Binary files haret/.Makefile.swp and haret.mine/.Makefile.swp differ
diff -Nur haret/Makefile haret.mine/Makefile
--- haret/Makefile	2006-09-03 19:04:59.000000000 +0200
+++ haret.mine/Makefile	2006-09-03 19:23:57.000000000 +0200
@@ -15,7 +15,7 @@
 TARGET = wince
 
 # Program version
-VERSION=0.3.6
+VERSION=0.3.6-G500
 
 # Output directory
 OUT=out/
@@ -39,7 +39,7 @@
 $(OUT)haret$E: $(addprefix $(OUT),haret$O haret-res$O \
   s-cpu$O s-util$O memory$O gpio$O uart$O video$O \
   asmstuff$O irqchain$O getsetcp$O irq$O cpu-pxa$O cpu-s3c24xx$O \
-  util$O output$O script$O network$O cpu$O terminal$O linboot$O bw_mem$O lib_timing$O)
+  util$O output$O script$O network$O cpu$O terminal$O linboot$O bw_mem$O lib_timing$O com_port$O)
 	$(LINK)
 
 # WinCE resources (not used under Linux)
@@ -55,10 +55,10 @@
   include/s3c24xx.h include/s3c24xx/map.h include/s3c24xx/regs-dma.h \
   include/s3c24xx/regs-gpio.h include/s3c24xx/regs-serial.h \
   include/output.h include/haret.h include/memory.h include/util.h
-$(OUT)gpio$O: include/xtypes.h gpio.h include/memory.h include/output.h
+$(OUT)gpio$O: include/xtypes.h include/gpio.h include/memory.h include/output.h
 $(OUT)lib_timing$O: include/xtypes.h include/bench.h include/output.h
 $(OUT)linboot$O: include/haret.h include/xtypes.h include/setup.h \
-  include/memory.h include/util.h include/output.h gpio.h include/video.h \
+  include/memory.h include/util.h include/output.h include/gpio.h include/video.h \
   include/cpu.h include/pxa2xx.h include/s3c24xx.h include/s3c24xx/map.h \
   include/s3c24xx/regs-dma.h include/s3c24xx/regs-gpio.h \
   include/s3c24xx/regs-serial.h include/resource.h
@@ -75,7 +75,7 @@
   include/video.h include/output.h include/util.h include/cpu.h \
   include/pxa2xx.h include/s3c24xx.h include/s3c24xx/map.h \
   include/s3c24xx/regs-dma.h include/s3c24xx/regs-gpio.h \
-  include/s3c24xx/regs-serial.h gpio.h include/linboot.h include/bench.h \
+  include/s3c24xx/regs-serial.h include/gpio.h include/linboot.h include/bench.h \
   include/irq.h
 $(OUT)terminal$O: include/xtypes.h include/terminal.h
 $(OUT)uart$O: include/haret.h include/uart.h
@@ -83,12 +83,12 @@
 $(OUT)video$O: include/xtypes.h include/video.h include/haret.h \
   include/memory.h include/output.h
 $(OUT)cpu-pxa$O: include/haret.h include/xtypes.h include/setup.h \
-  include/memory.h include/util.h include/output.h gpio.h include/video.h \
+  include/memory.h include/util.h include/output.h include/gpio.h include/video.h \
   include/cpu.h include/pxa2xx.h include/s3c24xx.h include/s3c24xx/map.h \
   include/s3c24xx/regs-dma.h include/s3c24xx/regs-gpio.h \
   include/s3c24xx/regs-serial.h include/resource.h
 $(OUT)cpu-s3c24xx$O: include/haret.h include/xtypes.h include/setup.h \
-  include/memory.h include/util.h include/output.h gpio.h include/video.h \
+  include/memory.h include/util.h include/output.h include/gpio.h include/video.h \
   include/cpu.h include/pxa2xx.h include/s3c24xx.h include/s3c24xx/map.h \
   include/s3c24xx/regs-dma.h include/s3c24xx/regs-gpio.h \
   include/s3c24xx/regs-serial.h include/uart.h include/resource.h
Binary files haret/out/asmstuff.obj and haret.mine/out/asmstuff.obj differ
Binary files haret/out/bw_mem.obj and haret.mine/out/bw_mem.obj differ
Binary files haret/out/com_port.obj and haret.mine/out/com_port.obj differ
Binary files haret/out/cpu-pxa.obj and haret.mine/out/cpu-pxa.obj differ
Binary files haret/out/cpu-s3c24xx.obj and haret.mine/out/cpu-s3c24xx.obj differ
Binary files haret/out/cpu.obj and haret.mine/out/cpu.obj differ
Binary files haret/out/getsetcp.obj and haret.mine/out/getsetcp.obj differ
Binary files haret/out/gpio.obj and haret.mine/out/gpio.obj differ
Binary files haret/out/haret-res.obj and haret.mine/out/haret-res.obj differ
Binary files haret/out/haret.exe and haret.mine/out/haret.exe differ
Binary files haret/out/haret.obj and haret.mine/out/haret.obj differ
Binary files haret/out/haret.res and haret.mine/out/haret.res differ
Binary files haret/out/irq.obj and haret.mine/out/irq.obj differ
Binary files haret/out/irqchain.obj and haret.mine/out/irqchain.obj differ
Binary files haret/out/lib_timing.obj and haret.mine/out/lib_timing.obj differ
Binary files haret/out/linboot.obj and haret.mine/out/linboot.obj differ
Binary files haret/out/memory.obj and haret.mine/out/memory.obj differ
Binary files haret/out/network.obj and haret.mine/out/network.obj differ
Binary files haret/out/output.obj and haret.mine/out/output.obj differ
Binary files haret/out/s-cpu.obj and haret.mine/out/s-cpu.obj differ
Binary files haret/out/s-util.obj and haret.mine/out/s-util.obj differ
Binary files haret/out/script.obj and haret.mine/out/script.obj differ
Binary files haret/out/terminal.obj and haret.mine/out/terminal.obj differ
Binary files haret/out/uart.obj and haret.mine/out/uart.obj differ
Binary files haret/out/util.obj and haret.mine/out/util.obj differ
Binary files haret/out/video.obj and haret.mine/out/video.obj differ
diff -Nur haret/src/cpu.cpp haret.mine/src/cpu.cpp
--- haret/src/cpu.cpp	2006-09-03 19:04:58.000000000 +0200
+++ haret.mine/src/cpu.cpp	2006-09-03 19:09:04.000000000 +0200
@@ -49,6 +49,9 @@
 
 void cpuDetect ()
 {
+  cpu=&cpu_s3c24xx;
+  return;
+  /*
   for (int i = 0; i < sizeof (cpus) / sizeof (cpus [0]); i++)
     if (cpus [i]->detect ())
     {
@@ -58,6 +61,7 @@
     }
   Complain (C_ERROR ("Cannot detect the family of your CPU:\n"
                     L"some functions will not be available"));
+  */
 }
 
 uint32 cpuGetFamily (bool setval, uint32 *args, uint32 val)
diff -Nur haret/src/linboot.cpp haret.mine/src/linboot.cpp
--- haret/src/linboot.cpp	2006-09-03 19:04:58.000000000 +0200
+++ haret.mine/src/linboot.cpp	2006-09-03 19:18:44.000000000 +0200
@@ -381,7 +381,6 @@
   else
     eyes.Draw (dx + PENGUIN_EYES_X, dy + PENGUIN_EYES_Y);
 
-
   /* Set thread priority to maximum */
   SetThreadPriority (GetCurrentThread (), THREAD_PRIORITY_TIME_CRITICAL);
   /* Disable multitasking (heh) */
@@ -394,10 +393,13 @@
   uint32 *mmu = (uint32 *)memPhysMap (cpuGetMMU ());
 
    // call SetupLoad()
+  /* removed for the G500 : it makes the device hangs after disabling the MMU
   (cpu->setup_load)();
+  */
 
   cli ();
 
+
   // call ShutdownPeripherals
   (cpu->shutdown_peripherals)();
 
@@ -409,8 +411,11 @@
     // 1st level descriptor table. These addresses are hopefully
     // unused by WindowsCE (or rather unimportant for us now).
     cpuFlushCache ();
-    mmu [preloaderPA >> 20] = (preloaderPA & MMU_L1_SECTION_MASK) |
-        MMU_L1_SECTION | MMU_L1_AP_MASK;
+    mmu [preloaderPA >> 20] = (preloaderPA & MMU_L1_SECTION_MASK) | MMU_L1_SECTION | MMU_L1_AP_MASK;
+
+    // screen framebuffer 1:1 mapping if you want to use the test video always with the physical address
+    // for convenience
+    // mmu [0x33f40000 >> 20] = (0x33f40000 & MMU_L1_SECTION_MASK) | MMU_L1_SECTION | MMU_L1_AP_MASK;
 
     // Penguinize!
     linux_start (bootMachineType, npages, memPhysAddr, preloaderPA,
diff -Nur haret/src/memory.cpp haret.mine/src/memory.cpp
--- haret/src/memory.cpp	2006-09-03 19:04:58.000000000 +0200
+++ haret.mine/src/memory.cpp	2006-09-03 19:19:38.000000000 +0200
@@ -17,7 +17,7 @@
 #include "haret.h"
 
 // RAM start physical address
-uint32 memPhysAddr = 0xa0000000;
+uint32 memPhysAddr = 0x30000000;
 // RAM size (autodetected)
 uint32 memPhysSize;
 
diff -Nur haret/src/network.cpp haret.mine/src/network.cpp
--- haret/src/network.cpp	2006-09-03 19:04:58.000000000 +0200
+++ haret.mine/src/network.cpp	2006-09-03 19:22:15.000000000 +0200
@@ -17,7 +17,6 @@
 #include "output.h"
 #include "terminal.h"
 #include "script.h"
-
 #ifdef _WIN32_WCE
 #  include <winsock.h>
 #  define so_close	closesocket
diff -Nur haret/src/wince/asmstuff.asm haret.mine/src/wince/asmstuff.asm
--- haret/src/wince/asmstuff.asm	2006-09-03 19:04:58.000000000 +0200
+++ haret.mine/src/wince/asmstuff.asm	2006-09-03 19:23:35.000000000 +0200
@@ -167,6 +167,22 @@
 		subs	r1, r1, #1
 		bne	|nextpage|
 
+
+; sample test code that fills the screen with various garbage (infinite loop)
+;|testVideo|
+		;mov	r0, #0x47000000 ; virtual address
+		;add	r0, r0, #0x00e00000
+;		mov	r0, #0x33000000  ; physical address
+;		add	r0, r0, #0x00f40000
+;                mov     r2, #0x4b00
+;|toto|
+;                str     r3, [r0], #4
+;                add     r3, r3, #1
+;                subs     r2, r2, #1
+;                bne     |toto|
+;                b     |testVideo|
+                
+
 ; turn off LCD controller...
 ;		mov	r1, #0x44000000
 ;		ldr	r2, [r1]
diff -Nur haret/src/wince/haret.cpp haret.mine/src/wince/haret.cpp
--- haret/src/wince/haret.cpp	2006-09-03 19:04:58.000000000 +0200
+++ haret.mine/src/wince/haret.cpp	2006-09-03 19:13:11.000000000 +0200
@@ -25,7 +25,6 @@
 #include "cpu.h"
 #include "com_port.h"
 
-#define VERSION "0.3.7"
 #define WINDOW_CLASS TEXT("pmret")
 #define WINDOW_TITLE TEXT("HaRET")
 
@@ -94,7 +93,7 @@
 }
 
 /* avoid useless LCD calibration 950 times per session :) */
-void kill_welcome ()
+/*void kill_welcome ()
 {
   HANDLE hts = INVALID_HANDLE_VALUE;
   HANDLE hproc = INVALID_HANDLE_VALUE;
@@ -124,7 +123,7 @@
   }
 
   CloseToolhelp32Snapshot (hts);
-}
+}*/
 
 int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
   LPTSTR lpCmdLine, int nCmdShow)
@@ -165,8 +164,8 @@
   }
 
   /* kill LCD calibration app */
-  if (kill == 1)
-    kill_welcome();
+  /*if (kill == 1)
+    kill_welcome();*/
 
   if (run != 1)
   {
diff -Nur haret/src/wince/haret.rc haret.mine/src/wince/haret.rc
--- haret/src/wince/haret.rc	2006-09-03 19:04:58.000000000 +0200
+++ haret.mine/src/wince/haret.rc	2006-09-03 19:09:04.000000000 +0200
@@ -7,7 +7,7 @@
 //
 // Generated from the TEXTINCLUDE 2 resource.
 //
-#include "afxres.h"
+#include "winres.h"
 
 /////////////////////////////////////////////////////////////////////////////
 #undef APSTUDIO_READONLY_SYMBOLS
diff -Nur haret/wince.smak haret.mine/wince.smak
--- haret/wince.smak	2006-09-03 19:04:59.000000000 +0200
+++ haret.mine/wince.smak	2006-09-03 19:11:38.000000000 +0200
@@ -11,29 +11,29 @@
 # The directory where your MSVC for StrongARM and the SDK is installed.
 # You should set up WINE (see /etc/wine.reg) so that it "sees" this drive
 # Overwrite this in config.smak
-DIR.MSVC.ARM ?= d:\\msvc-arm
+DIR.MSVC.ARM ?= c:\\msvc-arm
 
 # Set some env vars for msvc to use
 export WINEPATH = $(DIR.MSVC.ARM)\\bin
 export INCLUDE = $(DIR.MSVC.ARM)\\include
 export LIB = $(DIR.MSVC.ARM)\\lib
 
-CXX = wine -- $(DIR.MSVC.ARM)\\bin\\clarm.exe -c
+CXX = wine $(DIR.MSVC.ARM)\\bin\\clarm.exe -c
 CXXFLAGS.DEF = -DARM -DUNICODE -DUNDER_CE=0x0300 -D_WIN32_WCE=0x0300 -DNDEBUG
 CXXFLAGS.INC = -Iinclude
 # Do not enable optimization! msvc generates invalid code with -Oxs !!!
 CXXFLAGS = -nologo -W3 $(CXXFLAGS.DEF) $(CXXFLAGS.INC)
 
-ASM = wine -- $(DIR.MSVC.ARM)\\bin\\armasm.exe
-ASMFLAGS = -arch 4 -cpu StrongARM1 -32
+ASM = wine $(DIR.MSVC.ARM)\\bin\\armasm.exe
+ASMFLAGS = -arch 4 -32
 
-RC = wine -- $(DIR.MSVC.ARM)\\bin\\rc.exe
+RC = wine $(DIR.MSVC.ARM)\\bin\\rc.exe
 RCFLAGS = -r -l 0x409 $(CXXFLAGS.DEF) $(CXXFLAGS.INC)
 
-CVTRES = wine -- $(DIR.MSVC.ARM)\\bin\\cvtres.exe
+CVTRES = wine $(DIR.MSVC.ARM)\\bin\\cvtres.exe
 CVTRESFLAGS = -machine:arm -windowsce
 
-LD = wine -- $(DIR.MSVC.ARM)\\bin\\link.exe
+LD = wine $(DIR.MSVC.ARM)\\bin\\link.exe
 LDFLAGS = -nologo -base:0x10000 -stack:0x10000,0x1000 -entry:WinMainCRTStartup \
   -align:4096 -machine:ARM -subsystem:WindowsCE,3
 LIBS = aygshell.lib winsock.lib

