From mboxrd@z Thu Jan 1 00:00:00 1970 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C94BF0.0709D8AA" Date: Fri, 21 Nov 2008 16:44:23 +0100 Message-ID: From: "Rubio, Martial" Subject: [Xenomai-help] External PCIe device: MSI interrupt install hangs up the CPU List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: xenomai@xenomai.org Cc: jeanfrancois.gilot@domain.hid, "Dupeyrou, Gilles" This is a multi-part message in MIME format. ------_=_NextPart_001_01C94BF0.0709D8AA Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hello everybody =20 I'm working with following config :=20 =20 CPU (0=3D>3) AMD Dual Core AMD Opteron=20 Linux version 2.6.25-pae Xenomai : hal / i386 Xenomai : real time nucleus v2.4.5 =20 Here's below the state of /proc/interrupts : =20 in red fonts the range of PCIe(xpress)-MSI vectors : =20 hurle-bise [anaisvs](34):more /proc/interrupts CPU0 CPU1 CPU2 CPU3 0: 146 0 0 0 XT-PIC-XT timer 1: 1039 0 0 0 XT-PIC-XT i8042 2: 0 0 0 0 XT-PIC-XT cascade 4: 5 0 0 0 XT-PIC-XT 5: 2 0 0 0 XT-PIC-XT ehci_hcd:usb2 6: 5 0 0 0 XT-PIC-XT floppy 7: 16300 0 0 0 XT-PIC-XT ohci_hcd:usb1 10: 155104 0 0 0 XT-PIC-XT ioc0, sata_nv, sata_nv, ohci1394 11: 47305 0 0 0 XT-PIC-XT sata_nv, HDA Intel 14: 0 0 0 0 XT-PIC-XT pata_amd 15: 0 0 0 0 XT-PIC-XT pata_amd 212: 0 9 487 1942504 PCI-MSI-edge eth0 213: 0 0 0 0 PCI-MSI-edge shpchp NMI: 0 0 0 0 Non-maskable interrupts LOC: 3722798 3722767 3722730 3722768 Local timer interrupts RES: 39386 37672 23570 25780 Rescheduling interrupts CAL: 1112 1273 1280 250 function call interrupts TLB: 6144 8510 6271 9025 TLB shootdowns TRM: 0 0 0 0 Thermal event interrupts SPU: 0 0 0 0 Spurious interrupts ERR: 1 MIS: 0 =20 I try to install a new MSI interrupt via rtdm package (rtdm_irq_request) with a vector number (211) given by the call to pci_msi_enable for the new PCIe device. =20 The system hangs up immediatly (sometimes I can catch the stack trace with dmesg the last reference seems to be in rt_hal package) =20 If I replace (for debug only!!!) this vector number by an unused "classical" vector number (for instance 14 or 15) ... no problem. =20 Have you allready test this kind of configuration ... if so a little help from your part would be greatly appreciated! =20 Kind regards =20 Martial Rubio =20 Eurocopter France - ETZSR Technical software manager =20 * : > ( 04 42 85 68 11=20 7 04 42 85 88 35 =20 ------_=_NextPart_001_01C94BF0.0709D8AA Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable
Hello=20 everybody
 
I'm=20 working with following config : 
 
CPU (0=3D>3)=20 AMD Dual Core AMD Opteron
Linux version=20 2.6.25-pae
Xenomai : hal=20 / i386
Xenomai : real=20 time nucleus v2.4.5
 
Here's below=20 the state of /proc/interrupts :
 
in red fonts=20 the range of PCIe(xpress)-MSI vectors :
 
hurle-bise=20 [anaisvs](34):more=20 /proc/interrupts
         = ; =20 CPU0      =20 CPU1      =20 CPU2       CPU3
 =20 0:       =20 146         =20 0         =20 0          = 0   =20 XT-PIC-XT        timer
 =20 1:      =20 1039         =20 0         =20 0          = 0   =20 XT-PIC-XT        i8042
 =20 2:         =20 0         =20 0         =20 0          = 0   =20 XT-PIC-XT        cascade
 =20 4:         =20 5         =20 0         =20 0          = 0   =20 XT-PIC-XT
  = 5:         =20 2         =20 0         =20 0          = 0   =20 XT-PIC-XT        = ehci_hcd:usb2
 =20 6:         =20 5         =20 0         =20 0          = 0   =20 XT-PIC-XT        floppy
 =20 7:     =20 16300         =20 0         =20 0          = 0   =20 XT-PIC-XT       =20 ohci_hcd:usb1
 10:    =20 155104         =20 0         =20 0          = 0   =20 XT-PIC-XT        ioc0, sata_nv, = sata_nv,=20 ohci1394
 11:     =20 47305         =20 0         =20 0          = 0   =20 XT-PIC-XT        sata_nv, HDA=20 Intel
 14:          = 0         =20 0         =20 0          = 0   =20 XT-PIC-XT       =20 pata_amd
 15:        &nbs= p;=20 0         =20 0         =20 0          = 0   =20 XT-PIC-XT        pata_amd
212:         = ;=20 0         =20 9        487   =20 1942504   PCI-MSI-edge     =20 eth0
213:         =20 0         =20 0         =20 0          0  =20 PCI-MSI-edge     =20 shpchp

NMI:        &nbs= p;=20 0         =20 0         =20 0          0  =20 Non-maskable interrupts
LOC:    = 3722798   =20 3722767    3722730    3722768   = Local=20 timer interrupts
RES:     =20 39386      37672     =20 23570      25780   Rescheduling=20 interrupts
CAL:      =20 1112      =20 1273      =20 1280        250   function = call=20 interrupts
TLB:      =20 6144      =20 8510      =20 6271       9025   TLB=20 shootdowns
TRM:          = 0         =20 0         =20 0          0   = Thermal=20 event = interrupts
SPU:          = 0         =20 0         =20 0          0   = Spurious=20 interrupts
ERR:          = 1
MIS:         =20 0
 
I try to=20 install a new MSI interrupt via rtdm package (rtdm_irq_request)=20 with
a vector=20 number (211) given by the call to pci_msi_enable for the = new PCIe=20 device.
 
The system=20 hangs up immediatly (sometimes I can catch the stack trace with=20 dmesg
the last=20 reference seems to be in rt_hal package)
 
If I replace=20 (for debug only!!!) this vector number by an unused "classical" = vector=20 number (for instance
14 or 15) ...=20 no problem.
 
Have you=20 allready test this kind of configuration ... if so a little help from = your part=20 would be
greatly=20 appreciated!
 
Kind=20 regards
 

Martial Rubio   =20

Eurocopter=20 France – ETZSR

Technical=20 software manager

 

* :=20 <mailto:martial.rubio@domain.hid>

