view target-utils/pirexplore/main.c @ 89:f4619719834f

target-utils/libc: our own memcpy assembly implementation
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 28 Oct 2016 22:55:51 +0000
parents c90b1fff224a
children
line wrap: on
line source

#include "types.h"

main()
{
	uart_select_init();
	printf("Pirelli hardware exploration utility running\n");
	print_boot_rom_info();
	/*
	 * Make the same register settings as in the init script used by
	 * fc-loadtool and fc-xram: ../../loadtools/scripts/pirelli.init
	 */
	*(volatile u16 *)0xfffffb00 = 0x00A4;
	*(volatile u16 *)0xfffffb02 = 0x00A4;
	*(volatile u16 *)0xfffffb06 = 0x00A4;
	*(volatile u16 *)0xfffef006 = 0x0008;
	/* setup matching what the official firmware does */
	*(volatile u16 *)0xfffef008 = 0x6050;
	*(volatile u16 *)0xfffef00a = 0x021F;
	/*
	 * Other register settings replicating what OsmocomBB does
	 * in board/pirelli_dpl10/init.c
	 */
	*(volatile u16 *)0xfffe4804 = 0xFF6D;
	*(volatile u16 *)0xfffe4802 = 0x0000;
	/* enable ARMIO clock in order to exercise buzzer/vibrator */
	*(volatile u16 *)0xfffe4806 = 0xFFF3;
	/* nCS4 setup for SPCA552E */
	*(volatile u16 *)0xfffffb0a = 0x00A7;
	/* initialize PWL registers like OsmocomBB does */
	*(volatile u8 *)0xfffe8000 = 0x32;
	*(volatile u8 *)0xfffe8001 = 0x01;
	for (;;) {
		putchar('=');
		if (command_entry())
			command_dispatch();
	}
}