My resource map sets: DRAM mappings for each node MMIO mappings for each HT chain PCI IO mappings for each HT chain PCI Bus numbers for each HT chain
Since all of your devices are on the same HT chain in your devicetree.cb, a resourcemap should be pretty easy to do.
DRAM - All 0, but make sure to include the correct node numbers. MMIO - All (0xc0000000-0xffffffff) down link 2 of node 0. PCI-IO - All (0x0000-0xffff) on link 2 of node 0 PCI Bus numbers - All on link 2 of node 0
Hi, and thx for your replies so far. For what I understand now is that the resource map is needed for early initialization work and if I'm booting my boards without one it is just luck when they work?! Furthermore I understand that I can't use setpci to dump the vendor BIOS registers once booted into Linux.
In your case you can get most of it from Linux, just enable the whole ranges, and don't touch the DRAM registers unless you know how they interact with CAR.
Then, unfortunately, my question still remains about how to set up a correct resource map for my board? Could anyone who has done one explain how he/she did it?
I think the process should be: 1. Look at the register values from Linux 2. Set up the registers so that there is some MMIO, PCI I/O, bus resources for each link you want to touch before device enumeration (anything named early, especially). For ck804_early... It assumes that you allocate PCI I/O resources to each link in 16K blocks. Again, since you only have one non-coherent HT link, allocating the whole range there should work fine.
In the meantime I tried a different resource map from a fam10 board and it seems to work, but just because sun were shinning ??
Have you done showallroutes() before and after setting up your resource map? It will make it obvious why you need it on cold boot, and it could help you figure out what's missing. Try it on a working board and one that doesn't. I'd like to see the differences.
It would also help to know what address range is failing on inb and outb. That would tell you which register you need to play with.
Thanks, Myles