changelog shortlog tags branches changeset files revisions annotate raw help

Mercurial > hg > plan9front / sys/src/9/bcm64/mkfile

changeset 7235: b1dc95374307
parent: ba62683c0e2d
child: 2e8af1bf191d
author: cinap_lenrek@felloff.net
date: Mon, 13 May 2019 19:20:21 +0200
permissions: -rw-r--r--
description: bcm64: implement reboot support
1 CONF=pi3
2 CONFLIST=pi3
3 
4 loadaddr=0xffffffff80080000
5 
6 objtype=arm64
7 </$objtype/mkfile
8 p=9
9 
10 DEVS=`{rc ../port/mkdevlist $CONF}
11 
12 PORT=\
13  alarm.$O\
14  alloc.$O\
15  allocb.$O\
16  auth.$O\
17  cache.$O\
18  chan.$O\
19  dev.$O\
20  edf.$O\
21  fault.$O\
22  mul64fract.$O\
23  page.$O\
24  parse.$O\
25  pgrp.$O\
26  portclock.$O\
27  print.$O\
28  proc.$O\
29  qio.$O\
30  qlock.$O\
31  rdb.$O\
32  rebootcmd.$O\
33  segment.$O\
34  syscallfmt.$O\
35  sysfile.$O\
36  sysproc.$O\
37  taslock.$O\
38  tod.$O\
39  xalloc.$O\
40 
41 OBJ=\
42  l.$O\
43  cache.v8.$O\
44  bootargs.$O\
45  clock.$O\
46  fpu.$O\
47  irq.$O\
48  main.$O\
49  mmu.$O\
50  sysreg.$O\
51  random.$O\
52  trap.$O\
53  $CONF.root.$O\
54  $CONF.rootc.$O\
55  $DEVS\
56  $PORT\
57 
58 # HFILES=
59 
60 LIB=\
61  /$objtype/lib/libmemlayer.a\
62  /$objtype/lib/libmemdraw.a\
63  /$objtype/lib/libdraw.a\
64  /$objtype/lib/libip.a\
65  /$objtype/lib/libsec.a\
66  /$objtype/lib/libmp.a\
67  /$objtype/lib/libc.a\
68 
69 9:V: $p$CONF s$p$CONF
70 
71 $p$CONF:DQ: $CONF.c $OBJ $LIB mkfile
72  $CC $CFLAGS '-DKERNDATE='`{date -n} $CONF.c
73  echo '# linking raw kernel' # H6: no headers, data segment aligned
74  $LD -l -o $target -H6 -R4096 -T$loadaddr $OBJ $CONF.$O $LIB
75 
76 s$p$CONF:DQ: $CONF.$O $OBJ $LIB
77  echo '# linking kernel with symbols'
78  $LD -l -o $target -R4096 -T$loadaddr $OBJ $CONF.$O $LIB
79  size $target
80 
81 $p$CONF.gz:D: $p$CONF
82  gzip -9 <$p$CONF >$target
83 
84 $OBJ: $HFILES
85 
86 install:V: /$objtype/$p$CONF
87 
88 /$objtype/$p$CONF:D: $p$CONF s$p$CONF
89  cp -x $p$CONF s$p$CONF /$objtype/
90 
91 
92 REPCC=`{../port/mkfilelist ../bcm}
93 ^($REPCC)\.$O:R: '../bcm/\1.c'
94  $CC $CFLAGS -I. -. ../bcm/$stem1.c
95 
96 <../boot/bootmkfile
97 <../port/portmkfile
98 <|../port/mkbootrules $CONF
99 
100 arch.$O clock.$O fpiarm.$O main.$O mmu.$O screen.$O syscall.$O trap.$O: \
101  /$objtype/include/ureg.h
102 
103 l.$O cache.v8.$O mmu.$O: mem.h
104 l.$O cache.v8.$O archbcm3.$O clock.$O fpu.$O trap.$O mmu.$O: sysreg.h
105 main.$O: reboot.h
106 
107 devmouse.$O mouse.$O screen.$O: screen.h
108 usbdwc.$O: dwcotg.h ../port/usb.h
109 
110 io.h:D: ../bcm/io.h
111  echo '#include "../bcm/io.h"' > io.h
112 screen.h:D: ../bcm/screen.h
113  echo '#include "../bcm/screen.h"' > screen.h
114 dwcotg.h:D: ../bcm/dwcotg.h
115  echo '#include "../bcm/dwcotg.h"' > dwcotg.h
116 
117 init.h:D: ../port/initcode.c init9.s
118  $CC ../port/initcode.c
119  $AS init9.s
120  $LD -l -R1 -s -o init.out init9.$O initcode.$O /$objtype/lib/libc.a
121  {echo 'uchar initcode[]={'
122  xd -1x <init.out |
123  sed -e 's/^[0-9a-f]+ //' -e 's/ ([0-9a-f][0-9a-f])/0x\1,/g'
124  echo '};'} > init.h
125 
126 reboot.h:D: rebootcode.s cache.v8.$O mem.h sysreg.h
127  $AS rebootcode.s
128  # -T arg is REBOOTADDR
129  $LD -l -o reboot.out -H6 -R1 -T0x1c00 rebootcode.$O cache.v8.$O
130  {echo 'uchar rebootcode[]={'
131  xd -1x reboot.out |
132  sed -e 's/^[0-9a-f]+ //' -e 's/ ([0-9a-f][0-9a-f])/0x\1,/g'
133  echo '};'} > reboot.h
134 
135 errstr.h:D: ../port/mkerrstr ../port/error.h
136  rc ../port/mkerrstr > errstr.h
137 
138 $CONF.clean:
139  rm -rf $p$CONF s$p$CONF errstr.h reboot.h io.h screen.h dwcotg.h $CONF.c boot$CONF.c