Showing changes from revision #0 to #1:
Added | Removed | Changed
You want to port RISC OS to a new platform? In an ideal world you’d have access to full the documentation about the platform, where every register lives and what it does. However the world is sadly not like that, and many OEMs assume that once they’ve ported Linux to their platform their job is done. So here are a few tips on how to work out information that would be in the technical manual if you had one. Be aware that a reverse engineered port is a good deal harder than one with full documentation.
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled
serial8250.0: ttyS0 at MMIO 0xfffb0000 (irq = 47) is a ST16654
For example, Raspberry Pi dmesg says:
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright© Pierre Ossman
mmc0: Unknown controller version (2). You may experience problems.
mmc0: SDHCI controller on BCM2708_Arasan [platform] using platform’s DMA
mmc0: BCM2708 SDHC host at 0×08300000 DMA 4 IRQ 20
If I do
iotools mmio_dump 0×08300000
The Dell Mini 9 laptop also has an SDHCI controller, but that’s a PCI device so dmesg doesn’t give its address. So I have to read the PCI configuration registers using iotools first to find out where in mmio space it lives before I can read it. The address can also be found using ‘lspci -vvv’. iotools mmio_dump of this address also shows a register dump that matches.
So now I can guess where the chip lives and what sort of hardware it is. I can then try to infer what’s going on from other published specifications, and check it with the Linux source.