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