Programmers' Hardware Database

This forums is for OS project announcements including project openings, new releases, update notices, test requests, and job openings (both paying and volunteer).
User avatar
xenos
Member
Member
Posts: 1115
Joined: Thu Aug 11, 2005 11:00 pm
Freenode IRC: xenos1984
Location: Tartu, Estonia
Contact:

Programmers' Hardware Database

Post by xenos »

Recently there were a few discussions regarding things like a datasheet collection or a list of non-x86 development platforms. Since these hardware topics are interesting not only for OS developers, but also for programmers from other areas, I picked up this idea and created a new wiki focused on hardware information. You can find it here:

http://hardware.wikinet.org/wiki/Main_Page

The purpose of this wiki is to provide an encyclopedia of electronic hardware devices, their components and any further information that might be interesting from programmer's point of view. See the about page for a full motivation and a description of project goals.

If I configured everything correctly, registrations should be open and registered users are allowed to contribute. Before adding new content, please have a look at the already existing pages and categories. I'll be adding some more content during the next weeks (when I don't have to teach - because of some kind of holiday this weekend...).
Programmers' Hardware Database // GitHub user: xenos1984; OS project: NOS
User avatar
DavidCooper
Member
Member
Posts: 1150
Joined: Wed Oct 27, 2010 4:53 pm
Location: Scotland

Re: Programmers' Hardware Database

Post by DavidCooper »

I hope it takes off. The quickest way to make it useful would be to concentrate on collecting links to other sites to begin with rather than spending months or years duplicating stuff that's already out there.
Help the people of Laos by liking - https://www.facebook.com/TheSBInitiative/?ref=py_c

MSB-OS: http://www.magicschoolbook.com/computing/os-project - direct machine code programming
User avatar
xenos
Member
Member
Posts: 1115
Joined: Thu Aug 11, 2005 11:00 pm
Freenode IRC: xenos1984
Location: Tartu, Estonia
Contact:

Re: Programmers' Hardware Database

Post by xenos »

Which kind of sites would you suggest for collecting links? Something like the OSDev wiki, eLinux, Wikipedia and so on? Or manufacturers' sites, links to datasheets?
Programmers' Hardware Database // GitHub user: xenos1984; OS project: NOS
CrypticalCode0
Member
Member
Posts: 81
Joined: Wed Nov 09, 2011 2:21 am
Location: Behind a keyboard located in The Netherlands

Re: Programmers' Hardware Database

Post by CrypticalCode0 »

Reference manuals from the manufacture of a specific component, Intel for the x86 CPU's and AMD's too. (i find those important links for myself)

if you know where to find it the drivers used in linux are interresting too not very easy to port to every system but hey it's a good reference for a programmer how to setup a device.

and as book source (PC based) i would advice 'The Indispensable PC hardware book.' by Hans-Peter Messmer, a real life saver for me on more then one occasion. (for me atleast)
Qeroq
Member
Member
Posts: 52
Joined: Wed Aug 25, 2010 6:35 am
Location: Bonn, Germany

Re: Programmers' Hardware Database

Post by Qeroq »

A great idea, indeed.

What I'd consider most useful is a short summary of what the individual components do and typical ways of using them, common pitfalls etc., followed by a link to the data sheet or spec for more detailed information; this kind of overview can get you started using a device really quickly and is what I most liked about the existing osdev.org wiki.

I'd be glad to contribute some pages, if I find the time, maybe on the LAPIC or I/O APIC, and would really appreciate it if someone added some articles on architectures other than X86(-64), since I really miss them both on osdev.org and lowlevel.eu.
https://github.com/qero/Hydrogen (Loader for AMD64 kernels running on top of GRUB2)
User avatar
xenos
Member
Member
Posts: 1115
Joined: Thu Aug 11, 2005 11:00 pm
Freenode IRC: xenos1984
Location: Tartu, Estonia
Contact:

Re: Programmers' Hardware Database

Post by xenos »

CrypticalCode0 wrote:Reference manuals from the manufacture of a specific component, Intel for the x86 CPU's and AMD's too. (i find those important links for myself)

I have already added some links to different ARM manuals, and I will certainly continue with other CPUs as well, including x86 and x86_64, of course.

