14 changes: 13 additions & 1 deletion CHANGELOG.md
Expand Up @@ -8,6 +8,17 @@ Releases 4.5.x and 4.6.x are based on mainline support submitted in

## [Unreleased]

## [v4.0.13] - 2017-09-29
### Changed
- Generating build info header file `build.h` is now handled by shell script
`util/genbuild_h/genbuild_h.sh`
- Removed duplicated sign of life strings in `mainboard.c` and `romstage.c`
- Moved sign of life strings (except for memory information) from mainboard.c
to romstage.c. They are printed ~0.3s after power on, instead of over 2s.

### Fixed
- Date format in sign of life string

## [v4.0.12] - 2017-08-30
### Added
- APU5 target
Expand Down Expand Up @@ -114,7 +125,8 @@ Releases 4.5.x and 4.6.x are based on mainline support submitted in
- forced to use SD in 2.0 mode
- git repository in `Makefile`

[Unreleased]: https://github.com/pcengines/coreboot/compare/v4.0.12...coreboot-4.0.x
[Unreleased]: https://github.com/pcengines/coreboot/compare/v4.0.13...coreboot-4.0.x
[v4.0.13]: https://github.com/pcengines/coreboot/compare/v4.0.12...v4.0.13
[v4.0.12]: https://github.com/pcengines/coreboot/compare/v4.0.11...v4.0.12
[v4.0.11]: https://github.com/pcengines/coreboot/compare/v4.0.10...v4.0.11
[v4.0.10]: https://github.com/pcengines/coreboot/compare/v4.0.9...v4.0.10
Expand Down
33 changes: 1 addition & 32 deletions Makefile.inc
Expand Up @@ -304,38 +304,7 @@ additional-dirs := $(objutil)/cbfstool $(objutil)/romcc $(objutil)/ifdtool \
$(obj)/build.h: .xcompile
@printf " GEN build.h\n"
rm -f $(obj)/build.h
printf "/* build system definitions (autogenerated) */\n" > $(obj)/build.ht
printf "#ifndef __BUILD_H\n" >> $(obj)/build.ht
printf "#define __BUILD_H\n\n" >> $(obj)/build.ht
printf "#define COREBOOT_VERSION \"$(KERNELVERSION)\"\n" >> $(obj)/build.ht
if [ -e "${top}/.git" -a -x "$(command -v git)" ]; then \
if git update-index -q --refresh >/dev/null; ! git diff-index --quiet HEAD; then \
printf "/* `LANG= TZ=UTC git log --date=local --pretty=format:%cd -1` UTC */\n" >> $(obj)/build.ht; \
printf "#define COREBOOT_VERSION_TIMESTAMP `LANG= git log --pretty=format:%ct -1`\n" >> $(obj)/build.ht; \
else \
printf "/* `LANG= TZ=UTC date` */\n" >> $(obj)/build.ht; \
printf "#define COREBOOT_VERSION_TIMESTAMP `LANG= date +%s`\n" >> $(obj)/build.ht; \
fi \
else \
printf "/* `LANG= TZ=UTC date` */\n" >> $(obj)/build.ht; \
printf "#define COREBOOT_VERSION_TIMESTAMP `LANG= date +%s`\n" >> $(obj)/build.ht; \
fi
printf "#define COREBOOT_ORIGIN_GIT_TAG \"`LANG= git describe --tags --exact-match HEAD`\"\n" >> $(obj)/build.ht
printf "#define COREBOOT_ORIGIN_GIT_REVISION \"`LANG= git log remotes/origin/master -1 --format=format:%h`\"\n" >> $(obj)/build.ht
printf "#define COREBOOT_EXTRA_VERSION \"$(COREBOOT_EXTRA_VERSION)\"\n" >> $(obj)/build.ht
printf "#define COREBOOT_BUILD \"`LANG= date`\"\n" >> $(obj)/build.ht
printf "#define COREBOOT_BUILD_YEAR_BCD 0x`LANG= date +"%y"`\n" >> $(obj)/build.ht
printf "#define COREBOOT_BUILD_MONTH_BCD 0x`LANG= date +"%m"`\n" >> $(obj)/build.ht
printf "#define COREBOOT_BUILD_DAY_BCD 0x`LANG= date +"%d"`\n" >> $(obj)/build.ht
printf "#define COREBOOT_BUILD_WEEKDAY_BCD 0x`LANG= date +"%w"`\n" >> $(obj)/build.ht
printf "#define COREBOOT_DMI_DATE \"`LANG= date +"%m/%d/%Y"`\"\n" >> $(obj)/build.ht
printf "#define COREBOOT_YYYYMMDD_DATE \"`LANG= date +"%Y%m%d"`\"\n" >> $(obj)/build.ht
printf "\n" >> $(obj)/build.ht
printf "#define COREBOOT_COMPILE_TIME \"`LANG= date +%T`\"\n" >> $(obj)/build.ht
printf "#define COREBOOT_COMPILE_BY \"$(subst \,@,$(shell PATH=$$PATH:/usr/ucb whoami))\"\n" >> $(obj)/build.ht
printf "#define COREBOOT_COMPILE_HOST \"$(shell hostname -s 2>/dev/null || hostname 2>/dev/null)\"\n" >> $(obj)/build.ht
printf "#define COREBOOT_COMPILE_DOMAIN \"$(shell test `uname -s` = "Linux" && dnsdomainname || domainname 2>/dev/null)\"\n" >> $(obj)/build.ht
printf "#endif\n" >> $(obj)/build.ht
util/genbuild_h/genbuild_h.sh > $(obj)/build.ht
mv $(obj)/build.ht $(obj)/build.h

