Il 05/02/2013 15:17, Paolo Bonzini ha scritto: >>>> We could have a "hw/socks" directory for devices which are pure >>>> >> > containers :-) >> > I'd surely prefer hw/socs/ over hw/socks/ ;) but my point is why would >> > we want to mix arm and sh4 SoCs (with a clear dependency on $arch) >> > rather than putting them into hw/$arch proper. >> > >> > As Paolo points out, this is (once again) discussing the strictness of >> > your sayings, in this case 'no devices in hw/$arch' (pseudo-quote). > I agree that devices referring to CPUState should stay in hw/$ARCH.
FWIW, here is the list of files I have in hw/arm/Makefile.objs with a more aggressive approach. # CPU cores obj-y += arm11mpcore.o a9mpcore.o obj-y += a15mpcore.o # All-in-one devices, perhaps should be refactored obj-y += tc6393xb.o obj-y += strongarm.o # Boards obj-y += boot.o collie.o exynos4_boards.o gumstix.o highbank.o obj-y += integratorcp.o kzm.o mainstone.o musicpal.o nseries.o obj-y += omap_sx1.o palm.o pic_cpu.o realview.o spitz.o stellaris.o obj-y += tosa.o versatilepb.o vexpress.o xilinx_zynq.o z2.o # Devices that require ARMCPU obj-y += armv7m.o exynos4210.o pxa2xx.o pxa2xx_gpio.o pxa2xx_pic.o obj-y += omap1.o omap2.o Of these, the *core.c files could in principle be moved out of hw/arm (hw/misc or a new directory) but it really looked wrong. And this is hw/ppc/Makefile.objs: # shared objects obj-y += ppc.o ppc_booke.o # IBM pSeries (sPAPR) obj-$(CONFIG_PSERIES) += spapr.o xics.o spapr_vio.o spapr_events.o obj-$(CONFIG_PSERIES) += spapr_hcall.o spapr_iommu.o spapr_rtas.o # PowerPC 4xx boards obj-y += ppc405_boards.o ppc4xx_devs.o ppc405_uc.o ppc440_bamboo.o # PReP obj-y += prep.o # OldWorld PowerMac obj-y += mac_oldworld.o # NewWorld PowerMac obj-y += mac_newworld.o # e500 obj-$(CONFIG_E500) += e500.o mpc8544ds.o e500plat.o obj-$(CONFIG_E500) += mpc8544_guts.o ppce500_spin.o # PowerPC 440 Xilinx ML507 reference board. obj-y += virtex_ml507.o All other target directories are quite small. Finally, here is the list of device directories and number of files in them: 9pfs/ 21 acpi/ 5 audio/ 28 block/ 28 bt/ 8 char/ 30 display/ 41 dma/ 12 gpio/ 7 i2c/ 12 ide/ 18 input/ 14 intc/ 29 isa/ 16 misc/ 31 net/ 30 nvram/ 7 pci/ 57 scsi/ 14 sd/ 8 ssi/ 6 timer/ 29 usb/ 38 virtio/ 9 watchdog/ 6 xen/ 16 Paolo