if you know where to find it the drivers used in linux are interresting too not very easy to port to every system but hey it's a good reference for a programmer how to setup a device.

Indeed, Linux drivers are usually a good starting point. Some of them are quite well documented. For low level stuff such as LAPIC / IOAPIC initialization I also had a look at the source code of various L4 microkernels, their implementations are quite nice.

and as book source (PC based) i would advice 'The Indispensable PC hardware book.' by Hans-Peter Messmer, a real life saver for me on more then one occasion. (for me atleast)

I think I even have a copy of this book somewhere on my shelf... There is another one, named "PC Intern", which I definitely have and which I can recommend, mostly for VGA stuff and legacy hardware.

Farok wrote:What I'd consider most useful is a short summary of what the individual components do and typical ways of using them, common pitfalls etc., followed by a link to the data sheet or spec for more detailed information; this kind of overview can get you started using a device really quickly and is what I most liked about the existing osdev.org wiki.

Good point. Indeed it would be nice to have some beginners' guides which allow you, for example, to grab some spare device (like an old Game Boy Advance), write some code, put it on the device and see it run.

I'd be glad to contribute some pages, if I find the time, maybe on the LAPIC or I/O APIC, and would really appreciate it if someone added some articles on architectures other than X86(-64), since I really miss them both on osdev.org and lowlevel.eu.

Actually non-x86 platforms are one of the reasons why I kicked off this wiki. For x86(_64) there's lots of information on the web, and there is an active community of OS developers. It is much harder to obtain information on generic ARM or MIPS platforms, except for well-documented developer boards.

I'll try to add some more information (some of which I gained by experimenting myself) on the ARM and MIPS platforms I have, including a TomTom GO 910 navigation system and a Clarke-Tech ET9000 Linux satellite receiver. My newest toy will be a 2,4" digital picture frame with an Appotech AX203 or AX206, which can be turned into a USB display :)
Programmers' Hardware Database // GitHub user: xenos1984; OS project: NOS
User avatar
xenos
Member
Member
Posts: 1115
Joined: Thu Aug 11, 2005 11:00 pm
Freenode IRC: xenos1984
Location: Tartu, Estonia
Contact:

Re: Programmers' Hardware Database

Post by xenos »

Actually I already have links to documents within the ARM infocenter on the ARM processor pages in my wiki. I've added a link to the start page on my ARM category page.
Programmers' Hardware Database // GitHub user: xenos1984; OS project: NOS
User avatar
xenos
Member
Member
Posts: 1115
Joined: Thu Aug 11, 2005 11:00 pm
Freenode IRC: xenos1984
Location: Tartu, Estonia
Contact:

Re: Programmers' Hardware Database

Post by xenos »

I started a page gathering some information on the BCM7405, for which I could not find any datasheets online. I'm still working on completing the memory map, which I obtained from carefully examining the Linux debug output from my satellite receiver. It's really fun to figure out how things fit together, and to dig into the MIPS architecture :)
Programmers' Hardware Database // GitHub user: xenos1984; OS project: NOS
CrypticalCode0
Member
Member
Posts: 81
Joined: Wed Nov 09, 2011 2:21 am
Location: Behind a keyboard located in The Netherlands

Re: Programmers' Hardware Database

Post by CrypticalCode0 »

I know how SRAM works i know how DRAM works i know how VRAM works i know SDRAM, DDR, DDR 2, WRAM, fast page, static column, Extended data output that sorta fun stuff.
but now i am hunting for two things MDRAM complete spec sheets.
I have a ET6000 video card, and i want to insert some more RAM into it and the thing eats MDRAM....
User avatar
xenos
Member
Member
Posts: 1115
Joined: Thu Aug 11, 2005 11:00 pm
Freenode IRC: xenos1984
Location: Tartu, Estonia
Contact:

Re: Programmers' Hardware Database

Post by xenos »

I have added a few pages on some Samsung SoCs (including links to datasheets) which are used, for example, in TomTom's navigation devices, a category with hardware manufacturers, and I'm still digging through some disassembled boot loader code to get some more information about the BCM7405.

