mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-24 17:48:14 +01:00 
			
		
		
		
	This commit gets rid of a huge amount of silly white-space issues. Especially, all sequences of SPACEs followed by TAB characters get removed (unless they appear in print statements). Also remove all embedded "vim:" and "vi:" statements which hide indentation problems. Signed-off-by: Wolfgang Denk <wd@denx.de>
		
			
				
	
	
		
			878 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			878 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # Porting U-Boot onto RPXlite board
 | |
| # Written by Yoo. Jonghoon
 | |
| # E-Mail : yooth@ipone.co.kr
 | |
| # IP ONE Inc.
 | |
| 
 | |
| # Since 2001. 1. 29
 | |
| 
 | |
| # Shell : bash
 | |
| # Cross-compile tools : Montavista Hardhat
 | |
| # Debugging tools : Windriver VisionProbe (PowerPC BDM)
 | |
| # ppcboot ver. : ppcboot-0.8.1
 | |
| 
 | |
| ###############################################################
 | |
| #	1. Hardware setting
 | |
| ###############################################################
 | |
| 
 | |
| 1.1. Board, BDM settings
 | |
| 	Install board, BDM, connect each other
 | |
| 
 | |
| 1.2. Save Register value
 | |
| 	Boot with board-on monitor program and save the
 | |
| 	register values with BDM.
 | |
| 
 | |
| 1.3. Configure flash programmer
 | |
| 	Check flash memory area in the memory map.
 | |
| 	0xFFC00000 - 0xFFFFFFFF
 | |
| 
 | |
| 	Boot monitor program is at
 | |
| 	0xFFF00000
 | |
| 
 | |
| 	You can program on-board flash memory with VisionClick
 | |
| 	flash programmer. Set the target flash device as:
 | |
| 
 | |
| 	29DL800B
 | |
| 
 | |
| 	(?) The flash memory device in the board *is* 29LV800B,
 | |
| 		but I cannot program it with '29LV800B' option.
 | |
| 		(in VisionClick flash programming tools)
 | |
| 		I don't know why...
 | |
| 
 | |
| 1.4. Save boot monitor program *IMPORTANT*
 | |
| 	Upload boot monitor program from board to file.
 | |
| 	boot monitor program starts at 0xFFF00000
 | |
| 
 | |
| 1.5. Test flash memory programming
 | |
| 	Try to erase boot program in the flash memory,
 | |
| 	and re-write them.
 | |
| 	*WARNING* YOU MUST SAVE BOOT PROGRAM TO FILE
 | |
| 		BEFORE ERASING FLASH
 | |
| 
 | |
| ###############################################################
 | |
| #	2. U-Boot setting
 | |
| ###############################################################
 | |
| 
 | |
| 2.1. Download U-Boot tarball at
 | |
| 	ftp://ftp.denx.de
 | |
| 	(The latest version is ppcboot-0.8.1.tar.bz2)
 | |
| 
 | |
| 	To extract the archive use the following syntax :
 | |
| 	> bzip2 -cd ppcboot-0.8.1.tar.bz2 | tar xf -
 | |
| 
 | |
| 2.2. Add the following lines in '.profile'
 | |
| 	export PATH=$PATH:/opt/hardhat/devkit/ppc/8xx/bin
 | |
| 
 | |
| 2.3. Make board specific config, for example:
 | |
| 	> cd ppcboot-0.8.1
 | |
| 	> make TQM860L_config
 | |
| 
 | |
| 	Now we can build ppcboot bin files.
 | |
| 	After make all, you must see these files in your
 | |
| 	ppcboot root directory.
 | |
| 
 | |
| 	ppcboot
 | |
| 	ppcboot.bin
 | |
| 	ppcboot.srec
 | |
| 	ppcboot.map
 | |
| 
 | |
| 2.4. Make your own board directory into the
 | |
| 	ppcboot-0.8.1/board
 | |
| 	and make your board-specific files here.
 | |
| 
 | |
| 	For exmanple, tqm8xx files are composed of
 | |
| 	.depend : Nothing
 | |
| 	Makefile : To make config file
 | |
| 	config.mk : Sets base address
 | |
| 	flash.c : Flash memory control files
 | |
