changelog shortlog tags branches changeset files file revisions raw help

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