david/ipxe
Archived
1
0
Commit Graph

1574 Commits

Author SHA1 Message Date
Michael Brown
75d864432c Use the magic of common symbols to allow struct dev to effectively grow at
link time to accommodate whatever bus objects are included.
2005-04-14 10:10:54 +00:00
Michael Brown
0dc98309b2 Stripped references to variables in C code. 2005-04-13 13:48:26 +00:00
Michael Brown
e294a1ddce EISA support now provided by eisa.c
MCA support now provided by mca.c
2005-04-13 13:06:56 +00:00
Michael Brown
200b39a645 Extraced from 3c509.c 2005-04-13 12:45:38 +00:00
Michael Brown
a4f1a058a4 Add EISA as a bus type. 2005-04-13 12:20:59 +00:00
Michael Brown
4ae83f28f2 Don't use htons, for compatibility with PCI :( 2005-04-13 12:15:14 +00:00
Michael Brown
4ecbc63296 Use __bswap_16, since we're not dealing with quantities to go onto the network. 2005-04-13 12:11:21 +00:00
Michael Brown
5b8e549c83 htons was used in ISAPnP code just due to ISAPnP storing bytes in
reverse order.
2005-04-13 12:06:33 +00:00
Michael Brown
9711f50e20 Created separate isa_ids.h file and a utility function to print out ISA
IDs in a human-readable format.
2005-04-13 12:01:44 +00:00
Michael Brown
ac1c0a753d Add MCA devices 2005-04-13 03:00:50 +00:00
Michael Brown
677cda3263 Minor fixups 2005-04-13 03:00:30 +00:00
Michael Brown
1aee4e8001 Extracted from 3c509.c 2005-04-13 02:59:13 +00:00
Michael Brown
e27ebad4b2 Whoops 2005-04-13 02:05:43 +00:00
Michael Brown
7cc6366a84 Finished by hand 2005-04-13 02:02:08 +00:00
Michael Brown
951e305081 Finished by hand 2005-04-13 01:45:20 +00:00
Michael Brown
f39cc6d978 Finished by hand 2005-04-13 01:31:44 +00:00
Michael Brown
f16ac2d87e Fix type of dummy_irq() 2005-04-13 01:28:43 +00:00
Michael Brown
9848135950 Finished by hand 2005-04-13 01:01:33 +00:00
Michael Brown
3616de915e Hand-finished 2005-04-13 00:21:59 +00:00
Michael Brown
6e8878c1fa Avoid compiler warnings. 2005-04-13 00:19:01 +00:00
Michael Brown
266dae4034 Use NIC's connect method. 2005-04-13 00:18:35 +00:00
Michael Brown
17d69d8930 Add mbps and duplex to struct nic, since some drivers (e.g. rtl8139)
can fill them in.
2005-04-13 00:16:42 +00:00
Michael Brown
28590d718b Hand-finished 2005-04-13 00:15:45 +00:00
Michael Brown
91e46ed588 Automatically updated using
perl -pi -0777 -e 's/^(\s*)dev->disable(\s*)=\s*(\w+)_disable;\s*nic->poll\s*=\s*(\w+);\s*nic->transmit\s*=\s*(\w+);\s*nic->irq\s*=\s*(\w+);/static struct nic_operations ${3}_operations;\nstatic struct nic_operations ${3}_operations = {\n\t.connect\t= dummy_connect,\n\t.poll\t\t= $4,\n\t.transmit\t= $5,\n\t.irq\t\t= $6,\n\t.disable\t= ${3}_disable,\n};${1}nic->nic_op\t= &${3}_operations;/msg' *.c
2005-04-13 00:02:40 +00:00
Michael Brown
d9c64c9422 Manual tweaks to get all drivers to follow the "disable, poll, transmit,
irq" pattern.
2005-04-12 23:47:52 +00:00
Michael Brown
881023e9ca Automatically updated using
perl -pi -e 's/(_probe\s*\(\s*struct )dev \*.*?(\s*\);)/${1}dev *dev$2/' *.c

perl -pi -e 's/(_disable\s*\(\s*struct )dev \*.*?(\s*\);)/${1}nic *nic$2/' *.c
2005-04-12 23:39:16 +00:00
Michael Brown
c87ba23399 Automatically updated using
perl -pi -0777 -e 's/_disable\s*\(\s*struct dev \*dev\s*\)\s*{\s*struct nic \*nic.*?$/_disable ( struct nic *nic ) {/ms' *.c

