Changeset 184


Ignore:
Timestamp:
Nov 7, 2017, 7:12:49 AM (8 years ago)
Author:
Ben Rietbroek
Message:

Added 'CRC_IGNORE' option for debug building [v1.1.1-testing]

The CRC is calculated and inserted in the loader image when AiR-BOOT is
installed. Ignoring the CRC enables manually merging the loader without
using the installer. This is used for debugging in virtual machines,
where it is easy to merge the loader to the disk image of the VM.

CAUTION:
This is a testbuild !
AirBoot uses the BIOS to access disks and a small coding error can trash
partition tables or other vital disk structures. You are advised to make
backups of TRACK0 and EBRs before using this testbuild. More info at:
https://rousseaux.github.io/netlabs.air-boot/pdf/AirBoot-v1.1.0-manual.pdf

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/bootcode/GNUmakefile

    r183 r184  
    77###############################################################################
    88
     9export CRC_IGNORE
     10
    911# Use the new GNU Make build-system if USE_GNU_MAKE is set to 'y'
    1012ifeq ($(USE_GNU_MAKE),y)
  • trunk/bootcode/airboot.asm

    r176 r184  
    827827                loop    MBR_RealStart_CheckCodeLoop
    828828
    829                 ; Verify checksum
     829                ; Verify checksum -- EQUAL if OK
    830830                cmp     MBR_CheckCode, bx
    831                 ;~ je      MBR_RealStart_CheckSuccess      ; CRC verified
    832                 jmp      MBR_RealStart_CheckSuccess     ; Ignore CRC
    833 
     831
     832                ;
     833                ; The CRC is calculated and inserted in the loader image when
     834                ; AiR-BOOT is installed. Ignoring the CRC enables manually
     835                ; merging the loader without using the installer. This is used
     836                ; for debugging in virtual machines, where it is easy to
     837                ; merge the loader to the disk image of the VM.
     838                ;
     839            IFDEF   CRC_IGNORE
     840                jmp     MBR_RealStart_CheckSuccess      ; Ignore CRC
     841            ELSE
     842                je      MBR_RealStart_CheckSuccess      ; Honor CRC -- EQ is OK
     843            ENDIF
     844
     845                ;
    834846                ; Oops, checksum mismatch -- halt the system
     847                ;
    835848                mov     si, offset TXT_ERROR_Attention
    836849                call    MBR_Teletype
  • trunk/bootcode/fc.mnu

    r182 r184  
    44
    55B:      Build Development Version [EN]
    6         cmd /c "set BLDLVL_VENDOR=& set BLDLVL_MACHINE=& wmake -h dev"
     6        wmake -h dev %BLDLVL_VENDOR= %BLDLVL_MACHINE= %CRC_IGNORE=y
    77V:      Build Vendor Dev  Version [EN]
    88        wmake -h dev
  • trunk/bootcode/fcl.mnu

    r183 r184  
    44
    55B:      Build Development Version [EN]
    6         bash -c "BLDLVL_VENDOR= BLDLVL_MACHINE= make dev DEV_BLD_LANG=en USE_GNU_MAKE=y"
     6        make dev DEV_BLD_LANG=en BLDLVL_VENDOR= BLDLVL_MACHINE= USE_GNU_MAKE=y CRC_IGNORE=y
    77V:      Build Vendor Dev  Version [EN]
    8         make dev DEV_BLD_LANG=en USE_GNU_MAKE=y
     8        make dev DEV_BLD_LANG=en BLDLVL_VENDOR=${USER} BLDLVL_MACHINE=${HOSTNAME} USE_GNU_MAKE=y
    99-:      ------------------------------
    1010M:      Build Development Version [??]
    1111{
    12121:      English
    13         make dev DEV_BLD_LANG=en USE_GNU_MAKE=y
     13        make dev DEV_BLD_LANG=en USE_GNU_MAKE=y CRC_IGNORE=y
    14142:      German
    15         make dev DEV_BLD_LANG=de USE_GNU_MAKE=y
     15        make dev DEV_BLD_LANG=de USE_GNU_MAKE=y CRC_IGNORE=y
    16163:      Dutch
    17         make dev DEV_BLD_LANG=nl USE_GNU_MAKE=y
     17        make dev DEV_BLD_LANG=nl USE_GNU_MAKE=y CRC_IGNORE=y
    18184:      French
    19         make dev DEV_BLD_LANG=fr USE_GNU_MAKE=y
     19        make dev DEV_BLD_LANG=fr USE_GNU_MAKE=y CRC_IGNORE=y
    20205:      Italian
    21         make dev DEV_BLD_LANG=it USE_GNU_MAKE=y
     21        make dev DEV_BLD_LANG=it USE_GNU_MAKE=y CRC_IGNORE=y
    22226:      Swedish
    23         make dev DEV_BLD_LANG=sw USE_GNU_MAKE=y
     23        make dev DEV_BLD_LANG=sw USE_GNU_MAKE=y CRC_IGNORE=y
    24247:      Russian
    25         make dev DEV_BLD_LANG=ru USE_GNU_MAKE=y
     25        make dev DEV_BLD_LANG=ru USE_GNU_MAKE=y CRC_IGNORE=y
    2626}
    2727C:      Clean
  • trunk/include/makefile.mif

    r182 r184  
    122122%JWASM_DEFINES += -DBLDLVL_VENDOR="'$(%BLDLVL_VENDOR)'"
    123123%JWASM_DEFINES += -DBLDLVL_MACHINE="'$(%BLDLVL_MACHINE)'"
     124
     125#
     126# Disable code CRC-check -- used for debugging
     127#
     128!if     "$(%CRC_IGNORE)"=="y"
     129%JWASM_DEFINES += -DCRC_IGNORE
     130!endif
    124131
    125132#
Note: See TracChangeset for help on using the changeset viewer.