nested description of chains

Greg Watson gwatson at lanl.gov
Fri Sep 12 13:31:01 CEST 2003


Stefan,

This should be a relatively straight forward change to config.g. I 
would prefer to see the config format maintained, so I would suggest 
using:

     htlink 0 "mc1"
         speed = 200
         width = 8
    end

    htlink 0 "amd8131-1"  end

rather than

     htlink 0 "mc1"  speed=200 width=8
     htlink 0 "amd8131-1"

Let me know if you need any help in implementing it.

Regards,

Greg

At 4:57 PM +0200 12/9/03, Stefan Reinauer wrote:
>* ron minnich <rminnich at lanl.gov> [030912 15:06]:
>
>>  The config language only supports a parent-child relationship, and HT has
>>  a much richer interconnection structure.
>
>Yes. Currently the config tool only allows an acyclic graph for
>describing hardware. this does not suit the machine description that
>would be needed for hypertransport.
>
>>  Are you saying that we should reflect this richer topology that HT has in
>>  the config language?
>
>Yes, and I think this does not need to be really complex. See the below
>example. Then the romimage class could be extended to write a new file
>htlinks.h in case it detects "htlink" keywords in any device. I'm
>currently fighting myself a bit through config.g to see how this can be
>done.
>
>I don't think this necessarily should go to the static device tree,
>since we would have to use the device tree in romcc code then, which
>is not yet possible iirc. (And might bloat romcc code up)
>
>typedef struct htlink
>{
>         int direction; // 0,1,2 for LDT0,1,2
>         int speed;
>         int width;
>         int nodenum;  // ht device number of remote component
>} htlink_t;
>
>enum {
>NORTHBRIDGE,
>SOUTHBRIDGE,
>PCIBRIDGE,
>} htdev_t;
>
>typedev struct htdev
>{
>     htdev_t type; // type
>     int num;  // instance, i.e. the num'th device of type "type"
>     htlink_t links[3];
>} htdev_t;
>
>htdevs_t **get_htdevs()
>{
>         htdevt_t htdevs[]={
>           { NORTHBRIDGE, 0, {
>               { 0, 800, 16, 1 },
>               { 1, 800, 16, 3 },
>               { 2, 800, 16, 4 }, // range 0-3 used by cpus
>             }
>           },
>           { NORTHBRIDGE, 1, {
>               { 0, 800, 16, 0 },
>               { 1, 800, 16, 5 },
>               { 2, 800, 16, 3 },
>             }
>           },
>         [..]
>         };
>
>         return htdevs;
>}
>
>generated from a config file like this:
>
>northbridge amd/amdk8 "mc0"
>         pci 0:18.0
>         pci 0:18.0
>         pci 0:18.0
>         pci 0:18.1
>         pci 0:18.2
>         pci 0:18.3
>         htlink 0 "mc1" [ speed=default|200|400.. ] [ width=default|8|16 ]
>         htlink 1 "mc3" speed=default width=16
>         htlink 2 "amd8111" speed=600 width=8
>end
>
>northbridge amd/amdk8 "mc1"
>         pci 0:19.0
>         pci 0:19.0
>         pci 0:19.0
>         pci 0:19.1
>         pci 0:19.2
>         pci 0:19.3
>         htlink 0 "mc0"
>         htlink 1 "amd8131"
>         htlink 2 "mc3"
>end
>
>northbridge amd/amdk8 "mc2"
>         pci 0:1a.0
>         pci 0:1a.0
>         pci 0:1a.0
>         pci 0:1a.1
>         pci 0:1a.2
>         pci 0:1a.3
>         htlink 0 "mc3"
>         htlink 2 "mc0"
>end
>
>northbridge amd/amdk8 "mc3"
>         pci 0:1b.0
>         pci 0:1b.0
>         pci 0:1b.0
>         pci 0:1b.1
>         pci 0:1b.2
>         pci 0:1b.3
>         htlink 0 "mc2"
>         htlink 1 "mc1"
>end
>
>southbridge amd/amd8131 "amd8131-1"
>         pci 0:0.0
>         pci 0:0.1
>         pci 0:1.0
>         pci 0:1.1
>         htlink 0 "mc0"
>         htlink 1 "amd8131-2"
>end
>
>southbridge amd/amd8131 "amd8131-2"
>         pci 0:0.0
>         pci 0:0.1
>         pci 0:1.0
>         pci 0:1.1
>         htlink 0 "amd8131-1"
>end
>
>southbridge amd/amd8111 "amd8111"
>         pci 0:0.0
>         pci 0:1.0
>         pci 0:1.1
>         pci 0:1.2
>         pci 0:1.3
>         pci 0:1.5
>         pci 0:1.6
>         superio NSC/pc87360
>                 pnp 1:2e.0
>                 pnp 1:2e.1
>                 pnp 1:2e.2
>                 pnp 1:2e.3
>                 pnp 1:2e.4
>                 pnp 1:2e.5
>                 pnp 1:2e.6
>                 pnp 1:2e.7
>                 pnp 1:2e.8
>                 pnp 1:2e.9
>                 pnp 1:2e.a
>                 register "com1" = "{1, 0, 0x3f8, 4}"
>                 register "lpt" = "{1}"
>         end
>         htlink 0 "mc0" speed=200 width=8
>end
>
>
>Stefan
>
>--
>Architecture Team
>     SuSE Linux AG
>_______________________________________________
>Linuxbios mailing list
>Linuxbios at clustermatic.org
>http://www.clustermatic.org/mailman/listinfo/linuxbios




More information about the coreboot mailing list