perl -pi -0777 -e 's/_disable\s*\(\s*struct dev \*dev(\s*__unused)?\)\s*{/_disable ( struct nic *nic$1 ) {/ms' *.c
2005-04-12 23:31:37 +00:00
Michael Brown
bd9ae7cc70 Automatically updated using
perl -pi -0777 -e 's/_probe\s*\(\s*struct dev \*dev,\s*struct pci_device \*(\w+?)\s*\)\s*{(\s*)struct nic \*nic.*?$/_probe ( struct dev *dev ) {\n${2}struct nic *nic = nic_device ( dev );\n${2}struct pci_device *$1 = pci_device ( dev );/ms' *.c
2005-04-12 23:24:39 +00:00
Michael Brown
35e6f3e58a Minor regexp tweaks to catch degenerate cases. 2005-04-12 23:13:54 +00:00
Michael Brown
4e3e389200 Auto-updated using
perl -pi -0777 -e 's/static struct pci_driver (\w+) __pci_driver = {.*\.name\s*=\s*(\"\S+\").*\.probe\s*=\s*(\w+).*\.ids\s*=\s*(\w+).*\.class\s*=\s*(\w+).*?};/static struct pci_driver $1 =\n\tPCI_DRIVER ( $2, $4, $5 );\n\nBOOT_DRIVER ( $2, $3 );/ms' *.c

