Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/netbsd-8]: src/sys/arch/i386/stand Pull up following revision(s) (reques...
details: https://anonhg.NetBSD.org/src/rev/002483da4c7d
branches: netbsd-8
changeset: 434769:002483da4c7d
user: martin <martin%NetBSD.org@localhost>
date: Wed Mar 21 10:50:49 2018 +0000
description:
Pull up following revision(s) (requested by nonaka in ticket #648):
sys/arch/i386/stand/efiboot/efidisk.c: revision 1.3
sys/arch/i386/stand/efiboot/devopen.c: revision 1.3
sys/arch/i386/stand/efiboot/boot.c: revision 1.7
sys/arch/i386/stand/lib/biosdisk.c: revision 1.48
efiboot: fix it can't boot from HDD.
efiboot: more pager.
efiboot: boot device is always efi_distlist first element.
efiboot: fix to find boot partition process.
NetBSD related partitions with no bootme flag set are also candidates
for boot partition.
diffstat:
sys/arch/i386/stand/efiboot/boot.c | 8 +++++++-
sys/arch/i386/stand/efiboot/devopen.c | 4 ++--
sys/arch/i386/stand/efiboot/efidisk.c | 15 ++++++---------
sys/arch/i386/stand/lib/biosdisk.c | 28 +++++++++++++++-------------
4 files changed, 30 insertions(+), 25 deletions(-)
diffs (120 lines):
diff -r 4f28bb1a57a0 -r 002483da4c7d sys/arch/i386/stand/efiboot/boot.c
--- a/sys/arch/i386/stand/efiboot/boot.c Wed Mar 21 10:08:02 2018 +0000
+++ b/sys/arch/i386/stand/efiboot/boot.c Wed Mar 21 10:50:49 2018 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: boot.c,v 1.5.2.1 2018/03/13 14:54:52 martin Exp $ */
+/* $NetBSD: boot.c,v 1.5.2.2 2018/03/21 10:50:49 martin Exp $ */
/*-
* Copyright (c) 2016 Kimihiro Nonaka <nonaka%netbsd.org@localhost>
@@ -627,6 +627,12 @@
break;
Print(L"DevicePathType %d\n", DevicePathType(dp0));
+ if (++row >= rows) {
+ row = 0;
+ Print(L"Press Any Key to continue :");
+ (void) awaitkey(-1, 0);
+ Print(L"\n");
+ }
for (dp = dp0;
!IsDevicePathEnd(dp);
dp = NextDevicePathNode(dp)) {
diff -r 4f28bb1a57a0 -r 002483da4c7d sys/arch/i386/stand/efiboot/devopen.c
--- a/sys/arch/i386/stand/efiboot/devopen.c Wed Mar 21 10:08:02 2018 +0000
+++ b/sys/arch/i386/stand/efiboot/devopen.c Wed Mar 21 10:50:49 2018 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: devopen.c,v 1.1.12.1 2018/03/13 14:54:52 martin Exp $ */
+/* $NetBSD: devopen.c,v 1.1.12.2 2018/03/21 10:50:49 martin Exp $ */
/*-
* Copyright (c) 2005 The NetBSD Foundation, Inc.
@@ -66,7 +66,7 @@
if (strcmp(devname, "hd") == 0)
*biosdev = 0x80 + unit;
- if (strcmp(devname, "cd") == 0)
+ else if (strcmp(devname, "cd") == 0)
*biosdev = 0x80 + get_harddrives() + unit;
else
return ENXIO;
diff -r 4f28bb1a57a0 -r 002483da4c7d sys/arch/i386/stand/efiboot/efidisk.c
--- a/sys/arch/i386/stand/efiboot/efidisk.c Wed Mar 21 10:08:02 2018 +0000
+++ b/sys/arch/i386/stand/efiboot/efidisk.c Wed Mar 21 10:50:49 2018 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: efidisk.c,v 1.1.12.1 2018/03/13 14:54:52 martin Exp $ */
+/* $NetBSD: efidisk.c,v 1.1.12.2 2018/03/21 10:50:49 martin Exp $ */
/*-
* Copyright (c) 2016 Kimihiro Nonaka <nonaka%netbsd.org@localhost>
@@ -106,14 +106,11 @@
FreePool(handles);
if (efi_bootdp_type == BIOSDISK_TYPE_CD) {
- TAILQ_FOREACH(edi, &efi_disklist, list) {
- if (edi->bootdev) {
- edi = TAILQ_FIRST(&efi_disklist);
- edi->type = BIOSDISK_TYPE_CD;
- TAILQ_REMOVE(&efi_disklist, edi, list);
- TAILQ_INSERT_TAIL(&efi_disklist, edi, list);
- break;
- }
+ edi = TAILQ_FIRST(&efi_disklist);
+ if (edi != NULL && edi->bootdev) {
+ edi->type = BIOSDISK_TYPE_CD;
+ TAILQ_REMOVE(&efi_disklist, edi, list);
+ TAILQ_INSERT_TAIL(&efi_disklist, edi, list);
}
}
diff -r 4f28bb1a57a0 -r 002483da4c7d sys/arch/i386/stand/lib/biosdisk.c
--- a/sys/arch/i386/stand/lib/biosdisk.c Wed Mar 21 10:08:02 2018 +0000
+++ b/sys/arch/i386/stand/lib/biosdisk.c Wed Mar 21 10:50:49 2018 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: biosdisk.c,v 1.46.6.1 2018/03/13 14:54:52 martin Exp $ */
+/* $NetBSD: biosdisk.c,v 1.46.6.2 2018/03/21 10:50:49 martin Exp $ */
/*
* Copyright (c) 1996, 1998
@@ -802,20 +802,21 @@
if (d->part[partition].fstype == FS_UNUSED)
continue;
#ifdef EFIBOOT
- if (d->part[partition].attr & GPT_ENT_ATTR_BOOTME) {
- switch (d->part[partition].fstype) {
- case FS_BSDFFS:
- case FS_BSDLFS:
- case FS_RAID:
- case FS_CCD:
- case FS_CGD:
- case FS_ISO9660:
- break;
+ switch (d->part[partition].fstype) {
+ case FS_BSDFFS:
+ case FS_BSDLFS:
+ case FS_RAID:
+ case FS_CCD:
+ case FS_CGD:
+ case FS_ISO9660:
+ if (d->part[partition].attr & GPT_ENT_ATTR_BOOTME)
+ goto found;
+ candidate = partition;
+ break;
- default:
+ default:
+ if (d->part[partition].attr & GPT_ENT_ATTR_BOOTME)
candidate = partition;
- continue;
- }
break;
}
#else
@@ -824,6 +825,7 @@
#endif
}
#ifdef EFIBOOT
+found:
if (partition == 0 && candidate != 0)
partition = candidate;
#endif
Home |
Main Index |
Thread Index |
Old Index