Port-arm archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

aarch64 support added



Hi! all,

I have committed about adding initial support for aarch64.

booting log on RaspberryPI3:

	boot NetBSD/evbarm (aarch64)
	Drop to EL1...OK
	Creating VA=PA tables
	Creating KSEG tables
	Creating KVA=PA tables
	Creating devmap tables
	MMU Enable...OK
	VSTART          = ffffffc000001ff4
	FDT<3ab46000> devmap cpufunc bootstrap consinit ok
	uboot: args 0x3ab46000, 0, 0, 0
	
	NetBSD/evbarm (fdt) booting ...
	FDT /memory [0] @ 0x0 size 0x3b000000
	MEM: add 0-3b000000
	MEM: res 0-1000
	MEM: res 3ab46000-3ab4a000
	Usable memory:
	  1000 - 3ab45fff
	  3ab4a000 - 3affffff
	initarm: kernel phys start 1000000 end 17bd000
	MEM: res 1000000-17bd000
	bootargs: root=axe0
	  1000 - ffffff
	  17bd000 - 3ab45fff
	  3ab4a000 - 3affffff
	------------------------------------------
	kern_vtopdiff         = 0xffffffbfff000000
	physical_start        = 0x0000000000001000
	kernel_start_phys     = 0x0000000001000000
	kernel_end_phys       = 0x00000000017bd000
	physical_end          = 0x000000003ab45000
	VM_MIN_KERNEL_ADDRESS = 0xffffffc000000000
	kernel_start_l2       = 0xffffffc000000000
	kernel_start          = 0xffffffc000000000
	kernel_end            = 0xffffffc0007bd000
	kernel_end_l2         = 0xffffffc000800000
	(kernel va area)
	(devmap va area)
	VM_MAX_KERNEL_ADDRESS = 0xffffffffffe00000
	------------------------------------------
	Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
	    2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
	    2018 The NetBSD Foundation, Inc.  All rights reserved.
	Copyright (c) 1982, 1986, 1989, 1991, 1993
	    The Regents of the University of California.  All rights reserved.
	
	NetBSD 8.99.14 (RPI64) #11: Fri Mar 30 12:34:19 JST 2018
	        ryo@moveq:/usr/home/ryo/tmp/netbsd-src-ryo-wip/sys/arch/evbarm/compile/RPI64
	total memory = 936 MB
	avail memory = 877 MB
	armfdt0 (root)
	fdt0 at armfdt0: Raspberry Pi 3 Model B
	fdt1 at fdt0
	fdt2 at fdt0
	fdt3 at fdt0
	fclock0 at fdt2: 19200000 Hz fixed clock
	fclock1 at fdt2: 480000000 Hz fixed clock
	cpus0 at fdt0
	cpu0 at cpus0: Cortex-A53 r0p4 (Cortex V8-A core)
	cpu0: CPU Affinity 0-0-0-0
	cpu0: IC enabled, DC enabled, EL0/EL1 stack Alignment check enabled
	cpu0: Cache Writeback Granule 16B, Exclusives Reservation Granule 16B
	cpu0: Dcache line 64, Icache line 64
	cpu0: L1 32KB/64B 2-way read-allocate VIPT Instruction cache
	cpu0: L1 32KB/64B 4-way write-back read-allocate write-allocate PIPT Data cache
	cpu0: L2 512KB/64B 16-way write-back read-allocate write-allocate PIPT Unified cache
	cpu0: revID=0x80, PMCv3, 4k table, 64k table, 16bit ASID
	cpu0: auxID=0x10000, FP, CRC32, NEON, rounding, NaN propagation, denormals, 32x64bitRegs, Fused Multiply-Add
	cpu1 at cpus0: disabled (uniprocessor kernel)
	cpu2 at cpus0: disabled (uniprocessor kernel)
	cpu3 at cpus0: disabled (uniprocessor kernel)
	bcmicu0 at fdt1
	bcmicu1 at fdt1
	bcmcprman0 at fdt1: BCM283x Clock Controller
	gtmr0 at fdt0: Generic Timer
	gtmr0: interrupting on local_intc irq 3
	armgtmr0 at gtmr0: ARMv7 Generic 64-bit Timer (19200 kHz)
	bcmaux0 at fdt1
	/soc/thermal@7e212000 at fdt1 not configured
	/soc/dsi@7e209000 at fdt1 not configured
	bcmgpio0 at fdt1: GPIO controller
	gpio0 at bcmgpio0: 32 pins
	gpio1 at bcmgpio0: 22 pins
	bcmdmac0 at fdt1: DMA0 DMA2 DMA4 DMA5 DMA8 DMA9 DMA10
	/soc/power at fdt1 not configured
	bsciic0 at fdt1: Broadcom Serial Controller
	iic0 at bsciic0: I2C bus
	/phy at fdt0 not configured
	bcmmbox0 at fdt1: VC mailbox
	bcmmbox0: interrupting on icu irq 193
	vcmbox0 at bcmmbox0
	/soc/firmware at fdt1 not configured
	/framebuffer@3daf0000 at fdt0 not configured
	gpioleds0 at fdt0: ACT
	/soc/timer@7e003000 at fdt1 not configured
	watchdog0 at fdt1: Power management, Reset and Watchdog controller
	bcmrng0 at fdt1: RNG
	plcom0 at fdt1
	plcom0: txfifo disabled
	sdhost0 at fdt1: SD HOST controller
	sdhost0: interrupting on icu irq 184
	bsciic1 at fdt1: Broadcom Serial Controller
	iic1 at bsciic1: I2C bus
	/soc/pixelvalve@7e206000 at fdt1 not configured
	/soc/pixelvalve@7e207000 at fdt1 not configured
	com0 at fdt1: BCM AUX UART, working fifo
	com0: console
	com0: interrupting on icu irq 157
	/soc/pwm@7e20c000 at fdt1 not configured
	sdhc0 at fdt1: SDHC controller
	sdhc0: interrupting on icu irq 190
	/soc/hvs@7e400000 at fdt1 not configured
	bsciic2 at fdt1: Broadcom Serial Controller
	iic2 at bsciic2: I2C bus
	/soc/vec@7e806000 at fdt1 not configured
	/soc/pixelvalve@7e807000 at fdt1 not configured
	/soc/hdmi@7e902000 at fdt1 not configured
	dwctwo0 at fdt1: USB controller
	dwctwo0: interrupting on icu irq 137
	/soc/v3d@7ec00000 at fdt1 not configured
	/soc/gpu at fdt1 not configured
	genfb0 at fdt1rpi_fb_init: addr = 0xfd876000 size = 3686400
	rpi_fb_init: depth = 32
	rpi_fb_init: pitch = 5120
	rpi_fb_init: width = 1280 height = 720
	rpi_fb_init: vwidth = 1280 vheight = 720
	
	wsdisplay0 at genfb0 kbdmux 1
	/soc/vchiq at fdt1 not configured
	sdmmc0 at sdhost0
	sdhc0: SDHC 3.0, rev 153, platform DMA, 250000 kHz, HS 3.3V, re-tuning mode 1, 1024 byte blocks
	sdmmc1 at sdhc0 slot 0
	usb0 at dwctwo0: USB revision 2.0
	sdhc0: cmd timeout error
	ld0 at sdmmc0: <0x03:0x5344:SU02G:0x80:0x10f597b8:0x076>
	uhub0 at usb0: vendor 0000 (0000) DWC2 root hub (0000), class 9/0, rev 2.00/1.00, addr 1
	ld0: 1938 MB, 984 cyl, 64 head, 63 sec, 512 bytes/sect x 3970048 sectors
	ld0: 4-bit width, 25.000 MHz
	(manufacturer 0x2d0, product 0xa9a6) at sdmmc1 function 1 not configured
	(manufacturer 0x2d0, product 0xa9a6) at sdmmc1 function 2 not configured
	uhub1 at uhub0 port 1: vendor 0424 (0x424) product 9514 (0x9514), class 9/0, rev 2.00/2.00, addr 2
	uhub1: multiple transaction translators
	usmsc0 at uhub1 port 1
	usmsc0: vendor 0424 (0x424) product ec00 (0xec00), rev 2.00/2.00, addr 3
	usmsc0: Ethernet address b8:27:eb:da:55:5e
	ukphy0 at usmsc0 phy 1: OUI 0x00800f, model 0x000c, rev. 3
	ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
	axe0 at uhub1 port 3
	axe0: ASIX Elec. Corp. (0xb95) AX887 (0x7720), rev 2.00/0.01, addr 4
	axe0: Ethernet address 00:90:cc:e5:2b:39
	ukphy1 at axe0 phy 16: OUI 0x007063, model 0x0006, rev. 1
	ukphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
	uhub0: illegal enable change, port 1
	WARNING: 1 error while detecting hardware; check system log.
	boot device: ld0
	root on axe0
	nfs_boot: trying static
	nfs_boot: client_addr=172.17.4.63
	nfs_boot: gateway=172.17.4.40
	nfs_boot: netmask=255.255.0.0
	nfs_boot: server=172.17.4.40
	nfs_boot: root=172.17.4.40:/usr/home/ryo/tmp/netbsd-src-ryo-wip/work.evbarm64-el/tree
	root on 172.17.4.40:/usr/home/ryo/tmp/netbsd-src-ryo-wip/work.evbarm64-el/tree
	root file system type: nfs
	kern.module.path=/stand/evbarm/8.99.14/modules
	WARNING: no TOD clock present
	WARNING: using filesystem time
	WARNING: CHECK AND RESET THE DATE!
	Fri Mar 30 12:35:14 JST 2018
	Not checking /: fs_passno = 0 in /etc/fstab
	Starting file system checks:
	random_seed: /var/db/entropy-file: Not present
	Setting tty flags.
	Setting sysctl variables:
	ddb.onpanic: 1 -> 0
	machdep.cpu.frequency.target: 600 -> 1200
	Starting network.
	Hostname: rpi3
	IPv6 mode: host
	Configuring network interfaces:.
	Adding interface aliases:.
	add net default: gateway 172.17.4.1
	Waiting for DAD to complete for statically configured addresses...
	Building databases: dev, utmp, utmpx.
	Starting syslogd.
	Mounting all file systems...
	Clearing temporary files.
	Checking quotas: done.
	Setting securelevel: kern.securelevel: 0 -> 1
	/etc/rc: WARNING: No swap space configured!
	/etc/rc.d/swap2 exited with code 1
	Starting virecover.
	Checking for core dump...
	savecore: (null): _dumplo not in namelist
	Starting local daemons:.
	Updating motd.
	Starting sshd.
	Starting inetd.
	Starting cron.
	The following components reported failures:
	    /etc/rc.d/swap2
	See /var/run/rc.log for more information.
	Fri Mar 30 12:35:31 JST 2018
	
	NetBSD/evbarm (rpi3) (console)
	
	login: root
	dLast login: Fri Mar 30 12:30:24 2018 on console
	Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
	    2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
	    2018 The NetBSD Foundation, Inc.  All rights reserved.
	Copyright (c) 1982, 1986, 1989, 1991, 1993
	    The Regents of the University of California.  All rights reserved.
	
	NetBSD 8.99.14 (RPI64) #11: Fri Mar 30 12:34:19 JST 2018
	
	Welcome to NetBSD!
	
	This system is running a development snapshot of the NetBSD operating system,
	also known as NetBSD-current.  It is very possible that it has serious bugs,
	regressions, broken features or other problems.  Please bear this in mind
	and use the system with care.
	
	You are encouraged to test this version as thoroughly as possible.  Should you
	encounter any problem, please report it back to the development team using the
	send-pr(1) utility (requires a working MTA).  If yours is not properly set up,
	use the web interface at: http://www.NetBSD.org/support/send-pr.html
	
	Thank you for helping us test and improve NetBSD.
	
	We recommend that you create a non-root account and use su(1) for root access.
	rpi3# uname -ap
	NetBSD rpi3 8.99.14 NetBSD 8.99.14 (RPI64) #11: Fri Mar 30 12:34:19 JST 2018  ryo@moveq:/usr/home/ryo/tmp/netbsd-src-ryo-wip/sys/arch/evbarm/compile/RPI64 evbarm aarch64
	rpi3#

Now, multiuser mode works stably on fdt based boards (RPI3,SUNXI,TEGRA).
But there are still some problems, more time is required for release.
also SMP is not yet. See sys/arch/aarch64/aarch64/TODO for more detail.

Especially the problems around TLS of rtld, and C++ stack unwindings are
too difficult for me to solve, I give up and need someone's help \(^o^)/

Since C++ doesn't work, ATF also doesn't work. If the ATF works, it will
clarify more issues.

sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. One
evbarm/conf/GENERIC64 kernel binary supports all fdt (bcm2837,sunxi,tegra)
based boards. While on 32bit, sys/arch/evbarm/conf/GENERIC will support all
fdt based boards...but doesn't work yet. (WIP)


My deepest appreciation goes to Tohru Nishimura (nisimura@) whose writes vector
handlers, context switchings, and so on. and his comments and suggestions were
innumerably valuable. I would also like to thank Nick Hudson (skrll@) and
Jared McNeill (jmcneill@) whose added support FDT and integrated into evbarm.
Finally, I would like to thank Matt Thomas (matt@) whose commited aarch64
toolchains and preliminary support for aarch64.


Thanks,
-- 
ryo shimizu


Home | Main Index | Thread Index | Old Index