( =20 04 42=20 868 11 

7     =20 04 42 85 88 = 35


 
------_=_NextPart_001_01C94BF0.0709D8AA-- From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <4926E5C6.8030502@domain.hid> Date: Fri, 21 Nov 2008 17:45:58 +0100 From: Jan Kiszka MIME-Version: 1.0 References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Xenomai-help] External PCIe device: MSI interrupt install hangs up the CPU List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Rubio, Martial" Cc: jeanfrancois.gilot@domain.hid, xenomai@xenomai.org, "Dupeyrou, Gilles" Rubio, Martial wrote: > Hello everybody > > I'm working with following config : > > CPU (0=>3) AMD Dual Core AMD Opteron > Linux version 2.6.25-pae 2.6.25 comes with the risk of missing relevant fixes that went into .26 and later. Do you have a chance to update? 2.6.27 is a bit fresh, 2.6.26.7 + ipipe-2.0-16 would be a conservative approach right now. > Xenomai : hal / i386 > Xenomai : real time nucleus v2.4.5 > > Here's below the state of /proc/interrupts : > > in red fonts the range of PCIe(xpress)-MSI vectors : Uuh, please don't expect the reader to have HTML rendering on for a typically text-only medium like mail. Yeah, it tends to be the other way around inside companies, I know... > > hurle-bise [anaisvs](34):more /proc/interrupts > CPU0 CPU1 CPU2 CPU3 > 0: 146 0 0 0 XT-PIC-XT > timer > 1: 1039 0 0 0 XT-PIC-XT > i8042 > 2: 0 0 0 0 XT-PIC-XT > cascade > 4: 5 0 0 0 XT-PIC-XT > 5: 2 0 0 0 XT-PIC-XT > ehci_hcd:usb2 > 6: 5 0 0 0 XT-PIC-XT > floppy > 7: 16300 0 0 0 XT-PIC-XT > ohci_hcd:usb1 > 10: 155104 0 0 0 XT-PIC-XT > ioc0, sata_nv, sata_nv, ohci1394 > 11: 47305 0 0 0 XT-PIC-XT > sata_nv, HDA Intel > 14: 0 0 0 0 XT-PIC-XT > pata_amd > 15: 0 0 0 0 XT-PIC-XT > pata_amd > 212: 0 9 487 1942504 PCI-MSI-edge > eth0 > 213: 0 0 0 0 PCI-MSI-edge > shpchp > NMI: 0 0 0 0 Non-maskable > interrupts > LOC: 3722798 3722767 3722730 3722768 Local timer > interrupts > RES: 39386 37672 23570 25780 Rescheduling > interrupts > CAL: 1112 1273 1280 250 function call > interrupts > TLB: 6144 8510 6271 9025 TLB shootdowns > TRM: 0 0 0 0 Thermal event > interrupts > SPU: 0 0 0 0 Spurious interrupts > ERR: 1 > MIS: 0 > > I try to install a new MSI interrupt via rtdm package (rtdm_irq_request) > with > a vector number (211) given by the call to pci_msi_enable for the new > PCIe device. Is that driver prepared to possibly receive an immediate IRQ after registration? Of course, that can only happen if the device's hardware is not explicitly configured to disable IRQ delivery. I'm asking as it is a common mistake to mixup IRQ arming and proper driver state initialization. > > The system hangs up immediatly (sometimes I can catch the stack trace > with dmesg > the last reference seems to be in rt_hal package) You should try to capture a full trace via a serial console e.g., see linux/Documentation/serial-console.txt. > > If I replace (for debug only!!!) this vector number by an unused > "classical" vector number (for instance > 14 or 15) ... no problem. > > Have you allready test this kind of configuration ... if so a little > help from your part would be > greatly appreciated! Another test around MSI: try to disable CONFIG_PCI_MSI and check if something changes. Jan -- Siemens AG, Corporate Technology, CT SE 2 ES-OS Corporate Competence Center Embedded Linux From mboxrd@z Thu Jan 1 00:00:00 1970 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C94E55.6E5D66D6" Date: Mon, 24 Nov 2008 17:55:18 +0100 Message-ID: In-Reply-To: <4926E5C6.8030502@domain.hid> From: "Rubio, Martial" Subject: Re: [Xenomai-help] External PCIe device: MSI interrupt install hangs up the CPU List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: jeanfrancois.gilot@domain.hid, xenomai@xenomai.org, "Dupeyrou, Gilles" This is a multi-part message in MIME format. ------_=_NextPart_001_01C94E55.6E5D66D6 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hello everybody ... Find attached text files which seems to be very useful about my CPU hanging Perharps a problem of detection of an external dev PCIe with only MSI 64-bit access Capability (pci_bus_read_config_dword instead of pci_bus_read_config_word in pci/msi.c) with a machine which has been configured in a 32-bit mode (mandatory in my case) ? What do you think of that? ... And if TRUE what to do (it's a question for J.F) Regards to all Martial -----Original Message----- From: Jan Kiszka [mailto:jan.kiszka@domain.hid Sent: Friday, November 21, 2008 5:46 PM To: Rubio, Martial Cc: xenomai@xenomai.org; jeanfrancois.gilot@domain.hid; Dupeyrou, Gilles Subject: Re: External PCIe device: MSI interrupt install hangs up the CPU Rubio, Martial wrote: > Hello everybody > =20 > I'm working with following config :=20 > =20 > CPU (0=3D>3) AMD Dual Core AMD Opteron > Linux version 2.6.25-pae 2.6.25 comes with the risk of missing relevant fixes that went into .26 and later. Do you have a chance to update? 2.6.27 is a bit fresh, 2.6.26.7 + ipipe-2.0-16 would be a conservative approach right now. > Xenomai : hal / i386 > Xenomai : real time nucleus v2.4.5 > =20 > Here's below the state of /proc/interrupts : > =20 > in red fonts the range of PCIe(xpress)-MSI vectors : Uuh, please don't expect the reader to have HTML rendering on for a typically text-only medium like mail. Yeah, it tends to be the other way around inside companies, I know... > =20 > hurle-bise [anaisvs](34):more /proc/interrupts > CPU0 CPU1 CPU2 CPU3 > 0: 146 0 0 0 XT-PIC-XT > timer > 1: 1039 0 0 0 XT-PIC-XT > i8042 > 2: 0 0 0 0 XT-PIC-XT > cascade > 4: 5 0 0 0 XT-PIC-XT > 5: 2 0 0 0 XT-PIC-XT > ehci_hcd:usb2 > 6: 5 0 0 0 XT-PIC-XT > floppy > 7: 16300 0 0 0 XT-PIC-XT > ohci_hcd:usb1 > 10: 155104 0 0 0 XT-PIC-XT > ioc0, sata_nv, sata_nv, ohci1394 > 11: 47305 0 0 0 XT-PIC-XT > sata_nv, HDA Intel > 14: 0 0 0 0 XT-PIC-XT > pata_amd > 15: 0 0 0 0 XT-PIC-XT > pata_amd > 212: 0 9 487 1942504 PCI-MSI-edge > eth0 > 213: 0 0 0 0 PCI-MSI-edge > shpchp > NMI: 0 0 0 0 Non-maskable > interrupts > LOC: 3722798 3722767 3722730 3722768 Local timer > interrupts > RES: 39386 37672 23570 25780 Rescheduling > interrupts > CAL: 1112 1273 1280 250 function call > interrupts > TLB: 6144 8510 6271 9025 TLB shootdowns > TRM: 0 0 0 0 Thermal event > interrupts > SPU: 0 0 0 0 Spurious interrupts > ERR: 1 > MIS: 0 > =20 > I try to install a new MSI interrupt via rtdm package=20 > (rtdm_irq_request) with a vector number (211) given by the call to=20 > pci_msi_enable for the new PCIe device. Is that driver prepared to possibly receive an immediate IRQ after registration? Of course, that can only happen if the device's hardware is not explicitly configured to disable IRQ delivery. I'm asking as it is a common mistake to mixup IRQ arming and proper driver state initialization. > =20 > The system hangs up immediatly (sometimes I can catch the stack trace=20 > with dmesg the last reference seems to be in rt_hal package) You should try to capture a full trace via a serial console e.g., see linux/Documentation/serial-console.txt. > =20 > If I replace (for debug only!!!) this vector number by an unused=20 > "classical" vector number (for instance > 14 or 15) ... no problem. > =20 > Have you allready test this kind of configuration ... if so a little=20 > help from your part would be greatly appreciated! Another test around MSI: try to disable CONFIG_PCI_MSI and check if something changes. Jan -- Siemens AG, Corporate Technology, CT SE 2 ES-OS Corporate Competence Center Embedded Linux ------_=_NextPart_001_01C94E55.6E5D66D6 Content-Type: application/octet-stream; name="memory.map" Content-Transfer-Encoding: base64 Content-Description: memory.map Content-Disposition: attachment; filename="memory.map" MDAwMDAwMDAtMDAwOWQ3ZmYgOiBTeXN0ZW0gUkFNCjAwMDlkODAwLTAwMDlmZmZmIDogcmVzZXJ2 ZWQKMDAwYTAwMDAtMDAwYmZmZmYgOiBWaWRlbyBSQU0gYXJlYQowMDBjMDAwMC0wMDBjZDNmZiA6 IFZpZGVvIFJPTQowMDBmMDAwMC0wMDBmZmZmZiA6IFN5c3RlbSBST00KMDAxMDAwMDAtNmZlZWZm ZmYgOiBTeXN0ZW0gUkFNCiAgMDAxMDAwMDAtMDAyZWQ3YjggOiBLZXJuZWwgY29kZQogIDAwMmVk N2I5LTAwM2VlNzNiIDogS2VybmVsIGRhdGEKICAwMDQzMDAwMC0wMDU0OWVjZiA6IEtlcm5lbCBi c3MKNmZlZjAwMDAtNmZlZmRmZmYgOiBBQ1BJIFRhYmxlcwo2ZmVmZTAwMC02ZmY3ZmZmZiA6IEFD UEkgTm9uLXZvbGF0aWxlIFN0b3JhZ2UKNmZmODAwMDAtNmZmZmZmZmYgOiByZXNlcnZlZAo3MDAw MDAwMC03MDAwM2ZmZiA6IDAwMDA6MDA6MDYuMQogIDcwMDAwMDAwLTcwMDAzZmZmIDogSUNIIEhE IGF1ZGlvCjcwMDA0MDAwLTcwMDA0ZmZmIDogMDAwMDowMDowMi4wCiAgNzAwMDQwMDAtNzAwMDRm ZmYgOiBvaGNpX2hjZAo3MDAwNTAwMC03MDAwNTBmZiA6IDAwMDA6MDA6MDIuMQogIDcwMDA1MDAw LTcwMDA1MGZmIDogZWhjaV9oY2QKNzAwMDU0MDAtNzAwMDU0MGYgOiAwMDAwOjAwOjA4LjAKICA3 MDAwNTQwMC03MDAwNTQwZiA6IGZvcmNlZGV0aAo3MDAwNTgwMC03MDAwNThmZiA6IDAwMDA6MDA6 MDguMAogIDcwMDA1ODAwLTcwMDA1OGZmIDogZm9yY2VkZXRoCjcwMDA1YzAwLTcwMDA1YzBmIDog MDAwMDowMDowOS4wCiAgNzAwMDVjMDAtNzAwMDVjMGYgOiBmb3JjZWRldGgKNzAwMDYwMDAtNzAw MDZmZmYgOiAwMDAwOjAwOjA1LjAKICA3MDAwNjAwMC03MDAwNmZmZiA6IHNhdGFfbnYKNzAwMDcw MDAtNzAwMDdmZmYgOiAwMDAwOjAwOjA1LjEKICA3MDAwNzAwMC03MDAwN2ZmZiA6IHNhdGFfbnYK NzAwMDgwMDAtNzAwMDhmZmYgOiAwMDAwOjAwOjA1LjIKICA3MDAwODAwMC03MDAwOGZmZiA6IHNh dGFfbnYKNzAwMDkwMDAtNzAwMDlmZmYgOiAwMDAwOjAwOjA4LjAKICA3MDAwOTAwMC03MDAwOWZm ZiA6IGZvcmNlZGV0aAo3MDAwYTAwMC03MDAwYTBmZiA6IDAwMDA6MDA6MDkuMAogIDcwMDBhMDAw LTcwMDBhMGZmIDogZm9yY2VkZXRoCjcwMDBiMDAwLTcwMDBiZmZmIDogMDAwMDowMDowOS4wCiAg NzAwMGIwMDAtNzAwMGJmZmYgOiBmb3JjZWRldGgKNzAxMDAwMDAtNzAxZmZmZmYgOiBQQ0kgQnVz ICMwMQogIDcwMTAwMDAwLTcwMTAzZmZmIDogMDAwMDowMTowNS4wCiAgNzAxMDQwMDAtNzAxMDQ3 ZmYgOiAwMDAwOjAxOjA1LjAKICAgIDcwMTA0MDAwLTcwMTA0N2ZmIDogb2hjaTEzOTQKNzAyMDAw MDAtNzAyZmZmZmYgOiBQQ0kgQnVzICMwMwogIDcwMjAwMDAwLTcwMjAwMDdmIDogMDAwMDowMzow MC4xCiAgICA3MDIwMDAwMC03MDIwMDAyNyA6IHNocGNocAo3MDMwMDAwMC03MmZmZmZmZiA6IFBD SSBCdXMgIzA2CiAgNzEwMDAwMDAtNzFmZmZmZmYgOiAwMDAwOjA2OjAwLjAKICA3MjAwMDAwMC03 MmZmZmZmZiA6IDAwMDA6MDY6MDAuMAo4MDAwMDAwMC04ZmZmZmZmZiA6IFBDSSBCdXMgIzA2CiAg ODAwMDAwMDAtOGZmZmZmZmYgOiAwMDAwOjA2OjAwLjAKICAgIDgwMDAwMDAwLThmZmZmZmZmIDog dmVzYWZiCjkwMDAwMDAwLTkwMDAwZmZmIDogMDAwMDo4MDowMS4wCjkwMTAwMDAwLWJmZmZmZmZm IDogUENJIEJ1cyAjODEKICA5MDEwMDAwMC05MDExZmZmZiA6IDAwMDA6ODE6MDAuMAogIDkwMjAw MDAwLWJmZmZmZmZmIDogUENJIEJ1cyAjODIKICAgIDkwMjAwMDAwLWJmZmZmZmZmIDogUENJIEJ1 cyAjODUKICAgICAgYTAwMDAwMDAtYmZmZmZmZmYgOiAwMDAwOjg1OjAwLjAKYzAwMDAwMDAtYzAx ZmZmZmYgOiBQQ0kgQnVzICM4NgogIGMwMDAwMDAwLWMwMDBmZmZmIDogMDAwMDo4NjowMC4wCiAg ICBjMDAwMDAwMC1jMDAwZmZmZiA6IG1wdAogIGMwMDEwMDAwLWMwMDEzZmZmIDogMDAwMDo4Njow MC4wCiAgICBjMDAxMDAwMC1jMDAxM2ZmZiA6IG1wdAplMDAwMDAwMC1lZmZmZmZmZiA6IHJlc2Vy dmVkCmZlYzAwMDAwLWZlYzBmZmZmIDogcmVzZXJ2ZWQKZmVlMDAwMDAtZmVlMDBmZmYgOiByZXNl cnZlZApmZmYwMDAwMC1mZmZmZmZmZiA6IHJlc2VydmVkCjEwMDAwMDAwMC0yOGZmZmZmZmYgOiBT eXN0ZW0gUkFNCg== ------_=_NextPart_001_01C94E55.6E5D66D6 Content-Type: application/octet-stream; name="boot.messages" Content-Transfer-Encoding: base64 Content-Description: boot.messages Content-Disposition: attachment; filename="boot.messages" TGludXggdmVyc2lvbiAyLjYuMjUtcGFlIChyb290QGh1cmxlLWJpc2UpIChnY2MgdmVyc2lvbiA0 LjMuMSAyMDA4MDUwNyAocHJlcmVsZWFzZSkgW2djYy00XzMtYnJhbmNoIHJldmlzaW9uIDEzNTAz Nl0gKFNVU0UgTGludXgpICkgIzEwIFNNUCBQUkVFTVBUIEZyaSBTZXAgMTkgMTI6NTE6MDAgQ0VT VCAyMDA4CkJJT1MtcHJvdmlkZWQgcGh5c2ljYWwgUkFNIG1hcDoKIEJJT1MtZTgyMDogMDAwMDAw MDAwMDAwMDAwMCAtIDAwMDAwMDAwMDAwOWQ4MDAgKHVzYWJsZSkKIEJJT1MtZTgyMDogMDAwMDAw MDAwMDA5ZDgwMCAtIDAwMDAwMDAwMDAwYTAwMDAgKHJlc2VydmVkKQogQklPUy1lODIwOiAwMDAw MDAwMDAwMGNlMDAwIC0gMDAwMDAwMDAwMDEwMDAwMCAocmVzZXJ2ZWQpCiBCSU9TLWU4MjA6IDAw MDAwMDAwMDAxMDAwMDAgLSAwMDAwMDAwMDZmZWYwMDAwICh1c2FibGUpCiBCSU9TLWU4MjA6IDAw MDAwMDAwNmZlZjAwMDAgLSAwMDAwMDAwMDZmZWZlMDAwIChBQ1BJIGRhdGEpCiBCSU9TLWU4MjA6 IDAwMDAwMDAwNmZlZmUwMDAgLSAwMDAwMDAwMDZmZjgwMDAwIChBQ1BJIE5WUykKIEJJT1MtZTgy MDogMDAwMDAwMDA2ZmY4MDAwMCAtIDAwMDAwMDAwNzAwMDAwMDAgKHJlc2VydmVkKQogQklPUy1l ODIwOiAwMDAwMDAwMGUwMDAwMDAwIC0gMDAwMDAwMDBmMDAwMDAwMCAocmVzZXJ2ZWQpCiBCSU9T LWU4MjA6IDAwMDAwMDAwZmVjMDAwMDAgLSAwMDAwMDAwMGZlYzEwMDAwIChyZXNlcnZlZCkKIEJJ T1MtZTgyMDogMDAwMDAwMDBmZWUwMDAwMCAtIDAwMDAwMDAwZmVlMDEwMDAgKHJlc2VydmVkKQog QklPUy1lODIwOiAwMDAwMDAwMGZmZjAwMDAwIC0gMDAwMDAwMDEwMDAwMDAwMCAocmVzZXJ2ZWQp CiBCSU9TLWU4MjA6IDAwMDAwMDAxMDAwMDAwMDAgLSAwMDAwMDAwMjkwMDAwMDAwICh1c2FibGUp CjEwMDY0TUIgSElHSE1FTSBhdmFpbGFibGUuCjQzMk1CIExPV01FTSBhdmFpbGFibGUuClNjYW4g U01QIGZyb20gYzAwMDAwMDAgZm9yIDEwMjQgYnl0ZXMuClNjYW4gU01QIGZyb20gYzAwOWZjMDAg Zm9yIDEwMjQgYnl0ZXMuClNjYW4gU01QIGZyb20gYzAwZjAwMDAgZm9yIDY1NTM2IGJ5dGVzLgpm b3VuZCBTTVAgTVAtdGFibGUgYXQgW2MwMGY2ZjIwXSAwMDBmNmYyMApOWCAoRXhlY3V0ZSBEaXNh YmxlKSBwcm90ZWN0aW9uOiBhY3RpdmUKRW50ZXJpbmcgYWRkX2FjdGl2ZV9yYW5nZSgwLCAwLCAy Njg2OTc2KSAwIGVudHJpZXMgb2YgMjU2IHVzZWQKWm9uZSBQRk4gcmFuZ2VzOgogIERNQSAgICAg ICAgICAgICAwIC0+ICAgICA0MDk2CiAgTm9ybWFsICAgICAgIDQwOTYgLT4gICAxMTA1OTIKICBI aWdoTWVtICAgIDExMDU5MiAtPiAgMjY4Njk3NgpNb3ZhYmxlIHpvbmUgc3RhcnQgUEZOIGZvciBl YWNoIG5vZGUKZWFybHlfbm9kZV9tYXBbMV0gYWN0aXZlIFBGTiByYW5nZXMKICAgIDA6ICAgICAg ICAwIC0+ICAyNjg2OTc2Ck9uIG5vZGUgMCB0b3RhbHBhZ2VzOiAyNjg2OTc2CiAgRE1BIHpvbmU6 IDMyIHBhZ2VzIHVzZWQgZm9yIG1lbW1hcAogIERNQSB6b25lOiAwIHBhZ2VzIHJlc2VydmVkCiAg RE1BIHpvbmU6IDQwNjQgcGFnZXMsIExJRk8gYmF0Y2g6MAogIE5vcm1hbCB6b25lOiA4MzIgcGFn ZXMgdXNlZCBmb3IgbWVtbWFwCiAgTm9ybWFsIHpvbmU6IDEwNTY2NCBwYWdlcywgTElGTyBiYXRj aDozMQogIEhpZ2hNZW0gem9uZTogMjAxMjggcGFnZXMgdXNlZCBmb3IgbWVtbWFwCiAgSGlnaE1l bSB6b25lOiAyNTU2MjU2IHBhZ2VzLCBMSUZPIGJhdGNoOjMxCiAgTW92YWJsZSB6b25lOiAwIHBh Z2VzIHVzZWQgZm9yIG1lbW1hcApETUkgcHJlc2VudC4KVXNpbmcgQVBJQyBkcml2ZXIgZGVmYXVs dApEZXRlY3RlZCB1c2Ugb2YgZXh0ZW5kZWQgYXBpYyBpZHMgb24gaHlwZXJ0cmFuc3BvcnQgYnVz CkRldGVjdGVkIHVzZSBvZiBleHRlbmRlZCBhcGljIGlkcyBvbiBoeXBlcnRyYW5zcG9ydCBidXMK SW50ZWwgTXVsdGlQcm9jZXNzb3IgU3BlY2lmaWNhdGlvbiB2MS40CiAgICBWaXJ0dWFsIFdpcmUg Y29tcGF0aWJpbGl0eSBtb2RlLgpPRU0gSUQ6IFR5YW4gICAgIFByb2R1Y3QgSUQ6IFMyOTE4ICAg ICAgICBBUElDIGF0OiAweEZFRTAwMDAwClByb2Nlc3NvciAjMCAxNToxIEFQSUMgdmVyc2lvbiAx NgpQcm9jZXNzb3IgIzEgMTU6MSBBUElDIHZlcnNpb24gMTYKUHJvY2Vzc29yICMyIDE1OjEgQVBJ QyB2ZXJzaW9uIDE2ClByb2Nlc3NvciAjMyAxNToxIEFQSUMgdmVyc2lvbiAxNgpJL08gQVBJQyAj NCBWZXJzaW9uIDE3IGF0IDB4RkVDMDAwMDAuCkkvTyBBUElDICM1IFZlcnNpb24gMTcgYXQgMHg5 MDAwMDAwMC4KRW5hYmxpbmcgQVBJQyBtb2RlOiAgRmxhdC4gIFVzaW5nIDIgSS9PIEFQSUNzClBy b2Nlc3NvcnM6IDQKQWxsb2NhdGluZyBQQ0kgcmVzb3VyY2VzIHN0YXJ0aW5nIGF0IDc4MDAwMDAw IChnYXA6IDcwMDAwMDAwOjcwMDAwMDAwKQpCdWlsdCAxIHpvbmVsaXN0cyBpbiBab25lIG9yZGVy LCBtb2JpbGl0eSBncm91cGluZyBvbi4gIFRvdGFsIHBhZ2VzOiAyNjY1OTg0Cktlcm5lbCBjb21t YW5kIGxpbmU6IHZnYT0weDMxYSB4ZW5vLW51Y2xldXMueGVub21haV9naWQ9MTAwMCBub2FwaWMg dm1hbGxvYz0weDI1MDAwMDAwCm1hcHBlZCBBUElDIHRvIGZmZmZiMDAwIChmZWUwMDAwMCkKbWFw cGVkIElPQVBJQyB0byBmZmZmYTAwMCAoZmVjMDAwMDApCm1hcHBlZCBJT0FQSUMgdG8gZmZmZjkw MDAgKDkwMDAwMDAwKQpFbmFibGluZyBmYXN0IEZQVSBzYXZlIGFuZCByZXN0b3JlLi4uIGRvbmUu CkVuYWJsaW5nIHVubWFza2VkIFNJTUQgRlBVIGV4Y2VwdGlvbiBzdXBwb3J0Li4uIGRvbmUuCklu aXRpYWxpemluZyBDUFUjMApQSUQgaGFzaCB0YWJsZSBlbnRyaWVzOiAyMDQ4IChvcmRlcjogMTEs IDgxOTIgYnl0ZXMpCkRldGVjdGVkIDIyMTEuMzY4IE1IeiBwcm9jZXNzb3IuCkktcGlwZSAyLjAt MDk6IHBpcGVsaW5lIGVuYWJsZWQuCnNwdXJpb3VzIDgyNTlBIGludGVycnVwdDogSVJRNy4KQ29u c29sZTogY29sb3VyIGR1bW15IGRldmljZSA4MHgyNQpjb25zb2xlIFt0dHkwXSBlbmFibGVkCkRl bnRyeSBjYWNoZSBoYXNoIHRhYmxlIGVudHJpZXM6IDY1NTM2IChvcmRlcjogNiwgMjYyMTQ0IGJ5 dGVzKQpJbm9kZS1jYWNoZSBoYXNoIHRhYmxlIGVudHJpZXM6IDMyNzY4IChvcmRlcjogNSwgMTMx MDcyIGJ5dGVzKQpNZW1vcnk6IDgyODgxMjRrLzEwNzQ3OTA0ayBhdmFpbGFibGUgKDE5NzNrIGtl cm5lbCBjb2RlLCA5ODIwMGsgcmVzZXJ2ZWQsIDEwMjdrIGRhdGEsIDIzMmsgaW5pdCwgNzk0NTE1 MmsgaGlnaG1lbSkKdmlydHVhbCBrZXJuZWwgbWVtb3J5IGxheW91dDoKICAgIGZpeG1hcCAgOiAw eGZmOTM5MDAwIC0gMHhmZmZmZjAwMCAgICg2OTM2IGtCKQogICAgcGttYXAgICA6IDB4ZmY0MDAw MDAgLSAweGZmNjAwMDAwICAgKDIwNDgga0IpCiAgICB2bWFsbG9jIDogMHhkYjgwMDAwMCAtIDB4 ZmYzZmUwMDAgICAoIDU3MSBNQikKICAgIGxvd21lbSAgOiAweGMwMDAwMDAwIC0gMHhkYjAwMDAw MCAgICggNDMyIE1CKQogICAgICAuaW5pdCA6IDB4YzAzZjYwMDAgLSAweGMwNDMwMDAwICAgKCAy MzIga0IpCiAgICAgIC5kYXRhIDogMHhjMDJlZDdiOSAtIDB4YzAzZWU3M2MgICAoMTAyNyBrQikK ICAgICAgLnRleHQgOiAweGMwMTAwMDAwIC0gMHhjMDJlZDdiOSAgICgxOTczIGtCKQpDaGVja2lu ZyBpZiB0aGlzIHByb2Nlc3NvciBob25vdXJzIHRoZSBXUCBiaXQgZXZlbiBpbiBzdXBlcnZpc29y IG1vZGUuLi5Pay4KQ1BBOiBwYWdlIHBvb2wgaW5pdGlhbGl6ZWQgMSBvZiAxIHBhZ2VzIHByZWFs bG9jYXRlZApDYWxpYnJhdGluZyBkZWxheSB1c2luZyB0aW1lciBzcGVjaWZpYyByb3V0aW5lLi4g NDQyNC44MSBCb2dvTUlQUyAobHBqPTg4NDk2MzApClNlY3VyaXR5IEZyYW1ld29yayBpbml0aWFs aXplZApDYXBhYmlsaXR5IExTTSBpbml0aWFsaXplZApNb3VudC1jYWNoZSBoYXNoIHRhYmxlIGVu dHJpZXM6IDUxMgpDUFU6IEwxIEkgQ2FjaGU6IDY0SyAoNjQgYnl0ZXMvbGluZSksIEQgY2FjaGUg NjRLICg2NCBieXRlcy9saW5lKQpDUFU6IEwyIENhY2hlOiAxMDI0SyAoNjQgYnl0ZXMvbGluZSkK Q1BVIDAoMikgLT4gQ29yZSAwCkludGVsIG1hY2hpbmUgY2hlY2sgYXJjaGl0ZWN0dXJlIHN1cHBv cnRlZC4KSW50ZWwgbWFjaGluZSBjaGVjayByZXBvcnRpbmcgZW5hYmxlZCBvbiBDUFUjMC4KQ29t cGF0IHZEU08gbWFwcGVkIHRvIGZmZmZlMDAwLgpDaGVja2luZyAnaGx0JyBpbnN0cnVjdGlvbi4u LiBPSy4KQ1BVMDogQU1EIER1YWwtQ29yZSBBTUQgT3B0ZXJvbih0bSkgUHJvY2Vzc29yIDIyMTQg c3RlcHBpbmcgMDIKQm9vdGluZyBwcm9jZXNzb3IgMS8xIGlwIDIwMDAKSW5pdGlhbGl6aW5nIENQ VSMxCkNhbGlicmF0aW5nIGRlbGF5IHVzaW5nIHRpbWVyIHNwZWNpZmljIHJvdXRpbmUuLiA0NDIz LjAzIEJvZ29NSVBTIChscGo9ODg0NjA3OSkKQ1BVOiBMMSBJIENhY2hlOiA2NEsgKDY0IGJ5dGVz L2xpbmUpLCBEIGNhY2hlIDY0SyAoNjQgYnl0ZXMvbGluZSkKQ1BVOiBMMiBDYWNoZTogMTAyNEsg KDY0IGJ5dGVzL2xpbmUpCkNQVSAxKDIpIC0+IENvcmUgMQpJbnRlbCBtYWNoaW5lIGNoZWNrIGFy Y2hpdGVjdHVyZSBzdXBwb3J0ZWQuCkludGVsIG1hY2hpbmUgY2hlY2sgcmVwb3J0aW5nIGVuYWJs ZWQgb24gQ1BVIzEuCkNQVTE6IEFNRCBEdWFsLUNvcmUgQU1EIE9wdGVyb24odG0pIFByb2Nlc3Nv ciAyMjE0IHN0ZXBwaW5nIDAyCkJvb3RpbmcgcHJvY2Vzc29yIDIvMiBpcCAyMDAwCkluaXRpYWxp emluZyBDUFUjMgpDYWxpYnJhdGluZyBkZWxheSB1c2luZyB0aW1lciBzcGVjaWZpYyByb3V0aW5l Li4gNDQyMy4wMyBCb2dvTUlQUyAobHBqPTg4NDYwNzkpCkNQVTogTDEgSSBDYWNoZTogNjRLICg2 NCBieXRlcy9saW5lKSwgRCBjYWNoZSA2NEsgKDY0IGJ5dGVzL2xpbmUpCkNQVTogTDIgQ2FjaGU6 IDEwMjRLICg2NCBieXRlcy9saW5lKQpDUFUgMigyKSAtPiBDb3JlIDAKSW50ZWwgbWFjaGluZSBj aGVjayBhcmNoaXRlY3R1cmUgc3VwcG9ydGVkLgpJbnRlbCBtYWNoaW5lIGNoZWNrIHJlcG9ydGlu ZyBlbmFibGVkIG9uIENQVSMyLgpDUFUyOiBBTUQgRHVhbC1Db3JlIEFNRCBPcHRlcm9uKHRtKSBQ cm9jZXNzb3IgMjIxNCBzdGVwcGluZyAwMgpCb290aW5nIHByb2Nlc3NvciAzLzMgaXAgMjAwMApJ bml0aWFsaXppbmcgQ1BVIzMKQ2FsaWJyYXRpbmcgZGVsYXkgdXNpbmcgdGltZXIgc3BlY2lmaWMg cm91dGluZS4uIDQ0MjMuMDQgQm9nb01JUFMgKGxwaj04ODQ2MDg2KQpDUFU6IEwxIEkgQ2FjaGU6 IDY0SyAoNjQgYnl0ZXMvbGluZSksIEQgY2FjaGUgNjRLICg2NCBieXRlcy9saW5lKQpDUFU6IEwy IENhY2hlOiAxMDI0SyAoNjQgYnl0ZXMvbGluZSkKQ1BVIDMoMikgLT4gQ29yZSAxCkludGVsIG1h Y2hpbmUgY2hlY2sgYXJjaGl0ZWN0dXJlIHN1cHBvcnRlZC4KSW50ZWwgbWFjaGluZSBjaGVjayBy ZXBvcnRpbmcgZW5hYmxlZCBvbiBDUFUjMy4KQ1BVMzogQU1EIER1YWwtQ29yZSBBTUQgT3B0ZXJv bih0bSkgUHJvY2Vzc29yIDIyMTQgc3RlcHBpbmcgMDIKVG90YWwgb2YgNCBwcm9jZXNzb3JzIGFj dGl2YXRlZCAoMTc2OTMuOTMgQm9nb01JUFMpLgpCcm91Z2h0IHVwIDQgQ1BVcwpDUFUwIGF0dGFj aGluZyBzY2hlZC1kb21haW46CiBkb21haW4gMDogc3BhbiAwMDAwMDAwMCwwMDAwMDAwMCwwMDAw MDAwMCwwMDAwMDAwZgogIGdyb3VwczogMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAw MDEgMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDIgMDAwMDAwMDAsMDAwMDAwMDAs MDAwMDAwMDAsMDAwMDAwMDQgMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDgKQ1BV MSBhdHRhY2hpbmcgc2NoZWQtZG9tYWluOgogZG9tYWluIDA6IHNwYW4gMDAwMDAwMDAsMDAwMDAw MDAsMDAwMDAwMDAsMDAwMDAwMGYKICBncm91cHM6IDAwMDAwMDAwLDAwMDAwMDAwLDAwMDAwMDAw LDAwMDAwMDAyIDAwMDAwMDAwLDAwMDAwMDAwLDAwMDAwMDAwLDAwMDAwMDA0IDAwMDAwMDAwLDAw MDAwMDAwLDAwMDAwMDAwLDAwMDAwMDA4IDAwMDAwMDAwLDAwMDAwMDAwLDAwMDAwMDAwLDAwMDAw MDAxCkNQVTIgYXR0YWNoaW5nIHNjaGVkLWRvbWFpbjoKIGRvbWFpbiAwOiBzcGFuIDAwMDAwMDAw LDAwMDAwMDAwLDAwMDAwMDAwLDAwMDAwMDBmCiAgZ3JvdXBzOiAwMDAwMDAwMCwwMDAwMDAwMCww MDAwMDAwMCwwMDAwMDAwNCAwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAwOCAwMDAw MDAwMCwwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAwMSAwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAw MCwwMDAwMDAwMgpDUFUzIGF0dGFjaGluZyBzY2hlZC1kb21haW46CiBkb21haW4gMDogc3BhbiAw MDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAwZgogIGdyb3VwczogMDAwMDAwMDAsMDAw MDAwMDAsMDAwMDAwMDAsMDAwMDAwMDggMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAw MDEgMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDIgMDAwMDAwMDAsMDAwMDAwMDAs MDAwMDAwMDAsMDAwMDAwMDQKbmV0X25hbWVzcGFjZTogNTQ4IGJ5dGVzCk5FVDogUmVnaXN0ZXJl ZCBwcm90b2NvbCBmYW1pbHkgMTYKUENJOiBQQ0kgQklPUyByZXZpc2lvbiAyLjEwIGVudHJ5IGF0 IDB4ZmQ1MDQsIGxhc3QgYnVzPTEzNQpQQ0k6IFVzaW5nIGNvbmZpZ3VyYXRpb24gdHlwZSAxClNl dHRpbmcgdXAgc3RhbmRhcmQgUENJIHJlc291cmNlcwpMaW51eCBQbHVnIGFuZCBQbGF5IFN1cHBv cnQgdjAuOTcgKGMpIEFkYW0gQmVsYXkKUG5QQklPUzogU2Nhbm5pbmcgc3lzdGVtIGZvciBQblAg QklPUyBzdXBwb3J0Li4uClBuUEJJT1M6IEZvdW5kIFBuUCBCSU9TIGluc3RhbGxhdGlvbiBzdHJ1 Y3R1cmUgYXQgMHhjMDBmNmZjMApQblBCSU9TOiBQblAgQklPUyB2ZXJzaW9uIDEuMCwgZW50cnkg MHhlNTIzOjB4OTdlYywgZHNlZyAweDQwMApQTlBCSU9TIGZhdWx0Li4gYXR0ZW1wdGluZyByZWNv dmVyeS4KUG5QQklPUzogV2FybmluZyEgWW91ciBQblAgQklPUyBjYXVzZWQgYSBmYXRhbCBlcnJv ci4gQXR0ZW1wdGluZyB0byBjb250aW51ZQpQblBCSU9TOiBZb3UgbWF5IG5lZWQgdG8gcmVib290 IHdpdGggdGhlICJwbnBiaW9zPW9mZiIgb3B0aW9uIHRvIG9wZXJhdGUgc3RhYmx5ClBuUEJJT1M6 IENoZWNrIHdpdGggeW91ciB2ZW5kb3IgZm9yIGFuIHVwZGF0ZWQgQklPUwpQblBCSU9TOiBkZXZf bm9kZV9pbmZvOiB1bmV4cGVjdGVkIHN0YXR1cyAweDI4ClBuUEJJT1M6IFVuYWJsZSB0byBnZXQg bm9kZSBpbmZvLiAgQWJvcnRpbmcuClBDSTogUHJvYmluZyBQQ0kgaGFyZHdhcmUKUENJOiBQcm9i aW5nIFBDSSBoYXJkd2FyZSAoYnVzIDAwKQpQQ0k6IFRyYW5zcGFyZW50IGJyaWRnZSAtIDAwMDA6 MDA6MDYuMApQQ0k6IERpc2NvdmVyZWQgcGVlciBidXMgODAKUENJOiBCcmlkZ2U6IDAwMDA6MDA6 MDYuMAogIElPIHdpbmRvdzogZGlzYWJsZWQuCiAgTUVNIHdpbmRvdzogMHg3MDEwMDAwMC0weDcw MWZmZmZmCiAgUFJFRkVUQ0ggd2luZG93OiBkaXNhYmxlZC4KUENJOiBCcmlkZ2U6IDAwMDA6MDA6 MGEuMAogIElPIHdpbmRvdzogZGlzYWJsZWQuCiAgTUVNIHdpbmRvdzogZGlzYWJsZWQuCiAgUFJF RkVUQ0ggd2luZG93OiBkaXNhYmxlZC4KUENJOiBCcmlkZ2U6IDAwMDA6MDM6MDAuMAogIElPIHdp bmRvdzogZGlzYWJsZWQuCiAgTUVNIHdpbmRvdzogZGlzYWJsZWQuCiAgUFJFRkVUQ0ggd2luZG93 OiBkaXNhYmxlZC4KUENJOiBCcmlkZ2U6IDAwMDA6MDM6MDAuMQogIElPIHdpbmRvdzogZGlzYWJs ZWQuCiAgTUVNIHdpbmRvdzogZGlzYWJsZWQuCiAgUFJFRkVUQ0ggd2luZG93OiBkaXNhYmxlZC4K UENJOiBCcmlkZ2U6IDAwMDA6MDA6MGQuMAogIElPIHdpbmRvdzogZGlzYWJsZWQuCiAgTUVNIHdp bmRvdzogMHg3MDIwMDAwMC0weDcwMmZmZmZmCiAgUFJFRkVUQ0ggd2luZG93OiBkaXNhYmxlZC4K UENJOiBCcmlkZ2U6IDAwMDA6MDA6MGYuMAogIElPIHdpbmRvdzogNjAwMC02ZmZmCiAgTUVNIHdp bmRvdzogMHg3MDMwMDAwMC0weDcyZmZmZmZmCiAgUFJFRkVUQ0ggd2luZG93OiAweDAwMDAwMDAw ODAwMDAwMDAtMHgwMDAwMDAwMDhmZmZmZmZmClBDSTogU2V0dGluZyBsYXRlbmN5IHRpbWVyIG9m IGRldmljZSAwMDAwOjAwOjA2LjAgdG8gNjQKUENJOiBTZXR0aW5nIGxhdGVuY3kgdGltZXIgb2Yg ZGV2aWNlIDAwMDA6MDA6MGEuMCB0byA2NApQQ0k6IFNldHRpbmcgbGF0ZW5jeSB0aW1lciBvZiBk ZXZpY2UgMDAwMDowMDowZC4wIHRvIDY0ClBDSTogU2V0dGluZyBsYXRlbmN5IHRpbWVyIG9mIGRl dmljZSAwMDAwOjAzOjAwLjAgdG8gNjQKUENJOiBTZXR0aW5nIGxhdGVuY3kgdGltZXIgb2YgZGV2 aWNlIDAwMDA6MDM6MDAuMSB0byA2NApQQ0k6IFNldHRpbmcgbGF0ZW5jeSB0aW1lciBvZiBkZXZp Y2UgMDAwMDowMDowZi4wIHRvIDY0ClBDSTogQnJpZGdlOiAwMDAwOjgyOjAxLjAKICBJTyB3aW5k b3c6IGRpc2FibGVkLgogIE1FTSB3aW5kb3c6IGRpc2FibGVkLgogIFBSRUZFVENIIHdpbmRvdzog ZGlzYWJsZWQuClBDSTogQnJpZGdlOiAwMDAwOjgyOjA0LjAKICBJTyB3aW5kb3c6IGRpc2FibGVk LgogIE1FTSB3aW5kb3c6IGRpc2FibGVkLgogIFBSRUZFVENIIHdpbmRvdzogZGlzYWJsZWQuClBD STogQnJpZGdlOiAwMDAwOjgyOjA1LjAKICBJTyB3aW5kb3c6IDgwMDAtOGZmZgogIE1FTSB3aW5k b3c6IDB4OTAyMDAwMDAtMHhiZmZmZmZmZgogIFBSRUZFVENIIHdpbmRvdzogZGlzYWJsZWQuClBD STogQnJpZGdlOiAwMDAwOjgxOjAwLjAKICBJTyB3aW5kb3c6IDgwMDAtOGZmZgogIE1FTSB3aW5k b3c6IDB4OTAyMDAwMDAtMHhiZmZmZmZmZgogIFBSRUZFVENIIHdpbmRvdzogZGlzYWJsZWQuClBD STogQnJpZGdlOiAwMDAwOjgwOjBhLjAKICBJTyB3aW5kb3c6IDgwMDAtOGZmZgogIE1FTSB3aW5k b3c6IDB4OTAxMDAwMDAtMHhiZmZmZmZmZgogIFBSRUZFVENIIHdpbmRvdzogZGlzYWJsZWQuClBD STogQnJpZGdlOiAwMDAwOjgwOjBkLjAKICBJTyB3aW5kb3c6IDkwMDAtOWZmZgogIE1FTSB3aW5k b3c6IDB4YzAwMDAwMDAtMHhjMDFmZmZmZgogIFBSRUZFVENIIHdpbmRvdzogZGlzYWJsZWQuClBD STogQnJpZGdlOiAwMDAwOjgwOjBmLjAKICBJTyB3aW5kb3c6IGRpc2FibGVkLgogIE1FTSB3aW5k b3c6IGRpc2FibGVkLgogIFBSRUZFVENIIHdpbmRvdzogZGlzYWJsZWQuClBDSTogU2V0dGluZyBs YXRlbmN5IHRpbWVyIG9mIGRldmljZSAwMDAwOjgwOjBhLjAgdG8gNjQKUENJOiBTZXR0aW5nIGxh dGVuY3kgdGltZXIgb2YgZGV2aWNlIDAwMDA6ODE6MDAuMCB0byA2NApQQ0k6IFNldHRpbmcgbGF0 ZW5jeSB0aW1lciBvZiBkZXZpY2UgMDAwMDo4MjowMS4wIHRvIDY0ClBDSTogU2V0dGluZyBsYXRl bmN5IHRpbWVyIG9mIGRldmljZSAwMDAwOjgyOjA0LjAgdG8gNjQKUENJOiBTZXR0aW5nIGxhdGVu Y3kgdGltZXIgb2YgZGV2aWNlIDAwMDA6ODI6MDUuMCB0byA2NApQQ0k6IFNldHRpbmcgbGF0ZW5j eSB0aW1lciBvZiBkZXZpY2UgMDAwMDo4MDowZC4wIHRvIDY0ClBDSTogU2V0dGluZyBsYXRlbmN5 IHRpbWVyIG9mIGRldmljZSAwMDAwOjgwOjBmLjAgdG8gNjQKTkVUOiBSZWdpc3RlcmVkIHByb3Rv Y29sIGZhbWlseSAyCklQIHJvdXRlIGNhY2hlIGhhc2ggdGFibGUgZW50cmllczogMTYzODQgKG9y ZGVyOiA0LCA2NTUzNiBieXRlcykKVENQIGVzdGFibGlzaGVkIGhhc2ggdGFibGUgZW50cmllczog NjU1MzYgKG9yZGVyOiA3LCA1MjQyODggYnl0ZXMpClRDUCBiaW5kIGhhc2ggdGFibGUgZW50cmll czogNjU1MzYgKG9yZGVyOiA3LCA1MjQyODggYnl0ZXMpClRDUDogSGFzaCB0YWJsZXMgY29uZmln dXJlZCAoZXN0YWJsaXNoZWQgNjU1MzYgYmluZCA2NTUzNikKVENQIHJlbm8gcmVnaXN0ZXJlZApV bnBhY2tpbmcgaW5pdHJhbWZzLi4uIGRvbmUKRnJlZWluZyBpbml0cmQgbWVtb3J5OiA5MTU2ayBm cmVlZApNYWNoaW5lIGNoZWNrIGV4Y2VwdGlvbiBwb2xsaW5nIHRpbWVyIHN0YXJ0ZWQuCmF1ZGl0 OiBpbml0aWFsaXppbmcgbmV0bGluayBzb2NrZXQgKGRpc2FibGVkKQp0eXBlPTIwMDAgYXVkaXQo MTIyNzUyNjUyOC4wMDA6MSk6IGluaXRpYWxpemVkCkktcGlwZTogRG9tYWluIFhlbm9tYWkgcmVn aXN0ZXJlZC4KWGVub21haTogaGFsL2kzODYgc3RhcnRlZC4KWGVub21haTogcmVhbC10aW1lIG51 Y2xldXMgdjIuNC41IChPdmVyZHJpdmVyKSBsb2FkZWQuClhlbm9tYWk6IHN0YXJ0aW5nIG5hdGl2 ZSBBUEkgc2VydmljZXMuClhlbm9tYWk6IHN0YXJ0aW5nIFBPU0lYIHNlcnZpY2VzLgpYZW5vbWFp OiBzdGFydGluZyBSVERNIHNlcnZpY2VzLgpYZW5vbWFpOiBzdGFydGluZyBWeFdvcmtzIHNlcnZp Y2VzLgpoaWdobWVtIGJvdW5jZSBwb29sIHNpemU6IDY0IHBhZ2VzClRvdGFsIEh1Z2VUTEIgbWVt b3J5IGFsbG9jYXRlZCwgMApWRlM6IERpc2sgcXVvdGFzIGRxdW90XzYuNS4xCkRxdW90LWNhY2hl IGhhc2ggdGFibGUgZW50cmllczogMTAyNCAob3JkZXIgMCwgNDA5NiBieXRlcykKQmxvY2sgbGF5 ZXIgU0NTSSBnZW5lcmljIChic2cpIGRyaXZlciB2ZXJzaW9uIDAuNCBsb2FkZWQgKG1ham9yIDI1 NCkKaW8gc2NoZWR1bGVyIG5vb3AgcmVnaXN0ZXJlZAppbyBzY2hlZHVsZXIgYW50aWNpcGF0b3J5 IHJlZ2lzdGVyZWQKaW8gc2NoZWR1bGVyIGRlYWRsaW5lIHJlZ2lzdGVyZWQKaW8gc2NoZWR1bGVy IGNmcSByZWdpc3RlcmVkIChkZWZhdWx0KQpwY2kgMDAwMDowMDowMC4wOiBFbmFibGluZyBIVCBN U0kgTWFwcGluZwpwY2kgMDAwMDo4MDowMC4wOiBFbmFibGluZyBIVCBNU0kgTWFwcGluZwpDbG9j a3NvdXJjZSB0c2MgdW5zdGFibGUgKGRlbHRhID0gMTk5NjMzNzY4IG5zKQpwY2kgMDAwMDowMDow Mi4xOiBFSENJOiBCSU9TIGhhbmRvZmYgZmFpbGVkIChCSU9TIGJ1Zz8pIDAxMDEwMDAxCnBjaSAw MDAwOjAwOjA1LjA6IEVuYWJsaW5nIEhUIE1TSSBNYXBwaW5nCnBjaSAwMDAwOjAwOjA1LjE6IEVu YWJsaW5nIEhUIE1TSSBNYXBwaW5nCnBjaSAwMDAwOjAwOjA1LjI6IEVuYWJsaW5nIEhUIE1TSSBN YXBwaW5nCnBjaSAwMDAwOjAwOjA2LjA6IEVuYWJsaW5nIEhUIE1TSSBNYXBwaW5nCnBjaSAwMDAw OjAwOjA2LjE6IEVuYWJsaW5nIEhUIE1TSSBNYXBwaW5nCnBjaSAwMDAwOjAwOjA4LjA6IEVuYWJs aW5nIEhUIE1TSSBNYXBwaW5nCnBjaSAwMDAwOjAwOjA5LjA6IEVuYWJsaW5nIEhUIE1TSSBNYXBw aW5nCnBjaSAwMDAwOjAwOjBhLjA6IEVuYWJsaW5nIEhUIE1TSSBNYXBwaW5nCnBjaSAwMDAwOjgw OjBhLjA6IEVuYWJsaW5nIEhUIE1TSSBNYXBwaW5nCnBjaSAwMDAwOjAwOjBkLjA6IEVuYWJsaW5n IEhUIE1TSSBNYXBwaW5nCnBjaSAwMDAwOjgwOjBkLjA6IEVuYWJsaW5nIEhUIE1TSSBNYXBwaW5n CnBjaSAwMDAwOjAwOjBmLjA6IEVuYWJsaW5nIEhUIE1TSSBNYXBwaW5nCnBjaSAwMDAwOjgwOjBm LjA6IEVuYWJsaW5nIEhUIE1TSSBNYXBwaW5nCnBjaSAwMDAwOjA2OjAwLjA6IEJvb3QgdmlkZW8g ZGV2aWNlClBDSTogU2V0dGluZyBsYXRlbmN5IHRpbWVyIG9mIGRldmljZSAwMDAwOjAwOjBhLjAg dG8gNjQKYXNzaWduX2ludGVycnVwdF9tb2RlIEZvdW5kIE1TSSBjYXBhYmlsaXR5CkFsbG9jYXRl IFBvcnQgU2VydmljZVswMDAwOjAwOjBhLjA6cGNpZTAwXQpQQ0k6IFNldHRpbmcgbGF0ZW5jeSB0 aW1lciBvZiBkZXZpY2UgMDAwMDowMDowZC4wIHRvIDY0CmFzc2lnbl9pbnRlcnJ1cHRfbW9kZSBG b3VuZCBNU0kgY2FwYWJpbGl0eQpBbGxvY2F0ZSBQb3J0IFNlcnZpY2VbMDAwMDowMDowZC4wOnBj aWUwMF0KUENJOiBTZXR0aW5nIGxhdGVuY3kgdGltZXIgb2YgZGV2aWNlIDAwMDA6MDA6MGYuMCB0 byA2NAphc3NpZ25faW50ZXJydXB0X21vZGUgRm91bmQgTVNJIGNhcGFiaWxpdHkKQWxsb2NhdGUg UG9ydCBTZXJ2aWNlWzAwMDA6MDA6MGYuMDpwY2llMDBdClBDSTogU2V0dGluZyBsYXRlbmN5IHRp bWVyIG9mIGRldmljZSAwMDAwOjgwOjBhLjAgdG8gNjQKYXNzaWduX2ludGVycnVwdF9tb2RlIEZv dW5kIE1TSSBjYXBhYmlsaXR5CkFsbG9jYXRlIFBvcnQgU2VydmljZVswMDAwOjgwOjBhLjA6cGNp ZTAwXQpQQ0k6IFNldHRpbmcgbGF0ZW5jeSB0aW1lciBvZiBkZXZpY2UgMDAwMDo4MDowZC4wIHRv IDY0CmFzc2lnbl9pbnRlcnJ1cHRfbW9kZSBGb3VuZCBNU0kgY2FwYWJpbGl0eQpBbGxvY2F0ZSBQ b3J0IFNlcnZpY2VbMDAwMDo4MDowZC4wOnBjaWUwMF0KUENJOiBTZXR0aW5nIGxhdGVuY3kgdGlt ZXIgb2YgZGV2aWNlIDAwMDA6ODA6MGYuMCB0byA2NAphc3NpZ25faW50ZXJydXB0X21vZGUgRm91 bmQgTVNJIGNhcGFiaWxpdHkKQWxsb2NhdGUgUG9ydCBTZXJ2aWNlWzAwMDA6ODA6MGYuMDpwY2ll MDBdClBDSTogU2V0dGluZyBsYXRlbmN5IHRpbWVyIG9mIGRldmljZSAwMDAwOjgxOjAwLjAgdG8g NjQKYXNzaWduX2ludGVycnVwdF9tb2RlIEZvdW5kIE1TSSBjYXBhYmlsaXR5ClBDSTogU2V0dGlu ZyBsYXRlbmN5IHRpbWVyIG9mIGRldmljZSAwMDAwOjgyOjAxLjAgdG8gNjQKYXNzaWduX2ludGVy cnVwdF9tb2RlIEZvdW5kIE1TSSBjYXBhYmlsaXR5CkFsbG9jYXRlIFBvcnQgU2VydmljZVswMDAw OjgyOjAxLjA6cGNpZTIyXQpQQ0k6IFNldHRpbmcgbGF0ZW5jeSB0aW1lciBvZiBkZXZpY2UgMDAw MDo4MjowNC4wIHRvIDY0CmFzc2lnbl9pbnRlcnJ1cHRfbW9kZSBGb3VuZCBNU0kgY2FwYWJpbGl0 eQpQQ0k6IFNldHRpbmcgbGF0ZW5jeSB0aW1lciBvZiBkZXZpY2UgMDAwMDo4MjowNS4wIHRvIDY0 CmFzc2lnbl9pbnRlcnJ1cHRfbW9kZSBGb3VuZCBNU0kgY2FwYWJpbGl0eQpBbGxvY2F0ZSBQb3J0 IFNlcnZpY2VbMDAwMDo4MjowNS4wOnBjaWUyMl0KdmVzYWZiOiBmcmFtZWJ1ZmZlciBhdCAweDgw MDAwMDAwLCBtYXBwZWQgdG8gMHhkYjg4MDAwMCwgdXNpbmcgNTEyMGssIHRvdGFsIDI2MjE0NGsK dmVzYWZiOiBtb2RlIGlzIDEyODB4MTAyNHgxNiwgbGluZWxlbmd0aD0yNTYwLCBwYWdlcz0xCnZl c2FmYjogcHJvdGVjdGVkIG1vZGUgaW50ZXJmYWNlIGluZm8gYXQgYzAwMDpiOTgwCnZlc2FmYjog cG1pOiBzZXQgZGlzcGxheSBzdGFydCA9IGMwMGNiOWI2LCBzZXQgcGFsZXR0ZSA9IGMwMGNiYTIw CnZlc2FmYjogcG1pOiBwb3J0cyA9IDNiNCAzYjUgM2JhIDNjMCAzYzEgM2M0IDNjNSAzYzYgM2M3 IDNjOCAzYzkgM2NjIDNjZSAzY2YgM2QwIDNkMSAzZDIgM2QzIDNkNCAzZDUgM2RhIAp2ZXNhZmI6 IHNjcm9sbGluZzogcmVkcmF3CnZlc2FmYjogVHJ1ZWNvbG9yOiBzaXplPTA6NTo2OjUsIHNoaWZ0 PTA6MTE6NTowCkNvbnNvbGU6IHN3aXRjaGluZyB0byBjb2xvdXIgZnJhbWUgYnVmZmVyIGRldmlj ZSAxNjB4NjQKZmIwOiBWRVNBIFZHQSBmcmFtZSBidWZmZXIgZGV2aWNlCmlzYXBucDogU2Nhbm5p bmcgZm9yIFBuUCBjYXJkcy4uLgppc2FwbnA6IE5vIFBsdWcgJiBQbGF5IGRldmljZSBmb3VuZApT ZXJpYWw6IDgyNTAvMTY1NTAgZHJpdmVyICRSZXZpc2lvbjogMS45MCAkIDQgcG9ydHMsIElSUSBz aGFyaW5nIGVuYWJsZWQKc2VyaWFsODI1MDogdHR5UzAgYXQgSS9PIDB4M2Y4IChpcnEgPSA0KSBp cyBhIDE2NTUwQQpGbG9wcHkgZHJpdmUocyk6IGZkMCBpcyAxLjQ0TQpGREMgMCBpcyBhIHBvc3Qt MTk5MSA4MjA3NwpQTlA6IE5vIFBTLzIgY29udHJvbGxlciBmb3VuZC4gUHJvYmluZyBwb3J0cyBk aXJlY3RseS4Kc2VyaW86IGk4MDQyIEtCRCBwb3J0IGF0IDB4NjAsMHg2NCBpcnEgMQptaWNlOiBQ Uy8yIG1vdXNlIGRldmljZSBjb21tb24gZm9yIGFsbCBtaWNlCmlucHV0OiBBVCBUcmFuc2xhdGVk IFNldCAyIGtleWJvYXJkIGFzIC9kZXZpY2VzL3BsYXRmb3JtL2k4MDQyL3NlcmlvMC9pbnB1dC9p bnB1dDAKTkVUOiBSZWdpc3RlcmVkIHByb3RvY29sIGZhbWlseSAxClVzaW5nIElQSSBOby1TaG9y dGN1dCBtb2RlCnJlZ2lzdGVyZWQgdGFza3N0YXRzIHZlcnNpb24gMQpGcmVlaW5nIHVudXNlZCBr ZXJuZWwgbWVtb3J5OiAyMzJrIGZyZWVkCldyaXRlIHByb3RlY3RpbmcgdGhlIGtlcm5lbCByZWFk LW9ubHkgZGF0YTogNzk2awpTQ1NJIHN1YnN5c3RlbSBpbml0aWFsaXplZApGdXNpb24gTVBUIGJh c2UgZHJpdmVyIDMuMDQuMDYKQ29weXJpZ2h0IChjKSAxOTk5LTIwMDcgTFNJIENvcnBvcmF0aW9u CkZ1c2lvbiBNUFQgU0FTIEhvc3QgZHJpdmVyIDMuMDQuMDYKbXB0YmFzZTogaW9jMDogSW5pdGlh dGluZyBicmluZ3VwCmlvYzA6IExTSVNBUzEwNjhFIEIxOiBDYXBhYmlsaXRpZXM9e0luaXRpYXRv cn0KUENJOiBTZXR0aW5nIGxhdGVuY3kgdGltZXIgb2YgZGV2aWNlIDAwMDA6ODY6MDAuMCB0byA2 NApzY3NpMCA6IGlvYzA6IExTSVNBUzEwNjhFIEIxLCBGd1Jldj0wMTBhMDUwMGgsIFBvcnRzPTEs IE1heFE9NTExLCBJUlE9MTAKbGliYXRhIHZlcnNpb24gMy4wMCBsb2FkZWQuCnNhdGFfbnYgMDAw MDowMDowNS4wOiB2ZXJzaW9uIDMuNQpQQ0k6IFNldHRpbmcgbGF0ZW5jeSB0aW1lciBvZiBkZXZp Y2UgMDAwMDowMDowNS4wIHRvIDY0CnNjc2kxIDogc2F0YV9udgpzY3NpMiA6IHNhdGFfbnYKYXRh MTogU0FUQSBtYXggVURNQS8xMzMgY21kIDB4OWYwIGN0bCAweGJmMCBibWRtYSAweDQ4OTAgaXJx IDEwCmF0YTI6IFNBVEEgbWF4IFVETUEvMTMzIGNtZCAweDk3MCBjdGwgMHhiNzAgYm1kbWEgMHg0 ODk4IGlycSAxMAphdGExOiBTQVRBIGxpbmsgdXAgMS41IEdicHMgKFNTdGF0dXMgMTEzIFNDb250 cm9sIDMwMCkKYXRhMS4wMDogQVRBUEk6IE9wdGlhcmMgRFZEIFJXIEFELTcxNzBTLCAxLjgyLCBt YXggVURNQS8zMwphdGExLjAwOiBjb25maWd1cmVkIGZvciBVRE1BLzMzCmF0YTI6IFNBVEEgbGlu ayBkb3duIChTU3RhdHVzIDAgU0NvbnRyb2wgMzAwKQpzY3NpIDE6MDowOjA6IENELVJPTSAgICAg ICAgICAgIE9wdGlhcmMgIERWRCBSVyBBRC03MTcwUyAgMS44MiBQUTogMCBBTlNJOiA1ClBDSTog RW5hYmxpbmcgZGV2aWNlIDAwMDA6MDA6MDUuMSAoMDAwNSAtPiAwMDA3KQpQQ0k6IFNldHRpbmcg bGF0ZW5jeSB0aW1lciBvZiBkZXZpY2UgMDAwMDowMDowNS4xIHRvIDY0CnNjc2kzIDogc2F0YV9u dgpzY3NpNCA6IHNhdGFfbnYKYXRhMzogU0FUQSBtYXggVURNQS8xMzMgY21kIDB4OWUwIGN0bCAw eGJlMCBibWRtYSAweDQ4YzAgaXJxIDExCmF0YTQ6IFNBVEEgbWF4IFVETUEvMTMzIGNtZCAweDk2 MCBjdGwgMHhiNjAgYm1kbWEgMHg0OGM4IGlycSAxMQphdGEzOiBTQVRBIGxpbmsgdXAgMy4wIEdi cHMgKFNTdGF0dXMgMTIzIFNDb250cm9sIDMwMCkKYXRhMy4wMDogQVRBLTc6IFNUMzE2MDgxNUFT LCAzLkFBQSwgbWF4IFVETUEvMTMzCmF0YTMuMDA6IDMxMjU4MTgwOCBzZWN0b3JzLCBtdWx0aSAx NjogTEJBNDggTkNRIChkZXB0aCAwLzMyKQphdGEzLjAwOiBjb25maWd1cmVkIGZvciBVRE1BLzEz MwphdGE0OiBTQVRBIGxpbmsgZG93biAoU1N0YXR1cyAwIFNDb250cm9sIDMwMCkKc2NzaSAzOjA6 MDowOiBEaXJlY3QtQWNjZXNzICAgICBBVEEgICAgICBTVDMxNjA4MTVBUyAgICAgIDMuQUEgUFE6 IDAgQU5TSTogNQpQQ0k6IFNldHRpbmcgbGF0ZW5jeSB0aW1lciBvZiBkZXZpY2UgMDAwMDowMDow NS4yIHRvIDY0CnNjc2k1IDogc2F0YV9udgpzY3NpNiA6IHNhdGFfbnYKYXRhNTogU0FUQSBtYXgg VURNQS8xMzMgY21kIDB4NGMwMCBjdGwgMHg0OGY0IGJtZG1hIDB4NDhlMCBpcnEgMTAKYXRhNjog U0FUQSBtYXggVURNQS8xMzMgY21kIDB4NDhmOCBjdGwgMHg0OGYwIGJtZG1hIDB4NDhlOCBpcnEg MTAKYXRhNTogU0FUQSBsaW5rIGRvd24gKFNTdGF0dXMgMCBTQ29udHJvbCAzMDApCmF0YTY6IFNB VEEgbGluayBkb3duIChTU3RhdHVzIDAgU0NvbnRyb2wgMzAwKQpwYXRhX2FtZCAwMDAwOjAwOjA0 LjA6IHZlcnNpb24gMC4zLjEwClBDSTogU2V0dGluZyBsYXRlbmN5IHRpbWVyIG9mIGRldmljZSAw MDAwOjAwOjA0LjAgdG8gNjQKc2NzaTcgOiBwYXRhX2FtZApzY3NpOCA6IHBhdGFfYW1kCmF0YTc6 IFBBVEEgbWF4IFVETUEvMTMzIGNtZCAweDFmMCBjdGwgMHgzZjYgYm1kbWEgMHg0ODgwIGlycSAx NAphdGE4OiBQQVRBIG1heCBVRE1BLzEzMyBjbWQgMHgxNzAgY3RsIDB4Mzc2IGJtZG1hIDB4NDg4 OCBpcnEgMTUKYXRhNzogcG9ydCBkaXNhYmxlZC4gaWdub3JpbmcuCmF0YTg6IHBvcnQgZGlzYWJs ZWQuIGlnbm9yaW5nLgpCSU9TIEVERCBmYWNpbGl0eSB2MC4xNiAyMDA0LUp1bi0yNSwgNiBkZXZp Y2VzIGZvdW5kCnVzYmNvcmU6IHJlZ2lzdGVyZWQgbmV3IGludGVyZmFjZSBkcml2ZXIgdXNiZnMK dXNiY29yZTogcmVnaXN0ZXJlZCBuZXcgaW50ZXJmYWNlIGRyaXZlciBodWIKRHJpdmVyICdzZCcg bmVlZHMgdXBkYXRpbmcgLSBwbGVhc2UgdXNlIGJ1c190eXBlIG1ldGhvZHMKc2QgMzowOjA6MDog W3NkYV0gMzEyNTgxODA4IDUxMi1ieXRlIGhhcmR3YXJlIHNlY3RvcnMgKDE2MDA0MiBNQikKc2Qg MzowOjA6MDogW3NkYV0gV3JpdGUgUHJvdGVjdCBpcyBvZmYKdXNiY29yZTogcmVnaXN0ZXJlZCBu ZXcgZGV2aWNlIGRyaXZlciB1c2IKc2QgMzowOjA6MDogW3NkYV0gTW9kZSBTZW5zZTogMDAgM2Eg MDAgMDAKc2QgMzowOjA6MDogW3NkYV0gV3JpdGUgY2FjaGU6IGVuYWJsZWQsIHJlYWQgY2FjaGU6 IGVuYWJsZWQsIGRvZXNuJ3Qgc3VwcG9ydCBEUE8gb3IgRlVBCnNkIDM6MDowOjA6IFtzZGFdIDMx MjU4MTgwOCA1MTItYnl0ZSBoYXJkd2FyZSBzZWN0b3JzICgxNjAwNDIgTUIpCm9oY2lfaGNkOiAy MDA2IEF1Z3VzdCAwNCBVU0IgMS4xICdPcGVuJyBIb3N0IENvbnRyb2xsZXIgKE9IQ0kpIERyaXZl cgpQQ0k6IFNldHRpbmcgbGF0ZW5jeSB0aW1lciBvZiBkZXZpY2UgMDAwMDowMDowMi4wIHRvIDY0 Cm9oY2lfaGNkIDAwMDA6MDA6MDIuMDogT0hDSSBIb3N0IENvbnRyb2xsZXIKb2hjaV9oY2QgMDAw MDowMDowMi4wOiBuZXcgVVNCIGJ1cyByZWdpc3RlcmVkLCBhc3NpZ25lZCBidXMgbnVtYmVyIDEK b2hjaV9oY2QgMDAwMDowMDowMi4wOiBpcnEgNywgaW8gbWVtIDB4NzAwMDQwMDAKc2QgMzowOjA6 MDogW3NkYV0gV3JpdGUgUHJvdGVjdCBpcyBvZmYKc2QgMzowOjA6MDogW3NkYV0gTW9kZSBTZW5z ZTogMDAgM2EgMDAgMDAKc2QgMzowOjA6MDogW3NkYV0gV3JpdGUgY2FjaGU6IGVuYWJsZWQsIHJl YWQgY2FjaGU6IGVuYWJsZWQsIGRvZXNuJ3Qgc3VwcG9ydCBEUE8gb3IgRlVBCnVzYiB1c2IxOiBj b25maWd1cmF0aW9uICMxIGNob3NlbiBmcm9tIDEgY2hvaWNlCmh1YiAxLTA6MS4wOiBVU0IgaHVi IGZvdW5kCmh1YiAxLTA6MS4wOiAxMCBwb3J0cyBkZXRlY3RlZAogc2RhOiBzZGExIHNkYTIgc2Rh MyBzZGE0CnNkIDM6MDowOjA6IFtzZGFdIEF0dGFjaGVkIFNDU0kgZGlzawp1c2IgdXNiMTogTmV3 IFVTQiBkZXZpY2UgZm91bmQsIGlkVmVuZG9yPTFkNmIsIGlkUHJvZHVjdD0wMDAxCnVzYiB1c2Ix OiBOZXcgVVNCIGRldmljZSBzdHJpbmdzOiBNZnI9MywgUHJvZHVjdD0yLCBTZXJpYWxOdW1iZXI9 MQp1c2IgdXNiMTogUHJvZHVjdDogT0hDSSBIb3N0IENvbnRyb2xsZXIKdXNiIHVzYjE6IE1hbnVm YWN0dXJlcjogTGludXggMi42LjI1LXBhZSBvaGNpX2hjZAp1c2IgdXNiMTogU2VyaWFsTnVtYmVy OiAwMDAwOjAwOjAyLjAKUENJOiBTZXR0aW5nIGxhdGVuY3kgdGltZXIgb2YgZGV2aWNlIDAwMDA6 MDA6MDIuMSB0byA2NAplaGNpX2hjZCAwMDAwOjAwOjAyLjE6IEVIQ0kgSG9zdCBDb250cm9sbGVy CmVoY2lfaGNkIDAwMDA6MDA6MDIuMTogbmV3IFVTQiBidXMgcmVnaXN0ZXJlZCwgYXNzaWduZWQg YnVzIG51bWJlciAyCmVoY2lfaGNkIDAwMDA6MDA6MDIuMTogZGVidWcgcG9ydCAxClBDSTogY2Fj aGUgbGluZSBzaXplIG9mIDY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgZGV2aWNlIDAwMDA6MDA6MDIu MQplaGNpX2hjZCAwMDAwOjAwOjAyLjE6IGlycSA1LCBpbyBtZW0gMHg3MDAwNTAwMAplaGNpX2hj ZCAwMDAwOjAwOjAyLjE6IFVTQiAyLjAgc3RhcnRlZCwgRUhDSSAxLjAwLCBkcml2ZXIgMTAgRGVj IDIwMDQKdXNiIHVzYjI6IGNvbmZpZ3VyYXRpb24gIzEgY2hvc2VuIGZyb20gMSBjaG9pY2UKaHVi IDItMDoxLjA6IFVTQiBodWIgZm91bmQKaHViIDItMDoxLjA6IDEwIHBvcnRzIGRldGVjdGVkCnVz YiB1c2IyOiBOZXcgVVNCIGRldmljZSBmb3VuZCwgaWRWZW5kb3I9MWQ2YiwgaWRQcm9kdWN0PTAw MDIKdXNiIHVzYjI6IE5ldyBVU0IgZGV2aWNlIHN0cmluZ3M6IE1mcj0zLCBQcm9kdWN0PTIsIFNl cmlhbE51bWJlcj0xCnVzYiB1c2IyOiBQcm9kdWN0OiBFSENJIEhvc3QgQ29udHJvbGxlcgp1c2Ig dXNiMjogTWFudWZhY3R1cmVyOiBMaW51eCAyLjYuMjUtcGFlIGVoY2lfaGNkCnVzYiB1c2IyOiBT ZXJpYWxOdW1iZXI6IDAwMDA6MDA6MDIuMQp1c2IgMS05OiBuZXcgbG93IHNwZWVkIFVTQiBkZXZp Y2UgdXNpbmcgb2hjaV9oY2QgYW5kIGFkZHJlc3MgMgp1c2IgMS05OiBjb25maWd1cmF0aW9uICMx IGNob3NlbiBmcm9tIDEgY2hvaWNlCnVzYiAxLTk6IE5ldyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZl bmRvcj0wNDZkLCBpZFByb2R1Y3Q9YzAxOAp1c2IgMS05OiBOZXcgVVNCIGRldmljZSBzdHJpbmdz OiBNZnI9MSwgUHJvZHVjdD0yLCBTZXJpYWxOdW1iZXI9MAp1c2IgMS05OiBQcm9kdWN0OiBVU0Ig T3B0aWNhbCBNb3VzZQp1c2IgMS05OiBNYW51ZmFjdHVyZXI6IExvZ2l0ZWNoCnVzYmNvcmU6IHJl Z2lzdGVyZWQgbmV3IGludGVyZmFjZSBkcml2ZXIgaGlkZGV2CmlucHV0OiBMb2dpdGVjaCBVU0Ig T3B0aWNhbCBNb3VzZSBhcyAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MDIuMC91c2IxLzEt OS8xLTk6MS4wL2lucHV0L2lucHV0MQppbnB1dCxoaWRyYXcwOiBVU0IgSElEIHYxLjExIE1vdXNl IFtMb2dpdGVjaCBVU0IgT3B0aWNhbCBNb3VzZV0gb24gdXNiLTAwMDA6MDA6MDIuMC05CnVzYmNv cmU6IHJlZ2lzdGVyZWQgbmV3IGludGVyZmFjZSBkcml2ZXIgdXNiaGlkCmRyaXZlcnMvaGlkL3Vz YmhpZC9oaWQtY29yZS5jOiB2Mi42OlVTQiBISUQgY29yZSBkcml2ZXIKa2pvdXJuYWxkIHN0YXJ0 aW5nLiAgQ29tbWl0IGludGVydmFsIDUgc2Vjb25kcwpFWFQzIEZTIG9uIHNkYTMsIGludGVybmFs IGpvdXJuYWwKRVhUMy1mczogbW91bnRlZCBmaWxlc3lzdGVtIHdpdGggb3JkZXJlZCBkYXRhIG1v ZGUuCnBjaV9ob3RwbHVnOiBQQ0kgSG90IFBsdWcgUENJIENvcmUgdmVyc2lvbjogMC41CnNjc2kg MTowOjA6MDogQXR0YWNoZWQgc2NzaSBnZW5lcmljIHNnMCB0eXBlIDUKc2QgMzowOjA6MDogQXR0 YWNoZWQgc2NzaSBnZW5lcmljIHNnMSB0eXBlIDAKZm9yY2VkZXRoOiBSZXZlcnNlIEVuZ2luZWVy ZWQgbkZvcmNlIGV0aGVybmV0IGRyaXZlci4gVmVyc2lvbiAwLjYxLgpQQ0k6IFNldHRpbmcgbGF0 ZW5jeSB0aW1lciBvZiBkZXZpY2UgMDAwMDowMDowOC4wIHRvIDY0CkRyaXZlciAnc3InIG5lZWRz IHVwZGF0aW5nIC0gcGxlYXNlIHVzZSBidXNfdHlwZSBtZXRob2RzCnNyMDogc2NzaTMtbW1jIGRy aXZlOiA0OHgvNDh4IHdyaXRlciBkdmQtcmFtIGNkL3J3IHhhL2Zvcm0yIGNkZGEgdHJheQpVbmlm b3JtIENELVJPTSBkcml2ZXIgUmV2aXNpb246IDMuMjAKc3IgMTowOjA6MDogQXR0YWNoZWQgc2Nz aSBDRC1ST00gc3IwCmZvcmNlZGV0aCAwMDAwOjAwOjA4LjA6IGlmbmFtZSBldGgwLCBQSFkgT1VJ IDB4NTA0MyBAIDAsIGFkZHIgMDA6ZTA6ODE6NzM6MjU6ZjcKZm9yY2VkZXRoIDAwMDA6MDA6MDgu MDogaGlnaGRtYSBjc3VtIHZsYW4gcHdyY3RsIG1nbXQgdGltaXJxIGdiaXQgbG5rdGltIG1zaSBk ZXNjLXYzCm9oY2kxMzk0OiBmdy1ob3N0MDogT0hDSS0xMzk0IDEuMSAoUENJKTogSVJRPVsxMF0g IE1NSU89WzcwMTA0MDAwLTcwMTA0N2ZmXSAgTWF4IFBhY2tldD1bMjA0OF0gIElSL0lUIGNvbnRl eHRzPVs0LzhdCnNocGNocDogSFBDIHZlbmRvcl9pZCAxMDMzIGRldmljZV9pZCAxMjUgc3Nfdmlk IDAgc3NfZGlkIDAKaTJjLWFkYXB0ZXIgaTJjLTA6IG5Gb3JjZTIgU01CdXMgYWRhcHRlciBhdCAw eDQ4NDAKaTJjLWFkYXB0ZXIgaTJjLTE6IG5Gb3JjZTIgU01CdXMgYWRhcHRlciBhdCAweDQ4MDAK c2hwY2hwOiBTdGFuZGFyZCBIb3QgUGx1ZyBQQ0kgQ29udHJvbGxlciBEcml2ZXIgdmVyc2lvbjog MC40CmkyYy1hZGFwdGVyIGkyYy0yOiBuRm9yY2UyIFNNQnVzIGFkYXB0ZXIgYXQgMHg3NDQwClBD STogU2V0dGluZyBsYXRlbmN5IHRpbWVyIG9mIGRldmljZSAwMDAwOjAwOjA5LjAgdG8gNjQKaTJj LWFkYXB0ZXIgaTJjLTM6IG5Gb3JjZTIgU01CdXMgYWRhcHRlciBhdCAweDc0MDAKZm9yY2VkZXRo IDAwMDA6MDA6MDkuMDogaWZuYW1lIGV0aDEsIFBIWSBPVUkgMHg1MDQzIEAgMSwgYWRkciAwMDpl MDo4MTo3MzoyNTpmOApmb3JjZWRldGggMDAwMDowMDowOS4wOiBoaWdoZG1hIGNzdW0gdmxhbiBw d3JjdGwgbWdtdCB0aW1pcnEgZ2JpdCBsbmt0aW0gbXNpIGRlc2MtdjMKUENJOiBTZXR0aW5nIGxh dGVuY3kgdGltZXIgb2YgZGV2aWNlIDAwMDA6MDA6MDYuMSB0byA2NApoZGFfY29kZWM6IFVua25v d24gbW9kZWwgZm9yIEFMQzI2MiwgdHJ5aW5nIGF1dG8tcHJvYmUgZnJvbSBCSU9TLi4uCkFMU0Eg c291bmQvcGNpL2hkYS9oZGFfY29kZWMuYzoyODYwOiBhdXRvY29uZmlnOiBsaW5lX291dHM9MSAo MHgxNS8weDAvMHgwLzB4MC8weDApCkFMU0Egc291bmQvcGNpL2hkYS9oZGFfY29kZWMuYzoyODY0 OiAgICBzcGVha2VyX291dHM9MCAoMHgwLzB4MC8weDAvMHgwLzB4MCkKQUxTQSBzb3VuZC9wY2kv aGRhL2hkYV9jb2RlYy5jOjI4Njg6ICAgIGhwX291dHM9MSAoMHgxYi8weDAvMHgwLzB4MC8weDAp CkFMU0Egc291bmQvcGNpL2hkYS9oZGFfY29kZWMuYzoyODY5OiAgICBtb25vOiBtb25vX291dD0w eDE2CkFMU0Egc291bmQvcGNpL2hkYS9oZGFfY29kZWMuYzoyODc3OiAgICBpbnB1dHM6IG1pYz0w eDE4LCBmbWljPTB4MTksIGxpbmU9MHgxYSwgZmxpbmU9MHgwLCBjZD0weDAsIGF1eD0weDAKQWRk aW5nIDEyNTg2OTE2ayBzd2FwIG9uIC9kZXYvc2RhMi4gIFByaW9yaXR5Oi0xIGV4dGVudHM6MSBh Y3Jvc3M6MTI1ODY5MTZrCmllZWUxMzk0OiBIb3N0IGFkZGVkOiBJRDpCVVNbMC0wMDoxMDIzXSAg R1VJRFswMGUwODEwMDAwMjc4YzkyXQpkZXZpY2UtbWFwcGVyOiB1ZXZlbnQ6IHZlcnNpb24gMS4w LjMKZGV2aWNlLW1hcHBlcjogaW9jdGw6IDQuMTMuMC1pb2N0bCAoMjAwNy0xMC0xOCkgaW5pdGlh bGlzZWQ6IGRtLWRldmVsQHJlZGhhdC5jb20KbG9vcDogbW9kdWxlIGxvYWRlZApram91cm5hbGQg c3RhcnRpbmcuICBDb21taXQgaW50ZXJ2YWwgNSBzZWNvbmRzCkVYVDMgRlMgb24gc2RhMSwgaW50 ZXJuYWwgam91cm5hbApFWFQzLWZzOiBtb3VudGVkIGZpbGVzeXN0ZW0gd2l0aCBvcmRlcmVkIGRh dGEgbW9kZS4Ka2pvdXJuYWxkIHN0YXJ0aW5nLiAgQ29tbWl0IGludGVydmFsIDUgc2Vjb25kcwpF WFQzIEZTIG9uIHNkYTQsIGludGVybmFsIGpvdXJuYWwKRVhUMy1mczogbW91bnRlZCBmaWxlc3lz dGVtIHdpdGggb3JkZXJlZCBkYXRhIG1vZGUuCmZ1c2UgaW5pdCAoQVBJIHZlcnNpb24gNy45KQpp cDZfdGFibGVzOiAoQykgMjAwMC0yMDA2IE5ldGZpbHRlciBDb3JlIFRlYW0KaXBfdGFibGVzOiAo QykgMjAwMC0yMDA2IE5ldGZpbHRlciBDb3JlIFRlYW0KUlBDOiBSZWdpc3RlcmVkIHVkcCB0cmFu c3BvcnQgbW9kdWxlLgpSUEM6IFJlZ2lzdGVyZWQgdGNwIHRyYW5zcG9ydCBtb2R1bGUuCkNQVTAg YXR0YWNoaW5nIE5VTEwgc2NoZWQtZG9tYWluLgpDUFUxIGF0dGFjaGluZyBOVUxMIHNjaGVkLWRv bWFpbi4KQ1BVMiBhdHRhY2hpbmcgTlVMTCBzY2hlZC1kb21haW4uCkNQVTMgYXR0YWNoaW5nIE5V TEwgc2NoZWQtZG9tYWluLgpDUFUwIGF0dGFjaGluZyBzY2hlZC1kb21haW46CiBkb21haW4gMDog c3BhbiAwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAwZgogIGdyb3VwczogMDAwMDAw MDAsMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDEgMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDAs MDAwMDAwMDIgMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDQgMDAwMDAwMDAsMDAw MDAwMDAsMDAwMDAwMDAsMDAwMDAwMDgKQ1BVMSBhdHRhY2hpbmcgc2NoZWQtZG9tYWluOgogZG9t YWluIDA6IHNwYW4gMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMGYKICBncm91cHM6 IDAwMDAwMDAwLDAwMDAwMDAwLDAwMDAwMDAwLDAwMDAwMDAyIDAwMDAwMDAwLDAwMDAwMDAwLDAw MDAwMDAwLDAwMDAwMDA0IDAwMDAwMDAwLDAwMDAwMDAwLDAwMDAwMDAwLDAwMDAwMDA4IDAwMDAw MDAwLDAwMDAwMDAwLDAwMDAwMDAwLDAwMDAwMDAxCkNQVTIgYXR0YWNoaW5nIHNjaGVkLWRvbWFp bjoKIGRvbWFpbiAwOiBzcGFuIDAwMDAwMDAwLDAwMDAwMDAwLDAwMDAwMDAwLDAwMDAwMDBmCiAg Z3JvdXBzOiAwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAwNCAwMDAwMDAwMCwwMDAw MDAwMCwwMDAwMDAwMCwwMDAwMDAwOCAwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAw MSAwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAwMgpDUFUzIGF0dGFjaGluZyBzY2hl ZC1kb21haW46CiBkb21haW4gMDogc3BhbiAwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAwMCwwMDAw MDAwZgogIGdyb3VwczogMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDggMDAwMDAw MDAsMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDEgMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDAs MDAwMDAwMDIgMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDQKcnBjYmluZDogc2Vy dmVyIHRpbW9yIG5vdCByZXNwb25kaW5nLCB0aW1lZCBvdXQKcnBjYmluZDogc2VydmVyIHRpbW9y IG5vdCByZXNwb25kaW5nLCB0aW1lZCBvdXQKTkVUOiBSZWdpc3RlcmVkIHByb3RvY29sIGZhbWls eSAxNwpVbmlmb3JtIE11bHRpLVBsYXRmb3JtIEUtSURFIGRyaXZlcgppZGU6IEFzc3VtaW5nIDMz TUh6IHN5c3RlbSBidXMgc3BlZWQgZm9yIFBJTyBtb2Rlczsgb3ZlcnJpZGUgd2l0aCBpZGVidXM9 eHgKc3Q6IFZlcnNpb24gMjAwODAyMjEsIGZpeGVkIGJ1ZnNpemUgMzI3NjgsIHMvZyBzZWdzIDI1 NgpEcml2ZXIgJ3N0JyBuZWVkcyB1cGRhdGluZyAtIHBsZWFzZSB1c2UgYnVzX3R5cGUgbWV0aG9k cwplbmRfcmVxdWVzdDogSS9PIGVycm9yLCBkZXYgZmQwLCBzZWN0b3IgMAplbmRfcmVxdWVzdDog SS9PIGVycm9yLCBkZXYgZmQwLCBzZWN0b3IgMApwcGRldjogdXNlci1zcGFjZSBwYXJhbGxlbCBw b3J0IGRyaXZlcgpscDogZHJpdmVyIGxvYWRlZCBidXQgbm8gZGV2aWNlcyBmb3VuZApscDogZHJp dmVyIGxvYWRlZCBidXQgbm8gZGV2aWNlcyBmb3VuZApscDogZHJpdmVyIGxvYWRlZCBidXQgbm8g ZGV2aWNlcyBmb3VuZAplbmRfcmVxdWVzdDogSS9PIGVycm9yLCBkZXYgZmQwLCBzZWN0b3IgMApl bmRfcmVxdWVzdDogSS9PIGVycm9yLCBkZXYgZmQwLCBzZWN0b3IgMAplbmRfcmVxdWVzdDogSS9P IGVycm9yLCBkZXYgZmQwLCBzZWN0b3IgMAplbmRfcmVxdWVzdDogSS9PIGVycm9yLCBkZXYgZmQw LCBzZWN0b3IgMApycGNiaW5kOiBzZXJ2ZXIgdGltb3Igbm90IHJlc3BvbmRpbmcsIHRpbWVkIG91 dApycGNiaW5kOiBzZXJ2ZXIgdGltb3Igbm90IHJlc3BvbmRpbmcsIHRpbWVkIG91dAp2eHdvcmtz X3RpY2tfdGltZV9tb2R1bGU6IG1vZHVsZSBsaWNlbnNlICd1bnNwZWNpZmllZCcgdGFpbnRzIGtl cm5lbC4Kdnh3b3Jrc190aWNrX3RpbWVfbW9kdWxlIDogaW5pdF9tb2R1bGUKUEVWMTEwMCBNU0kg ZW5hYmxlZCA6IHBldiBpcnEgPSAyMTEKb3Blbl9ydCA6IG15X2NvbnRleHQgdmFsdWUgOiAweGRh MmUxMDI4Cm9wZW5fcnQgOiBoYW5kbGUgdmFsdWUgOiAweDAKLS0tLS0tLS0tLS0tWyBjdXQgaGVy ZSBdLS0tLS0tLS0tLS0tCmtlcm5lbCBCVUcgYXQga2VybmVsL2lwaXBlL2NvcmUuYzozMjMhCmlu dmFsaWQgb3Bjb2RlOiAwMDAwIFsjMV0gUFJFRU1QVCBTTVAgCk1vZHVsZXMgbGlua2VkIGluOiB2 eHdvcmtzX3RpY2tfdGltZV9tb2R1bGUoUCkgbHAgcGFycG9ydF9wYyBwcGRldiBwYXJwb3J0IHN0 IGlkZV9kaXNrIGlkZV9jZF9tb2QgaWRlX2NvcmUgYWZfcGFja2V0IGpveWRldiBuZnMgbG9ja2Qg bmZzX2FjbCBzdW5ycGMgYXV0b2ZzNCBzbmRfcGNtX29zcyBzbmRfbWl4ZXJfb3NzIHNuZF9zZXEg YmluZm10X21pc2Mgc25kX3NlcV9kZXZpY2UgaXB0YWJsZV9maWx0ZXIgaXBfdGFibGVzIGlwNl90 YWJsZXMgeF90YWJsZXMgZnVzZSBsb29wIGRtX21vZCBzbmRfaGRhX2ludGVsIHNuZF9wY20gc25k X3RpbWVyIHNuZF9wYWdlX2FsbG9jIHNuZF9od2RlcCBzbmQgb2hjaTEzOTQgc3JfbW9kIGllZWUx Mzk0IHNocGNocCBpMmNfbmZvcmNlMiBpMmNfY29yZSBmb3JjZWRldGggc2cgcGNpX2hvdHBsdWcg c291bmRjb3JlIGNkcm9tIGs4dGVtcCB1c2JoaWQgaGlkIGZmX21lbWxlc3MgZWhjaV9oY2Qgb2hj aV9oY2Qgc2RfbW9kIHVzYmNvcmUgZWRkIGV4dDMgbWJjYWNoZSBqYmQgcGF0YV9hbWQgc2F0YV9u diBsaWJhdGEgbXB0c2FzIG1wdHNjc2loIG1wdGJhc2Ugc2NzaV90cmFuc3BvcnRfc2FzIHNjc2lf bW9kIFtsYXN0IHVubG9hZGVkOiBwYXJwb3J0X3BjXQoKUGlkOiAxMjQ5MiwgY29tbTogdGljayBU YWludGVkOiBQICAgICAgICAgKDIuNi4yNS1wYWUgIzEwKQpFSVA6IDAwNjA6WzxjMDE1MGE4MT5d IEVGTEFHUzogMDAwMTAwMDYgQ1BVOiAwCkVJUCBpcyBhdCBfX2lwaXBlX3Jlc3RvcmVfcm9vdCsw eDFhLzB4M2YKRUFYOiBjMDQyYzU3NCBFQlg6IDgwODUwMDAwIEVDWDogMDAwMDAwMDEgRURYOiAw NWRlNzAwMApFU0k6IDAwMDAwMDRjIEVESTogMDAwMDAwMDAgRUJQOiBkOTRlN2NkNCBFU1A6IGQ5 NGU3Y2Q0CiBEUzogMDA3YiBFUzogMDA3YiBGUzogMDBkOCBHUzogMDAzMyBTUzogMDA2OApQcm9j ZXNzIHRpY2sgKHBpZDogMTI0OTIsIHRpPWQ5NGU2MDAwIHRhc2s9ZDg5ZjUwZTAgdGFzay50aT1k OTRlNjAwMCk8MD4KSS1waXBlIGRvbWFpbiBMaW51eApTdGFjazogZDk0ZTdjZGMgYzAyZTk1MTkg ZDk0ZTdjZjAgYzAyNzg2ZDggYzAzZDhlOWMgMDAwMDAwODUgZDk0ZTdkNDQgZDk0ZTdkMTQgCiAg ICAgICBjMDI3OTczMiAwMDAwMDA0YyAwMDAwMDAwNCBkOTRlN2Q0NCAwMDAwMDAwMCAwMDAwMDAw MCBkYTBjMTAwMCAwMDAwMDA0YyAKICAgICAgIGQ5NGU3ZDJjIGMwMjc5N2IwIDAwMDAwMDRjIDAw MDAwMDA0IGQ5NGU3ZDQ0IGMwM2Q4ZjAwIGQ5NGU3ZDU0IGMwMjFhODljIApDYWxsIFRyYWNlOgog WzxjMDJlOTUxOT5dID8gX3NwaW5fdW5sb2NrX2lycXJlc3RvcmUrMHgxOC8weDM2CiBbPGMwMjc4 NmQ4Pl0gPyBwY2lfY29uZjFfcmVhZCsweGE0LzB4YWIKIFs8YzAyNzk3MzI+XSA/IHJhd19wY2lf cmVhZCsweDRhLzB4NTUKIFs8YzAyNzk3YjA+XSA/IHBjaV9yZWFkKzB4MWQvMHgyMgogWzxjMDIx YTg5Yz5dID8gcGNpX2J1c19yZWFkX2NvbmZpZ19kd29yZCsweDQwLzB4NjMKIFs8YzAyMjFiOTM+ XSA/IHJlYWRfbXNpX21zZysweDQ0LzB4YmYKIFs8YzAxMTA5NzA+XSA/IHNldF9tc2lfaXJxX2Fm ZmluaXR5KzB4ODkvMHhkMAogWzxjMDExMzE2ZD5dID8gX19pcGlwZV9zZXRfaXJxX2FmZmluaXR5 KzB4YmQvMHhkMQogWzxjMDE0ZmViOD5dID8gaXBpcGVfc2V0X2lycV9hZmZpbml0eSsweDQxLzB4 NWQKIFs8YzAxNTRhNDM+XSA/IHhuaW50cl9hdHRhY2grMHg5OC8weDExNwogWzxjMDE4NjU1Mj5d ID8gcnRkbV9pcnFfcmVxdWVzdCsweDIzLzB4NDkKIFs8ZGM3MTEwMjI+XSA/IGlycV90aWNrX2hh bmRsZXIrMHgwLzB4MTQgW3Z4d29ya3NfdGlja190aW1lX21vZHVsZV0KIFs8ZGM3MTEzMmU+XSA/ IG9wZW5fcnQrMHg4Mi8weGI0IFt2eHdvcmtzX3RpY2tfdGltZV9tb2R1bGVdCiBbPGMwMTg1OTEx Pl0gPyBfX3J0X2Rldl9vcGVuKzB4OGQvMHgxMTgKIFs8YzAxODc1ZDg+XSA/IHN5c19ydGRtX29w ZW4rMHg0Ni8weDU1CiBbPGMwMTgwMDMwPl0gPyBtcV9nZXRhdHRyKzB4MTA2LzB4MTU4CiBbPGMw MTYxZTBkPl0gPyBoaXN5c2NhbGxfZXZlbnQrMHgxMzcvMHgyNTYKIFs8YzAxNTA1M2U+XSA/IF9f aXBpcGVfZGlzcGF0Y2hfZXZlbnQrMHhjNi8weDFhMwogWzxjMDE2MWNkNj5dID8gaGlzeXNjYWxs X2V2ZW50KzB4MC8weDI1NgogWzxjMDExMmUzNz5dID8gX19pcGlwZV9zeXNjYWxsX3Jvb3QrMHg3 Zi8weDExMgogWzxjMDEwNGE5ZD5dID8gc3lzdGVtX2NhbGwrMHgyOS8weDRhCiA9PT09PT09PT09 PT09PT09PT09PT09PQpDb2RlOiA3YyAwMiAwNCAwMCA3NCAwOCA4MyBjOCBmZiBlOCA1NiBmNyBm ZiBmZiBmYiA1ZCBjMyA1NSA4OSBjMSA2NCA4YiAxNSAyOCBhMSA0MiBjMCBiOCA3NCBjNSA0MiBj MCA4OSBlNSA4MSAzYyAxMCA4MCA3MSA0YSBjMCA3NCAwNCA8MGY+IDBiIGViIGZlIDg1IGM5IDc0 IDE2IDljIGZhIDY0IGExIDI4IGExIDQyIGMwIDhkIDgwIDE0IGIyIDQyIApFSVA6IFs8YzAxNTBh ODE+XSBfX2lwaXBlX3Jlc3RvcmVfcm9vdCsweDFhLzB4M2YgU1M6RVNQIDAwNjg6ZDk0ZTdjZDQK LS0tWyBlbmQgdHJhY2UgYmE5MTkxNTUyNDdkZTU0OSBdLS0tCm5vdGU6IHRpY2tbMTI0OTJdIGV4 aXRlZCB3aXRoIHByZWVtcHRfY291bnQgMgo= ------_=_NextPart_001_01C94E55.6E5D66D6-- From mboxrd@z Thu Jan 1 00:00:00 1970 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C94EFF.9A743F6C" Date: Tue, 25 Nov 2008 14:13:27 +0100 Message-ID: In-Reply-To: From: "Rubio, Martial" Subject: Re: [Xenomai-help] External PCIe device: MSI interrupt install hangs up the CPU List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: jeanfrancois.gilot@domain.hid, xenomai@xenomai.org, "Dupeyrou, Gilles" This is a multi-part message in MIME format. ------_=_NextPart_001_01C94EFF.9A743F6C Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hello ... ... I apologize : pci_bus_read_config_word is an old 32-bit access routine ...=20 Sorry for my great haste. If I disable CONFIG_PCI_MSI, eth0 is plugged now on a classical PCI IRQ vector=20 And the init part of PEV1100 (my external PCIe device) does not work (it's normal) So CONFIG_PCI_MSI is mandatory . About PEV1100 after pci_msi_enable (allways in init part) no source of interrupt is still enabled ... So registration can be done (rtdm ...) . BUT : are the MSI interrupts (eth0 & PEV1100) are rightly dispatched ??? By viewing attached file, the last function seems to be __ipipe_restore_root And a few lines before irq_tick_handler+0x0/0x14 [vxworks_tick_time_module]* As if an interrupt source of PEV1100 has allready been enabled (obviously no). I think that MSI interrupt management is unable to make a difference between eth0 and another PCIe device MSI(coming from vector 212 OR vector 211). If I'm lucky is it fixed in 2.6.26.7 + ipipe-2.0-16 ? *vxworks_tick_time_module : it's my PEV1100 interrupt handler (you know now why I'm using Xenomai with Vx skins and in a first time working with a hal/i386 arch : 32 bit) Best regards Martial -----Original Message----- From: Rubio, Martial=20 Sent: Monday, November 24, 2008 5:55 PM To: 'Jan Kiszka' Cc: xenomai@xenomai.org; jeanfrancois.gilot@domain.hid; Dupeyrou, Gilles Subject: RE: External PCIe device: MSI interrupt install hangs up the CPU Hello everybody ... Find attached text files which seems to be very useful about my CPU hanging Perharps a problem of detection of an external dev PCIe with only MSI 64-bit access Capability (pci_bus_read_config_dword instead of pci_bus_read_config_word in pci/msi.c) with a machine which has been configured in a 32-bit mode (mandatory in my case) ? What do you think of that? ... And if TRUE what to do (it's a question for J.F) Regards to all Martial -----Original Message----- From: Jan Kiszka [mailto:jan.kiszka@domain.hid] Sent: Friday, November 21, 2008 5:46 PM To: Rubio, Martial Cc: xenomai@xenomai.org; jeanfrancois.gilot@domain.hid; Dupeyrou, Gilles Subject: Re: External PCIe device: MSI interrupt install hangs up the CPU Rubio, Martial wrote: > Hello everybody > =20 > I'm working with following config :=20 > =20 > CPU (0=3D>3) AMD Dual Core AMD Opteron > Linux version 2.6.25-pae 2.6.25 comes with the risk of missing relevant fixes that went into .26 and later. Do you have a chance to update? 2.6.27 is a bit fresh, 2.6.26.7 + ipipe-2.0-16 would be a conservative approach right now. > Xenomai : hal / i386 > Xenomai : real time nucleus v2.4.5 > =20 > Here's below the state of /proc/interrupts : > =20 > in red fonts the range of PCIe(xpress)-MSI vectors : Uuh, please don't expect the reader to have HTML rendering on for a typically text-only medium like mail. Yeah, it tends to be the other way around inside companies, I know... > =20 > hurle-bise [anaisvs](34):more /proc/interrupts > CPU0 CPU1 CPU2 CPU3 > 0: 146 0 0 0 XT-PIC-XT > timer > 1: 1039 0 0 0 XT-PIC-XT > i8042 > 2: 0 0 0 0 XT-PIC-XT > cascade > 4: 5 0 0 0 XT-PIC-XT > 5: 2 0 0 0 XT-PIC-XT > ehci_hcd:usb2 > 6: 5 0 0 0 XT-PIC-XT > floppy > 7: 16300 0 0 0 XT-PIC-XT > ohci_hcd:usb1 > 10: 155104 0 0 0 XT-PIC-XT > ioc0, sata_nv, sata_nv, ohci1394 > 11: 47305 0 0 0 XT-PIC-XT > sata_nv, HDA Intel > 14: 0 0 0 0 XT-PIC-XT > pata_amd > 15: 0 0 0 0 XT-PIC-XT > pata_amd > 212: 0 9 487 1942504 PCI-MSI-edge > eth0 > 213: 0 0 0 0 PCI-MSI-edge > shpchp > NMI: 0 0 0 0 Non-maskable > interrupts > LOC: 3722798 3722767 3722730 3722768 Local timer > interrupts > RES: 39386 37672 23570 25780 Rescheduling > interrupts > CAL: 1112 1273 1280 250 function call > interrupts > TLB: 6144 8510 6271 9025 TLB shootdowns > TRM: 0 0 0 0 Thermal event > interrupts > SPU: 0 0 0 0 Spurious interrupts > ERR: 1 > MIS: 0 > =20 > I try to install a new MSI interrupt via rtdm package > (rtdm_irq_request) with a vector number (211) given by the call to=20 > pci_msi_enable for the new PCIe device. Is that driver prepared to possibly receive an immediate IRQ after registration? Of course, that can only happen if the device's hardware is not explicitly configured to disable IRQ delivery. I'm asking as it is a common mistake to mixup IRQ arming and proper driver state initialization. > =20 > The system hangs up immediatly (sometimes I can catch the stack trace=20 > with dmesg the last reference seems to be in rt_hal package) You should try to capture a full trace via a serial console e.g., see linux/Documentation/serial-console.txt. > =20 > If I replace (for debug only!!!) this vector number by an unused=20 > "classical" vector number (for instance > 14 or 15) ... no problem. > =20 > Have you allready test this kind of configuration ... if so a little=20 > help from your part would be greatly appreciated! Another test around MSI: try to disable CONFIG_PCI_MSI and check if something changes. Jan -- Siemens AG, Corporate Technology, CT SE 2 ES-OS Corporate Competence Center Embedded Linux ------_=_NextPart_001_01C94EFF.9A743F6C Content-Type: application/octet-stream; name="boot.messages" Content-Transfer-Encoding: base64 Content-Description: boot.messages Content-Disposition: attachment; filename="boot.messages" TGludXggdmVyc2lvbiAyLjYuMjUtcGFlIChyb290QGh1cmxlLWJpc2UpIChnY2MgdmVyc2lvbiA0 LjMuMSAyMDA4MDUwNyAocHJlcmVsZWFzZSkgW2djYy00XzMtYnJhbmNoIHJldmlzaW9uIDEzNTAz Nl0gKFNVU0UgTGludXgpICkgIzEwIFNNUCBQUkVFTVBUIEZyaSBTZXAgMTkgMTI6NTE6MDAgQ0VT VCAyMDA4CkJJT1MtcHJvdmlkZWQgcGh5c2ljYWwgUkFNIG1hcDoKIEJJT1MtZTgyMDogMDAwMDAw MDAwMDAwMDAwMCAtIDAwMDAwMDAwMDAwOWQ4MDAgKHVzYWJsZSkKIEJJT1MtZTgyMDogMDAwMDAw MDAwMDA5ZDgwMCAtIDAwMDAwMDAwMDAwYTAwMDAgKHJlc2VydmVkKQogQklPUy1lODIwOiAwMDAw MDAwMDAwMGNlMDAwIC0gMDAwMDAwMDAwMDEwMDAwMCAocmVzZXJ2ZWQpCiBCSU9TLWU4MjA6IDAw MDAwMDAwMDAxMDAwMDAgLSAwMDAwMDAwMDZmZWYwMDAwICh1c2FibGUpCiBCSU9TLWU4MjA6IDAw MDAwMDAwNmZlZjAwMDAgLSAwMDAwMDAwMDZmZWZlMDAwIChBQ1BJIGRhdGEpCiBCSU9TLWU4MjA6 IDAwMDAwMDAwNmZlZmUwMDAgLSAwMDAwMDAwMDZmZjgwMDAwIChBQ1BJIE5WUykKIEJJT1MtZTgy MDogMDAwMDAwMDA2ZmY4MDAwMCAtIDAwMDAwMDAwNzAwMDAwMDAgKHJlc2VydmVkKQogQklPUy1l ODIwOiAwMDAwMDAwMGUwMDAwMDAwIC0gMDAwMDAwMDBmMDAwMDAwMCAocmVzZXJ2ZWQpCiBCSU9T LWU4MjA6IDAwMDAwMDAwZmVjMDAwMDAgLSAwMDAwMDAwMGZlYzEwMDAwIChyZXNlcnZlZCkKIEJJ T1MtZTgyMDogMDAwMDAwMDBmZWUwMDAwMCAtIDAwMDAwMDAwZmVlMDEwMDAgKHJlc2VydmVkKQog QklPUy1lODIwOiAwMDAwMDAwMGZmZjAwMDAwIC0gMDAwMDAwMDEwMDAwMDAwMCAocmVzZXJ2ZWQp CiBCSU9TLWU4MjA6IDAwMDAwMDAxMDAwMDAwMDAgLSAwMDAwMDAwMjkwMDAwMDAwICh1c2FibGUp CjEwMDY0TUIgSElHSE1FTSBhdmFpbGFibGUuCjQzMk1CIExPV01FTSBhdmFpbGFibGUuClNjYW4g U01QIGZyb20gYzAwMDAwMDAgZm9yIDEwMjQgYnl0ZXMuClNjYW4gU01QIGZyb20gYzAwOWZjMDAg Zm9yIDEwMjQgYnl0ZXMuClNjYW4gU01QIGZyb20gYzAwZjAwMDAgZm9yIDY1NTM2IGJ5dGVzLgpm b3VuZCBTTVAgTVAtdGFibGUgYXQgW2MwMGY2ZjIwXSAwMDBmNmYyMApOWCAoRXhlY3V0ZSBEaXNh YmxlKSBwcm90ZWN0aW9uOiBhY3RpdmUKRW50ZXJpbmcgYWRkX2FjdGl2ZV9yYW5nZSgwLCAwLCAy Njg2OTc2KSAwIGVudHJpZXMgb2YgMjU2IHVzZWQKWm9uZSBQRk4gcmFuZ2VzOgogIERNQSAgICAg ICAgICAgICAwIC0+ICAgICA0MDk2CiAgTm9ybWFsICAgICAgIDQwOTYgLT4gICAxMTA1OTIKICBI aWdoTWVtICAgIDExMDU5MiAtPiAgMjY4Njk3NgpNb3ZhYmxlIHpvbmUgc3RhcnQgUEZOIGZvciBl YWNoIG5vZGUKZWFybHlfbm9kZV9tYXBbMV0gYWN0aXZlIFBGTiByYW5nZXMKICAgIDA6ICAgICAg ICAwIC0+ICAyNjg2OTc2Ck9uIG5vZGUgMCB0b3RhbHBhZ2VzOiAyNjg2OTc2CiAgRE1BIHpvbmU6 IDMyIHBhZ2VzIHVzZWQgZm9yIG1lbW1hcAogIERNQSB6b25lOiAwIHBhZ2VzIHJlc2VydmVkCiAg RE1BIHpvbmU6IDQwNjQgcGFnZXMsIExJRk8gYmF0Y2g6MAogIE5vcm1hbCB6b25lOiA4MzIgcGFn ZXMgdXNlZCBmb3IgbWVtbWFwCiAgTm9ybWFsIHpvbmU6IDEwNTY2NCBwYWdlcywgTElGTyBiYXRj aDozMQogIEhpZ2hNZW0gem9uZTogMjAxMjggcGFnZXMgdXNlZCBmb3IgbWVtbWFwCiAgSGlnaE1l bSB6b25lOiAyNTU2MjU2IHBhZ2VzLCBMSUZPIGJhdGNoOjMxCiAgTW92YWJsZSB6b25lOiAwIHBh Z2VzIHVzZWQgZm9yIG1lbW1hcApETUkgcHJlc2VudC4KVXNpbmcgQVBJQyBkcml2ZXIgZGVmYXVs dApEZXRlY3RlZCB1c2Ugb2YgZXh0ZW5kZWQgYXBpYyBpZHMgb24gaHlwZXJ0cmFuc3BvcnQgYnVz CkRldGVjdGVkIHVzZSBvZiBleHRlbmRlZCBhcGljIGlkcyBvbiBoeXBlcnRyYW5zcG9ydCBidXMK SW50ZWwgTXVsdGlQcm9jZXNzb3IgU3BlY2lmaWNhdGlvbiB2MS40CiAgICBWaXJ0dWFsIFdpcmUg Y29tcGF0aWJpbGl0eSBtb2RlLgpPRU0gSUQ6IFR5YW4gICAgIFByb2R1Y3QgSUQ6IFMyOTE4ICAg ICAgICBBUElDIGF0OiAweEZFRTAwMDAwClByb2Nlc3NvciAjMCAxNToxIEFQSUMgdmVyc2lvbiAx NgpQcm9jZXNzb3IgIzEgMTU6MSBBUElDIHZlcnNpb24gMTYKUHJvY2Vzc29yICMyIDE1OjEgQVBJ QyB2ZXJzaW9uIDE2ClByb2Nlc3NvciAjMyAxNToxIEFQSUMgdmVyc2lvbiAxNgpJL08gQVBJQyAj NCBWZXJzaW9uIDE3IGF0IDB4RkVDMDAwMDAuCkkvTyBBUElDICM1IFZlcnNpb24gMTcgYXQgMHg5 MDAwMDAwMC4KRW5hYmxpbmcgQVBJQyBtb2RlOiAgRmxhdC4gIFVzaW5nIDIgSS9PIEFQSUNzClBy b2Nlc3NvcnM6IDQKQWxsb2NhdGluZyBQQ0kgcmVzb3VyY2VzIHN0YXJ0aW5nIGF0IDc4MDAwMDAw IChnYXA6IDcwMDAwMDAwOjcwMDAwMDAwKQpCdWlsdCAxIHpvbmVsaXN0cyBpbiBab25lIG9yZGVy LCBtb2JpbGl0eSBncm91cGluZyBvbi4gIFRvdGFsIHBhZ2VzOiAyNjY1OTg0Cktlcm5lbCBjb21t YW5kIGxpbmU6IHZnYT0weDMxYSB4ZW5vLW51Y2xldXMueGVub21haV9naWQ9MTAwMCBub2FwaWMg dm1hbGxvYz0weDI1MDAwMDAwCm1hcHBlZCBBUElDIHRvIGZmZmZiMDAwIChmZWUwMDAwMCkKbWFw cGVkIElPQVBJQyB0byBmZmZmYTAwMCAoZmVjMDAwMDApCm1hcHBlZCBJT0FQSUMgdG8gZmZmZjkw MDAgKDkwMDAwMDAwKQpFbmFibGluZyBmYXN0IEZQVSBzYXZlIGFuZCByZXN0b3JlLi4uIGRvbmUu CkVuYWJsaW5nIHVubWFza2VkIFNJTUQgRlBVIGV4Y2VwdGlvbiBzdXBwb3J0Li4uIGRvbmUuCklu aXRpYWxpemluZyBDUFUjMApQSUQgaGFzaCB0YWJsZSBlbnRyaWVzOiAyMDQ4IChvcmRlcjogMTEs IDgxOTIgYnl0ZXMpCkRldGVjdGVkIDIyMTEuMzY4IE1IeiBwcm9jZXNzb3IuCkktcGlwZSAyLjAt MDk6IHBpcGVsaW5lIGVuYWJsZWQuCnNwdXJpb3VzIDgyNTlBIGludGVycnVwdDogSVJRNy4KQ29u c29sZTogY29sb3VyIGR1bW15IGRldmljZSA4MHgyNQpjb25zb2xlIFt0dHkwXSBlbmFibGVkCkRl bnRyeSBjYWNoZSBoYXNoIHRhYmxlIGVudHJpZXM6IDY1NTM2IChvcmRlcjogNiwgMjYyMTQ0IGJ5 dGVzKQpJbm9kZS1jYWNoZSBoYXNoIHRhYmxlIGVudHJpZXM6IDMyNzY4IChvcmRlcjogNSwgMTMx MDcyIGJ5dGVzKQpNZW1vcnk6IDgyODgxMjRrLzEwNzQ3OTA0ayBhdmFpbGFibGUgKDE5NzNrIGtl cm5lbCBjb2RlLCA5ODIwMGsgcmVzZXJ2ZWQsIDEwMjdrIGRhdGEsIDIzMmsgaW5pdCwgNzk0NTE1 MmsgaGlnaG1lbSkKdmlydHVhbCBrZXJuZWwgbWVtb3J5IGxheW91dDoKICAgIGZpeG1hcCAgOiAw eGZmOTM5MDAwIC0gMHhmZmZmZjAwMCAgICg2OTM2IGtCKQogICAgcGttYXAgICA6IDB4ZmY0MDAw MDAgLSAweGZmNjAwMDAwICAgKDIwNDgga0IpCiAgICB2bWFsbG9jIDogMHhkYjgwMDAwMCAtIDB4 ZmYzZmUwMDAgICAoIDU3MSBNQikKICAgIGxvd21lbSAgOiAweGMwMDAwMDAwIC0gMHhkYjAwMDAw MCAgICggNDMyIE1CKQogICAgICAuaW5pdCA6IDB4YzAzZjYwMDAgLSAweGMwNDMwMDAwICAgKCAy MzIga0IpCiAgICAgIC5kYXRhIDogMHhjMDJlZDdiOSAtIDB4YzAzZWU3M2MgICAoMTAyNyBrQikK ICAgICAgLnRleHQgOiAweGMwMTAwMDAwIC0gMHhjMDJlZDdiOSAgICgxOTczIGtCKQpDaGVja2lu ZyBpZiB0aGlzIHByb2Nlc3NvciBob25vdXJzIHRoZSBXUCBiaXQgZXZlbiBpbiBzdXBlcnZpc29y IG1vZGUuLi5Pay4KQ1BBOiBwYWdlIHBvb2wgaW5pdGlhbGl6ZWQgMSBvZiAxIHBhZ2VzIHByZWFs bG9jYXRlZApDYWxpYnJhdGluZyBkZWxheSB1c2luZyB0aW1lciBzcGVjaWZpYyByb3V0aW5lLi4g NDQyNC44MSBCb2dvTUlQUyAobHBqPTg4NDk2MzApClNlY3VyaXR5IEZyYW1ld29yayBpbml0aWFs aXplZApDYXBhYmlsaXR5IExTTSBpbml0aWFsaXplZApNb3VudC1jYWNoZSBoYXNoIHRhYmxlIGVu dHJpZXM6IDUxMgpDUFU6IEwxIEkgQ2FjaGU6IDY0SyAoNjQgYnl0ZXMvbGluZSksIEQgY2FjaGUg NjRLICg2NCBieXRlcy9saW5lKQpDUFU6IEwyIENhY2hlOiAxMDI0SyAoNjQgYnl0ZXMvbGluZSkK Q1BVIDAoMikgLT4gQ29yZSAwCkludGVsIG1hY2hpbmUgY2hlY2sgYXJjaGl0ZWN0dXJlIHN1cHBv cnRlZC4KSW50ZWwgbWFjaGluZSBjaGVjayByZXBvcnRpbmcgZW5hYmxlZCBvbiBDUFUjMC4KQ29t cGF0IHZEU08gbWFwcGVkIHRvIGZmZmZlMDAwLgpDaGVja2luZyAnaGx0JyBpbnN0cnVjdGlvbi4u LiBPSy4KQ1BVMDogQU1EIER1YWwtQ29yZSBBTUQgT3B0ZXJvbih0bSkgUHJvY2Vzc29yIDIyMTQg c3RlcHBpbmcgMDIKQm9vdGluZyBwcm9jZXNzb3IgMS8xIGlwIDIwMDAKSW5pdGlhbGl6aW5nIENQ VSMxCkNhbGlicmF0aW5nIGRlbGF5IHVzaW5nIHRpbWVyIHNwZWNpZmljIHJvdXRpbmUuLiA0NDIz LjAzIEJvZ29NSVBTIChscGo9ODg0NjA3OSkKQ1BVOiBMMSBJIENhY2hlOiA2NEsgKDY0IGJ5dGVz L2xpbmUpLCBEIGNhY2hlIDY0SyAoNjQgYnl0ZXMvbGluZSkKQ1BVOiBMMiBDYWNoZTogMTAyNEsg KDY0IGJ5dGVzL2xpbmUpCkNQVSAxKDIpIC0+IENvcmUgMQpJbnRlbCBtYWNoaW5lIGNoZWNrIGFy Y2hpdGVjdHVyZSBzdXBwb3J0ZWQuCkludGVsIG1hY2hpbmUgY2hlY2sgcmVwb3J0aW5nIGVuYWJs ZWQgb24gQ1BVIzEuCkNQVTE6IEFNRCBEdWFsLUNvcmUgQU1EIE9wdGVyb24odG0pIFByb2Nlc3Nv ciAyMjE0IHN0ZXBwaW5nIDAyCkJvb3RpbmcgcHJvY2Vzc29yIDIvMiBpcCAyMDAwCkluaXRpYWxp emluZyBDUFUjMgpDYWxpYnJhdGluZyBkZWxheSB1c2luZyB0aW1lciBzcGVjaWZpYyByb3V0aW5l Li4gNDQyMy4wMyBCb2dvTUlQUyAobHBqPTg4NDYwNzkpCkNQVTogTDEgSSBDYWNoZTogNjRLICg2 NCBieXRlcy9saW5lKSwgRCBjYWNoZSA2NEsgKDY0IGJ5dGVzL2xpbmUpCkNQVTogTDIgQ2FjaGU6 IDEwMjRLICg2NCBieXRlcy9saW5lKQpDUFUgMigyKSAtPiBDb3JlIDAKSW50ZWwgbWFjaGluZSBj aGVjayBhcmNoaXRlY3R1cmUgc3VwcG9ydGVkLgpJbnRlbCBtYWNoaW5lIGNoZWNrIHJlcG9ydGlu ZyBlbmFibGVkIG9uIENQVSMyLgpDUFUyOiBBTUQgRHVhbC1Db3JlIEFNRCBPcHRlcm9uKHRtKSBQ cm9jZXNzb3IgMjIxNCBzdGVwcGluZyAwMgpCb290aW5nIHByb2Nlc3NvciAzLzMgaXAgMjAwMApJ bml0aWFsaXppbmcgQ1BVIzMKQ2FsaWJyYXRpbmcgZGVsYXkgdXNpbmcgdGltZXIgc3BlY2lmaWMg cm91dGluZS4uIDQ0MjMuMDQgQm9nb01JUFMgKGxwaj04ODQ2MDg2KQpDUFU6IEwxIEkgQ2FjaGU6 IDY0SyAoNjQgYnl0ZXMvbGluZSksIEQgY2FjaGUgNjRLICg2NCBieXRlcy9saW5lKQpDUFU6IEwy IENhY2hlOiAxMDI0SyAoNjQgYnl0ZXMvbGluZSkKQ1BVIDMoMikgLT4gQ29yZSAxCkludGVsIG1h Y2hpbmUgY2hlY2sgYXJjaGl0ZWN0dXJlIHN1cHBvcnRlZC4KSW50ZWwgbWFjaGluZSBjaGVjayBy ZXBvcnRpbmcgZW5hYmxlZCBvbiBDUFUjMy4KQ1BVMzogQU1EIER1YWwtQ29yZSBBTUQgT3B0ZXJv bih0bSkgUHJvY2Vzc29yIDIyMTQgc3RlcHBpbmcgMDIKVG90YWwgb2YgNCBwcm9jZXNzb3JzIGFj dGl2YXRlZCAoMTc2OTMuOTMgQm9nb01JUFMpLgpCcm91Z2h0IHVwIDQgQ1BVcwpDUFUwIGF0dGFj aGluZyBzY2hlZC1kb21haW46CiBkb21haW4gMDogc3BhbiAwMDAwMDAwMCwwMDAwMDAwMCwwMDAw MDAwMCwwMDAwMDAwZgogIGdyb3VwczogMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAw MDEgMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDIgMDAwMDAwMDAsMDAwMDAwMDAs MDAwMDAwMDAsMDAwMDAwMDQgMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDgKQ1BV MSBhdHRhY2hpbmcgc2NoZWQtZG9tYWluOgogZG9tYWluIDA6IHNwYW4gMDAwMDAwMDAsMDAwMDAw MDAsMDAwMDAwMDAsMDAwMDAwMGYKICBncm91cHM6IDAwMDAwMDAwLDAwMDAwMDAwLDAwMDAwMDAw LDAwMDAwMDAyIDAwMDAwMDAwLDAwMDAwMDAwLDAwMDAwMDAwLDAwMDAwMDA0IDAwMDAwMDAwLDAw MDAwMDAwLDAwMDAwMDAwLDAwMDAwMDA4IDAwMDAwMDAwLDAwMDAwMDAwLDAwMDAwMDAwLDAwMDAw MDAxCkNQVTIgYXR0YWNoaW5nIHNjaGVkLWRvbWFpbjoKIGRvbWFpbiAwOiBzcGFuIDAwMDAwMDAw LDAwMDAwMDAwLDAwMDAwMDAwLDAwMDAwMDBmCiAgZ3JvdXBzOiAwMDAwMDAwMCwwMDAwMDAwMCww MDAwMDAwMCwwMDAwMDAwNCAwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAwOCAwMDAw MDAwMCwwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAwMSAwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAw MCwwMDAwMDAwMgpDUFUzIGF0dGFjaGluZyBzY2hlZC1kb21haW46CiBkb21haW4gMDogc3BhbiAw MDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAwZgogIGdyb3VwczogMDAwMDAwMDAsMDAw MDAwMDAsMDAwMDAwMDAsMDAwMDAwMDggMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAw MDEgMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDIgMDAwMDAwMDAsMDAwMDAwMDAs MDAwMDAwMDAsMDAwMDAwMDQKbmV0X25hbWVzcGFjZTogNTQ4IGJ5dGVzCk5FVDogUmVnaXN0ZXJl ZCBwcm90b2NvbCBmYW1pbHkgMTYKUENJOiBQQ0kgQklPUyByZXZpc2lvbiAyLjEwIGVudHJ5IGF0 IDB4ZmQ1MDQsIGxhc3QgYnVzPTEzNQpQQ0k6IFVzaW5nIGNvbmZpZ3VyYXRpb24gdHlwZSAxClNl dHRpbmcgdXAgc3RhbmRhcmQgUENJIHJlc291cmNlcwpMaW51eCBQbHVnIGFuZCBQbGF5IFN1cHBv cnQgdjAuOTcgKGMpIEFkYW0gQmVsYXkKUG5QQklPUzogU2Nhbm5pbmcgc3lzdGVtIGZvciBQblAg QklPUyBzdXBwb3J0Li4uClBuUEJJT1M6IEZvdW5kIFBuUCBCSU9TIGluc3RhbGxhdGlvbiBzdHJ1 Y3R1cmUgYXQgMHhjMDBmNmZjMApQblBCSU9TOiBQblAgQklPUyB2ZXJzaW9uIDEuMCwgZW50cnkg MHhlNTIzOjB4OTdlYywgZHNlZyAweDQwMApQTlBCSU9TIGZhdWx0Li4gYXR0ZW1wdGluZyByZWNv dmVyeS4KUG5QQklPUzogV2FybmluZyEgWW91ciBQblAgQklPUyBjYXVzZWQgYSBmYXRhbCBlcnJv ci4gQXR0ZW1wdGluZyB0byBjb250aW51ZQpQblBCSU9TOiBZb3UgbWF5IG5lZWQgdG8gcmVib290 IHdpdGggdGhlICJwbnBiaW9zPW9mZiIgb3B0aW9uIHRvIG9wZXJhdGUgc3RhYmx5ClBuUEJJT1M6 IENoZWNrIHdpdGggeW91ciB2ZW5kb3IgZm9yIGFuIHVwZGF0ZWQgQklPUwpQblBCSU9TOiBkZXZf bm9kZV9pbmZvOiB1bmV4cGVjdGVkIHN0YXR1cyAweDI4ClBuUEJJT1M6IFVuYWJsZSB0byBnZXQg bm9kZSBpbmZvLiAgQWJvcnRpbmcuClBDSTogUHJvYmluZyBQQ0kgaGFyZHdhcmUKUENJOiBQcm9i aW5nIFBDSSBoYXJkd2FyZSAoYnVzIDAwKQpQQ0k6IFRyYW5zcGFyZW50IGJyaWRnZSAtIDAwMDA6 MDA6MDYuMApQQ0k6IERpc2NvdmVyZWQgcGVlciBidXMgODAKUENJOiBCcmlkZ2U6IDAwMDA6MDA6 MDYuMAogIElPIHdpbmRvdzogZGlzYWJsZWQuCiAgTUVNIHdpbmRvdzogMHg3MDEwMDAwMC0weDcw MWZmZmZmCiAgUFJFRkVUQ0ggd2luZG93OiBkaXNhYmxlZC4KUENJOiBCcmlkZ2U6IDAwMDA6MDA6 MGEuMAogIElPIHdpbmRvdzogZGlzYWJsZWQuCiAgTUVNIHdpbmRvdzogZGlzYWJsZWQuCiAgUFJF RkVUQ0ggd2luZG93OiBkaXNhYmxlZC4KUENJOiBCcmlkZ2U6IDAwMDA6MDM6MDAuMAogIElPIHdp bmRvdzogZGlzYWJsZWQuCiAgTUVNIHdpbmRvdzogZGlzYWJsZWQuCiAgUFJFRkVUQ0ggd2luZG93 OiBkaXNhYmxlZC4KUENJOiBCcmlkZ2U6IDAwMDA6MDM6MDAuMQogIElPIHdpbmRvdzogZGlzYWJs ZWQuCiAgTUVNIHdpbmRvdzogZGlzYWJsZWQuCiAgUFJFRkVUQ0ggd2luZG93OiBkaXNhYmxlZC4K UENJOiBCcmlkZ2U6IDAwMDA6MDA6MGQuMAogIElPIHdpbmRvdzogZGlzYWJsZWQuCiAgTUVNIHdp bmRvdzogMHg3MDIwMDAwMC0weDcwMmZmZmZmCiAgUFJFRkVUQ0ggd2luZG93OiBkaXNhYmxlZC4K UENJOiBCcmlkZ2U6IDAwMDA6MDA6MGYuMAogIElPIHdpbmRvdzogNjAwMC02ZmZmCiAgTUVNIHdp bmRvdzogMHg3MDMwMDAwMC0weDcyZmZmZmZmCiAgUFJFRkVUQ0ggd2luZG93OiAweDAwMDAwMDAw ODAwMDAwMDAtMHgwMDAwMDAwMDhmZmZmZmZmClBDSTogU2V0dGluZyBsYXRlbmN5IHRpbWVyIG9m IGRldmljZSAwMDAwOjAwOjA2LjAgdG8gNjQKUENJOiBTZXR0aW5nIGxhdGVuY3kgdGltZXIgb2Yg ZGV2aWNlIDAwMDA6MDA6MGEuMCB0byA2NApQQ0k6IFNldHRpbmcgbGF0ZW5jeSB0aW1lciBvZiBk ZXZpY2UgMDAwMDowMDowZC4wIHRvIDY0ClBDSTogU2V0dGluZyBsYXRlbmN5IHRpbWVyIG9mIGRl dmljZSAwMDAwOjAzOjAwLjAgdG8gNjQKUENJOiBTZXR0aW5nIGxhdGVuY3kgdGltZXIgb2YgZGV2 aWNlIDAwMDA6MDM6MDAuMSB0byA2NApQQ0k6IFNldHRpbmcgbGF0ZW5jeSB0aW1lciBvZiBkZXZp Y2UgMDAwMDowMDowZi4wIHRvIDY0ClBDSTogQnJpZGdlOiAwMDAwOjgyOjAxLjAKICBJTyB3aW5k b3c6IGRpc2FibGVkLgogIE1FTSB3aW5kb3c6IGRpc2FibGVkLgogIFBSRUZFVENIIHdpbmRvdzog ZGlzYWJsZWQuClBDSTogQnJpZGdlOiAwMDAwOjgyOjA0LjAKICBJTyB3aW5kb3c6IGRpc2FibGVk LgogIE1FTSB3aW5kb3c6IGRpc2FibGVkLgogIFBSRUZFVENIIHdpbmRvdzogZGlzYWJsZWQuClBD STogQnJpZGdlOiAwMDAwOjgyOjA1LjAKICBJTyB3aW5kb3c6IDgwMDAtOGZmZgogIE1FTSB3aW5k b3c6IDB4OTAyMDAwMDAtMHhiZmZmZmZmZgogIFBSRUZFVENIIHdpbmRvdzogZGlzYWJsZWQuClBD STogQnJpZGdlOiAwMDAwOjgxOjAwLjAKICBJTyB3aW5kb3c6IDgwMDAtOGZmZgogIE1FTSB3aW5k b3c6IDB4OTAyMDAwMDAtMHhiZmZmZmZmZgogIFBSRUZFVENIIHdpbmRvdzogZGlzYWJsZWQuClBD STogQnJpZGdlOiAwMDAwOjgwOjBhLjAKICBJTyB3aW5kb3c6IDgwMDAtOGZmZgogIE1FTSB3aW5k b3c6IDB4OTAxMDAwMDAtMHhiZmZmZmZmZgogIFBSRUZFVENIIHdpbmRvdzogZGlzYWJsZWQuClBD STogQnJpZGdlOiAwMDAwOjgwOjBkLjAKICBJTyB3aW5kb3c6IDkwMDAtOWZmZgogIE1FTSB3aW5k b3c6IDB4YzAwMDAwMDAtMHhjMDFmZmZmZgogIFBSRUZFVENIIHdpbmRvdzogZGlzYWJsZWQuClBD STogQnJpZGdlOiAwMDAwOjgwOjBmLjAKICBJTyB3aW5kb3c6IGRpc2FibGVkLgogIE1FTSB3aW5k b3c6IGRpc2FibGVkLgogIFBSRUZFVENIIHdpbmRvdzogZGlzYWJsZWQuClBDSTogU2V0dGluZyBs YXRlbmN5IHRpbWVyIG9mIGRldmljZSAwMDAwOjgwOjBhLjAgdG8gNjQKUENJOiBTZXR0aW5nIGxh dGVuY3kgdGltZXIgb2YgZGV2aWNlIDAwMDA6ODE6MDAuMCB0byA2NApQQ0k6IFNldHRpbmcgbGF0 ZW5jeSB0aW1lciBvZiBkZXZpY2UgMDAwMDo4MjowMS4wIHRvIDY0ClBDSTogU2V0dGluZyBsYXRl bmN5IHRpbWVyIG9mIGRldmljZSAwMDAwOjgyOjA0LjAgdG8gNjQKUENJOiBTZXR0aW5nIGxhdGVu Y3kgdGltZXIgb2YgZGV2aWNlIDAwMDA6ODI6MDUuMCB0byA2NApQQ0k6IFNldHRpbmcgbGF0ZW5j eSB0aW1lciBvZiBkZXZpY2UgMDAwMDo4MDowZC4wIHRvIDY0ClBDSTogU2V0dGluZyBsYXRlbmN5 IHRpbWVyIG9mIGRldmljZSAwMDAwOjgwOjBmLjAgdG8gNjQKTkVUOiBSZWdpc3RlcmVkIHByb3Rv Y29sIGZhbWlseSAyCklQIHJvdXRlIGNhY2hlIGhhc2ggdGFibGUgZW50cmllczogMTYzODQgKG9y ZGVyOiA0LCA2NTUzNiBieXRlcykKVENQIGVzdGFibGlzaGVkIGhhc2ggdGFibGUgZW50cmllczog NjU1MzYgKG9yZGVyOiA3LCA1MjQyODggYnl0ZXMpClRDUCBiaW5kIGhhc2ggdGFibGUgZW50cmll czogNjU1MzYgKG9yZGVyOiA3LCA1MjQyODggYnl0ZXMpClRDUDogSGFzaCB0YWJsZXMgY29uZmln dXJlZCAoZXN0YWJsaXNoZWQgNjU1MzYgYmluZCA2NTUzNikKVENQIHJlbm8gcmVnaXN0ZXJlZApV bnBhY2tpbmcgaW5pdHJhbWZzLi4uIGRvbmUKRnJlZWluZyBpbml0cmQgbWVtb3J5OiA5MTU2ayBm cmVlZApNYWNoaW5lIGNoZWNrIGV4Y2VwdGlvbiBwb2xsaW5nIHRpbWVyIHN0YXJ0ZWQuCmF1ZGl0 OiBpbml0aWFsaXppbmcgbmV0bGluayBzb2NrZXQgKGRpc2FibGVkKQp0eXBlPTIwMDAgYXVkaXQo MTIyNzUyNjUyOC4wMDA6MSk6IGluaXRpYWxpemVkCkktcGlwZTogRG9tYWluIFhlbm9tYWkgcmVn aXN0ZXJlZC4KWGVub21haTogaGFsL2kzODYgc3RhcnRlZC4KWGVub21haTogcmVhbC10aW1lIG51 Y2xldXMgdjIuNC41IChPdmVyZHJpdmVyKSBsb2FkZWQuClhlbm9tYWk6IHN0YXJ0aW5nIG5hdGl2 ZSBBUEkgc2VydmljZXMuClhlbm9tYWk6IHN0YXJ0aW5nIFBPU0lYIHNlcnZpY2VzLgpYZW5vbWFp OiBzdGFydGluZyBSVERNIHNlcnZpY2VzLgpYZW5vbWFpOiBzdGFydGluZyBWeFdvcmtzIHNlcnZp Y2VzLgpoaWdobWVtIGJvdW5jZSBwb29sIHNpemU6IDY0IHBhZ2VzClRvdGFsIEh1Z2VUTEIgbWVt b3J5IGFsbG9jYXRlZCwgMApWRlM6IERpc2sgcXVvdGFzIGRxdW90XzYuNS4xCkRxdW90LWNhY2hl IGhhc2ggdGFibGUgZW50cmllczogMTAyNCAob3JkZXIgMCwgNDA5NiBieXRlcykKQmxvY2sgbGF5 ZXIgU0NTSSBnZW5lcmljIChic2cpIGRyaXZlciB2ZXJzaW9uIDAuNCBsb2FkZWQgKG1ham9yIDI1 NCkKaW8gc2NoZWR1bGVyIG5vb3AgcmVnaXN0ZXJlZAppbyBzY2hlZHVsZXIgYW50aWNpcGF0b3J5 IHJlZ2lzdGVyZWQKaW8gc2NoZWR1bGVyIGRlYWRsaW5lIHJlZ2lzdGVyZWQKaW8gc2NoZWR1bGVy IGNmcSByZWdpc3RlcmVkIChkZWZhdWx0KQpwY2kgMDAwMDowMDowMC4wOiBFbmFibGluZyBIVCBN U0kgTWFwcGluZwpwY2kgMDAwMDo4MDowMC4wOiBFbmFibGluZyBIVCBNU0kgTWFwcGluZwpDbG9j a3NvdXJjZSB0c2MgdW5zdGFibGUgKGRlbHRhID0gMTk5NjMzNzY4IG5zKQpwY2kgMDAwMDowMDow Mi4xOiBFSENJOiBCSU9TIGhhbmRvZmYgZmFpbGVkIChCSU9TIGJ1Zz8pIDAxMDEwMDAxCnBjaSAw MDAwOjAwOjA1LjA6IEVuYWJsaW5nIEhUIE1TSSBNYXBwaW5nCnBjaSAwMDAwOjAwOjA1LjE6IEVu YWJsaW5nIEhUIE1TSSBNYXBwaW5nCnBjaSAwMDAwOjAwOjA1LjI6IEVuYWJsaW5nIEhUIE1TSSBN YXBwaW5nCnBjaSAwMDAwOjAwOjA2LjA6IEVuYWJsaW5nIEhUIE1TSSBNYXBwaW5nCnBjaSAwMDAw OjAwOjA2LjE6IEVuYWJsaW5nIEhUIE1TSSBNYXBwaW5nCnBjaSAwMDAwOjAwOjA4LjA6IEVuYWJs aW5nIEhUIE1TSSBNYXBwaW5nCnBjaSAwMDAwOjAwOjA5LjA6IEVuYWJsaW5nIEhUIE1TSSBNYXBw aW5nCnBjaSAwMDAwOjAwOjBhLjA6IEVuYWJsaW5nIEhUIE1TSSBNYXBwaW5nCnBjaSAwMDAwOjgw OjBhLjA6IEVuYWJsaW5nIEhUIE1TSSBNYXBwaW5nCnBjaSAwMDAwOjAwOjBkLjA6IEVuYWJsaW5n IEhUIE1TSSBNYXBwaW5nCnBjaSAwMDAwOjgwOjBkLjA6IEVuYWJsaW5nIEhUIE1TSSBNYXBwaW5n CnBjaSAwMDAwOjAwOjBmLjA6IEVuYWJsaW5nIEhUIE1TSSBNYXBwaW5nCnBjaSAwMDAwOjgwOjBm LjA6IEVuYWJsaW5nIEhUIE1TSSBNYXBwaW5nCnBjaSAwMDAwOjA2OjAwLjA6IEJvb3QgdmlkZW8g ZGV2aWNlClBDSTogU2V0dGluZyBsYXRlbmN5IHRpbWVyIG9mIGRldmljZSAwMDAwOjAwOjBhLjAg dG8gNjQKYXNzaWduX2ludGVycnVwdF9tb2RlIEZvdW5kIE1TSSBjYXBhYmlsaXR5CkFsbG9jYXRl IFBvcnQgU2VydmljZVswMDAwOjAwOjBhLjA6cGNpZTAwXQpQQ0k6IFNldHRpbmcgbGF0ZW5jeSB0 aW1lciBvZiBkZXZpY2UgMDAwMDowMDowZC4wIHRvIDY0CmFzc2lnbl9pbnRlcnJ1cHRfbW9kZSBG b3VuZCBNU0kgY2FwYWJpbGl0eQpBbGxvY2F0ZSBQb3J0IFNlcnZpY2VbMDAwMDowMDowZC4wOnBj aWUwMF0KUENJOiBTZXR0aW5nIGxhdGVuY3kgdGltZXIgb2YgZGV2aWNlIDAwMDA6MDA6MGYuMCB0 byA2NAphc3NpZ25faW50ZXJydXB0X21vZGUgRm91bmQgTVNJIGNhcGFiaWxpdHkKQWxsb2NhdGUg UG9ydCBTZXJ2aWNlWzAwMDA6MDA6MGYuMDpwY2llMDBdClBDSTogU2V0dGluZyBsYXRlbmN5IHRp bWVyIG9mIGRldmljZSAwMDAwOjgwOjBhLjAgdG8gNjQKYXNzaWduX2ludGVycnVwdF9tb2RlIEZv dW5kIE1TSSBjYXBhYmlsaXR5CkFsbG9jYXRlIFBvcnQgU2VydmljZVswMDAwOjgwOjBhLjA6cGNp ZTAwXQpQQ0k6IFNldHRpbmcgbGF0ZW5jeSB0aW1lciBvZiBkZXZpY2UgMDAwMDo4MDowZC4wIHRv IDY0CmFzc2lnbl9pbnRlcnJ1cHRfbW9kZSBGb3VuZCBNU0kgY2FwYWJpbGl0eQpBbGxvY2F0ZSBQ b3J0IFNlcnZpY2VbMDAwMDo4MDowZC4wOnBjaWUwMF0KUENJOiBTZXR0aW5nIGxhdGVuY3kgdGlt ZXIgb2YgZGV2aWNlIDAwMDA6ODA6MGYuMCB0byA2NAphc3NpZ25faW50ZXJydXB0X21vZGUgRm91 bmQgTVNJIGNhcGFiaWxpdHkKQWxsb2NhdGUgUG9ydCBTZXJ2aWNlWzAwMDA6ODA6MGYuMDpwY2ll MDBdClBDSTogU2V0dGluZyBsYXRlbmN5IHRpbWVyIG9mIGRldmljZSAwMDAwOjgxOjAwLjAgdG8g NjQKYXNzaWduX2ludGVycnVwdF9tb2RlIEZvdW5kIE1TSSBjYXBhYmlsaXR5ClBDSTogU2V0dGlu ZyBsYXRlbmN5IHRpbWVyIG9mIGRldmljZSAwMDAwOjgyOjAxLjAgdG8gNjQKYXNzaWduX2ludGVy cnVwdF9tb2RlIEZvdW5kIE1TSSBjYXBhYmlsaXR5CkFsbG9jYXRlIFBvcnQgU2VydmljZVswMDAw OjgyOjAxLjA6cGNpZTIyXQpQQ0k6IFNldHRpbmcgbGF0ZW5jeSB0aW1lciBvZiBkZXZpY2UgMDAw MDo4MjowNC4wIHRvIDY0CmFzc2lnbl9pbnRlcnJ1cHRfbW9kZSBGb3VuZCBNU0kgY2FwYWJpbGl0 eQpQQ0k6IFNldHRpbmcgbGF0ZW5jeSB0aW1lciBvZiBkZXZpY2UgMDAwMDo4MjowNS4wIHRvIDY0 CmFzc2lnbl9pbnRlcnJ1cHRfbW9kZSBGb3VuZCBNU0kgY2FwYWJpbGl0eQpBbGxvY2F0ZSBQb3J0 IFNlcnZpY2VbMDAwMDo4MjowNS4wOnBjaWUyMl0KdmVzYWZiOiBmcmFtZWJ1ZmZlciBhdCAweDgw MDAwMDAwLCBtYXBwZWQgdG8gMHhkYjg4MDAwMCwgdXNpbmcgNTEyMGssIHRvdGFsIDI2MjE0NGsK dmVzYWZiOiBtb2RlIGlzIDEyODB4MTAyNHgxNiwgbGluZWxlbmd0aD0yNTYwLCBwYWdlcz0xCnZl c2FmYjogcHJvdGVjdGVkIG1vZGUgaW50ZXJmYWNlIGluZm8gYXQgYzAwMDpiOTgwCnZlc2FmYjog cG1pOiBzZXQgZGlzcGxheSBzdGFydCA9IGMwMGNiOWI2LCBzZXQgcGFsZXR0ZSA9IGMwMGNiYTIw CnZlc2FmYjogcG1pOiBwb3J0cyA9IDNiNCAzYjUgM2JhIDNjMCAzYzEgM2M0IDNjNSAzYzYgM2M3 IDNjOCAzYzkgM2NjIDNjZSAzY2YgM2QwIDNkMSAzZDIgM2QzIDNkNCAzZDUgM2RhIAp2ZXNhZmI6 IHNjcm9sbGluZzogcmVkcmF3CnZlc2FmYjogVHJ1ZWNvbG9yOiBzaXplPTA6NTo2OjUsIHNoaWZ0 PTA6MTE6NTowCkNvbnNvbGU6IHN3aXRjaGluZyB0byBjb2xvdXIgZnJhbWUgYnVmZmVyIGRldmlj ZSAxNjB4NjQKZmIwOiBWRVNBIFZHQSBmcmFtZSBidWZmZXIgZGV2aWNlCmlzYXBucDogU2Nhbm5p bmcgZm9yIFBuUCBjYXJkcy4uLgppc2FwbnA6IE5vIFBsdWcgJiBQbGF5IGRldmljZSBmb3VuZApT ZXJpYWw6IDgyNTAvMTY1NTAgZHJpdmVyICRSZXZpc2lvbjogMS45MCAkIDQgcG9ydHMsIElSUSBz aGFyaW5nIGVuYWJsZWQKc2VyaWFsODI1MDogdHR5UzAgYXQgSS9PIDB4M2Y4IChpcnEgPSA0KSBp cyBhIDE2NTUwQQpGbG9wcHkgZHJpdmUocyk6IGZkMCBpcyAxLjQ0TQpGREMgMCBpcyBhIHBvc3Qt MTk5MSA4MjA3NwpQTlA6IE5vIFBTLzIgY29udHJvbGxlciBmb3VuZC4gUHJvYmluZyBwb3J0cyBk aXJlY3RseS4Kc2VyaW86IGk4MDQyIEtCRCBwb3J0IGF0IDB4NjAsMHg2NCBpcnEgMQptaWNlOiBQ Uy8yIG1vdXNlIGRldmljZSBjb21tb24gZm9yIGFsbCBtaWNlCmlucHV0OiBBVCBUcmFuc2xhdGVk IFNldCAyIGtleWJvYXJkIGFzIC9kZXZpY2VzL3BsYXRmb3JtL2k4MDQyL3NlcmlvMC9pbnB1dC9p bnB1dDAKTkVUOiBSZWdpc3RlcmVkIHByb3RvY29sIGZhbWlseSAxClVzaW5nIElQSSBOby1TaG9y dGN1dCBtb2RlCnJlZ2lzdGVyZWQgdGFza3N0YXRzIHZlcnNpb24gMQpGcmVlaW5nIHVudXNlZCBr ZXJuZWwgbWVtb3J5OiAyMzJrIGZyZWVkCldyaXRlIHByb3RlY3RpbmcgdGhlIGtlcm5lbCByZWFk LW9ubHkgZGF0YTogNzk2awpTQ1NJIHN1YnN5c3RlbSBpbml0aWFsaXplZApGdXNpb24gTVBUIGJh c2UgZHJpdmVyIDMuMDQuMDYKQ29weXJpZ2h0IChjKSAxOTk5LTIwMDcgTFNJIENvcnBvcmF0aW9u CkZ1c2lvbiBNUFQgU0FTIEhvc3QgZHJpdmVyIDMuMDQuMDYKbXB0YmFzZTogaW9jMDogSW5pdGlh dGluZyBicmluZ3VwCmlvYzA6IExTSVNBUzEwNjhFIEIxOiBDYXBhYmlsaXRpZXM9e0luaXRpYXRv cn0KUENJOiBTZXR0aW5nIGxhdGVuY3kgdGltZXIgb2YgZGV2aWNlIDAwMDA6ODY6MDAuMCB0byA2 NApzY3NpMCA6IGlvYzA6IExTSVNBUzEwNjhFIEIxLCBGd1Jldj0wMTBhMDUwMGgsIFBvcnRzPTEs IE1heFE9NTExLCBJUlE9MTAKbGliYXRhIHZlcnNpb24gMy4wMCBsb2FkZWQuCnNhdGFfbnYgMDAw MDowMDowNS4wOiB2ZXJzaW9uIDMuNQpQQ0k6IFNldHRpbmcgbGF0ZW5jeSB0aW1lciBvZiBkZXZp Y2UgMDAwMDowMDowNS4wIHRvIDY0CnNjc2kxIDogc2F0YV9udgpzY3NpMiA6IHNhdGFfbnYKYXRh MTogU0FUQSBtYXggVURNQS8xMzMgY21kIDB4OWYwIGN0bCAweGJmMCBibWRtYSAweDQ4OTAgaXJx IDEwCmF0YTI6IFNBVEEgbWF4IFVETUEvMTMzIGNtZCAweDk3MCBjdGwgMHhiNzAgYm1kbWEgMHg0 ODk4IGlycSAxMAphdGExOiBTQVRBIGxpbmsgdXAgMS41IEdicHMgKFNTdGF0dXMgMTEzIFNDb250 cm9sIDMwMCkKYXRhMS4wMDogQVRBUEk6IE9wdGlhcmMgRFZEIFJXIEFELTcxNzBTLCAxLjgyLCBt YXggVURNQS8zMwphdGExLjAwOiBjb25maWd1cmVkIGZvciBVRE1BLzMzCmF0YTI6IFNBVEEgbGlu ayBkb3duIChTU3RhdHVzIDAgU0NvbnRyb2wgMzAwKQpzY3NpIDE6MDowOjA6IENELVJPTSAgICAg ICAgICAgIE9wdGlhcmMgIERWRCBSVyBBRC03MTcwUyAgMS44MiBQUTogMCBBTlNJOiA1ClBDSTog RW5hYmxpbmcgZGV2aWNlIDAwMDA6MDA6MDUuMSAoMDAwNSAtPiAwMDA3KQpQQ0k6IFNldHRpbmcg bGF0ZW5jeSB0aW1lciBvZiBkZXZpY2UgMDAwMDowMDowNS4xIHRvIDY0CnNjc2kzIDogc2F0YV9u dgpzY3NpNCA6IHNhdGFfbnYKYXRhMzogU0FUQSBtYXggVURNQS8xMzMgY21kIDB4OWUwIGN0bCAw eGJlMCBibWRtYSAweDQ4YzAgaXJxIDExCmF0YTQ6IFNBVEEgbWF4IFVETUEvMTMzIGNtZCAweDk2 MCBjdGwgMHhiNjAgYm1kbWEgMHg0OGM4IGlycSAxMQphdGEzOiBTQVRBIGxpbmsgdXAgMy4wIEdi cHMgKFNTdGF0dXMgMTIzIFNDb250cm9sIDMwMCkKYXRhMy4wMDogQVRBLTc6IFNUMzE2MDgxNUFT LCAzLkFBQSwgbWF4IFVETUEvMTMzCmF0YTMuMDA6IDMxMjU4MTgwOCBzZWN0b3JzLCBtdWx0aSAx NjogTEJBNDggTkNRIChkZXB0aCAwLzMyKQphdGEzLjAwOiBjb25maWd1cmVkIGZvciBVRE1BLzEz MwphdGE0OiBTQVRBIGxpbmsgZG93biAoU1N0YXR1cyAwIFNDb250cm9sIDMwMCkKc2NzaSAzOjA6 MDowOiBEaXJlY3QtQWNjZXNzICAgICBBVEEgICAgICBTVDMxNjA4MTVBUyAgICAgIDMuQUEgUFE6 IDAgQU5TSTogNQpQQ0k6IFNldHRpbmcgbGF0ZW5jeSB0aW1lciBvZiBkZXZpY2UgMDAwMDowMDow NS4yIHRvIDY0CnNjc2k1IDogc2F0YV9udgpzY3NpNiA6IHNhdGFfbnYKYXRhNTogU0FUQSBtYXgg VURNQS8xMzMgY21kIDB4NGMwMCBjdGwgMHg0OGY0IGJtZG1hIDB4NDhlMCBpcnEgMTAKYXRhNjog U0FUQSBtYXggVURNQS8xMzMgY21kIDB4NDhmOCBjdGwgMHg0OGYwIGJtZG1hIDB4NDhlOCBpcnEg MTAKYXRhNTogU0FUQSBsaW5rIGRvd24gKFNTdGF0dXMgMCBTQ29udHJvbCAzMDApCmF0YTY6IFNB VEEgbGluayBkb3duIChTU3RhdHVzIDAgU0NvbnRyb2wgMzAwKQpwYXRhX2FtZCAwMDAwOjAwOjA0 LjA6IHZlcnNpb24gMC4zLjEwClBDSTogU2V0dGluZyBsYXRlbmN5IHRpbWVyIG9mIGRldmljZSAw MDAwOjAwOjA0LjAgdG8gNjQKc2NzaTcgOiBwYXRhX2FtZApzY3NpOCA6IHBhdGFfYW1kCmF0YTc6 IFBBVEEgbWF4IFVETUEvMTMzIGNtZCAweDFmMCBjdGwgMHgzZjYgYm1kbWEgMHg0ODgwIGlycSAx NAphdGE4OiBQQVRBIG1heCBVRE1BLzEzMyBjbWQgMHgxNzAgY3RsIDB4Mzc2IGJtZG1hIDB4NDg4 OCBpcnEgMTUKYXRhNzogcG9ydCBkaXNhYmxlZC4gaWdub3JpbmcuCmF0YTg6IHBvcnQgZGlzYWJs ZWQuIGlnbm9yaW5nLgpCSU9TIEVERCBmYWNpbGl0eSB2MC4xNiAyMDA0LUp1bi0yNSwgNiBkZXZp Y2VzIGZvdW5kCnVzYmNvcmU6IHJlZ2lzdGVyZWQgbmV3IGludGVyZmFjZSBkcml2ZXIgdXNiZnMK dXNiY29yZTogcmVnaXN0ZXJlZCBuZXcgaW50ZXJmYWNlIGRyaXZlciBodWIKRHJpdmVyICdzZCcg bmVlZHMgdXBkYXRpbmcgLSBwbGVhc2UgdXNlIGJ1c190eXBlIG1ldGhvZHMKc2QgMzowOjA6MDog W3NkYV0gMzEyNTgxODA4IDUxMi1ieXRlIGhhcmR3YXJlIHNlY3RvcnMgKDE2MDA0MiBNQikKc2Qg MzowOjA6MDogW3NkYV0gV3JpdGUgUHJvdGVjdCBpcyBvZmYKdXNiY29yZTogcmVnaXN0ZXJlZCBu ZXcgZGV2aWNlIGRyaXZlciB1c2IKc2QgMzowOjA6MDogW3NkYV0gTW9kZSBTZW5zZTogMDAgM2Eg MDAgMDAKc2QgMzowOjA6MDogW3NkYV0gV3JpdGUgY2FjaGU6IGVuYWJsZWQsIHJlYWQgY2FjaGU6 IGVuYWJsZWQsIGRvZXNuJ3Qgc3VwcG9ydCBEUE8gb3IgRlVBCnNkIDM6MDowOjA6IFtzZGFdIDMx MjU4MTgwOCA1MTItYnl0ZSBoYXJkd2FyZSBzZWN0b3JzICgxNjAwNDIgTUIpCm9oY2lfaGNkOiAy MDA2IEF1Z3VzdCAwNCBVU0IgMS4xICdPcGVuJyBIb3N0IENvbnRyb2xsZXIgKE9IQ0kpIERyaXZl cgpQQ0k6IFNldHRpbmcgbGF0ZW5jeSB0aW1lciBvZiBkZXZpY2UgMDAwMDowMDowMi4wIHRvIDY0 Cm9oY2lfaGNkIDAwMDA6MDA6MDIuMDogT0hDSSBIb3N0IENvbnRyb2xsZXIKb2hjaV9oY2QgMDAw MDowMDowMi4wOiBuZXcgVVNCIGJ1cyByZWdpc3RlcmVkLCBhc3NpZ25lZCBidXMgbnVtYmVyIDEK b2hjaV9oY2QgMDAwMDowMDowMi4wOiBpcnEgNywgaW8gbWVtIDB4NzAwMDQwMDAKc2QgMzowOjA6 MDogW3NkYV0gV3JpdGUgUHJvdGVjdCBpcyBvZmYKc2QgMzowOjA6MDogW3NkYV0gTW9kZSBTZW5z ZTogMDAgM2EgMDAgMDAKc2QgMzowOjA6MDogW3NkYV0gV3JpdGUgY2FjaGU6IGVuYWJsZWQsIHJl YWQgY2FjaGU6IGVuYWJsZWQsIGRvZXNuJ3Qgc3VwcG9ydCBEUE8gb3IgRlVBCnVzYiB1c2IxOiBj b25maWd1cmF0aW9uICMxIGNob3NlbiBmcm9tIDEgY2hvaWNlCmh1YiAxLTA6MS4wOiBVU0IgaHVi IGZvdW5kCmh1YiAxLTA6MS4wOiAxMCBwb3J0cyBkZXRlY3RlZAogc2RhOiBzZGExIHNkYTIgc2Rh MyBzZGE0CnNkIDM6MDowOjA6IFtzZGFdIEF0dGFjaGVkIFNDU0kgZGlzawp1c2IgdXNiMTogTmV3 IFVTQiBkZXZpY2UgZm91bmQsIGlkVmVuZG9yPTFkNmIsIGlkUHJvZHVjdD0wMDAxCnVzYiB1c2Ix OiBOZXcgVVNCIGRldmljZSBzdHJpbmdzOiBNZnI9MywgUHJvZHVjdD0yLCBTZXJpYWxOdW1iZXI9 MQp1c2IgdXNiMTogUHJvZHVjdDogT0hDSSBIb3N0IENvbnRyb2xsZXIKdXNiIHVzYjE6IE1hbnVm YWN0dXJlcjogTGludXggMi42LjI1LXBhZSBvaGNpX2hjZAp1c2IgdXNiMTogU2VyaWFsTnVtYmVy OiAwMDAwOjAwOjAyLjAKUENJOiBTZXR0aW5nIGxhdGVuY3kgdGltZXIgb2YgZGV2aWNlIDAwMDA6 MDA6MDIuMSB0byA2NAplaGNpX2hjZCAwMDAwOjAwOjAyLjE6IEVIQ0kgSG9zdCBDb250cm9sbGVy CmVoY2lfaGNkIDAwMDA6MDA6MDIuMTogbmV3IFVTQiBidXMgcmVnaXN0ZXJlZCwgYXNzaWduZWQg YnVzIG51bWJlciAyCmVoY2lfaGNkIDAwMDA6MDA6MDIuMTogZGVidWcgcG9ydCAxClBDSTogY2Fj aGUgbGluZSBzaXplIG9mIDY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgZGV2aWNlIDAwMDA6MDA6MDIu MQplaGNpX2hjZCAwMDAwOjAwOjAyLjE6IGlycSA1LCBpbyBtZW0gMHg3MDAwNTAwMAplaGNpX2hj ZCAwMDAwOjAwOjAyLjE6IFVTQiAyLjAgc3RhcnRlZCwgRUhDSSAxLjAwLCBkcml2ZXIgMTAgRGVj IDIwMDQKdXNiIHVzYjI6IGNvbmZpZ3VyYXRpb24gIzEgY2hvc2VuIGZyb20gMSBjaG9pY2UKaHVi IDItMDoxLjA6IFVTQiBodWIgZm91bmQKaHViIDItMDoxLjA6IDEwIHBvcnRzIGRldGVjdGVkCnVz YiB1c2IyOiBOZXcgVVNCIGRldmljZSBmb3VuZCwgaWRWZW5kb3I9MWQ2YiwgaWRQcm9kdWN0PTAw MDIKdXNiIHVzYjI6IE5ldyBVU0IgZGV2aWNlIHN0cmluZ3M6IE1mcj0zLCBQcm9kdWN0PTIsIFNl cmlhbE51bWJlcj0xCnVzYiB1c2IyOiBQcm9kdWN0OiBFSENJIEhvc3QgQ29udHJvbGxlcgp1c2Ig dXNiMjogTWFudWZhY3R1cmVyOiBMaW51eCAyLjYuMjUtcGFlIGVoY2lfaGNkCnVzYiB1c2IyOiBT ZXJpYWxOdW1iZXI6IDAwMDA6MDA6MDIuMQp1c2IgMS05OiBuZXcgbG93IHNwZWVkIFVTQiBkZXZp Y2UgdXNpbmcgb2hjaV9oY2QgYW5kIGFkZHJlc3MgMgp1c2IgMS05OiBjb25maWd1cmF0aW9uICMx IGNob3NlbiBmcm9tIDEgY2hvaWNlCnVzYiAxLTk6IE5ldyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZl bmRvcj0wNDZkLCBpZFByb2R1Y3Q9YzAxOAp1c2IgMS05OiBOZXcgVVNCIGRldmljZSBzdHJpbmdz OiBNZnI9MSwgUHJvZHVjdD0yLCBTZXJpYWxOdW1iZXI9MAp1c2IgMS05OiBQcm9kdWN0OiBVU0Ig T3B0aWNhbCBNb3VzZQp1c2IgMS05OiBNYW51ZmFjdHVyZXI6IExvZ2l0ZWNoCnVzYmNvcmU6IHJl Z2lzdGVyZWQgbmV3IGludGVyZmFjZSBkcml2ZXIgaGlkZGV2CmlucHV0OiBMb2dpdGVjaCBVU0Ig T3B0aWNhbCBNb3VzZSBhcyAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MDIuMC91c2IxLzEt OS8xLTk6MS4wL2lucHV0L2lucHV0MQppbnB1dCxoaWRyYXcwOiBVU0IgSElEIHYxLjExIE1vdXNl IFtMb2dpdGVjaCBVU0IgT3B0aWNhbCBNb3VzZV0gb24gdXNiLTAwMDA6MDA6MDIuMC05CnVzYmNv cmU6IHJlZ2lzdGVyZWQgbmV3IGludGVyZmFjZSBkcml2ZXIgdXNiaGlkCmRyaXZlcnMvaGlkL3Vz YmhpZC9oaWQtY29yZS5jOiB2Mi42OlVTQiBISUQgY29yZSBkcml2ZXIKa2pvdXJuYWxkIHN0YXJ0 aW5nLiAgQ29tbWl0IGludGVydmFsIDUgc2Vjb25kcwpFWFQzIEZTIG9uIHNkYTMsIGludGVybmFs IGpvdXJuYWwKRVhUMy1mczogbW91bnRlZCBmaWxlc3lzdGVtIHdpdGggb3JkZXJlZCBkYXRhIG1v ZGUuCnBjaV9ob3RwbHVnOiBQQ0kgSG90IFBsdWcgUENJIENvcmUgdmVyc2lvbjogMC41CnNjc2kg MTowOjA6MDogQXR0YWNoZWQgc2NzaSBnZW5lcmljIHNnMCB0eXBlIDUKc2QgMzowOjA6MDogQXR0 YWNoZWQgc2NzaSBnZW5lcmljIHNnMSB0eXBlIDAKZm9yY2VkZXRoOiBSZXZlcnNlIEVuZ2luZWVy ZWQgbkZvcmNlIGV0aGVybmV0IGRyaXZlci4gVmVyc2lvbiAwLjYxLgpQQ0k6IFNldHRpbmcgbGF0 ZW5jeSB0aW1lciBvZiBkZXZpY2UgMDAwMDowMDowOC4wIHRvIDY0CkRyaXZlciAnc3InIG5lZWRz IHVwZGF0aW5nIC0gcGxlYXNlIHVzZSBidXNfdHlwZSBtZXRob2RzCnNyMDogc2NzaTMtbW1jIGRy aXZlOiA0OHgvNDh4IHdyaXRlciBkdmQtcmFtIGNkL3J3IHhhL2Zvcm0yIGNkZGEgdHJheQpVbmlm b3JtIENELVJPTSBkcml2ZXIgUmV2aXNpb246IDMuMjAKc3IgMTowOjA6MDogQXR0YWNoZWQgc2Nz aSBDRC1ST00gc3IwCmZvcmNlZGV0aCAwMDAwOjAwOjA4LjA6IGlmbmFtZSBldGgwLCBQSFkgT1VJ IDB4NTA0MyBAIDAsIGFkZHIgMDA6ZTA6ODE6NzM6MjU6ZjcKZm9yY2VkZXRoIDAwMDA6MDA6MDgu MDogaGlnaGRtYSBjc3VtIHZsYW4gcHdyY3RsIG1nbXQgdGltaXJxIGdiaXQgbG5rdGltIG1zaSBk ZXNjLXYzCm9oY2kxMzk0OiBmdy1ob3N0MDogT0hDSS0xMzk0IDEuMSAoUENJKTogSVJRPVsxMF0g IE1NSU89WzcwMTA0MDAwLTcwMTA0N2ZmXSAgTWF4IFBhY2tldD1bMjA0OF0gIElSL0lUIGNvbnRl eHRzPVs0LzhdCnNocGNocDogSFBDIHZlbmRvcl9pZCAxMDMzIGRldmljZV9pZCAxMjUgc3Nfdmlk IDAgc3NfZGlkIDAKaTJjLWFkYXB0ZXIgaTJjLTA6IG5Gb3JjZTIgU01CdXMgYWRhcHRlciBhdCAw eDQ4NDAKaTJjLWFkYXB0ZXIgaTJjLTE6IG5Gb3JjZTIgU01CdXMgYWRhcHRlciBhdCAweDQ4MDAK c2hwY2hwOiBTdGFuZGFyZCBIb3QgUGx1ZyBQQ0kgQ29udHJvbGxlciBEcml2ZXIgdmVyc2lvbjog MC40CmkyYy1hZGFwdGVyIGkyYy0yOiBuRm9yY2UyIFNNQnVzIGFkYXB0ZXIgYXQgMHg3NDQwClBD STogU2V0dGluZyBsYXRlbmN5IHRpbWVyIG9mIGRldmljZSAwMDAwOjAwOjA5LjAgdG8gNjQKaTJj LWFkYXB0ZXIgaTJjLTM6IG5Gb3JjZTIgU01CdXMgYWRhcHRlciBhdCAweDc0MDAKZm9yY2VkZXRo IDAwMDA6MDA6MDkuMDogaWZuYW1lIGV0aDEsIFBIWSBPVUkgMHg1MDQzIEAgMSwgYWRkciAwMDpl MDo4MTo3MzoyNTpmOApmb3JjZWRldGggMDAwMDowMDowOS4wOiBoaWdoZG1hIGNzdW0gdmxhbiBw d3JjdGwgbWdtdCB0aW1pcnEgZ2JpdCBsbmt0aW0gbXNpIGRlc2MtdjMKUENJOiBTZXR0aW5nIGxh dGVuY3kgdGltZXIgb2YgZGV2aWNlIDAwMDA6MDA6MDYuMSB0byA2NApoZGFfY29kZWM6IFVua25v d24gbW9kZWwgZm9yIEFMQzI2MiwgdHJ5aW5nIGF1dG8tcHJvYmUgZnJvbSBCSU9TLi4uCkFMU0Eg c291bmQvcGNpL2hkYS9oZGFfY29kZWMuYzoyODYwOiBhdXRvY29uZmlnOiBsaW5lX291dHM9MSAo MHgxNS8weDAvMHgwLzB4MC8weDApCkFMU0Egc291bmQvcGNpL2hkYS9oZGFfY29kZWMuYzoyODY0 OiAgICBzcGVha2VyX291dHM9MCAoMHgwLzB4MC8weDAvMHgwLzB4MCkKQUxTQSBzb3VuZC9wY2kv aGRhL2hkYV9jb2RlYy5jOjI4Njg6ICAgIGhwX291dHM9MSAoMHgxYi8weDAvMHgwLzB4MC8weDAp CkFMU0Egc291bmQvcGNpL2hkYS9oZGFfY29kZWMuYzoyODY5OiAgICBtb25vOiBtb25vX291dD0w eDE2CkFMU0Egc291bmQvcGNpL2hkYS9oZGFfY29kZWMuYzoyODc3OiAgICBpbnB1dHM6IG1pYz0w eDE4LCBmbWljPTB4MTksIGxpbmU9MHgxYSwgZmxpbmU9MHgwLCBjZD0weDAsIGF1eD0weDAKQWRk aW5nIDEyNTg2OTE2ayBzd2FwIG9uIC9kZXYvc2RhMi4gIFByaW9yaXR5Oi0xIGV4dGVudHM6MSBh Y3Jvc3M6MTI1ODY5MTZrCmllZWUxMzk0OiBIb3N0IGFkZGVkOiBJRDpCVVNbMC0wMDoxMDIzXSAg R1VJRFswMGUwODEwMDAwMjc4YzkyXQpkZXZpY2UtbWFwcGVyOiB1ZXZlbnQ6IHZlcnNpb24gMS4w LjMKZGV2aWNlLW1hcHBlcjogaW9jdGw6IDQuMTMuMC1pb2N0bCAoMjAwNy0xMC0xOCkgaW5pdGlh bGlzZWQ6IGRtLWRldmVsQHJlZGhhdC5jb20KbG9vcDogbW9kdWxlIGxvYWRlZApram91cm5hbGQg c3RhcnRpbmcuICBDb21taXQgaW50ZXJ2YWwgNSBzZWNvbmRzCkVYVDMgRlMgb24gc2RhMSwgaW50 ZXJuYWwgam91cm5hbApFWFQzLWZzOiBtb3VudGVkIGZpbGVzeXN0ZW0gd2l0aCBvcmRlcmVkIGRh dGEgbW9kZS4Ka2pvdXJuYWxkIHN0YXJ0aW5nLiAgQ29tbWl0IGludGVydmFsIDUgc2Vjb25kcwpF WFQzIEZTIG9uIHNkYTQsIGludGVybmFsIGpvdXJuYWwKRVhUMy1mczogbW91bnRlZCBmaWxlc3lz dGVtIHdpdGggb3JkZXJlZCBkYXRhIG1vZGUuCmZ1c2UgaW5pdCAoQVBJIHZlcnNpb24gNy45KQpp cDZfdGFibGVzOiAoQykgMjAwMC0yMDA2IE5ldGZpbHRlciBDb3JlIFRlYW0KaXBfdGFibGVzOiAo QykgMjAwMC0yMDA2IE5ldGZpbHRlciBDb3JlIFRlYW0KUlBDOiBSZWdpc3RlcmVkIHVkcCB0cmFu c3BvcnQgbW9kdWxlLgpSUEM6IFJlZ2lzdGVyZWQgdGNwIHRyYW5zcG9ydCBtb2R1bGUuCkNQVTAg YXR0YWNoaW5nIE5VTEwgc2NoZWQtZG9tYWluLgpDUFUxIGF0dGFjaGluZyBOVUxMIHNjaGVkLWRv bWFpbi4KQ1BVMiBhdHRhY2hpbmcgTlVMTCBzY2hlZC1kb21haW4uCkNQVTMgYXR0YWNoaW5nIE5V TEwgc2NoZWQtZG9tYWluLgpDUFUwIGF0dGFjaGluZyBzY2hlZC1kb21haW46CiBkb21haW4gMDog c3BhbiAwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAwZgogIGdyb3VwczogMDAwMDAw MDAsMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDEgMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDAs MDAwMDAwMDIgMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDQgMDAwMDAwMDAsMDAw MDAwMDAsMDAwMDAwMDAsMDAwMDAwMDgKQ1BVMSBhdHRhY2hpbmcgc2NoZWQtZG9tYWluOgogZG9t YWluIDA6IHNwYW4gMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMGYKICBncm91cHM6 IDAwMDAwMDAwLDAwMDAwMDAwLDAwMDAwMDAwLDAwMDAwMDAyIDAwMDAwMDAwLDAwMDAwMDAwLDAw MDAwMDAwLDAwMDAwMDA0IDAwMDAwMDAwLDAwMDAwMDAwLDAwMDAwMDAwLDAwMDAwMDA4IDAwMDAw MDAwLDAwMDAwMDAwLDAwMDAwMDAwLDAwMDAwMDAxCkNQVTIgYXR0YWNoaW5nIHNjaGVkLWRvbWFp bjoKIGRvbWFpbiAwOiBzcGFuIDAwMDAwMDAwLDAwMDAwMDAwLDAwMDAwMDAwLDAwMDAwMDBmCiAg Z3JvdXBzOiAwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAwNCAwMDAwMDAwMCwwMDAw MDAwMCwwMDAwMDAwMCwwMDAwMDAwOCAwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAw MSAwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAwMgpDUFUzIGF0dGFjaGluZyBzY2hl ZC1kb21haW46CiBkb21haW4gMDogc3BhbiAwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAwMCwwMDAw MDAwZgogIGdyb3VwczogMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDggMDAwMDAw MDAsMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDEgMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDAs MDAwMDAwMDIgMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDQKcnBjYmluZDogc2Vy dmVyIHRpbW9yIG5vdCByZXNwb25kaW5nLCB0aW1lZCBvdXQKcnBjYmluZDogc2VydmVyIHRpbW9y IG5vdCByZXNwb25kaW5nLCB0aW1lZCBvdXQKTkVUOiBSZWdpc3RlcmVkIHByb3RvY29sIGZhbWls eSAxNwpVbmlmb3JtIE11bHRpLVBsYXRmb3JtIEUtSURFIGRyaXZlcgppZGU6IEFzc3VtaW5nIDMz TUh6IHN5c3RlbSBidXMgc3BlZWQgZm9yIFBJTyBtb2Rlczsgb3ZlcnJpZGUgd2l0aCBpZGVidXM9 eHgKc3Q6IFZlcnNpb24gMjAwODAyMjEsIGZpeGVkIGJ1ZnNpemUgMzI3NjgsIHMvZyBzZWdzIDI1 NgpEcml2ZXIgJ3N0JyBuZWVkcyB1cGRhdGluZyAtIHBsZWFzZSB1c2UgYnVzX3R5cGUgbWV0aG9k cwplbmRfcmVxdWVzdDogSS9PIGVycm9yLCBkZXYgZmQwLCBzZWN0b3IgMAplbmRfcmVxdWVzdDog SS9PIGVycm9yLCBkZXYgZmQwLCBzZWN0b3IgMApwcGRldjogdXNlci1zcGFjZSBwYXJhbGxlbCBw b3J0IGRyaXZlcgpscDogZHJpdmVyIGxvYWRlZCBidXQgbm8gZGV2aWNlcyBmb3VuZApscDogZHJp dmVyIGxvYWRlZCBidXQgbm8gZGV2aWNlcyBmb3VuZApscDogZHJpdmVyIGxvYWRlZCBidXQgbm8g ZGV2aWNlcyBmb3VuZAplbmRfcmVxdWVzdDogSS9PIGVycm9yLCBkZXYgZmQwLCBzZWN0b3IgMApl bmRfcmVxdWVzdDogSS9PIGVycm9yLCBkZXYgZmQwLCBzZWN0b3IgMAplbmRfcmVxdWVzdDogSS9P IGVycm9yLCBkZXYgZmQwLCBzZWN0b3IgMAplbmRfcmVxdWVzdDogSS9PIGVycm9yLCBkZXYgZmQw LCBzZWN0b3IgMApycGNiaW5kOiBzZXJ2ZXIgdGltb3Igbm90IHJlc3BvbmRpbmcsIHRpbWVkIG91 dApycGNiaW5kOiBzZXJ2ZXIgdGltb3Igbm90IHJlc3BvbmRpbmcsIHRpbWVkIG91dAp2eHdvcmtz X3RpY2tfdGltZV9tb2R1bGU6IG1vZHVsZSBsaWNlbnNlICd1bnNwZWNpZmllZCcgdGFpbnRzIGtl cm5lbC4Kdnh3b3Jrc190aWNrX3RpbWVfbW9kdWxlIDogaW5pdF9tb2R1bGUKUEVWMTEwMCBNU0kg ZW5hYmxlZCA6IHBldiBpcnEgPSAyMTEKb3Blbl9ydCA6IG15X2NvbnRleHQgdmFsdWUgOiAweGRh MmUxMDI4Cm9wZW5fcnQgOiBoYW5kbGUgdmFsdWUgOiAweDAKLS0tLS0tLS0tLS0tWyBjdXQgaGVy ZSBdLS0tLS0tLS0tLS0tCmtlcm5lbCBCVUcgYXQga2VybmVsL2lwaXBlL2NvcmUuYzozMjMhCmlu dmFsaWQgb3Bjb2RlOiAwMDAwIFsjMV0gUFJFRU1QVCBTTVAgCk1vZHVsZXMgbGlua2VkIGluOiB2 eHdvcmtzX3RpY2tfdGltZV9tb2R1bGUoUCkgbHAgcGFycG9ydF9wYyBwcGRldiBwYXJwb3J0IHN0 IGlkZV9kaXNrIGlkZV9jZF9tb2QgaWRlX2NvcmUgYWZfcGFja2V0IGpveWRldiBuZnMgbG9ja2Qg bmZzX2FjbCBzdW5ycGMgYXV0b2ZzNCBzbmRfcGNtX29zcyBzbmRfbWl4ZXJfb3NzIHNuZF9zZXEg YmluZm10X21pc2Mgc25kX3NlcV9kZXZpY2UgaXB0YWJsZV9maWx0ZXIgaXBfdGFibGVzIGlwNl90 YWJsZXMgeF90YWJsZXMgZnVzZSBsb29wIGRtX21vZCBzbmRfaGRhX2ludGVsIHNuZF9wY20gc25k X3RpbWVyIHNuZF9wYWdlX2FsbG9jIHNuZF9od2RlcCBzbmQgb2hjaTEzOTQgc3JfbW9kIGllZWUx Mzk0IHNocGNocCBpMmNfbmZvcmNlMiBpMmNfY29yZSBmb3JjZWRldGggc2cgcGNpX2hvdHBsdWcg c291bmRjb3JlIGNkcm9tIGs4dGVtcCB1c2JoaWQgaGlkIGZmX21lbWxlc3MgZWhjaV9oY2Qgb2hj aV9oY2Qgc2RfbW9kIHVzYmNvcmUgZWRkIGV4dDMgbWJjYWNoZSBqYmQgcGF0YV9hbWQgc2F0YV9u diBsaWJhdGEgbXB0c2FzIG1wdHNjc2loIG1wdGJhc2Ugc2NzaV90cmFuc3BvcnRfc2FzIHNjc2lf bW9kIFtsYXN0IHVubG9hZGVkOiBwYXJwb3J0X3BjXQoKUGlkOiAxMjQ5MiwgY29tbTogdGljayBU YWludGVkOiBQICAgICAgICAgKDIuNi4yNS1wYWUgIzEwKQpFSVA6IDAwNjA6WzxjMDE1MGE4MT5d IEVGTEFHUzogMDAwMTAwMDYgQ1BVOiAwCkVJUCBpcyBhdCBfX2lwaXBlX3Jlc3RvcmVfcm9vdCsw eDFhLzB4M2YKRUFYOiBjMDQyYzU3NCBFQlg6IDgwODUwMDAwIEVDWDogMDAwMDAwMDEgRURYOiAw NWRlNzAwMApFU0k6IDAwMDAwMDRjIEVESTogMDAwMDAwMDAgRUJQOiBkOTRlN2NkNCBFU1A6IGQ5 NGU3Y2Q0CiBEUzogMDA3YiBFUzogMDA3YiBGUzogMDBkOCBHUzogMDAzMyBTUzogMDA2OApQcm9j ZXNzIHRpY2sgKHBpZDogMTI0OTIsIHRpPWQ5NGU2MDAwIHRhc2s9ZDg5ZjUwZTAgdGFzay50aT1k OTRlNjAwMCk8MD4KSS1waXBlIGRvbWFpbiBMaW51eApTdGFjazogZDk0ZTdjZGMgYzAyZTk1MTkg ZDk0ZTdjZjAgYzAyNzg2ZDggYzAzZDhlOWMgMDAwMDAwODUgZDk0ZTdkNDQgZDk0ZTdkMTQgCiAg ICAgICBjMDI3OTczMiAwMDAwMDA0YyAwMDAwMDAwNCBkOTRlN2Q0NCAwMDAwMDAwMCAwMDAwMDAw MCBkYTBjMTAwMCAwMDAwMDA0YyAKICAgICAgIGQ5NGU3ZDJjIGMwMjc5N2IwIDAwMDAwMDRjIDAw MDAwMDA0IGQ5NGU3ZDQ0IGMwM2Q4ZjAwIGQ5NGU3ZDU0IGMwMjFhODljIApDYWxsIFRyYWNlOgog WzxjMDJlOTUxOT5dID8gX3NwaW5fdW5sb2NrX2lycXJlc3RvcmUrMHgxOC8weDM2CiBbPGMwMjc4 NmQ4Pl0gPyBwY2lfY29uZjFfcmVhZCsweGE0LzB4YWIKIFs8YzAyNzk3MzI+XSA/IHJhd19wY2lf cmVhZCsweDRhLzB4NTUKIFs8YzAyNzk3YjA+XSA/IHBjaV9yZWFkKzB4MWQvMHgyMgogWzxjMDIx YTg5Yz5dID8gcGNpX2J1c19yZWFkX2NvbmZpZ19kd29yZCsweDQwLzB4NjMKIFs8YzAyMjFiOTM+ XSA/IHJlYWRfbXNpX21zZysweDQ0LzB4YmYKIFs8YzAxMTA5NzA+XSA/IHNldF9tc2lfaXJxX2Fm ZmluaXR5KzB4ODkvMHhkMAogWzxjMDExMzE2ZD5dID8gX19pcGlwZV9zZXRfaXJxX2FmZmluaXR5 KzB4YmQvMHhkMQogWzxjMDE0ZmViOD5dID8gaXBpcGVfc2V0X2lycV9hZmZpbml0eSsweDQxLzB4 NWQKIFs8YzAxNTRhNDM+XSA/IHhuaW50cl9hdHRhY2grMHg5OC8weDExNwogWzxjMDE4NjU1Mj5d ID8gcnRkbV9pcnFfcmVxdWVzdCsweDIzLzB4NDkKIFs8ZGM3MTEwMjI+XSA/IGlycV90aWNrX2hh bmRsZXIrMHgwLzB4MTQgW3Z4d29ya3NfdGlja190aW1lX21vZHVsZV0KIFs8ZGM3MTEzMmU+XSA/ IG9wZW5fcnQrMHg4Mi8weGI0IFt2eHdvcmtzX3RpY2tfdGltZV9tb2R1bGVdCiBbPGMwMTg1OTEx Pl0gPyBfX3J0X2Rldl9vcGVuKzB4OGQvMHgxMTgKIFs8YzAxODc1ZDg+XSA/IHN5c19ydGRtX29w ZW4rMHg0Ni8weDU1CiBbPGMwMTgwMDMwPl0gPyBtcV9nZXRhdHRyKzB4MTA2LzB4MTU4CiBbPGMw MTYxZTBkPl0gPyBoaXN5c2NhbGxfZXZlbnQrMHgxMzcvMHgyNTYKIFs8YzAxNTA1M2U+XSA/IF9f aXBpcGVfZGlzcGF0Y2hfZXZlbnQrMHhjNi8weDFhMwogWzxjMDE2MWNkNj5dID8gaGlzeXNjYWxs X2V2ZW50KzB4MC8weDI1NgogWzxjMDExMmUzNz5dID8gX19pcGlwZV9zeXNjYWxsX3Jvb3QrMHg3 Zi8weDExMgogWzxjMDEwNGE5ZD5dID8gc3lzdGVtX2NhbGwrMHgyOS8weDRhCiA9PT09PT09PT09 PT09PT09PT09PT09PQpDb2RlOiA3YyAwMiAwNCAwMCA3NCAwOCA4MyBjOCBmZiBlOCA1NiBmNyBm ZiBmZiBmYiA1ZCBjMyA1NSA4OSBjMSA2NCA4YiAxNSAyOCBhMSA0MiBjMCBiOCA3NCBjNSA0MiBj MCA4OSBlNSA4MSAzYyAxMCA4MCA3MSA0YSBjMCA3NCAwNCA8MGY+IDBiIGViIGZlIDg1IGM5IDc0 IDE2IDljIGZhIDY0IGExIDI4IGExIDQyIGMwIDhkIDgwIDE0IGIyIDQyIApFSVA6IFs8YzAxNTBh ODE+XSBfX2lwaXBlX3Jlc3RvcmVfcm9vdCsweDFhLzB4M2YgU1M6RVNQIDAwNjg6ZDk0ZTdjZDQK LS0tWyBlbmQgdHJhY2UgYmE5MTkxNTUyNDdkZTU0OSBdLS0tCm5vdGU6IHRpY2tbMTI0OTJdIGV4 aXRlZCB3aXRoIHByZWVtcHRfY291bnQgMgo= ------_=_NextPart_001_01C94EFF.9A743F6C-- From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <493099E2.6070502@domain.hid> Date: Sat, 29 Nov 2008 02:24:50 +0100 From: Jan Kiszka MIME-Version: 1.0 References: In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enigF7A0116A0C84C95A7787D19A" Sender: jan.kiszka@domain.hid Subject: Re: [Xenomai-help] External PCIe device: MSI interrupt install hangs up the CPU List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Rubio, Martial" Cc: jeanfrancois.gilot@domain.hid, xenomai@xenomai.org, "Dupeyrou, Gilles" This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enigF7A0116A0C84C95A7787D19A Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hi Martial, sorry for the late reply, but my work queue suffered from some overflows.= =2E. Rubio, Martial wrote: > Hello ... >=20 > ... I apologize : pci_bus_read_config_word is an old 32-bit access > routine ...=20 > Sorry for my great haste. >=20 > If I disable CONFIG_PCI_MSI, eth0 is plugged now on a classical PCI IRQ= > vector=20 > And the init part of PEV1100 (my external PCIe device) does not work > (it's normal) >=20 > So CONFIG_PCI_MSI is mandatory . >=20 > About PEV1100 after pci_msi_enable (allways in init part) no source of > interrupt is still enabled ... > So registration can be done (rtdm ...) . >=20 > BUT : are the MSI interrupts (eth0 & PEV1100) are rightly dispatched ??= ? >=20 > By viewing attached file, the last function seems to be > __ipipe_restore_root > And a few lines before irq_tick_handler+0x0/0x14 > [vxworks_tick_time_module]* > As if an interrupt source of PEV1100 has allready been enabled > (obviously no). The problem is that ipipe calls into Linux services (->MSI->PCI) that are not prepared for running in ipipe context: ------------[ cut here ]------------ kernel BUG at kernel/ipipe/core.c:323! invalid opcode: 0000 [#1] PREEMPT SMP Modules linked in: vxworks_tick_time_module(P) lp parport_pc ppdev parport st ide_disk ide_cd_mod ide_core af_packet joydev nfs lockd nfs_acl sunrpc autofs4 snd_pcm_oss snd_mixer_oss snd_seq binfmt_misc snd_seq_device iptable_filter ip_tables ip6_tables x_tables fuse loop dm_mod snd_hda_intel snd_pcm snd_timer snd_page_alloc snd_hwdep snd ohci1394 sr_mod ieee1394 shpchp i2c_nforce2 i2c_core forcedeth sg pci_hotplug soundcore cdrom k8temp usbhid hid ff_memless ehci_hcd ohci_hcd sd_mod usbcore edd ext3 mbcache jbd pata_amd sata_nv libata mptsas mptscsih mptbase scsi_transport_sas scsi_mod [last unloaded: parport_pc] Pid: 12492, comm: tick Tainted: P (2.6.25-pae #10) EIP: 0060:[] EFLAGS: 00010006 CPU: 0 EIP is at __ipipe_restore_root+0x1a/0x3f EAX: c042c574 EBX: 80850000 ECX: 00000001 EDX: 05de7000 ESI: 0000004c EDI: 00000000 EBP: d94e7cd4 ESP: d94e7cd4 DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 Process tick (pid: 12492, ti=3Dd94e6000 task=3Dd89f50e0 task.ti=3Dd94e600= 0)<0> I-pipe domain Linux Stack: d94e7cdc c02e9519 d94e7cf0 c02786d8 c03d8e9c 00000085 d94e7d44 d94e7d14 c0279732 0000004c 00000004 d94e7d44 00000000 00000000 da0c1000 0000004c d94e7d2c c02797b0 0000004c 00000004 d94e7d44 c03d8f00 d94e7d54 c021a89c Call Trace: [] ? _spin_unlock_irqrestore+0x18/0x36 [] ? pci_conf1_read+0xa4/0xab [] ? raw_pci_read+0x4a/0x55 [] ? pci_read+0x1d/0x22 [] ? pci_bus_read_config_dword+0x40/0x63 [] ? read_msi_msg+0x44/0xbf [] ? set_msi_irq_affinity+0x89/0xd0 [] ? __ipipe_set_irq_affinity+0xbd/0xd1 [] ? ipipe_set_irq_affinity+0x41/0x5d [] ? xnintr_attach+0x98/0x117 [] ? rtdm_irq_request+0x23/0x49 [] ? irq_tick_handler+0x0/0x14 [vxworks_tick_time_module] [] ? open_rt+0x82/0xb4 [vxworks_tick_time_module] [] ? __rt_dev_open+0x8d/0x118 [] ? sys_rtdm_open+0x46/0x55 [] ? mq_getattr+0x106/0x158 [] ? hisyscall_event+0x137/0x256 [] ? __ipipe_dispatch_event+0xc6/0x1a3 [] ? hisyscall_event+0x0/0x256 [] ? __ipipe_syscall_root+0x7f/0x112 [] ? system_call+0x29/0x4a =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Philippe, I recall some issue that turned out to be a similar call into pci_read_config - was it resolved in any official ipipe release? However, Martial, you can likely work around it by registering the open handler of vxworks_tick_time_module only to open_nrt. That will switch the caller of rt_dev_open to secondary (Linux) mode and allow to run that service safely. Device opening is almost never time critical (and I'm planning to remove open/socket/close_rt handler for Xenomai 2.5 anywa= y). Jan --------------enigF7A0116A0C84C95A7787D19A Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iEYEARECAAYFAkkwmeIACgkQniDOoMHTA+nsgQCfUWxb103p5hnHW9ClttEBzhKg ePMAnjTa60zu3VdySxkM/+cT7c2AvjRE =sSFF -----END PGP SIGNATURE----- --------------enigF7A0116A0C84C95A7787D19A-- From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <493116EA.10808@domain.hid> Date: Sat, 29 Nov 2008 11:18:18 +0100 From: Philippe Gerum MIME-Version: 1.0 References: <493099E2.6070502@domain.hid> In-Reply-To: <493099E2.6070502@domain.hid> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Xenomai-help] External PCIe device: MSI interrupt install hangs up the CPU Reply-To: rpm@xenomai.org List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: "Rubio, Martial" , jeanfrancois.gilot@domain.hid, "Dupeyrou, Gilles" , xenomai@xenomai.org Jan Kiszka wrote: > Hi Martial, > > sorry for the late reply, but my work queue suffered from some overflows... > > Rubio, Martial wrote: >> Hello ... >> >> ... I apologize : pci_bus_read_config_word is an old 32-bit access >> routine ... >> Sorry for my great haste. >> >> If I disable CONFIG_PCI_MSI, eth0 is plugged now on a classical PCI IRQ >> vector >> And the init part of PEV1100 (my external PCIe device) does not work >> (it's normal) >> >> So CONFIG_PCI_MSI is mandatory . >> >> About PEV1100 after pci_msi_enable (allways in init part) no source of >> interrupt is still enabled ... >> So registration can be done (rtdm ...) . >> >> BUT : are the MSI interrupts (eth0 & PEV1100) are rightly dispatched ??? >> >> By viewing attached file, the last function seems to be >> __ipipe_restore_root >> And a few lines before irq_tick_handler+0x0/0x14 >> [vxworks_tick_time_module]* >> As if an interrupt source of PEV1100 has allready been enabled >> (obviously no). > > The problem is that ipipe calls into Linux services (->MSI->PCI) that > are not prepared for running in ipipe context: > > ------------[ cut here ]------------ > kernel BUG at kernel/ipipe/core.c:323! > invalid opcode: 0000 [#1] PREEMPT SMP > Modules linked in: vxworks_tick_time_module(P) lp parport_pc ppdev > parport st ide_disk ide_cd_mod ide_core af_packet joydev nfs lockd > nfs_acl sunrpc autofs4 snd_pcm_oss snd_mixer_oss snd_seq binfmt_misc > snd_seq_device iptable_filter ip_tables ip6_tables x_tables fuse loop > dm_mod snd_hda_intel snd_pcm snd_timer snd_page_alloc snd_hwdep snd > ohci1394 sr_mod ieee1394 shpchp i2c_nforce2 i2c_core forcedeth sg > pci_hotplug soundcore cdrom k8temp usbhid hid ff_memless ehci_hcd > ohci_hcd sd_mod usbcore edd ext3 mbcache jbd pata_amd sata_nv libata > mptsas mptscsih mptbase scsi_transport_sas scsi_mod [last unloaded: > parport_pc] > > Pid: 12492, comm: tick Tainted: P (2.6.25-pae #10) > EIP: 0060:[] EFLAGS: 00010006 CPU: 0 > EIP is at __ipipe_restore_root+0x1a/0x3f > EAX: c042c574 EBX: 80850000 ECX: 00000001 EDX: 05de7000 > ESI: 0000004c EDI: 00000000 EBP: d94e7cd4 ESP: d94e7cd4 > DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 > Process tick (pid: 12492, ti=d94e6000 task=d89f50e0 task.ti=d94e6000)<0> > I-pipe domain Linux > Stack: d94e7cdc c02e9519 d94e7cf0 c02786d8 c03d8e9c 00000085 d94e7d44 > d94e7d14 > c0279732 0000004c 00000004 d94e7d44 00000000 00000000 da0c1000 > 0000004c > d94e7d2c c02797b0 0000004c 00000004 d94e7d44 c03d8f00 d94e7d54 > c021a89c > Call Trace: > [] ? _spin_unlock_irqrestore+0x18/0x36 > [] ? pci_conf1_read+0xa4/0xab > [] ? raw_pci_read+0x4a/0x55 > [] ? pci_read+0x1d/0x22 > [] ? pci_bus_read_config_dword+0x40/0x63 > [] ? read_msi_msg+0x44/0xbf > [] ? set_msi_irq_affinity+0x89/0xd0 > [] ? __ipipe_set_irq_affinity+0xbd/0xd1 > [] ? ipipe_set_irq_affinity+0x41/0x5d > [] ? xnintr_attach+0x98/0x117 > [] ? rtdm_irq_request+0x23/0x49 > [] ? irq_tick_handler+0x0/0x14 [vxworks_tick_time_module] > [] ? open_rt+0x82/0xb4 [vxworks_tick_time_module] > [] ? __rt_dev_open+0x8d/0x118 > [] ? sys_rtdm_open+0x46/0x55 > [] ? mq_getattr+0x106/0x158 > [] ? hisyscall_event+0x137/0x256 > [] ? __ipipe_dispatch_event+0xc6/0x1a3 > [] ? hisyscall_event+0x0/0x256 > [] ? __ipipe_syscall_root+0x7f/0x112 > [] ? system_call+0x29/0x4a > ======================= > > Philippe, I recall some issue that turned out to be a similar call into > pci_read_config - was it resolved in any official ipipe release? > Yes, this one is a well-known issue. And no, this has not been solved yet, mainly because the x86 io_apic and MSI code has been in perpetual state of flux since ages, so I did not want to fiddle with it until the kernel folks eventually made their mind about a stable implementation. I plan to address this in 2.6.28/2.6.29, depending on my work load, unless someone else picks that earlier. ATM, I-pipe generic and powerpc optimizations + Xenomai scheduling classes support drain most of my available time, unfortunately. > However, Martial, you can likely work around it by registering the open > handler of vxworks_tick_time_module only to open_nrt. That will switch > the caller of rt_dev_open to secondary (Linux) mode and allow to run > that service safely. Device opening is almost never time critical (and > I'm planning to remove open/socket/close_rt handler for Xenomai 2.5 anyway). > > Jan > -- Philippe. From mboxrd@z Thu Jan 1 00:00:00 1970 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Date: Mon, 1 Dec 2008 17:33:41 +0100 Message-ID: In-Reply-To: <493099E2.6070502@domain.hid> From: "Rubio, Martial" Subject: Re: [Xenomai-help] External PCIe device: MSI interrupt install hangs up the CPU List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: jan.kiszka@domain.hid Cc: jeanfrancois.gilot@domain.hid, xenomai@xenomai.org, "Dupeyrou, Gilles" Hi Jan ... ... Thanks a lot for your reply ... And the workaround is OK! 2 little last precisions about this topic :=20 -is it necessary to rename all the "rt"'s entry points as "nrt"'s entry points (close,read,write,ioctl) ? -is the interrupt handler "vxworks_tick_time_module" (when a HW source of PEV1100 will be enable)=20 running in Linux (not critical) mode ? =20 It's very easy (by looking at the name of the interrupt handler) to know why I ask these questions : vxworks_tick_time_module is waiting for an external pulse at 1 ms (and other MSI VME interrupts of course) provided by an external PCIe device PEV1100 in order to announce tick and so schedule an 'old' VME real time=20 Multi-cpu Application (so I'm using also Xenomai VxWorks skins for the migration in multi-core environment) ... Only VME slave boards will be stay in the distant crate! It's perharps a little bit fresh ... But it must go right !!! Regards=20 Martial=20 -----Original Message----- From: jan.kiszka@domain.hid [mailto:jan.kiszka@domain.hid Sent: Saturday, November 29, 2008 2:25 AM To: Rubio, Martial Cc: jeanfrancois.gilot@domain.hid; xenomai@xenomai.org; Dupeyrou, Gilles; Philippe Gerum Subject: Re: External PCIe device: MSI interrupt install hangs up the CPU Hi Martial, sorry for the late reply, but my work queue suffered from some overflows... Rubio, Martial wrote: > Hello ... >=20 > ... I apologize : pci_bus_read_config_word is an old 32-bit access=20 > routine ... > Sorry for my great haste. >=20 > If I disable CONFIG_PCI_MSI, eth0 is plugged now on a classical PCI=20 > IRQ vector And the init part of PEV1100 (my external PCIe device) does > not work (it's normal) >=20 > So CONFIG_PCI_MSI is mandatory . >=20 > About PEV1100 after pci_msi_enable (allways in init part) no source of > interrupt is still enabled ... > So registration can be done (rtdm ...) . >=20 > BUT : are the MSI interrupts (eth0 & PEV1100) are rightly dispatched ??? >=20 > By viewing attached file, the last function seems to be=20 > __ipipe_restore_root And a few lines before irq_tick_handler+0x0/0x14 > [vxworks_tick_time_module]* > As if an interrupt source of PEV1100 has allready been enabled=20 > (obviously no). The problem is that ipipe calls into Linux services (->MSI->PCI) that are not prepared for running in ipipe context: ------------[ cut here ]------------ kernel BUG at kernel/ipipe/core.c:323! invalid opcode: 0000 [#1] PREEMPT SMP Modules linked in: vxworks_tick_time_module(P) lp parport_pc ppdev parport st ide_disk ide_cd_mod ide_core af_packet joydev nfs lockd nfs_acl sunrpc autofs4 snd_pcm_oss snd_mixer_oss snd_seq binfmt_misc snd_seq_device iptable_filter ip_tables ip6_tables x_tables fuse loop dm_mod snd_hda_intel snd_pcm snd_timer snd_page_alloc snd_hwdep snd ohci1394 sr_mod ieee1394 shpchp i2c_nforce2 i2c_core forcedeth sg pci_hotplug soundcore cdrom k8temp usbhid hid ff_memless ehci_hcd ohci_hcd sd_mod usbcore edd ext3 mbcache jbd pata_amd sata_nv libata mptsas mptscsih mptbase scsi_transport_sas scsi_mod [last unloaded: parport_pc] Pid: 12492, comm: tick Tainted: P (2.6.25-pae #10) EIP: 0060:[] EFLAGS: 00010006 CPU: 0 EIP is at __ipipe_restore_root+0x1a/0x3f EAX: c042c574 EBX: 80850000 ECX: 00000001 EDX: 05de7000 ESI: 0000004c EDI: 00000000 EBP: d94e7cd4 ESP: d94e7cd4 DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 Process tick (pid: 12492, ti=3Dd94e6000 task=3Dd89f50e0 task.ti=3Dd94e6000)<0> I-pipe domain Linux Stack: d94e7cdc c02e9519 d94e7cf0 c02786d8 c03d8e9c 00000085 d94e7d44 d94e7d14 c0279732 0000004c 00000004 d94e7d44 00000000 00000000 da0c1000 0000004c d94e7d2c c02797b0 0000004c 00000004 d94e7d44 c03d8f00 d94e7d54 c021a89c Call Trace: [] ? _spin_unlock_irqrestore+0x18/0x36 [] ? pci_conf1_read+0xa4/0xab [] ? raw_pci_read+0x4a/0x55 [] ? pci_read+0x1d/0x22 [] ? pci_bus_read_config_dword+0x40/0x63 [] ? read_msi_msg+0x44/0xbf [] ? set_msi_irq_affinity+0x89/0xd0 [] ? __ipipe_set_irq_affinity+0xbd/0xd1 [] ? ipipe_set_irq_affinity+0x41/0x5d [] ? xnintr_attach+0x98/0x117 [] ? rtdm_irq_request+0x23/0x49 [] ? irq_tick_handler+0x0/0x14 [vxworks_tick_time_module] [] ? open_rt+0x82/0xb4 [vxworks_tick_time_module] [] ? __rt_dev_open+0x8d/0x118 [] ? sys_rtdm_open+0x46/0x55 [] ? mq_getattr+0x106/0x158 [] ? hisyscall_event+0x137/0x256 [] ? __ipipe_dispatch_event+0xc6/0x1a3 [] ? hisyscall_event+0x0/0x256 [] ? __ipipe_syscall_root+0x7f/0x112 [] ? system_call+0x29/0x4a =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Philippe, I recall some issue that turned out to be a similar call into pci_read_config - was it resolved in any official ipipe release? However, Martial, you can likely work around it by registering the open handler of vxworks_tick_time_module only to open_nrt. That will switch the caller of rt_dev_open to secondary (Linux) mode and allow to run that service safely. Device opening is almost never time critical (and I'm planning to remove open/socket/close_rt handler for Xenomai 2.5 anyway). Jan From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <49346FD3.8050609@domain.hid> Date: Tue, 02 Dec 2008 00:14:27 +0100 From: Jan Kiszka MIME-Version: 1.0 References: In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enig0D22775613A57C4E247CCE24" Sender: jan.kiszka@domain.hid Subject: Re: [Xenomai-help] External PCIe device: MSI interrupt install hangs up the CPU List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Rubio, Martial" Cc: jeanfrancois.gilot@domain.hid, xenomai@xenomai.org, "Dupeyrou, Gilles" This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig0D22775613A57C4E247CCE24 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Rubio, Martial wrote: > Hi Jan ... >=20 > ... Thanks a lot for your reply ... And the workaround is OK! >=20 > 2 little last precisions about this topic :=20 >=20 > -is it necessary to rename all the "rt"'s entry points as > "nrt"'s entry points (close,read,write,ioctl) ? For close, yes, but the rest should be fine - otherwise the problem is fatal for you. Changing the rest, which is likely supposed to do the critical work, will leave you without any improvement over plain Linux. I said "should" because there is the risk that some other code paths of PCIe MSI handling triggers the bug report as well. > -is the interrupt handler "vxworks_tick_time_module" (when a HW > source of PEV1100 will be enable)=20 > running in Linux (not critical) mode ? =20 Is that the handler you register with RTDM? Then no, it will be run over the primary domain, ie. Xenomai. >=20 > It's very easy (by looking at the name of the interrupt handler) to kno= w > why I ask these questions : > vxworks_tick_time_module is waiting for an external pulse at 1 ms (and > other MSI VME interrupts of course) > provided by an external PCIe device PEV1100 in order to announce tick > and so schedule an 'old' VME real time=20 > Multi-cpu Application (so I'm using also Xenomai VxWorks skins for the > migration in multi-core environment) > ... Only VME slave boards will be stay in the distant crate! >=20 > It's perharps a little bit fresh ... But it must go right !!! >=20 > Regards=20 >=20 > Martial=20 >=20 Jan --------------enig0D22775613A57C4E247CCE24 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iEYEARECAAYFAkk0b9cACgkQniDOoMHTA+keOwCeLVHFTSeowiVPsomNzfhnb6Zo jwwAnjRGR2XjEG0CDd/5LzLQg1FwBoSe =Nvm/ -----END PGP SIGNATURE----- --------------enig0D22775613A57C4E247CCE24--