Bug 234460 - Can't boot after upgrade from 12-ALPHA10 to 12-STABLE(r342278)
Summary: Can't boot after upgrade from 12-ALPHA10 to 12-STABLE(r342278)
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: misc (show other bugs)
Version: 12.0-STABLE
Hardware: amd64 Any
: --- Affects Some People
Assignee: Toomas Soome
URL:
Keywords: regression
Depends on:
Blocks:
 
Reported: 2018-12-28 12:34 UTC by Oleh Hushchenkov
Modified: 2019-04-21 03:37 UTC (History)
2 users (show)

See Also:


Attachments
lsdev after r342618 (525.02 KB, image/jpeg)
2019-01-02 10:41 UTC, Oleh Hushchenkov
no flags Details
boot error before latest loader updates (483.02 KB, image/jpeg)
2019-01-02 10:43 UTC, Oleh Hushchenkov
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Oleh Hushchenkov 2018-12-28 12:34:31 UTC
My hardware is HP laptop on Core2Duo CPU, 2Gb RAM and one HDD. System installed on ZFS with GPT scheme and booted with BIOS(UEFI not supported by hardware).

Replace /boot/zfsloader with old one from 12-ALPHA10 fixed this.
Comment 1 Oleh Hushchenkov 2019-01-02 10:41:24 UTC
Created attachment 200701 [details]
lsdev after r342618

After upgrade to r342618 it can boot, but have significant delay on query nonexistent fd-drives.
Comment 2 Oleh Hushchenkov 2019-01-02 10:43:10 UTC
Created attachment 200703 [details]
boot error before latest loader updates
Comment 3 Toomas Soome freebsd_committer 2019-01-02 19:00:17 UTC
The issue is identified.

This system does have buggy int13h ah=15h (read drive type), and even if we got error from ah=08, we did end up mis-detecting the drive present. For fix/workaround is, we only use ah=08 for floppy and we do not ignore return value from it. Since ah=08 does not report sector size, we do need to set it manually.
Comment 4 Toomas Soome freebsd_committer 2019-01-02 20:41:48 UTC
https://reviews.freebsd.org/D18723
Comment 5 Oleh Hushchenkov 2019-01-04 14:05:14 UTC
(In reply to Toomas Soome from comment #4)

https://reviews.freebsd.org/D18723 fixes issue and it will be good to see it commited.
Comment 6 commit-hook freebsd_committer 2019-01-05 07:20:29 UTC
A commit references this bug:

Author: tsoome
Date: Sat Jan  5 07:20:00 UTC 2019
New revision: 342785
URL: https://svnweb.freebsd.org/changeset/base/342785

Log:
  With buggy int13 ah=15, we can mis-identify the floppy devices.

  We have no option than trust INT13 ah=08 return code during the init phase.

  PR:		234460
  Reported by:	Oleh Hushchenkov
  MFC after:	1 week
  Differential Revision:	https://reviews.freebsd.org/D18723

Changes:
  head/stand/i386/libi386/biosdisk.c
Comment 7 Oleh Hushchenkov 2019-01-05 08:10:39 UTC
(In reply to commit-hook from comment #6)
Thank you!
Comment 8 commit-hook freebsd_committer 2019-01-13 07:13:47 UTC
A commit references this bug:

Author: tsoome
Date: Sun Jan 13 07:12:51 UTC 2019
New revision: 342992
URL: https://svnweb.freebsd.org/changeset/base/342992

Log:
  With buggy int13 ah=15, we can mis-identify the floppy devices.

  We have no option than trust INT13 ah=08 return code during the init phase.

  PR:		234460
  Reported by:	Oleh Hushchenkov

Changes:
_U  stable/12/
  stable/12/stand/i386/libi386/biosdisk.c
Comment 9 commit-hook freebsd_committer 2019-04-21 03:37:00 UTC
A commit references this bug:

Author: kevans
Date: Sun Apr 21 03:36:07 UTC 2019
New revision: 346476
URL: https://svnweb.freebsd.org/changeset/base/346476

Log:
  MFC r341253, r341328, r342619, r342626, r342707, r342785, r342865

  r341253:
  The libstand's panic() appends its own '\n' to the message, so that users of the API
  don't need to supply one.

  r341328:
  loader: create separate lists for fd, cd and hd, merge bioscd with biosdisk

  Create unified block IO implementation in BIOS version, like it is done in UEFI
  side. Implement fd, disk and cd device lists, this will split floppy devices
  from disks and will allow us to have consistent, predictable device naming
  (modulo BIOS issues).

  r342619:
  loader: create bio_alloc and bio_free for bios bounce buffer

  We do have 16KB buffer space defined in pxe.c, move it to bio.c and implement
  bio_alloc()/bio_free() interface to make it possible to use this space for
  other BIOS calls (notably, from biosdisk.c).

  r342626:
  Add Copyright.

  r342707:
  i386_parsedev() needs to support fd devices

  r342785:
  With buggy int13 ah=15, we can mis-identify the floppy devices.

  We have no option than trust INT13 ah=08 return code during the init phase.

  r342865:
  biospci_write_config args were backwards

  biospci_write_config args swapped length and value to write. Some
  hardware coped just fine, while other hardware had issues.

  PR: 155441, 234460

Changes:
_U  stable/11/
  stable/11/stand/common/interp_forth.c
  stable/11/stand/i386/libfirewire/firewire.c
  stable/11/stand/i386/libi386/Makefile
  stable/11/stand/i386/libi386/bio.c
  stable/11/stand/i386/libi386/bioscd.c
  stable/11/stand/i386/libi386/biosdisk.c
  stable/11/stand/i386/libi386/bootinfo32.c
  stable/11/stand/i386/libi386/devicename.c
  stable/11/stand/i386/libi386/libi386.h
  stable/11/stand/i386/libi386/pxe.c
  stable/11/stand/i386/loader/chain.c
  stable/11/stand/i386/loader/conf.c
  stable/11/stand/i386/loader/main.c
  stable/11/stand/libsa/arp.c
  stable/11/stand/libsa/assert.c
  stable/11/stand/libsa/bzipfs.c
  stable/11/stand/libsa/netif.c
  stable/11/stand/libsa/sbrk.c
  stable/11/stand/uboot/lib/copy.c
  stable/11/stand/uboot/lib/net.c