Rev 3607 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3607 | Rev 3664 | ||
---|---|---|---|
Line 38... | Line 38... | ||
38 | #include <string.h> |
38 | #include <string.h> |
39 | #include <register.h> |
39 | #include <register.h> |
40 | #include "main.h" |
40 | #include "main.h" |
41 | #include "asm.h" |
41 | #include "asm.h" |
42 | 42 | ||
- | 43 | /* these tho variables will be set by the detect_subarchitecture function */ |
|
43 | extern uint8_t subarchitecture; |
44 | extern uint8_t subarchitecture; |
- | 45 | extern uint16_t mid_mask; |
|
44 | 46 | ||
45 | void write(const char *str, const int len) |
47 | void write(const char *str, const int len) |
46 | { |
48 | { |
47 | int i; |
49 | int i; |
48 | 50 | ||
Line 127... | Line 129... | ||
127 | asm volatile ("ldxa [%1] %2, %0\n" |
129 | asm volatile ("ldxa [%1] %2, %0\n" |
128 | : "=r" (current_mid) |
130 | : "=r" (current_mid) |
129 | : "r" (0), "i" (ASI_ICBUS_CONFIG)); |
131 | : "r" (0), "i" (ASI_ICBUS_CONFIG)); |
130 | current_mid >>= ICBUS_CONFIG_MID_SHIFT; |
132 | current_mid >>= ICBUS_CONFIG_MID_SHIFT; |
131 | 133 | ||
132 | if (subarchitecture == SUBARCH_US) { |
- | |
133 | current_mid &= ICBUS_CONFIG_MID_MASK_US; |
134 | current_mid &= mid_mask; |
134 | } else if (subarchitecture == SUBARCH_US3) { |
- | |
135 | current_mid &= ICBUS_CONFIG_MID_MASK_US3; |
- | |
136 | } else { |
- | |
137 | printf("MID format unknown for this subarchitecture."); |
- | |
138 | return 0; |
- | |
139 | } |
- | |
140 | 135 | ||
141 | /* wake up CPUs */ |
136 | /* wake up CPUs */ |
142 | 137 | ||
143 | cpus_parent = ofw_find_device("/ssm@0,0"); |
138 | cpus_parent = ofw_find_device("/ssm@0,0"); |
144 | if (cpus_parent == 0 || cpus_parent == -1) { |
139 | if (cpus_parent == 0 || cpus_parent == -1) { |