Re: maybe a bit OT: EEPROMs and PCs




Jure Sah asked about BIOS re-write:

No OT anyway,
ROM-BIOS are mainly written in pure bare-metal ASM,
even I've seen a few HLL crap routines (push ebp |mov ebp,esp..)
also in there.

| 1. I'll need hardware to access the data in the EEPROMs. I got an old
| HW-9007 ISA RAM-EEPROM card with supporting programs, so I could write
| to the EEPROMs using that, but I'd preffer to buy myself something more
| for the purpose (I have yet to sucessfully align the EEPROM legs to
| insert one into that old thing). How cheap can I get what I need?

There may be some old Eprom-burners available on Ebay (spell: Ipay).

| 2. I got the i386 computer with it's BIOS in two 128 kb EEPROMs (meaning
| lots of room and x86 assembly). My assembler makes .com files, to write
| to EEPROM I'll need properly alligned bits in raw .bin files.
| How exactly is the EEPROM being fed into the CPU on PC bootup?

The opposite direction:
after power-up/reset the CPU is fed with the BIOS-code :)
start point is a 16-bit far jump at FFFF:0000 (=F000:FFF0)

| Can I use a normal assembler to make the binaries I can burn directly?

What would you consider as normal ?
Every assembler which can create mixed binary code (16/32 bit)
and allow ORG up to FFFF:0000/0fffffff0 can be used.
So even I got my own tools (HEX_WORK85/KESYS/PAL-PROM-burner)
I see FASM, NASM, and for 16 bit only ye olde TASM and the original
MASM as opportunities.

| What do I have to do to make that work right?

Learn all about your hardware by fully disassembling the original BIOS-ROM.

| 3. Where can I find any hints on how not to screw up?

I'm afraid 'Nowhere', except for the few clerics on 'nowhere.@nevernet'
may have a few answers to your questions :)

| I suppose IBM never made a document on how to write BIOSes and give
| it around on the internet freely.

You wont find any documented BIOS standard, it just doesn't exist.
Every motherboard got it's very own features/weak points and design.
By any luck you might get a BIOS-source code from the MB-producer,
but I heavy doubt this as any useful information.

| Any way for me to get that sort of information for free?

The information is for free in your BIOS-ROM, just disassemble/read it.

| 4. Obviously I'll have to know the internals of some peripherial
| hardware (e.g.: NICs). Any hints on where to find that sort of info? I
| guess reading chip manufacturer specs will have to do for most things,
| but where (or how ;) do I get things such as base addresses and such?

Yes, you need to know all about the hardware you like to use.
RBIL will be your best friend here (bits/ports/BIOS-interrupts)

| I realize all this may be a bit complex, but I think I can do it when
| it's just me and the I/Os (no workarounds to worry about).

Not that complex if you think about small changes only.
I just modified my existing BIOS-ROMs with a few add-ons and kept the
rest as it is. There is usually plenty of unused space at E000:0000 ...

your questions are welcome here...
__
wolfgang


.



Relevant Pages

  • maybe a bit OT: EEPROMs and PCs
    ... I was thinking about adapting a few old diskless PCs to serve me for some network / hardware interface stuff by changing the BIOS program. ... I got an old HW-9007 ISA RAM-EEPROM card with supporting programs, so I could write to the EEPROMs using that, but I'd preffer to buy myself something more for the purpose. ... My assembler makes .com files, to write to EEPROM I'll need properly alligned bits in raw .bin files. ...
    (alt.lang.asm)
  • Re: Anthonys drive issues.Re: ssh password delay
    ... > hardware, without pretence it will cope with differetn pieces of ... but it's easier to find programmers who are ... expert in high-level languages than it is to find programmers who are ... assembler, and of course the HAL itself is in assembler by definition. ...
    (freebsd-questions)
  • Re: Looking for the "Unipod directory in Apps"
    ... Assembler which a C compiler doesn't use (even more so if someone just ... particular hardware buffer, fill it into an mbuf chain, and fire it off. ... everything I do with my RiscPC today involves network access. ... networking) and Simtec (for USB) haven't had the resources to do it. ...
    (comp.sys.acorn.hardware)
  • Re: Embedding assembler in a language
    ... hardware, usually via the OS, even if the interface is minimal or can be ... something outside the scope of the HLL that the HLL or a programmer using it ... as-is to the assembler in the assembly format. ... A HLL likes to use registers without regards for what the ...
    (comp.lang.misc)
  • Re: [bug] e100: checksum mismatch on 82551ER rev10
    ... You're saying that the driver is broken because it doesn't fix an error in the EEPROM? ... We're trying extremely hard to fix real errors here (especially when we find that hardware resellers send out hardware with EEPROM problems) and you are asking for a workaround that will introduce random errors and failure into your kernel. ... The bottom line is that your problem is that a specific hardware vendor is/was selling badly configured hardware, and you buy it from them, even after it's End Of Lifed for that vendor. ...
    (Linux-Kernel)