view target-utils/pirexplore/main.c @ 416:30f6d1c32c6f

doc/Flash-boot-defect article removed (no longer relevant) This article is no longer relevant because the issue in question only affected one (1) defective FCDEV3B board which was not and never will be sold.
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 26 Oct 2018 07:11:08 +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();
	}
}