- Timestamp:
- 2019-09-23T12:49:29Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 9be2358
- Parents:
- 9259d20 (diff), 1a4ec93f (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)links above to see all the changes relative to each parent. - git-author:
- Jiri Svoboda <jiri@…> (2019-09-22 12:49:07)
- git-committer:
- Jiri Svoboda <jiri@…> (2019-09-23 12:49:29)
- Location:
- boot/arch
- Files:
-
- 16 added
- 5 deleted
- 8 edited
- 6 moved
-
abs32le/meson.build (moved) (moved from boot/Makefile.empty ) (1 diff)
-
amd64/meson.build (added)
-
arm32/Makefile.inc (deleted)
-
arm32/meson.build (moved) (moved from boot/arch/sparc64/Makefile.inc ) (1 diff)
-
arm32/src/asm.S (modified) (2 diffs)
-
arm64/_link.ld.in (added)
-
arm64/include/arch/arch.h (added)
-
arm64/include/arch/asm.h (added)
-
arm64/include/arch/barrier.h (added)
-
arm64/include/arch/boot.h (added)
-
arm64/include/arch/main.h (added)
-
arm64/include/arch/regutils.h (added)
-
arm64/include/arch/relocate.h (moved) (moved from uspace/lib/draw/gfx/cursor-11x18.h ) (2 diffs)
-
arm64/include/arch/types.h (added)
-
arm64/meson.build (added)
-
arm64/src/asm.S (added)
-
arm64/src/main.c (added)
-
arm64/src/relocate.c (added)
-
ia32/Makefile.inc (deleted)
-
ia32/meson.build (added)
-
ia64/Makefile.inc (deleted)
-
ia64/_link.ld.in (modified) (1 diff)
-
ia64/meson.build (moved) (moved from boot/arch/amd64/Makefile.inc ) (1 diff)
-
mips32/include/arch/main.h (modified) (1 diff)
-
mips32/include/arch/types.h (modified) (2 diffs)
-
mips32/meson.build (added)
-
mips32/src/asm.S (modified) (6 diffs)
-
mips32/src/boot.S (deleted)
-
mips32/src/main.c (modified) (2 diffs)
-
ppc32/Makefile.inc (deleted)
-
ppc32/_link.ld.in (modified) (1 diff)
-
ppc32/meson.build (moved) (moved from boot/Makefile.yaboot ) (1 diff)
-
riscv64/meson.build (added)
-
sparc64/_link.ld.in (modified) (1 diff)
-
sparc64/meson.build (moved) (moved from uspace/lib/c/arch/sparc64/Makefile.common ) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
boot/arch/abs32le/meson.build
r9259d20 r3e828ea 27 27 # 28 28 29 .PHONY: all clean 30 31 include Makefile.common 32 33 all: 34 35 clean: 29 BUILD = false 30 POSTBUILD = 'none' 31 POST_OUTPUT = '' -
boot/arch/arm32/meson.build
r9259d20 r3e828ea 27 27 # 28 28 29 BOOT_OUTPUT = image.boot 30 POST_OUTPUT = $(ROOT_PATH)/image.iso 31 POSTBUILD = Makefile.silo 29 BUILD = true 32 30 33 BFD_NAME = elf64-sparc 34 BFD_OUTPUT = $(BFD_NAME) 35 BFD_ARCH = sparc 31 boot_image_format = 'elf' 36 32 37 BITS = 64 38 ENDIANESS = BE 39 EXTRA_CFLAGS = -mcpu=ultrasparc -m64 -mno-fpu -mcmodel=medlow 40 41 ifeq ($(PROCESSOR), sun4v) 42 RD_DRVS_ESSENTIAL += \ 43 platform/sun4v \ 44 char/sun4v-con 45 else 46 RD_DRVS_ESSENTIAL += \ 47 platform/sun4u \ 48 bus/pci/pciintel \ 49 bus/isa \ 50 intctl/obio \ 51 char/ns8250 52 53 RD_DRV_CFG += \ 54 bus/isa 33 if MACHINE == 'gta02' 34 LADDR = '0x30008000' 35 SADDR = '0x30008000' 36 POSTBUILD = 'uboot' 37 POST_OUTPUT = 'uImage.bin' 55 38 endif 56 39 57 SOURCES = \ 58 arch/$(BARCH)/src/asm.S \ 59 arch/$(BARCH)/src/main.c \ 60 arch/$(BARCH)/src/ofw.c \ 61 $(COMPS).o \ 62 genarch/src/ofw.c \ 63 genarch/src/ofw_tree.c \ 64 generic/src/balloc.c \ 65 generic/src/memstr.c \ 66 generic/src/printf_core.c \ 67 generic/src/vprintf.c \ 68 generic/src/printf.c \ 69 generic/src/str.c \ 70 generic/src/version.c \ 71 generic/src/inflate.c \ 72 generic/src/gzip.c \ 73 generic/src/tar.c \ 74 generic/src/kernel.c \ 75 generic/src/payload.c 40 if MACHINE == 'beagleboardxm' or MACHINE == 'beaglebone' 41 LADDR = '0x80000000' 42 SADDR = '0x80000000' 43 POSTBUILD = 'uboot' 44 POST_OUTPUT = 'uImage.bin' 45 endif 46 47 if MACHINE == 'raspberrypi' 48 LADDR = '0x00008000' 49 SADDR = '0x00008000' 50 POSTBUILD = 'uboot' 51 POST_OUTPUT = 'uImage.bin' 52 endif 53 54 if MACHINE == 'integratorcp' 55 POSTBUILD = 'raw' 56 POST_OUTPUT = 'image.boot' 57 endif 58 59 60 61 boot_src = files( 62 'src/asm.S', 63 'src/eabi.S', 64 'src/main.c', 65 'src/mm.c', 66 'src/putchar.c', 67 '../../genarch/src/division.c', 68 '../../generic/src/memstr.c', 69 '../../generic/src/printf_core.c', 70 '../../generic/src/vprintf.c', 71 '../../generic/src/printf.c', 72 '../../generic/src/str.c', 73 '../../generic/src/version.c', 74 '../../generic/src/inflate.c', 75 '../../generic/src/gzip.c', 76 '../../generic/src/tar.c', 77 '../../generic/src/kernel.c', 78 '../../generic/src/payload.c', 79 ) -
boot/arch/arm32/src/asm.S
r9259d20 r3e828ea 32 32 .section BOOTSTRAP 33 33 34 #define CP15_C1_U 22 35 #define CP15_C1_IC 12 36 #define CP15_C1_BP 11 37 #define CP15_C1_DC 2 38 34 39 SYMBOL(start) 40 41 #ifdef PROCESSOR_ARCH_armv6 42 /* 43 * Enable unaligned doubleword memory accesses (STRD/LDRD) if the 44 * processor supports it. Note that that boils down to ARMv6 processors 45 * only as the older architectures require doubleword alignment and 46 * ARMv7 always assumes the U bit is 1. 47 */ 48 mrc p15, 0, r0, c1, c0, 0 49 orr r0, r0, #(1 << CP15_C1_U) 50 mcr p15, 0, r0, c1, c0, 0 51 #endif 52 35 53 ldr sp, =boot_stack 36 54 b bootstrap … … 59 77 # r0 is kernel entry point 60 78 # r1 is pointer to the bootinfo structure 61 62 #define CP15_C1_IC 1263 #define CP15_C1_BP 1164 #define CP15_C1_DC 265 66 79 67 80 #ifndef PROCESSOR_ARCH_armv7_a -
boot/arch/arm64/include/arch/relocate.h
r9259d20 r3e828ea 1 1 /* 2 * Copyright (c) 2008 Martin Decky 3 * Copyright (c) 2012 Petr Koupy 2 * Copyright (c) 2019 Petr Pavlu 4 3 * All rights reserved. 5 4 * … … 28 27 */ 29 28 30 /** @addtogroup draw29 /** @addtogroup boot_arm64 31 30 * @{ 32 31 */ 33 32 /** @file 33 * @brief Image self-relocation support. 34 34 */ 35 35 36 #ifndef CURSOR_11X18_H_37 #define CURSOR_11X18_H_36 #ifndef BOOT_arm64_RELOCATE_H 37 #define BOOT_arm64_RELOCATE_H 38 38 39 #include <abi/elf.h> 40 #include <genarch/efi.h> 39 41 #include <stdint.h> 40 42 41 #define CURSOR_WIDTH 11 42 #define CURSOR_HEIGHT 18 43 44 extern uint8_t cursor_texture[]; 45 extern uint8_t cursor_mask[]; 43 extern efi_status_t self_relocate(uintptr_t base, const elf_dyn_t *dyn); 46 44 47 45 #endif -
boot/arch/ia64/_link.ld.in
r9259d20 r3e828ea 7 7 *(BOOTSTRAP); 8 8 *(.text); 9 *(.text.*); 9 10 *(.sdata); 10 11 *(.sdata2); -
boot/arch/ia64/meson.build
r9259d20 r3e828ea 27 27 # 28 28 29 RD_SRVS_ESSENTIAL += \ 30 audio/hound \ 31 devman 29 BUILD = true 30 POSTBUILD = 'raw' 31 boot_image_format = 'elf' 32 POST_OUTPUT = 'image.boot' 32 33 33 RD_DRVS_ESSENTIAL += \ 34 intctl/apic \ 35 intctl/i8259 \ 36 platform/pc \ 37 block/ata_bd \ 38 bus/pci/pciintel \ 39 bus/isa \ 40 audio/sb16 \ 41 char/i8042 \ 42 hid/ps2mouse \ 43 hid/xtkbd 34 boot_src = files( 35 'src/boot.S', 36 'src/asm.S', 37 'src/main.c', 38 'src/sal.c', 39 'src/sal_asm.S', 40 'src/pal.c', 41 'src/pal_asm.S', 42 'src/putchar.c', 43 '../../genarch/src/efi.c', 44 '../../genarch/src/division.c', 45 '../../generic/src/balloc.c', 46 '../../generic/src/memstr.c', 47 '../../generic/src/printf_core.c', 48 '../../generic/src/vprintf.c', 49 '../../generic/src/printf.c', 50 '../../generic/src/str.c', 51 '../../generic/src/version.c', 52 '../../generic/src/inflate.c', 53 '../../generic/src/tar.c', 54 '../../generic/src/gzip.c', 55 '../../generic/src/kernel.c', 56 '../../generic/src/payload.c', 57 ) 44 58 45 RD_DRVS_NON_ESSENTIAL += \ 46 audio/hdaudio \ 47 char/ns8250 \ 48 char/pc-lpt \ 49 time/cmos-rtc \ 50 bus/usb/ehci\ 51 bus/usb/ohci \ 52 bus/usb/uhci \ 53 bus/usb/usbdiag \ 54 bus/usb/usbflbk \ 55 bus/usb/usbhub \ 56 bus/usb/usbmid \ 57 bus/usb/vhc \ 58 bus/usb/xhci \ 59 block/usbmast \ 60 hid/usbhid 61 62 RD_DRV_CFG += \ 63 bus/isa 64 65 RD_APPS_ESSENTIAL += \ 66 edit \ 67 mixerctl \ 68 wavplay 69 70 RD_DATA_NON_ESSENTIAL += \ 71 $(USPACE_PATH)/app/wavplay/demo.wav 72 73 POST_OUTPUT = $(ROOT_PATH)/image.iso 74 BUILD = Makefile.empty 75 POSTBUILD = Makefile.grub 59 if MACHINE == 'ski' 60 boot_src += files('src/ski.c') 61 endif -
boot/arch/mips32/include/arch/main.h
r9259d20 r3e828ea 30 30 #define BOOT_mips32_MAIN_H_ 31 31 32 extern void bootstrap( void);32 extern void bootstrap(int, char **); 33 33 34 34 #endif -
boot/arch/mips32/include/arch/types.h
r9259d20 r3e828ea 35 35 #define CPUMAP_MAX_RECORDS 32 36 36 #define BOOTINFO_TASK_NAME_BUFLEN 32 37 #define BOOTINFO_BOOTARGS_BUFLEN 256 37 38 38 39 typedef struct { … … 56 57 uint32_t cpumap; 57 58 taskmap_t taskmap; 59 char bootargs[BOOTINFO_BOOTARGS_BUFLEN]; 58 60 } bootinfo_t; 59 61 -
boot/arch/mips32/src/asm.S
r9259d20 r3e828ea 36 36 .section BOOTSTRAP 37 37 38 /* 39 * Registers on entry: 40 * 41 * a0: kernel argument count (kargc) 42 * a1: kernel argument vector (kargv) of kargc elements 43 * a2: unused here (kenvp on Malta) 44 * a3: RAM size on Malta 45 * 46 * This is the case on Malta. 47 * msim clears these registers, so it is de facto correct as well. 48 */ 38 49 SYMBOL(start) 39 50 /* … … 43 54 * - Disable 64-bit user addressing mode 44 55 */ 45 mfc0 $ a0, $status46 la $ a1, 0xffffff1f47 and $ a0, $a1, $a048 mtc0 $ a0, $status56 mfc0 $t0, $status 57 la $t1, 0xffffff1f 58 and $t0, $t1, $t0 59 mtc0 $t0, $status 49 60 50 61 #if defined(MACHINE_lmalta) || defined(MACHINE_bmalta) … … 52 63 * Remember the size of the SDRAM in bootinfo. 53 64 */ 54 la $ a0, PA2KA(BOOTINFO_OFFSET)55 sw $a3, 0($ a0)65 la $t0, PA2KA(BOOTINFO_OFFSET) 66 sw $a3, 0($t0) 56 67 #endif 57 68 … … 61 72 * but it not an issue). 62 73 */ 63 la $ a0, PA2KA(CPUMAP_OFFSET)74 la $t0, PA2KA(CPUMAP_OFFSET) 64 75 65 sw $zero, 0($ a0)66 sw $zero, 4($ a0)67 sw $zero, 8($ a0)68 sw $zero, 12($ a0)76 sw $zero, 0($t0) 77 sw $zero, 4($t0) 78 sw $zero, 8($t0) 79 sw $zero, 12($t0) 69 80 70 sw $zero, 16($ a0)71 sw $zero, 20($ a0)72 sw $zero, 24($ a0)73 sw $zero, 28($ a0)81 sw $zero, 16($t0) 82 sw $zero, 20($t0) 83 sw $zero, 24($t0) 84 sw $zero, 28($t0) 74 85 75 sw $zero, 32($ a0)76 sw $zero, 36($ a0)77 sw $zero, 40($ a0)78 sw $zero, 44($ a0)86 sw $zero, 32($t0) 87 sw $zero, 36($t0) 88 sw $zero, 40($t0) 89 sw $zero, 44($t0) 79 90 80 sw $zero, 48($ a0)81 sw $zero, 52($ a0)82 sw $zero, 56($ a0)83 sw $zero, 60($ a0)91 sw $zero, 48($t0) 92 sw $zero, 52($t0) 93 sw $zero, 56($t0) 94 sw $zero, 60($t0) 84 95 85 sw $zero, 64($ a0)86 sw $zero, 68($ a0)87 sw $zero, 72($ a0)88 sw $zero, 76($ a0)96 sw $zero, 64($t0) 97 sw $zero, 68($t0) 98 sw $zero, 72($t0) 99 sw $zero, 76($t0) 89 100 90 sw $zero, 80($ a0)91 sw $zero, 84($ a0)92 sw $zero, 88($ a0)93 sw $zero, 92($ a0)101 sw $zero, 80($t0) 102 sw $zero, 84($t0) 103 sw $zero, 88($t0) 104 sw $zero, 92($t0) 94 105 95 sw $zero, 96($ a0)96 sw $zero, 100($ a0)97 sw $zero, 104($ a0)98 sw $zero, 108($ a0)106 sw $zero, 96($t0) 107 sw $zero, 100($t0) 108 sw $zero, 104($t0) 109 sw $zero, 108($t0) 99 110 100 sw $zero, 112($ a0)101 sw $zero, 116($ a0)102 sw $zero, 120($ a0)103 sw $zero, 124($ a0)111 sw $zero, 112($t0) 112 sw $zero, 116($t0) 113 sw $zero, 120($t0) 114 sw $zero, 124($t0) 104 115 105 lui $ a1, 1116 lui $t1, 1 106 117 107 118 #ifdef MACHINE_msim … … 119 130 120 131 /* Record CPU presence */ 121 sll $ a2, $k1, 2122 addu $ a2, $a2, $a0123 sw $ a1, ($a2)132 sll $t2, $k1, 2 133 addu $t2, $t2, $t0 134 sw $t1, ($t2) 124 135 125 136 loop: … … 131 142 bsp: 132 143 /* Record CPU presence */ 133 sw $ a1, ($a0)144 sw $t1, ($t0) 134 145 135 146 /* Setup initial stack */ 136 147 la $sp, PA2KA(STACK_OFFSET) 137 148 149 /* a0=kargc, a1=kargv */ 138 150 j bootstrap 139 151 nop -
boot/arch/mips32/src/main.c
r9259d20 r3e828ea 45 45 static uint32_t *cpumap = (uint32_t *) PA2KA(CPUMAP_OFFSET); 46 46 47 void bootstrap( void)47 void bootstrap(int kargc, char **kargv) 48 48 { 49 49 version_print(); … … 79 79 } 80 80 81 str_cpy(bootinfo->bootargs, sizeof(bootinfo->bootargs), 82 (kargc > 1) ? kargv[1] : ""); 83 81 84 uintptr_t entry = check_kernel(kernel_start); 82 85 -
boot/arch/ppc32/_link.ld.in
r9259d20 r3e828ea 7 7 *(BOOTSTRAP); 8 8 *(.text); 9 *(.text.*); 9 10 } 10 11 .data : { -
boot/arch/ppc32/meson.build
r9259d20 r3e828ea 27 27 # 28 28 29 .PHONY: all build_dist clean 29 BUILD = true 30 POSTBUILD = 'yaboot' 31 POST_OUTPUT = 'image.iso' 32 boot_image_format = 'elf' 30 33 31 include Makefile.common 34 boot_src = files( 35 'src/asm.S', 36 'src/main.c', 37 'src/ofw.c', 32 38 33 OFBOOT = yaboot/ofboot.b 34 BOOTINFO = yaboot/bootinfo.txt 35 YABOOT = yaboot/yaboot 36 YABOOT_CONF = yaboot/yaboot.conf 37 MAPS = yaboot/maps 38 39 all: $(POST_OUTPUT) 40 41 $(POST_OUTPUT): build_dist 42 $(GENISOIMAGE) -hfs -part -map $(MAPS) -no-desktop -hfs-volid "HelenOS" -hfs-bless $(DISTROOT)/boot -r -o $@ $(DISTROOT)/ 43 44 build_dist: clean 45 mkdir -p $(DISTROOT)/boot 46 mkdir -p $(DISTROOT)/ppc 47 cp $(BOOT_OUTPUT) $(DISTROOT)/boot/ 48 cp $(OFBOOT) $(DISTROOT)/boot/ 49 cp $(BOOTINFO) $(DISTROOT)/ppc/ 50 cp $(YABOOT) $(DISTROOT)/boot/ 51 cp $(YABOOT_CONF) $(DISTROOT)/boot/ 52 53 clean: 54 rm -fr $(DISTROOT) 39 '../../genarch/src/ofw.c', 40 '../../genarch/src/ofw_tree.c', 41 '../../genarch/src/division.c', 42 '../../genarch/src/multiplication.c', 43 '../../generic/src/balloc.c', 44 '../../generic/src/memstr.c', 45 '../../generic/src/printf_core.c', 46 '../../generic/src/vprintf.c', 47 '../../generic/src/printf.c', 48 '../../generic/src/str.c', 49 '../../generic/src/version.c', 50 '../../generic/src/inflate.c', 51 '../../generic/src/gzip.c', 52 '../../generic/src/tar.c', 53 '../../generic/src/kernel.c', 54 '../../generic/src/payload.c', 55 ) -
boot/arch/sparc64/_link.ld.in
r9259d20 r3e828ea 6 6 loader_start = .; 7 7 *(BOOTSTRAP); 8 *(.text );8 *(.text.*); 9 9 10 10 *(.data); /* initialized data */ -
boot/arch/sparc64/meson.build
r9259d20 r3e828ea 27 27 # 28 28 29 ifeq ($(PROCESSOR),sun4v) 30 COMMON_CFLAGS += -mcpu=niagara -mno-vis 31 else 32 COMMON_CFLAGS += -mcpu=ultrasparc 33 endif 29 BUILD = true 30 POSTBUILD = 'silo' 31 POST_OUTPUT = 'image.iso' 32 boot_image_format = 'elf' 34 33 35 COMMON_CFLAGS += -m64 -mcmodel=medlow -mhard-float -m$(QUADFLOAT)-quad-float 34 boot_src = files( 35 'src/asm.S', 36 'src/main.c', 37 'src/ofw.c', 36 38 37 LDFLAGS += -Wl,-no-check-sections,--gc-sections 38 39 ENDIANESS = BE 40 41 BFD_NAME = elf64-sparc 42 BFD_ARCH = sparc 43 44 ifeq ($(PROCESSOR),us) 45 DEFS += -DSUN4U 46 endif 47 48 ifeq ($(PROCESSOR),us3) 49 DEFS += -DSUN4U 50 endif 51 52 ifeq ($(PROCESSOR),sun4v) 53 DEFS += -DSUN4V 54 COMMON_CFLAGS += -Wl,-z,max-page-size=0x2000 55 else 56 COMMON_CFLAGS += -Wl,-z,max-page-size=0x4000 57 endif 39 '../../genarch/src/ofw.c', 40 '../../genarch/src/ofw_tree.c', 41 '../../generic/src/balloc.c', 42 '../../generic/src/memstr.c', 43 '../../generic/src/printf_core.c', 44 '../../generic/src/vprintf.c', 45 '../../generic/src/printf.c', 46 '../../generic/src/str.c', 47 '../../generic/src/version.c', 48 '../../generic/src/inflate.c', 49 '../../generic/src/gzip.c', 50 '../../generic/src/tar.c', 51 '../../generic/src/kernel.c', 52 '../../generic/src/payload.c', 53 )
Note:
See TracChangeset
for help on using the changeset viewer.
