Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/h8300/platform/h8s/generic/crt0_ram.S
10820 views
1
/*
2
* linux/arch/h8300/platform/h8s/edosk2674/crt0_ram.S
3
*
4
* Yoshinori Sato <[email protected]>
5
*
6
* Platform depend startup
7
* Target Archtecture: generic
8
* Memory Layout : RAM
9
*/
10
11
#define ASSEMBLY
12
13
#include <asm/linkage.h>
14
#include <asm/regs267x.h>
15
16
#if !defined(CONFIG_BLKDEV_RESERVE)
17
#if defined(CONFIG_GDB_DEBUG)
18
#define RAMEND (__ramend - 0xc000)
19
#else
20
#define RAMEND __ramend
21
#endif
22
#else
23
#define RAMEND CONFIG_BLKDEV_RESERVE_ADDRESS
24
#endif
25
26
.global SYMBOL_NAME(_start)
27
.global SYMBOL_NAME(_command_line)
28
.global SYMBOL_NAME(_platform_gpio_table)
29
.global SYMBOL_NAME(_target_name)
30
31
.h8300s
32
33
.section .text
34
.file "crt0_ram.S"
35
36
/* CPU Reset entry */
37
SYMBOL_NAME_LABEL(_start)
38
mov.l #RAMEND,sp
39
ldc #0x80,ccr
40
ldc #0x00,exr
41
42
/* Peripheral Setup */
43
bclr #4,@INTCR:8 /* interrupt mode 2 */
44
bset #5,@INTCR:8
45
46
#if defined(CONFIG_MTD_UCLINUX)
47
/* move romfs image */
48
jsr @__move_romfs
49
#endif
50
51
/* .bss clear */
52
mov.l #__sbss,er5
53
mov.l er5,er6
54
mov.l #__ebss,er4
55
sub.l er5,er4
56
shlr #2,er4
57
sub.l er0,er0
58
1:
59
mov.l er0,@er5
60
adds #4,er5
61
dec.l #1,er4
62
bne 1b
63
64
/* copy kernel commandline */
65
mov.l #COMMAND_START,er5
66
mov.l #SYMBOL_NAME(command_line),er6
67
mov.w #512,r4
68
eepmov.w
69
70
/* uClinux kernel start */
71
ldc #0x90,ccr /* running kernel */
72
mov.l #SYMBOL_NAME(init_thread_union),sp
73
add.l #0x2000,sp
74
jsr @_start_kernel
75
_exit:
76
77
jmp _exit
78
79
rts
80
81
/* I/O port assign information */
82
__platform_gpio_table:
83
mov.l #gpio_table,er0
84
rts
85
86
gpio_table:
87
;; P1DDR
88
;; used,ddr
89
.byte 0x00,0x00
90
;; P2DDR
91
.byte 0x00,0x00
92
;; P3DDR
93
.byte 0x00,0x00
94
;; dummy
95
.byte 0x00,0x00
96
;; P5DDR
97
.byte 0x00,0x00
98
;; P6DDR
99
.byte 0x00,0x00
100
;; P7DDR
101
.byte 0x00,0x00
102
;; P8DDR
103
.byte 0x00,0x00
104
;; dummy
105
.byte 0x00,0x00
106
;; PADDR
107
.byte 0x00,0x00
108
;; PBDDR
109
.byte 0x00,0x00
110
;; PCDDR
111
.byte 0x00,0x00
112
;; PDDDR
113
.byte 0x00,0x00
114
;; PEDDR
115
.byte 0x00,0x00
116
;; PFDDR
117
.byte 0x00,0x00
118
;; PGDDR
119
.byte 0x00,0x00
120
;; PHDDR
121
.byte 0x00,0x00
122
123
__target_name:
124
.asciz "generic"
125
126
.section .bootvec,"ax"
127
jmp @SYMBOL_NAME(_start)
128
129