/branches/sparc/usiii.simics |
---|
File deleted |
/branches/sparc/kernel/arch/sparc64/include/cpu_node.h |
---|
File deleted |
\ No newline at end of file |
/branches/sparc/kernel/arch/sparc64/include/mm/tte.h |
---|
50,7 → 50,6 |
#include <arch/types.h> |
// TODO find out what this means |
#define VA_TAG_PAGE_SHIFT 22 |
/** Translation Table Entry - Tag. */ |
/branches/sparc/kernel/arch/sparc64/include/mm/cache_spec.h |
---|
38,29 → 38,20 |
/* |
* The following macros are valid for the following processors: |
* |
* UltraSPARC, UltraSPARC II, UltraSPARC IIi, UltraSPARC III Cu |
* UltraSPARC, UltraSPARC II, UltraSPARC IIi |
* |
* Should we support other UltraSPARC processors, we need to make sure that |
* the macros are defined correctly for them. |
*/ |
#if defined (US) |
#define DCACHE_SIZE (16 * 1024) |
#elif defined (US3) |
#define DCACHE_SIZE (64 * 1024) |
#endif |
#define DCACHE_LINE_SIZE 32 |
#if defined (US) |
#define ICACHE_SIZE (16 * 1024) |
#define ICACHE_WAYS 2 |
#elif defined (US3) |
#define ICACHE_SIZE (32 * 1024) |
#define ICACHE_WAYS 4 |
#endif |
#define ICACHE_LINE_SIZE 32 |
#endif |
/** @} |
*/ |
*/ |
/branches/sparc/kernel/arch/sparc64/include/drivers/simics_output.h |
---|
File deleted |
\ No newline at end of file |
/branches/sparc/kernel/arch/sparc64/src/smp/smp.c |
---|
43,7 → 43,6 |
#include <synch/synch.h> |
#include <synch/waitq.h> |
#include <print.h> |
#include <arch/cpu_node.h> |
/** |
* This global variable is used to pick-up application processors |
62,7 → 61,7 |
ofw_tree_node_t *node; |
count_t cnt = 0; |
node = ofw_tree_find_child_by_device_type(cpus_parent(), "cpu"); |
node = ofw_tree_find_child_by_device_type(ofw_tree_lookup("/"), "cpu"); |
while (node) { |
cnt++; |
node = ofw_tree_find_peer_by_device_type(node, "cpu"); |
77,12 → 76,12 |
ofw_tree_node_t *node; |
int i; |
node = ofw_tree_find_child_by_device_type(cpus_parent(), "cpu"); |
node = ofw_tree_find_child_by_device_type(ofw_tree_lookup("/"), "cpu"); |
for (i = 0; node; node = ofw_tree_find_peer_by_device_type(node, "cpu"), i++) { |
uint32_t mid; |
ofw_tree_property_t *prop; |
prop = ofw_tree_getprop(node, PORTID_NAME); |
prop = ofw_tree_getprop(node, "upa-portid"); |
if (!prop || !prop->value) |
continue; |
/branches/sparc/kernel/arch/sparc64/src/cpu/cpu.c |
---|
37,7 → 37,6 |
#include <genarch/ofw/ofw_tree.h> |
#include <arch/drivers/tick.h> |
#include <print.h> |
#include <arch/cpu_node.h> |
/** Perform sparc64 specific initialization of the processor structure for the |
* current processor. |
55,11 → 54,11 |
/* |
* Detect processor frequency. |
*/ |
node = ofw_tree_find_child_by_device_type(cpus_parent(), "cpu"); |
node = ofw_tree_find_child_by_device_type(ofw_tree_lookup("/"), "cpu"); |
while (node) { |
ofw_tree_property_t *prop; |
prop = ofw_tree_getprop(node, PORTID_NAME); |
prop = ofw_tree_getprop(node, "upa-portid"); |
if (prop && prop->value) { |
mid = *((uint32_t *) prop->value); |
if (mid == CPU->arch.mid) { |
/branches/sparc/kernel/arch/sparc64/src/drivers/simics_output.c |
---|
File deleted |
/branches/sparc/kernel/arch/sparc64/src/sparc64.c |
---|
38,7 → 38,6 |
#include <arch/trap/trap.h> |
#include <arch/console.h> |
#include <proc/thread.h> |
#include <arch/drivers/simics_output.h> |
#include <console/console.h> |
#include <arch/boot/boot.h> |
#include <arch/arch.h> |
88,8 → 87,7 |
*/ |
irq_init(1 << 11, 128); |
simics_output_init(); |
//standalone_sparc64_console_init(); |
standalone_sparc64_console_init(); |
} |
} |
/branches/sparc/kernel/arch/sparc64/Makefile.inc |
---|
114,10 → 114,8 |
arch/$(ARCH)/src/drivers/tick.c \ |
arch/$(ARCH)/src/drivers/kbd.c \ |
arch/$(ARCH)/src/drivers/scr.c \ |
arch/$(ARCH)/src/drivers/pci.c \ |
arch/$(ARCH)/src/drivers/simics_output.c |
arch/$(ARCH)/src/drivers/pci.c |
ifeq ($(CONFIG_SMP),y) |
ARCH_SOURCES += \ |
arch/$(ARCH)/src/smp/ipi.c \ |
/branches/sparc/kernel/generic/src/main/main.c |
---|
192,6 → 192,8 |
/* Keep this the first thing. */ |
the_initialize(THE); |
asm("sethi 0x40100, %g0"); |
LOG(); |
version_print(); |
/branches/sparc/boot/arch/sparc64/loader/ofwarch.c |
---|
56,23 → 56,12 |
return flag != -1; |
} |
/* |
* Node among whose children the CPU nodes are located. |
*/ |
#if defined (OPEN_BOOT) |
#define CPUS_PARENT_NODE ofw_root |
#elif defined (SMART_FIRMWARE) |
#define CPUS_PARENT_NODE ofw_find_device("/ssm@0,0") |
#endif |
int ofw_cpu(void) |
{ |
char type_name[BUF_SIZE]; |
phandle node; |
node = ofw_get_child_node(CPUS_PARENT_NODE); |
node = ofw_get_child_node(ofw_root); |
if (node == 0 || node == -1) { |
printf("Could not find any child nodes of the root node.\n"); |
return 0; |
95,12 → 84,8 |
if (strcmp(type_name, "cpu") == 0) { |
uint32_t mid; |
/* "upa-portid" for US, "portid" for US-III */ |
if (ofw_get_property( |
node, "upa-portid", |
&mid, sizeof(mid)) <= 0 |
&& ofw_get_property(node, "portid", |
&mid, sizeof(mid)) <= 0) |
if (ofw_get_property(node, "upa-portid", &mid, |
sizeof(mid)) <= 0) |
continue; |
if (current_mid != mid) { |
/branches/sparc/boot/arch/ppc32/Makefile.inc |
---|
26,8 → 26,6 |
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
# |
DEFS += -DSMART_FIRMWARE |
build: $(BASE)/image.boot |
$(BASE)/image.boot: depend arch/$(ARCH)/loader/image.boot |
/branches/sparc/boot/arch/ppc64/Makefile.inc |
---|
26,8 → 26,6 |
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
# |
DEFS += -DOPEN_BOOT |
build: $(BASE)/image.boot |
$(BASE)/image.boot: depend arch/$(ARCH)/loader/image.boot |
37,7 → 35,7 |
-rm arch/$(ARCH)/loader/image.boot |
arch/$(ARCH)/loader/image.boot: |
make -C arch/$(ARCH)/loader COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR) "DEFS=$(DEFS)" |
make -C arch/$(ARCH)/loader COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR) |
clean: generic_clean |
make -C arch/$(ARCH)/loader clean COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR) |
/branches/sparc/boot/genarch/ofw_tree.c |
---|
220,27 → 220,9 |
{ |
ofw_tree_node_t *root; |
#if defined (SMART_FIRMWARE) |
ofw_tree_node_t *ssm; |
#endif |
root = ofw_tree_node_alloc(); |
if (root) |
ofw_tree_node_process(root, NULL, ofw_root); |
#if defined (SMART_FIRMWARE) |
/* |
* The firmware client interface does not automatically include the |
* "ssm" node in the list of children of "/". A nasty yet working |
* solution is to explicitly stick "ssm" to the OFW tree. |
*/ |
ssm = ofw_tree_node_alloc(); |
if (ssm) { |
ofw_tree_node_process(ssm, root, ofw_find_device("/ssm@0,0")); |
ssm->peer = root->child; |
root->child = ssm; |
} |
#endif |
return root; |
} |