Create new platform for arm system
Brad Bishop
bradleyb at fuzziesquirrel.com
Fri Dec 1 00:32:54 AEDT 2017
On Thu, 2017-11-09 at 05:53 +0000, Chen.KenYY 陳永營 TAO wrote:
> Hi all,
>
> I have a platform which is arm system.
> My customer want to update the platform code to openBMC.
> For now, the code structure as below.
> meta-arm/
> ├── common
> │ └── recipes-phosphor
> │ ├── dbus
> │ │ ├── openpower-dbus-interfaces.bb
> │ │ ├── openpower-dbus-interfaces-mapper-config-native.bb
> │ │ └── phosphor-mapper-config-native%.bbappend
> │ ├── debug
> │ │ ├── openpower-debug-collector
> │ │ │ ├── openpower-debug-collector-checkstop at .service
> │ │ │ └── openpower-debug-collector-watchdog at .service
> │ │ ├── openpower-debug-collector.bb
> │ │ ├── openpower-debug-collector-error-native.bb
> │ │ ├── openpower-debug-collector.inc
> │ │ └── phosphor-logging-error-logs-native.bbappend
> │ ├── ipmi
> │ │ ├── hostboot-inventory-config
> │ │ │ └── config.yaml
> │ │ ├── hostboot-inventory-config-native.bb
> │ │ ├── openpower-ipmi-oem.bb
> │ │ ├── openpower-ipmi-oem-whitelist
> │ │ │ └── openpower-ipmi-oem-whitelist-native.conf
> │ │ └── openpower-ipmi-oem-whitelist-native.bb
> │ └── packagegroups
> │ ├── packagegroup-obmc-apps.bbappend
> │ ├── packagegroup-obmc-ipmid-providers.bbappend
> │ ├── packagegroup-obmc-phosphor-debugtools.bbappend
> │ └── packagegroup-op-apps.bb
> ├── conf
> │ ├── layer.conf
> │ └── machine
> │ └── include
> │ └── arm.inc
> ├── COPYING.apache-2.0
> ├── COPYING.MIT
> ├── LICENSE
> └── meta-qualcomm
> ├── conf
> │ ├── layer.conf
> │ └── machine
> │ └── include
> │ └── qualcomm.inc
> ├── meta-2400-rep
> │ ├── conf
> │ │ ├── bblayers.conf.sample
> │ │ ├── conf-notes.txt
> │ │ ├── layer.conf
> │ │ ├── local.conf.sample
> │ │ └── machine
> │ │ └── 2400-rep.conf
> │ ├── recipes-bsp
> │ │ └── u-boot
> │ │ ├── u-boot
> │ │ │ └── 0001-Centriq2400-REP-platform-board-initial-
> Ethernet-Phy-reset.patch
> │ │ └── u-boot_%.bbappend
> │ ├── recipes-kernel
> │ │ └── linux
> │ │ ├── linux-obmc
> │ │ │ ├── 0001-2400REP-Add-GPIOC7-config-for-host-spi-
> rom-init.patch
> │ │ │ ├── 0001-Add-driver-for-PCA9641-Arbitration.patch
> │ │ │ ├── 0001-Driver-Add-DS1100-driver-for-PMBUS.patch
> │ │ │ ├── 0001-driver-add-IR38613-driver.patch
> │ │ │ ├── 0001-Driver-Modify-fan-driver.patch
> │ │ │ ├── 0001-Enabling-temp-monitoring-by-default-on-
> adm1278.patch
> │ │ │ ├── 0001-Migrate-the-JTAG-driver-from-the-BSP-
> from-Aspeed.patch
> │ │ │ ├── 0001-PMBUS-modify-pmbus.patch
> │ │ │ ├── 0001-spi-add-aspeed-spi-generic-driver.patch
> │ │ │ ├── 0001-spi-Add-centriq-2400-spi-hwmon-
> driver.patch
> │ │ │ ├── 0002-driver-add-PXM1310-driver.patch
> │ │ │ ├── 0002-PMBUS-modify-pmbus.patch
> │ │ │ ├── 0003-thermal-sensor-NVT210.patch
> │ │ │ ├── 2400rep.cfg
> │ │ │ ├── aspeed-bmc-arm-2400-rep.dts
> │ │ │ └── v3-0001-Add-SSIF-driver-for-I2C-slave-
> device.patch
> │ │ └── linux-obmc_%.bbappend
> │ ├── recipes-phosphor
> │ │ ├── bootmodeutil
> │ │ │ ├── bootmodeutil.bb
> │ │ │ └── files
> │ │ │ ├── BOOTMODEFILE
> │ │ │ └── bootmodeutil.c
> │ │ ├── chassis
> │ │ │ ├── ir38163-workaround
> │ │ │ │ ├── ir38163_workaround.sh
> │ │ │ │ ├── ir-add at .service
> │ │ │ │ └── ir-remove at .service
> │ │ │ └── ir38163-workaround.bb
> │ │ ├── console
> │ │ │ ├── obmc-console
> │ │ │ │ └── obmc-console.conf
> │ │ │ └── obmc-console.bbappend
> │ │ ├── cpld
> │ │ │ ├── cpld-fwupdate
> │ │ │ │ ├── ast-jtag.c
> │ │ │ │ ├── ast-jtag.h
> │ │ │ │ ├── lattice.c
> │ │ │ │ ├── lattice.h
> │ │ │ │ └── main.c
> │ │ │ ├── cpld-fwupdate.bb
> │ │ │ ├── cpld-version
> │ │ │ │ ├── cpld-version.service
> │ │ │ │ └── cpld_version.sh
> │ │ │ └── cpld-version.bb
> │ │ ├── gpioinit
> │ │ │ ├── files
> │ │ │ │ ├── gpioinit.c
> │ │ │ │ └── gpioinit.service
> │ │ │ └── gpioinit.bb
> │ │ ├── ipmi
> │ │ │ ├── 2400-rep-ipmi-inventory-map
> │ │ │ │ └── config.yaml
> │ │ │ ├── 2400-rep-ipmi-inventory-map-native.bb
> │ │ │ ├── openpower-ipmi-oem
> │ │ │ │ ├── 0001-Add-detection-of-broad-and-node-
> command.patch
> │ │ │ │ ├── 0001-Add-Get-BMC-Vendor-ID-command.patch
> │ │ │ │ ├── 0001-Add-Get-pcie-slot-status-command.patch
> │ │ │ │ └── 0001-Add-Send-Soc-MAC-from-host.patch
> │ │ │ ├── openpower-ipmi-oem.bbappend
> │ │ │ ├── phosphor-ipmi-bt
> │ │ │ │ ├── 0001-btbrigde-to-ssif-slave.patch
> │ │ │ │ └── 0001-Modify-btbridged-device-link.patch
> │ │ │ ├── phosphor-ipmi-bt.bbappend
> │ │ │ ├── phosphor-ipmi-fru-properties%
> │ │ │ │ └── extra-properties.yaml
> │ │ │ ├── phosphor-ipmi-fru-properties%.bbappend
> │ │ │ ├── phosphor-ipmi-sensor-inventory%
> │ │ │ │ └── config.yaml
> │ │ │ └── phosphor-ipmi-sensor-inventory%.bbappend
> │ │ ├── leds
> │ │ │ ├── 2400-rep-led-manager-config
> │ │ │ │ └── led.yaml
> │ │ │ └── 2400-rep-led-manager-config-native.bb
> │ │ ├── macsetup
> │ │ │ ├── files
> │ │ │ │ ├── macsetup.c
> │ │ │ │ └── macsetup.service
> │ │ │ └── macsetup.bb
> │ │ ├── qspitest
> │ │ │ ├── files
> │ │ │ │ ├── qspi_test.c
> │ │ │ │ └── qspi_test.h
> │ │ │ └── qspitest.bb
> │ │ ├── sensors
> │ │ │ ├── phosphor-hwmon%
> │ │ │ │ ├── 0001-phosphor-hwmon-fixed-open-system-file-
> timeout.patch
> │ │ │ │ └── obmc
> │ │ │ │ └── hwmon
> │ │ │ │ └── ahb
> │ │ │ │ ├── 1e631000.flash-controller
> │ │ │ │ │ └── spi2 at 0
> │ │ │ │ │ └── centriq2400-spi-hwmon at 0.c
> onf
> │ │ │ │ └── apb
> │ │ │ │ └── i2c at 1e78a000
> │ │ │ │ ├── i2c-bus at 180
> │ │ │ │ │ ├── ir38163 at 12.conf
> │ │ │ │ │ ├── ir38163 at 42.conf
> │ │ │ │ │ ├── ir38163 at 44.conf
> │ │ │ │ │ ├── ir38163 at 46.conf
> │ │ │ │ │ ├── ir38163 at 48.conf
> │ │ │ │ │ ├── pxm1310 at 02.conf
> │ │ │ │ │ └── pxm1310 at 04.conf
> │ │ │ │ ├── i2c-bus at 1c0
> │ │ │ │ │ ├── nvt210 at 4c.conf
> │ │ │ │ │ ├── tmp421 at 1d.conf
> │ │ │ │ │ ├── tmp421 at 1f.conf
> │ │ │ │ │ ├── tmp421 at 4d.conf
> │ │ │ │ │ └── tmp421 at 4f.conf
> │ │ │ │ ├── i2c-bus at 300
> │ │ │ │ │ ├── adm1278 at 10.conf
> │ │ │ │ │ └── adm1278 at 11.conf
> │ │ │ │ ├── i2c-bus at 340
> │ │ │ │ │ └── pca9641 at 70
> │ │ │ │ │ └── i2c-arb
> │ │ │ │ │ ├── adm1278 at 12.co
> nf
> │ │ │ │ │ ├── ds1100 at 58.con
> f
> │ │ │ │ │ ├── max31790 at 20.c
> onf
> │ │ │ │ │ ├── max31790 at 23.c
> onf
> │ │ │ │ │ └── tmp421 at 1d.con
> f
> │ │ │ │ └── i2c-bus at 80
> │ │ │ │ ├── tmp421 at 1c.conf
> │ │ │ │ ├── tmp421 at 1e.conf
> │ │ │ │ ├── tmp421 at 2a.conf
> │ │ │ │ └── tmp421 at 4e.conf
> │ │ │ └── phosphor-hwmon%.bbappend
> │ │ ├── settings
> │ │ │ ├── phosphor-settings
> │ │ │ │ ├── powerpolicy-default-
> ALWAYS_POWER_ON.override.yml
> │ │ │ │ └── timeowner-default-BOTH.override.yml
> │ │ │ └── phosphor-settings.bbappend
> │ │ ├── spitest
> │ │ │ ├── files
> │ │ │ │ └── spitest.c
> │ │ │ └── spitest.bb
> │ │ ├── thermalutil
> │ │ │ ├── files
> │ │ │ │ ├── thermal_control.sh
> │ │ │ │ ├── thermal-start at .service
> │ │ │ │ ├── thermal-stop at .service
> │ │ │ │ └── thermalutil.c
> │ │ │ └── thermalutil.bb
> │ │ └── workbook
> │ │ ├── 2400-rep-config
> │ │ │ └── 2400-rep.py
> │ │ └── 2400-rep-config.bb
> │ └── recipes.txt
> └── skeleton
> └── skeleton.tar.gz
>
> Could anyone help to review this structure and tell me how to
> separate this code will be good to reviewer?
> As I know, the kernel patch should not in machine file.
>
> If any other question, please feel free to me. Thanks.
>
> Best Regards,
> Ken
>
>
Hi Ken
I was just curious if you had gotten enough feedback to get started.
Another data point could be the quanta-q711 or witherspoon machines.
If you have a look at the commit history (git log -p) and search for
these machines (start the search from the beginning of time and search
forward) these machines were added in a review-friendly way for the
most part.
To begin with, I'd focus more on adding a board layer that allows you
to build an image and boot to a shell, and tackle the arm-host aspects
(i.e. the userspace) of this system after that. That piece might be
more involved given that this is the first arm system.
thx - brad
More information about the openbmc
mailing list