Print this page
11630 remove checks for 64-bit capable hardware
*** 34,135 ****
#include <sys/salib.h>
extern int is_sun4v;
/*
- * Check if the CPU should default to 64-bit or not.
- * UltraSPARC-1's default to 32-bit mode.
- * Everything else defaults to 64-bit mode.
- */
-
- /*
- * Manufacturer codes for the CPUs we're interested in
- */
- #define TI_JEDEC 0x17
- #define SUNW_JEDEC 0x22
-
- /*
- * Implementation codes for the CPUs we're interested in
- */
- #define IMPL_US_I 0x10
-
- static pnode_t
- visit(pnode_t node)
- {
- int impl, manu;
- char name[32];
- static char ultrasparc[] = "SUNW,UltraSPARC";
- static char implementation[] = "implementation#";
- static char manufacturer[] = "manufacturer#";
-
- /*
- * if name isn't 'SUNW,UltraSPARC', continue.
- */
- if (prom_getproplen(node, "name") != sizeof (ultrasparc))
- return ((pnode_t)0);
- (void) prom_getprop(node, "name", name);
- if (strncmp(name, ultrasparc, sizeof (ultrasparc)) != 0)
- return ((pnode_t)0);
-
- if (prom_getproplen(node, manufacturer) != sizeof (int))
- return ((pnode_t)0);
- (void) prom_getprop(node, manufacturer, (caddr_t)&manu);
-
- if ((manu != SUNW_JEDEC) && (manu != TI_JEDEC))
- return ((pnode_t)0);
-
- if (prom_getproplen(node, implementation) != sizeof (int))
- return ((pnode_t)0);
- (void) prom_getprop(node, implementation, (caddr_t)&impl);
-
- if (impl != IMPL_US_I)
- return ((pnode_t)0);
-
- return (node);
- }
-
- /*
- * visit each node in the device tree, until we get a non-null answer
- */
- static pnode_t
- walk(pnode_t node)
- {
- pnode_t id;
-
- if (visit(node))
- return (node);
-
- for (node = prom_childnode(node); node; node = prom_nextnode(node))
- if ((id = walk(node)) != (pnode_t)0)
- return (id);
-
- return ((pnode_t)0);
- }
-
- /*
- * Check if the CPU is an UltraSPARC-1 or not.
- */
- int
- cpu_is_ultrasparc_1(void)
- {
- static int cpu_checked;
- static int cpu_default;
-
- /*
- * If we already checked or the machine is
- * a sun4v, we already know the answer.
- */
- if (!is_sun4v || cpu_checked == 0) {
- if (walk(prom_rootnode()))
- cpu_default = 1;
- cpu_checked = 1;
- }
-
- return (cpu_default);
- }
-
- /*
* Retain a page or reclaim a previously retained page of physical
* memory for use by the prom upgrade. If successful, leave
* an indication that a page was retained by creating a boolean
* property in the root node.
*
--- 34,43 ----