configs/makerlisp: Update external memory settings in linker script.
This commit is contained in:
parent
cad6325589
commit
7e05bacd54
@ -43,23 +43,7 @@
|
|||||||
#include "arch/board/board.h"
|
#include "arch/board/board.h"
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Pre-processor Definitions
|
* Public Data
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
/****************************************************************************
|
|
||||||
* Private Data
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
/****************************************************************************
|
|
||||||
* Private Data
|
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
uint32_t ez80_systemclock = EZ80_SYS_CLK_FREQ;
|
uint32_t ez80_systemclock = EZ80_SYS_CLK_FREQ;
|
||||||
|
|
||||||
/****************************************************************************
|
|
||||||
* Private Functions
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
/****************************************************************************
|
|
||||||
* Public Functions
|
|
||||||
****************************************************************************/
|
|
||||||
|
@ -77,7 +77,7 @@
|
|||||||
;**************************************************************************
|
;**************************************************************************
|
||||||
|
|
||||||
_ez80_startup:
|
_ez80_startup:
|
||||||
; Set up the stack pointer at the location determined the lincmd
|
; Set up the stack pointer at the location determined the linkcmd
|
||||||
; file
|
; file
|
||||||
|
|
||||||
ld sp, __stack
|
ld sp, __stack
|
||||||
@ -122,7 +122,7 @@ _ez80_bssdone:
|
|||||||
jr z, _ez80_datadone ; __len_data is zero-length ...
|
jr z, _ez80_datadone ; __len_data is zero-length ...
|
||||||
ld hl, __low_romdata ; [hl] = data_copy
|
ld hl, __low_romdata ; [hl] = data_copy
|
||||||
ld de, __low_data ; [de] = data
|
ld de, __low_data ; [de] = data
|
||||||
ldir ; Copy the data section
|
ldir ; Copy the data section
|
||||||
_ez80_datadone:
|
_ez80_datadone:
|
||||||
|
|
||||||
; Copy CODE (which may be in FLASH) to RAM if the
|
; Copy CODE (which may be in FLASH) to RAM if the
|
||||||
|
@ -134,8 +134,8 @@ _nmi:
|
|||||||
; Interrupt Vector Handling
|
; Interrupt Vector Handling
|
||||||
;**************************************************************************
|
;**************************************************************************
|
||||||
|
|
||||||
; Symbol Val VecNo Addr
|
; Symbol Val VecNo Addr
|
||||||
;----------------- --- ----- -----
|
;----------------- --- ----- -----
|
||||||
_ez80_handlers:
|
_ez80_handlers:
|
||||||
irqhandler 0 ; EZ80_EMACRX_IRQ 0 0 0x040
|
irqhandler 0 ; EZ80_EMACRX_IRQ 0 0 0x040
|
||||||
handlersize equ $-_ez80_handlers
|
handlersize equ $-_ez80_handlers
|
||||||
@ -147,8 +147,8 @@ _ez80_handlers:
|
|||||||
irqhandler 6 ; EZ80_TIMER1_IRQ 6 6 0x058
|
irqhandler 6 ; EZ80_TIMER1_IRQ 6 6 0x058
|
||||||
irqhandler 7 ; EZ80_TIMER2_IRQ 7 7 0x05c
|
irqhandler 7 ; EZ80_TIMER2_IRQ 7 7 0x05c
|
||||||
irqhandler 8 ; EZ80_TIMER3_IRQ 8 8 0x060
|
irqhandler 8 ; EZ80_TIMER3_IRQ 8 8 0x060
|
||||||
irqhandler EZ80_UNUSED ; 9 0x064
|
irqhandler EZ80_UNUSED ; 9 0x064
|
||||||
irqhandler EZ80_UNUSED+1 ; 10 0x068
|
irqhandler EZ80_UNUSED+1 ; 10 0x068
|
||||||
irqhandler 9 ; EZ80_RTC_IRQ 9 11 0x06C
|
irqhandler 9 ; EZ80_RTC_IRQ 9 11 0x06C
|
||||||
irqhandler 10 ; EZ80_UART0_IRQ 10 12 0x070
|
irqhandler 10 ; EZ80_UART0_IRQ 10 12 0x070
|
||||||
irqhandler 11 ; EZ80_UART1_IRQ 11 13 0x074
|
irqhandler 11 ; EZ80_UART1_IRQ 11 13 0x074
|
||||||
@ -186,22 +186,22 @@ _ez80_handlers:
|
|||||||
irqhandler 43 ; EZ80_PORTD5_IRQ 43 45 0x0f4
|
irqhandler 43 ; EZ80_PORTD5_IRQ 43 45 0x0f4
|
||||||
irqhandler 44 ; EZ80_PORTD6_IRQ 44 46 0x0f8
|
irqhandler 44 ; EZ80_PORTD6_IRQ 44 46 0x0f8
|
||||||
irqhandler 45 ; EZ80_PORTD7_IRQ 45 47 0x0fc
|
irqhandler 45 ; EZ80_PORTD7_IRQ 45 47 0x0fc
|
||||||
irqhandler EZ80_UNUSED+1 ; 48 0x100
|
irqhandler EZ80_UNUSED+1 ; 48 0x100
|
||||||
irqhandler EZ80_UNUSED+2 ; 49 0x104
|
irqhandler EZ80_UNUSED+2 ; 49 0x104
|
||||||
irqhandler EZ80_UNUSED+3 ; 50 0x108
|
irqhandler EZ80_UNUSED+3 ; 50 0x108
|
||||||
irqhandler EZ80_UNUSED+4 ; 51 0x10c
|
irqhandler EZ80_UNUSED+4 ; 51 0x10c
|
||||||
irqhandler EZ80_UNUSED+5 ; 52 0x110
|
irqhandler EZ80_UNUSED+5 ; 52 0x110
|
||||||
irqhandler EZ80_UNUSED+6 ; 53 0x114
|
irqhandler EZ80_UNUSED+6 ; 53 0x114
|
||||||
irqhandler EZ80_UNUSED+7 ; 54 0x118
|
irqhandler EZ80_UNUSED+7 ; 54 0x118
|
||||||
irqhandler EZ80_UNUSED+8 ; 55 0x11c
|
irqhandler EZ80_UNUSED+8 ; 55 0x11c
|
||||||
irqhandler EZ80_UNUSED+9 ; 56 0x120
|
irqhandler EZ80_UNUSED+9 ; 56 0x120
|
||||||
irqhandler EZ80_UNUSED+10 ; 57 0x124
|
irqhandler EZ80_UNUSED+10 ; 57 0x124
|
||||||
irqhandler EZ80_UNUSED+11 ; 58 0x128
|
irqhandler EZ80_UNUSED+11 ; 58 0x128
|
||||||
irqhandler EZ80_UNUSED+12 ; 59 0x12c
|
irqhandler EZ80_UNUSED+12 ; 59 0x12c
|
||||||
irqhandler EZ80_UNUSED+13 ; 60 0x130
|
irqhandler EZ80_UNUSED+13 ; 60 0x130
|
||||||
irqhandler EZ80_UNUSED+14 ; 61 0x134
|
irqhandler EZ80_UNUSED+14 ; 61 0x134
|
||||||
irqhandler EZ80_UNUSED+15 ; 62 0x138
|
irqhandler EZ80_UNUSED+15 ; 62 0x138
|
||||||
irqhandler EZ80_UNUSED+16 ; 63 0x13c
|
irqhandler EZ80_UNUSED+16 ; 63 0x13c
|
||||||
|
|
||||||
;**************************************************************************
|
;**************************************************************************
|
||||||
; Common Interrupt handler
|
; Common Interrupt handler
|
||||||
@ -216,72 +216,72 @@ _ez80_rstcommon:
|
|||||||
;
|
;
|
||||||
; IRQ number is in A
|
; IRQ number is in A
|
||||||
|
|
||||||
push hl ; Offset 6: HL
|
push hl ; Offset 6: HL
|
||||||
ld hl, #(3*3) ; HL is the value of the stack pointer before
|
ld hl, #(3*3) ; HL is the value of the stack pointer before
|
||||||
add hl, sp ; the interrupt occurred (3 for PC, AF, HL)
|
add hl, sp ; the interrupt occurred (3 for PC, AF, HL)
|
||||||
push hl ; Offset 5: Stack pointer
|
push hl ; Offset 5: Stack pointer
|
||||||
push iy ; Offset 4: IY
|
push iy ; Offset 4: IY
|
||||||
push ix ; Offset 3: IX
|
push ix ; Offset 3: IX
|
||||||
push de ; Offset 2: DE
|
push de ; Offset 2: DE
|
||||||
push bc ; Offset 1: BC
|
push bc ; Offset 1: BC
|
||||||
|
|
||||||
; At this point, we know that interrupts were enabled (or we wouldn't be here
|
; At this point, we know that interrupts were enabled (or we wouldn't be here
|
||||||
; so we can save a fake indicationn that will cause interrupts to restored when
|
; so we can save a fake indication that will cause interrupts to restored when
|
||||||
; this context is restored
|
; this context is restored
|
||||||
|
|
||||||
ld bc, #EZ80_PV_FLAG ; Parity bit. 1=parity odd, IEF2=1
|
ld bc, #EZ80_PV_FLAG ; Parity bit. 1=parity odd, IEF2=1
|
||||||
push bc ; Offset 0: I with interrupt state in parity
|
push bc ; Offset 0: I with interrupt state in parity
|
||||||
di ; (not necessary)
|
di ; (not necessary)
|
||||||
|
|
||||||
; Call the interrupt decode logic. SP points to the beggining of the reg structure
|
; Call the interrupt decode logic. SP points to the beggining of the reg structure
|
||||||
|
|
||||||
ld hl, #0 ; Argument #2 is the beginning of the reg structure
|
ld hl, #0 ; Argument #2 is the beginning of the reg structure
|
||||||
add hl, sp ;
|
add hl, sp ;
|
||||||
push hl ; Place argument #2 at the top of stack
|
push hl ; Place argument #2 at the top of stack
|
||||||
ld bc, #0 ; BC = reset number
|
ld bc, #0 ; BC = reset number
|
||||||
ld c, a ; Save the reset number in C
|
ld c, a ; Save the reset number in C
|
||||||
push bc ; Argument #1 is the Reset number
|
push bc ; Argument #1 is the Reset number
|
||||||
call _z80_doirq ; Decode the IRQ
|
call _z80_doirq ; Decode the IRQ
|
||||||
|
|
||||||
; On return, HL points to the beginning of the reg structure to restore
|
; On return, HL points to the beginning of the reg structure to restore
|
||||||
; Note that (1) the arguments pushed on the stack are not popped, and (2) the
|
; Note that (1) the arguments pushed on the stack are not popped, and (2) the
|
||||||
; original stack pointer is lost. In the normal case (no context switch),
|
; original stack pointer is lost. In the normal case (no context switch),
|
||||||
; HL will contain the value of the SP before the arguments were pushed.
|
; HL will contain the value of the SP before the arguments were pushed.
|
||||||
|
|
||||||
ld sp, hl ; Use the new stack pointer
|
ld sp, hl ; Use the new stack pointer
|
||||||
|
|
||||||
; Restore registers. HL points to the beginning of the reg structure to restore
|
; Restore registers. HL points to the beginning of the reg structure to restore
|
||||||
|
|
||||||
ex af, af' ; Select alternate AF
|
ex af, af' ; Select alternate AF
|
||||||
pop af ; Offset 0: AF' = I with interrupt state in parity
|
pop af ; Offset 0: AF' = I with interrupt state in parity
|
||||||
ex af, af' ; Restore original AF
|
ex af, af' ; Restore original AF
|
||||||
pop bc ; Offset 1: BC
|
pop bc ; Offset 1: BC
|
||||||
pop de ; Offset 2: DE
|
pop de ; Offset 2: DE
|
||||||
pop ix ; Offset 3: IX
|
pop ix ; Offset 3: IX
|
||||||
pop iy ; Offset 4: IY
|
pop iy ; Offset 4: IY
|
||||||
exx ; Use alternate BC/DE/HL
|
exx ; Use alternate BC/DE/HL
|
||||||
pop hl ; Offset 5: HL' = Stack pointer after return
|
pop hl ; Offset 5: HL' = Stack pointer after return
|
||||||
exx ; Restore original BC/DE/HL
|
exx ; Restore original BC/DE/HL
|
||||||
pop hl ; Offset 6: HL
|
pop hl ; Offset 6: HL
|
||||||
pop af ; Offset 7: AF
|
pop af ; Offset 7: AF
|
||||||
|
|
||||||
; Restore the stack pointer
|
; Restore the stack pointer
|
||||||
|
|
||||||
exx ; Use alternate BC/DE/HL
|
exx ; Use alternate BC/DE/HL
|
||||||
pop de ; Offset 8: Return address
|
pop de ; Offset 8: Return address
|
||||||
ld sp, hl ; Set SP = saved stack pointer value before return
|
ld sp, hl ; Set SP = saved stack pointer value before return
|
||||||
push de ; Set up for reti
|
push de ; Set up for reti
|
||||||
exx ; Restore original BC/DE/HL
|
exx ; Restore original BC/DE/HL
|
||||||
|
|
||||||
; Restore interrupt state
|
; Restore interrupt state
|
||||||
|
|
||||||
ex af, af' ; Recover interrupt state
|
ex af, af' ; Recover interrupt state
|
||||||
jp po, nointenable ; Odd parity, IFF2=0, means disabled
|
jp po, nointenable ; Odd parity, IFF2=0, means disabled
|
||||||
ex af, af' ; Restore AF (before enabling interrupts)
|
ex af, af' ; Restore AF (before enabling interrupts)
|
||||||
ei ; yes
|
ei ; yes
|
||||||
reti
|
reti
|
||||||
nointenable:
|
nointenable:
|
||||||
ex af, af' ; Restore AF
|
ex af, af' ; Restore AF
|
||||||
reti
|
reti
|
||||||
|
|
||||||
;**************************************************************************
|
;**************************************************************************
|
||||||
@ -291,37 +291,37 @@ nointenable:
|
|||||||
_ez80_initvectors:
|
_ez80_initvectors:
|
||||||
; Initialize the vector table
|
; Initialize the vector table
|
||||||
|
|
||||||
ld iy, _ez80_vectable
|
ld iy, _ez80_vectable
|
||||||
ld ix, 4
|
ld ix, 4
|
||||||
ld bc, 4
|
ld bc, 4
|
||||||
ld b, NVECTORS
|
ld b, NVECTORS
|
||||||
xor a, a ; Clear carry
|
xor a, a ; Clear carry
|
||||||
ld hl, handlersize
|
ld hl, handlersize
|
||||||
ld de, _ez80_handlers
|
ld de, _ez80_handlers
|
||||||
sbc hl, de ; Length of irq handler in hl
|
sbc hl, de ; Length of irq handler in hl
|
||||||
ld d, h
|
ld d, h
|
||||||
ld e, l
|
ld e, l
|
||||||
ld hl, _ez80_handlers ; Start of handlers in hl
|
ld hl, _ez80_handlers ; Start of handlers in hl
|
||||||
|
|
||||||
ld a, 0
|
ld a, 0
|
||||||
$1:
|
$1:
|
||||||
ld (iy), hl ; Store IRQ handler
|
ld (iy), hl ; Store IRQ handler
|
||||||
ld (iy+3), a ; Pad to 4 bytes
|
ld (iy+3), a ; Pad to 4 bytes
|
||||||
add hl, de ; Point to next handler
|
add hl, de ; Point to next handler
|
||||||
push de
|
push de
|
||||||
ld de, 4
|
ld de, 4
|
||||||
add iy, de ; Point to next entry in vector table
|
add iy, de ; Point to next entry in vector table
|
||||||
pop de
|
pop de
|
||||||
djnz $1 ; Loop until all vectors have been written
|
djnz $1 ; Loop until all vectors have been written
|
||||||
|
|
||||||
; Select interrupt mode 2
|
; Select interrupt mode 2
|
||||||
|
|
||||||
im 2 ; Interrupt mode 2
|
im 2 ; Interrupt mode 2
|
||||||
|
|
||||||
; Write the address of the vector table into the interrupt vector base
|
; Write the address of the vector table into the interrupt vector base
|
||||||
|
|
||||||
ld hl, _ez80_vectable >> 8
|
ld hl, _ez80_vectable >> 8
|
||||||
ld i, hl
|
ld i, hl
|
||||||
ret
|
ret
|
||||||
|
|
||||||
;**************************************************************************
|
;**************************************************************************
|
||||||
|
@ -78,35 +78,35 @@ PLL_ENABLE EQU %01
|
|||||||
;**************************************************************************
|
;**************************************************************************
|
||||||
|
|
||||||
; Exported symbols
|
; Exported symbols
|
||||||
xdef _ez80_init
|
xdef _ez80_init
|
||||||
xdef _ez80_initsysclk
|
xdef _ez80_initsysclk
|
||||||
|
|
||||||
; Imported symbols
|
; Imported symbols
|
||||||
xref __CS0_LBR_INIT_PARAM
|
xref __CS0_LBR_INIT_PARAM
|
||||||
xref __CS0_UBR_INIT_PARAM
|
xref __CS0_UBR_INIT_PARAM
|
||||||
xref __CS0_CTL_INIT_PARAM
|
xref __CS0_CTL_INIT_PARAM
|
||||||
xref __CS1_LBR_INIT_PARAM
|
xref __CS1_LBR_INIT_PARAM
|
||||||
xref __CS1_UBR_INIT_PARAM
|
xref __CS1_UBR_INIT_PARAM
|
||||||
xref __CS1_CTL_INIT_PARAM
|
xref __CS1_CTL_INIT_PARAM
|
||||||
xref __CS2_LBR_INIT_PARAM
|
xref __CS2_LBR_INIT_PARAM
|
||||||
xref __CS2_UBR_INIT_PARAM
|
xref __CS2_UBR_INIT_PARAM
|
||||||
xref __CS2_CTL_INIT_PARAM
|
xref __CS2_CTL_INIT_PARAM
|
||||||
xref __CS3_LBR_INIT_PARAM
|
xref __CS3_LBR_INIT_PARAM
|
||||||
xref __CS3_UBR_INIT_PARAM
|
xref __CS3_UBR_INIT_PARAM
|
||||||
xref __CS3_CTL_INIT_PARAM
|
xref __CS3_CTL_INIT_PARAM
|
||||||
xref __CS0_BMC_INIT_PARAM
|
xref __CS0_BMC_INIT_PARAM
|
||||||
xref __CS1_BMC_INIT_PARAM
|
xref __CS1_BMC_INIT_PARAM
|
||||||
xref __CS2_BMC_INIT_PARAM
|
xref __CS2_BMC_INIT_PARAM
|
||||||
xref __CS3_BMC_INIT_PARAM
|
xref __CS3_BMC_INIT_PARAM
|
||||||
xref __FLASH_CTL_INIT_PARAM
|
xref __FLASH_CTL_INIT_PARAM
|
||||||
xref __FLASH_ADDR_U_INIT_PARAM
|
xref __FLASH_ADDR_U_INIT_PARAM
|
||||||
xref __RAM_CTL_INIT_PARAM
|
xref __RAM_CTL_INIT_PARAM
|
||||||
xref __RAM_ADDR_U_INIT_PARAM
|
xref __RAM_ADDR_U_INIT_PARAM
|
||||||
xref _SYS_CLK_SRC
|
xref _SYS_CLK_SRC
|
||||||
xref _SYS_CLK_FREQ
|
xref _SYS_CLK_FREQ
|
||||||
xref _OSC_FREQ
|
xref _OSC_FREQ
|
||||||
xref _OSC_FREQ_MULT
|
xref _OSC_FREQ_MULT
|
||||||
xref __PLL_CTL0_INIT_PARAM
|
xref __PLL_CTL0_INIT_PARAM
|
||||||
|
|
||||||
;**************************************************************************
|
;**************************************************************************
|
||||||
; Chip-specific initialization logic
|
; Chip-specific initialization logic
|
||||||
@ -120,12 +120,12 @@ PLL_ENABLE EQU %01
|
|||||||
_ez80_init:
|
_ez80_init:
|
||||||
; Disable internal peripheral interrupt sources
|
; Disable internal peripheral interrupt sources
|
||||||
|
|
||||||
ld a, %ff
|
ld a, %ff
|
||||||
out0 (PA_DDR), a ; GPIO
|
out0 (PA_DDR), a ; GPIO
|
||||||
out0 (PB_DDR), a
|
out0 (PB_DDR), a
|
||||||
out0 (PC_DDR), a
|
out0 (PC_DDR), a
|
||||||
out0 (PD_DDR), a
|
out0 (PD_DDR), a
|
||||||
ld a, %00
|
ld a, %00
|
||||||
out0 (PA_ALT1), a
|
out0 (PA_ALT1), a
|
||||||
out0 (PB_ALT1), a
|
out0 (PB_ALT1), a
|
||||||
out0 (PC_ALT1), a
|
out0 (PC_ALT1), a
|
||||||
@ -144,60 +144,60 @@ _ez80_init:
|
|||||||
out0 (I2C_CTL), a ; I2C
|
out0 (I2C_CTL), a ; I2C
|
||||||
out0 (EMAC_IEN), a ; EMAC
|
out0 (EMAC_IEN), a ; EMAC
|
||||||
out0 (FLASH_IRQ), a ; Flash
|
out0 (FLASH_IRQ), a ; Flash
|
||||||
ld a, %04
|
ld a, %04
|
||||||
out0 (SPI_CTL), a ; SPI
|
out0 (SPI_CTL), a ; SPI
|
||||||
in0 a, (RTC_CTRL) ; RTC,
|
in0 a, (RTC_CTRL) ; RTC,
|
||||||
and a, %be
|
and a, %be
|
||||||
out0 (RTC_CTRL), a
|
out0 (RTC_CTRL), a
|
||||||
|
|
||||||
; Configure external memory/io
|
; Configure external memory/io
|
||||||
|
|
||||||
ld a, __CS0_LBR_INIT_PARAM
|
ld a, __CS0_LBR_INIT_PARAM
|
||||||
out0 (CS0_LBR), a
|
out0 (CS0_LBR), a
|
||||||
ld a, __CS0_UBR_INIT_PARAM
|
ld a, __CS0_UBR_INIT_PARAM
|
||||||
out0 (CS0_UBR), a
|
out0 (CS0_UBR), a
|
||||||
ld a, __CS0_BMC_INIT_PARAM
|
ld a, __CS0_BMC_INIT_PARAM
|
||||||
out0 (CS0_BMC), a
|
out0 (CS0_BMC), a
|
||||||
ld a, __CS0_CTL_INIT_PARAM
|
ld a, __CS0_CTL_INIT_PARAM
|
||||||
out0 (CS0_CTL), a
|
out0 (CS0_CTL), a
|
||||||
|
|
||||||
ld a, __CS1_LBR_INIT_PARAM
|
ld a, __CS1_LBR_INIT_PARAM
|
||||||
out0 (CS1_LBR), a
|
out0 (CS1_LBR), a
|
||||||
ld a, __CS1_UBR_INIT_PARAM
|
ld a, __CS1_UBR_INIT_PARAM
|
||||||
out0 (CS1_UBR), a
|
out0 (CS1_UBR), a
|
||||||
ld a, __CS1_BMC_INIT_PARAM
|
ld a, __CS1_BMC_INIT_PARAM
|
||||||
out0 (CS1_BMC), a
|
out0 (CS1_BMC), a
|
||||||
ld a, __CS1_CTL_INIT_PARAM
|
ld a, __CS1_CTL_INIT_PARAM
|
||||||
out0 (CS1_CTL), a
|
out0 (CS1_CTL), a
|
||||||
|
|
||||||
ld a, __CS2_LBR_INIT_PARAM
|
ld a, __CS2_LBR_INIT_PARAM
|
||||||
out0 (CS2_LBR), a
|
out0 (CS2_LBR), a
|
||||||
ld a, __CS2_UBR_INIT_PARAM
|
ld a, __CS2_UBR_INIT_PARAM
|
||||||
out0 (CS2_UBR), a
|
out0 (CS2_UBR), a
|
||||||
ld a, __CS2_BMC_INIT_PARAM
|
ld a, __CS2_BMC_INIT_PARAM
|
||||||
out0 (CS2_BMC), a
|
out0 (CS2_BMC), a
|
||||||
ld a, __CS2_CTL_INIT_PARAM
|
ld a, __CS2_CTL_INIT_PARAM
|
||||||
out0 (CS2_CTL), a
|
out0 (CS2_CTL), a
|
||||||
|
|
||||||
ld a, __CS3_LBR_INIT_PARAM
|
ld a, __CS3_LBR_INIT_PARAM
|
||||||
out0 (CS3_LBR), a
|
out0 (CS3_LBR), a
|
||||||
ld a, __CS3_UBR_INIT_PARAM
|
ld a, __CS3_UBR_INIT_PARAM
|
||||||
out0 (CS3_UBR), a
|
out0 (CS3_UBR), a
|
||||||
ld a, __CS3_BMC_INIT_PARAM
|
ld a, __CS3_BMC_INIT_PARAM
|
||||||
out0 (CS3_BMC), a
|
out0 (CS3_BMC), a
|
||||||
ld a, __CS3_CTL_INIT_PARAM
|
ld a, __CS3_CTL_INIT_PARAM
|
||||||
out0 (CS3_CTL), a
|
out0 (CS3_CTL), a
|
||||||
|
|
||||||
; Enable internal memory
|
; Enable internal memory
|
||||||
|
|
||||||
ld a, __FLASH_ADDR_U_INIT_PARAM
|
ld a, __FLASH_ADDR_U_INIT_PARAM
|
||||||
out0 (FLASH_ADDR_U), a
|
out0 (FLASH_ADDR_U), a
|
||||||
ld a, __FLASH_CTL_INIT_PARAM
|
ld a, __FLASH_CTL_INIT_PARAM
|
||||||
out0 (FLASH_CTRL), a
|
out0 (FLASH_CTRL), a
|
||||||
|
|
||||||
ld a, __RAM_ADDR_U_INIT_PARAM
|
ld a, __RAM_ADDR_U_INIT_PARAM
|
||||||
out0 (RAM_ADDR_U), a
|
out0 (RAM_ADDR_U), a
|
||||||
ld a, __RAM_CTL_INIT_PARAM
|
ld a, __RAM_CTL_INIT_PARAM
|
||||||
out0 (RAM_CTL), a
|
out0 (RAM_CTL), a
|
||||||
ret
|
ret
|
||||||
|
|
||||||
@ -207,51 +207,53 @@ _ez80_init:
|
|||||||
|
|
||||||
_ez80_initsysclk:
|
_ez80_initsysclk:
|
||||||
; check if the PLL should be used
|
; check if the PLL should be used
|
||||||
ld a, (_ez80_sysclksrc)
|
|
||||||
cp a, PLL
|
ld a, (_ez80_sysclksrc)
|
||||||
jr nz, _ez80_initsysclkdone
|
cp a, PLL
|
||||||
|
jr nz, _ez80_initsysclkdone
|
||||||
|
|
||||||
; Load PLL divider
|
; Load PLL divider
|
||||||
|
|
||||||
ld a, (_ez80_oscfreqmult) ;CR 6202
|
ld a, (_ez80_oscfreqmult) ;CR 6202
|
||||||
out0 (PLL_DIV_L), a
|
out0 (PLL_DIV_L), a
|
||||||
ld a, (_ez80_oscfreqmult+1)
|
ld a, (_ez80_oscfreqmult+1)
|
||||||
out0 (PLL_DIV_H), a
|
out0 (PLL_DIV_H), a
|
||||||
|
|
||||||
; Set charge pump and lock criteria
|
; Set charge pump and lock criteria
|
||||||
|
|
||||||
ld a, __PLL_CTL0_INIT_PARAM
|
ld a, __PLL_CTL0_INIT_PARAM
|
||||||
and a, %CC ; mask off reserved and clock source bits
|
and a, %CC ; mask off reserved and clock source bits
|
||||||
out0 (PLL_CTL0), a
|
out0 (PLL_CTL0), a
|
||||||
|
|
||||||
; Enable PLL
|
; Enable PLL
|
||||||
|
|
||||||
in0 a, (PLL_CTL1)
|
in0 a, (PLL_CTL1)
|
||||||
set 0, a
|
set 0, a
|
||||||
out0 (PLL_CTL1), a
|
out0 (PLL_CTL1), a
|
||||||
|
|
||||||
; Wait for PLL to lock
|
; Wait for PLL to lock
|
||||||
|
|
||||||
_ez80_initsysclkwait:
|
_ez80_initsysclkwait:
|
||||||
in0 a, (PLL_CTL1)
|
in0 a, (PLL_CTL1)
|
||||||
and a, LCK_STATUS
|
and a, LCK_STATUS
|
||||||
cp a, LCK_STATUS
|
cp a, LCK_STATUS
|
||||||
jr nz, _ez80_initsysclkwait
|
jr nz, _ez80_initsysclkwait
|
||||||
|
|
||||||
; Select PLL as system clock source
|
; Select PLL as system clock source
|
||||||
|
|
||||||
ld a, __PLL_CTL0_INIT_PARAM
|
ld a, __PLL_CTL0_INIT_PARAM
|
||||||
set 0, a
|
set 0, a
|
||||||
out0 (PLL_CTL0), a
|
out0 (PLL_CTL0), a
|
||||||
|
|
||||||
_ez80_initsysclkdone:
|
_ez80_initsysclkdone:
|
||||||
ret
|
ret
|
||||||
|
|
||||||
;_ez80_oscfreq:
|
;_ez80_oscfreq:
|
||||||
; dl _OSC_FREQ
|
; dl _OSC_FREQ
|
||||||
_ez80_oscfreqmult:
|
_ez80_oscfreqmult:
|
||||||
dw _OSC_FREQ_MULT
|
dw _OSC_FREQ_MULT
|
||||||
;_ez80_sysclkfreq:
|
;_ez80_sysclkfreq:
|
||||||
; dl _SYS_CLK_FREQ
|
; dl _SYS_CLK_FREQ
|
||||||
_ez80_sysclksrc:
|
_ez80_sysclksrc:
|
||||||
db _SYS_CLK_SRC
|
db _SYS_CLK_SRC
|
||||||
end
|
end
|
||||||
|
@ -34,14 +34,15 @@
|
|||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
-FORMAT=OMF695,INTEL32
|
-FORMAT=OMF695,INTEL32
|
||||||
-map -maxhexlen=64 -quiet -NOwarnoverlap -xref -unresolved=fatal
|
-map -maxhexlen=64 -quiet -warnoverlap -xref -unresolved=fatal
|
||||||
-sort ADDRESS=ascending -warn -NOdebug -NOigcase
|
-sort NAME=ascending -warn -debug -NOigcase
|
||||||
|
|
||||||
RANGE ROM $000000 : $03FFFF
|
RANGE ROM $000000 : $03FFFF
|
||||||
RANGE RAM $B80000 : $BFFFFF
|
RANGE RAM $040000 : $13FFFF
|
||||||
RANGE EXTIO $000000 : $00FFFF
|
RANGE EXTIO $000000 : $00FFFF
|
||||||
RANGE INTIO $000000 : $0000FF
|
RANGE INTIO $000000 : $0000FF
|
||||||
|
|
||||||
|
CHANGE TEXT is CODE
|
||||||
CHANGE STRSECT is ROM
|
CHANGE STRSECT is ROM
|
||||||
|
|
||||||
ORDER .RESET,.IVECTS,.STARTUP,CODE,DATA
|
ORDER .RESET,.IVECTS,.STARTUP,CODE,DATA
|
||||||
@ -60,25 +61,26 @@ DEFINE __low_code = base of CODE
|
|||||||
DEFINE __len_code = length of CODE
|
DEFINE __len_code = length of CODE
|
||||||
DEFINE __copy_code_to_ram = 0
|
DEFINE __copy_code_to_ram = 0
|
||||||
DEFINE __crtl = 1
|
DEFINE __crtl = 1
|
||||||
DEFINE __CS0_LBR_INIT_PARAM = $10
|
|
||||||
DEFINE __CS0_UBR_INIT_PARAM = $1f
|
DEFINE __CS0_LBR_INIT_PARAM = $04
|
||||||
DEFINE __CS0_CTL_INIT_PARAM = $a8
|
DEFINE __CS0_UBR_INIT_PARAM = $0b
|
||||||
DEFINE __CS0_BMC_INIT_PARAM = $02
|
DEFINE __CS0_CTL_INIT_PARAM = $08
|
||||||
DEFINE __CS1_LBR_INIT_PARAM = $c0
|
DEFINE __CS0_BMC_INIT_PARAM = $00
|
||||||
DEFINE __CS1_UBR_INIT_PARAM = $c7
|
DEFINE __CS1_LBR_INIT_PARAM = $0c
|
||||||
DEFINE __CS1_CTL_INIT_PARAM = $28
|
DEFINE __CS1_UBR_INIT_PARAM = $13
|
||||||
DEFINE __CS1_BMC_INIT_PARAM = $02
|
DEFINE __CS1_CTL_INIT_PARAM = $08
|
||||||
DEFINE __CS2_LBR_INIT_PARAM = $80
|
DEFINE __CS1_BMC_INIT_PARAM = $00
|
||||||
DEFINE __CS2_UBR_INIT_PARAM = $bf
|
DEFINE __CS2_LBR_INIT_PARAM = $20
|
||||||
DEFINE __CS2_CTL_INIT_PARAM = $28
|
DEFINE __CS2_UBR_INIT_PARAM = $9f
|
||||||
DEFINE __CS2_BMC_INIT_PARAM = $81
|
DEFINE __CS2_CTL_INIT_PARAM = $88
|
||||||
|
DEFINE __CS2_BMC_INIT_PARAM = $00
|
||||||
DEFINE __CS3_LBR_INIT_PARAM = $00
|
DEFINE __CS3_LBR_INIT_PARAM = $00
|
||||||
DEFINE __CS3_UBR_INIT_PARAM = $00
|
DEFINE __CS3_UBR_INIT_PARAM = $00
|
||||||
DEFINE __CS3_CTL_INIT_PARAM = $00
|
DEFINE __CS3_CTL_INIT_PARAM = $00
|
||||||
DEFINE __CS3_BMC_INIT_PARAM = $02
|
DEFINE __CS3_BMC_INIT_PARAM = $00
|
||||||
DEFINE __RAM_CTL_INIT_PARAM = $C0
|
DEFINE __RAM_CTL_INIT_PARAM = $80
|
||||||
DEFINE __RAM_ADDR_U_INIT_PARAM = $B7
|
DEFINE __RAM_ADDR_U_INIT_PARAM = $AF
|
||||||
DEFINE __FLASH_CTL_INIT_PARAM = $68
|
DEFINE __FLASH_CTL_INIT_PARAM = $88
|
||||||
DEFINE __FLASH_ADDR_U_INIT_PARAM = $00
|
DEFINE __FLASH_ADDR_U_INIT_PARAM = $00
|
||||||
|
|
||||||
define _SYS_CLK_FREQ = 50000000
|
define _SYS_CLK_FREQ = 50000000
|
||||||
@ -86,7 +88,7 @@ define _SYS_CLK_FREQ = 50000000
|
|||||||
define _OSC_FREQ = 5000000
|
define _OSC_FREQ = 5000000
|
||||||
define _SYS_CLK_SRC = 1
|
define _SYS_CLK_SRC = 1
|
||||||
define _OSC_FREQ_MULT = 10
|
define _OSC_FREQ_MULT = 10
|
||||||
define __PLL_CTL0_INIT_PARAM = $40
|
define __PLL_CTL0_INIT_PARAM = $41
|
||||||
|
|
||||||
define _zsl_g_clock_xdefine = 50000000
|
define _zsl_g_clock_xdefine = 50000000
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user