79427896c53065de76b773fc40fb23e1e7b68a72
[coreboot.git] / src / mainboard / amd / serenade / Config.lb
1 ##
2 ## Compute the location and size of where this firmware image
3 ## (linuxBIOS plus bootloader) will live in the boot rom chip.
4 ##
5 if USE_FALLBACK_IMAGE
6         default ROM_SECTION_SIZE   = FALLBACK_SIZE
7         default ROM_SECTION_OFFSET = ( ROM_SIZE - FALLBACK_SIZE )
8 else
9         default ROM_SECTION_SIZE   = ( ROM_SIZE - FALLBACK_SIZE )
10         default ROM_SECTION_OFFSET = 0
11 end
12
13 ##
14 ## Compute the start location and size size of
15 ## The linuxBIOS bootloader.
16 ##
17 default PAYLOAD_SIZE            = ( ROM_SECTION_SIZE - ROM_IMAGE_SIZE )
18 default CONFIG_ROM_STREAM_START = (0xffffffff - ROM_SIZE + ROM_SECTION_OFFSET + 1)
19
20 ##
21 ## Compute where this copy of linuxBIOS will start in the boot rom
22 ##
23 default _ROMBASE      = ( CONFIG_ROM_STREAM_START + PAYLOAD_SIZE )
24
25 ##
26 ## Compute a range of ROM that can cached to speed up linuxBIOS,
27 ## execution speed.
28 ##
29 ## XIP_ROM_SIZE must be a power of 2.
30 ## XIP_ROM_BASE must be a multiple of XIP_ROM_SIZE
31 ##
32 default XIP_ROM_SIZE=65536
33 default XIP_ROM_BASE = ( _ROMBASE + ROM_IMAGE_SIZE - XIP_ROM_SIZE )
34
35 arch i386 end 
36
37 ##
38 ## Build the objects we have code for in this directory.
39 ##
40
41 driver mainboard.o
42 if HAVE_MP_TABLE object mptable.o end
43 if HAVE_PIRQ_TABLE object irq_tables.o end
44
45 ##
46 ## Romcc output
47 ##
48 makerule ./failover.E
49         depends "$(MAINBOARD)/failover.c" 
50         action "$(CPP) -I$(TOP)/src $(ROMCCPPFLAGS) $(CPPFLAGS) $(MAINBOARD)/failover.c > ./failover.E"
51 end
52
53 makerule ./failover.inc
54         depends "./failover.E ./romcc"
55         action "./romcc -O -o failover.inc --label-prefix=failover ./failover.E"
56 end
57
58 makerule ./auto.E 
59         depends "$(MAINBOARD)/auto.c option_table.h" 
60         action  "$(CPP) -I$(TOP)/src -I. $(ROMCCPPFLAGS) $(CPPFLAGS) $(MAINBOARD)/auto.c > ./auto.E"
61 end
62 makerule ./auto.inc 
63         depends "./auto.E ./romcc"
64         action  "./romcc -mcpu=k8 -O2 ./auto.E > auto.inc"
65 end
66
67 ##
68 ## Build our 16 bit and 32 bit linuxBIOS entry code
69 ##
70 mainboardinit cpu/x86/16bit/entry16.inc
71 mainboardinit cpu/x86/32bit/entry32.inc
72 ldscript /cpu/x86/16bit/entry16.lds
73 ldscript /cpu/x86/32bit/entry32.lds
74
75 ##
76 ## Build our reset vector (This is where linuxBIOS is entered)
77 ##
78 if USE_FALLBACK_IMAGE 
79         mainboardinit cpu/x86/16bit/reset16.inc 
80         ldscript /cpu/x86/16bit/reset16.lds 
81 else
82         mainboardinit cpu/x86/32bit/reset32.inc 
83         ldscript /cpu/x86/32bit/reset32.lds 
84 end
85
86 ### Should this be in the northbridge code?
87 mainboardinit arch/i386/lib/cpu_reset.inc
88
89 ##
90 ## Include an id string (For safe flashing)
91 ##
92 mainboardinit arch/i386/lib/id.inc
93 ldscript /arch/i386/lib/id.lds
94
95 ###
96 ### This is the early phase of linuxBIOS startup 
97 ### Things are delicate and we test to see if we should
98 ### failover to another image.
99 ###
100 if USE_FALLBACK_IMAGE
101         ldscript /arch/i386/lib/failover.lds 
102         mainboardinit ./failover.inc
103 end
104
105 ###
106 ### O.k. We aren't just an intermediary anymore!
107 ###
108
109 ##
110 ## Setup RAM
111 ##
112 mainboardinit cpu/x86/fpu/enable_fpu.inc
113 mainboardinit cpu/x86/mmx/enable_mmx.inc
114 mainboardinit cpu/x86/sse/enable_sse.inc
115 mainboardinit ./auto.inc
116 mainboardinit cpu/x86/sse/disable_sse.inc
117 mainboardinit cpu/x86/mmx/disable_mmx.inc
118  
119 ##
120 ## Include the secondary Configuration files 
121 ##
122 dir /pc80
123 config chip.h
124
125 chip northbridge/amd/amdk8 # mc0
126         device pci_domain 0 on
127                 device pci 18.0 on end # LDT 0 
128                 device pci 18.0 on end # LDT1
129                 device pci 18.0 on     # LDT2
130                         chip southbridge/amd/amd8131
131                                 # the on/off keyword is mandatory
132                                 device pci 0.0 on end
133                                 device pci 0.1 on end
134                                 device pci 1.0 on end
135                                 device pci 1.1 on end
136                         end
137                         chip southbridge/amd/amd8111
138                                 # this "device pci 0.0" is the parent the next one
139                                 # PCI bridge
140                                 device pci 0.0 on
141                                         device pci 0.0 on end
142                                         device pci 0.1 on end
143                                         device pci 0.2 on end
144                                         device pci 1.0 off end
145                                 end
146                                 device pci 1.0 on
147                                         chip superio/winbond/w83627hf
148                                                 device  pnp 2e.0 on  # Floppy 
149                                                          io 0x60 = 0x3f0
150                                                         irq 0x70 = 6
151                                                         drq 0x74 = 2
152                                                 end
153                                                 device pnp 2e.1 off  # Parallel Port
154                                                          io 0x60 = 0x378
155                                                         irq 0x70 = 7
156                                                 end
157                                                 device pnp 2e.2 on # Com 1
158                                                          io 0x60 = 0x3f8
159                                                         irq 0x70 = 4
160                                                 end
161                                                 device pnp 2e.3 off # Com 2
162                                                          io 0x60 = 0x2f8
163                                                         irq 0x70 = 3
164                                                 end
165                                                 device pnp 2e.5 on  # Keyboard
166                                                          io 0x60 = 0x60
167                                                          io 0x62 = 0x64
168                                                         irq 0x70 = 1
169                                                         irq 0x72 = 12
170                                                 end
171                                                 device pnp 2e.6 off end # CIR
172                                                 device pnp 2e.7 off end # GAM_MIDI_GIPO1
173                                                 device pnp 2e.8 off end # GPIO2
174                                                 device pnp 2e.9 off end # GPIO3
175                                                 device pnp 2e.a off end # ACPI
176                                                 device pnp 2e.b on      # HW Monitor
177                                                          io 0x60 = 0x290
178                                                 end 
179                                         end
180                                 end
181                                 device pci 1.1 on end
182                                 device pci 1.2 on end
183                                 device pci 1.3 on end
184                                 device pci 1.5 off end
185                                 device pci 1.6 off end
186                         end
187                 end # device pci 18.0 
188                 
189                 device pci 18.1 on end
190                 device pci 18.2 on end
191                 device pci 18.3 on end
192
193                 chip northbridge/amd/amdk8
194                         device pci 19.0 on end
195                         device pci 19.0 on end
196                         device pci 19.0 on end
197                         device pci 19.1 on end
198                         device pci 19.2 on end
199                         device pci 19.3 on end
200                 end
201         end
202         device apic_cluster 0 on
203                 chip cpu/amd/socket_940
204                         device apic 0 on end
205                 end
206                 chip cpu/amd/socket_940
207                         device apic 1 on end
208                 end
209         end
210 end
211