$(obj)/ldoptions: $(obj)/config.h
Expand Down
3 changes: 0 additions & 3 deletions src/mainboard/pcengines/apu2/mainboard.c
Expand Up @@ -65,9 +65,6 @@ static void mainboard_enable(device_t dev)
if (bsp_topmem2() > 0)
total_mem += (bsp_topmem2() / (1024 * 1024)) - 4 * 1024;
if (scon) {
printk(BIOS_ALERT, CONFIG_MAINBOARD_PART_NUMBER "\n");
printk(BIOS_ALERT, "coreboot build %s\n", COREBOOT_YYYYMMDD_DATE);
printk(BIOS_ALERT, "BIOS version %s\n", COREBOOT_ORIGIN_GIT_TAG);
printk(BIOS_ALERT, "%d MB", total_mem);
}

Expand Down
9 changes: 6 additions & 3 deletions src/mainboard/pcengines/apu2/romstage.c
Expand Up @@ -190,10 +190,13 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
// Moved here to prevent double signon message
// amdinitreset AGESA code might issue a reset when the hardware is in a wrong state.
*/
bool scon = check_console();

printk(BIOS_ERR, CONFIG_MAINBOARD_PART_NUMBER "\n");
printk(BIOS_ERR, "coreboot build " COREBOOT_YYYYMMDD_DATE "\n");

if(scon){
printk(BIOS_ALERT, CONFIG_MAINBOARD_PART_NUMBER "\n");
printk(BIOS_ALERT, "coreboot build %s\n", COREBOOT_DMI_DATE);
printk(BIOS_ALERT, "BIOS version %s\n", COREBOOT_ORIGIN_GIT_TAG);
}
#if CONFIG_SVI2_SLOW_SPEED
/* Force SVI2 to slow speed for APU2 */
val = pci_read_config32( d18f3_dev, 0xA0);
Expand Down
3 changes: 0 additions & 3 deletions src/mainboard/pcengines/apu3/mainboard.c
Expand Up @@ -65,9 +65,6 @@ static void mainboard_enable(device_t dev)
if (bsp_topmem2() > 0)
total_mem += (bsp_topmem2() / (1024 * 1024)) - 4 * 1024;
if (scon) {
printk(BIOS_ALERT, CONFIG_MAINBOARD_PART_NUMBER "\n");
printk(BIOS_ALERT, "coreboot build %s\n", COREBOOT_YYYYMMDD_DATE);
printk(BIOS_ALERT, "BIOS version %s\n", COREBOOT_ORIGIN_GIT_TAG);
printk(BIOS_ALERT, "%d MB", total_mem);
}

Expand Down
9 changes: 6 additions & 3 deletions src/mainboard/pcengines/apu3/romstage.c
Expand Up @@ -191,10 +191,13 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
// Moved here to prevent double signon message
// amdinitreset AGESA code might issue a reset when the hardware is in a wrong state.
*/
bool scon = check_console();

printk(BIOS_ERR, CONFIG_MAINBOARD_PART_NUMBER "\n");
printk(BIOS_ERR, "coreboot build " COREBOOT_YYYYMMDD_DATE "\n");

if(scon){
printk(BIOS_ALERT, CONFIG_MAINBOARD_PART_NUMBER "\n");
printk(BIOS_ALERT, "coreboot build %s\n", COREBOOT_DMI_DATE);
printk(BIOS_ALERT, "BIOS version %s\n", COREBOOT_ORIGIN_GIT_TAG);
}
#if CONFIG_SVI2_SLOW_SPEED
/* Force SVI2 to slow speed for APU3 */
val = pci_read_config32( d18f3_dev, 0xA0);
Expand Down
3 changes: 0 additions & 3 deletions src/mainboard/pcengines/apu5/mainboard.c
Expand Up @@ -65,9 +65,6 @@ static void mainboard_enable(device_t dev)
if (bsp_topmem2() > 0)
total_mem += (bsp_topmem2() / (1024 * 1024)) - 4 * 1024;
if (scon) {
printk(BIOS_ALERT, CONFIG_MAINBOARD_PART_NUMBER "\n");
printk(BIOS_ALERT, "coreboot build %s\n", COREBOOT_YYYYMMDD_DATE);
printk(BIOS_ALERT, "BIOS version %s\n", COREBOOT_ORIGIN_GIT_TAG);
printk(BIOS_ALERT, "%d MB", total_mem);
}

