[linux-yocto] [PATCH v3] Meta: add qemuppc64 bsp config

akuster808 akuster808 at gmail.com
Mon Sep 1 14:13:25 PDT 2014


Paul,

I appreciate time you took to respond and the feedback is enlightening 
to this process. I had a feeling I would have to go down this path 
(being lazy on my part).

I will be submitting V4 soon which I hope will meet the requirements.

kind regards,
Armin

On 08/31/2014 08:18 AM, Paul Gortmaker wrote:
> [[linux-yocto] [PATCH v3] Meta: add qemuppc64 bsp config] On 30/08/2014 (Sat 23:03) Armin Kuster wrote:
>
>> This is the initial meta data for qemu ppc64 bsp that supports
>> the IBM pseries power* arch which is supported in Qemu.
>>
>> V2: Pruned config
>>    : Added standard.scc
>>
>> V3: More cleanup
>>    : Added cfg/virtio.scc
>>    : Added features/input/input.scc
>>    : Added cfg/8250.scc
>>
>> Signed-off-by: Armin Kuster <akuster808 at gmail.com>
>> ---
>>   .../bsp/qemu-ppc64/qemu-ppc64-standard.scc         |  16 +
>>   .../cfg/kernel-cache/bsp/qemu-ppc64/qemu-ppc64.cfg | 641 +++++++++++++++++++++
>>   .../cfg/kernel-cache/bsp/qemu-ppc64/qemu-ppc64.scc |   2 +
>>   3 files changed, 659 insertions(+)
>>   create mode 100644 meta/cfg/kernel-cache/bsp/qemu-ppc64/qemu-ppc64-standard.scc
>>   create mode 100644 meta/cfg/kernel-cache/bsp/qemu-ppc64/qemu-ppc64.cfg
>>   create mode 100644 meta/cfg/kernel-cache/bsp/qemu-ppc64/qemu-ppc64.scc
>>
>> diff --git a/meta/cfg/kernel-cache/bsp/qemu-ppc64/qemu-ppc64-standard.scc b/meta/cfg/kernel-cache/bsp/qemu-ppc64/qemu-ppc64-standard.scc
>> new file mode 100644
>> index 0000000..f01e410
>> --- /dev/null
>> +++ b/meta/cfg/kernel-cache/bsp/qemu-ppc64/qemu-ppc64-standard.scc
>> @@ -0,0 +1,16 @@
>> +define KMACHINE qemuppc64
>> +define KTYPE standard
>> +define KARCH powerpc
>> +include ktypes/standard/standard.scc
>> +
>> +branch qemuppc
>> +
>> +include cfg/virtio.scc
>> +include features/input/input.scc
>> +inclide cfg/8250.scc
>> +
>> +include qemu-ppc64.scc
>> +
>> +# default policy for standard kernels
>> +include features/latencytop/latencytop.scc
>> +
>> diff --git a/meta/cfg/kernel-cache/bsp/qemu-ppc64/qemu-ppc64.cfg b/meta/cfg/kernel-cache/bsp/qemu-ppc64/qemu-ppc64.cfg
>> new file mode 100644
>> index 0000000..48a94f8
>> --- /dev/null
>> +++ b/meta/cfg/kernel-cache/bsp/qemu-ppc64/qemu-ppc64.cfg
>> @@ -0,0 +1,641 @@
>
> It seems you've done a few passes to cut this down from a full
> defconfig; perhaps I can give a few comments that will help take it a
> bit further.  At 640 lines, it is better than a full defconfig, but
> ideally it could be less than 100 lines and still be giving you a better
> solution to what I think you want as a final solution.
>
> General comments - things that are autodetected and/or look like the
> defaults need not be specified.  It is better to take the defaults and
> have your BSP keep with the times vs. being frozen in time, when it
> comes to the secondary options that aren't critical to core boot up.
> Meaning specify CPU selection, IRQ chip type and core hardware etc. but
> leave the trivialities to track defaults.  A good example of this was the
> old /dev/hda vs /dev/sda transition ; those who specified the legacy
> PATA options got frozen in time on the abandoned kernel code.
>
> Other examples:  Anything that starts with CONFIG_ARCH_HAS or
> CONFIG_ARCH_SUPPORTS are internally set options that are based off your
> core CPU and ARCH choices.  Specifying them is redundant.
>
> Next - make your default policy to not don't bother specifying options
> that aren't hardware specific.  Then you can go back in and add the few
> items that actually do matter -- e.g. say your hardware booted from MTD
> and so you'd found you really needed to ensure CONFIG_JFFS2_FS was set
> for your flash filesystem, etc.
>
> Why not specify the defaults?  In addition to not getting frozen in
> time, imagine thinking beyond this one BSP.  Think of families of BSPs.
> You could say the qemu BSPs across all arch represent one kind of
> family.  Or intel BSPs with slightly different motherboard peripherals,
> but all sharing the same core as another family.  Or an embedded company
> who has a product line with a specific feature set support as another.
>
> If you only specify the core hardware in your BSP, then it is highly
> adaptible.  You plug your hardware fragment underneath the features
> specified by the generic (non-hardware) fragment(s) for a family XYZ
> BSP, and presto you now have your own XYZ variant for your hardware.
> But if CONFIG_KEXEC=y breaks XYZ, and you've called out CONFIG_KEXEC
> in your BSP specific fragment (for no real reason), well you won't
> have a working XYZ BSP anymore; it won't adapt to the family settings.
>
> I'll put some additional comments inline.
>
>> +CONFIG_PPC64=y
>> +# Processor support
>
> comment not at top of this block ?
>
>> +CONFIG_PPC_BOOK3S_64=y
>> +CONFIG_GENERIC_CPU=y
>> +CONFIG_PPC_BOOK3S=y
>> +CONFIG_POWER3=y
>> +CONFIG_POWER4=y
>
> Need both for qemu?  Which one specifically are you emulating?
>
>> +CONFIG_PPC_FPU=y
>> +CONFIG_ALTIVEC=y
>> +CONFIG_VSX=y
>> +CONFIG_PPC_STD_MMU=y
>> +CONFIG_PPC_STD_MMU_64=y
>
> Both above should be defaults since you've already said PPC64
>
>> +CONFIG_PPC_MM_SLICES=y
>> +CONFIG_PPC_HAVE_PMU_SUPPORT=y
>
> See CONFIG_..._HAS and CONFIG_..._SUPPORTS mentioned above.
>
>> +CONFIG_PPC_PERF_CTRS=y
>> +CONFIG_SMP=y
>> +CONFIG_NR_CPUS=2048
>> +CONFIG_PPC_DOORBELL=y
>> +CONFIG_CPU_BIG_ENDIAN=y
>> +CONFIG_64BIT=y
>> +CONFIG_WORD_SIZE=64
>
> All three above should be defaults for PPC64.  If you look at the
> Kconfig file where "bool PPC64" lives, you will see it "select" a bunch
> of other options, and I suspect the above three will be there or be
> selected as children by parents found selected there.
>
>> +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
>> +CONFIG_ARCH_DMA_ADDR_T_64BIT=y
>> +CONFIG_MMU=y
>
> Only some fringe super embedded type processors are non-MMU.
> Things with tiny amounts of ram and no CPU strength.
>
>> +CONFIG_HAVE_SETUP_PER_CPU_AREA=y
>> +CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
>
> More internal "HAS" "SELECT" and "NEED" type autoset vars.
>
>> +CONFIG_NR_IRQS=512
>> +CONFIG_STACKTRACE_SUPPORT=y
>> +CONFIG_HAVE_LATENCYTOP_SUPPORT=y
>> +CONFIG_TRACE_IRQFLAGS_SUPPORT=y
>> +CONFIG_LOCKDEP_SUPPORT=y
>> +CONFIG_RWSEM_XCHGADD_ALGORITHM=y
>> +CONFIG_ARCH_HAS_ILOG2_U32=y
>> +CONFIG_ARCH_HAS_ILOG2_U64=y
>
> ARCH_HAS ....
>
>> +CONFIG_GENERIC_HWEIGHT=y
>> +CONFIG_PPC=y
>> +CONFIG_PANIC_TIMEOUT=180
>
> THis means that the kernel will auto reboot after 180s if it panic'd
> (assuming that it still is capable of doing so.)  That seems more like a
> deployed server policy setting and not something that people would care
> about for an emulated target (i.e. don't specify things that you really
> don't care about one way or the other.)
>
>> +CONFIG_COMPAT=y
>> +CONFIG_SYSVIPC_COMPAT=y
>> +CONFIG_SCHED_OMIT_FRAME_POINTER=y
>> +CONFIG_ARCH_MAY_HAVE_PC_FDC=y
>
> another autoselected thing.
>
>> +CONFIG_PPC_OF=y
>> +CONFIG_PPC_UDBG_16550=y
>> +CONFIG_AUDIT_ARCH=y
>> +CONFIG_GENERIC_BUG=y
>> +CONFIG_EPAPR_BOOT=y
>> +CONFIG_ARCH_HIBERNATION_POSSIBLE=y
>> +CONFIG_ARCH_SUSPEND_POSSIBLE=y
>> +CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
>> +CONFIG_ARCH_SUPPORTS_UPROBES=y
>
> Four pack of internals.
>
>> +CONFIG_PPC_EMULATE_SSTEP=y
>> +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
>
> Smells like the default to me.
>
>> +CONFIG_IRQ_WORK=y
>> +
>> +
>> +# Platform support
>> +#
>> +CONFIG_PPC_POWERNV=y
>> +CONFIG_PPC_POWERNV_RTAS=y
>> +CONFIG_PPC_PSERIES=y
>> +CONFIG_PPC_SPLPAR=y
>> +CONFIG_PSERIES_MSI=y
>> +CONFIG_PSERIES_ENERGY=y
>> +CONFIG_SCANLOG=m
>> +CONFIG_IO_EVENT_IRQ=y
>> +CONFIG_LPARCFG=y
>> +CONFIG_PPC_SMLPAR=y
>> +CONFIG_CMM=y
>> +CONFIG_DTL=y
>> +CONFIG_PPC_NATIVE=y
>> +CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
>> +CONFIG_PPC_SMP_MUXED_IPI=y
>> +CONFIG_MPIC=y
>> +CONFIG_PPC_I8259=y
>
> I suspect some of the above are not critical or not matching the emulated
> target ; for example, I don't think an i8259 PIC was super common on PPC
> platforms ; I do recall it being on some of the Freescale 85xx full size
> ATX reference boards but not so much elsewhere.
>
>> +CONFIG_PPC_RTAS=y
>> +CONFIG_RTAS_ERROR_LOGGING=y
>> +CONFIG_PPC_RTAS_DAEMON=y
>> +CONFIG_RTAS_PROC=y
>> +CONFIG_RTAS_FLASH=m
>> +CONFIG_IBMVIO=y
>> +CONFIG_IBMEBUS=y
>> +CONFIG_EEH=y
>> +CONFIG_PPC_P7_NAP=y
>> +CONFIG_PPC_INDIRECT_PIO=y
>> +
>> +#
>> +# POWERPC CPU Idle Drivers
>> +#
>> +CONFIG_PSERIES_CPUIDLE=y
>> +CONFIG_POWERNV_CPUIDLE=y
>> +
>> +CONFIG_BINFMT_MISC=m
>> +CONFIG_COREDUMP=y
>
> Probably take defaults on those.
>
>> +CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y
>> +CONFIG_PPC_TRANSACTIONAL_MEM=y
>> +CONFIG_IOMMU_HELPER=y
>> +CONFIG_HOTPLUG_CPU=y
>> +CONFIG_ARCH_CPU_PROBE_RELEASE=y
>> +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
>> +CONFIG_ARCH_HAS_WALK_MEMORY=y
>> +CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
>> +CONFIG_PPC64_SUPPORTS_MEMORY_FAILURE=y
>
> Another four that look like internal/defaults.
>
>> +CONFIG_KEXEC=y
>
> You really use this?
>
>> +CONFIG_IRQ_ALL_CPUS=y
>> +CONFIG_NUMA=y
>
> Do you really emulate non uniform memory access?
>
>> +CONFIG_NODES_SHIFT=8
>> +CONFIG_ARCH_SELECT_MEMORY_MODEL=y
>> +CONFIG_ARCH_SPARSEMEM_ENABLE=y
>> +CONFIG_ARCH_SPARSEMEM_DEFAULT=y
>> +CONFIG_SYS_SUPPORTS_HUGETLBFS=y
>> +CONFIG_SELECT_MEMORY_MODEL=y
>> +CONFIG_SPARSEMEM_MANUAL=y
>> +CONFIG_SPARSEMEM=y
>> +CONFIG_NEED_MULTIPLE_NODES=y
>> +CONFIG_HAVE_MEMORY_PRESENT=y
>> +CONFIG_SPARSEMEM_EXTREME=y
>> +CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
>> +CONFIG_SPARSEMEM_VMEMMAP=y
>> +CONFIG_HAVE_MEMBLOCK=y
>> +CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
>> +CONFIG_MEMORY_ISOLATION=y
>> +CONFIG_HAVE_BOOTMEM_INFO_NODE=y
>> +CONFIG_MEMORY_HOTPLUG=y
>> +CONFIG_MEMORY_HOTPLUG_SPARSE=y
>> +CONFIG_MEMORY_HOTREMOVE=y
>> +CONFIG_PAGEFLAGS_EXTENDED=y
>> +CONFIG_SPLIT_PTLOCK_CPUS=4
>> +CONFIG_BALLOON_COMPACTION=y
>> +CONFIG_COMPACTION=y
>> +CONFIG_MIGRATION=y
>> +CONFIG_PHYS_ADDR_T_64BIT=y
>> +CONFIG_ZONE_DMA_FLAG=1
>> +CONFIG_BOUNCE=y
>> +CONFIG_MMU_NOTIFIER=y
>> +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
>> +CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
>> +CONFIG_CROSS_MEMORY_ATTACH=y
>> +CONFIG_CMA=y
>> +CONFIG_ARCH_MEMORY_PROBE=y
>> +CONFIG_NODES_SPAN_OTHER_NODES=y
>> +CONFIG_PPC_HAS_HASH_64K=y
>> +CONFIG_PPC_64K_PAGES=y
>> +CONFIG_FORCE_MAX_ZONEORDER=9
>> +CONFIG_PPC_SUBPAGE_PROT=y
>
> Seeing lots of stuff in the above that smells like defaults or
> internally specified HAS/WANTS/SUPPORTS type stuff.
>
>> +CONFIG_SCHED_SMT=y
>
> Really doing emulation of a core with "hyperthread"?
>
>> +CONFIG_PPC_DENORMALISATION=y
>> +CONFIG_EXTRA_TARGETS=""
>> +CONFIG_SUSPEND=y
>> +CONFIG_SUSPEND_FREEZER=y
>> +CONFIG_PM_SLEEP=y
>> +CONFIG_PM_SLEEP_SMP=y
>> +CONFIG_PM=y
>> +CONFIG_SECCOMP=y
>> +CONFIG_ISA_DMA_API=y
>> +
>> +#
>> +# Bus options
>> +#
>> +CONFIG_ZONE_DMA=y
>> +CONFIG_NEED_DMA_MAP_STATE=y
>> +CONFIG_NEED_SG_DMA_LENGTH=y
>> +CONFIG_GENERIC_ISA_DMA=y
>> +CONFIG_PCI=y
>> +CONFIG_PCI_DOMAINS=y
>> +CONFIG_PCI_SYSCALL=y
>> +CONFIG_PCI_MSI=y
>> +
>> +#
>> +# PCI host controller drivers
>> +#
>> +CONFIG_HOTPLUG_PCI=y
>> +CONFIG_HOTPLUG_PCI_RPA=m
>> +CONFIG_HOTPLUG_PCI_RPA_DLPAR=m
>> +CONFIG_PAGE_OFFSET=0xc000000000000000
>> +CONFIG_KERNEL_START=0xc000000000000000
>> +CONFIG_PHYSICAL_START=0x00000000
>
> Unless you've manually had to tune addrs to get qemu to boot, I'm
> guessing the defaults were sane.
>
>> +CONFIG_ARCH_RANDOM=y
>> +
>> +#
>> +# Generic Driver Options
>
> This comment above is a big flag telling you "I don't really care as
> much anymore about the settings that follow."  You have moved from
> the core CPU and arch type stuff into driver territory.  So at this
> point, your interest should boil down to "have I turned on the hardware
> options for my UART, my ethernet, and whatever hardware my block storage
> devices use?"   Outside of those core hardware settings, everything else
> is of little consequence -- unless you decide to explicitly turn things
> OFF to reduce the footprint (probably not a goal here for qemu.)
>
>> +#
>> +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
>
> Smells like default.
>
>> +CONFIG_DEVTMPFS=y
>> +CONFIG_DEVTMPFS_MOUNT=y
>> +CONFIG_STANDALONE=y
>> +CONFIG_PREVENT_FIRMWARE_BUILD=y
>> +CONFIG_FW_LOADER=y
>> +CONFIG_FIRMWARE_IN_KERNEL=y
>> +CONFIG_EXTRA_FIRMWARE=""
>> +CONFIG_FW_LOADER_USER_HELPER=y
>> +
>> +#
>> +# Bus devices
>> +#
>> +CONFIG_DTC=y
>> +CONFIG_OF=y
>
> I would expect device tree and open firmware to be default for any ppc
> nowadays.
>
>> +
>> +#
>> +# Device Tree and Open Firmware support
>> +#
>> +CONFIG_PROC_DEVICETREE=y
>> +CONFIG_OF_FLATTREE=y
>> +CONFIG_OF_EARLY_FLATTREE=y
>> +CONFIG_OF_DYNAMIC=y
>> +CONFIG_OF_ADDRESS=y
>> +CONFIG_OF_IRQ=y
>> +CONFIG_OF_NET=y
>> +CONFIG_OF_MDIO=y
>> +CONFIG_OF_PCI=y
>> +CONFIG_OF_PCI_IRQ=y
>
> Thes OF variants are probably the defaults too.
>
>> +CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
>
> Internal type setting. Delete.
>
>> +CONFIG_BLK_DEV=y
>> +CONFIG_BLK_DEV_LOOP=y
>> +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
>> +CONFIG_BLK_DEV_NBD=y
>> +CONFIG_BLK_DEV_RAM=y
>> +CONFIG_BLK_DEV_RAM_COUNT=16
>> +CONFIG_BLK_DEV_RAM_SIZE=65536
>> +CONFIG_VIRTIO_BLK=m
>
> Pseudo hardware devices ; unless you are actively using them in your
> qemu use case, then leave them to the "family" type higher level kernel
> configuration fragments.
>
>> +
>> +#
>> +# Intel MIC Card Driver
>
> ?
>
>> +#
>> +CONFIG_HAVE_IDE=y
>> +CONFIG_IDE=y
>
> Is qemu really doing emulation via ancient IDE?  Even if it is, can you
> configure it to be SATA so it isn't so 1990-ish?
>
>> +
>> +#
>> +# Please see Documentation/ide/ide.txt for help/info on IDE drives
>> +#
>> +CONFIG_IDE_XFER_MODE=y
>> +CONFIG_IDE_TIMINGS=y
>> +CONFIG_IDE_ATAPI=y
>> +CONFIG_IDE_GD=y
>> +CONFIG_IDE_GD_ATA=y
>> +CONFIG_BLK_DEV_IDECD=y
>> +CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
>> +CONFIG_IDE_PROC_FS=y
>> +
>> +#
>> +# IDE chipset support/bugfixes
>> +#
>> +CONFIG_BLK_DEV_IDEDMA_SFF=y
>> +
>> +#
>> +# PCI IDE chipsets support
>> +#
>> +CONFIG_BLK_DEV_IDEPCI=y
>> +CONFIG_IDEPCI_PCIBUS_ORDER=y
>> +CONFIG_BLK_DEV_GENERIC=y
>> +CONFIG_BLK_DEV_IDEDMA_PCI=y
>> +CONFIG_BLK_DEV_AMD74XX=y
>> +CONFIG_BLK_DEV_IDEDMA=y
>
> Again, I question the validity of all this ancient IDE stuff.
> It shouldn't be needed, and if it really is, then it should be tuned to
> avoid it and be an emulation of something more modern.
>
>> +
>> +#
>> +# SCSI device support
>> +#
>> +CONFIG_SCSI_MOD=y
>> +CONFIG_RAID_ATTRS=m
>> +CONFIG_SCSI=y
>> +CONFIG_SCSI_DMA=y
>> +CONFIG_SCSI_NETLINK=y
>> +CONFIG_SCSI_PROC_FS=y
>> +
>> +#
>> +# SCSI support type (disk, tape, CD-ROM)
>> +#
>> +CONFIG_BLK_DEV_SD=y
>> +CONFIG_CHR_DEV_ST=y
>
> Tape?  Doubt you need that.
>
>> +CONFIG_BLK_DEV_SR=y
>> +CONFIG_BLK_DEV_SR_VENDOR=y
>> +CONFIG_CHR_DEV_SG=y
>> +CONFIG_SCSI_MULTI_LUN=y
>> +CONFIG_SCSI_CONSTANTS=y
>
> Take defaults on above two and/or let family frags specify it.
>
>> +
>> +#
>> +# SCSI Transports
>> +#
>> +CONFIG_SCSI_SPI_ATTRS=y
>> +CONFIG_SCSI_FC_ATTRS=y
>> +CONFIG_SCSI_LOWLEVEL=y
>> +CONFIG_ISCSI_BOOT_SYSFS=y
>
> Actively using anything ISCSI?  If not then leave it to family frags.
>
>> +CONFIG_SCSI_IBMVSCSI=y
>> +CONFIG_SCSI_IBMVFC=y
>> +CONFIG_SCSI_IBMVFC_TRACE=y
>> +CONFIG_SCSI_IPR=y
>> +CONFIG_SCSI_VIRTIO=y
>> +CONFIG_ATA=y
>> +CONFIG_ATA_VERBOSE_ERROR=y
>> +CONFIG_SATA_PMP=y
>> +
>> +CONFIG_ETHERNET=y
>
> Odd that it jumps to ethernet w/o any comment block.
>
>> +CONFIG_MDIO=`
>
> Above is not a valid setting.
>
>> +CONFIG_NET_VENDOR_IBM=y
>> +CONFIG_IBMVETH=y
>> +CONFIG_EHEA=y
>> +CONFIG_NET_VENDOR_INTEL=y
>> +CONFIG_E100=y
>> +CONFIG_E1000=y
>> +CONFIG_E1000E=y
>> +CONFIG_NET_VENDOR_I825XX=y
>> +CONFIG_NET_PACKET_ENGINE=y
>> +CONFIG_NET_VENDOR_REALTEK=y
>> +CONFIG_PHYLIB=y
>> +
>> +CONFIG_VMXNET3=y
>> +#
>> +# Userland interfaces
>> +#
>> +CONFIG_INPUT_MOUSEDEV=y
>> +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
>> +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
>> +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
>> +# CONFIG_INPUT_JOYDEV is not set
>> +CONFIG_INPUT_EVDEV=m
>> +# CONFIG_INPUT_EVBUG is not set
>> +
>> +#
>> +# Input Device Drivers
>> +#
>> +CONFIG_INPUT_KEYBOARD=y
>> +CONFIG_KEYBOARD_ATKBD=y
>> +CONFIG_INPUT_MOUSE=y
>> +CONFIG_MOUSE_PS2=y
>> +CONFIG_MOUSE_PS2_ALPS=y
>> +CONFIG_MOUSE_PS2_LOGIPS2PP=y
>> +CONFIG_MOUSE_PS2_SYNAPTICS=y
>> +CONFIG_MOUSE_PS2_CYPRESS=y
>> +CONFIG_MOUSE_PS2_TRACKPOINT=y
>> +CONFIG_INPUT_MISC=y
>> +CONFIG_INPUT_PCSPKR=m
>
> Some of these might be relevant for qemu if it is doing gfx and not just
> plain text mode; OTOH they could also be considered something that the
> qemu family frag should own.
>
>> +
>> +#
>> +# Hardware I/O ports
>> +#
>> +CONFIG_SERIO=y
>> +CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y
>> +CONFIG_SERIO_I8042=y
>> +CONFIG_SERIO_LIBPS2=y
>
> PS/2 ports and a PC style keyboard controller?  I _guess_ qemu could be
> emulating those, but it seems odd.
>
>> +#
>> +# Character devices
>> +#
>> +CONFIG_TTY=y
>> +CONFIG_VT=y
>> +CONFIG_CONSOLE_TRANSLATIONS=y
>> +CONFIG_VT_CONSOLE=y
>> +CONFIG_VT_CONSOLE_SLEEP=y
>> +CONFIG_HW_CONSOLE=y
>> +CONFIG_VT_HW_CONSOLE_BINDING=y
>> +CONFIG_UNIX98_PTYS=y
>> +CONFIG_LEGACY_PTYS=y
>> +CONFIG_LEGACY_PTY_COUNT=256
>> +CONFIG_DEVKMEM=y
>
> All that should be defaults and/or family frag content and not needed
> explicitly here.
>
>> +
>> +#
>> +# Serial drivers
>> +#
>> +CONFIG_SERIAL_8250_FSL=y
>
> THis is a bugfix to a very specific errata on real Freescale 8xxx
> silicon that I'd fixed, so I'm sure you don't need it here if you are
> emulating an IBM ppc64.
>
>> +
>> +#
>> +# Non-8250 serial port support
>> +#
>> +CONFIG_SERIAL_ICOM=m
>> +CONFIG_SERIAL_JSM=m
>
> Modules you'd ever actually use in qemu?  If not don't call 'em out.
>
>> +
>> +CONFIG_IBM_BSR=M
>> +CONFIG_HW_RANDOM=m
>> +CONFIG_HW_RANDOM_PSERIES=m
>> +CONFIG_HW_RANDOM_POWERNV=m
>> +CONFIG_GEN_RTC=y
>> +CONFIG_RAW_DRIVER=y
>> +CONFIG_MAX_RAW_DEVS=1024
>
> Take the default unless you've really a need to override it.
>
>> +CONFIG_DEVPORT=y
>> +CONFIG_I2C=y
>> +CONFIG_I2C_BOARDINFO=y
>> +CONFIG_I2C_COMPAT=y
>> +CONFIG_I2C_HELPER_AUTO=y
>> +CONFIG_I2C_ALGOBIT=y
>> +
>> +#
>> +# I2C Hardware Bus support
>> +#
>
> Seems odd to be specifying generic I2C options, and then having no
> actual I2C hardware settings.  Either drop the above, or call out your
> actual I2C hardware settings here.
>
>> +
>> +CONFIG_PPS=y
>> +CONFIG_PTP_1588_CLOCK=y
>> +
>> +#
>> +# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
>> +#
>> +CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
>
> Another HAS/WANTS/NEEDS thing.
>
>> +CONFIG_HWMON=y
>> +
>> +CONFIG_SSB_POSSIBLE=y
>
> Same here.
>
>> +
>> +#
>> +# Sonics Silicon Backplane
>> +#
>> +# CONFIG_SSB is not set
>
> Do you really need to explicity disable this?  I doubt it.
>
>> +CONFIG_BCMA_POSSIBLE=y
>
> Another HAS/WANTS/NEEDS thing.
>
>> +
>> +#
>> +#
>> +# Graphics support
>> +#
>> +CONFIG_VGA_ARB=y
>> +CONFIG_VGA_ARB_MAX_GPUS=16
>> +CONFIG_FB=y
>> +CONFIG_FIRMWARE_EDID=y
>> +CONFIG_FB_DDC=y
>> +CONFIG_FB_CFB_FILLRECT=y
>> +CONFIG_FB_CFB_COPYAREA=y
>> +CONFIG_FB_CFB_IMAGEBLIT=y
>> +CONFIG_FB_MACMODES=y
>> +CONFIG_FB_BACKLIGHT=y
>> +CONFIG_FB_MODE_HELPERS=y
>> +CONFIG_FB_TILEBLITTING=y
>> +
>> +#
>> +# Frame buffer hardware drivers
>> +#
>> +CONFIG_FB_OF=y
>> +CONFIG_FB_IBM_GXT4500=y
>> +CONFIG_BACKLIGHT_LCD_SUPPORT=y
>> +CONFIG_LCD_CLASS_DEVICE=m
>> +CONFIG_LCD_PLATFORM=m
>> +CONFIG_BACKLIGHT_CLASS_DEVICE=y
>> +CONFIG_BACKLIGHT_GENERIC=y
>> +#
>> +# Console display driver support
>> +#
>> +# CONFIG_VGA_CONSOLE is not set
>> +CONFIG_DUMMY_CONSOLE=y
>> +CONFIG_FRAMEBUFFER_CONSOLE=y
>> +
>> +#
>> +# HID support
>> +#
>> +CONFIG_HID=y
>> +CONFIG_HID_GENERIC=y
>> +
>> +#
>> +# Special HID drivers
>> +#
>> +CONFIG_HID_A4TECH=y
>> +CONFIG_HID_APPLE=y
>> +CONFIG_HID_BELKIN=y
>> +CONFIG_HID_CHERRY=y
>> +CONFIG_HID_CHICONY=y
>> +CONFIG_HID_CYPRESS=y
>> +CONFIG_HID_EZKEY=y
>> +CONFIG_HID_GYRATION=y
>> +CONFIG_HID_LOGITECH=y
>> +CONFIG_HID_MICROSOFT=y
>> +CONFIG_HID_MONTEREY=y
>> +CONFIG_HID_PANTHERLORD=y
>> +CONFIG_HID_PETALYNX=y
>> +CONFIG_HID_SAMSUNG=y
>> +CONFIG_HID_SUNPLUS=y
>
> Does qemu emulate any/all of these human input devices?
>
>> +#
>> +# USB HID support
>> +#
>> +CONFIG_USB_HID=y
>> +CONFIG_USB_HIDDEV=y
>> +
>> +#
>> +# I2C HID support
>> +#
>
> Comment above doesn't match content below.
>
>> +CONFIG_USB_OHCI_LITTLE_ENDIAN=y
>> +CONFIG_USB_SUPPORT=y
>> +CONFIG_USB_COMMON=y
>> +CONFIG_USB_ARCH_HAS_HCD=y
>> +CONFIG_USB=y
>> +# CONFIG_USB_DEBUG is not set
>> +# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
>> +
>> +#
>> +# Miscellaneous USB options
>> +#
>> +CONFIG_USB_DEFAULT_PERSIST=y
>> +CONFIG_USB_MON=m
>> +
>> +#
>> +# USB Host Controller Drivers
>> +#
>> +CONFIG_USB_EHCI_HCD=y
>> +CONFIG_USB_EHCI_TT_NEWSCHED=y
>> +CONFIG_USB_EHCI_PCI=y
>> +CONFIG_USB_OHCI_HCD=y
>> +CONFIG_USB_OHCI_HCD_PCI=y
>
> No usb specific chipset/controller support?
>
>> +
>> +#
>> +CONFIG_VIRTIO_PCI=m
>> +CONFIG_VIRTIO_BALLOON=m
>> +# CONFIG_VIRTIO_MMIO is not set
>> +
>> +#
>> +# Hardware Spinlock drivers
>> +#
>> +CONFIG_I8253_LOCK=y
>> +CONFIG_CLKBLD_I8253=y
>> +# CONFIG_MAILBOX is not set
>> +CONFIG_IOMMU_SUPPORT=y
>> +CONFIG_OF_IOMMU=y
>> +# CONFIG_SPAPR_TCE_IOMMU is not set
>> +
>> +CONFIG_IRQCHIP=y
>
> Something odd has happened here.  IOMMU and IRQCHIP are hardware-ish
> type things that my gut tells me should have been way higher in the
> content listing than way the heck down here....
>
>> +#
>
> Anyway, at this point hopefully you get the general idea.  Below are
> lots of other things relating to libraries, CRC, CRYPTO and such, that I
> suspect you really have zero interest in tuning away from the defaults,
> so most of the whole lot can go.
>
> Paul.
> --
>
>> +# Library routines
>> +#
>> +CONFIG_RAID6_PQ=y
>> +CONFIG_BITREVERSE=y
>> +CONFIG_GENERIC_STRNCPY_FROM_USER=y
>> +CONFIG_GENERIC_STRNLEN_USER=y
>> +CONFIG_GENERIC_NET_UTILS=y
>> +CONFIG_GENERIC_PCI_IOMAP=y
>> +CONFIG_GENERIC_IOMAP=y
>> +CONFIG_GENERIC_IO=y
>> +CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
>> +CONFIG_CRC_CCITT=m
>> +CONFIG_CRC16=y
>> +CONFIG_CRC_T10DIF=y
>> +CONFIG_CRC_ITU_T=m
>> +CONFIG_CRC32=y
>> +CONFIG_CRC32_SLICEBY8=y
>> +CONFIG_LIBCRC32C=y
>> +CONFIG_ZLIB_INFLATE=y
>> +CONFIG_ZLIB_DEFLATE=y
>> +CONFIG_LZO_COMPRESS=y
>> +CONFIG_LZO_DECOMPRESS=y
>> +CONFIG_LZ4_DECOMPRESS=y
>> +CONFIG_XZ_DEC=y
>> +CONFIG_XZ_DEC_POWERPC=y
>> +CONFIG_XZ_DEC_BCJ=y
>> +CONFIG_DECOMPRESS_GZIP=y
>> +CONFIG_DECOMPRESS_BZIP2=y
>> +CONFIG_DECOMPRESS_LZMA=y
>> +CONFIG_DECOMPRESS_XZ=y
>> +CONFIG_DECOMPRESS_LZO=y
>> +CONFIG_DECOMPRESS_LZ4=y
>> +CONFIG_GENERIC_ALLOCATOR=y
>> +CONFIG_TEXTSEARCH=y
>> +CONFIG_TEXTSEARCH_KMP=m
>> +CONFIG_TEXTSEARCH_BM=m
>> +CONFIG_TEXTSEARCH_FSM=m
>> +CONFIG_ASSOCIATIVE_ARRAY=y
>> +CONFIG_HAS_IOMEM=y
>> +CONFIG_HAS_IOPORT=y
>> +CONFIG_HAS_DMA=y
>> +CONFIG_CPU_RMAP=y
>> +CONFIG_DQL=y
>> +CONFIG_NLATTR=y
>> +CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
>> +CONFIG_AVERAGE=y
>> +CONFIG_OID_REGISTRY=y
>> +CONFIG_FONT_SUPPORT=y
>> +CONFIG_FONT_8x8=y
>> +CONFIG_FONT_8x16=y
>> +
>> +
>> +#
>> +# Security options
>> +#
>> +CONFIG_KEYS=y
>> +CONFIG_DEFAULT_SECURITY_DAC=y
>> +CONFIG_DEFAULT_SECURITY=""
>> +CONFIG_KEYS_COMPAT=y
>> +CONFIG_XOR_BLOCKS=y
>> +CONFIG_ASYNC_CORE=m
>> +CONFIG_ASYNC_MEMCPY=m
>> +CONFIG_ASYNC_XOR=m
>> +CONFIG_ASYNC_PQ=m
>> +CONFIG_ASYNC_RAID6_RECOV=m
>> +CONFIG_CRYPTO=y
>> +
>> +#
>> +# Crypto core or helper
>> +#
>> +# CONFIG_CRYPTODEV is not set
>> +CONFIG_CRYPTO_ALGAPI=y
>> +CONFIG_CRYPTO_ALGAPI2=y
>> +CONFIG_CRYPTO_AEAD=y
>> +CONFIG_CRYPTO_AEAD2=y
>> +CONFIG_CRYPTO_BLKCIPHER=y
>> +CONFIG_CRYPTO_BLKCIPHER2=y
>> +CONFIG_CRYPTO_HASH=y
>> +CONFIG_CRYPTO_HASH2=y
>> +CONFIG_CRYPTO_RNG=m
>> +CONFIG_CRYPTO_RNG2=y
>> +CONFIG_CRYPTO_PCOMP2=y
>> +CONFIG_CRYPTO_MANAGER=y
>> +CONFIG_CRYPTO_MANAGER2=y
>> +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
>> +CONFIG_CRYPTO_WORKQUEUE=y
>> +CONFIG_CRYPTO_AUTHENC=y
>> +CONFIG_CRYPTO_CCM=y
>> +CONFIG_CRYPTO_GCM=y
>> +CONFIG_CRYPTO_SEQIV=y
>> +
>> +#
>> +# Block modes
>> +#
>> +CONFIG_CRYPTO_CBC=y
>> +CONFIG_CRYPTO_CTR=y
>> +CONFIG_CRYPTO_ECB=y
>> +
>> +#
>> +# Hash modes
>> +#
>> +CONFIG_CRYPTO_CMAC=y
>> +CONFIG_CRYPTO_HMAC=y
>> +CONFIG_CRYPTO_XCBC=y
>> +
>> +#
>> +# Digest
>> +#
>> +CONFIG_CRYPTO_CRC32C=y
>> +CONFIG_CRYPTO_CRCT10DIF=y
>> +CONFIG_CRYPTO_GHASH=y
>> +CONFIG_CRYPTO_MD4=y
>> +CONFIG_CRYPTO_MD5=y
>> +CONFIG_CRYPTO_SHA1=y
>> +CONFIG_CRYPTO_SHA256=y
>> +CONFIG_CRYPTO_SHA512=y
>> +
>> +#
>> +# Ciphers
>> +#
>> +CONFIG_CRYPTO_AES=y
>> +CONFIG_CRYPTO_ARC4=y
>> +CONFIG_CRYPTO_DES=y
>> +
>> +#
>> +# Compression
>> +#
>> +CONFIG_CRYPTO_DEFLATE=y
>> +CONFIG_CRYPTO_LZO=y
>> +
>> +#
>> +# Random Number Generation
>> +#
>> +CONFIG_CRYPTO_ANSI_CPRNG=y
>> +
>> diff --git a/meta/cfg/kernel-cache/bsp/qemu-ppc64/qemu-ppc64.scc b/meta/cfg/kernel-cache/bsp/qemu-ppc64/qemu-ppc64.scc
>> new file mode 100644
>> index 0000000..a2d8d90
>> --- /dev/null
>> +++ b/meta/cfg/kernel-cache/bsp/qemu-ppc64/qemu-ppc64.scc
>> @@ -0,0 +1,2 @@
>> +kconf hardware qemu-ppc64.cfg
>> +
>> --
>> 1.9.1
>>
>> --
>> _______________________________________________
>> linux-yocto mailing list
>> linux-yocto at yoctoproject.org
>> https://lists.yoctoproject.org/listinfo/linux-yocto


More information about the linux-yocto mailing list