source "arch/powerpc/platforms/Kconfig.cputype" config PPC32 bool default y if !PPC64 config 32BIT bool default y if PPC32 config 64BIT bool default y if PPC64 config WORD_SIZE int default 64 if PPC64 default 32 if !PPC64 config ARCH_PHYS_ADDR_T_64BIT def_bool PPC64 || PHYS_64BIT config ARCH_DMA_ADDR_T_64BIT def_bool ARCH_PHYS_ADDR_T_64BIT config MMU bool default y config HAVE_SETUP_PER_CPU_AREA def_bool PPC64 config NEED_PER_CPU_EMBED_FIRST_CHUNK def_bool PPC64 config NR_IRQS int "Number of virtual interrupt numbers" range 32 32768 default "512" help This defines the number of virtual interrupt numbers the kernel can manage. Virtual interrupt numbers are what you see in /proc/interrupts. If you configure your system to have too few, drivers will fail to load or worse - handle with care. config STACKTRACE_SUPPORT bool default y config HAVE_LATENCYTOP_SUPPORT def_bool y config TRACE_IRQFLAGS_SUPPORT bool default y config LOCKDEP_SUPPORT bool default y config RWSEM_GENERIC_SPINLOCK bool default y if PREEMPT_RT_FULL config RWSEM_XCHGADD_ALGORITHM bool default y if !PREEMPT_RT_FULL config GENERIC_LOCKBREAK bool default y depends on SMP && PREEMPT config ARCH_HAS_ILOG2_U32 bool default y config ARCH_HAS_ILOG2_U64 bool default y if 64BIT config GENERIC_HWEIGHT bool default y config ARCH_HAS_DMA_SET_COHERENT_MASK bool config PPC bool default y select ARCH_MIGHT_HAVE_PC_PARPORT select ARCH_MIGHT_HAVE_PC_SERIO select BINFMT_ELF select ARCH_HAS_ELF_RANDOMIZE select OF select OF_EARLY_FLATTREE select OF_RESERVED_MEM select HAVE_FTRACE_MCOUNT_RECORD select HAVE_DYNAMIC_FTRACE select HAVE_FUNCTION_TRACER select HAVE_FUNCTION_GRAPH_TRACER select SYSCTL_EXCEPTION_TRACE select ARCH_WANT_OPTIONAL_GPIOLIB select VIRT_TO_BUS if !PPC64 select HAVE_IDE select HAVE_IOREMAP_PROT select HAVE_EFFICIENT_UNALIGNED_ACCESS if !CPU_LITTLE_ENDIAN select HAVE_KPROBES select HAVE_ARCH_KGDB select HAVE_KRETPROBES select HAVE_ARCH_TRACEHOOK select HAVE_MEMBLOCK select HAVE_MEMBLOCK_NODE_MAP select HAVE_DMA_ATTRS select HAVE_DMA_API_DEBUG select HAVE_OPROFILE select HAVE_DEBUG_KMEMLEAK select ARCH_HAS_SG_CHAIN select GENERIC_ATOMIC64 if PPC32 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE select HAVE_PERF_EVENTS select HAVE_REGS_AND_STACK_ACCESS_API select HAVE_HW_BREAKPOINT if PERF_EVENTS && PPC_BOOK3S_64 select ARCH_WANT_IPC_PARSE_VERSION select SPARSE_IRQ select IRQ_DOMAIN select GENERIC_IRQ_SHOW select GENERIC_IRQ_SHOW_LEVEL select IRQ_FORCED_THREADING select HAVE_RCU_TABLE_FREE if SMP select HAVE_SYSCALL_TRACEPOINTS select HAVE_BPF_JIT select HAVE_ARCH_JUMP_LABEL select ARCH_HAVE_NMI_SAFE_CMPXCHG select ARCH_HAS_GCOV_PROFILE_ALL select GENERIC_SMP_IDLE_THREAD select GENERIC_CMOS_UPDATE select GENERIC_TIME_VSYSCALL_OLD select GENERIC_CLOCKEVENTS select GENERIC_CLOCKEVENTS_BROADCAST if SMP select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST select GENERIC_STRNCPY_FROM_USER select GENERIC_STRNLEN_USER select HAVE_PREEMPT_LAZY select HAVE_MOD_ARCH_SPECIFIC select MODULES_USE_ELF_RELA select CLONE_BACKWARDS select ARCH_USE_BUILTIN_BSWAP select OLD_SIGSUSPEND select OLD_SIGACTION if PPC32 select HAVE_DEBUG_STACKOVERFLOW select HAVE_IRQ_EXIT_ON_IRQ_STACK select ARCH_USE_CMPXCHG_LOCKREF if PPC64 select HAVE_ARCH_AUDITSYSCALL select ARCH_SUPPORTS_ATOMIC_RMW select DCACHE_WORD_ACCESS if PPC64 && CPU_LITTLE_ENDIAN select NO_BOOTMEM select HAVE_GENERIC_RCU_GUP select HAVE_PERF_EVENTS_NMI if PPC64 select EDAC_SUPPORT select EDAC_ATOMIC_SCRUB select ARCH_HAS_DMA_SET_COHERENT_MASK select HAVE_ARCH_SECCOMP_FILTER config GENERIC_CSUM def_bool CPU_LITTLE_ENDIAN config EARLY_PRINTK bool default y config PANIC_TIMEOUT int default 180 config COMPAT bool default y if PPC64 select COMPAT_BINFMT_ELF select ARCH_WANT_OLD_COMPAT_IPC select COMPAT_OLD_SIGACTION config SYSVIPC_COMPAT bool depends on COMPAT && SYSVIPC default y # All PPC32s use generic nvram driver through ppc_md config GENERIC_NVRAM bool default y if PPC32 config SCHED_OMIT_FRAME_POINTER bool default y config ARCH_MAY_HAVE_PC_FDC bool default PCI config PPC_UDBG_16550 bool default n config GENERIC_TBSYNC bool default y if PPC32 && SMP default n config AUDIT_ARCH bool default y config GENERIC_BUG bool default y depends on BUG config SYS_SUPPORTS_APM_EMULATION default y if PMAC_APM_EMU bool config EPAPR_BOOT bool help Used to allow a board to specify it wants an ePAPR compliant wrapper. default n config DEFAULT_UIMAGE bool help Used to allow a board to specify it wants a uImage built by default default n config ARCH_HIBERNATION_POSSIBLE bool default y config ARCH_SUSPEND_POSSIBLE def_bool y depends on ADB_PMU || PPC_EFIKA || PPC_LITE5200 || PPC_83xx || \ (PPC_85xx && !PPC_E500MC) || PPC_86xx || PPC_PSERIES \ || 44x || 40x config PPC_DCR_NATIVE bool default n config PPC_DCR_MMIO bool default n config PPC_DCR bool depends on PPC_DCR_NATIVE || PPC_DCR_MMIO default y config PPC_OF_PLATFORM_PCI bool depends on PCI depends on PPC64 # not supported on 32 bits yet default n config ARCH_SUPPORTS_DEBUG_PAGEALLOC depends on PPC32 || PPC_STD_MMU_64 def_bool y config ARCH_SUPPORTS_UPROBES def_bool y config PPC_ADV_DEBUG_REGS bool depends on 40x || BOOKE default y config PPC_ADV_DEBUG_IACS int depends on PPC_ADV_DEBUG_REGS default 4 if 44x default 2 config PPC_ADV_DEBUG_DACS int depends on PPC_ADV_DEBUG_REGS default 2 config PPC_ADV_DEBUG_DVCS int depends on PPC_ADV_DEBUG_REGS default 2 if 44x default 0 config PPC_ADV_DEBUG_DAC_RANGE bool depends on PPC_ADV_DEBUG_REGS && 44x default y config PPC_EMULATE_SSTEP bool default y if KPROBES || UPROBES || XMON || HAVE_HW_BREAKPOINT config ZONE_DMA32 bool default y if PPC64 config PGTABLE_LEVELS int default 2 if !PPC64 default 3 if PPC_64K_PAGES default 4 source "init/Kconfig" source "kernel/Kconfig.freezer" source "arch/powerpc/sysdev/Kconfig" source "arch/powerpc/platforms/Kconfig" menu "Kernel options" c
heat_template_version: 2016-10-14

