3
\$\begingroup\$

I'm trying to find some resources on designing motherboards, but there doesn't seem to be much out there. I'm also looking for information about interfacing with an Intel 80486. I mostly understand the datasheet of the Intel 80486, and I'm already familiar with x86 asm and the x86 architecture, but there isn't much out there (that I could find) in terms of a high level initialisation / execution overview. I'm also not sure whether a full-blown BIOS is a requirement, or whether I could cheat my way out of using one (i.e. replace it with an AVR microcontroller or similar).

My end goal is to build something that runs DSL. What I'm aiming for isn't a full extensible board with PCI/ISA slots and USB support, but rather a complete bare-bones board that will run the OS. I'd be going for the absolute minimum requirements - CPU, RAM, basic GPU, IDE controller, PS/2 interface.

I'm aware that this is a hugely ambitious project, and will probably end up taking me several years, but it's something I've got a lot of interest in.

Any good resources for this level of stuff? Surely the guys who design modern motherboards must learn it from somewhere!

Update:
I'm not trying to come across as conflictory here, but I just want to take a second to pre-empt the nay-sayers. I fully understand how complex and insane this project is. I get that I can't just breadboard this stuff up - it takes a lot of time and money to do it at all, let alone do it right. I know there are a multitude of issues that make this kind of circuitry difficult to deal with - high frequency, high current, low noise requirements, tight tollerance requirements, high pin/trace density, lack of datasheets, proprietary requirements, etc. I'm still dedicated/insane enough to give it a go. I'm not asking you to explain how to do it, I'm just asking for some links to websites or books that deal with this kind of thing. I'd be extremely grateful for any useful information I can get.

\$\endgroup\$
  • 3
    \$\begingroup\$ You may want to read this thread first... \$\endgroup\$ – stevenvh May 12 '12 at 8:53
  • 2
    \$\begingroup\$ @stevenvh I read that thread already, and it's pretty clear that the guy asking it was very naive and was never going to make any headway. I, on the other hand, am well aware that it's a monstrously difficult task, but I'd like to put in the work/hours to try it. I just need somewhere to start - hence this question. \$\endgroup\$ – Polynomial May 12 '12 at 8:58
  • \$\begingroup\$ What performance are you aiming at? Multi-GHz Pentium or 400MHz ARM, for instance? The OS doesn't mean anything. \$\endgroup\$ – Federico Russo May 12 '12 at 9:12
  • 1
    \$\begingroup\$ @stevenvh - That other guy wanted to build a modern motherboard. This guy wants to do something with a 486. A 486 is waaaaay more approachable. They hark back to the days where motherboards were largely DIP. If he keeps the clock low (20 Mhz?), this should be definitely possible, if quite the challenge. \$\endgroup\$ – Connor Wolf May 12 '12 at 10:27
  • 1
    \$\begingroup\$ WHy a 486? Why not an ARM CPU such as a low-end Freescale i.mx? Those are still available in QFP, and I imagine the documentation is vastly better. Not to mention the fact that some working designs are available on the net (at least schematics, probably layouts too). These can run linux just fine, for example. \$\endgroup\$ – Thorn May 12 '12 at 13:38
3
\$\begingroup\$

You basically have two options here:

  • A current-generation 486-based CPU
    • Upside:
      • Everything will likely be integrated into the main CPU - No southbridge, IO controllers, etc...
      • you can actually buy the ICs off the shelf.
    • Downside:
      • Devices may be BGA
      • few exposed busses
      • may want to run at a few hundred Mhz.
    • By "Currently Produced", I mean something like a AMD Geode, or similar device from VIA, etc... There is a pretty big market for small, low power, low speed x86 CPUs in embedded applications.
  • A old-stock or old-design 386/486 CPU
    • Upside:
      • Probably more educational
    • Downsides:
      • Requires a LOT of devices (e.g. Southbridge, a UART, etc...), all of which are additional ICs.
      • Note: the external devices will vary depending on which 386/486 you decide on. The early ones had few integrated peripherals. Later on, many of the peripherals got integrated into the CPU itself.

There are some midpoint-devices, like the 386EX, which is a 386 intended for embedded applications. It's old enough that it's available in TQFP-144 (released in 1994), yet it includes most of the necessary peripherals on-die.
Datasheet


Some resources, off the top of my head:

CoreBoot:

A FOSS BIOS alternative.

Interesting forum thread about building a IBM XT compatible computer.


Other stuff:

Dieter's Homepage
Some nutjob who build a discrete Transistor CPU!
He also has a bunch of other homemade CPU projects


Really, If I were you, I would go with an ARM device. You can get big ARM CPUs that have MMUs, and will run linux fine.

Alternatively, an 8088 or 8086 may be significantly more approachable. There is lots of information about people homebrewing 8088 computers out there.

\$\endgroup\$
  • 2
    \$\begingroup\$ Hah. I have 6,666 rep! I think that makes this the most evil post of them all! \$\endgroup\$ – Connor Wolf May 12 '12 at 11:10
  • \$\begingroup\$ Digikey lists a couple of 100MHz 486DX4s in SQFP package. \$\endgroup\$ – stevenvh May 12 '12 at 11:11
  • \$\begingroup\$ @stevenvh - No kidding? Huh. Must be for embedded applications. \$\endgroup\$ – Connor Wolf May 12 '12 at 11:11
  • \$\begingroup\$ "will almost certainly be BGA". Dixit Fake... \$\endgroup\$ – stevenvh May 12 '12 at 11:13
  • \$\begingroup\$ @stevenvh - I said almost. \$\endgroup\$ – Connor Wolf May 12 '12 at 11:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.