More than 1GB RAM with AlphaLinux (was ... 4-8GB RAM)


Bjorn R. Bjornsson (brb@halo.hi.is)
Tue, 9 Mar 1999 22:05:13 +0000 (GMT)


If I read the code correctly, then few of the Alpha
systems support more than 1GB RAM running Linux with
an unmodified kernel.

However it should be fairly straightforward to support more
than 1GB of physical RAM on most Alpha systems, although
I must admit it took me quite some time to get an
AlphaServer 800 (aka Corelle) to run with more than 1GB.
PCI limitations ought not to show up until you try go past
4GB.

Following is a patch to linux/include/asm-alpha/cia_core.h
to allow the AlphaServer 800 to support 2GB of RAM (I'm
also including a uu-encoded version of the patch below).

--- linux-2.2.3/include/asm-alpha/core_cia.h Wed Jan 13 18:42:49 1999
+++ linux-2.2.3-brbkludge/include/asm-alpha/core_cia.h Tue Mar 9 21:25:01 1999
@@ -77,14 +77,49 @@
 #define CIA_MEM_R2_MASK 0x07ffffff /* SPARSE Mem region 2 mask is 27 bits */
 #define CIA_MEM_R3_MASK 0x03ffffff /* SPARSE Mem region 3 mask is 26 bits */
 
+/*
+ * Kludge to enable 2GB RAM on Alphaserver 800 (Corelle).
+ * The AlphaLinux firmware/chipset/pci code is in need of a
+ * bit of rewrite, but this kludge is quick, dirty and works.
+ *
+ * It is imperative for these changes to work that that
+ * the SRM initialized PCI configuration is not preserved
+ * at boot time, ie. say NO to 'Use SRM PCI setup' during
+ * kernel config (On the AlphaServer 800, SRM always comes
+ * up with a DMA_WIN_BASE at 1GB * and DMA_WIN_SIZE of 1GB,
+ * regardless of the amount of memory).
+ *
+ * Similar KLUDGES should work for other Alpha systems, although
+ * the SX164 should support 2GB without changes.
+ * Also I see no reason why, setting the dma window at 4GB and
+ * size of 4GB, would not enable the Corelle to run with 4GB of
+ * RAM.
+ *
+ * For further info contact: Bjorn R. Bjornsson, brb@halo.hi.is
+ */
+#define BRB_2GB_KLUDGE
+#ifdef BRB_2GB_KLUDGE
+#define CIA_DMA_WIN_BASE_DEFAULT 0x80000000 /* fixed, 2G @ 2G */
+#define CIA_DMA_WIN_SIZE_DEFAULT 0x80000000 /* fixed, 2G @ 2G */
+#else
 #define CIA_DMA_WIN_BASE_DEFAULT (1024*1024*1024)
 #define CIA_DMA_WIN_SIZE_DEFAULT (1024*1024*1024)
+#endif
+
 
 #if defined(CONFIG_ALPHA_GENERIC) || defined(CONFIG_ALPHA_SRM_SETUP)
 #define CIA_DMA_WIN_BASE alpha_mv.dma_win_base
 #define CIA_DMA_WIN_SIZE alpha_mv.dma_win_size
 #else
+/*
+ * The next source line used to read:
+ *
 #define CIA_DMA_WIN_BASE CIA_DMA_WIN_SIZE_DEFAULT
+ *
+ * Which is almost certainly a typo, but is literally a Freudian
+ * slip, in view of the chipset spec.
+ */
+#define CIA_DMA_WIN_BASE CIA_DMA_WIN_BASE_DEFAULT
 #define CIA_DMA_WIN_SIZE CIA_DMA_WIN_SIZE_DEFAULT
 #endif
 
@@ -553,6 +588,12 @@
 #define __outw cia_outw
 #define __outl cia_outl
 
+#ifdef BRB_2GB_KLUDGE
+#define __readb cia_readb
+#define __readw cia_readw
+#define __writeb cia_writeb
+#define __writew cia_writew
+#else
 #ifdef CONFIG_ALPHA_SRM_SETUP
 #define __readb cia_srm_readb
 #define __readw cia_srm_readw
@@ -563,6 +604,7 @@
 #define __readw cia_readw
 #define __writeb cia_writeb
 #define __writew cia_writew
+#endif
 #endif
 
 #define __readl cia_readl

Here is the uuencoded version:

