6 Replies Latest reply on Sep 1, 2017 9:05 AM by Mehmet

    Designing a minimal expansion board - Boot problem

    Mehmet

      Dear Intel Joule community,

       

      It is sad that Joule will be discontinued very soon. Here I am, a PhD student relying on your help to graduate. I asked a few questions a while ago. In short, I need the Joule in a very compact space and I need only a USB2 interface. So, I designed a custom expansion (carrier) board. Finally, I could test the first prototype. Unfortunately I have a boot problem.

       

      My version of the board is very simplified. I am attaching my schematics. I can provide detailed information, if needed.

       

      I suspect the problem can be boot strapping (Yes I checked the "Design guide update for module boot-strap signals"). I went through all information sources (all available technical documents from Joule's site) I could find. I find boot strapping part a bit ambiguous. I am not using any of the peripherals which require strapping (Uart0, ISH UART0, SPI1&2). Those pins are simply left floating (high-z).

       

      Of course the problem can also be on the assembly of the board. But, I need any information/help/suggestion that you may provide.

       

      Just before the booting, the Joule is shutting off itself. I have the serial debugging interface. Here is the information I log from my custom board (starting with the power up and ending when module shutsdown):

      MRC REVISION ID 1.52.27

      MMRC REVISION ID 1.09

      BIOS ID = GTPPC16A.X64.0143.B30.1609100153

      Board Name = Joule DVT3

        MRC REVISION ID 1.52.27

      MMRC REVISION ID 1.09

      ***ONE MORE LINE HERE... BIOS VERSION I THINK...***

      Start showing progress bar...

      Press any key to stop it!

      Press F2 to enter BIOS setup.

      ...Zzz....

      Showing progress bar...Remaining 5 second! Press F2 to enter BIOS setup.

      Showing progress bar...Remaining 4 second! Press F2 to enter BIOS setup.

      **** Then module shuts down...

       

      When I install the computing module back onto the Intel's expansion board, I get the following log:

      Board Name = Joule DVT3

        MRC REVISION ID 1.52.27

      MMRC REVISION ID 1.09

      BIOS ID = GTPPC16A.X64.0143.B30.1609100153

      Board Name = Joule DVT3

        MRC REVISION ID 1.52.27

      MMRC REVISION ID 1.09

      BIOS ID = GTPPC16A.X64.0143.B30.1609100153

      ESC[2JESC[01;01HESC[=3hESC[2JESC[01;01HESC[2JESC[01;01HESC[=3hESC[2JESC[01;01HESC[2JESC[01;01HESC[=3hESC[2JESC[01;01HESC[2JESC[01;01H

      ESC[=3hESC[2JESC[01;01HESC[2JESC[01;01HESC[=3hESC[2JESC[01;01H

      Start showing progress bar...

      Press any key to stop it!

      Press F2 to enter BIOS setup.

      ...Zzz....

      Showing progress bar...Remaining 5 second! Press F2 to enter BIOS setup.

      Showing progress bar...Remaining 4 second! Press F2 to enter BIOS setup.

      Showing progress bar...Remaining 3 second! Press F2 to enter BIOS setup.

      Showing progress bar...Remaining 2 second! Press F2 to enter BIOS setup.

      Showing progress bar...Remaining 1 second! Press F2 to enter BIOS setup.

      ESC[2JESC[01;01H[    0.000000] Initializing cgroup subsys cpuset

      [    0.000000] Initializing cgroup subsys cpu

      [    0.000000] Initializing cgroup subsys cpuacct

      [    0.000000] Linux version 4.4.15-yocto-standard (jenkins@) (gcc version 5.4.0 (GCC) ) #1 SMP PREEMPT Fri Aug 12 22:04:24 UTC 2016

      [    0.000000] Command line: rootwait console=tty0 console=ttyS2,115200 video=efifb maxcpus=4 noxsave reboot=efi kmemleak=off fsck.mode=skip no-ima ro root=PARTUUID=12345678-9abc-def0-0fed-cba987654320 rootfstype=ext4

      [    0.000000] x86/fpu: xstate_offset[3]:  960, xstate_sizes[3]:   64

      [    0.000000] x86/fpu: xstate_offset[4]: 1024, xstate_sizes[4]:   64

      [    0.000000] x86/fpu: Supporting XSAVE feature 0x01: 'x87 floating point registers'

      [    0.000000] x86/fpu: Supporting XSAVE feature 0x02: 'SSE registers'

      [    0.000000] x86/fpu: Supporting XSAVE feature 0x08: 'MPX bounds registers'

      [    0.000000] x86/fpu: Supporting XSAVE feature 0x10: 'MPX CSR'

      [    0.000000] x86/fpu: Enabled xstate features 0x1b, context size is 1088 bytes, using 'standard' format.

      [    0.000000] x86/fpu: Using 'eager' FPU context switches.

      [    0.000000] e820: BIOS-provided physical RAM map:

      [    0.000000] BIOS-e820: [mem 0x0000000000000000-0x0000000000057fff] usable

      [    0.000000] BIOS-e820: [mem 0x0000000000058000-0x0000000000058fff] reserved

      [    0.000000] BIOS-e820: [mem 0x0000000000059000-0x000000000009dfff] usable

      **** And continues.. I can provide the full log file, if needed

       

      From those logs what I guess is CPU never gets power in my custom expansion board.

       

      Best regards

      Mehmet

        • 1. Re: Designing a minimal expansion board - Boot problem
          Intel Corporation
          This message was posted on behalf of Intel Corporation

          Hi Mehmet,
           
          Thanks for your interest in the Intel Joule platform.
           
          I have looked at your schematics and I have not found what could be the issue. However, I’d recommend you to double check the Power Subsystem and Accessory Signaling and Power Delivery, Signaling, and Reset sections of the Online Guide for the Intel Joule Module.
           
          Additionally, you can take as reference the Expansion board for the Intel Joule compute module in order to check your schematics, especially the power section.
           
          I would like to let you know that custom boards are out of our support scope, so our response is limited.
           
          Regards,
          -Yermi A.  
           

          • 2. Re: Designing a minimal expansion board - Boot problem
            Mehmet

            Dear Yermi,

             

            Thank you very much for your response. I have already checked all available documents multiple (n>=3) times. As you suggested I carefully read again (in case there is something new). Unfortunately, I could not find anything new for my problem.

             

            I understand that you cannot accurately pinpoint my problem. I appreciate your effort. Actually, my custom board is based on the official expansion board. I took the opensource designs you provided and removed many cool features that I don't need. Thus, I have a simple 2 layer, minimal size expansion board.

             

            The board is not completely dead. It starts outputting serial debug data. But, it does not initiate the loading OS or powering CPU(??). I really have almost zero knowledge on how BIOS (initializing the system) works. So, I am stuck and cannot really debug. The computing module simply shuts down itself (zero power consumption) 2-3 seconds after the VDC_IN and VSYS is connected to 5V. Am I supposed to raise a pin to high or pull to low within that 2-3 seconds? 

             

            If it would help, here is a small observation: two leds on the computing module (right next to wifi antenna connectors, one blue and the other green [or maybe white]) briefly (like a few milliseconds) blink as soon as power is on. Both leds blink once more as just before the power off (unwanted shutdown that I try to figure out the reason).

             

            The major change is power system. I have external 5V supply (DC power supply). Hence, VDC_IN and VSYS are connected to the external 5V. I also don't need high current 1.8V and 3.3V, so I simply use VDD1 and VDD3 directly. I don't need USB3 or power switching features.. So, my power system is highly simplified (no onbard regulators, only 5V external supply). 

             

            Does the I2C 0 connection to EEPROM and VSYS regulator on the Intel Expansion board has any crucial role (like not enabling the boot sequence)? As far as I could understand EEPROM is just an alternative for pin configuration in BIOS settings (if I don't have the EEPROM, I can still set it in BIOS). The I2C connection to VSYS regulator seems to be for the battery charging capabilities of the regulator chip (which is also not supported in the Intel expansion board).

             

            @rest of the community: If there is anyone else designing a minimal size (as big as the Joule itself) expansion (carrier) board for joule and would be interested to sell, please contact me. For example an example of minimal board design for Nvidia jetson tx2 (unfortunately Jetson Tx2 is a bit big for me) Elroy Carrier for NVIDIA® Jetson™ TX2 & Jetson™ TX1 - Connect Tech Inc.

             

            Best regards

            Mehmet

            • 3. Re: Designing a minimal expansion board - Boot problem
              fweerdenburg@eltan.com

              Hello Mehmet,

               

              Have you tried using USB keyboard to hit F2 to enter BIOS Setup?

               

              Your minimal carrier board does not have 3.0 Volt CMOS battery, to back up the real time clock.

               

              Best regards,

              Frank van Weerdenburg

              ELTAN BV

              • 4. Re: Designing a minimal expansion board - Boot problem
                Mehmet

                Dear Frank,

                 

                Thank you very much for your response. I tried to hit F2 to enter BIOS. But, nothing different happened. (Usual shutdown after 2 seconds). However, I need to do more controlled experiments. For example, I don't know what happens in the official expansion board when output is only from serial port. (I mean maybe the USB port is not working properly) Unfortunately, I am in vacation now. I will be able to continue in 2 weeks. I will reply again as soon as I can do more experiments.

                 

                I don't need real time clock. Even in the official expansion board, I have not installed the real time clock battery. In the worst case (if I need), I can synchronize time from some time server at boot up (I have wireless internet connection). Does the 3.0V CMOS battery has any other enabling function (other than RTC power)?

                 

                Best regards

                Mehmet

                • 5. Re: Designing a minimal expansion board - Boot problem
                  Intel Corporation
                  This message was posted on behalf of Intel Corporation

                  Hi Mahmet,
                   
                  In regards to your 3.0V CMOS battery question, I was looking at the expansion board schematics, and the RTC battery circuit on page 23 shows that it’s only being used for +VRTC.
                   
                  Hope this information helps.
                   
                  Regards,
                  -Yermi A.
                   

                  • 6. Re: Designing a minimal expansion board - Boot problem
                    Mehmet

                    Dear Frank and the whole community,

                     

                    Finally I am back in the office and run a few more tests on my custom expansion board.

                     

                    When I hit F2 (on a keyboard directly attached to the Joule) quick enough, Joule enters to the BIOS screen. However, the power of Joule is cut (my exact mysterious problem) while loading the BIOS screen. I log the Joule output through the serial terminal. I am attaching the screenshot of what I can get the most. If I am not quick enough, Joule shuts down before BIOS screen appears. I believe my problem is independent of the BIOS screen. The shutdown occurs (seemingly / I have no precise timing, only observations) at a specific time after the power on.

                     

                    When I hit F2 (on a keyboard attached to the host PC [Ubuntu, connection through the serial debug port) quick enough, module starts booting. However, as soon as booting begins (I can get a few dozen of lines lines), Joule shuts down. I am also attaching serial logs during boots from the original expansion board and my custom expansion board (until the Joule's power is cut). They are exactly the same until the power off instant! 

                     

                    I believe the problem is related with the PMIC on the Joule. I feel like I cannot satisfy PMIC (on the Joule module) and it shuts down the module. For example: wrong power button or DnX pin or ??? connection. 

                     

                    Whatever the problem, it is related with my design. I repeated all of my tests with a second prototype and got exactly the same results. I really run out of ideas on what to test next. I would appreciate any comments / help / suggestions.

                     

                    Thanks a lot for all answers so far. They mean a lot.

                    Best regards

                    Mehmet