Merge branch 'qemu-rasp' into 'master'
Fix make qemu rasperry pi 3b emulation See merge request redox-os/redox!1528
This commit is contained in:
		
						commit
						01737d8537
					
				
					 2 changed files with 45 additions and 30 deletions
				
			
		| 
						 | 
				
			
			@ -10,7 +10,7 @@ PODMAN_HOME?=$(ROOT)/build/podman
 | 
			
		|||
## Podman command with its many arguments
 | 
			
		||||
PODMAN_VOLUMES?=--volume $(ROOT):$(CONTAINER_WORKDIR):Z --volume $(PODMAN_HOME):/home:Z
 | 
			
		||||
PODMAN_ENV?=--env PATH=/home/poduser/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin --env PODMAN_BUILD=0
 | 
			
		||||
PODMAN_CONFIG?=--env ARCH=$(ARCH) --env CONFIG_NAME=$(CONFIG_NAME) --env FILESYSTEM_CONFIG=$(FILESYSTEM_CONFIG)
 | 
			
		||||
PODMAN_CONFIG?=--env ARCH=$(ARCH) --env BOARD=$(BOARD) --env CONFIG_NAME=$(CONFIG_NAME) --env FILESYSTEM_CONFIG=$(FILESYSTEM_CONFIG)
 | 
			
		||||
PODMAN_OPTIONS?=--rm --workdir $(CONTAINER_WORKDIR) --userns keep-id --user `id -u` --interactive --tty --env TERM=$(TERM)
 | 
			
		||||
PODMAN_RUN?=podman run $(PODMAN_OPTIONS) $(PODMAN_VOLUMES) $(PODMAN_ENV) $(PODMAN_CONFIG) $(IMAGE_TAG)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										51
									
								
								mk/qemu.mk
									
										
									
									
									
								
							
							
						
						
									
										51
									
								
								mk/qemu.mk
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -32,16 +32,25 @@ else ifeq ($(ARCH),aarch64)
 | 
			
		|||
	# Default to UEFI as U-Boot doesn't set up a framebuffer for us and we don't yet support
 | 
			
		||||
	# setting up a framebuffer ourself.
 | 
			
		||||
	uefi?=yes
 | 
			
		||||
	live=yes
 | 
			
		||||
	live?=yes
 | 
			
		||||
	QEMU_ARCH=aarch64
 | 
			
		||||
	QEMU_MACHINE?=virt
 | 
			
		||||
	QEMU_CPU=max
 | 
			
		||||
	QEMU_SMP?=1
 | 
			
		||||
	QEMU_MEM?=2048
 | 
			
		||||
	ifeq ($(BOARD),raspi3bp)
 | 
			
		||||
		FIRMWARE=$(BUILD)/raspi3bp_uboot.rom
 | 
			
		||||
		QEMU_KERNEL=$(BUILD)/raspi3bp_uboot.rom
 | 
			
		||||
		disk?=sdcard
 | 
			
		||||
	else ifeq ($(uefi),yes)
 | 
			
		||||
		QEMU_MACHINE:=raspi3b
 | 
			
		||||
		QEMU_SMP:=4
 | 
			
		||||
		QEMU_MEM:=1024
 | 
			
		||||
		net:=usb-net
 | 
			
		||||
		audio:=no
 | 
			
		||||
		ifneq ($(usb),no)
 | 
			
		||||
			QEMUFLAGS+=-usb -device usb-kbd -device usb-tablet
 | 
			
		||||
		endif
 | 
			
		||||
	else
 | 
			
		||||
		ifeq ($(uefi),yes)
 | 
			
		||||
			FIRMWARE=/usr/share/AAVMF/AAVMF_CODE.fd
 | 
			
		||||
		else
 | 
			
		||||
			FIRMWARE=$(BUILD)/qemu_uboot.rom
 | 
			
		||||
| 
						 | 
				
			
			@ -52,6 +61,7 @@ else ifeq ($(ARCH),aarch64)
 | 
			
		|||
		ifneq ($(usb),no)
 | 
			
		||||
			QEMUFLAGS+=-device qemu-xhci -device usb-kbd -device usb-tablet
 | 
			
		||||
		endif
 | 
			
		||||
	endif
 | 
			
		||||
