How hard would it be to design, source components and construct a motherboard for something simple such as a 486DX from scratch?
I am interested in doing this primarily to learn about what it takes to design a motherboard and what's in them and how the components interact.
Cheers, Rex
How hard would it be to design, source components and construct a motherboard for something simple such as a 486DX from scratch?
I'm the software guy but, I think you don't need the chipset, maybe 80386SX with static ram aka 62512 and some simple decoders would be good choice. For dynamic RAM you would need some controller. For the "legacy" PC i think you need to implement
8042 - keyboard + extra bits 8253/8254 - Timer 8259 - Interrupt controller 8237 - Possibly you might need DMA controller if you want to use floppy etc
Maybe doing this in some CPLD/FPGA would also be an option.
For the bus, I would choose ISA...
80386SX has 16bit bus so not so many wires. Sufficiently low clocks.
Thanks Rudolf
Thanks for the input. I have only really done much software before too so this is a big jump for me.
Those numbers (8042 - keyboard + extra bits 8253/8254 - Timer 8259 - Interrupt controller 8237 - Possibly you might need DMA controller if you want to use floppy etc) are the identification numbers of the chips themselves right?
Cheers, Rex
On Fri, 2012-11-23 at 10:57 +0100, Rudolf Marek wrote:
How hard would it be to design, source components and construct a motherboard for something simple such as a 486DX from scratch?
I'm the software guy but, I think you don't need the chipset, maybe 80386SX with static ram aka 62512 and some simple decoders would be good choice. For dynamic RAM you would need some controller. For the "legacy" PC i think you need to implement
8042 - keyboard + extra bits 8253/8254 - Timer 8259 - Interrupt controller 8237 - Possibly you might need DMA controller if you want to use floppy etc
Maybe doing this in some CPLD/FPGA would also be an option.
For the bus, I would choose ISA...
80386SX has 16bit bus so not so many wires. Sufficiently low clocks.
Thanks Rudolf
Please trim quotes and use inline replies, same on the coreboot list as on every other mailing list. I find a good email software very important for easy use of lists.
Rex O'Regan wrote:
Thanks for the confidence, you make it sound like others are designing for other processors.
Um, mainboards designed today are generally for the processors that come onto the market in a few years.
Any designs with obsolete technology are either for niche markets, for learning purposes, or just for fun.
I just chose the 486 as it seems to be about the most basic that can still be used
Please clarify what you mean by that.
if there are others doing a similar thing with another class
Noone is.
Rex O'Regan wrote:
Thanks for the input. I have only really done much software before too so this is a big jump for me.
Those numbers
Certainly for 486 and possibly already for 386 you would look for integrated chipsets, rather than using the discrete original Intel parts, or you'll most likely need to design custom hardware, e.g. in programmable logic, to sit in between.
Without any hardware experience whatsoever I'd suggest that it takes three to five years of full time very fast learning with really good mentoring to design a mainboard that can run Doom.
//Peter
On Sat, 24 Nov 2012 00:06:45 +0100 Peter Stuge peter@stuge.se wrote:
Rex O'Regan wrote:
I just chose the 486 as it seems to be about the most basic that can still be used
Please clarify what you mean by that.
Maybe he had an other thing in mind but I think that you can still run Linux on a 486, and from what I remember when I programmed on such a computer it was fairly usable even to compile (simple) programs with GCC if you were not in a hurry. And you could also use DOS compilers of that area, which were a lot faster (because of the single target, no assembly pass, ...)
if there are others doing a similar thing with another class
Noone is.
Either I don't understand the question, or I don't understand the answer. I'm part of a team that designs a ~ Pentium M class motherboard for a custom purpose (telephony server / IPBX) using an Intel SoC (EP80579 -- the CPU in that thing is a Pentium M). (Info here: http://www.ohanda.org/products/xivo-ipbx-open-hardware design files there : http://git.xivo.fr/?s=xioh under GNU GPLv3+ -- the equipment has the OHANDA trademark that guarantees Open Hardware) So it is not just for fun, but it is also not a motherboard for the next state of the art processor that will only hit the market next year. And we are a very small team considering the custom blocs in our design and that we take care of both the hardware and all the BSP.
Rex O'Regan wrote:
Thanks for the input. I have only really done much software before too so this is a big jump for me.
Those numbers
Certainly for 486 and possibly already for 386 you would look for integrated chipsets, rather than using the discrete original Intel parts, or you'll most likely need to design custom hardware, e.g. in programmable logic, to sit in between.
I agree on that: finding compatible discrete parts risk to be quite hard, so you should target a System On Chip based board, or try to use programmable logic but only if you feel very adventurous and have a lot of time. Don't take my word for it and try to find if you can order some compatible discrete parts anyway, maybe it is easier than I think.
Without any hardware experience whatsoever I'd suggest that it takes three to five years of full time very fast learning with really good mentoring to design a mainboard that can run Doom.
Doom can run poorly on a 386 and starts to be pleasant on a 486. With today resources, if you make a reasonable initial part choice and rely on reference designs for all the functional blocs you will connect, you can probably get to a board of your own of that class and that does run Doom in probably less than that, depending on the amount of time you can spend on it day to day.
If it is just a hobby you'll be able to skip some time consuming and expensive points that are necessary to create a product (like certification)
Still, I agree it would be a time consuming hobby... and you should have a decent knowledge of electronic engineering or be ready to learn it to attempt it.
Cheers, Guillaume Knispel
Long ago, one could buy a bunch of off-the-shelf ICs (e.g. 6809, 8086, etc.) and build a computer. I used to do it. It required a very low level of skill.
That's no longer true. If you wonder at possible reasons, see:
https://docs.google.com/presentation/d/1-_cgb4gRhZxl9anxudIgO_NAB80yq-ks4HtO...
The fact that you could build such systems was no accident: it was the result of very careful engineering.
Nowadays, now that I see the engineers who do this kind of design at Google with modern chipsets such as sandybridge, I marvel at how hard it is. It is unlikely that Apple II could happen today with these newer chipsets and CPUs.
If you want to do your own board design best start with a modern chip that's designed to allow such activities, i.e.a SOC such as an AMD SC520 (can you buy those any more?) or one of the ARM SOCs. Just my 2 cents.
ron
Has there been any attempt to run coreboot on an (already existing ) 486 motherboard??
Perhaps, that could be a good starting point.
Best regards, Jeroen Krabbendam
On Fri, Nov 23, 2012 at 04:45:02PM +1100, Rex O'Regan wrote:
How hard would it be to design, source components and construct a motherboard for something simple such as a 486DX from scratch?
I am interested in doing this primarily to learn about what it takes to design a motherboard and what's in them and how the components interact.
Cheers, Rex
-- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
On 23.11.2012 17:49, jeroenkrabbendam@fastmail.fm wrote:
Has there been any attempt to run coreboot on an (already existing ) 486 motherboard??
I think most close is bifferboard (which is not on the wiki page) It has kind of Soc of 486type without CPUID/TSC. I made it work with coreboot and serialICE.
Thanks Rudolf
Perhaps, that could be a good starting point.
Best regards, Jeroen Krabbendam
On Fri, Nov 23, 2012 at 04:45:02PM +1100, Rex O'Regan wrote:
How hard would it be to design, source components and construct a motherboard for something simple such as a 486DX from scratch?
I am interested in doing this primarily to learn about what it takes to design a motherboard and what's in them and how the components interact.
Cheers, Rex
-- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
Hi Rex,
Rex O'Regan wrote:
How hard would it be to design, source components and construct a motherboard for something simple such as a 486DX from scratch?
I am interested in doing this primarily to learn about what it takes to design a motherboard and what's in them and how the components interact.
Not very many are designing 486-class boards these days, so you will not get many answers. If you want to find out I think you have to try.
As always, keeping it simple and introducing one or at least very few unknowns each time helps the success rate.
You'll need various tooling for bringup, oscilloscope, logic analyzer, and so on. But with 500-1000 EUR/USD you can already get quite a useful lab set up! Of course not name brand state of the art, but wholly adequate for a hobbyist mainboard design.
Programmable logic is certainly one way to go, but would of course bypass the procurement exercise.
If you have time - a fun project!
//Peter
On Fri, 2012-11-23 at 22:45 +0100, Peter Stuge wrote:
Hi Rex,
Rex O'Regan wrote:
How hard would it be to design, source components and construct a motherboard for something simple such as a 486DX from scratch?
I am interested in doing this primarily to learn about what it takes to design a motherboard and what's in them and how the components interact.
Not very many are designing 486-class boards these days, so you will not get many answers. If you want to find out I think you have to try.
As always, keeping it simple and introducing one or at least very few unknowns each time helps the success rate.
You'll need various tooling for bringup, oscilloscope, logic analyzer, and so on. But with 500-1000 EUR/USD you can already get quite a useful lab set up! Of course not name brand state of the art, but wholly adequate for a hobbyist mainboard design.
Programmable logic is certainly one way to go, but would of course bypass the procurement exercise.
If you have time - a fun project!
//Peter
Thanks for the confidence, you make it sound like others are designing for other processors. I just chose the 486 as it seems to be about the most basic that can still be used but if there are others doing a similar thing with another class I would be quite happy to use a different class to get access to more information.
Cheers, Rex
Hi Rex,
Rex O'Regan rexoregan20@yahoo.com.au writes:
How hard would it be to design, source components and construct a motherboard for something simple such as a 486DX from scratch?
I am interested in doing this primarily to learn about what it takes to design a motherboard and what's in them and how the components interact.
I did exactly that back in the 90s (think 1995) with a 80486DX2. It doesn't take much parts to get a basic system running, but you need a lot of glue logic for RAM control and other stuff. I used a lot of 74F logic parts on those boards. The main problem was wiring all the components on a wire wrap pcb.
Nowadays it should be much simpler with all the FPGA/CPLD stuff available.
Regards Sven
On Mon, Nov 26, 2012 at 3:00 PM, Sven Schnelle svens@stackframe.org wrote:
Nowadays it should be much simpler with all the FPGA/CPLD stuff available.
With some parts. With something like a sandybridge I think it is most unlikely that it can be done.
ron
Thanks for all the input... from what everyone on here is saying it seems to me like it will be another big, long project with lots for me to learn. :)
The best implementation would be along the lines of a 486 chip connected to FPGA(?). Then implement all I/O in the FPGA. Is that what the consensus is?
Cheers, Rex
I think you should look at ARM, personally.
ron
Rex O'Regan wrote:
The best implementation would be along the lines of a 486 chip connected to FPGA(?). Then implement all I/O in the FPGA. Is that what the consensus is?
Either that, or use a chipset from that era, if you can find one.
//Peter
I've been designing motherboards for ~30 years and I'd recommend that you just learn VHDL, Verilog and also get familiar with Orcad Capture, Allegro, FPGA vendor tools, Altium and maybe PADS. Then you can spend all the time you want with IP blocks from opencores or wherever, as well as design your own.
Many ARM SOC's wil be easier for you to work with and also to access docs.
If you get a good understanding of these things you'll be able design just about anything. Either for vendors making reliable quality boards or most everything else.
If you're serious about becoming a PC hardware engineer another thing I'd recommend is learning about thermal management. Not that it would be used for building long lasting products but more so for being able to design boards that live just beyond the warranty period. Keep those components warm (but not too hot so the MTBF drops too low), and use cheap capacitors to insure that you'll have obsolete products just beyond the warranty periods. It's getting harder to find people that actually understand how to design good hardware anymore from the gate or even component level, or the vendors that want or value them.
You'll find hundreds of pages of app notes on high speed PCB design that seems to be ignored by many. You should also be able to find older board design guides from chipset vendors that go into details on proper 4-layer PCB stackup, BGA breakout and general great info on routing clock lines, USB, high speed memory, hypertransport, high current low voltage power planes, etc, etc.
Most PC and consumer electronics products today are designed with the 1000 monkeys approach or cut and paste (they just copy a reference design) vs a few knowledgeable engineers. The x86 chipset and CPU vendors provide board makers with reference sections of PCB layouts that are just cut and past into their board layouts for this reason.
-Bari
On 11/27/2012 01:41 AM, Rex O'Regan wrote:
Thanks for all the input... from what everyone on here is saying it seems to me like it will be another big, long project with lots for me to learn. :)
The best implementation would be along the lines of a 486 chip connected to FPGA(?). Then implement all I/O in the FPGA. Is that what the consensus is?
Cheers, Rex