Rev 1678 | Rev 1704 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1678 | Rev 1686 | ||
---|---|---|---|
Line 26... | Line 26... | ||
26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
27 | */ |
27 | */ |
28 | 28 | ||
29 | 29 | ||
30 | #include <arch.h> |
30 | #include <arch.h> |
- | 31 | #include <arch/boot.h> |
|
31 | #include <arch/cp0.h> |
32 | #include <arch/cp0.h> |
32 | #include <arch/exception.h> |
33 | #include <arch/exception.h> |
33 | #include <arch/asm.h> |
34 | #include <arch/asm.h> |
34 | #include <mm/as.h> |
35 | #include <mm/as.h> |
35 | 36 | ||
Line 58... | Line 59... | ||
58 | 59 | ||
59 | #define TLB_EXC ((char *) 0x80000000) |
60 | #define TLB_EXC ((char *) 0x80000000) |
60 | #define NORM_EXC ((char *) 0x80000180) |
61 | #define NORM_EXC ((char *) 0x80000180) |
61 | #define CACHE_EXC ((char *) 0x80000100) |
62 | #define CACHE_EXC ((char *) 0x80000100) |
62 | 63 | ||
- | 64 | bootinfo_t bootinfo; |
|
- | 65 | ||
63 | void arch_pre_main(void) |
66 | void arch_pre_main(void) |
64 | { |
67 | { |
65 | /* Setup usermode */ |
68 | /* Setup usermode */ |
66 | init.cnt = 8; |
69 | init.cnt = bootinfo.cnt; |
67 | init.tasks[0].addr = INIT_ADDRESS; |
- | |
68 | init.tasks[0].size = INIT_SIZE; |
- | |
69 | init.tasks[1].addr = INIT_ADDRESS + 0x100000; |
- | |
70 | init.tasks[1].size = INIT_SIZE; |
- | |
71 | init.tasks[2].addr = INIT_ADDRESS + 0x200000; |
- | |
- | 70 | ||
72 | init.tasks[2].size = INIT_SIZE; |
71 | __u32 i; |
73 | init.tasks[3].addr = INIT_ADDRESS + 0x300000; |
- | |
- | 72 | ||
74 | init.tasks[3].size = INIT_SIZE; |
73 | for (i = 0; i < bootinfo.cnt; i++) { |
75 | init.tasks[4].addr = INIT_ADDRESS + 0x400000; |
- | |
76 | init.tasks[4].size = INIT_SIZE; |
- | |
77 | init.tasks[5].addr = INIT_ADDRESS + 0x500000; |
- | |
78 | init.tasks[5].size = INIT_SIZE; |
- | |
79 | init.tasks[6].addr = INIT_ADDRESS + 0x600000; |
- | |
80 | init.tasks[6].size = INIT_SIZE; |
- | |
81 | init.tasks[7].addr = INIT_ADDRESS + 0x700000; |
74 | init.tasks[i].addr = bootinfo.tasks[i].addr; |
82 | init.tasks[7].size = INIT_SIZE; |
75 | init.tasks[i].size = bootinfo.tasks[i].size; |
- | 76 | } |
|
83 | } |
77 | } |
84 | 78 | ||
85 | void arch_pre_mm_init(void) |
79 | void arch_pre_mm_init(void) |
86 | { |
80 | { |
87 | /* It is not assumed by default */ |
81 | /* It is not assumed by default */ |