begin 644 AS800-2GB-patch
M+2TM(&QI;G5X+3(N,BXS+VEN8VQU9&4O87-M+6%L<&AA+V-O<F5?8VEA+F@)
M5V5D($IA;B`Q,R`Q.#HT,CHT.2`Q.3DY"BLK*R!L:6YU>"TR+C(N,RUB<F)K
M;'5D9V4O:6YC;'5D92]A<VTM86QP:&$O8V]R95]C:6$N:`E4=M;'5D9V4O:6YC;'5D92]A<VTM86QP:&$O8V]R95]C:6$N:`E4=64@36%R("`Y
M(#(Q.C(U.C`Q(#$Y.3D*0$`@+3<W+#$T("LW-RPT.2!`0`H@(V1E9FEN92!#
M24%?345-7U(R7TU!4TL@,'@P-V9F9F9F9B`@+M24%?345-7U(R7TU!4TL@,'@P-V9F9F9F9B`@+RH@4U!!4E-%($UE;2!R96=I
M;VX@,B!M87-K(&ES(#(W(&)I=',@*B\*("-D969I;M;VX@,B!M87-K(&ES(#(W(&)I=',@*B\*("-D969I;F4@0TE!7TU%35]2,U]-
M05-+(#!X,#-F9F9F9F8@("\J(%-005)312!-96T@<F5G:6]N(#,@;6%S:R!I
M<R`R-B!B:71S("HO"B`**R\J"BL@*B!+;'5D9V4@=&\@96YA8FQE(#)'0B!2
M04T@;M04T@;VX@06QP:&%S97)V97(@.#`P("A#;W)E;&QE*2X**R`J(%1H92!!;'!H
M84QI;G5X(&9I<FUW87)E+V-H:7!S970O<&-I(&-O9&4@:7,@:6X@;F5E9"!O
M9B!A"BL@*B!B:70@;V8@<F5W<M9B!A"BL@*B!B:70@;V8@<F5W<FET92P@8G5T('1H:7,@:VQU9&=E(&ES('%U
M:6-K+"!D:7)T>2!A;F0@=V]R:W,N"BL@*@HK("M:6-K+"!D:7)T>2!A;F0@=V]R:W,N"BL@*@HK("H@270@:7,@:6UP97)A=&EV
M92!F;W(@=&AE<M92!F;W(@=&AE<V4@8VAA;F=E<R!T;R!W;W)K('1H870@=&AA=`HK("H@=&AE
M(%-232!I;FET:6%L:7IE9"!M(%-232!I;FET:6%L:7IE9"!00TD@8V]N9FEG=7)A=&EO;B!I<R!N;W0@<')E
M<V5R=F5D"BL@*B!A="!B;V]T('1I;64L(&EE+B!M<V5R=F5D"BL@*B!A="!B;V]T('1I;64L(&EE+B!S87D@3D\@=&\@)U5S92!3
M4DT@4$-)('-E='5P)R!D=7)I;F<**R`J(&ME<FYE;"!C;VYF:6<@*$]N('1H
M92!!;'!H85-E<G9E<B`X,#`L(%-232!A;'=A>7,@8V]M97,**R`J('5P('=I
M=&@@82!$34%?5TE.7T)!M=&@@82!$34%?5TE.7T)!4T4@870@,4="("M=&@@82!$34%?5TE.7T)!4T4@870@,4="("H@86YD($1-05]724Y?4TE:12!O
M9B`Q1T(L"BL@*B!R96=A<F1L97-S(&]F('1H92!A;6]U;G0@;V8@;65M;W)Y
M*2X**R`J"BL@*B!3:6UI;&%R($M,541'15,@<VAO=6QD('=O<M*2X**R`J"BL@*B!3:6UI;&%R($M,541'15,@<VAO=6QD('=O<FL@9F]R(&]T
M:&5R($%L<&AA('-Y<W1E;7,L(&%L=&AO=6=H"BL@*B!T:&M:&5R($%L<&AA('-Y<W1E;7,L(&%L=&AO=6=H"BL@*B!T:&4@M:&5R($%L<&AA('-Y<W1E;7,L(&%L=&AO=6=H"BL@*B!T:&4@4U@Q-C0@<VAO
M=6QD('-U<'!O<G0@,D="('=I=&AO=M=6QD('-U<'!O<G0@,D="('=I=&AO=70@8VAA;F=E<RX**R`J($%L<V\@22!S
M964@;F\@<F5A<V]N('=H>2P@<V5T=&EN9R!T:&M964@;F\@<F5A<V]N('=H>2P@<V5T=&EN9R!T:&4@9&UA('=I;F1O=R!A="`T
M1T(@86YD"BL@*B!S:7IE(&]F(#1'0BP@=V]U;&0@;F]T(&5N86)L92!T:&4@
M0V]R96QL92!T;R!R=6X@=VET:"`T1T(@;V8**R`J(%)!32X**R`J"BL@*B!&
M;W(@9G5R=&AE<B!I;F9O(&-O;G1A8W0Z($)J;W)N(%(N($)J;W)N<W-O;BP@
M8G)B0&AA;&\N:&DN:7,**R`J+PHK(V1E9FEN92!"4D)?,D="7TM,541'10HK
M(VEF9&5F($)20E\R1T)?2TQ51$=%"BLC9&5F:6YE($-)05]$34%?5TE.7T)!
M4T5?1$5&055,5"`@("`P>#@P,#`P,#`P("`@("`@+M4T5?1$5&055,5"`@("`P>#@P,#`P,#`P("`@("`@+RH@9FEX960L(#)'($`@
M,D<@*B\**R-D969I;M,D<@*B\**R-D969I;F4@0TE!7T1-05]724Y?4TE:15]$149!54Q4("`@(#!X
M.#`P,#`P,#`@("`@("`O*B!F:7AE9"P@,D<@0"`R1R`J+PHK(V5L<V4*("-D
M969I;M969I;F4@0TE!7T1-05]724Y?0D%315]$149!54Q4"M969I;F4@0TE!7T1-05]724Y?0D%315]$149!54Q4"2@Q,#(T*C$P,C0J,3`R
M-"D*("-D969I;M-"D*("-D969I;F4@0TE!7T1-05]724Y?4TE:15]$149!54Q4"M-"D*("-D969I;F4@0TE!7T1-05]724Y?4TE:15]$149!54Q4"2@Q,#(T*C$P
M,C0J,3`R-"D**R-E;M,C0J,3`R-"D**R-E;F1I9@HK"B`*("-I9B!D969I;F5D*$-/3D9)1U]!3%!(
M05]'14Y%4DE#*2!\?"!D969I;F5D*$-/3D9)1U]!3%!(05]34DU?4T5455`I
M"B`C9&5F:6YE($-)05]$34%?5TE.7T)!4T4)"6%L<&AA7VUV+F1M85]W:6Y?
M8F%S90H@(V1E9FEN92!#24%?1$U!7U=)3E]325I%"0EA;'!H85]M=BYD;6%?
M=VEN7W-I>F4*("-E;'-E"BLO*@HK("M=VEN7W-I>F4*("-E;'-E"BLO*@HK("H@5&AE(&YE>'0@<V]U<F-E(&QI;F4@
M=7-E9"!T;R!M=7-E9"!T;R!R96%D.@HK("H*("-D969I;M=7-E9"!T;R!R96%D.@HK("H*("-D969I;F4@0TE!7T1-05]724Y?0D%310D)
M0TE!7T1-05]724Y?4TE:15]$149!54Q4"BL@*@HK("M0TE!7T1-05]724Y?4TE:15]$149!54Q4"BL@*@HK("H@5VAI8V@@:7,@86QM
M;W-T(&-E<G1A:6YL>2!A('1Y<&\L(&)U="!I<R!L:71E<F%L;'M;W-T(&-E<G1A:6YL>2!A('1Y<&\L(&)U="!I<R!L:71E<F%L;'D@82!&<F5U
M9&EA;@HK("H@<VQI<"P@:6X@=FEE=R!O9B!T:&M9&EA;@HK("H@<VQI<"P@:6X@=FEE=R!O9B!T:&4@8VAI<'-E="!S<&5C+@HK
M("HO"BLC9&5F:6YE($-)05]$34%?5TE.7T)!4T4)"4-)05]$34%?5TE.7T)!
M4T5?1$5&055,5`H@(V1E9FEN92!#24%?1$U!7U=)3E]325I%"0E#24%?1$U!
M7U=)3E]325I%7T1%1D%53%0*("-E;M7U=)3E]325I%7T1%1D%53%0*("-E;F1I9@H@"D!`("TU-3,L-B`M7U=)3E]325I%7T1%1D%53%0*("-E;F1I9@H@"D!`("TU-3,L-B`K-3@X+#$R
M($!`"B`C9&5F:6YE(%]?;W5T=PD)8VEA7V]U='<*("-D969I;M($!`"B`C9&5F:6YE(%]?;W5T=PD)8VEA7V]U='<*("-D969I;F4@7U]O=71L
M"0EC:6%?;W5T;`H@"BLC:M"0EC:6%?;W5T;`H@"BLC:69D968@0E)"7S)'0E]+3%5$1T4**R-D969I;F4@
M7U]M7U]R96%D8@D)8VEA7W)E861B"BLC9&5F:6YE(%]?<F5A9'<)"6-I85]R96%D
M=PHK(V1E9FEN92!?7W=R:M=PHK(V1E9FEN92!?7W=R:71E8@EC:6%?=W)I=&5B"BLC9&5F:6YE(%]?=W)I
M=&5W"6-I85]W<FET97<**R-E;'-E"B`C:M=&5W"6-I85]W<FET97<**R-E;'-E"B`C:69D968@0T].1DE'7T%,4$A!7U-2
M35]315154`H@(V1E9FEN92!?7W)E861B"0EC:6%?<W)M7W)E861B"B`C9&5F
M:6YE(%]?<F5A9'<)"6-I85]S<FU?<F5A9'<*0$`@+34V,RPV("LV,#0L-R!`
M0`H@(V1E9FEN92!?7W)E861W"0EC:6%?<F5A9'<*("-D969I;M0`H@(V1E9FEN92!?7W)E861W"0EC:6%?<F5A9'<*("-D969I;F4@7U]W<FET
M96()8VEA7W=R:M96()8VEA7W=R:71E8@H@(V1E9FEN92!?7W=R:71E=PEC:6%?=W)I=&5W"BLC
L96YD:68*("-E;L96YD:68*("-E;F1I9@H@"B`C9&5F:6YE(%]?<F5A9&P)"6-I85]R96%D;`H`
`
end

Bjorn R. Bjornsson
brb@halo.hi.is

-- 
To unsubscribe: send e-mail to axp-list-request@redhat.com with
'unsubscribe' as the subject.  Do not send it to axp-list@redhat.com



This archive was generated by hypermail 2.0b3 on Tue Mar 09 1999 - 15:00:18 PST