| 	ppcboot.lds : linker(ld) script? (I don't know this yet)
 | |
| 	tqm8xx.c : DRAM control and board check routines
 | |
| 
 | |
| 	And, add your board config lines in the
 | |
| 	ppcboot-0.8.1/Makefile
 | |
| 
 | |
| 	Finally, add config_(your board).h file in the
 | |
| 	ppcboot-0.8.1/include/
 | |
| 
 | |
| 	I've made board/rpxlite directory, and just copied
 | |
| 	tqm8xx settings for now.
 | |
| 
 | |
| 	Rebuild ppcboot for rpxlite board:
 | |
| 	> make rpxlite_config
 | |
| 	> make
 | |
| 
 | |
| ###############################################################
 | |
| #	3. U-Boot porting
 | |
| ###############################################################
 | |
| 
 | |
| 3.1. My RPXlite files are based on tqm8xx board files.
 | |
| 	> cd board
 | |
| 	> cp -r tqm8xx RPXLITE
 | |
| 	> cd RPXLITE
 | |
| 	> mv tqm8xx.c RPXLITE.c
 | |
| 	> cd ../../include
 | |
| 	> cp config_tqm8xx.h config_RPXLITE.h
 | |
| 
 | |
| 3.2. Modified files are:
 | |
| 	board/RPXLITE/RPXLITE.c		/* DRAM-related routines */
 | |
| 	board/RPXLITE/flash.c		/* flash-related routines */
 | |
| 	board/RPXLITE/config.mk		/* set text base address */
 | |
| 	cpu/mpc8xx/serial.c			/* board specific register setting */
 | |
| 	include/config_RPXLITE.h	/* board specific registers */
 | |
| 
 | |
| 	See 'reg_config.txt' for register values in detail.
 | |
| 
 | |
| ###############################################################
 | |
| #	4. Running Linux
 | |
| ###############################################################
 | |
| 
 | |
| 
 | |
| ###############################################################
 | |
| #	Misc Information
 | |
| ###############################################################
 | |
| 
 | |
| mem_config.txt:
 | |
| ===============
 | |
| 
 | |
| Flash memory device : AM29LV800BB (1Mx8Bit) x 4 device
 | |
| manufacturer id : 01     (AMD)
 | |
| device id       : 5B     (AM29LV800B)
 | |
| size            : 4Mbyte
 | |
| sector #        : 19
 | |
| 
 | |
| Sector information :
 | |
| 
 | |
| number   start addr.     size
 | |
| 00       FFC0_0000       64
 | |
| 01       FFC1_0000       32
 | |
| 02       FFC1_8000       32
 | |
| 03       FFC2_0000       128
 | |
| 04       FFC4_0000       256
 | |
| 05       FFC8_0000       256
 | |
| 06       FFCC_0000       256
 | |
| 07       FFD0_0000       256
 | |
| 08       FFD4_0000       256
 | |
| 09       FFD8_0000       256
 | |
| 10       FFDC_0000       256
 | |
| 11       FFE0_0000       256
 | |
| 12       FFE4_0000       256
 | |
| 13       FFE8_0000       256
 | |
| 14       FFEC_0000       256
 | |
| 15       FFF0_0000       256
 | |
| 16       FFF4_0000       256
 | |
| 17       FFF8_0000       256
 | |
| 18       FFFC_0000       256
 | |
| 
 | |
| 
 | |
| reg_config.txt:
 | |
| ===============
 | |
| 
 | |
| 
 | |
| /*------------------------------------------------------------------- */
 | |
| /*------------------------------------------------------------------- */
 | |
| /*	SIU (System Interface Unit) */
 | |
| /* */
 | |
| /*------------------------------------------------------------------- */
 | |
| /*------------------------------------------------------------------- */
 | |
| 
 | |
| 
 | |
| /*### IMMR */
 | |
| /*### Internal Memory Map Register */
 | |
| /*### Chap. 11.4.1 */
 | |
| 
 | |
| 	ISB		= 0xFA20		/* Set the Immap base = 0xFA20 0000 */
 | |
| 	PARTNUM = 0x21
 | |
| 	MASKNUM = 0x00
 | |
| 
 | |
| 	=> 0xFA20 2100
 | |
| 
 | |
| ---------------------------------------------------------------------
 | |
| 
 | |
| /*### SIUMCR */
 | |
| /*### SIU Module Configuration Register */
 | |
| /*### Chap. 11.4.2 */
 | |
| /*### Offset : 0x0000 0000 */
 | |
| 
 | |
| 	EARB	= 0
 | |
| 	EARP	= 0
 | |
| 	DSHW	= 0
 | |
| 	DBGC	= 0
 | |
| 	DBPC	= 0
 | |
| 	FRC		= 0
 | |
| 	DLK		= 0
 | |
| 	OPAR	= 0
 | |
| 	PNCS	= 0
 | |
| 	DPC		= 0
 | |
| 	MPRE	= 0
 | |
| 	MLRC	= 10		/* ~KR/~RETRY/~IRQ4/SPKROUT functions as ~KR/~TRTRY */
 | |
| 	AEME	= 0
 | |
| 	SEME	= 0
 | |
| 	BSC		= 0
 | |
| 	GB5E	= 0
 | |
| 	B2DD	= 0
 | |
| 	B3DD	= 0
 | |
| 
 | |
| 	=> 0x0000 0800
 | |
| 
 | |
| ---------------------------------------------------------------------
 | |
| 
 | |
| /*### SYPCR */
 | |
| /*### System Protection Control Register */
 | |
| /*### Chap. 11.4.3 */
 | |
| /*### Offset : 0x0000 0004 */
 | |
| 
 | |
| 	SWTC	= 0xFFFF	/* SW watchdog timer count = 0xFFFF */
 | |
| 	BMT		= 0x06		/* BUS monitoring timing */
 | |
| 	BME		= 1			/* BUS monitor enable */
 | |
| 	SWF		= 1
 | |
| 	SWE		= 0			/* SW watchdog disable */
 | |
| 	SWRI	= 0
 | |
| 	SWP		= 1
 | |
| 
 | |
| 	=> 0xFFFF 0689
 | |
| 
 | |
| ---------------------------------------------------------------------
 | |
| 
 | |
| /*### TESR */
 | |
| /*### Transfer Error Status Register */
 | |
| /*### Chap. 11.4.4 */
 | |
| /*### Offset : 0x0000 0020 */
 | |
| 
 | |
| 	IEXT	= 0
 | |
| 	ITMT	= 0
 | |
| 	IPB		= 0000
 | |
| 	DEXT	= 0
 | |
| 	DTMT	= 0
 | |
| 	DPB		= 0000
 | |
| 
 | |
| 	=> 0x0000 0000
 | |
| 
 | |
| ---------------------------------------------------------------------
 | |
| 
 | |
| /*### SIPEND */
 | |
| /*### SIU Interrupt Pending Register */
 | |
| /*### Chap. 11.5.4.1 */
 | |
| /*### Offset : 0x0000 0010 */
 | |
| 
 | |
| 	IRQ0~IRQ7 = 0
 | |
| 	LVL0~LVL7 = 0
 | |
| 
 | |
| 	=> 0x0000 0000
 | |
| 
 | |
| ---------------------------------------------------------------------
 | |
| 
 | |
| /*### SIMASK */
 | |
| /*### SIU Interrupt Mask Register */
 | |
| /*### Chap. 11.5.4.2 */
 | |
| /*### Offset : 0x0000 0014 */
 | |
| 
 | |
| 	IRM0~IRM7 = 0		/* Mask all interrupts */
 | |
| 	LVL0~LVL7 = 0
 | |
| 
 | |
| 	=> 0x0000 0000
 | |
| 
 | |
| ---------------------------------------------------------------------
 | |
| 
 | |
| /*### SIEL */
 | |
| /*### SIU Interrupt Edge/Level Register */
 | |
| /*### Chap. 11.5.4.3 */
 | |
| /*### Offset : 0x0000 0018 */
 | |
| 
 | |
| 	ED0~ED7 = 0			/* Low level triggered */
 | |
| 	WMn0~WMn7 = 0		/* Not allowed to exit from low-power mode */
 | |
| 
 | |
| 	=> 0x0000 0000
 | |
| 
 | |
| ---------------------------------------------------------------------
 | |
| 
 | |
| /*### SIVEC */
 | |
| /*### SIU Interrupt Vector Register */
 | |
| /*### Chap. 11.5.4.4 */
 | |
| /*### Offset : 0x0000 001C */
 | |
| 
 | |
| 	INTC = 3C		/* The lowest interrupt is pending..(?) */
 | |
| 
 | |
| 	=> 0x3C00 0000
 | |
| 
 | |
| ---------------------------------------------------------------------
 | |
| 
 | |
| /*### SWSR */
 | |
| /*### Software Service Register */
 | |
| /*### Chap. 11.7.1 */
 | |
| /*### Offset : 0x0000 001E */
 | |
| 
 | |
| 	SEQ = 0
 | |
| 
 | |
| 	=> 0x0000
 | |
| 
 | |
| ---------------------------------------------------------------------
 | |
| 
 | |
| /*### SDCR */
 | |
| /*### SDMA Configuration Register */
 | |
| /*### Chap. 20.2.1 */
 | |
| /*### Offset : 0x0000 0032 */
 | |
| 
 | |
| 	FRZ = 0
 | |
| 	RAID = 01	/* Priority level 5 (BR5) (normal operation) */
 | |
| 
 | |
| 	=> 0x0000 0001
 | |
| 
 | |
| 
 | |
| /*------------------------------------------------------------------- */
 | |
| /*------------------------------------------------------------------- */
 | |
| /*	UPMA (User Programmable Machine A) */
 | |
| /* */
 | |
| /*------------------------------------------------------------------- */
 | |
| /*------------------------------------------------------------------- */
 | |
| 
 | |
| /*### Chap. 16.6.4.1 */
 | |
| /*### Offset = 0x0000 017c */
 | |
| 
 | |
| 	T0  = CFFF CC24		/* Single Read */
 | |
| 	T1  = 0FFF CC04
 | |
| 	T2  = 0CAF CC04
 | |
| 	T3  = 03AF CC08
 | |
| 	T4  = 3FBF CC27		/* last */
 | |
| 	T5  = FFFF CC25
 | |
| 	T6  = FFFF CC25
 | |
| 	T7  = FFFF CC25
 | |
| 	T8  = CFFF CC24		/* Burst Read */
 | |
| 	T9  = 0FFF CC04
 | |
| 	T10 = 0CAF CC84
 | |
| 	T11 = 03AF CC88
 | |
| 	T12 = 3FBF CC27		/* last */
 | |
| 	T13 = FFFF CC25
 | |
| 	T14 = FFFF CC25
 | |
| 	T15 = FFFF CC25
 | |
| 	T16 = FFFF CC25
 | |
| 	T17 = FFFF CC25
 | |
| 	T18 = FFFF CC25
 | |
| 	T19 = FFFF CC25
 | |
| 	T20 = FFFF CC25
 | |
| 	T21 = FFFF CC25
 | |
| 	T22 = FFFF CC25
 | |
| 	T23 = FFFF CC25
 | |
| 	T24 = CFFF CC24		/* Single Write */
 | |
| 	T25 = 0FFF CC04
 | |
| 	T26 = 0CFF CC04
 | |
| 	T27 = 03FF CC00
 | |
| 	T28 = 3FFF CC27		/* last */
 | |
| 	T29 = FFFF CC25
 | |
| 	T30 = FFFF CC25
 | |
| 	T31 = FFFF CC25
 | |
| 	T32 = CFFF CC24		/* Burst Write */
 | |
| 	T33 = 0FFF CC04
 | |
| 	T34 = 0CFF CC80
 | |
| 	T35 = 03FF CC8C
 | |
| 	T36 = 0CFF CC00
 | |
| 	T37 = 33FF CC27		/* last */
 | |
| 	T38 = FFFF CC25
 | |
| 	T39 = FFFF CC25
 | |
| 	T40 = FFFF CC25
 | |
| 	T41 = FFFF CC25
 | |
| 	T42 = FFFF CC25
 | |
| 	T43 = FFFF CC25
 | |
| 	T44 = FFFF CC25
 | |
| 	T45 = FFFF CC25
 | |
| 	T46 = FFFF CC25
 | |
| 	T47 = FFFF CC25
 | |
| 	T48 = C0FF CC24		/* Refresh */
 | |
| 	T49 = 03FF CC24
 | |
| 	T50 = 0FFF CC24
 | |
| 	T51 = 0FFF CC24
 | |
| 	T52 = 3FFF CC27		/* last */
 | |
| 	T53 = FFFF CC25
 | |
| 	T54 = FFFF CC25
 | |
| 	T55 = FFFF CC25
 | |
| 	T56 = FFFF CC25
 | |
| 	T57 = FFFF CC25
 | |
| 	T58 = FFFF CC25
 | |
| 	T59 = FFFF CC25
 | |
| 	T60 = FFFF CC25		/* Exception */
 | |
| 	T61 = FFFF CC25
 | |
| 	T62 = FFFF CC25
 | |
| 	T63 = FFFF CC25
 | |
| 
 | |
| 
 | |
| /*------------------------------------------------------------------- */
 | |
| /*------------------------------------------------------------------- */
 | |
| /*	UPMB */
 | |
| /* */
 | |
| /*------------------------------------------------------------------- */
 | |
| /*------------------------------------------------------------------- */
 | |
| ---------------------------------------------------------------------
 | |
| 
 | |
| /*### Chap. 16.6.4.1 */
 | |
| 
 | |
| 
 | |
| /*------------------------------------------------------------------- */
 | |
| /*------------------------------------------------------------------- */
 | |
| /*	MEMC */
 | |
| /* */
 | |
| /*------------------------------------------------------------------- */
 | |
| /*------------------------------------------------------------------- */
 | |
| ---------------------------------------------------------------------
 | |
| 
 | |
| /*### BR0 & OR0 */
 | |
| /*### Base Registers & Option Registers */
 | |
| /*### Chap. 16.4.1 & 16.4.2 */
 | |
| /*### Offset : BR0(0x0000 0100) & OR0(0x0000 0104) */
 | |
| /*### Flash memory */
 | |
| 
 | |
| 	BA   = 1111 1110 0000 0000 0	/* Base addr = 0xFE00 0000 */
 | |
| 	AT   = 000
 | |
| 	PS   = 00
 | |
| 	PARE = 0
 | |
| 	WP   = 0
 | |
| 	MS   = 0				/* GPCM */
 | |
| 	V    = 1				/* Valid */
 | |
| 
 | |
| 	=> 0xFE00 0001
 | |
| 
 | |
| 	AM            = 1111 1110 0000 0000 0	/* 32MBytes */
 | |
| 	ATM           = 000
 | |
| 	CSNT/SAM      = 0
 | |
| 	ACS/G5LA,G5LS = 00
 | |
| 	BIH           = 1			/* Burst inhibited */
 | |
| 	SCY           = 0100		/* cycle length = 4 */
 | |
| 	SETA          = 0
 | |
| 	TRLX          = 0
 | |
| 	EHTR          = 0
 | |
| 
 | |
| 	=> 0xFE00 0140
 | |
| 
 | |
| /*### BR1 & OR1 */
 | |
| /*### Base Registers & Option Registers */
 | |
| /*### Chap. 16.4.1 & 16.4.2 */
 | |
| /*### Offset : BR1(0x0000 0108) & OR1(0x0000 010C) */
 | |
| /*### SDRAM */
 | |
| 
 | |
| 	BA   = 0000 0000 0000 0000 0	/* Base addr = 0x0000 0000 */
 | |
| 	AT   = 000
 | |
| 	PS   = 00
 | |
| 	PARE = 0
 | |
| 	WP   = 0
 | |
| 	MS   = 1				/* UPMA */
 | |
| 	V    = 1				/* Valid */
 | |
| 
 | |
| 	=> 0x0000 0081
 | |
| 
 | |
| 	AM            = 1111 1110 0000 0000	/* 32MBytes */
 | |
| 	ATM           = 000
 | |
| 	CSNT/SAM      = 1
 | |
| 	ACS/G5LA,G5LS = 11
 | |
| 	BIH           = 0
 | |
| 	SCY           = 0000		/* cycle length = 0 */
 | |
| 	SETA          = 0
 | |
| 	TRLX          = 0
 | |
| 	EHTR          = 0
 | |
| 
 | |
| 	=> 0xFE00 0E00
 | |
| 
 | |
| /*### BR2 & OR2 */
 | |
| /*### Base Registers & Option Registers */
 | |
| /*### Chap. 16.4.1 & 16.4.2 */
 | |
| /*### Offset : BR2(0x0000 0110) & OR2(0x0000 0114) */
 | |
| 
 | |
| 	BR2 & OR2 = 0x0000 0000		/* Not used */
 | |
| 
 | |
| /*### BR3 & OR3 */
 | |
| /*### Base Registers & Option Registers */
 | |
| /*### Chap. 16.4.1 & 16.4.2 */
 | |
| /*### Offset : BR3(0x0000 0118) & OR3(0x0000 011C) */
 | |
| /*### BCSR */
 | |
| 
 | |
| 	BA   = 1111 1010 0100 0000 0	/* Base addr = 0xFA40 0000 */
 | |
| 	AT   = 000
 | |
| 	PS   = 00
 | |
| 	PARE = 0
 | |
| 	WP   = 0
 | |
| 	MS   = 0				/* GPCM */
 | |
| 	V    = 1				/* Valid */
 | |
| 
 | |
| 	=> 0xFA40 0001
 | |
| 
 | |
| 	AM            = 1111 1111 0111 1111 1	/* (?) */
 | |
| 	ATM           = 000
 | |
| 	CSNT/SAM      = 1
 | |
| 	ACS/G5LA,G5LS = 00
 | |
| 	BIH           = 1			/* Burst inhibited */
 | |
| 	SCY           = 0001		/* cycle length = 1 */
 | |
| 	SETA          = 0
 | |
| 	TRLX          = 0
 | |
| 
 | |
| 	=> 0xFF7F 8910
 | |
| 
 | |
| /*### BR4 & OR4 */
 | |
| /*### Base Registers & Option Registers */
 | |
| /*### Chap. 16.4.1 & 16.4.2 */
 | |
| /*### Offset : BR4(0x0000 0120) & OR4(0x0000 0124) */
 | |
| /*### NVRAM & SRAM */
 | |
| 
 | |
| 	BA   = 1111 1010 0000 0000 0	/* Base addr = 0xFA00 0000 */
 | |
| 	AT   = 000
 | |
| 	PS   = 01
 | |
| 	PARE = 0
 | |
| 	WP   = 0
 | |
| 	MS   = 0				/* GPCM */
 | |
| 	V    = 1				/* Valid */
 | |
| 
 | |
| 	=> 0xFA00 0401
 | |
| 
 | |
| 	AM            = 1111 1111 1111 1000 0	/* 8MByte */
 | |
| 	ATM           = 000
 | |
| 	CSNT/SAM      = 1
 | |
| 	ACS/G5LA,G5LS = 00
 | |
| 	BIH           = 1			/* Burst inhibited */
 | |
| 	SCY           = 0111		/* cycle length = 7 */
 | |
| 	SETA          = 0
 | |
| 	TRLX          = 0
 | |
| 
 | |
| 	=> 0xFFF8 0970
 | |
| 
 | |
| /*### BR5 & OR5 */
 | |
| /*### Base Registers & Option Registers */
 | |
| /*### Chap. 16.4.1 & 16.4.2 */
 | |
| /*### Offset : BR2(0x0000 0128) & OR2(0x0000 012C) */
 | |
| 
 | |
| 	BR5 & OR5 = 0x0000 0000		/* Not used */
 | |
| 
 | |
| /*### BR6 & OR6 */
 | |
| /*### Base Registers & Option Registers */
 | |
| /*### Chap. 16.4.1 & 16.4.2 */
 | |
| /*### Offset : BR2(0x0000 0130) & OR2(0x0000 0134) */
 | |
| 
 | |
| 	BR6 & OR6 = 0x0000 0000		/* Not used */
 | |
| 
 | |
| /*### BR7 & OR7 */
 | |
| /*### Base Registers & Option Registers */
 | |
| /*### Chap. 16.4.1 & 16.4.2 */
 | |
| /*### Offset : BR7(0x0000 0138) & OR7(0x0000 013C) */
 | |
| 
 | |
| 	BR7 & OR7 = 0x0000 0000		/* Not used */
 | |
| 
 | |
| /*### MAR */
 | |
| /*### Memory Address Register */
 | |
| /*### Chap. 16.4.7 */
 | |
| /*### Offset : 0x0000 0164 */
 | |
| 
 | |
| 	MA = External memory address
 | |
| 
 | |
| /*### MCR */
 | |
| /*### Memory Command Register */
 | |
| /*### Chap. 16.4.5 */
 | |
| /*### Offset : 0x0000 0168 */
 | |
| 
 | |
| 	OP   = xx			/* Command op code */
 | |
| 	UM   = 1			/* Select UPMA */
 | |
| 	MB   = 001			/* Select CS1 */
 | |
| 	MCLF = xxxx			/* Loop times */
 | |
| 	MAD  = xx xxxx		/* Memory array index */
 | |
| 
 | |
| /*### MAMR */
 | |
| /*### Machine A Mode Register */
 | |
| /*### Chap. 16.4.4 */
 | |
| /*### Offset : 0x0000 0170 */
 | |
| 
 | |
| 	PTA = 0101 1000
 | |
| 	PTAE = 1			/* Periodic timer A enabled */
 | |
| 	AMA = 010
 | |
| 	DSA = 00
 | |
| 	G0CLA = 000
 | |
| 	GPLA4DIS = 1
 | |
| 	RLFA = 0100
 | |
| 	WLFA = 0011
 | |
| 	TLFA = 0000
 | |
| 
 | |
| 	=> 0x58A0 1430
 | |
| 
 | |
| /*### MBMR */
 | |
| /*### Machine B Mode Register */
 | |
| /*### Chap. 16.4.4 */
 | |
| /*### Offset : 0x0000 0174 */
 | |
| 
 | |
| 	PTA = 0100 1110
 | |
| 	PTAE = 0			/* Periodic timer B disabled */
 | |
| 	AMA = 000
 | |
| 	DSA = 00
 | |
| 	G0CLA = 000
 | |
| 	GPLA4DIS = 1
 | |
| 	RLFA = 0000
 | |
| 	WLFA = 0000
 | |
| 	TLFA = 0000
 | |
| 
 | |
| 	=> 0x4E00 1000
 | |
| 
 | |
| /*### MSTAT */
 | |
| /*### Memory Status Register */
 | |
| /*### Chap. 16.4.3 */
 | |
| /*### Offset : 0x0000 0178 */
 | |
| 
 | |
| 	PER0~PER7 = Parity error
 | |
| 	WPER      = Write protection error
 | |
| 
 | |
| 	=> 0x0000
 | |
| 
 | |
| /*### MPTPR */
 | |
| /*### Memory Periodic Timer Prescaler Register */
 | |
| /*### Chap. 16.4.8 */
 | |
| /*### Offset : 0x0000 017A */
 | |
| 
 | |
| 	PTP = 0000 1000		/* Divide by 8 */
 | |
| 
 | |
| 	=> 0x0800
 | |
| 
 | |
| /*### MDR */
 | |
| /*### Memory Data Register */
 | |
| /*### Chap. 16.4.6 */
 | |
| /*### Offset : 0x0000 017C */
 | |
| 
 | |
| 	MD = Memory data contains the RAM array word
 | |
| 
 | |
| 
 | |
| /*------------------------------------------------------------------- */
 | |
| /*------------------------------------------------------------------- */
 | |
| /*	TIMERS */
 | |
| /* */
 | |
| /*------------------------------------------------------------------- */
 | |
| /*------------------------------------------------------------------- */
 | |
| ---------------------------------------------------------------------
 | |
| 
 | |
| /*### TBREFx */
 | |
| /*### Timebase Reference Registers */
 | |
| /*### Chap. 11.9.2 */
 | |
| /*### Offset : TBREFF0(0x0000 0204)/TBREFF1(0x0000 0208) */
 | |
| /*### (Locked) */
 | |
| 
 | |
| 	TBREFF0 = 0xFFFF FFFF
 | |
| 	TBREFF1 = 0xFFFF FFFF
 | |
| 
 | |
| ---------------------------------------------------------------------
 | |
| 
 | |
| /*### TBSCR */
 | |
| /*### Timebase Status and Control Registers */
 | |
| /*### Chap. 11.9.3 */
 | |
| /*### Offset : 0x0000 0200 */
 | |
| /*### (Locked) */
 | |
| 
 | |
| 	TBIRQ = 00000000
 | |
| 	REF0  = 0
 | |
| 	REF1  = 0
 | |
| 	REFE0 = 0			/* Reference interrupt disable */
 | |
| 	REFE1 = 0
 | |
| 	TBF   = 1
 | |
| 	TBE   = 1			/* Timebase enable */
 | |
| 
 | |
| 	=> 0x0003
 | |
| 
 | |
| ---------------------------------------------------------------------
 | |
| 
 | |
| /*### RTCSC */
 | |
| /*### Real-Time Clock Status and Control Registers */
 | |
| /*### Chap. 11.10.1 */
 | |
| /*### Offset : 0x0000 0220 */
 | |
| /*### (Locked) */
 | |
| 
 | |
| 	RTCIRQ = 00000000
 | |
| 	SEC = 1
 | |
| 	ALR = 0
 | |
| 	38K = 0				/* PITRTCLK is driven by 32.768KHz */
 | |
| 	SIE = 0
 | |
| 	ALE = 0
 | |
| 	RTF = 0
 | |
| 	RTE = 1				/* Real-Time clock enabled */
 | |
| 
 | |
| 	=> 0x0081
 | |
| 
 | |
| ---------------------------------------------------------------------
 | |
| 
 | |
| /*### RTC */
 | |
| /*### Real-Time Clock Registers */
 | |
| /*### Chap. 11.10.2 */
 | |
| /*### Offset : 0x0000 0224 */
 | |
| /*### (Locked) */
 | |
| 
 | |
| 	RTC = Real time clock measured in second
 | |
| 
 | |
| ---------------------------------------------------------------------
 | |
| 
 | |
| /*### RTCAL */
 | |
| /*### Real-Time Clock Alarm Registers */
 | |
| /*### Chap. 11.10.3 */
 | |
| /*### Offset : 0x0000 022C */
 | |
| /*### (Locked) */
 | |
| 
 | |
| 	ALARM = 0xFFFF FFFF
 | |
| 
 | |
| ---------------------------------------------------------------------
 | |
| 
 | |
| /*### RTSEC */
 | |
| /*### Real-Time Clock Alarm Second Registers */
 | |
| /*### Chap. 11.10.4 */
 | |
| /*### Offset : 0x0000 0228 */
 | |
| /*### (Locked) */
 | |
| 
 | |
| 	COUNTER = Counter bits(fraction of a second)
 | |
| 
 | |
| ---------------------------------------------------------------------
 | |
| 
 | |
| /*### PISCR */
 | |
| /*### Periodic Interrupt Status and Control Register */
 | |
| /*### Chap. 11.11.1 */
 | |
| /*### Offset : 0x0000 0240 */
 | |
| /*### (Locked) */
 | |
| 
 | |
| 	PIRQ = 0
 | |
| 	PS   = 0		/* Write 1 to clear */
 | |
| 	PIE  = 0
 | |
| 	PITF = 1
 | |
| 	PTE  = 0		/* PIT disabled */
 | |
| 
 | |
| ---------------------------------------------------------------------
 | |
| 
 | |
| /*### PITC */
 | |
| /*### PIT Count Register */
 | |
| /*### Chap. 11.11.2 */
 | |
| /*### Offset : 0x0000 0244 */
 | |
| /*### (Locked) */
 | |
| 
 | |
| 	PITC = PIT count
 | |
| 
 | |
| ---------------------------------------------------------------------
 | |
| 
 | |
| /*### PITR */
 | |
| /*### PIT Register */
 | |
| /*### Chap. 11.11.3 */
 | |
| /*### Offset : 0x0000 0248 */
 | |
| /*### (Locked) */
 | |
| 
 | |
| 	PIT = PIT count		/* Read only */
 | |
| 
 | |
| 
 | |
| /*------------------------------------------------------------------- */
 | |
| /*------------------------------------------------------------------- */
 | |
| /*	CLOCKS */
 | |
| /* */
 | |
| /*------------------------------------------------------------------- */
 | |
| /*------------------------------------------------------------------- */
 | |
| ---------------------------------------------------------------------
 | |
| 
 | |
| 
 | |
| ---------------------------------------------------------------------
 | |
| 
 | |
| /*### SCCR */
 | |
| /*### System Clock and Reset Control Register */
 | |
| /*### Chap. 15.6.1 */
 | |
| /*### Offset : 0x0000 0280 */
 | |
| /*### (Locked) */
 | |
| 
 | |
| 	COM    = 11		/* Clock output disabled */
 | |
| 	TBS    = 1		/* Timebase frequency source is GCLK2 divided by 16 */
 | |
| 	RTDIV  = 0		/* The clock is divided by 4 */
 | |
| 	RTSEL  = 0		/* OSCM(Crystal oscillator) is selected */
 | |
| 	CRQEN  = 0
 | |
| 	PRQEN  = 0
 | |
| 	EBDF   = 00		/* CLKOUT is GCLK2 divided by 1 */
 | |
| 	DFSYNC = 00		/* Divided by 1 (normal operation) */
 | |
| 	DFBRG  = 00		/* Divided by 1 (normal operation) */
 | |
| 	DFNL   = 000
 | |
| 	DFNH   = 000
 | |
| 
 | |
| 	=> 0x6200 0000
 | |
| 
 | |
| ---------------------------------------------------------------------
 | |
| 
 | |
| /*### PLPRCR */
 | |
| /*### PLL, Low-Power, and Reset Control Register */
 | |
| /*### Chap. 15.6.2 */
 | |
| /*### Offset : 0x0000 0284 */
 | |
| /*### (Locked) */
 | |
| 
 | |
| 	MF    = 0x005	/* 48MHz (?) (  = 8MHz * (MF+1) ) */
 | |
| 	SPLSS = 0
 | |
| 	TEXPS = 0
 | |
| 	TMIST = 0
 | |
| 	CSRC  = 0		/* The general system clock is generated by the DFNH field */
 | |
| 	LPM   = 00		/* Normal high/normal low mode */
 | |
| 	CSR   = 0
 | |
| 	LOLRE = 0
 | |
| 	FIOPD = 0
 | |
| 
 | |
| 	=> 0x0050 0000
 | |
| 
 | |
| ---------------------------------------------------------------------
 | |
| 
 | |
| /*### RSR */
 | |
| /*### Reset Status Register */
 | |
| /*### Chap. 12.2 */
 | |
| /*### Offset : 0x0000 0288 */
 | |
| /*### (Locked) */
 | |
| 
 | |
| 	EHRS  = External hard reset
 | |
| 	ESRS  = External soft reset
 | |
| 	LLRS  = Loss-of-lock reset
 | |
| 	SWRS  = Software watchdog reset
 | |
| 	CSRS  = Check stop reset
 | |
| 	DBHRS = Debug port hard reset
 | |
| 	DBSRS = Debug port soft reset
 | |
| 	JTRS  = JTAG reset
 | |
| 
 | |
| 
 | |
| /*------------------------------------------------------------------- */
 | |
| /*------------------------------------------------------------------- */
 | |
| /*	DMA */
 | |
| /* */
 | |
| /*------------------------------------------------------------------- */
 | |
| /*------------------------------------------------------------------- */
 | |
| ---------------------------------------------------------------------
 | |
| 
 | |
| /*### SDSR */
 | |
| /*### SDMA Status Register */
 | |
| /*### Chap. 20.2.2 */
 | |
| /*### Offset : 0x0000 0908 */
 | |
| 
 | |
| 	SBER = 0	/* SDMA channel bus error */
 | |
| 	DSP2 = 0	/* DSP chain2 (Tx) interrupt */
 | |
| 	DSP1 = 0	/* DSP chain1 (Rx) interrupt */
 | |
| 
 | |
| 	=> 0x00
 | |
| 
 | |
| /*### SDMR */
 | |
| /*### SDMA Mask Register */
 | |
| /*### Chap. 20.2.3 */
 | |
| /*### Offset : 0x0000 090C */
 | |
| 
 | |
| 	SBER = 0
 | |
| 	DSP2 = 0
 | |
| 	DSP1 = 0	/* All interrupts are masked */
 | |
| 
 | |
| 	=> 0x00
 | |
| 
 | |
| /*### SDAR */
 | |
| /*### SDMA Address Register */
 | |
| /*### Chap. 20.2.4 */
 | |
| /*### Offset : 0x0000 0904 */
 | |
| 
 | |
| 	AR = 0xxxxx xxxx	/* current system address */
 | |
| 
 | |
| 	=> 0xFA20 23AC
 | |
| 
 | |
| /*### IDSRx */
 | |
| /*### IDMA Status Register */
 | |
| /*### Chap. 20.3.3.2 */
 | |
| /*### Offset : IDSR1(0x0000 0910) & IDSR2(0x0000 0918) */
 | |
| 
 | |
| 	AD   = 0
 | |
| 	DONE = 0
 | |
| 	OB   = 0
 | |
| 
 | |
| 	=> 0x00
 | |
| 
 | |
| /*### IDMRx */
 | |
| /*### IDMA Mask Register */
 | |
| /*### Chap. 20.3.3.3 */
 | |
| /*### Offset : IDMR1(0x0000 0914) & IDMR2(0x0000 091C) */
 | |
| 
 | |
| 	AD   = 0
 | |
| 	DONE = 0
 | |
| 	OB   = 0
 |