[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: > 1GB on alpha. Patch to 1TB?



> It appears that Linux on the alpha is limited to 1GB of physical RAM.  This
> is bad.  It really seems silly to be limited to 1GB of RAM on a 64-bit
> processor.

It is entertaining that you posted this to axp-list -- Bjorn Bjornsson
posted a patch yesterday on axp-list to get 2GB on his AlphaServer
800. A similar patch should suffice on other platforms, and may take
us up to 4GB, where the PCI address limit dictates bounce buffers...

I reproduce his posting and patch below.

I would love to see 264DP systems with 4-8 gigs of ram. They have 16
dimm slots.

-- greg

From: "Bjorn R. Bjornsson" <brb@halo.hi.is>
Subject: More than 1GB RAM with AlphaLinux (was ... 4-8GB RAM)
To: axp-list@redhat.com
Date: 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=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`@+RH@4U!!4E-%($UE;2!R96=I
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@;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<FET92P@8G5T('1H:7,@:VQU9&=E(&ES('%U
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<V4@8VAA;F=E<R!T;R!W;W)K('1H870@=&AA=`HK("H@=&AE
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!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)!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<FL@9F]R(&]T
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=70@8VAA;F=E<RX**R`J($%L<V\@22!S
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("`@("`@+RH@9FEX960L(#)'($`@
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;F4@0TE!7T1-05]724Y?0D%315]$149!54Q4"2@Q,#(T*C$P,C0J,3`R
M-"D*("-D969I;F4@0TE!7T1-05]724Y?4TE:15]$149!54Q4"2@Q,#(T*C$P
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("H@5&AE(&YE>'0@<V]U<F-E(&QI;F4@
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("H@5VAI8V@@:7,@86QM
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:&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;F1I9@H@"D!`("TU-3,L-B`K-3@X+#$R
M($!`"B`C9&5F:6YE(%]?;W5T=PD)8VEA7V]U='<*("-D969I;F4@7U]O=71L
M"0EC:6%?;W5T;`H@"BLC:69D968@0E)"7S)'0E]+3%5$1T4**R-D969I;F4@
M7U]R96%D8@D)8VEA7W)E861B"BLC9&5F:6YE(%]?<F5A9'<)"6-I85]R96%D
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: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;F4@7U]W<FET
M96()8VEA7W=R:71E8@H@(V1E9FEN92!?7W=R:71E=PEC:6%?=W)I=&5W"BLC
L96YD:68*("-E;F1I9@H@"B`C9&5F:6YE(%]?<F5A9&P)"6-I85]R96%D;`H`
`
end

Bjorn R. Bjornsson
brb@halo.hi.is


Reply to: