summaryrefslogtreecommitdiffstats
path: root/src/arch
diff options
context:
space:
mode:
authorSimon Rettberg2021-04-15 11:29:11 +0200
committerSimon Rettberg2021-04-15 11:29:11 +0200
commite6589858be226fa86b109a7737b0780bf5640697 (patch)
treeca95febb1511ad0b206fd20eb912639f3c3db14a /src/arch
parentMerge branch 'master' into openslx (diff)
parent[xen] Support scatter-gather to allow for jumbo frames (diff)
downloadipxe-e6589858be226fa86b109a7737b0780bf5640697.tar.gz
ipxe-e6589858be226fa86b109a7737b0780bf5640697.tar.xz
ipxe-e6589858be226fa86b109a7737b0780bf5640697.zip
Merge branch 'master' into openslx
Diffstat (limited to 'src/arch')
-rw-r--r--src/arch/x86/include/ipxe/pcidirect.h4
-rw-r--r--src/arch/x86/interface/pcbios/int13.c4
2 files changed, 4 insertions, 4 deletions
diff --git a/src/arch/x86/include/ipxe/pcidirect.h b/src/arch/x86/include/ipxe/pcidirect.h
index 9570fd7d6..decdc8100 100644
--- a/src/arch/x86/include/ipxe/pcidirect.h
+++ b/src/arch/x86/include/ipxe/pcidirect.h
@@ -32,8 +32,8 @@ extern void pcidirect_prepare ( struct pci_device *pci, int where );
*/
static inline __always_inline int
PCIAPI_INLINE ( direct, pci_num_bus ) ( void ) {
- /* No way to work this out via Type 1 accesses */
- return 0x100;
+ /* Scan first bus and rely on bridge detection to find higher buses */
+ return 1;
}
/**
diff --git a/src/arch/x86/interface/pcbios/int13.c b/src/arch/x86/interface/pcbios/int13.c
index 30530e197..d6c4d7ebf 100644
--- a/src/arch/x86/interface/pcbios/int13.c
+++ b/src/arch/x86/interface/pcbios/int13.c
@@ -678,10 +678,10 @@ static int int13_get_disk_type ( struct san_device *sandev,
* @ret cx Extensions API support bitmap
* @ret status Status code / API version
*/
-static int int13_extension_check ( struct san_device *sandev __unused,
+static int int13_extension_check ( struct san_device *sandev,
struct i386_all_regs *ix86 ) {
- if ( ix86->regs.bx == 0x55aa ) {
+ if ( ( ix86->regs.bx == 0x55aa ) && ! int13_is_fdd ( sandev ) ) {
DBGC2 ( sandev, "INT13 extensions installation check\n" );
ix86->regs.bx = 0xaa55;
ix86->regs.cx = ( INT13_EXTENSION_LINEAR |