From: Tim R. <tim...@us...> - 2001-07-07 19:24:44
|
Update of /cvsroot/blob/blob/src In directory usw-pr-cvs1:/tmp/cvs-serv29015/src Modified Files: Tag: blob_1_0_9_hack main.c start.S Log Message: initial SHANNON patches Index: main.c =================================================================== RCS file: /cvsroot/blob/blob/src/main.c,v retrieving revision 1.1.1.1.2.2 retrieving revision 1.1.1.1.2.3 diff -u -r1.1.1.1.2.2 -r1.1.1.1.2.3 --- main.c 2001/07/03 20:44:34 1.1.1.1.2.2 +++ main.c 2001/07/07 19:24:40 1.1.1.1.2.3 @@ -230,6 +230,9 @@ #elif defined PLEB #warning "This is NOT the correct PLEB architecture number!" theKernel(0, 18); +#elif defined SHANNON +#warning "This is NOT the correct SHANNON architecture number!" + theKernel(0, 18); #else /* Be generic and just tell the kernel that we are an SA1100 architecture */ Index: start.S =================================================================== RCS file: /cvsroot/blob/blob/src/start.S,v retrieving revision 1.1.1.1.2.2 retrieving revision 1.1.1.1.2.3 diff -u -r1.1.1.1.2.2 -r1.1.1.1.2.3 --- start.S 2001/07/03 20:44:34 1.1.1.1.2.2 +++ start.S 2001/07/07 19:24:40 1.1.1.1.2.3 @@ -78,13 +78,21 @@ mov r2, #0x00 str r2, [r1, #0x4] - +#if defined SHANNON + /* Switch the CPU to 206.4 MHz by writing the PPCR. */ + /* Don't worry, 206.4 MHz is also safe for 133 MHz CPUs. */ + mov r1, #0x90000000 + add r1, r1, #0x20000 + mov r2, #0x0a + str r2, [r1, #0x14] +#else /* Switch the CPU to 221 MHz by writing the PPCR. */ /* Don't worry, 221 MHz is also safe for 190 MHz CPUs. */ mov r1, #0x90000000 add r1, r1, #0x20000 mov r2, #0x0b str r2, [r1, #0x14] +#endif /* Enable I-cache */ mrc p15, 0, r1, c1, c0, 0 @ read control reg @@ -126,10 +134,23 @@ mov r2, #0x03000000 add r2, r2, #0x00340000 add r2, r2, #0x0000B200 +#ifdef SHANNON + add r2, r2, #0x0000001f +#else add r2, r2, #0x0000002f +#endif str r2, [r1, #0x00] +#ifdef SHANNON + /* Issue read requests to disabled bank to start refresh */ + ldr r1, =0xC0000000 + /* this is required by the Micron memory on a TuxScreen */ +.rept 8 + ldr r0, [r1] +.endr +#endif + #elif defined USE_SA1110 /* This part is actually for the Assabet only. If your board @@ -236,19 +257,26 @@ mov r2, #0x08 str r2, [r1, #0x00] + /* Set BRD to 1, for a baudrate of 115k2 ([1] 11.11.4.1) */ /* Set BRD to 5, for a baudrate of 38k4 ([1] 11.11.4.1) */ /* Set BRD to 23, for a baudrate of 9k6 ([1] 11.11.4.1) */ mov r2, #0x00 str r2, [r1, #0x04] +#ifdef SHANNON + mov r2, #1 +#else mov r2, #23 +#endif str r2, [r1, #0x08] /* Initialize the GPDR (GPIO Pin Direction Register) in such a way that the LED is on an output port */ +#ifndef SHANNON /* load the GPIO base in r2 */ mov r2, #0x90000000 add r2, r2, #0x40000 +#endif #if defined ASSABET /* Bit 17 is the LED on Zilker */ @@ -277,6 +305,8 @@ #elif defined PLEB #warning "FIXME: Include code to turn on one of the PLEB LEDs over here" +#elif defined SHANNON +#warning "FIXME: Include code to turn on one of the SHANNON LEDs over here" #else #warning "FIXME: Include code to turn on one of the LEDs on your board" #endif @@ -316,6 +346,17 @@ adr r0, int_flash_str bl print_str +#elif defined SHANNON + mov r1, #0xA0000000 + /* Put the main flash to the correct speed */ + mov r2, #0xAD000000 + add r2, r2, #0x008C0000 + add r2, r2, #0x00004800 + add r2, r2, #0x00000088 + str r2, [r1, #0x10] + + adr r0, int_flash_str + bl print_str #endif #if defined NESA @@ -330,6 +371,10 @@ bl print_str #endif +#ifdef SHANNON + /* Skip the memory zeroing for speed */ + b zero_done +#endif test_mem: /* Start the memory tester, hardcoded bank 0 & 1 for now */ adr r0, start_test @@ -373,6 +418,7 @@ adr r0, zeroing_done bl print_str +zero_done: mov r4, #0xC0000000 mov r5, #0xD0000000 mov r6, r4 /* Base for current block */ |