From: James S. <jsi...@us...> - 2003-02-01 18:57:45
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/alpha/kernel In directory sc8-pr-cvs1:/tmp/cvs-serv15026/linux/arch/alpha/kernel Modified Files: setup.c Log Message: Synced to 2.5.59 Index: setup.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/arch/alpha/kernel/setup.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- setup.c 23 Nov 2002 00:55:44 -0000 1.12 +++ setup.c 1 Feb 2003 18:57:11 -0000 1.13 @@ -155,6 +155,7 @@ WEAK(eiger_mv); WEAK(jensen_mv); WEAK(lx164_mv); +WEAK(marvel_ev7_mv); WEAK(miata_mv); WEAK(mikasa_mv); WEAK(mikasa_primo_mv); @@ -174,6 +175,7 @@ WEAK(shark_mv); WEAK(sx164_mv); WEAK(takara_mv); +WEAK(titan_mv); WEAK(webbrick_mv); WEAK(wildfire_mv); WEAK(xl_mv); @@ -288,7 +290,7 @@ (hwrpb->mddt_offset + (unsigned long) hwrpb); for_each_mem_cluster(memdesc, cluster, i) { - printk("memcluster %d, usage %01lx, start %8lu, end %8lu\n", + printk("memcluster %lu, usage %01lx, start %8lu, end %8lu\n", i, cluster->usage, cluster->start_pfn, cluster->start_pfn + cluster->numpages); @@ -303,6 +305,24 @@ max_low_pfn = end; } + /* + * Except for the NUMA systems (wildfire, marvel) all of the + * Alpha systems we run on support 32GB of memory or less. + * Since the NUMA systems introduce large holes in memory addressing, + * we can get into a situation where there is not enough contiguous + * memory for the memory map. + * + * Limit memory to the first 32GB to limit the NUMA systems to + * memory on their first node (wildfire) or 2 (marvel) to avoid + * not being able to produce the memory map. In order to access + * all of the memory on the NUMA systems, build with discontiguous + * memory support. + * + * If the user specified a memory limit, let that memory limit stand. + */ + if (!mem_size_limit) + mem_size_limit = (32ul * 1024 * 1024 * 1024) >> PAGE_SHIFT; + if (mem_size_limit && max_low_pfn >= mem_size_limit) { printk("setup: forcing memory size to %ldK (from %ldK).\n", @@ -664,7 +684,7 @@ "Mikasa", "EB64", "EB66", "EB64+", "AlphaBook1", "Rawhide", "K2", "Lynx", "XL", "EB164", "Noritake", "Cortex", "29", "Miata", "XXM", "Takara", "Yukon", - "Tsunami", "Wildfire", "CUSCO", "Eiger", "Titan" + "Tsunami", "Wildfire", "CUSCO", "Eiger", "Titan", "Marvel" }; static char unofficial_names[][8] = {"100", "Ruffian"}; @@ -683,15 +703,20 @@ static char eb66_names[][8] = {"EB66", "EB66+"}; static int eb66_indices[] = {0,0,1}; +static char marvel_names[][16] = { + "Marvel/EV7" +}; +static int marvel_indices[] = { 0 }; + static char rawhide_names[][16] = { "Dodge", "Wrangler", "Durango", "Tincup", "DaVinci" }; static int rawhide_indices[] = {0,0,0,1,1,2,2,3,3,4,4}; static char titan_names[][16] = { - "0", "Privateer" + "DEFAULT", "Privateer", "Falcon", "Granite" }; -static int titan_indices[] = {0,1}; +static int titan_indices[] = {0,1,2,2,3}; static char tsunami_names[][16] = { "0", "DP264", "Warhol", "Windjammer", "Monet", "Clipper", @@ -744,6 +769,7 @@ NULL, /* CUSCO */ &eiger_mv, /* Eiger */ NULL, /* Titan */ + NULL, /* Marvel */ }; static struct alpha_machine_vector *unofficial_vecs[] __initdata = @@ -781,10 +807,17 @@ &eb66p_mv }; + static struct alpha_machine_vector *marvel_vecs[] __initdata = + { + &marvel_ev7_mv, + }; + static struct alpha_machine_vector *titan_vecs[] __initdata = { - NULL, + &titan_mv, /* default */ &privateer_mv, /* privateer */ + &titan_mv, /* falcon */ + &privateer_mv, /* granite */ }; static struct alpha_machine_vector *tsunami_vecs[] __initdata = @@ -849,7 +882,12 @@ if (member < N(eb66_indices)) vec = eb66_vecs[eb66_indices[member]]; break; + case ST_DEC_MARVEL: + if (member < N(marvel_indices)) + vec = marvel_vecs[marvel_indices[member]]; + break; case ST_DEC_TITAN: + vec = titan_vecs[0]; /* default */ if (member < N(titan_indices)) vec = titan_vecs[titan_indices[member]]; break; @@ -988,11 +1026,16 @@ if (member < N(eb66_indices)) *variation_name = eb66_names[eb66_indices[member]]; break; + case ST_DEC_MARVEL: + if (member < N(marvel_indices)) + *variation_name = marvel_names[marvel_indices[member]]; + break; case ST_DEC_RAWHIDE: if (member < N(rawhide_indices)) *variation_name = rawhide_names[rawhide_indices[member]]; break; case ST_DEC_TITAN: + *variation_name = titan_names[0]; /* default */ if (member < N(titan_indices)) *variation_name = titan_names[titan_indices[member]]; break; |