Ejemplo n.º 1
0
void setSpeed(unsigned char sp)
{
	ARM_INT_KEY_TYPE int_lock_key;
	ARM_INT_LOCK(int_lock_key);	
	switch(sp)
	{
		case SPEED_60:		// turbo speed (60 mhz)
			BCFG0	= 0x100005EF;
			PLLCFG	= 0x45;		// 0100.0101	= PSEL=10=4	MSEL=00101=6 = 240mhz Fcco
			PLLFEED = 0xAA;
			PLLFEED = 0x55;

			VPBDIV = 0x00;

			BCFG0	= 0x100004A0;
			BCFG2	= 0x100004A0;
			BCFG1	= 0x00000C21; // 2 idle cycles, 5 cycles per read, 8 bit wide = LCD controller
			break;

		case SPEED_30:	// normal speed (30 mhz)
		default:
			BCFG0	= 0x100005EF;
			PLLCFG	= 0x42;		// 0100.0010	= PSEL=10=4	MSEL=00010=3
			PLLFEED = 0xAA;
			PLLFEED = 0x55;

			VPBDIV = 0x02;

			BCFG0	= 0x10000420;
			BCFG2	= 0x10000420;
			BCFG1	= 0x00000400;	// 1 idle cycle, 3 cycles per read, 8 bit wide = LCD controller
			break;
	};
	ARM_INT_UNLOCK(int_lock_key);
}
Ejemplo n.º 2
0
/* We will run the unit test of serial driver in main() */
int main(int argc, char *argv[])
{
	unsigned long tm;
	int i = 0;

	printf("Enter main() ...\n");

    ARM_INT_UNLOCK(0x1F);            /* unlock IRQ/FIQ at the ARM core level */
	goldfish_unmask_irq(IRQ_TIMER);
	goldfish_unmask_irq(IRQ_TTY2);

	EnterUserMode();

	/* We do nothing in main() */
	for(;;) {
		if(ch != 0) {
			printf("1. Command is %c. time=(%lu).\n", ch, tm);

			if(ch == 'd') {
				/* disable timer interrupt. */
				goldfish_mask_irq(IRQ_TIMER);
				printf("  - Disabled timer.\n");
			}

			if(ch == 'e') {
				/* disable timer interrupt. */
				goldfish_unmask_irq(IRQ_TIMER);
				printf("  - Enabled timer.\n");
			}

			if(ch == 's') {
				/* Unit test 2: Fire a system call. */
				SystemCall();
				printf("  - Make system call.\n");
			}

		    ch = 0;
		    tm = goldfish_timer_read();
		    printf("2. ----- End loop (%lu) -----\n", tm);
		}
		else {
			tm = goldfish_timer_read();
		}
	}
	return 1;
}
Ejemplo n.º 3
0
/* Sets a signal while disabling interrupts */
void signal_set(int taskid){
	ARM_INT_KEY_TYPE int_lock_key;
	ARM_INT_LOCK(int_lock_key);
	signals |= (1<<taskid);
	ARM_INT_UNLOCK(int_lock_key);	
};
Ejemplo n.º 4
0
/* Clears a signal while disabling interrupts */
void signal_clr(int taskid){
	ARM_INT_KEY_TYPE int_lock_key;
	ARM_INT_LOCK(int_lock_key);
	signals &= ~(1<<taskid);
	ARM_INT_UNLOCK(int_lock_key);	
};
Ejemplo n.º 5
0
void feed_wdt(){
  	ARM_INT_KEY_TYPE int_lock_key;
	ARM_INT_LOCK(int_lock_key);
	wdt_cnt = 200;
	ARM_INT_UNLOCK(int_lock_key);
};