description: >
  Software Config to drive os-net-config with 2 bonded nics on a bridge.

parameters:
  BondInterfaceOvsOptions:
    default: ''
    description: |
      The ovs_options string for the bond interface. Set things like
      lacp=active and/or bond_mode=balance-slb using this option.
    type: string
    constraints:
      - allowed_pattern: "^((?!balance.tcp).)*$"
        description: |
          The balance-tcp bond mode is known to cause packet loss and
          should not be used in BondInterfaceOvsOptions.
  ControlPlaneIp:
    default: ''
    description: IP address/subnet on the ctlplane network
    type: string
  ExternalIpSubnet:
    default: ''
    description: IP address/subnet on the external network
    type: string
  InternalApiIpSubnet:
    default: ''
    description: IP address/subnet on the internal API network
    type: string
  StorageIpSubnet:
    default: ''
    description: IP address/subnet on the storage network
    type: string
  StorageMgmtIpSubnet:
    default: ''
    description: IP address/subnet on the storage mgmt network
    type: string
  TenantIpSubnet:
    default: ''
    description: IP address/subnet on the tenant network
    type: string
  ManagementIpSubnet:
    default: ''
    description: IP address/subnet on the management network
    type: string

resources:
  OsNetConfigImpl:
    type: OS::Heat::StructuredConfig
    properties:
      group: os-apply-config
      config:
        os_net_config:
          network_config:
            -
              type: ovs_bridge
              name: {get_input: bridge_name}
              use_dhcp: true
              # Can't do this yet: https://bugs.launchpad.net/heat/+bug/1344284
              #ovs_extra:
              #  - list_join:
              #    - ' '
              #    - - br-set-external-id
              #      - {get_input: bridge_name}
              #      - bridge-id
              #      - {get_input: bridge_name}
              members:
                -
                  type: ovs_bond
                  name: bond1
                  use_dhcp: true
                  ovs_options: {get_param: BondInterfaceOvsOptions}
                  members:
                    # os-net-config translates nic1 => em1 (for example)
                    -
                      type: interface
                      name: nic1
                    -
                      type: interface
                      name: nic2