perl -pi -e 's/(PCI_DRIVER \(.*, )0 \);/${1}PCI_NO_CLASS );/' *.c
2005-04-12 23:05:00 +00:00
Michael Brown
241fb0f3cd Use dev's print_info method to print standardised information about
the boot device.
2005-04-12 22:44:02 +00:00
Michael Brown
95da907d5f Add print_info method to dev_operations. 2005-04-12 22:43:25 +00:00
Michael Brown
c2a21744f6 We now record a pointer to the struct pci_device, since it's carried
around in struct dev anyway.
2005-04-12 22:42:52 +00:00
Michael Brown
e1d0cebfa8 Able to at least compile again now. 2005-04-12 19:11:42 +00:00
Michael Brown
d9f34bfdfc Add dummy_connect and dummy_irq 2005-04-12 19:11:13 +00:00
Michael Brown
81320fae4b Remove debugging by default 2005-04-12 18:32:20 +00:00
Michael Brown
27a55b514c Updated to new device API. 2005-04-12 18:23:00 +00:00
Michael Brown
1218698e01 Cope with nic.h being included before (or without) dev.h 2005-04-12 18:21:38 +00:00
Michael Brown
122b025293 Include dev.h, since several drivers just include nic.h 2005-04-12 18:15:12 +00:00
Michael Brown
8fa0e38233 Fixed up PCI-scanning code to use new PCI interface. 2005-04-12 18:13:59 +00:00
Michael Brown
3293c68488 Make adjust_pci_device global, since many drivers call it. 2005-04-12 18:10:57 +00:00
Michael Brown
762fa9a478 Fix up find_pci_device so that it can be used for scanning for devices
*other* than the main boot device.
2005-04-12 18:04:03 +00:00
Michael Brown
eb8f730d63 Use pci_{vendor,device}_id instead of just pci_{vendor,device}, to avoid
conflict with pci_device function.
2005-04-12 17:56:23 +00:00
Michael Brown
5c31682674 Tie into new boot device framework. 2005-04-12 16:54:09 +00:00
Michael Brown
1434e8d68d struct nic is now part of struct dev, rather than the other way around.
Tie into new boot device framework.
2005-04-12 16:52:59 +00:00
Michael Brown
31410b1b5d Needs to be updated to new probe logic. 2005-04-12 16:51:26 +00:00
Michael Brown
236a195257 All code related to the device probe logic is ifdeffed 0 out. 2005-04-12 16:49:59 +00:00
Michael Brown
bb293ca5c2 Global struct dev is now in main.c 2005-04-12 16:49:11 +00:00
Michael Brown
6f37dc410a print_drivers() is now unified. 2005-04-12 16:48:45 +00:00
Michael Brown
daad093c40 Now obsolete. :) 2005-04-12 16:46:57 +00:00
Michael Brown
0effbefe6f All boot device drivers are now lumped together in boot_drivers 2005-04-12 16:46:15 +00:00
Michael Brown
6343381e25 Matches new pci.c interface. 2005-04-12 16:45:40 +00:00
Michael Brown
5603c879c4 Add INIT_PCIBIOS 2005-04-12 16:45:16 +00:00
Michael Brown
3095881c54 For pci_io.c 2005-04-12 16:44:50 +00:00
Michael Brown
3901d197f7 Replaced main loop with a trivial implementation so that we can try
out the new probing logic.
2005-04-12 16:43:18 +00:00
Michael Brown
17aad49028 16-bit PCI BIOS interface also now known to work. 2005-04-12 16:42:14 +00:00
Michael Brown
45f96a49c7 main.c contains the global struct dev. 2005-04-12 16:39:03 +00:00
Michael Brown
5e807dffe6 Obsoleted by new device probing mechanism. 2005-04-12 16:38:38 +00:00
Michael Brown
17c1ca90e7 New device probing mechanism 2005-04-12 16:38:23 +00:00
Michael Brown
707720c4e5 New PCI scan functions now work. 2005-04-12 16:36:55 +00:00
Michael Brown
bbcdf38214 Improved debug messages 2005-04-12 16:27:27 +00:00
Michael Brown
ff53205d0d Should work for KEEP_IT_REAL as well now. 2005-04-12 13:35:31 +00:00
Michael Brown
0ccaf5bb83 Nearly there... 2005-04-12 13:31:36 +00:00
Michael Brown
67f122c645 Removed pci_find_device_x; it was too ugly to live. 2005-04-12 12:59:21 +00:00
Michael Brown
121e7386f6 New device probing mechanism written, not tested. 2005-04-11 19:19:35 +00:00
Michael Brown
7172d4abfb Moved functions that we want to keep to drivers/bus/pci.c 2005-04-11 13:45:00 +00:00
Michael Brown
2ebc56f334 Moved in functions from old core/pci.c that we want to keep. 2005-04-11 13:43:53 +00:00
Michael Brown
95f755ad7f Renamed pci.c to pci_legacy.c in preparation for new bus managment
infrastructure.
2005-04-11 13:25:41 +00:00
Michael Brown
63a0e0e2df Removed references to no-longer-existent CFLAGS options. 2005-04-11 10:17:00 +00:00
Michael Brown
5d96e5dad9 Changed guard name to avoid clash with INCLUDE_xxx namespace used by
drivers.
2005-04-11 09:58:31 +00:00
Michael Brown
378c1b500c Cleaner separation of functionality between post_reloc and
initialise_via_librm.
2005-04-11 09:24:10 +00:00
Michael Brown
b9237160ad Almost all information in this file is now obsolete. Writing a new driver
should, with the new build system, just be a case of writing the .c file
and dropping it in place in drivers/net.  :)
2005-04-10 23:45:55 +00:00
Michael Brown
34a0b5f16f initialise() doesn't take regs 2005-04-10 18:39:28 +00:00
Michael Brown
87508aa0b2 arch_initialise() is now sufficiently generic that we may as well just
call it initialise() and place it in main.c.  :)
2005-04-10 18:30:34 +00:00
Michael Brown
997b51c1e6 Use librm_arch_initialise for librm, arch_initialise for others. 2005-04-10 18:22:31 +00:00
Michael Brown
560027899e Heading towards a sane set of control functions 2005-04-10 18:21:53 +00:00
Michael Brown
39cb1b4f9e All the icky stuff is now taken care of by librm_arch_initialise 2005-04-10 18:21:27 +00:00
Michael Brown
d189b84536 Fix up init ordering.
Make init function table name fixed; it's a static variable anyway.
2005-04-10 18:20:38 +00:00
Michael Brown
3714946709 arch_rm_main no longer exists. 2005-04-10 18:19:59 +00:00
Michael Brown
1937b39079 Drag in relocate unless NORELOCATE is defined, since it's now called
only via the initialisation function table.
2005-04-10 18:19:05 +00:00
Michael Brown
f06e8c9707 Added post-relocation function table. 2005-04-10 18:18:37 +00:00
Michael Brown
9abceef561 Removed obsolete initialisation calls. 2005-04-10 18:13:24 +00:00
Michael Brown
070f6c0b6b Fixed debug messages 2005-04-10 16:58:19 +00:00
Michael Brown
43417e6c1b setup16() now calls initialise(); we don't have to do it. 2005-04-10 16:48:04 +00:00
Michael Brown
04682f9838 Setup now calls initialise() directly, rather than expecting the
prefix to do it.
2005-04-10 16:46:46 +00:00
Michael Brown
44e62317be Add librm_base. 2005-04-10 16:44:49 +00:00
Michael Brown
dfb9c44994 hooks.o is now a single object, rather than having separate hooks.o and
hooks_rm.o
2005-04-10 16:44:29 +00:00
Michael Brown
04a99841e6 Make prot_call() able to transparently return via the newly installed copy
of librm.
2005-04-10 15:51:10 +00:00
Michael Brown
44eee81d11 Don't build relocate() under KEEP_IT_REAL 2005-04-09 17:05:35 +00:00
Michael Brown
2fa14f2f1d lgdt needs data32 prefix, otherwise it loads only 24 bits. (sgdt
always saves 32 bits).
2005-04-09 16:42:50 +00:00
Michael Brown
6a4ac358f3 Add INIT_FNs to make sure that librm gets reallocated when needed. 2005-04-09 16:42:07 +00:00
Michael Brown
e29e6456b0 Don't zero freed base memory; one block will contain librm. 2005-04-09 16:14:37 +00:00
Michael Brown
1f6dfd7047 Allow ourselves to be freed by basemem.c without being damaged. 2005-04-09 16:14:09 +00:00
Michael Brown
97ced37c71 Need to provide sizeof(struct free_base_memory_header) to assembly code. 2005-04-09 16:13:19 +00:00
Michael Brown
90cf689810 Note basemem API change. 2005-04-09 15:56:03 +00:00
Michael Brown
ef05051f23 Add INIT_LIBRM before INIT_CONSOLE. 2005-04-09 15:26:38 +00:00
Michael Brown
48feb91a40 Rewritten in a much saner way, now that we don't have to worry about
continually reallocating the real-mode stack.
2005-04-09 15:01:38 +00:00
Michael Brown
0574136c6d Split out from etherboot.h 2005-04-09 15:01:09 +00:00
Michael Brown
8570814148 Removed basemem.c prototypes 2005-04-09 15:00:28 +00:00
Michael Brown
fd95189c4d basememsize() updates the BIOS FBMS counter at 40:13. 2005-04-09 14:16:25 +00:00
Michael Brown
a800e9657d PM function called by prot_call() should be allowed to modifying
registers returned to RM code.
2005-04-09 13:56:33 +00:00
Michael Brown
29f43896aa Add relocate.h
Note that we can't make real-mode calls immediately after relocate_to().
2005-04-09 13:36:55 +00:00
Michael Brown
9cc90cbb07 First version 2005-04-09 13:32:26 +00:00
Michael Brown
c8c7d93757 Relocation code is arch-specific. 2005-04-09 13:28:59 +00:00
Michael Brown
64d3886c1d relocate() is called by arch_initialise(). 2005-04-09 13:23:49 +00:00
Michael Brown
8039086ec8 Added a lot of explanatory comments.
Preserves alignment requested via _max_align parameter to linker.
2005-04-09 13:12:22 +00:00
Michael Brown
19176718be callbacks.h no longer exists 2005-04-09 11:19:14 +00:00
Michael Brown
792f34d228 #ifdef 0 out the UNDI loader routine, since it refers to the obsolete
callback mechanism.
2005-04-09 11:17:29 +00:00
Michael Brown
73dbe41007 Old callbacks mechanism is obsolete. 2005-04-09 11:16:17 +00:00
Michael Brown
fedd00dd46 Removed references to old callback mechanism 2005-04-09 11:15:14 +00:00
Michael Brown
9c32083d56 callbacks.h no longer exists. 2005-04-09 11:12:29 +00:00
Michael Brown
a3faaf405a Callback mechanism now obsolete 2005-04-09 11:11:34 +00:00
Michael Brown
a4920c16bd Moved relocate.c to arch-specific dir, since it involves arch-specific
logic (e.g. avoiding memory regions with A20=0).
2005-04-09 10:49:26 +00:00
Michael Brown
0ff80b477d Merged mcb30-realmode-redesign back to HEAD 2005-04-08 15:01:17 +00:00
Michael Brown
de5d935135 Merged this file into HEAD 2005-03-24 13:54:46 +00:00
Michael Brown
afff2b50f1 Obsolete; not referenced by anything. 2005-03-09 14:16:01 +00:00
Michael Brown
8bb1866f24 lzhuf is obsolete and no longer used 2005-03-09 14:14:01 +00:00
Michael Brown
168973a5d7 Obsolete; not reference by anything. 2005-03-09 14:11:45 +00:00
Michael Brown
6d4d056202 Obsolete; not referenced by anything. 2005-03-09 14:09:29 +00:00
Michael Brown
0ff846a503 unhuf.S is obsolete and no longer used 2005-03-09 14:07:23 +00:00
Michael Brown
10d9f9cec8 Obsolete and no longer used 2005-03-09 14:05:32 +00:00
Michael Brown
8bd447ad1b Add rule to generate 16-bit version of decompressor 2005-03-09 14:04:04 +00:00
Michael Brown
7700b8059c Remove CODE16 as a global define; most files define it themselves
anyway, and I want to be able to use it as a compile-time option for
the i386 decompressor.
2005-03-09 14:02:20 +00:00
Michael Brown
3d6123e69a Initial revision 2005-03-08 18:53:11 +00:00