Attention is currently required from: Kevin Chiu, Nick Vaccaro.
Tim Wawrzynczak has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/68168 )
Change subject: mb/google/brya: Enable DRIVERS_GENESYSLOGIC_GL9750 for lisbon
......................................................................
Patch Set 1:
(1 comment)
Patchset:
PS1:
Hey Kevin, I'm no longer with Google, for brya projects please add Nick Vaccaro instead
--
To view, visit https://review.coreboot.org/c/coreboot/+/68168
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I74cd634700b2de16ae471e0a738b67a14fd82a50
Gerrit-Change-Number: 68168
Gerrit-PatchSet: 1
Gerrit-Owner: Kevin Chiu <kevin.chiu.17802(a)gmail.com>
Gerrit-Reviewer: Nick Vaccaro <nvaccaro(a)google.com>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-Attention: Kevin Chiu <kevin.chiu.17802(a)gmail.com>
Gerrit-Attention: Nick Vaccaro <nvaccaro(a)google.com>
Gerrit-Comment-Date: Thu, 06 Oct 2022 15:28:21 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Gerrit-MessageType: comment
Attention is currently required from: Iman Bingi, Martin L Roth, Julius Werner, Patrick Rudolph.
Iman Bingi has uploaded a new patch set (#55) to the change originally created by Patrick Rudolph. ( https://review.coreboot.org/c/coreboot/+/23586 )
Change subject: payloads/cbui: Add new payload CBUI
......................................................................
payloads/cbui: Add new payload CBUI
Depends on libpayload and nuklear.
Features:
* Graphical menus with scrolling.
* Text rendering engine (atm only bitmap font)
* Support for keyboard and mouse
* Support for USB and PS/2 devices
* Ported coreinfo and nvramcui
* Allows to modify NVRAM and RTC
* Works as ELF payload
* Works as Seabios secondary payload
* Basic support for multiple languages
* Hacky support for BIOS calls (depends on NASM)
* Runs in qemu and on real hardware
* Use linker script to allocate low memory
Shortcomings:
* Doesn't work in VGA text mode
* Untested on UEFI
* int32 relocates itself to low memory
Licenses:
* GPLv2 (CBUI + libpayload)
* BSD (libpayload)
* MIT (nuklear)
TODO:
* Test on as much platforms as possible
* Link int32 into low memory
This is Patrick Rudolph's original patch, updated by
Ben Adu-Boahen to:
* Add Read/Write module
* This module allows read/write to any hardware
component that is readable/writeable
Note:
This is work in progress
Change-Id: Ib9a1a07c1065880aa675380625021750d5cab7d1
Signed-off-by: Patrick Rudolph <siro(a)das-labor.org>
Signed-off-by: Ben Adu-Boahen <imanbingy(a)gmail.com>
---
M payloads/Kconfig
M payloads/Makefile.inc
A payloads/cbui/.gitignore
A payloads/cbui/Kconfig
A payloads/cbui/Makefile
A payloads/cbui/NuklearUI/NuklearCombo.c
A payloads/cbui/NuklearUI/NuklearCombo.h
A payloads/cbui/NuklearUI/NuklearCommon.h
A payloads/cbui/NuklearUI/NuklearDataGrid.c
A payloads/cbui/NuklearUI/NuklearDataGrid.h
A payloads/cbui/NuklearUI/NuklearDatePicker.c
A payloads/cbui/NuklearUI/NuklearDatePicker.h
A payloads/cbui/NuklearUI/NuklearFieldFile.c
A payloads/cbui/NuklearUI/NuklearFieldFile.h
A payloads/cbui/NuklearUI/NuklearFieldHex.c
A payloads/cbui/NuklearUI/NuklearFieldHex.h
A payloads/cbui/NuklearUI/NuklearFileChooser.c
A payloads/cbui/NuklearUI/NuklearFileChooser.h
A payloads/cbui/NuklearUI/NuklearGroup.c
A payloads/cbui/NuklearUI/NuklearGroup.h
A payloads/cbui/NuklearUI/NuklearHex.c
A payloads/cbui/NuklearUI/NuklearHex.h
A payloads/cbui/NuklearUI/NuklearIntegerRange.c
A payloads/cbui/NuklearUI/NuklearIntegerRange.h
A payloads/cbui/NuklearUI/NuklearLabel.c
A payloads/cbui/NuklearUI/NuklearLabel.h
A payloads/cbui/NuklearUI/NuklearObject.c
A payloads/cbui/NuklearUI/NuklearObject.h
A payloads/cbui/NuklearUI/NuklearPciHeader.c
A payloads/cbui/NuklearUI/NuklearPciHeader.h
A payloads/cbui/NuklearUI/NuklearRW.c
A payloads/cbui/NuklearUI/NuklearRW.h
A payloads/cbui/NuklearUI/NuklearRoot.c
A payloads/cbui/NuklearUI/NuklearRwAcpi.c
A payloads/cbui/NuklearUI/NuklearRwAcpi.h
A payloads/cbui/NuklearUI/NuklearRwAtaAtapi.c
A payloads/cbui/NuklearUI/NuklearRwAtaAtapi.h
A payloads/cbui/NuklearUI/NuklearRwClock.c
A payloads/cbui/NuklearUI/NuklearRwClock.h
A payloads/cbui/NuklearUI/NuklearRwCpuMsr.c
A payloads/cbui/NuklearUI/NuklearRwCpuMsr.h
A payloads/cbui/NuklearUI/NuklearRwDimmSpd.c
A payloads/cbui/NuklearUI/NuklearRwDimmSpd.h
A payloads/cbui/NuklearUI/NuklearRwE820.c
A payloads/cbui/NuklearUI/NuklearRwE820.h
A payloads/cbui/NuklearUI/NuklearStyle.c
A payloads/cbui/NuklearUI/NuklearStyle.h
A payloads/cbui/NuklearUI/NuklearTabView.c
A payloads/cbui/NuklearUI/NuklearTextView.c
A payloads/cbui/NuklearUI/NuklearTextView.h
A payloads/cbui/NuklearUI/NuklearTextfield.c
A payloads/cbui/NuklearUI/NuklearTextfield.h
A payloads/cbui/NuklearUI/NuklearTimePicker.c
A payloads/cbui/NuklearUI/NuklearTimePicker.h
A payloads/cbui/NuklearUI/NuklearUI.h
A payloads/cbui/NuklearUI/NuklearVector.c
A payloads/cbui/NuklearUI/NuklearVector.h
A payloads/cbui/arch/x86/cpuid.c
A payloads/cbui/arch/x86/cpuid.h
A payloads/cbui/arch/x86/int32.h
A payloads/cbui/arch/x86/int32.ld
A payloads/cbui/arch/x86/int32.nasm
A payloads/cbui/arch/x86/memcpy.c
A payloads/cbui/arch/x86/memcpy.h
A payloads/cbui/arch/x86/vga.c
A payloads/cbui/arch/x86/vga.h
A payloads/cbui/cbui.c
A payloads/cbui/cbui.h
A payloads/cbui/fsys/usbstorage.c
A payloads/cbui/fsys/usbstorage.h
A payloads/cbui/gfx/coreboot.c
A payloads/cbui/gfx/coreboot.h
A payloads/cbui/gfx/gfx.c
A payloads/cbui/gfx/gfx.h
A payloads/cbui/gfx/splash.c
A payloads/cbui/gfx/splash.h
A payloads/cbui/gfx/vbe.c
A payloads/cbui/gfx/vbe.h
A payloads/cbui/lang/de.c
A payloads/cbui/lang/en.c
A payloads/cbui/lang/lang.c
A payloads/cbui/lang/lang.h
A payloads/cbui/logo/cbui.png
A payloads/cbui/lp.config
A payloads/cbui/modules/bootlog_module.c
A payloads/cbui/modules/cbfs_module.c
A payloads/cbui/modules/cmos_module.c
A payloads/cbui/modules/coreboot_module.c
A payloads/cbui/modules/cpuinfo_module.c
A payloads/cbui/modules/license_module.c
A payloads/cbui/modules/modules.c
A payloads/cbui/modules/modules.h
A payloads/cbui/modules/nvram_module.c
A payloads/cbui/modules/pci_module.c
A payloads/cbui/modules/reboot_module.c
A payloads/cbui/modules/rtc_module.c
A payloads/cbui/modules/rw_module.c
A payloads/cbui/modules/timestamps_module.c
A payloads/cbui/modules/usb_module.c
A payloads/libpayload/configs/defconfig-cbui
100 files changed, 13,220 insertions(+), 1 deletion(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/86/23586/55
--
To view, visit https://review.coreboot.org/c/coreboot/+/23586
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Ib9a1a07c1065880aa675380625021750d5cab7d1
Gerrit-Change-Number: 23586
Gerrit-PatchSet: 55
Gerrit-Owner: Patrick Rudolph <siro(a)das-labor.org>
Gerrit-Reviewer: Arthur Heymans <arthur(a)aheymans.xyz>
Gerrit-Reviewer: Iman Bingi <imanbingy(a)gmail.com>
Gerrit-Reviewer: Julius Werner <jwerner(a)chromium.org>
Gerrit-Reviewer: Martin L Roth <gaumless(a)gmail.com>
Gerrit-Reviewer: Nico Huber <nico.h(a)gmx.de>
Gerrit-Reviewer: Patrick Rudolph <patrick.rudolph(a)9elements.com>
Gerrit-Reviewer: Patrick Rudolph <siro(a)das-labor.org>
Gerrit-Reviewer: Paul Menzel <paulepanter(a)mailbox.org>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-CC: Stefan Reinauer <stefan.reinauer(a)coreboot.org>
Gerrit-Attention: Iman Bingi <imanbingy(a)gmail.com>
Gerrit-Attention: Martin L Roth <gaumless(a)gmail.com>
Gerrit-Attention: Julius Werner <jwerner(a)chromium.org>
Gerrit-Attention: Patrick Rudolph <siro(a)das-labor.org>
Gerrit-MessageType: newpatchset
Attention is currently required from: Patrick Rudolph, Lean Sheng Tan, David.Milosevic(a)9elements.com.
build bot (Jenkins) has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/68137 )
Change subject: [WIP] mb/prodrive/atlas: Populate smbios table with VPD from ECs EMI
......................................................................
Patch Set 3:
(7 comments)
File src/mainboard/prodrive/atlas/emi.c:
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159859):
https://review.coreboot.org/c/coreboot/+/68137/comment/502c7442_48263037
PS3, Line 51: switch (access) {
switch and case should be at the same indent
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159859):
https://review.coreboot.org/c/coreboot/+/68137/comment/73831ee3_030fe9c8
PS3, Line 89: switch(access) {
switch and case should be at the same indent
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159859):
https://review.coreboot.org/c/coreboot/+/68137/comment/7e4fb90c_30a9dad2
PS3, Line 89: switch(access) {
space required before the open parenthesis '('
File src/mainboard/prodrive/atlas/mainboard.c:
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159859):
https://review.coreboot.org/c/coreboot/+/68137/comment/4bee6da0_349416f0
PS3, Line 14: static const char* get_smbios_part_number(void);
"foo* bar" should be "foo *bar"
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159859):
https://review.coreboot.org/c/coreboot/+/68137/comment/cf51eec4_cbde6674
PS3, Line 41: static const char* get_smbios_part_number(void)
"foo* bar" should be "foo *bar"
File src/mainboard/prodrive/atlas/smbios.c:
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159859):
https://review.coreboot.org/c/coreboot/+/68137/comment/25f145ce_fae68f10
PS3, Line 8: const char* smbios_mainboard_serial_number(void)
"foo* bar" should be "foo *bar"
File src/mainboard/prodrive/atlas/vpd.c:
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159859):
https://review.coreboot.org/c/coreboot/+/68137/comment/169c4347_4ba162f3
PS3, Line 34: switch (vpd) {
switch and case should be at the same indent
--
To view, visit https://review.coreboot.org/c/coreboot/+/68137
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I47bb4883c43ff344a9bda92c3106dd025533b391
Gerrit-Change-Number: 68137
Gerrit-PatchSet: 3
Gerrit-Owner: David.Milosevic(a)9elements.com
Gerrit-Reviewer: Angel Pons <th3fanbus(a)gmail.com>
Gerrit-Reviewer: Christian Walter <christian.walter(a)9elements.com>
Gerrit-Reviewer: Lean Sheng Tan <sheng.tan(a)9elements.com>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-CC: Patrick Rudolph <patrick.rudolph(a)9elements.com>
Gerrit-Attention: Patrick Rudolph <patrick.rudolph(a)9elements.com>
Gerrit-Attention: Lean Sheng Tan <sheng.tan(a)9elements.com>
Gerrit-Attention: David.Milosevic(a)9elements.com
Gerrit-Comment-Date: Thu, 06 Oct 2022 15:20:39 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Gerrit-MessageType: comment
Attention is currently required from: Patrick Rudolph, Lean Sheng Tan, David.Milosevic(a)9elements.com.
Hello build bot (Jenkins), Christian Walter, Angel Pons, Lean Sheng Tan,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/68137
to look at the new patch set (#3).
Change subject: [WIP] mb/prodrive/atlas: Populate smbios table with VPD from ECs EMI
......................................................................
[WIP] mb/prodrive/atlas: Populate smbios table with VPD from ECs EMI
The embedded controller stores serial-number and part-number within
an EEPROM which is unreachable to the Host CPU. Therefore, on the
EC side, we set up a shared memory region with the help of EMI
and copy the VPDs to it. On the coreboot side, we can read those
back and populate the SMBios table type 1 with the serial-number and
type 11 with the part-number.
emi.*: small interface to access the EMI regions
vpd.*: uses the emi interface in order to read the VPDs
smbios.c: populates smbios type 1 with the serial-number by using
vpd.h
mainboard.c: uses vpd.h to add a string to smbios type 11
ld_config.*: offers functionality to configure logical devices
devicetree.cb: enables address range 0xc00-0xcff for the EMI runtime
registers
Makefile.inc: adds emi.c, vpd.c, smbios.c, ld_config.c to the ramstage
compilation
TODO: ld_config.* is redundant. We can replace this with pnp_device.h
or pnp_ops.h
Signed-off-by: Milo-D <David.Milosevic(a)9elements.com>
Change-Id: I47bb4883c43ff344a9bda92c3106dd025533b391
---
M src/mainboard/prodrive/atlas/Makefile.inc
M src/mainboard/prodrive/atlas/devicetree.cb
A src/mainboard/prodrive/atlas/emi.c
A src/mainboard/prodrive/atlas/emi.h
A src/mainboard/prodrive/atlas/ld_config.c
A src/mainboard/prodrive/atlas/ld_config.h
M src/mainboard/prodrive/atlas/mainboard.c
A src/mainboard/prodrive/atlas/smbios.c
A src/mainboard/prodrive/atlas/vpd.c
A src/mainboard/prodrive/atlas/vpd.h
10 files changed, 528 insertions(+), 2 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/37/68137/3
--
To view, visit https://review.coreboot.org/c/coreboot/+/68137
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I47bb4883c43ff344a9bda92c3106dd025533b391
Gerrit-Change-Number: 68137
Gerrit-PatchSet: 3
Gerrit-Owner: David.Milosevic(a)9elements.com
Gerrit-Reviewer: Angel Pons <th3fanbus(a)gmail.com>
Gerrit-Reviewer: Christian Walter <christian.walter(a)9elements.com>
Gerrit-Reviewer: Lean Sheng Tan <sheng.tan(a)9elements.com>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-CC: Patrick Rudolph <patrick.rudolph(a)9elements.com>
Gerrit-Attention: Patrick Rudolph <patrick.rudolph(a)9elements.com>
Gerrit-Attention: Lean Sheng Tan <sheng.tan(a)9elements.com>
Gerrit-Attention: David.Milosevic(a)9elements.com
Gerrit-MessageType: newpatchset
Attention is currently required from: Jason Glenesk, Karthik Ramasubramanian.
Jon Murphy has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/68115 )
Change subject: 3rdparty/amd_blobs:Advance submodule pointer
......................................................................
Patch Set 1: Code-Review+2
--
To view, visit https://review.coreboot.org/c/coreboot/+/68115
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Ia28bba399ed527863f18ecd790c7096254873298
Gerrit-Change-Number: 68115
Gerrit-PatchSet: 1
Gerrit-Owner: Jason Glenesk <jason.glenesk(a)amd.corp-partner.google.com>
Gerrit-Reviewer: Jon Murphy <jpmurphy(a)google.com>
Gerrit-Reviewer: Karthik Ramasubramanian <kramasub(a)google.com>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-Attention: Jason Glenesk <jason.glenesk(a)amd.corp-partner.google.com>
Gerrit-Attention: Karthik Ramasubramanian <kramasub(a)google.com>
Gerrit-Comment-Date: Thu, 06 Oct 2022 15:17:42 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment
Attention is currently required from: Iman Bingi, Martin L Roth, Julius Werner, Patrick Rudolph.
build bot (Jenkins) has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/23586 )
Change subject: payloads/cbui: Add new payload CBUI
......................................................................
Patch Set 54:
(42 comments)
File payloads/cbui/NuklearUI/NuklearDatePicker.c:
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/b34ac849_4f0ccc4a
PS54, Line 36: case 6: /* fallthrough */
Prefer 'fallthrough;' over fallthrough comment
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/cbc35971_561aa612
PS54, Line 37: case 9: /* fallthrough */
Prefer 'fallthrough;' over fallthrough comment
File payloads/cbui/NuklearUI/NuklearRW.c:
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/b260bbf5_cbc84012
PS54, Line 289: static const char *titles[] = { "Hex-View", "Header", "Index/Data" };
static const char * array should probably be static const char * const
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/d212d301_138bed7d
PS54, Line 323: static const char *entries[] = { "NVRAM" };
static const char * array should probably be static const char * const
File payloads/cbui/NuklearUI/NuklearRwAcpi.c:
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/3314f0f2_5278b4a6
PS54, Line 40: static const char *tools[] = { lang_translate(LANG_SAVE, 0), lang_translate(
static const char * array should probably be static const char * const
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/4043c772_a38bf86b
PS54, Line 43: static const char *tabs[] = { "RSDP", "XSDT", "RSDT", "FACP", "HPET", "APIC", "MCFG",
static const char * array should probably be static const char * const
File payloads/cbui/NuklearUI/NuklearRwAtaAtapi.c:
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/43881c21_9f1f730b
PS54, Line 23: static const char *tools[] = { lang_translate(LANG_SAVE, 0), lang_translate(
static const char * array should probably be static const char * const
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/9f574727_3146b17a
PS54, Line 26: static const char *tabs[] = { "Hex-View", "Info", "Summary" };
static const char * array should probably be static const char * const
File payloads/cbui/NuklearUI/NuklearRwClock.c:
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/e956dd8f_2be1675a
PS54, Line 53: static const char *tools[] = { lang_translate(LANG_SAVE, 0), "Save bin", "Load",
static const char * array should probably be static const char * const
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/8cb8e960_bbc00c23
PS54, Line 56: static const char *tabs[] = { "Hex-View", "Info", "Text" };
static const char * array should probably be static const char * const
File payloads/cbui/NuklearUI/NuklearRwCpuMsr.c:
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/07989986_16d7e5aa
PS54, Line 20: static const char *tools[] = { lang_translate(LANG_SAVE, 0) };
static const char * array should probably be static const char * const
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/697e9342_f68481b1
PS54, Line 22: static const char *tabs[] = { "MTRR", "User", "Summary" };
static const char * array should probably be static const char * const
File payloads/cbui/NuklearUI/NuklearRwDimmSpd.c:
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/d8d0adf0_26b92ea7
PS54, Line 61: static const char *tools[] = { lang_translate(LANG_SAVE, 0), "Save all", "Save bin",
static const char * array should probably be static const char * const
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/b949b66a_d6d1383b
PS54, Line 65: static const char *tabs[] = { "Hex-View", "Info", "Text", "Summary" };
static const char * array should probably be static const char * const
File payloads/cbui/arch/x86/int32.h:
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/44e4e450_e4f10fdf
PS54, Line 20: typedef struct __attribute__ ((packed)) {
Prefer __packed over __attribute__((packed))
File payloads/cbui/arch/x86/int32.nasm:
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/0b7a0efa_5bcd4851
PS54, Line 38: struc regs16_t
'struc' may be misspelled - perhaps 'struct'?
File payloads/cbui/gfx/vbe.c:
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/2c6fd5fe_1228ee92
PS54, Line 24: static u8 low_mem[0x1000] __attribute__ ((section(".lowmem")));
Prefer __section(".lowmem") over __attribute__((section(".lowmem")))
File payloads/cbui/lang/de.c:
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/659b697b_a8ed186f
PS54, Line 39: "Kein Framebuffer gefunden. CBUI funktioniert nicht" \
Avoid unnecessary line continuations
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/7be15f62_93639e64
PS54, Line 44: "Der coreboot framebuffer hat keine physikalische " \
Avoid unnecessary line continuations
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/2736b587_48b53bbc
PS54, Line 47: "Kein Platz auf dem Heap.\nBitte vergroBere den" \
Avoid unnecessary line continuations
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/63920fdd_90043b5f
PS54, Line 50: "Konnte die nuklear Bibliothek nicht intitialisieren.\nBitte" \
Avoid unnecessary line continuations
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/380799b0_aed1f85e
PS54, Line 52: "stelle sicher, das der Framebuffer entweder das RGBX8 oder " \
Avoid unnecessary line continuations
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/1d22536a_55aeaf72
PS54, Line 65: "Fehler: Keine CMOS Eintrage gefunden. Bitte schalte die " \
Avoid unnecessary line continuations
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/0d7b5ac6_c5d8cbf1
PS54, Line 86: "Fehler: Keine Zeitstempel gefunden. Bitte schalte die " \
Avoid unnecessary line continuations
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/a1d52cc0_5ac44cc6
PS54, Line 89: "Fehler: Bootlog nicht gefunden. Bitte schalte die Kconfig " \
Avoid unnecessary line continuations
File payloads/cbui/lang/en.c:
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/8c88d6e8_dfd1bc3d
PS54, Line 38: "No framebuffer found. CBUI doesn't work in text mode.\n" \
Avoid unnecessary line continuations
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/ec5a96c4_5fee6730
PS54, Line 46: "Failed to init nuklear library.\nMake sure you have enough " \
Avoid unnecessary line continuations
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/b23cd43f_8245fb5b
PS54, Line 60: "ERROR: No CMOS options found. Please make sure to enable " \
Avoid unnecessary line continuations
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/aca6a1bd_065e504d
PS54, Line 81: "ERROR: No timestamps found. Please make sure to enable " \
Avoid unnecessary line continuations
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/ac4ea57e_e881f9bc
PS54, Line 84: "ERROR: Bootlog not found. Please make sure to enable " \
Avoid unnecessary line continuations
File payloads/cbui/modules/bootlog_module.c:
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/fdbf7b5a_b1f207b4
PS54, Line 28: } __attribute__ ((__packed__));
Prefer __packed over __attribute__((__packed__))
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/51bcacc4_a7022bfe
PS54, Line 82: }
void function return statements are not generally useful
File payloads/cbui/modules/cbfs_module.c:
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/fcd05d4a_1ff480a8
PS54, Line 50: } __attribute__ ((packed));
Prefer __packed over __attribute__((packed))
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/adfb9c0d_14115673
PS54, Line 59: } __attribute__ ((packed));
Prefer __packed over __attribute__((packed))
File payloads/cbui/modules/cpuinfo_module.c:
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/fb8eb963_40c67fb4
PS54, Line 35: static const char *intel_cap_edx_flags[] = {
static const char * array should probably be static const char * const
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/ed97199d_ea900a37
PS54, Line 43: static const char *amd_cap_edx_flags[] = {
static const char * array should probably be static const char * const
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/255683c4_76e37820
PS54, Line 51: static const char *intel_cap_ecx_flags[] = {
static const char * array should probably be static const char * const
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/123a8389_c6413803
PS54, Line 59: static const char *amd_cap_ecx_flags[] = {
static const char * array should probably be static const char * const
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/86bc9d9e_652bd076
PS54, Line 67: static const char *intel_cap_extended_edx_flags[] = {
static const char * array should probably be static const char * const
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/d692bb6e_94ef7b4c
PS54, Line 75: static const char *intel_cap_extended_ecx_flags[] = {
static const char * array should probably be static const char * const
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/cf509815_11df9ba4
PS54, Line 83: static const char *amd_cap_extended_edx_flags[] = {
static const char * array should probably be static const char * const
Robot Comment from checkpatch (run ID jenkins-coreboot-checkpatch-159858):
https://review.coreboot.org/c/coreboot/+/23586/comment/252bb433_656d8307
PS54, Line 92: static const char *amd_cap_extended_ecx_flags[] = {
static const char * array should probably be static const char * const
--
To view, visit https://review.coreboot.org/c/coreboot/+/23586
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Ib9a1a07c1065880aa675380625021750d5cab7d1
Gerrit-Change-Number: 23586
Gerrit-PatchSet: 54
Gerrit-Owner: Patrick Rudolph <siro(a)das-labor.org>
Gerrit-Reviewer: Arthur Heymans <arthur(a)aheymans.xyz>
Gerrit-Reviewer: Iman Bingi <imanbingy(a)gmail.com>
Gerrit-Reviewer: Julius Werner <jwerner(a)chromium.org>
Gerrit-Reviewer: Martin L Roth <gaumless(a)gmail.com>
Gerrit-Reviewer: Nico Huber <nico.h(a)gmx.de>
Gerrit-Reviewer: Patrick Rudolph <patrick.rudolph(a)9elements.com>
Gerrit-Reviewer: Patrick Rudolph <siro(a)das-labor.org>
Gerrit-Reviewer: Paul Menzel <paulepanter(a)mailbox.org>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-CC: Stefan Reinauer <stefan.reinauer(a)coreboot.org>
Gerrit-Attention: Iman Bingi <imanbingy(a)gmail.com>
Gerrit-Attention: Martin L Roth <gaumless(a)gmail.com>
Gerrit-Attention: Julius Werner <jwerner(a)chromium.org>
Gerrit-Attention: Patrick Rudolph <siro(a)das-labor.org>
Gerrit-Comment-Date: Thu, 06 Oct 2022 15:04:14 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Gerrit-MessageType: comment
Attention is currently required from: Iman Bingi, Martin L Roth, Julius Werner, Patrick Rudolph.
Iman Bingi has uploaded a new patch set (#54) to the change originally created by Patrick Rudolph. ( https://review.coreboot.org/c/coreboot/+/23586 )
Change subject: payloads/cbui: Add new payload CBUI
......................................................................
payloads/cbui: Add new payload CBUI
Depends on libpayload and nuklear.
Features:
* Graphical menus with scrolling.
* Text rendering engine (atm only bitmap font)
* Support for keyboard and mouse
* Support for USB and PS/2 devices
* Ported coreinfo and nvramcui
* Allows to modify NVRAM and RTC
* Works as ELF payload
* Works as Seabios secondary payload
* Basic support for multiple languages
* Hacky support for BIOS calls (depends on NASM)
* Runs in qemu and on real hardware
* Use linker script to allocate low memory
Shortcomings:
* Doesn't work in VGA text mode
* Untested on UEFI
* int32 relocates itself to low memory
Licenses:
* GPLv2 (CBUI + libpayload)
* BSD (libpayload)
* MIT (nuklear)
TODO:
* Test on as much platforms as possible
* Link int32 into low memory
This is Patrick Rudolph's original patch, updated by
Ben Adu-Boahen to:
* Add Read/Write module
* This module allows read/write to any hardware
component that is readable/writeable
Note:
This is work in progress
Change-Id: Ib9a1a07c1065880aa675380625021750d5cab7d1
Signed-off-by: Patrick Rudolph <siro(a)das-labor.org>
Signed-off-by: Ben Adu-Boahen <imanbingy(a)gmail.com>
---
M payloads/Kconfig
M payloads/Makefile.inc
A payloads/cbui/.gitignore
A payloads/cbui/Kconfig
A payloads/cbui/Makefile
A payloads/cbui/NuklearUI/NuklearCombo.c
A payloads/cbui/NuklearUI/NuklearCombo.h
A payloads/cbui/NuklearUI/NuklearCommon.h
A payloads/cbui/NuklearUI/NuklearDataGrid.c
A payloads/cbui/NuklearUI/NuklearDataGrid.h
A payloads/cbui/NuklearUI/NuklearDatePicker.c
A payloads/cbui/NuklearUI/NuklearDatePicker.h
A payloads/cbui/NuklearUI/NuklearFieldFile.c
A payloads/cbui/NuklearUI/NuklearFieldFile.h
A payloads/cbui/NuklearUI/NuklearFieldHex.c
A payloads/cbui/NuklearUI/NuklearFieldHex.h
A payloads/cbui/NuklearUI/NuklearFileChooser.c
A payloads/cbui/NuklearUI/NuklearFileChooser.h
A payloads/cbui/NuklearUI/NuklearGroup.c
A payloads/cbui/NuklearUI/NuklearGroup.h
A payloads/cbui/NuklearUI/NuklearHex.c
A payloads/cbui/NuklearUI/NuklearHex.h
A payloads/cbui/NuklearUI/NuklearIntegerRange.c
A payloads/cbui/NuklearUI/NuklearIntegerRange.h
A payloads/cbui/NuklearUI/NuklearLabel.c
A payloads/cbui/NuklearUI/NuklearLabel.h
A payloads/cbui/NuklearUI/NuklearObject.c
A payloads/cbui/NuklearUI/NuklearObject.h
A payloads/cbui/NuklearUI/NuklearPciHeader.c
A payloads/cbui/NuklearUI/NuklearPciHeader.h
A payloads/cbui/NuklearUI/NuklearRW.c
A payloads/cbui/NuklearUI/NuklearRW.h
A payloads/cbui/NuklearUI/NuklearRoot.c
A payloads/cbui/NuklearUI/NuklearRwAcpi.c
A payloads/cbui/NuklearUI/NuklearRwAcpi.h
A payloads/cbui/NuklearUI/NuklearRwAtaAtapi.c
A payloads/cbui/NuklearUI/NuklearRwAtaAtapi.h
A payloads/cbui/NuklearUI/NuklearRwClock.c
A payloads/cbui/NuklearUI/NuklearRwClock.h
A payloads/cbui/NuklearUI/NuklearRwCpuMsr.c
A payloads/cbui/NuklearUI/NuklearRwCpuMsr.h
A payloads/cbui/NuklearUI/NuklearRwDimmSpd.c
A payloads/cbui/NuklearUI/NuklearRwDimmSpd.h
A payloads/cbui/NuklearUI/NuklearStyle.c
A payloads/cbui/NuklearUI/NuklearStyle.h
A payloads/cbui/NuklearUI/NuklearTabView.c
A payloads/cbui/NuklearUI/NuklearTextView.c
A payloads/cbui/NuklearUI/NuklearTextView.h
A payloads/cbui/NuklearUI/NuklearTextfield.c
A payloads/cbui/NuklearUI/NuklearTextfield.h
A payloads/cbui/NuklearUI/NuklearTimePicker.c
A payloads/cbui/NuklearUI/NuklearTimePicker.h
A payloads/cbui/NuklearUI/NuklearUI.h
A payloads/cbui/NuklearUI/NuklearVector.c
A payloads/cbui/NuklearUI/NuklearVector.h
A payloads/cbui/arch/x86/cpuid.c
A payloads/cbui/arch/x86/cpuid.h
A payloads/cbui/arch/x86/int32.h
A payloads/cbui/arch/x86/int32.ld
A payloads/cbui/arch/x86/int32.nasm
A payloads/cbui/arch/x86/memcpy.c
A payloads/cbui/arch/x86/memcpy.h
A payloads/cbui/arch/x86/vga.c
A payloads/cbui/arch/x86/vga.h
A payloads/cbui/cbui.c
A payloads/cbui/cbui.h
A payloads/cbui/fsys/usbstorage.c
A payloads/cbui/fsys/usbstorage.h
A payloads/cbui/gfx/coreboot.c
A payloads/cbui/gfx/coreboot.h
A payloads/cbui/gfx/gfx.c
A payloads/cbui/gfx/gfx.h
A payloads/cbui/gfx/splash.c
A payloads/cbui/gfx/splash.h
A payloads/cbui/gfx/vbe.c
A payloads/cbui/gfx/vbe.h
A payloads/cbui/lang/de.c
A payloads/cbui/lang/en.c
A payloads/cbui/lang/lang.c
A payloads/cbui/lang/lang.h
A payloads/cbui/logo/cbui.png
A payloads/cbui/lp.config
A payloads/cbui/modules/bootlog_module.c
A payloads/cbui/modules/cbfs_module.c
A payloads/cbui/modules/cmos_module.c
A payloads/cbui/modules/coreboot_module.c
A payloads/cbui/modules/cpuinfo_module.c
A payloads/cbui/modules/license_module.c
A payloads/cbui/modules/modules.c
A payloads/cbui/modules/modules.h
A payloads/cbui/modules/nvram_module.c
A payloads/cbui/modules/pci_module.c
A payloads/cbui/modules/reboot_module.c
A payloads/cbui/modules/rtc_module.c
A payloads/cbui/modules/rw_module.c
A payloads/cbui/modules/timestamps_module.c
A payloads/cbui/modules/usb_module.c
A payloads/libpayload/configs/defconfig-cbui
98 files changed, 13,129 insertions(+), 1 deletion(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/86/23586/54
--
To view, visit https://review.coreboot.org/c/coreboot/+/23586
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Ib9a1a07c1065880aa675380625021750d5cab7d1
Gerrit-Change-Number: 23586
Gerrit-PatchSet: 54
Gerrit-Owner: Patrick Rudolph <siro(a)das-labor.org>
Gerrit-Reviewer: Arthur Heymans <arthur(a)aheymans.xyz>
Gerrit-Reviewer: Iman Bingi <imanbingy(a)gmail.com>
Gerrit-Reviewer: Julius Werner <jwerner(a)chromium.org>
Gerrit-Reviewer: Martin L Roth <gaumless(a)gmail.com>
Gerrit-Reviewer: Nico Huber <nico.h(a)gmx.de>
Gerrit-Reviewer: Patrick Rudolph <patrick.rudolph(a)9elements.com>
Gerrit-Reviewer: Patrick Rudolph <siro(a)das-labor.org>
Gerrit-Reviewer: Paul Menzel <paulepanter(a)mailbox.org>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-CC: Stefan Reinauer <stefan.reinauer(a)coreboot.org>
Gerrit-Attention: Iman Bingi <imanbingy(a)gmail.com>
Gerrit-Attention: Martin L Roth <gaumless(a)gmail.com>
Gerrit-Attention: Julius Werner <jwerner(a)chromium.org>
Gerrit-Attention: Patrick Rudolph <siro(a)das-labor.org>
Gerrit-MessageType: newpatchset
Sean Rhodes has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/67398 )
Change subject: ec/starlabs/merlin: Add EC related files for Alder Lake boards
......................................................................
Patch Set 6:
(1 comment)
Commit Message:
https://review.coreboot.org/c/coreboot/+/67398/comment/2768ea99_0daa4d14
PS6, Line 10: StarFighter Mk I
> No idea what this is, but sounds like it's going to be something exciting 😄
https://twitter.com/starlabsltd/status/1574851461355290624
--
To view, visit https://review.coreboot.org/c/coreboot/+/67398
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I8cea386ba91d076084002738fe7041834deea311
Gerrit-Change-Number: 67398
Gerrit-PatchSet: 6
Gerrit-Owner: Sean Rhodes <sean(a)starlabs.systems>
Gerrit-Reviewer: Angel Pons <th3fanbus(a)gmail.com>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-Comment-Date: Thu, 06 Oct 2022 14:50:36 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Angel Pons <th3fanbus(a)gmail.com>
Gerrit-MessageType: comment
Attention is currently required from: Patrick Rudolph, Lean Sheng Tan, David.Milosevic(a)9elements.com.
Angel Pons has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/68137 )
Change subject: [WIP] mb/prodrive/atlas: Populate smbios table with VPD from ECs EMI
......................................................................
Patch Set 2:
(7 comments)
File src/mainboard/prodrive/atlas/vpd.h:
https://review.coreboot.org/c/coreboot/+/68137/comment/bae73984_f7243b45
PS2, Line 3: #ifndef __VPD_H__
It's a good idea to "namespace" include guards, to avoid funky issues when two different headers use the same symbol for the include guard. `src/drivers/vpd/vpd.h` already uses the `__VPD_H__` symbol, so if you try including both headers into the same compilation unit, only one of them (the first one found by the preprocessor) will be included.
TL;DR: Let's play it safe and use something like `__ATLAS_VPD_H__` to avoid potential issues with include guards.
https://review.coreboot.org/c/coreboot/+/68137/comment/c39d1da9_9db3a28d
PS2, Line 6: #include <stddef.h>
You use u16 and u8 below, so you'd need <stdint.h>. But you can just #include <types.h> for the sake of simplicity
https://review.coreboot.org/c/coreboot/+/68137/comment/a64c9ca3_64d0f10e
PS2, Line 12: vpd_section
> the first field must a length field or a version field in order to extend this struct in the future.
Not sure if we'll need to extend this in the future, but it's a good idea. It would also allow providing backwards compatibility with older EC firmware.
On the Hermes, we ended up (ab)using the checksum for board settings in the Hermes to add backwards compatibility with older BMC firmware, see CB:67381 for the change.
https://review.coreboot.org/c/coreboot/+/68137/comment/e6148420_06715aba
PS2, Line 17: } vpd_section_t;
> How do you know if the returned data is valid? Can you add a checksum?
If you want to add a checksum, it's a good idea to have it at the start, so that the "header" doesn't change:
```
struct __packed vpd_section {
u32 revision;
u32 checksum;
union {
struct __packed {
char part_number[PAGESIZE];
char serial_number[PAGESIZE];
};
u8 raw_vpd[PAGESIZE + PAGESIZE];
};
};
```
https://review.coreboot.org/c/coreboot/+/68137/comment/f9912860_55b23ed8
PS2, Line 24: * */
nit: Coding style says that these comments should end like this:
```
* within the vpd section.
*/
```
https://review.coreboot.org/c/coreboot/+/68137/comment/87b1857d_9c49c1a9
PS2, Line 32: extern
We typically don't use `extern` in declarations inside a header.
https://review.coreboot.org/c/coreboot/+/68137/comment/829970df_d0debb8f
PS2, Line 36:
There are two trailing newlines, we only need one.
--
To view, visit https://review.coreboot.org/c/coreboot/+/68137
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I47bb4883c43ff344a9bda92c3106dd025533b391
Gerrit-Change-Number: 68137
Gerrit-PatchSet: 2
Gerrit-Owner: David.Milosevic(a)9elements.com
Gerrit-Reviewer: Angel Pons <th3fanbus(a)gmail.com>
Gerrit-Reviewer: Christian Walter <christian.walter(a)9elements.com>
Gerrit-Reviewer: Lean Sheng Tan <sheng.tan(a)9elements.com>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-CC: Patrick Rudolph <patrick.rudolph(a)9elements.com>
Gerrit-Attention: Patrick Rudolph <patrick.rudolph(a)9elements.com>
Gerrit-Attention: Lean Sheng Tan <sheng.tan(a)9elements.com>
Gerrit-Attention: David.Milosevic(a)9elements.com
Gerrit-Comment-Date: Thu, 06 Oct 2022 14:40:08 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Patrick Rudolph <patrick.rudolph(a)9elements.com>
Gerrit-MessageType: comment