Changeset 3e828ea in mainline for boot/arch


Ignore:
Timestamp:
2019-09-23T12:49:29Z (7 years ago)
Author:
Jiri Svoboda <jiri@…>
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)
Message:

Merge changes from master, especially Meson build

Location:
boot/arch
Files:
16 added
5 deleted
8 edited
6 moved

Legend:

Unmodified
Added
Removed
  • boot/arch/abs32le/meson.build

    r9259d20 r3e828ea  
    2727#
    2828
    29 .PHONY: all clean
    30 
    31 include Makefile.common
    32 
    33 all:
    34 
    35 clean:
     29BUILD = false
     30POSTBUILD = 'none'
     31POST_OUTPUT = ''
  • boot/arch/arm32/meson.build

    r9259d20 r3e828ea  
    2727#
    2828
    29 BOOT_OUTPUT = image.boot
    30 POST_OUTPUT = $(ROOT_PATH)/image.iso
    31 POSTBUILD = Makefile.silo
     29BUILD = true
    3230
    33 BFD_NAME = elf64-sparc
    34 BFD_OUTPUT = $(BFD_NAME)
    35 BFD_ARCH = sparc
     31boot_image_format = 'elf'
    3632
    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
     33if MACHINE == 'gta02'
     34        LADDR = '0x30008000'
     35        SADDR = '0x30008000'
     36        POSTBUILD = 'uboot'
     37        POST_OUTPUT = 'uImage.bin'
    5538endif
    5639
    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
     40if MACHINE == 'beagleboardxm' or MACHINE == 'beaglebone'
     41        LADDR = '0x80000000'
     42        SADDR = '0x80000000'
     43        POSTBUILD = 'uboot'
     44        POST_OUTPUT = 'uImage.bin'
     45endif
     46
     47if MACHINE == 'raspberrypi'
     48        LADDR = '0x00008000'
     49        SADDR = '0x00008000'
     50        POSTBUILD = 'uboot'
     51        POST_OUTPUT = 'uImage.bin'
     52endif
     53
     54if MACHINE == 'integratorcp'
     55        POSTBUILD = 'raw'
     56        POST_OUTPUT = 'image.boot'
     57endif
     58
     59
     60
     61boot_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  
    3232.section BOOTSTRAP
    3333
     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
    3439SYMBOL(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
    3553        ldr sp, =boot_stack
    3654        b bootstrap
     
    5977        # r0 is kernel entry point
    6078        # r1 is pointer to the bootinfo structure
    61 
    62 #define CP15_C1_IC              12
    63 #define CP15_C1_BP              11
    64 #define CP15_C1_DC              2
    65 
    6679
    6780#ifndef PROCESSOR_ARCH_armv7_a
  • boot/arch/arm64/include/arch/relocate.h

    r9259d20 r3e828ea  
    11/*
    2  * Copyright (c) 2008 Martin Decky
    3  * Copyright (c) 2012 Petr Koupy
     2 * Copyright (c) 2019 Petr Pavlu
    43 * All rights reserved.
    54 *
     
    2827 */
    2928
    30 /** @addtogroup draw
     29/** @addtogroup boot_arm64
    3130 * @{
    3231 */
    3332/** @file
     33 * @brief Image self-relocation support.
    3434 */
    3535
    36 #ifndef CURSOR_11X18_H_
    37 #define CURSOR_11X18_H_
     36#ifndef BOOT_arm64_RELOCATE_H
     37#define BOOT_arm64_RELOCATE_H
    3838
     39#include <abi/elf.h>
     40#include <genarch/efi.h>
    3941#include <stdint.h>
    4042
    41 #define CURSOR_WIDTH   11
    42 #define CURSOR_HEIGHT  18
    43 
    44 extern uint8_t cursor_texture[];
    45 extern uint8_t cursor_mask[];
     43extern efi_status_t self_relocate(uintptr_t base, const elf_dyn_t *dyn);
    4644
    4745#endif
  • boot/arch/ia64/_link.ld.in

    r9259d20 r3e828ea  
    77                *(BOOTSTRAP);
    88                *(.text);
     9                *(.text.*);
    910                *(.sdata);
    1011                *(.sdata2);
  • boot/arch/ia64/meson.build

    r9259d20 r3e828ea  
    2727#
    2828
    29 RD_SRVS_ESSENTIAL += \
    30         audio/hound \
    31         devman
     29BUILD = true
     30POSTBUILD = 'raw'
     31boot_image_format = 'elf'
     32POST_OUTPUT = 'image.boot'
    3233
    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
     34boot_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)
    4458
    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
     59if MACHINE == 'ski'
     60        boot_src += files('src/ski.c')
     61endif
  • boot/arch/mips32/include/arch/main.h

    r9259d20 r3e828ea  
    3030#define BOOT_mips32_MAIN_H_
    3131
    32 extern void bootstrap(void);
     32extern void bootstrap(int, char **);
    3333
    3434#endif
  • boot/arch/mips32/include/arch/types.h

    r9259d20 r3e828ea  
    3535#define CPUMAP_MAX_RECORDS         32
    3636#define BOOTINFO_TASK_NAME_BUFLEN  32
     37#define BOOTINFO_BOOTARGS_BUFLEN   256
    3738
    3839typedef struct {
     
    5657        uint32_t cpumap;
    5758        taskmap_t taskmap;
     59        char bootargs[BOOTINFO_BOOTARGS_BUFLEN];
    5860} bootinfo_t;
    5961
  • boot/arch/mips32/src/asm.S

    r9259d20 r3e828ea  
    3636.section BOOTSTRAP
    3737
     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 */
    3849SYMBOL(start)
    3950        /*
     
    4354         *  - Disable 64-bit user addressing mode
    4455         */
    45         mfc0 $a0, $status
    46         la $a1, 0xffffff1f
    47         and $a0, $a1, $a0
    48         mtc0 $a0, $status
     56        mfc0 $t0, $status
     57        la $t1, 0xffffff1f
     58        and $t0, $t1, $t0
     59        mtc0 $t0, $status
    4960
    5061#if defined(MACHINE_lmalta) || defined(MACHINE_bmalta)
     
    5263         * Remember the size of the SDRAM in bootinfo.
    5364         */
    54         la $a0, PA2KA(BOOTINFO_OFFSET)
    55         sw $a3, 0($a0)
     65        la $t0, PA2KA(BOOTINFO_OFFSET)
     66        sw $a3, 0($t0)
    5667#endif
    5768
     
    6172         * but it not an issue).
    6273         */
    63         la $a0, PA2KA(CPUMAP_OFFSET)
     74        la $t0, PA2KA(CPUMAP_OFFSET)
    6475
    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)
    6980
    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)
    7485
    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)
    7990
    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)
    8495
    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)
    89100
    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)
    94105
    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)
    99110
    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)
    104115
    105         lui $a1, 1
     116        lui $t1, 1
    106117
    107118#ifdef MACHINE_msim
     
    119130
    120131        /* Record CPU presence */
    121         sll $a2, $k1, 2
    122         addu $a2, $a2, $a0
    123         sw $a1, ($a2)
     132        sll $t2, $k1, 2
     133        addu $t2, $t2, $t0
     134        sw $t1, ($t2)
    124135
    125136        loop:
     
    131142        bsp:
    132143                /* Record CPU presence */
    133                 sw $a1, ($a0)
     144                sw $t1, ($t0)
    134145
    135146                /* Setup initial stack */
    136147                la $sp, PA2KA(STACK_OFFSET)
    137148
     149                /* a0=kargc, a1=kargv */
    138150                j bootstrap
    139151                nop
  • boot/arch/mips32/src/main.c

    r9259d20 r3e828ea  
    4545static uint32_t *cpumap = (uint32_t *) PA2KA(CPUMAP_OFFSET);
    4646
    47 void bootstrap(void)
     47void bootstrap(int kargc, char **kargv)
    4848{
    4949        version_print();
     
    7979        }
    8080
     81        str_cpy(bootinfo->bootargs, sizeof(bootinfo->bootargs),
     82            (kargc > 1) ? kargv[1] : "");
     83
    8184        uintptr_t entry = check_kernel(kernel_start);
    8285
  • boot/arch/ppc32/_link.ld.in

    r9259d20 r3e828ea  
    77                *(BOOTSTRAP);
    88                *(.text);
     9                *(.text.*);
    910        }
    1011        .data : {
  • boot/arch/ppc32/meson.build

    r9259d20 r3e828ea  
    2727#
    2828
    29 .PHONY: all build_dist clean
     29BUILD = true
     30POSTBUILD = 'yaboot'
     31POST_OUTPUT = 'image.iso'
     32boot_image_format = 'elf'
    3033
    31 include Makefile.common
     34boot_src = files(
     35        'src/asm.S',
     36        'src/main.c',
     37        'src/ofw.c',
    3238
    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  
    66                loader_start = .;
    77                *(BOOTSTRAP);
    8                 *(.text);
     8                *(.text.*);
    99
    1010                *(.data);       /* initialized data */
  • boot/arch/sparc64/meson.build

    r9259d20 r3e828ea  
    2727#
    2828
    29 ifeq ($(PROCESSOR),sun4v)
    30 COMMON_CFLAGS += -mcpu=niagara -mno-vis
    31 else
    32 COMMON_CFLAGS += -mcpu=ultrasparc
    33 endif
     29BUILD = true
     30POSTBUILD = 'silo'
     31POST_OUTPUT = 'image.iso'
     32boot_image_format = 'elf'
    3433
    35 COMMON_CFLAGS += -m64 -mcmodel=medlow -mhard-float -m$(QUADFLOAT)-quad-float
     34boot_src = files(
     35        'src/asm.S',
     36        'src/main.c',
     37        'src/ofw.c',
    3638
    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.