fix the command install, add some macros into netboot, fix the function set_partition_hidden_flag.
This commit is contained in:
parent
133581fe5c
commit
073695fe81
7 changed files with 93 additions and 26 deletions
31
ChangeLog
31
ChangeLog
|
@ -1,3 +1,34 @@
|
||||||
|
1999-09-20 Edmund GRIMLEY EVANS <edmundo@rano.demon.co.uk>
|
||||||
|
|
||||||
|
* netboot/3c59x.c: INCLUDE_3c59x is replaced by INCLUDE_3C59X
|
||||||
|
throughout.
|
||||||
|
* netboot/config.c: Likewise.
|
||||||
|
* netboot/io.h (__INS): New macro.
|
||||||
|
(__OUTS): Likewise.
|
||||||
|
(outl): Likewise.
|
||||||
|
(inl): Likewise.
|
||||||
|
(outl_p): Likewise.
|
||||||
|
(inl_p): Likewise.
|
||||||
|
Call __INS with the argument `b', with `w' and with `l' to
|
||||||
|
define insb, insw and insl, respectively. Likewise, Call __OUTS
|
||||||
|
with `b', with `w' and with `l' to define outsb, outw and outl,
|
||||||
|
respectively.
|
||||||
|
* netboot/pci.h (PCI_VENDOR_ID_VORTEX): New macro.
|
||||||
|
(PCI_DEVICE_ID_VORTEX_3c595): Likewise. Defined as a random
|
||||||
|
value.
|
||||||
|
|
||||||
|
1999-09-20 Edward Killips <ekillips@triton.net>
|
||||||
|
|
||||||
|
* stage2/disk_io.c (set_partition_hidden_flag): Set/cleat the
|
||||||
|
hidden flag, whether the hidden flag is set or not.
|
||||||
|
|
||||||
|
1999-09-21 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
|
||||||
|
|
||||||
|
* stage2/builtins.c (install_func): Do not set DEBUG_FS at the
|
||||||
|
first read. Set it to DEBUG_FS_BLOCKLIST_FUNC when reading the
|
||||||
|
whole of Stage 2. Set FILEPOS to zero at the same time to read
|
||||||
|
from the beginning of Stage 2. Reported by Pavel Roskin.
|
||||||
|
|
||||||
1999-09-20 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
|
1999-09-20 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
|
||||||
|
|
||||||
The argument ADDR for the command install is now optional.
|
The argument ADDR for the command install is now optional.
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
Code 930.5, Goddard Space Flight Center, Greenbelt MD 20771
|
Code 930.5, Goddard Space Flight Center, Greenbelt MD 20771
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef INCLUDE_3c59x
|
#ifdef INCLUDE_3C59X
|
||||||
|
|
||||||
|
|
||||||
#define lx_outb(a,b) outb(b,a)
|
#define lx_outb(a,b) outb(b,a)
|
||||||
|
@ -1169,4 +1169,4 @@ struct nic *VX_probe(struct nic *nic, unsigned short *probe_addrs)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* INCLUDE_3c59x */
|
#endif /* INCLUDE_3C59X */
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
#include "netboot_config.h"
|
#include "netboot_config.h"
|
||||||
|
|
||||||
#undef INCLUDE_PCI
|
#undef INCLUDE_PCI
|
||||||
#if defined(INCLUDE_NEPCI) || defined(INCLUDE_EEPRO100) || defined (INCLUDE_3c59x)
|
#if defined(INCLUDE_NEPCI) || defined(INCLUDE_EEPRO100) || defined (INCLUDE_3C59X)
|
||||||
/* || others later */
|
/* || others later */
|
||||||
#if defined(NETBOOT32) /* only for 32 bit machines */
|
#if defined(NETBOOT32) /* only for 32 bit machines */
|
||||||
#define INCLUDE_PCI
|
#define INCLUDE_PCI
|
||||||
|
@ -33,7 +33,7 @@ struct pci_device pci_nic_list[] = {
|
||||||
{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82557,
|
{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82557,
|
||||||
"Intel EtherExpressPro100"},
|
"Intel EtherExpressPro100"},
|
||||||
#endif
|
#endif
|
||||||
#ifdef INCLUDE_3c59x
|
#ifdef INCLUDE_3C59X
|
||||||
{PCI_VENDOR_ID_VORTEX, PCI_DEVICE_ID_VORTEX_3c595, "3c595"},
|
{PCI_VENDOR_ID_VORTEX, PCI_DEVICE_ID_VORTEX_3c595, "3c595"},
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -83,7 +83,7 @@ extern struct nic *cs89x0_probe(struct nic *, unsigned short *);
|
||||||
extern struct nic *ne2100_probe(struct nic *, unsigned short *);
|
extern struct nic *ne2100_probe(struct nic *, unsigned short *);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef INCLUDE_3c59x
|
#ifdef INCLUDE_3C59X
|
||||||
extern struct nic *VX_probe(struct nic *, unsigned short *);
|
extern struct nic *VX_probe(struct nic *, unsigned short *);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@ static struct dispatch_table NIC[] =
|
||||||
{ "NE*000/PCI", nepci_probe, pci_addrs },
|
{ "NE*000/PCI", nepci_probe, pci_addrs },
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef INCLUDE_3c59x
|
#ifdef INCLUDE_3C59X
|
||||||
{"VorTex/PCI", VX_probe, pci_addrs},
|
{"VorTex/PCI", VX_probe, pci_addrs},
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
40
netboot/io.h
40
netboot/io.h
|
@ -34,6 +34,18 @@ __IN1(s##c) __IN2(s,s1,"") : "=a" (_v) : "id" (port) ,##i ); return _v; } \
|
||||||
__IN1(s##_p) __IN2(s,s1,"w") : "=a" (_v) : "d" (port) ,##i ); SLOW_DOWN_IO; return _v; } \
|
__IN1(s##_p) __IN2(s,s1,"w") : "=a" (_v) : "d" (port) ,##i ); SLOW_DOWN_IO; return _v; } \
|
||||||
__IN1(s##c_p) __IN2(s,s1,"") : "=a" (_v) : "id" (port) ,##i ); SLOW_DOWN_IO; return _v; }
|
__IN1(s##c_p) __IN2(s,s1,"") : "=a" (_v) : "id" (port) ,##i ); SLOW_DOWN_IO; return _v; }
|
||||||
|
|
||||||
|
#define __INS(s) \
|
||||||
|
extern inline void ins##s(unsigned short port, void * addr, unsigned long count); \
|
||||||
|
extern inline void ins##s(unsigned short port, void * addr, unsigned long count) \
|
||||||
|
{ __asm__ __volatile__ ("cld ; rep ; ins" #s \
|
||||||
|
: "=D" (addr), "=c" (count) : "d" (port),"0" (addr),"1" (count)); }
|
||||||
|
|
||||||
|
#define __OUTS(s) \
|
||||||
|
extern inline void outs##s(unsigned short port, const void * addr, unsigned long count); \
|
||||||
|
extern inline void outs##s(unsigned short port, const void * addr, unsigned long count) \
|
||||||
|
{ __asm__ __volatile__ ("cld ; rep ; outs" #s \
|
||||||
|
: "=S" (addr), "=c" (count) : "d" (port),"0" (addr),"1" (count)); }
|
||||||
|
|
||||||
#define RETURN_TYPE unsigned char
|
#define RETURN_TYPE unsigned char
|
||||||
/* __IN(b,"b","0" (0)) */
|
/* __IN(b,"b","0" (0)) */
|
||||||
__IN(b,"")
|
__IN(b,"")
|
||||||
|
@ -50,6 +62,14 @@ __OUT(b,"b",char)
|
||||||
__OUT(w,"w",short)
|
__OUT(w,"w",short)
|
||||||
__OUT(l,,int)
|
__OUT(l,,int)
|
||||||
|
|
||||||
|
__INS(b)
|
||||||
|
__INS(w)
|
||||||
|
__INS(l)
|
||||||
|
|
||||||
|
__OUTS(b)
|
||||||
|
__OUTS(w)
|
||||||
|
__OUTS(l)
|
||||||
|
|
||||||
#define outb(port,val) \
|
#define outb(port,val) \
|
||||||
((__builtin_constant_p((port)) && (port) < 256) ? \
|
((__builtin_constant_p((port)) && (port) < 256) ? \
|
||||||
__outbc((val),(port)) : \
|
__outbc((val),(port)) : \
|
||||||
|
@ -90,4 +110,24 @@ __OUT(l,,int)
|
||||||
__inwc_p(port) : \
|
__inwc_p(port) : \
|
||||||
__inw_p(port))
|
__inw_p(port))
|
||||||
|
|
||||||
|
#define outl(port,val) \
|
||||||
|
((__builtin_constant_p((port)) && (port) < 256) ? \
|
||||||
|
__outlc((val),(port)) : \
|
||||||
|
__outl((val),(port)))
|
||||||
|
|
||||||
|
#define inl(port) \
|
||||||
|
((__builtin_constant_p((port)) && (port) < 256) ? \
|
||||||
|
__inlc(port) : \
|
||||||
|
__inl(port))
|
||||||
|
|
||||||
|
#define outl_p(port,val) \
|
||||||
|
((__builtin_constant_p((port)) && (port) < 256) ? \
|
||||||
|
__outlc_p((val),(port)) : \
|
||||||
|
__outl_p((val),(port)))
|
||||||
|
|
||||||
|
#define inl_p(port) \
|
||||||
|
((__builtin_constant_p((port)) && (port) < 256) ? \
|
||||||
|
__inlc_p(port) : \
|
||||||
|
__inl_p(port))
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -80,6 +80,8 @@ __asm__ __volatile__("pushl %0 ; popfl": /* no output */ :"g" (x):"memory")
|
||||||
#define PCI_DEVICE_ID_VIA_82C926 0x0926
|
#define PCI_DEVICE_ID_VIA_82C926 0x0926
|
||||||
#define PCI_VENDOR_ID_SURECOM 0x10bd
|
#define PCI_VENDOR_ID_SURECOM 0x10bd
|
||||||
#define PCI_DEVICE_ID_SURECOM_NE34 0x0e34
|
#define PCI_DEVICE_ID_SURECOM_NE34 0x0e34
|
||||||
|
#define PCI_VENDOR_ID_VORTEX 0x1119
|
||||||
|
#define PCI_DEVICE_ID_VORTEX_3c595 0x1234 /* Correct value unknown */
|
||||||
|
|
||||||
struct pci_device {
|
struct pci_device {
|
||||||
unsigned short vendor, dev_id;
|
unsigned short vendor, dev_id;
|
||||||
|
|
|
@ -893,20 +893,15 @@ install_func (char *arg, int flags)
|
||||||
}
|
}
|
||||||
|
|
||||||
installlist = BOOTSEC_LOCATION + STAGE1_FIRSTLIST + 4;
|
installlist = BOOTSEC_LOCATION + STAGE1_FIRSTLIST + 4;
|
||||||
debug_fs = debug_fs_blocklist_func;
|
|
||||||
|
|
||||||
/* Read the first sector of Stage 2. */
|
/* Read the first sector of Stage 2. */
|
||||||
if (! grub_read ((char *) SCRATCHADDR, SECTOR_SIZE) == SECTOR_SIZE)
|
if (! grub_read ((char *) SCRATCHADDR, SECTOR_SIZE) == SECTOR_SIZE)
|
||||||
{
|
return 1;
|
||||||
debug_fs = 0;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Check for the version of Stage 2. */
|
/* Check for the version of Stage 2. */
|
||||||
if (*((short *) (SCRATCHADDR + STAGE2_VER_MAJ_OFFS)) != COMPAT_VERSION)
|
if (*((short *) (SCRATCHADDR + STAGE2_VER_MAJ_OFFS)) != COMPAT_VERSION)
|
||||||
{
|
{
|
||||||
errnum = ERR_BAD_VERSION;
|
errnum = ERR_BAD_VERSION;
|
||||||
debug_fs = 0;
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -949,6 +944,8 @@ install_func (char *arg, int flags)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Read the whole of Stage 2. */
|
/* Read the whole of Stage 2. */
|
||||||
|
filepos = 0;
|
||||||
|
debug_fs = debug_fs_blocklist_func;
|
||||||
if (! grub_read ((char *) RAW_ADDR (0x100000), -1))
|
if (! grub_read ((char *) RAW_ADDR (0x100000), -1))
|
||||||
{
|
{
|
||||||
debug_fs = 0;
|
debug_fs = 0;
|
||||||
|
|
|
@ -340,20 +340,17 @@ set_partition_hidden_flag (int hidden)
|
||||||
if (! rawread (saved_drive, 0, 0, SECTOR_SIZE, (char *) SCRATCHADDR))
|
if (! rawread (saved_drive, 0, 0, SECTOR_SIZE, (char *) SCRATCHADDR))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (PC_SLICE_TYPE (SCRATCHADDR, part) & PC_SLICE_TYPE_HIDDEN_FLAG)
|
if (hidden)
|
||||||
{
|
PC_SLICE_TYPE (SCRATCHADDR, part) |= PC_SLICE_TYPE_HIDDEN_FLAG;
|
||||||
if (hidden)
|
else
|
||||||
PC_SLICE_TYPE (SCRATCHADDR, part) |= PC_SLICE_TYPE_HIDDEN_FLAG;
|
PC_SLICE_TYPE (SCRATCHADDR, part) &= ~PC_SLICE_TYPE_HIDDEN_FLAG;
|
||||||
else
|
|
||||||
PC_SLICE_TYPE (SCRATCHADDR, part) &= ~PC_SLICE_TYPE_HIDDEN_FLAG;
|
|
||||||
|
|
||||||
buf_track = -1;
|
buf_track = -1;
|
||||||
if (biosdisk (BIOSDISK_WRITE, saved_drive, &buf_geom,
|
if (biosdisk (BIOSDISK_WRITE, saved_drive, &buf_geom,
|
||||||
0, 1, SCRATCHSEG))
|
0, 1, SCRATCHSEG))
|
||||||
{
|
{
|
||||||
errnum = ERR_WRITE;
|
errnum = ERR_WRITE;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue