aboutsummaryrefslogtreecommitdiff
path: root/projects/grub
Commit message (Collapse)AuthorAgeFilesLines
* Remove dependencies_check() from project scriptsAndrew Robbins2019-10-191-4/+0
| | | | | | | | Removing the check function allows dependencies() to be executed, printing the list of dependencies. It was not executed before due to the way check functions are handled; check functions are executed before functions with the same name (minus the "_check" suffix) in order to determine whether calling the function is necessary.
* projects/grub/grub: Stop build() on errorAndrew Robbins2019-04-181-13/+16
| | | | | | This way we can be sure we're not attempting to build when instead we should be bailing out (i.e. when the project's sources are not available).
* Declare and support dependencies for grubAndrew Robbins2019-02-102-0/+9
|
* Update BIOS GRUB prefix hard coded in core.imgAndrew Robbins2018-12-291-1/+1
|
* Copy correct number of bytes for floppy BPBAndrew Robbins2018-12-291-1/+1
| | | | | | | | The Bios Parameter Block (BPB) is 51 bytes, not 52. As-is, the first byte of executable code from the floppy image boot record is copied along with the BPB to boot.img; this extra byte isn't harmful to leave in since execution begins at offset 0x63+2 rather than 0x3C+2, but is a little messy.
* Trim some less useful comments in grub-helperAndrew Robbins2018-12-281-4/+0
|
* Remove extraneous radix specifier in grub_bo_dump()Andrew Robbins2018-12-281-1/+1
|
* Use tabs for indentation in grub_bo functionsAndrew Robbins2018-12-281-13/+13
|
* Include FAT fs support in BIOS GRUB core.imgAndrew Robbins2018-12-251-0/+1
| | | | | The SeaGRUB floppy image has a FAT12 filesystem and GRUB needs to be able to read it in order to load modules stored there.
* Automate updating SeaGRUB floppy image blocklistsAndrew Robbins2018-12-251-1/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Related issue #553 Determining the byte offset of core.img on the SeaGRUB floppy is accomplished using grub_bo(), though it is memory bound as it requires reading hex dumps for the pattern and comparand into memory. The blocklists that are stored in the boot record and core.img are sector numbers. Of particular note is the blocklist written to core.img is always the location of its *second* sector--not the first. Blocklists are used because floppy disks DO NOT have an MBR or MBR gap as the filesystem spans the entire disk. Consequently, the core.img cannot be stored in the usual ~1MiB gap. Unfortunately, using blocklists means they will have to be updated whenever core.img is moved. New functions added to grub-helper: * grub_bo * grub_bo_dump * grub_bo_search * grub_blocklist_format * grub_blocklist_generate * grub_floppy_image_make_bootable * grub_floppy_image_update_blocklists
* Refactor SeaGRUB floppy creation codeAndrew Robbins2018-12-252-29/+45
| | | | | | | | | | | | | | | | | | | Related issue #553 Previously, the GRUB boot image and core image were concatenated together and padding added to create a (pseudo) floppy image. However, testing revealed that GRUB has issues dynamically loading modules from $prefix if $prefix is not located on the same device from which GRUB booted. In order to get around this issue, a proper 2.88MiB floppy image is created using mkfs.fat with GRUB modules copied to directories on the filesystem (i.e, /boot/grub/i386-pc). The 2.88MiB filesystem size is necessary to be able to fit all modules onto the image. New functions added to grub-helper: * grub_floppy_image_mmd (create directories on image using mtools mmd) * grub_floppy_image_mcopy (copy files to image using mtools mcopy)
* Load modules from (fd0) in GRUB bios target configAndrew Robbins2018-12-041-3/+3
| | | | | | | | (fd0) should be the proper device for SeaGRUB. $prefix is set using (fd0) as the device considering modules will be placed onto the floppy image--not in CBFS. grub.cfg is still sourced from (cbfsdisk)
* Add useful modules to GRUB modules-minimal filesAndrew Robbins2018-12-043-0/+4
| | | | | | | | | | Module "biosdisk" is necessary for GRUB to boot from the floppy image we're working to create. If this module is not included in core.img it will simply not load. Module "minicmd" has been added in order to provide the commands "lsmod" and "rmmod" which are useful for listing loaded modules and unloading them, respectively (especially great for testing).
* Remove unnecessary commands from embedded grub.cfgAndrew Robbins2018-12-043-15/+9
| | | | | All modules listed in a given target's modules-minimal file are preloaded so there's no need to specifically load any.
* Set prefix in GRUB BIOS image configAndrew Robbins2018-11-271-0/+2
|
* Modify modules to include and load in GRUB imagesAndrew Robbins2018-11-276-1/+10
| | | | | | | | | | | | | | | The cbfs module must be loaded before trying to source grub.cfg from CBFS, for obvious reasons. The test module is bundled into all images in order to avoid the situation where grub gets stuck in a loop trying to locate the module during parsing of grub.cfg. This could happen if a user removes the module or moves it, so it's best to avoid a brick by just bundling it into the image. For the bios target, biosdisk has been removed as it doesn't seem to provide any benefit and memdisk has been added to eliminate an error printed by GRUB upon load.
* Move organized patches to project directory for newbuildJohn M. Harris, Jr2018-06-253-0/+171
| | | | | The new build system just applies all patches in the directory, so we can't have a properly organized structure.
* Add overlooked GRUB modules to modules-minimalAndrew Robbins2018-04-073-0/+8
|
* Be specific about size limit for floppy GRUB imageAndrew Robbins2018-04-071-1/+1
|
* Include modules from modules-minimal in GRUB imageAndrew Robbins2018-04-073-2/+12
|
* Remove braces from parameter expansionsAndrew Robbins2017-09-212-114/+114
| | | | | | | * projects/grub/grub * projects/grub/grub-helper ditto
* Add GRUB module 'cbmemc' to each GRUB targetAndrew Robbins2017-09-173-0/+3
| | | | | Dumps CBMEM console log to stdout; this is useful for development/troubleshooting purposes.
* Add grubenv var i_want_a_brickAndrew Robbins2017-09-171-1/+2
| | | | | As of right now setting/unsetting the variable does nothing as this functionality will be added later.
* Delete old, unused GRUB config and modules-* filesAndrew Robbins2017-09-163-206/+0
| | | | | | | | | The grub.cfg to be included in the GRUB image is located in each target's directory in 'projecs/grub/configs' now, which means 'projects/grub/configs/grub.cfg' no longer has any use. Ditto with 'projects/grub/configs/modules-install' and 'projects/grub/configs/modules-preload'
* Make a few minor tweaks to the grub-helper scriptAndrew Robbins2017-09-141-2/+9
| | | | | | The check for an existing, non-directory file as $keymap_out_path was added to prevent the (unlikely) scenario of attempting writing a file to a file as if it were a directory.
* Cook the GRUB image before misc. trimmingsAndrew Robbins2017-09-141-4/+4
| | | | | | Out of: the image itself, keylayouts, and font, the image takes the longest to build so it would be best to attempt its build first to avoid wasted time and resources, however little, if the build fails.
* Use GNU Make's '-C' flagAndrew Robbins2017-09-141-6/+1
| | | | Forgot about that flag when that was written. Somehow.
* Remove unnecessary code duplication in GRUB buildAndrew Robbins2017-09-141-12/+9
|
* Insert GRUB PF2-format font into GRUB install fileAndrew Robbins2017-09-071-0/+1
|
* Integrate grub_build_font into GRUB action scriptAndrew Robbins2017-09-071-0/+2
|
* Create GRUB config files font-file, font-projectAndrew Robbins2017-09-062-0/+2
| | | | | | | | | | | 'font-file' contains the filename (not path) of the font to use when making a PF2-format GRUB font. 'font-project' contains the name of the project which built the original font file. These files are necessary to avoid hard-coding the font and/or the path to the font as an argument to grub-mkfont.
* Delete directory projects/grub/configs/fontAndrew Robbins2017-09-0618-9129/+0
| | | | | A more flexible way of handling font files will be introduced in later commits.
* Create grub-helper function grub_build_fontAndrew Robbins2017-09-061-0/+26
| | | | | | The idea is to build a font from source and then make a PF2 format file from it using grub-mkfont. This cuts down on the number of binary files committed to history in the repository.
* Rename GRUB subtarget 'txtmode' to 'textmode'Andrew Robbins2017-09-045-2/+2
| | | | | Saving typing on one letter isn't really worth the trade-off in readability.
* Add entries for GRUB backgrounds to install fileAndrew Robbins2017-09-041-0/+2
|
* Move GRUB background dir to install/corebootfbAndrew Robbins2017-09-044-0/+0
| | | | | | | Since backgrounds aren't included in the GRUB image it would make more sense to move them to the GRUB install directory at projects/grub/install/corebootfb instead (textmode ROMs won't have a background image included, for obvious reasons).
* Rename GRUB keymap directory and a reference to itAndrew Robbins2017-09-0212-1/+1
| | | | Plurality is nice, sometimes.
* Add keylayouts to the GRUB install fileAndrew Robbins2017-09-021-0/+11
|
* Rebind raw_keymap_path in projects/grub/grubAndrew Robbins2017-09-021-1/+1
|
* Move raw keymap files into parent directoryAndrew Robbins2017-09-0211-0/+0
|
* Delete binary GRUB keylayoutsAndrew Robbins2017-09-0210-0/+0
| | | | | Keylayouts are now compiled as part of the build process--keeping binary keylayouts in the repo is unnecessary as a result.
* Rename Swedish keymap using a proper ISO 639-1 codeAndrew Robbins2017-09-021-0/+0
|
* Add Japanese keymap (jaqwerty) to GRUB keymap dirAndrew Robbins2017-09-021-0/+131
|
* Conditionally create dir to store compiled keymapsAndrew Robbins2017-09-021-1/+6
|
* Use grub-mklayout instead of grub-kbdcompAndrew Robbins2017-09-021-2/+2
| | | | | | grub-mklayout was the intended program to use for generating compiled GRUB keylayouts. Somewhere along the way grub-kbdcomp was erroneously substituted in its place.
* Build GRUB keymaps with targets, not as targetAndrew Robbins2017-09-021-6/+5
| | | | | | | By building keymaps whenever a GRUB image is produced, there will be a significant reduction in total time spent compiling Libreboot ROMs. The previous build process for keymaps was hugely inefficient.
* Add UEFI to the GRUB 'targets' fileAndrew Robbins2017-08-311-0/+1
|
* Consolidate GRUB UEFI target modules into 'install'Andrew Robbins2017-08-313-202/+196
| | | | | | | | | | | | | | | As with the BIOS/Coreboot targets, the modules listed in this file will later be added to CBFS in order to avoid issues inherent to bundling modules into the GRUB image. Several modules have been excluded from the install list for reasons of non-applicability to UEFI GRUB; namely: * cmosdump * cmostest * efiemu * mda_text * pci
* Create GRUB UEFI target file 'modules-minimal'Andrew Robbins2017-08-301-0/+10
| | | | | | | As with the BIOS/Coreboot targets' modules-minimal files, this file lists the minimum necessary to complement a working, bootable image so that it can read from other devices in addition to halting/rebooting the machine.
* Copy GRUB module lists to UEFI target dirAndrew Robbins2017-08-302-0/+202
| | | | | | Since GRUB images will be produced on a target-specific basis, the target will need its own copy of the modules to include in either the GRUB image itself or CBFS.