* [PATCH] - SN support for older versions of PROM
@ 2005-11-18 15:19 Jack Steiner
2005-11-18 15:51 ` Robin Holt
2005-11-18 22:11 ` [PATCH] - SN support for older versions of PROM - second try Jack Steiner
0 siblings, 2 replies; 3+ messages in thread
From: Jack Steiner @ 2005-11-18 15:19 UTC (permalink / raw)
To: linux-ia64
Add support for old versions of SN PROMs. Eventually this
support will be deleted but it is useful right now to continue
supporting older PROMs.
(The support for older PROMs use to be in the tree. It was
deleted by accident).
Signed-off-by: Jack Steiner <steiner@sgi.com>
Index: linux/include/asm/sn/sn_sal.h
=================================--- linux.orig/include/asm/sn/sn_sal.h 2005-11-17 22:38:30.741828181 -0600
+++ linux/include/asm/sn/sn_sal.h 2005-11-18 09:06:12.328192683 -0600
@@ -1018,6 +1018,24 @@ ia64_sn_get_sn_info(int fc, u8 *shubtype
ret_stuff.v2 = 0;
SAL_CALL_NOLOCK(ret_stuff, SN_SAL_GET_SN_INFO, fc, 0, 0, 0, 0, 0, 0);
+/***** BEGIN HACK - temp til old proms no longer supported ********/
+ if (ret_stuff.status = SALRET_NOT_IMPLEMENTED) {
+ int nasid = get_sapicid() & 0xfff;;
+#define SH_SHUB_ID_NODES_PER_BIT_MASK 0x001f000000000000UL
+#define SH_SHUB_ID_NODES_PER_BIT_SHFT 48
+ if (shubtype) *shubtype = 0;
+ if (nasid_bitmask) *nasid_bitmask = 0x7ff;
+ if (nasid_shift) *nasid_shift = 38;
+ if (systemsize) *systemsize = 10;
+ if (sharing_domain_size) *sharing_domain_size = 8;
+ if (partid) *partid = sn_partition_serial_number;
+ if (coher) *coher = nasid >> 9;
+ if (reg) *reg = (HUB_L((u64 *) LOCAL_MMR_ADDR(SH1_SHUB_ID)) &
+ SH_SHUB_ID_NODES_PER_BIT_MASK) >> SH_SHUB_ID_NODES_PER_BIT_SHFT;
+ return 0;
+ }
+/***** END HACK *******/
+
if (ret_stuff.status < 0)
return ret_stuff.status;
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] - SN support for older versions of PROM
2005-11-18 15:19 [PATCH] - SN support for older versions of PROM Jack Steiner
@ 2005-11-18 15:51 ` Robin Holt
2005-11-18 22:11 ` [PATCH] - SN support for older versions of PROM - second try Jack Steiner
1 sibling, 0 replies; 3+ messages in thread
From: Robin Holt @ 2005-11-18 15:51 UTC (permalink / raw)
To: linux-ia64
Jack,
Is that really necessary? The newer PROMs have other important
fixes. They are available from supportfolio for free download
(Given with an annoying registration). Why not just have people
upgrade.
I realize I am being a little unreasonable, but...
On Fri, Nov 18, 2005 at 09:19:11AM -0600, Jack Steiner wrote:
>
> Add support for old versions of SN PROMs. Eventually this
> support will be deleted but it is useful right now to continue
> supporting older PROMs.
>
> (The support for older PROMs use to be in the tree. It was
> deleted by accident).
>
> Signed-off-by: Jack Steiner <steiner@sgi.com>
>
>
> Index: linux/include/asm/sn/sn_sal.h
> =================================> --- linux.orig/include/asm/sn/sn_sal.h 2005-11-17 22:38:30.741828181 -0600
> +++ linux/include/asm/sn/sn_sal.h 2005-11-18 09:06:12.328192683 -0600
> @@ -1018,6 +1018,24 @@ ia64_sn_get_sn_info(int fc, u8 *shubtype
> ret_stuff.v2 = 0;
> SAL_CALL_NOLOCK(ret_stuff, SN_SAL_GET_SN_INFO, fc, 0, 0, 0, 0, 0, 0);
>
> +/***** BEGIN HACK - temp til old proms no longer supported ********/
> + if (ret_stuff.status = SALRET_NOT_IMPLEMENTED) {
> + int nasid = get_sapicid() & 0xfff;;
> +#define SH_SHUB_ID_NODES_PER_BIT_MASK 0x001f000000000000UL
Trailing whitespace!
> +#define SH_SHUB_ID_NODES_PER_BIT_SHFT 48
Trailing whitespace!
> + if (shubtype) *shubtype = 0;
> + if (nasid_bitmask) *nasid_bitmask = 0x7ff;
> + if (nasid_shift) *nasid_shift = 38;
> + if (systemsize) *systemsize = 10;
> + if (sharing_domain_size) *sharing_domain_size = 8;
> + if (partid) *partid = sn_partition_serial_number;
> + if (coher) *coher = nasid >> 9;
> + if (reg) *reg = (HUB_L((u64 *) LOCAL_MMR_ADDR(SH1_SHUB_ID)) &
Trailing whitespace!
> + SH_SHUB_ID_NODES_PER_BIT_MASK) >> SH_SHUB_ID_NODES_PER_BIT_SHFT;
> + return 0;
> + }
> +/***** END HACK *******/
> +
> if (ret_stuff.status < 0)
> return ret_stuff.status;
>
Thanks,
Robin
^ permalink raw reply [flat|nested] 3+ messages in thread* [PATCH] - SN support for older versions of PROM - second try
2005-11-18 15:19 [PATCH] - SN support for older versions of PROM Jack Steiner
2005-11-18 15:51 ` Robin Holt
@ 2005-11-18 22:11 ` Jack Steiner
1 sibling, 0 replies; 3+ messages in thread
From: Jack Steiner @ 2005-11-18 22:11 UTC (permalink / raw)
To: linux-ia64
Second try. I missed some code for supporting partitioned systems
in the first patch.
Add support for old versions of the SN PROMs. Eventually this
support will be deleted but it is useful right now to continue
supporting older PROMs.
Signed-off-by: Jack Steiner <steiner@sgi.com>
Index: linux/include/asm-ia64/sn/sn_sal.h
=================================--- linux.orig/include/asm-ia64/sn/sn_sal.h 2005-11-18 08:21:42.608445510 -0600
+++ linux/include/asm-ia64/sn/sn_sal.h 2005-11-18 10:27:29.460540516 -0600
@@ -56,6 +56,7 @@
#define SN_SAL_BUS_CONFIG 0x02000037
#define SN_SAL_SYS_SERIAL_GET 0x02000038
#define SN_SAL_PARTITION_SERIAL_GET 0x02000039
+#define SN_SAL_SYSCTL_PARTITION_GET 0x0200003a
#define SN_SAL_SYSTEM_POWER_DOWN 0x0200003b
#define SN_SAL_GET_MASTER_BASEIO_NASID 0x0200003c
#define SN_SAL_COHERENCE 0x0200003d
@@ -581,6 +582,21 @@ sn_partition_serial_number_val(void) {
}
/*
+ * Returns the partition id of the nasid passed in as an argument,
+ * or INVALID_PARTID if the partition id cannot be retrieved.
+ */
+static inline partid_t
+ia64_sn_sysctl_partition_get(nasid_t nasid)
+{
+ struct ia64_sal_retval ret_stuff;
+ SAL_CALL(ret_stuff, SN_SAL_SYSCTL_PARTITION_GET, nasid,
+ 0, 0, 0, 0, 0, 0);
+ if (ret_stuff.status != 0)
+ return -1;
+ return ((partid_t)ret_stuff.v0);
+}
+
+/*
* Returns the physical address of the partition's reserved page through
* an iterative number of calls.
*
@@ -1018,6 +1034,24 @@ ia64_sn_get_sn_info(int fc, u8 *shubtype
ret_stuff.v2 = 0;
SAL_CALL_NOLOCK(ret_stuff, SN_SAL_GET_SN_INFO, fc, 0, 0, 0, 0, 0, 0);
+/***** BEGIN HACK - temp til old proms no longer supported ********/
+ if (ret_stuff.status = SALRET_NOT_IMPLEMENTED) {
+ int nasid = get_sapicid() & 0xfff;;
+#define SH_SHUB_ID_NODES_PER_BIT_MASK 0x001f000000000000UL
+#define SH_SHUB_ID_NODES_PER_BIT_SHFT 48
+ if (shubtype) *shubtype = 0;
+ if (nasid_bitmask) *nasid_bitmask = 0x7ff;
+ if (nasid_shift) *nasid_shift = 38;
+ if (systemsize) *systemsize = 10;
+ if (sharing_domain_size) *sharing_domain_size = 8;
+ if (partid) *partid = ia64_sn_sysctl_partition_get(nasid);
+ if (coher) *coher = nasid >> 9;
+ if (reg) *reg = (HUB_L((u64 *) LOCAL_MMR_ADDR(SH1_SHUB_ID)) & SH_SHUB_ID_NODES_PER_BIT_MASK) >>
+ SH_SHUB_ID_NODES_PER_BIT_SHFT;
+ return 0;
+ }
+/***** END HACK *******/
+
if (ret_stuff.status < 0)
return ret_stuff.status;
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2005-11-18 22:11 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-11-18 15:19 [PATCH] - SN support for older versions of PROM Jack Steiner
2005-11-18 15:51 ` Robin Holt
2005-11-18 22:11 ` [PATCH] - SN support for older versions of PROM - second try Jack Steiner
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox