]>
Commit | Line | Data |
---|---|---|
1 | Linux loader for Pocket PC\r | |
2 | \r | |
3 | \r | |
4 | How to compile:\r | |
5 | \r | |
6 | 1. Two asm files from asm directory has to be compiled with armasm.exe. This will create two \r | |
7 | obj files, that should be copied into lib directory(and will be included in the project)\r | |
8 | 2. Compile & link project\r | |
9 | \r | |
10 | The c++ source file also contains some routines to read physical memory and to translate virtual mem to phys.\r | |
11 | However, the translation is limited and not fully implemented.\r | |
12 | \r | |
13 | The booting of Linux begins IMMEDIATELLY after program is started.\r | |
14 | zImage filename is "image2" (without "")\r | |
15 | initrd filename is "initrd"\r | |
16 | \r | |
17 | If it for some reason freezes try removing pieces of code that write into Frame buffer on Axim\r | |
18 | (this fb is beyond limits of physical memory and should not cause problems on IPAQ. adr=0x14042000)\r | |
19 | \r | |
20 | Limitations: There are some limitations of file sizes.\r | |
21 | \r | |
22 | If a screen with Hello World appears, there was a problem in booting. Check filenames.\r | |
23 | \r | |
24 | To make it work for SA11x0 you will have to change these lines in asm.asm:\r | |
25 | ldr r5, =0xa0000100\r | |
26 | \r | |
27 | ldr r7, =0xa0400000\r | |
28 | \r | |
29 | with proper adresses and limits of memory( just change the "a" with "8" I think)\r | |
30 | Also KERNELCOPY and INITRD macros have to be changed.\r | |
31 | \r | |
32 | \r | |
33 | author: Demo; cooldemo@inmail.sk\r | |
34 | \r | |
35 | \r | |
36 | ================================================================================\r | |
37 | \r | |
38 | Amendment by Pigeon:\r | |
39 | \r | |
40 | linexec has been changed a lot and therefore some stuff in the above readme\r | |
41 | might not be true anymore. But anyway, here is how you use linexec:\r | |
42 | \r | |
43 | \r | |
44 | To use linexec, you need 4 files.\r | |
45 | \r | |
46 | linexec config file: params\r | |
47 | \r | |
48 | Create a file called "params", and put it under either "\My Documents\", or\r | |
49 | "\CF Card\". If you really care where and what this file is called, edit\r | |
50 | tester1.cpp and look for load_boot() call.\r | |
51 | \r | |
52 | This params file specifies three lines of config for:\r | |
53 | kernel image\r | |
54 | initrd image\r | |
55 | kernel args\r | |
56 | \r | |
57 | For example, my params looks like this:\r | |
58 | \My Documents\zimage\r | |
59 | \My Documents\initrd.gz\r | |
60 | init=/linuxrc keepinitrd root=/dev/rd/0\r | |
61 | \r | |
62 | \r | |
63 | (This is what I actually have in my params file, but remember this might not\r | |
64 | work for your kernel/device)\r | |
65 | \r | |
66 | (Also a note for the params file, seems that the code is only happy if the\r | |
67 | file is in unix format, i.e. newline as \r, but not dos format)\r | |
68 | \r | |
69 | \r | |
70 | And yes, if you see "Hello World", you've got something wrong.\r | |
71 | \r | |
72 | \r | |
73 | Pigeon.\r | |
74 | \r | |
75 | \r | |
76 | \r | |
77 | \r |