else ifeq ($(ARCH),riscv64gc)
 | 
			
		||||
	live=no
 | 
			
		||||
	efi=yes
 | 
			
		||||
| 
						 | 
				
			
			@ -92,6 +102,10 @@ ifneq ($(FIRMWARE),)
 | 
			
		|||
	QEMUFLAGS+=-bios $(FIRMWARE)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifneq ($(QEMU_KERNEL),)
 | 
			
		||||
	QEMUFLAGS+=-kernel $(QEMU_KERNEL)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq ($(live),yes)
 | 
			
		||||
	DISK=$(BUILD)/livedisk.iso
 | 
			
		||||
else
 | 
			
		||||
| 
						 | 
				
			
			@ -123,26 +137,25 @@ endif
 | 
			
		|||
 | 
			
		||||
ifeq ($(net),no)
 | 
			
		||||
	QEMUFLAGS+=-net none
 | 
			
		||||
else ifeq ($(net),rtl8139)
 | 
			
		||||
	# RTL8139
 | 
			
		||||
	QEMUFLAGS+=-netdev user,id=net0 -device rtl8139,netdev=net0 \
 | 
			
		||||
				-object filter-dump,id=f1,netdev=net0,file=$(BUILD)/network.pcap
 | 
			
		||||
else ifeq ($(net),virtio)
 | 
			
		||||
	# virtio-net
 | 
			
		||||
	QEMUFLAGS+=-netdev user,id=net0 -device virtio-net,netdev=net0 \
 | 
			
		||||
				-object filter-dump,id=f1,netdev=net0,file=$(BUILD)/network.pcap
 | 
			
		||||
else
 | 
			
		||||
	ifeq ($(net),rtl8139) # RTL8139
 | 
			
		||||
		QEMUFLAGS+=-device rtl8139,netdev=net0
 | 
			
		||||
	else ifeq ($(net),virtio) # virtio-net
 | 
			
		||||
		QEMUFLAGS+=-device virtio-net,netdev=net0
 | 
			
		||||
	else ifeq ($(net),usb-net)
 | 
			
		||||
		QEMUFLAGS+=-device usb-net,netdev=net0
 | 
			
		||||
	else
 | 
			
		||||
		QEMUFLAGS+=-device e1000,netdev=net0,id=nic0
 | 
			
		||||
	endif
 | 
			
		||||
 | 
			
		||||
	ifneq ($(bridge),)
 | 
			
		||||
		QEMUFLAGS+=-netdev bridge,br=$(bridge),id=net0 -device e1000,netdev=net0,id=nic0
 | 
			
		||||
	else
 | 
			
		||||
	    ifeq ($(net),redir)
 | 
			
		||||
		QEMUFLAGS+=-netdev bridge,br=$(bridge),id=net0
 | 
			
		||||
	else ifeq ($(net),redir)
 | 
			
		||||
		# port 8080 and 8083 - webservers
 | 
			
		||||
		# port 64126 - our gdbserver implementation
 | 
			
		||||
			QEMUFLAGS+=-netdev user,id=net0,hostfwd=tcp::8080-:8080,hostfwd=tcp::8083-:8083,hostfwd=tcp::64126-:64126 -device e1000,netdev=net0,id=nic0
 | 
			
		||||
		QEMUFLAGS+=-netdev user,id=net0,hostfwd=tcp::8080-:8080,hostfwd=tcp::8083-:8083,hostfwd=tcp::64126-:64126
 | 
			
		||||
	else
 | 
			
		||||
			QEMUFLAGS+=-netdev user,id=net0 -device e1000,netdev=net0 \
 | 
			
		||||
						-object filter-dump,id=f1,netdev=net0,file=$(BUILD)/network.pcap
 | 
			
		||||
		endif
 | 
			
		||||
		QEMUFLAGS+=-netdev user,id=net0 -object filter-dump,id=f1,netdev=net0,file=$(BUILD)/network.pcap
 | 
			
		||||
	endif
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -221,6 +234,8 @@ endif
 | 
			
		|||
 | 
			
		||||
qemu-deps:$(FIRMWARE)
 | 
			
		||||
 | 
			
		||||
qemu-deps:$(QEMU_KERNEL)
 | 
			
		||||
 | 
			
		||||
qemu-deps: $(PFLASH0)
 | 
			
		||||
 | 
			
		||||
ifneq ($(PFLASH1),)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue