05 Jun, 2017

8 commits


17 May, 2017

24 commits

  • Remove 'pad-offset' of soc_gpio_s5_0, soc_gpio_s5_1, soc_gpio_s5_2,
    pin_usb_host_en0 and pin_usb_host_en1. These offsets are actually
    wrong. Correct value should be added by 0x2000, but since they
    are supposed to be 'mode-gpio', 'pad-offset' is not needed at all.

    Signed-off-by: Bin Meng
    Reviewed-by: Stefan Roese
    Reviewed-by: Simon Glass

    Bin Meng
     
  • Add a device-tree property use-lvl-write-cache that will cause
    writes to lvl to be cached instead of read from lvl before each
    write. This is required on some platforms that have the register
    implemented as dual read/write (such as Baytrail).

    Prior to this fix the blue USB port on the Minnowboard Max was
    unusable since USB_HOST_EN0 was set high then immediately set
    low when USB_HOST_EN1 was written.

    This also resolves the 'gpio clear | set' command warning like:
    "Warning: value of pin is still 0"

    Signed-off-by: George McCollister

    Signed-off-by: Bin Meng
    Reviewed-by: Stefan Roese
    Reviewed-by: Simon Glass

    Bin Meng
     
  • This patch adds a call to dm_remove_devices_flags() to
    bootm_announce_and_cleanup() so that drivers that have one of the removal
    flags set (e.g. DM_FLAG_ACTIVE_DMA_REMOVE) in their driver struct, may
    do some last-stage cleanup before the OS is started.

    Signed-off-by: Stefan Roese
    Cc: Bin Meng
    Reviewed-by: Simon Glass

    Stefan Roese
     
  • Convert the pci_mmc driver over to driver model and migrate all x86 boards
    that use it.

    Signed-off-by: Simon Glass
    Reviewed-by: Bin Meng
    Tested-by: Bin Meng

    Simon Glass
     
  • U-Boot sets up the real mode interrupt handler stubs starting from
    address 0x1000. In most cases, the first 640K (0x00000 - 0x9ffff)
    system memory is reported as system RAM in E820 table to the OS.
    (see install_e820_map() implementation for each platform). So OS
    can use these memories whatever it wants.

    If U-Boot is in an S3 resume path, care must be taken not to corrupt
    these memorie otherwise OS data gets lost. Testing shows that, on
    Microsoft Windows 10 on Intel Baytrail its wake up vector happens to
    be installed at the same address 0x1000. While on Linux its wake up
    vector does not overlap this memory range, but after resume kernel
    checks low memory range per config option CONFIG_X86_RESERVE_LOW
    which is 64K by default to see whether a memory corruption occurs
    during the suspend/resume (it's harmless, but warnings are shown
    in the kernel dmesg logs).

    We cannot simply mark the these memory as reserved in E820 table
    because such configuration makes GRUB complain: unable to allocate
    real mode page. Hence we choose to back up these memories to the
    place where we reserved on our stack for our S3 resume work.
    Before jumping to OS wake up vector, we need restore the original
    content there.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass
    Tested-by: Stefan Roese

    Bin Meng
     
  • Introduce a new CONFIG_S3_VGA_ROM_RUN option so that U-Boot can
    bypass executing VGA roms in S3.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass
    Tested-by: Stefan Roese

    Bin Meng
     
  • Before jumping to OS waking up vector, we need turn on ACPI mode
    for S3, just like what we do for a normal boot.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass
    Tested-by: Stefan Roese

    Bin Meng
     
  • To do something more in acpi_resume() like turning on ACPI mode,
    we need locate ACPI FADT table pointer first. But currently this
    is done in acpi_find_wakeup_vector().

    This changes acpi_resume() signature to accept ACPI FADT pointer
    as the parameter. A new API acpi_find_fadt() is introduced, and
    acpi_find_wakeup_vector() is updated to use FADT pointer as the
    parameter as well.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass
    Tested-by: Stefan Roese

    Bin Meng
     
  • enter_acpi_mode() is useful on other boot path like S3 resume, so
    make it public.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass
    Tested-by: Stefan Roese

    Bin Meng
     
  • In enter_acpi_mode() PM1_CNT register is changed to PM1_CNT_SCI_EN
    directly without preserving its previous value. Update to change
    the register access to read-modify-write (RMW).

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass
    Tested-by: Stefan Roese

    Bin Meng
     
  • Call board_final_cleanup() before write_tables(), so that anything
    done in board_final_cleanup() on a normal boot path is also done
    on an S3 resume path.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass
    Tested-by: Stefan Roese

    Bin Meng
     
  • When SeaBIOS is being used, U-Boot reserves a memory area to be
    used for configuration tables like ACPI. But it should not be
    cleared otherwise ACPI table will be missing.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass
    Tested-by: Stefan Roese

    Bin Meng
     
  • At the end of pre-relocation phase, save the new stack address
    to CMOS and use it as the stack on next S3 boot for fsp_init()
    continuation function.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass
    Tested-by: Stefan Roese

    Bin Meng
     
  • This adds a library that provides CMOS (inside RTC SRAM) access
    at a very early stage when driver model is not available yet.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass
    Tested-by: Stefan Roese

    Bin Meng
     
  • In an S3 resume path, U-Boot does everything like a cold boot except
    in the last_stage_init() it jumps to the OS resume vector.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass
    Tested-by: Stefan Roese

    Bin Meng
     
  • This adds one API acpi_find_wakeup_vector() to locate OS wakeup
    vector from the ACPI FACS table, to be used in the S3 boot path.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass
    Tested-by: Stefan Roese

    Bin Meng
     
  • This adds a wake up stub before jumping to OS wake up vector.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass
    Tested-by: Stefan Roese

    Bin Meng
     
  • U-Boot itself as well as everything that is consumed by U-Boot (like
    heap, stack, dtb, etc) needs to be reserved and reported in the E820
    table when S3 resume is on.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass
    Tested-by: Stefan Roese

    Bin Meng
     
  • When U-Boot is built without ACPI S3 support, it should not report
    S3 in the ACPI table otherwise when kernel does STR it won't work.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass
    Tested-by: Stefan Roese

    Bin Meng
     
  • Add one member in the global data to store previous sleep state,
    and display the state during boot in print_cpuinfo().

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass
    Tested-by: Stefan Roese

    Bin Meng
     
  • When ACPI S3 resume is turned on, we should pass different boot mode
    to FSP init instead of default BOOT_FULL_CONFIG.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass
    Tested-by: Stefan Roese

    Bin Meng
     
  • This adds OS_RESUME (0x40) and RESUME_FAILURE (0xed) post codes.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass
    Tested-by: Stefan Roese

    Bin Meng
     
  • This adds APIs for determining previous sleep state from ACPI I/O
    registers, as well as clearing sleep state on BayTrail SoC.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass
    Tested-by: Stefan Roese

    Bin Meng
     
  • This introduces a Kconfig option for ACPI S3 resume, as well as a
    header file to include anything related to ACPI S3 resume.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass
    Tested-by: Stefan Roese

    Bin Meng
     