outputs:
  OS::stack_id:
    description: The OsNetConfigImpl resource.
    value: {get_resource: OsNetConfigImpl}
s builds a kernel image that is capable of running at the location the kernel is loaded at, without any alignment restrictions. This feature is a superset of DYNAMIC_MEMSTART and hence overrides it. One use is for the kexec on panic case where the recovery kernel must live at a different physical address than the primary kernel. Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address it has been loaded at and the compile time physical addresses CONFIG_PHYSICAL_START is ignored. However CONFIG_PHYSICAL_START setting can still be useful to bootwrappers that need to know the load address of the kernel (eg. u-boot/mkimage). config RELOCATABLE_PPC32 def_bool y depends on PPC32 && RELOCATABLE config PAGE_OFFSET_BOOL bool "Set custom page offset address" depends on ADVANCED_OPTIONS help This option allows you to set the kernel virtual address at which the kernel will map low memory. This can be useful in optimizing the virtual memory layout of the system. Say N here unless you know what you are doing. config PAGE_OFFSET hex "Virtual address of memory base" if PAGE_OFFSET_BOOL default "0xc0000000" config KERNEL_START_BOOL bool "Set custom kernel base address" depends on ADVANCED_OPTIONS help This option allows you to set the kernel virtual address at which the kernel will be loaded. Normally this should match PAGE_OFFSET however there are times (like kdump) that one might not want them to be the same. Say N here unless you know what you are doing. config KERNEL_START hex "Virtual address of kernel base" if KERNEL_START_BOOL default PAGE_OFFSET if PAGE_OFFSET_BOOL default "0xc2000000" if CRASH_DUMP && !NONSTATIC_KERNEL default "0xc0000000" config PHYSICAL_START_BOOL bool "Set physical address where the kernel is loaded" depends on ADVANCED_OPTIONS && FLATMEM && FSL_BOOKE help This gives the physical address where the kernel is loaded. Say N here unless you know what you are doing. config PHYSICAL_START hex "Physical address where the kernel is loaded" if PHYSICAL_START_BOOL default "0x02000000" if PPC_STD_MMU && CRASH_DUMP && !NONSTATIC_KERNEL default "0x00000000" config PHYSICAL_ALIGN hex default "0x04000000" if FSL_BOOKE help This value puts the alignment restrictions on physical address where kernel is loaded and run from. Kernel is compiled for an address which meets above alignment restriction. config TASK_SIZE_BOOL bool "Set custom user task size" depends on ADVANCED_OPTIONS help This option allows you to set the amount of virtual address space allocated to user tasks. This can be useful in optimizing the virtual memory layout of the system. Say N here unless you know what you are doing. config TASK_SIZE hex "Size of user task space" if TASK_SIZE_BOOL default "0x80000000" if PPC_8xx default "0xc0000000" config CONSISTENT_SIZE_BOOL bool "Set custom consistent memory pool size" depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE help This option allows you to set the size of the consistent memory pool. This pool of virtual memory is used to make consistent memory allocations. config CONSISTENT_SIZE hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL default "0x00200000" if NOT_COHERENT_CACHE config PIN_TLB bool "Pinned Kernel TLBs (860 ONLY)" depends on ADVANCED_OPTIONS && 8xx endmenu if PPC64 config RELOCATABLE bool "Build a relocatable kernel" depends on !COMPILE_TEST select NONSTATIC_KERNEL help This builds a kernel image that is capable of running anywhere in the RMA (real memory area) at any 16k-aligned base address. The kernel is linked as a position-independent executable (PIE) and contains dynamic relocations which are processed early in the bootup process. One use is for the kexec on panic case where the recovery kernel must live at a different physical address than the primary kernel. # This value must have zeroes in the bottom 60 bits otherwise lots will break config PAGE_OFFSET hex default "0xc000000000000000" config KERNEL_START hex default "0xc000000000000000" config PHYSICAL_START hex default "0x00000000" endif config ARCH_RANDOM def_bool n source "net/Kconfig" source "drivers/Kconfig" source "fs/Kconfig" source "arch/powerpc/sysdev/qe_lib/Kconfig" source "lib/Kconfig" source "arch/powerpc/Kconfig.debug" source "security/Kconfig" config KEYS_COMPAT bool depends on COMPAT && KEYS default y source "crypto/Kconfig" config PPC_LIB_RHEAP bool source "arch/powerpc/kvm/Kconfig"