Expand Down
9 changes: 6 additions & 3 deletions src/mainboard/pcengines/apu5/romstage.c
Expand Up @@ -191,10 +191,13 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
// Moved here to prevent double signon message
// amdinitreset AGESA code might issue a reset when the hardware is in a wrong state.
*/
bool scon = check_console();

printk(BIOS_ERR, CONFIG_MAINBOARD_PART_NUMBER "\n");
printk(BIOS_ERR, "coreboot build " COREBOOT_YYYYMMDD_DATE "\n");

if(scon){
printk(BIOS_ALERT, CONFIG_MAINBOARD_PART_NUMBER "\n");
printk(BIOS_ALERT, "coreboot build %s\n", COREBOOT_DMI_DATE);
printk(BIOS_ALERT, "BIOS version %s\n", COREBOOT_ORIGIN_GIT_TAG);
}
#if CONFIG_SVI2_SLOW_SPEED
/* Force SVI2 to slow speed for APU5 */
val = pci_read_config32( d18f3_dev, 0xA0);
Expand Down
76 changes: 76 additions & 0 deletions util/genbuild_h/genbuild_h.sh
@@ -0,0 +1,76 @@
#!/bin/sh

# This file is part of the coreboot project.
#
# Copyright (C) 2014 Sage Electronic Engineering, LLC.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#

DATE=""
GITREV=""
GITTAG=""
TIMESOURCE=""

export LANG=C
export LC_ALL=C
export TZ=UTC

top=`dirname $0`/../..

if [ "${BUILD_TIMELESS}" = "1" ]; then
GITREV=Timeless
GITTAG=Timeless
TIMESOURCE="fixed"
DATE=0
elif [ -e "${top}/.git" -a -x "$(command -v git)" ]; then
GITREV=$(LANG= git log -1 --format=format:%h)
GITTAG=$(LANG= git describe --tags --exact-match $GITREV)
TIMESOURCE=git
DATE=$(git log --pretty=format:%ct -1)
else
GITREV=Unknown
GITTAG=Unknown
TIMESOURCE="date"
DATE=$(LANG= LC_ALL=C TZ=UTC date +%s)
fi

our_date() {
case $(uname) in
NetBSD|OpenBSD|DragonFly|FreeBSD|Darwin)
date -r $1 $2
;;
*)
date -d @$1 $2 | sed -e 's/\///g'
esac
}


printf "/* build system definitions (autogenerated) */\n"
printf "#ifndef __BUILD_H\n"
printf "#define __BUILD_H\n\n"
printf "#define COREBOOT_VERSION %s\n" "\"$KERNELVERSION\""
printf "/* timesource: $TIMESOURCE */\n"
printf "#define COREBOOT_VERSION_TIMESTAMP $DATE\n"
printf "#define COREBOOT_ORIGIN_GIT_REVISION \"$GITREV\"\n"
printf "#define COREBOOT_ORIGIN_GIT_TAG \"$GITTAG\"\n"
printf "#define COREBOOT_EXTRA_VERSION \"%s\"\n" "$COREBOOT_EXTRA_VERSION"
printf "#define COREBOOT_BUILD \"$(our_date "$DATE")\"\n"
printf "#define COREBOOT_BUILD_YEAR_BCD 0x$(our_date "$DATE" +%y)\n"
printf "#define COREBOOT_BUILD_MONTH_BCD 0x$(our_date "$DATE" +%m)\n"
printf "#define COREBOOT_BUILD_DAY_BCD 0x$(our_date "$DATE" +%d)\n"
printf "#define COREBOOT_BUILD_WEEKDAY_BCD 0x$(our_date "$DATE" +%w)\n"
printf "#define COREBOOT_DMI_DATE \"$(our_date "$DATE" +%Y/%m/%d)\"\n"
printf "\n"
printf "#define COREBOOT_COMPILE_TIME \"$(our_date "$DATE" +%T)\"\n"
printf "#define COREBOOT_COMPILE_BY \"$(subst \,@,$(shell PATH=$$PATH:/usr/ucb whoami))\"\n"
printf "#define COREBOOT_COMPILE_HOST \"$(shell hostname -s 2>/dev/null || hostname 2>/dev/null)\"\n"
printf "#define COREBOOT_COMPILE_DOMAIN \"$(shell test `uname -s` = "Linux" && dnsdomainname || domainname 2>/dev/null)\"\n"
printf "#endif\n"