Changeset 00aece0 in mainline for boot


Ignore:
Timestamp:
2012-02-18T16:47:38Z (14 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
4449c6c
Parents:
bd5f3b7 (diff), f943dd3 (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.
Message:

Merge mainline changes.

Location:
boot
Files:
557 added
1 deleted
13 edited
2 moved

Legend:

Unmodified
Added
Removed
  • boot/Makefile

    rbd5f3b7 r00aece0  
    4040        $(PACK) $(OBJCOPY) $(BFD_NAME) $(BFD_ARCH) arch/$(KARCH) $(COMPONENTS)
    4141
    42 $(INITRD).img: $(INITRD).fs
    43         $(MKHORD) $(PAGE_SIZE) $< $@
    44 
    45 $(INITRD).fs: build_dist
     42$(INITRD).img: build_dist
    4643ifeq ($(RDFMT),tmpfs)
    4744        $(MKTMPFS) $(DIST_PATH) $@
     
    6158                cp "$$file" "$(DIST_PATH)/lib/" ; \
    6259        done
     60ifeq ($(CONFIG_DEVEL_FILES), y)
     61        mkdir "$(DIST_PATH)/inc/c/"
     62        cp -r -L "$(USPACE_PATH)/lib/c/include/." "$(DIST_PATH)/inc/c/"
     63        cat "$(USPACE_PATH)/lib/c/arch/$(UARCH)/_link.ld" | sed 's/^STARTUP(.*)$$//g' > "$(DIST_PATH)/inc/_link.ld"
     64endif
    6365        for file in $(RD_APPS) ; do \
    6466                cp "$$file" "$(DIST_PATH)/app/" ; \
     
    9092
    9193clean_dist:
    92         rm -f $(INITRD).fs $(INITRD).img $(COMPS_H) $(COMPS_C) $(LINK) $(LINK).comp *.co
     94        rm -f $(INITRD).img $(COMPS_H) $(COMPS_C) $(LINK) $(LINK).comp *.co
    9395        rm -f $(USPACE_PATH)/dist/srv/*
    9496        rm -rf $(USPACE_PATH)/dist/drv/*
    9597        rm -f $(USPACE_PATH)/dist/lib/*
     98        rm -rf $(USPACE_PATH)/dist/inc/*
    9699        rm -f $(USPACE_PATH)/dist/app/*
    97100        rm -f $(USPACE_PATH)/dist/cfg/net/*
  • boot/Makefile.common

    rbd5f3b7 r00aece0  
    5353SANDBOX = pack
    5454PACK = $(TOOLS_PATH)/pack.py
    55 MKHORD = $(TOOLS_PATH)/mkhord.py
    5655MKTMPFS = $(TOOLS_PATH)/mktmpfs.py
    5756MKFAT = $(TOOLS_PATH)/mkfat.py
     
    102101        $(USPACE_PATH)/srv/fs/tmpfs/tmpfs \
    103102        $(USPACE_PATH)/srv/fs/fat/fat \
     103        $(USPACE_PATH)/srv/fs/mfs/mfs \
     104        $(USPACE_PATH)/srv/fs/cdfs/cdfs \
     105        $(USPACE_PATH)/srv/fs/exfat/exfat \
    104106        $(USPACE_PATH)/srv/fs/ext2fs/ext2fs \
     107        $(USPACE_PATH)/srv/hid/remcons/remcons \
    105108        $(USPACE_PATH)/srv/taskmon/taskmon \
    106         $(USPACE_PATH)/srv/hw/netif/ne2000/ne2000 \
    107         $(USPACE_PATH)/srv/net/netif/lo/lo \
    108109        $(USPACE_PATH)/srv/net/nil/eth/eth \
    109110        $(USPACE_PATH)/srv/net/nil/nildummy/nildummy \
     
    121122        test/test1 \
    122123        test/test2 \
    123         test/test3
     124        test/test3 \
     125        nic/lo \
     126        nic/ne2k \
     127        nic/e1k \
     128        nic/rtl8139
    124129
    125130RD_DRV_CFG =
    126131
    127132RD_LIBS =
     133
     134ifeq ($(CONFIG_DEVEL_FILES), y)
     135        RD_LIBS += \
     136                $(USPACE_PATH)/lib/c/libc.a \
     137                $(USPACE_PATH)/lib/softint/libsoftint.a \
     138                $(USPACE_PATH)/lib/softfloat/libsoftfloat.a
     139endif
    128140
    129141ifeq ($(CONFIG_BUILD_SHARED_LIBS), y)
     
    153165        $(USPACE_PATH)/app/locinfo/locinfo \
    154166        $(USPACE_PATH)/app/mkfat/mkfat \
     167        $(USPACE_PATH)/app/mkmfs/mkmfs \
    155168        $(USPACE_PATH)/app/lsusb/lsusb \
    156169        $(USPACE_PATH)/app/sbi/sbi \
     170        $(USPACE_PATH)/app/sportdmp/sportdmp \
    157171        $(USPACE_PATH)/app/redir/redir \
    158172        $(USPACE_PATH)/app/taskdump/taskdump \
     
    163177        $(USPACE_PATH)/app/nettest1/nettest1 \
    164178        $(USPACE_PATH)/app/nettest2/nettest2 \
     179        $(USPACE_PATH)/app/nettest3/nettest3 \
    165180        $(USPACE_PATH)/app/netecho/netecho \
    166181        $(USPACE_PATH)/app/ping/ping \
     
    173188        $(USPACE_PATH)/app/websrv/websrv
    174189
     190ifeq ($(CONFIG_PCC),y)
     191RD_APPS_NON_ESSENTIAL += \
     192        $(USPACE_PATH)/app/cc/cc \
     193        $(USPACE_PATH)/app/ccom/ccom \
     194        $(USPACE_PATH)/app/ccom/mkext/cc_mkext \
     195        $(USPACE_PATH)/app/cpp/cpp
     196endif
     197
     198ifeq ($(CONFIG_BINUTILS),y)
     199RD_APPS_NON_ESSENTIAL += \
     200        $(USPACE_PATH)/app/binutils/bin/as \
     201        $(USPACE_PATH)/app/binutils/bin/ld
     202endif
     203
    175204ifneq ($(CONFIG_BAREBONE),y)
    176205NET_CFG = \
    177206        $(USPACE_PATH)/srv/net/cfg/general \
    178         $(USPACE_PATH)/srv/net/cfg/lo \
    179         $(USPACE_PATH)/srv/net/cfg/ne2k
     207        $(USPACE_PATH)/srv/net/cfg/lo.nic \
     208        $(USPACE_PATH)/srv/net/cfg/ne2k.nic \
     209        $(USPACE_PATH)/srv/net/cfg/e1k.nic
    180210endif
    181211
  • boot/Makefile.grub

    rbd5f3b7 r00aece0  
    3131include Makefile.common
    3232
    33 STAGE2 = grub/stage2_eltorito
    34 STAGE2_IN = boot/$(STAGE2)
     33GRUB = grub.$(GRUB_ARCH)
     34BOOT = $(DISTROOT)/boot
     35
     36ELTORITO = boot/grub/$(GRUB_ARCH).img
     37IMAGE = $(DISTROOT)/$(ELTORITO)
     38
     39ifeq ($(GRUB_ARCH),pc)
     40        BOOT_CONFIG = $(BOOT)/grub/i386-pc/grub.cfg
     41        MULTIBOOT_CMD = multiboot
     42        MODULE_CMD = module
     43endif
     44ifeq ($(GRUB_ARCH),efi)
     45        BOOT_CONFIG = $(BOOT)/grub/grub.cfg
     46        MULTIBOOT_CMD = multiboot2
     47        MODULE_CMD = module2
     48endif
    3549
    3650all: $(BOOT_OUTPUT)
    3751
    3852$(BOOT_OUTPUT): build_dist
    39         mkisofs -J -r -b $(STAGE2_IN) -no-emul-boot -boot-load-size 4 -boot-info-table -o $@ $(DISTROOT)/
     53ifeq ($(GRUB_ARCH),pc)
     54        $(GENISOIMAGE) -J -r -input-charset utf-8 -V "HelenOS boot ISO" -eltorito-boot $(ELTORITO) -no-emul-boot -boot-load-size 64 -boot-info-table -o $@ $(DISTROOT)/
     55endif
     56ifeq ($(GRUB_ARCH),efi)
     57        $(GENISOIMAGE) -J -r -input-charset utf-8 -V "HelenOS boot ISO" -efi-boot $(ELTORITO) -o $@ $(DISTROOT)/
     58endif
    4059
    4160build_dist: clean
    42         mkdir -p $(DISTROOT)/boot/grub
    43         cp $(STAGE2) $(DISTROOT)/boot/grub/
     61        mkdir -p $(BOOT)
     62        cp -r $(GRUB) $(BOOT)/grub
     63ifeq ($(GRUB_ARCH),efi)
     64        gunzip $(IMAGE)
     65endif
     66       
    4467        for module in $(COMPONENTS) ; do \
    45                 cp "$$module" $(DISTROOT)/boot/ ; \
     68                cp "$$module" $(BOOT)/ ; \
    4669        done
    4770       
    48         echo "default 0" > $(DISTROOT)/boot/grub/menu.lst
    49         echo "timeout 10" >> $(DISTROOT)/boot/grub/menu.lst
    50         echo "" >> $(DISTROOT)/boot/grub/menu.lst
    51         echo "title=HelenOS" >> $(DISTROOT)/boot/grub/menu.lst
    52         echo "  root (cd)" >> $(DISTROOT)/boot/grub/menu.lst
     71        echo "set default=0" > $(BOOT_CONFIG)
     72        echo "set timeout=10" >> $(BOOT_CONFIG)
     73        echo "" >> $(BOOT_CONFIG)
     74       
     75ifeq ($(GRUB_ARCH),pc)
     76        echo "insmod vbe" >> $(BOOT_CONFIG)
     77        echo "insmod vga" >> $(BOOT_CONFIG)
     78endif
     79ifeq ($(GRUB_ARCH),efi)
     80        echo "insmod efi_gop" >> $(BOOT_CONFIG)
     81        echo "insmod efi_uga" >> $(BOOT_CONFIG)
     82endif
     83        echo "" >> $(BOOT_CONFIG)
     84       
     85        echo "menuentry 'HelenOS $(RELEASE)' --class helenos --class os {" >> $(BOOT_CONFIG)
    5386        for module in $(MODULES) ; do \
     87                echo "  echo 'Loading $$module'" >> $(BOOT_CONFIG) ; \
    5488                if [ "$$module" = "kernel.bin" ] ; then \
    55                         echo "  kernel /boot/$$module" >> $(DISTROOT)/boot/grub/menu.lst ; \
     89                        echo "  $(MULTIBOOT_CMD) /boot/$$module" >> $(BOOT_CONFIG) ; \
    5690                else \
    57                         echo "  module /boot/$$module" >> $(DISTROOT)/boot/grub/menu.lst ; \
     91                        echo "  $(MODULE_CMD) /boot/$$module /boot/$$module" >> $(BOOT_CONFIG) ; \
    5892                fi \
    5993        done
     94        echo "}" >> $(BOOT_CONFIG)
    6095
    6196clean:
  • boot/Makefile.silo

    rbd5f3b7 r00aece0  
    4141
    4242$(POST_OUTPUT): build_dist
    43         mkisofs -f -G $(ISOFS_B_IN) -B ... -r -o $@ $(DISTROOT)/
     43        $(GENISOIMAGE) -f -G $(ISOFS_B_IN) -B ... -r -o $@ $(DISTROOT)/
    4444
    4545build_dist: clean
  • boot/Makefile.yaboot

    rbd5f3b7 r00aece0  
    4040
    4141$(POST_OUTPUT): build_dist
    42         mkisofs -hfs -part -map $(MAPS) -no-desktop -hfs-volid "HelenOS" -hfs-bless $(DISTROOT)/boot -r -o $@ $(DISTROOT)/
     42        $(GENISOIMAGE) -hfs -part -map $(MAPS) -no-desktop -hfs-volid "HelenOS" -hfs-bless $(DISTROOT)/boot -r -o $@ $(DISTROOT)/
    4343
    4444build_dist: clean
  • boot/arch/amd64/Makefile.inc

    rbd5f3b7 r00aece0  
    2727#
    2828
    29 PAGE_SIZE = 4096
    30 
    3129RD_SRVS_ESSENTIAL += \
    32         $(USPACE_PATH)/srv/hw/char/i8042/i8042 \
    3330        $(USPACE_PATH)/srv/hw/irc/apic/apic \
    3431        $(USPACE_PATH)/srv/hw/irc/i8259/i8259
     
    4138        bus/pci/pciintel \
    4239        bus/isa \
     40        char/i8042 \
    4341        char/ns8250 \
     42        char/ps2mouse \
     43        char/xtkbd \
    4444        bus/usb/ehci\
    4545        bus/usb/ohci \
     
    5151        bus/usb/usbmast \
    5252        bus/usb/usbmid \
    53         bus/usb/usbmouse \
    5453        bus/usb/vhc
    5554
  • boot/arch/arm32/Makefile.inc

    rbd5f3b7 r00aece0  
    3939BITS = 32
    4040ENDIANESS = LE
    41 PAGE_SIZE = 4096
    4241
    4342RD_SRVS_ESSENTIAL += \
  • boot/arch/ia64/Makefile.inc

    rbd5f3b7 r00aece0  
    3333BITS = 64
    3434ENDIANESS = LE
    35 PAGE_SIZE = 16384
    3635EXTRA_CFLAGS = -fno-unwind-tables -mfixed-range=f32-f127 -mno-pic -mno-sdata
    3736
    3837RD_SRVS_NON_ESSENTIAL +=
    3938
    40 RD_SRVS_ESSENTIAL += \
    41         $(USPACE_PATH)/srv/hw/char/i8042/i8042
     39RD_SRVS_ESSENTIAL +=
    4240
    4341SOURCES = \
  • boot/arch/mips32/Makefile.inc

    rbd5f3b7 r00aece0  
    2929BFD_ARCH = mips
    3030BITS = 32
    31 PAGE_SIZE = 16384
    3231EXTRA_CFLAGS = -mno-abicalls -G 0 -fno-zero-initialized-in-bss -mips3 -mabi=32
    3332
  • boot/arch/mips64/Makefile.inc

    rbd5f3b7 r00aece0  
    2929BFD_ARCH = mips:4000
    3030BITS = 64
    31 PAGE_SIZE = 16384
    3231EXTRA_CFLAGS = -mno-abicalls -G 0 -fno-zero-initialized-in-bss -mips3 -mabi=64
    3332
  • boot/arch/ppc32/Makefile.inc

    rbd5f3b7 r00aece0  
    3737BITS = 32
    3838ENDIANESS = BE
    39 PAGE_SIZE = 4096
    4039EXTRA_CFLAGS = -mcpu=powerpc -msoft-float -m32
    4140
  • boot/arch/sparc64/Makefile.inc

    rbd5f3b7 r00aece0  
    3737BITS = 64
    3838ENDIANESS = BE
    39 PAGE_SIZE = 16384
    4039EXTRA_CFLAGS = -mcpu=ultrasparc -m64 -mno-fpu -mcmodel=medlow
    4140
  • boot/generic/src/printf_core.c

    rbd5f3b7 r00aece0  
    7070 */
    7171#define PRINT_NUMBER_BUFFER_SIZE  (64 + 5)
     72
     73/** Get signed or unsigned integer argument */
     74#define PRINTF_GET_INT_ARGUMENT(type, ap, flags) \
     75        ({ \
     76                unsigned type res; \
     77                \
     78                if ((flags) & __PRINTF_FLAG_SIGNED) { \
     79                        signed type arg = va_arg((ap), signed type); \
     80                        \
     81                        if (arg < 0) { \
     82                                res = -arg; \
     83                                (flags) |= __PRINTF_FLAG_NEGATIVE; \
     84                        } else \
     85                                res = arg; \
     86                } else \
     87                        res = va_arg((ap), unsigned type); \
     88                \
     89                res; \
     90        })
    7291
    7392/** Enumeration of possible arguments types.
     
    171190        }
    172191       
    173         return (int) (counter + 1);
     192        return (int) (counter);
    174193}
    175194
     
    698717                        size_t size;
    699718                        uint64_t number;
     719                       
    700720                        switch (qualifier) {
    701721                        case PrintfQualifierByte:
    702722                                size = sizeof(unsigned char);
    703                                 number = (uint64_t) va_arg(ap, unsigned int);
     723                                number = PRINTF_GET_INT_ARGUMENT(int, ap, flags);
    704724                                break;
    705725                        case PrintfQualifierShort:
    706726                                size = sizeof(unsigned short);
    707                                 number = (uint64_t) va_arg(ap, unsigned int);
     727                                number = PRINTF_GET_INT_ARGUMENT(int, ap, flags);
    708728                                break;
    709729                        case PrintfQualifierInt:
    710730                                size = sizeof(unsigned int);
    711                                 number = (uint64_t) va_arg(ap, unsigned int);
     731                                number = PRINTF_GET_INT_ARGUMENT(int, ap, flags);
    712732                                break;
    713733                        case PrintfQualifierLong:
    714734                                size = sizeof(unsigned long);
    715                                 number = (uint64_t) va_arg(ap, unsigned long);
     735                                number = PRINTF_GET_INT_ARGUMENT(long, ap, flags);
    716736                                break;
    717737                        case PrintfQualifierLongLong:
    718738                                size = sizeof(unsigned long long);
    719                                 number = (uint64_t) va_arg(ap, unsigned long long);
     739                                number = PRINTF_GET_INT_ARGUMENT(long long, ap, flags);
    720740                                break;
    721741                        case PrintfQualifierPointer:
     
    732752                                counter = -counter;
    733753                                goto out;
    734                         }
    735                        
    736                         if (flags & __PRINTF_FLAG_SIGNED) {
    737                                 if (number & (0x1 << (size * 8 - 1))) {
    738                                         flags |= __PRINTF_FLAG_NEGATIVE;
    739                                        
    740                                         if (size == sizeof(uint64_t)) {
    741                                                 number = -((int64_t) number);
    742                                         } else {
    743                                                 number = ~number;
    744                                                 number &=
    745                                                     ~(0xFFFFFFFFFFFFFFFFll <<
    746                                                     (size * 8));
    747                                                 number++;
    748                                         }
    749                                 }
    750754                        }
    751755                       
  • boot/grub.pc/README

    rbd5f3b7 r00aece0  
     1The binary files of GRUB boot loader in this directory have been created
     2by compiling GRUB for the 'i386-pc' target and then using the grub-mkrescue
     3script to create the El Torito boot image.
     4
    15For licensing terms of GRUB boot loader see the file COPYING contained
    26in this directory. Full version of GRUB, including its source code,
Note: See TracChangeset for help on using the changeset viewer.