Let's see what will come next...
Programmers' Hardware Database // GitHub user: xenos1984; OS project: NOS
User avatar
Brynet-Inc
Member
Member
Posts: 2426
Joined: Tue Oct 17, 2006 9:29 pm
Freenode IRC: brynet
Location: Canada
Contact:

Re: Programmers' Hardware Database

Post by Brynet-Inc »

I added a few tidbits for the RT3052
Image
Twitter: @canadianbryan. Award by smcerm, I stole it. Original was larger.
User avatar
xenos
Member
Member
Posts: 1115
Joined: Thu Aug 11, 2005 11:00 pm
Freenode IRC: xenos1984
Location: Tartu, Estonia
Contact:

Re: Programmers' Hardware Database

Post by xenos »

Brynet-Inc wrote:I added a few tidbits for the RT3052


That's exactly the one I was looking for this afternoon :D
Programmers' Hardware Database // GitHub user: xenos1984; OS project: NOS
User avatar
Brynet-Inc
Member
Member
Posts: 2426
Joined: Tue Oct 17, 2006 9:29 pm
Freenode IRC: brynet
Location: Canada
Contact:

Re: Programmers' Hardware Database

Post by Brynet-Inc »

XenOS wrote:
Brynet-Inc wrote:I added a few tidbits for the RT3052

That's exactly the one I was looking for this afternoon :D

Heh.

I just added a memory map, and started adding some other MIPS related pages. I'm still not overly fond of Wiki-syntax.
Image
Twitter: @canadianbryan. Award by smcerm, I stole it. Original was larger.
User avatar
xenos
Member
Member
Posts: 1115
Joined: Thu Aug 11, 2005 11:00 pm
Freenode IRC: xenos1984
Location: Tartu, Estonia
Contact:

Re: Programmers' Hardware Database

Post by xenos »

Having a few more MIPS pages would certainly be nice, especially on the different MIPS cores. I think I'll write a page on identifying MIPS cores by their PRId register contents as soon as I have some time.

In the meantime I have concentrated on the different ARM cores and included links to their datasheets. Now there are also pages for some OMAP SOCs, at least those for which I have found datasheets by now. (The datasheets for the two OMAP 4 SoCs in the wiki have more than 5500 pages each!) I also added a few pages for some development systems, although these contain only links to related pages so far.

Maybe I can figure out how to create an "info box" template so one can easily put an info box with commonly needed information such as CPU / core architecture, clock rates, manufacturers etc. on the top of some pages, i.e., for SoCs, application processors and so on.

BTW, I like the concept of "linking" datasheets by posting their filenames :)
Programmers' Hardware Database // GitHub user: xenos1984; OS project: NOS
User avatar
xenos
Member
Member
Posts: 1115
Joined: Thu Aug 11, 2005 11:00 pm
Freenode IRC: xenos1984
Location: Tartu, Estonia
Contact:

Re: Programmers' Hardware Database

Post by xenos »

As already announced, I created a page for the MIPS PRId register. It makes use of the "Register" template I wrote to easily format the layouts of hardware registers as tables.

I played around a bit with this template on my user page. There is certainly some room for improvements, mostly concerning the CSS formatting of these tables. Should there be a margin between the table cells (so one gets separate "boxes" for each field in a hardware register) or not? Should there be additional separation lines between the bit numbers? Should the bit numbers be placed above or below the register names? I prefer the current layout (separate boxes, bit numbers below register names, no separation lines between them), but if you'd prefer something else, just let me know.

If you wish to use the register template, have a look at the examples on my page to see how it works. You can add up to 32 fields by using the template parameters bits0 - bits31 and name0 - name31. Make sure that the parameters are filled up contiguously and start with bits0 / name0.

I had a look at the statistics page and it seems that most visitors are interested in PC hardware. Unfortunately this category has no content pages yet. If anybody has suggestions which graphics cards, sound cards, network interface cards etc. are important milestones / mostly interesting for developers at should be added to the wiki rather soon, feel free to add a page, maybe containing just a few links to some hardware documentation. I frequently look at the recent changes to manage the "content flow".

Finally, I recently stumbled across a list of Gumstix devices...
Programmers' Hardware Database // GitHub user: xenos1984; OS project: NOS
Post Reply