mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-27 07:01:24 +00:00
a47a12becf
As discussed on the list, move "arch/ppc" to "arch/powerpc" to better match the Linux directory structure. Please note that this patch also changes the "ppc" target in MAKEALL to "powerpc" to match this new infrastructure. But "ppc" is kept as an alias for now, to not break compatibility with scripts using this name. Signed-off-by: Stefan Roese <sr@denx.de> Acked-by: Wolfgang Denk <wd@denx.de> Acked-by: Detlev Zundel <dzu@denx.de> Acked-by: Kim Phillips <kim.phillips@freescale.com> Cc: Peter Tyser <ptyser@xes-inc.com> Cc: Anatolij Gustschin <agust@denx.de>
877 lines
20 KiB
Text
877 lines
20 KiB
Text
# 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 */
|
|
arch/powerpc/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
|