01 May, 2017

2 commits


18 Apr, 2017

2 commits


10 Apr, 2017

4 commits

  • This simple PMU driver allows to tyrn power on and off for selected
    devices. In particularly Intel Tangier needs to power on SDHCI
    controllers in order to access to them during board initialization.

    In the future it might be expanded to cover other Intel MID platforms,
    that's why it's located under arch/x86/lib and called pmu.c.

    Signed-off-by: Felipe Balbi
    Signed-off-by: Andy Shevchenko
    Reviewed-by: Simon Glass

    Andy Shevchenko
     
  • Intel MID platforms have few microcontrollers inside SoC, one of them
    is so called System Controller Unit (SCU).

    Here is the driver to communicate with microcontroller.

    Signed-off-by: Vincent Tinelli
    Signed-off-by: Felipe Balbi
    Signed-off-by: Andy Shevchenko
    Acked-by: Simon Glass

    Felipe Balbi
     
  • Checking 'is_zimage' at this time will always fail and therefore booting
    a FIT style image will always lead to this error message:

    "## Kernel loading failed (missing x86 kernel setup) ..."

    This change now removes this check and booting of FIT images works just
    fine.

    Signed-off-by: Stefan Roese
    Cc: Simon Glass
    Cc: Bin Meng
    Reviewed-by: Simon Glass
    Reviewed-by: Bin Meng

    Stefan Roese
     
  • Since we now have the file names configurable via Kconfig for the flash
    descriptor and intel-me files, add these from Kconfig in the corresponding
    dts nodes.

    Signed-off-by: Stefan Roese
    Cc: Bin Meng
    Cc: Simon Glass
    Reviewed-by: Bin Meng

    Stefan Roese